[MySQL] 키(Key), 무결정 제약 조건

2020. 9. 28. 13:52Database/MySQL

1. 키 (Key)

1) 키 (Key)

정보를 찾는 열쇠로, 데이터베이스에서 조건에 만족하는 테이블을 찾거나 순서대로 정렬할 때 기준이 되는 속성이다.

2) 슈퍼키

유일성의 특성을 만족하는 속성 또는 속성들의 집합이다. 하나의 테이블에서 키로 지정된 속성의 값은 행마다 달라야 한다.

3) 후보키

유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다. 키를 구성하고 있는 여러 속성 중에 하나라도 없으면 행을 유일하게 구별할 수 없는 꼭 필요한 최소한의 속성들로만 구성된 키이다(하나의 속성으로 구성된 키는 최소성을 만족한다.). 슈퍼키 중에서 최소성을 만족하는 것이 후보키가 된다.

4) 기본키

여러 후보키 중에 기본적으로 사용할 키이다. 행을 구별하기 위해 여러 개의 후보키를 사용할 필요는 없다. 후보키가 한 개만 존재하면 해당 후보키를 기본키로 선택하지만 여러 개일 경우 사용 환경을 고려하여 적합한 것을 기본키로 선택한다. NULL 값을 가질 수 없고, 값이 자주 변경되지 않는 값이여야 한다.

5) 대체키

기본키로 선택되지 못한 후보키이다.

6) 외래키

어떤 테이블에 소속된 속성 또는 속성 집합이 다른 테이블의 기본키가 되는 키이다. 외래키는 테이블들 사이의 관계를 올바르게 표현하기 위해 사용된다.

 

 

 

2. 무결성 제약 조건

1) 개체 무결성 제약 조건

기본키를 구성하는 모든 속성은 NULL 값을 가지면 안된다. 기본키를 구성하는 속성 전체나 일부가 NULL 값이 될 경우, 테이블의 유일성을 판단할 수 없어 기본키의 본래 목적을 상실한다.

2) 참조 무결성 제약 조건

외래키는 참조할 수 없는 값을 가질 수 없다. 외래키는 다른 테이블의 기본키를 참조하는 속성이며 테이블간의 관계를 표현한다. 자신이 참조하는 테이블의 기본키와 상관이 없는 값을 가지게 될 경우, 두 테이블을 연관시킬 수 없다. 따라서 자신이 참조하는 테이블에 기본키 값으로 존재하는 값, 즉 참조 가능한 값만 가져야한다. NULL이거나 부모 테이블에 존재하는 값이어야 한다.

728x90

'Database > MySQL' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.09.28
[MySQL] SQL (DDL, DML, DCL)  (0) 2020.09.28
[MySQL] 데이터베이스 설계 및 생성  (0) 2020.09.28
[MySQL] MySQL  (0) 2020.09.28