한빛아카데미 - 데이터베이스 개론 2판
릴레이션 relation
: 하나의 개체에 관한 데이터를 담아 데이터베이스에 저장하는 단위
고객아이디 [CHAR(20)] | 고객이름 [CHAR(20)] | 나이 [INT] | 등급 [CHAR(10)] | 직업 [CHAR(10)] | 적립금 [INT] |
---|---|---|---|---|---|
apple | 김현준 | 20 | gold | 학생 | 1000 |
banana | 정소화 | 25 | vip | 간호사 | 2500 |
carrot | 원유선 | 28 | gold | 교사 | 4500 |
orange | 정지영 | 22 | silver | 학생 | 0 |
▲ 고객 릴레이션
속성 attribute
: 릴레이션의 열
ex. 고객아이디, 고객이름, 나이, 등급, 직업, 적립금
튜플 tuple
: 릴레이션의 행
ex.
apple | 김현준 | 20 | gold | 학생 | 1000 |
---|
도메인 domain
: 속성 하나가 가질 수 있는 모든 값의 집합
ex. 등급 속성 값으로 vip, gold, silver, bronze 중 하나만 허용된다면, 네 가지 값을 모아놓은 것이 등급 속성의 도메인.
*이외의 속성은 정확히 정의하기 어렵기 때문에 일반적으로 도메인은 속성의 특성을 고려한 데이터 타입으로 정의. (CHAR, INT ..)
차수 degree
: 하나의 릴레이션에서 속성의 전체 개수
ex. 고객 릴레이션에서는 6
카디널리티 cardinality
: 하나의 릴레이션에서 튜플의 전체 개수
ex. 고객 릴레이션에서는 4
키 key
: 관계 데이터 모델에서 중요한 제약조건을 정의하는 역할
슈퍼키 super key
: 유일성의 특성을 만족하는 속성 또는 속성들의 집합
ex. 고객아이디를 포함하는 속성 집합 [(고객아이디), (고객아이디, 고객이름) ...]
*하나의 릴레이션에서 키로 지정된 속성 값은 튜플마다 달라야 한다. 즉, 키 값이 같은 튜플은 존재할 수 없다.
후보키 candidate key
: 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
ex. 고객아이디
*슈퍼키 중에서 최소성을 만족하는 것이 후보키이다.
기본키 primary key
: 여러 후보키 중에서 기본적으로 사용할 키
ex. 고객아이디
[기본키를 선택할 때 고려할만한 기준]
1. 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
2. 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
3. 단순한 후보키를 기본키로 선택한다.
대체키 alternate key
: 기본키로 선택되지 못한 후보키들
외래키 foreign key
: 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
*다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이다. 참조하는 속성과 참조되는 속성의 도메인은 반드시 같아야 한다.
ex.
고객아이디 | 고객이름 | 나이 | 등급 | 직업 | 적립금 |
---|
▲ 고객 릴레이션
주문번호 | 주문고객 | 주문제품 | 수량 | 단가 | 주문일자 |
---|
▲ 주문 릴레이션
주문 릴레이션의 주문고객 속성이 고객 릴레이션의 기본키인 고객아이디 속성을 참조하면 주문고객 속성을 외래키라고 한다.