Programming/SQL

[SQL] 키(KEY)의 개념 / 개체무결성 / 참조무결성 / 도메인 무결성

reeme 2020. 10. 30. 11:19

키 (Key)

키 (Key) 의 개념

하나의 테이블 내에서 각 튜플의 유일하게 식별할 수 있는 속성 (Attribute) 들의 집합

 

실생활의 키

하나의 자물쇠를 열수 있는 열쇠 ( 키 ) 는 오직 하나임

생활의 편리성을 위하여 키를 복제하여 쓰지만 논리적으로는 하나임

 

후보키 (Candidate Key)

한 릴레이션 R(A1, …, An)에 대한 속성의 집합 K={Ai,…, Aj} 으로

다음과 같은 성질을 만족함 

유일성 (Uniqueness) : 서로 다른 두 튜플의 속성집합 K 의 값은 같지 않음 (튜플의 유일성을 유지시키는 최소 속성 집합)

최소성 (Minimality)  : K 는 서로 다른 두 튜플을 식별하기 위한 최소한의 속성들로만 이루어져 있음

릴레이션의 특징 : 튜플의 유일성

예) 학번, 주민등록번호

[!] 전화번호는 바꿀 수 있기 때문에 후보키가 될 수 없음 (후보키는 바꿀 수 없는 것)

 

수퍼키 (Super Key)

유일성을 만족하는 속성 집합

최소성을 만족하지 않아도 됨

일반적으로 후보키는 수퍼키의 부분 집합임 ⇔ 수퍼키는 후보키를 포함함

수퍼키 : 이름, 학과 , 전화번호 (유일성이 보장이되어야함)

 

기본키 (Primary Key)

하나의 릴레이션에는 후보키가 여러 개 있을 수 있음

여러 개의 후보키 중 DBA 가 지정한 하나의 키임

 

대체키 (Alternative Key)

후보키 중 기본키를 제외한 나머지 후보키

 

외래키 (Foreign Key)

한 릴레이션 R1 의 튜플과 다른 릴레이션 R2 의 하나의 튜플과의 연관 관계를 표시하기 위하여 사용함

R1 의 속성집합 FK 의 도메인이 R2 의 기본키 일 때 , FK 를 R1 의 외래키라 함

R1 을 참조 릴레이션 , R2 를 피참조 릴레이션이라고 함

R1 과 R2 가 다른 릴레이션일 필요는 없음

예) 다른테이블에서는 기본키인데 내쪽으로 넘어오니까 아무것도 아니더라 : 외래키

a테이블에선 기본키인데 b테이블에선 아닌것이 외래키

내가 탈퇴를 했을때 내 글이 삭제가 되게끔하겠느냐/글은 남아있게 하겠느냐 : 외래키

외래키 설정을 했다면 나에 대한 정보가 탈퇴와 동시에 모두 사라짐

[!]외래키는 필수가 아님

 


개체 무결성

의미 : 서로 다른 두 튜플은 같을 수 없음

정의 : 기본키 값은 언제고 어느 때고 NULL 값일 수 없음

 

참조 무결성

외래키 값은 피참조 릴레이션의 기본키 값이거나 NULL 값임

추가 지정을 통해 NULL 을 가질 수 없다고 제약을 걸 수 있음

 

 

도메인 무결성

속성 (Attribute) 값은 해당 속성 (Attribute) 도메인에 속한 값들 중 하나이어야 함

예 ) 대학생의 학년 도메인 : 1, 2, 3, 4

- 9 학년 또는 10 학년은 존재할 수 없음

 

DBMS 는 데이터베이스의 상태 변화 ( 삽입 , 갱신 , 삭제 ) 에도 항상 무결성 제약조건을 검사하고 유지시킴