키 (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 는 데이터베이스의 상태 변화 ( 삽입 , 갱신 , 삭제 ) 에도 항상 무결성 제약조건을 검사하고 유지시킴
'Programming > SQL' 카테고리의 다른 글
[SQL/실습] 데이터 구조 생성과 변경 - 테이블 만들기 전 생각해야할것들 (0) | 2020.12.15 |
---|---|
[SQL] SQL의 개념과 기본구문 정리 (0) | 2020.11.01 |
[SQL] 관계형 데이터 모델의 구조와 연산 - 릴레이션 / 도메인 (0) | 2020.10.29 |
[SQL] 데이터베이스 관리 시스템(DBMS)의 정의와 기능 (0) | 2020.10.29 |
[SQL] 데이터베이스의 특징 (0) | 2020.10.29 |