다음 내용들은
책 제목 : Do it! 오라클로 배우는 데이터베이스 입문
출판사 : 이지스퍼블리싱
를 참고하여 작성하였음을 미리 말씀드립니다! ( 사진에 링크 연결 )
02-1 관계형 데이터베이스의 구성 요소
테이블
관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다.
아래 표 형태를 테이블(table)이라 하고, 가로줄은 행(row), 세로줄은 열(column)이라고 한다.
학번 | 이름 | 생년월일 | 학과 코드 |
16031055 | 홍길동 | 971210 | COM |
12071632 | 성춘향 | 940424 | BNS |
관계형 데이터베이스에서 "관계'란 행과 열의 특성에 맞추어 데이터를 저장한 데이트 하나하나를 의미한다.
여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심이다.
특별한 의미를 지닌 열, 키
key; 수많은 데이터를 구별할 수 있는 유일한 값을 의미!
키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미한다.
키는 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key)등으로 구분 가능하다.
기본키
PK(;Primary key)는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있다.
기본키의 속성 => 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다 .
=> 값의 중복이 없어야 한다.
=> NULL 값을 가질 수 없다.
기본키는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있다.
아래와 같이 학생 정보 테이블을 통해 학생별로 특정 서비스를 제공하기 위해서는 각 학생을 구별할 수 있는 데이터가 반드시 필요하다. 이름같은 경우는 동명이인이 있을 수 있기 때문에 즉, 중복이 발생할 수 있기 때문에 적절하지 않고
학번 혹은 아이디, 주민등록 번호 정도가 기본키의 후보가 될 수 있다. (여기서는 학번을 PK로 설정)
학번 | 아이디 | 주민등록번호 | 이름 |
16031055 | baby | 971210-1xxxxxx | 홍길동 |
12071632 | onemore | 940424-2xxxxxx | 성춘향 |
보조키
후보키 중에서 기본키(PK)로 지정되지 않는 열을 의미
즉, 위에서 학번을 PK로 설정했으니, 아이디와 주민등록번호가 보조키가 된다.
외래키
FK(;Foreign Key)는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다.
< 학생 정보 테이블 >
학번 | 이름 | 학과코드 | 졸업여부 |
16031055 | 홍길동 | COM | |
12071632 | 성춘향 | BNS | 졸업 |
< 학과 정보 테이블 >
학과 코드 | 학과 이름 | 개설 날짜 | 대표 전화번호 |
COM | 컴퓨터공학과 | 19861021 | 070-0000-0000 |
BNS | 경영학과 | 19730201 | 070-1111-1111 |
학과 정보 테이블은 각 학과를 구별할 수 있는 유일한 데이터인 "학과 코드"를 PK로 지정했다.
학생 정보 테이블에도 '학과 코드'가 있다.
이 학과 코드가 바로 학생 정보 테이블과 학과 정보 테이블을 이어 주는 '외래키' 역할을 한다.
즉, 학생 정보 테이블은 학과 코드를 통해 학과 정보 테이블의 세부 정보를 찾아갈 수 있다.
복합키
복합키(composite key)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 의미한다.
하나의 열만으로는 행을 식별하는 것이 불가능하여 두 개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문이다.
예를 들어, 수강신청에서 통계수학의 과목코드가 C5545일때, 과목코드가 PK 역할을 할 수있을까?
어떤 사람은 분명 그 과목은 하나밖에 없으니깐 PK로 지정해도 될 거다! 라고 말할 수 있을 거다.
하지만 만약 같은 과목의 분반이 3개라면? 말이 달라진다.
이 때는 과목코드 + 분반 번호를 PK로 지정해야 한다.
02-2 오라클 데이터베이스
자료형
데이터베이스에 저장하는 데이터는 다양한 형태를 가지고 있다.
자료형은 테이블을 구성하는 열에 지정한다. 예를 들어 NUMBER(4)로 지정한 열이 있다면 네 자리 숫자만 저장할 수 있다.
하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라형이라고 한다.
자료형은 여러 종류가 있으며 한 번에 여러 데이터를 저장할 수 있는 VARRAY, NESTED TABLE같은 컬렉션형도 있다.
하지만 여전히 가장 많이 사용하는 자료형은 VARCHAR2, NUMBER, DATE 이다.
자료형 | 설명 |
VARCHAR2(길이) | 4000byte만큼의 가변 길이 문자열 데이터를 저장 가능 |
NUMBER(전체 자릿수, 소수점 이하 자릿수) | +-38자릿수의 숫자 저장 가능. NUMBER(p,s)와 같이 표기한 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다. |
DATE | 날짜 형식을 저장하기 위해 사용하는 자료형 |
CHAR(길이) | 4000byte만큼의 고정 길이 문자열 데이터 저장 가능 |
객체
객체는 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소이다.
객체의 종류는 다음과 같다.
객체 | 설명 |
테이블 | 데이터를 저장하는 장소 |
인덱스 | 테이블의 검색 효율을 높이기 위해 사용 |
뷰 | 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해 줌 |
시퀀스 | 일변 번호를 생성해 줌 |
시노님(synonym) | 오라클 객체의 별칭을 지정함 |
... | ... |
트리거(trigger) | 데이터 관련 작업의 연결 및 방지 관련 기능을 제공 |
PL/SQL
오라클 데이터베이스를 포함한 여러 관계형 데이터베이스에서 데이터를 관리하기 위해 복잡한 기능이 필요할 때 기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다. 그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데 이를 PL/SQL 이라고 한다.
'책 리뷰 > Doit! 오라클로 배우는 데이터베이스 입문' 카테고리의 다른 글
[Chapter5] Do it! 오라클로 배우는 데이터베이스 입문 - WHERE절과 연산자 (0) | 2021.09.25 |
---|---|
[Chapter4] Do it! 오라클로 배우는 데이터베이스 입문 - SELECT문의 기본 형식 (0) | 2021.09.24 |
[Chapter1] Do it! 오라클로 배우는 데이터베이스 입문 - 데이터베이스 (0) | 2021.09.18 |
댓글