키(Key)의 개념
- 관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합으로, 데이터베이스의 참조 또는 검색 시에 사용된다.
키(Key)의 종류
학번 | 이름 | 주민번호 | 학과 | 학년 |
180222 | 강희영 | 960503-1234567 | 컴퓨터 | 1 |
170203 | 김정미 | 980225-2345678 | 컴퓨터 | 2 |
150525 | 이나라 | 961207-2456789 | 신문방송 | 4 |
150723 | 강희영 | 961002-1345678 | 체육 | 4 |
1) 후보키(Candidate Key)
- 릴레이션(테이블)에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합을 말한다.
- 후보키가 될 수 있는 조건은 유일성과 최소성을 모두 만족해야 한다.
ex) 위 [학생] 테이블에서 학생 개개인을 구분하기 위해서는 학번이나 주민번호를 알면 서로를 구분할 수 있다.
따라서 "학번"과 "주민번호"는 후보키가 된다.
유일성 : 각 튜플을 유일하게 식별하는 성질을 말한다.
최소성 : 각 튜플을 유일하게 식별할 수 있는 최소 구성의 성질을 말한다.
2) 기본기(Primary Key)
- 후보키 중에서 튜플을 식별하기 위해 특별히 선택된 키를 말한다.
- 중복될 수 없으며, NULL값이 올 수 없다.
- 유일성과 최소성을 만족해야 한다.
ex) 위 [학생] 테이블에서 유일성과 최소성을 만족하는 학번 또는 주민번호를 기본키로 설정할 수 있다.
3) 대체키(Alternate Key)
- 후보키 중에서 기본키를 제외한 속성을 말한다.
ex) 위 [학생] 테이블에서 "학번"을 기본키로 했다면 대체키는 "주민번호"가 된다.
4) 외래키(Foreign Key)
- 외래키는 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조(이용)하기 위해 사용되는 속성을 말하며, 외래 식별자라고도 한다.
- 외래키는 참조 릴레이션(테이블)의 기본키와 같아야 한다.
- 외래키는 NULL이 올 수 있다.
- 외래키의 속성명과 참조 릴레이션의 기본키 속성명은 서로 달라도 무방하다.
식별 관계 : 외래키가 기본키인 경우.
비식별 관계 : 외래키가 일반 속성인 경우.
5) 슈퍼키(Super Key)
- 슈퍼키는 한 릴레이션(테이블) 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합을 말한다.
- 슈퍼키는 유일성은 만족하지만, 최소성은 만족하지 않는다.
ex) 위 [학생] 테이블에서 학생 개개인을 구분하기 위한 모든 경우를 후보키와 조합해서 나열하면 다음과 같다.
(학번, 이름 or 주민번호 or 학과 or 학년), (학번, 이름, 학과), (주민번호, 이름) ...
무결성(Integrity) 제약조건
- 제약조건은 정확성과 완전성을 유지하기 위한 제약조건이다.
1) 개체 무결성
- 기본키는 NULL값이 올 수 없으며, 중복될 수 없음을 나타내는 제약조건이다.
- 개체 무결성은 개체를 식별하기 위해서 오류가 없도록 하기 위한 제약조건이다.
2) 참조 무결성
- 외래키는 NULL값이 올 수 있으며, 참조 릴레이션(테이블)의 기본키와 같아야 하는 제약조건으로 테이블 참조 시 오류가 없도록 하기 위한 제약조건이다.
3) 도메인 무결성
- 릴레이션(테이블)에서 속성값의 범위가 정의된 경우 그 속성값은 정해진 범위 이내의 값으로 구성해야 하는 제약조건이다.
- 동일한 속성에 대해 데이터 타입과 데이터 길이가 동일해야 한다.
4) 고유(Unique) 무결성
- 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 하는 제약조건이다.
5) NULL 무결성
- 특정 속성값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성값은 NULL값이 올 수 없다는 제약조건이다.
6) 키 무결성
- 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 하는 제약조건이다.
'정보처리산업기사 실기 > 데이터베이스' 카테고리의 다른 글
SQL 정의어(DDL : Data Definition Language) (0) | 2020.11.06 |
---|---|
관계 데이터 연산 (0) | 2020.11.06 |
관계 데이터 모델 (0) | 2020.11.06 |
개체-관계 모델(Entity-Relationship Model, ERM) (0) | 2020.11.05 |
데이터베이스 설계 (0) | 2020.11.05 |