데이터베이스 관계데이터 모델의 키
데이터베이스 관계데이터 모델의 키
관계모델의 키
키(key)는 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합입니다. 모든 키는 유일성을 만족해야 합니다.
키의 특성
유일성: 릴레이션에서 모든 투플은 다른 키 값을 가져야 함
최소성: 꼭 필요한 최소한의 속성들로만 키를 구성
5가지 키의 종류
수퍼키(super key)
- 나를 식별할 수 있는 모든 조합
- 유일성을 만족하는 속성이거나 속성들의 집합(복합 속성)
- 유일성
후보키(candidate key)
- 유일성, 최소성
기본키(primary key)
- 후보키 중에서 가장 기본적으로 1순위로 사용하기 위해 선택한 키
- 하나의 릴레이션에서 가장 중요한 정보를 기본키로 지정
- 후보키 중에서 단일 애트리뷰트(단일 속성)를 기본키로 지정
- 속성명에 밑줄로 표시
- NULL값 허용 안함
- 중복 허용 안함
- 유일성, 최소성
ex) 고객아이디
대체키(alternate key)
- 기본키로 선택되지 못한 나머지 후보키
- 유일성, 최소성
ex) (고객이름, 주소)
외래키(foreign key)
- 다른 릴레이션(테이블)의 기본키를 참조하는 속성 또는 속성들의 집합
- 다른 릴레이션에서 기본키를 빌려오는 키
- 다른 릴레이션들 간의 관계를 표현
- 참조되는 릴레이션의 기본키와 참조하는 릴레이션의 외래키 속성의 이름은 달라도 되지만 도메인(타입)은 같아야함
- 하나의 릴레이션에 외래키가 여러개 존재 할 수 있고 외래키를 기본키로 사용할 수 있음
참조하는 릴레이션: 외래키를 가진 릴레이션
참조되는 릴레이션: 기본키를 다른 릴레이션에 빌려주는 릴레이션
ex)
고객 릴레이션(참조되는 릴레이션)
고객아이디(기본키), 고객이름, 나이
주문 릴레이션 (참조하는 릴레이션)
주문번호, 주문고객(외래키), 주문제품, 수량
주문 릴레이션의 주문고객 속성이 고객 릴레이션의 고객아이디를 참조
관계 데이터모델의 제약조건
개체 무결성 제약조건
기본키에는 NULL값을 사용할 수 없는 규칙이 있습니다.
참조 무결성 제약조건
외래키는 참조 되어지는 릴레이션의 기본키에서 사용되고 있는 값만 사용 할 수 있습니다. 그리고 외래키 속성이 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것은 아닙니다.
※ 기본키를 제외한 나머지는 NULL값 허용
1. 참조 무결성 제약조건의 유지를 위해 참조되는 테이블에서 튜플 삭제 시 처리방법 옵션
ON DELETE NO ACTION: 투플을 삭제하지 못하게 함
ON DELETE CASCADE: 관련 투플을 함께 삭제함
ON DELETE SET NULL: 관련 투플의 외래키 값을 NULL로 변경함
ON DELETE SET DEFAULT: 관련 투플의 외래키 값을 미리 지정한 기본값으로 변경함
2. 참조 무결성 제약조건 유지를 위해 참조되는 테이블에서 튜플 변경 시 처리방법 옵션
ON UPDATE NO ACTION : 투플을 변경하지 못하게 함
ON UPDATE CASCADE : 관련 투플에서 외래키 값을 함께 변경함
ON UPDATE SET NULL : 관련 투플의 외래키 값을 NULL로 변경함
ON UPDATE SET DEFAULT : 관련 투플의 외래키 값을 미리 지정한 기본 값으로 변경함
댓글
댓글 쓰기