본문 바로가기

2021 정보처리기사/3과목: 데이터베이스 구축

[2021 정보처리기사-3과목] 키(Key)의 개념과 종류

728x90
반응형

 

[정보처리기사 3과목 필기 예상 키워드] 목록으로 돌아가기
과목: 3. 데이터베이스 구축
챕터: 1장 논리 DB 설계
키워드: DB 설계 / 데이터 모델의 개념
 #Verification

 

 

 

키(Key)의 개념

 

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성(Attribute)를 말한다. 한 Relation에서 각각의 튜플을 유일하게 식별하기 위해 사용하는 하나 혹은 그 이상의 속성들의 집합을 뜻함

 

 

 

 

후보키(Candidate Key)

 

 

<학생> 릴레이션
학번 주민번호 이름 혈액형
202011 840404-1212121 김철수 O
202012 860830-2193929 김민아 O

 

 

후보키는 기본키가 될 수 있는 말 그대로 '후보' 키들을 이야기 한다. 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하게 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들이다.

 

ex) <학생> 릴레이션에서 '학번'이나 '주민번호'는 다른 레코들을 유일하게 구별할 수 있는 기본키로 사용할 수 있으므로 후보키이다.

 

후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다.

 

 ✔유일성(Unique): 하나의 키 값으로 하나의 튜플만을 유일하게 식별한다
✔ 최소성(Minimality): 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성된다

 

 

 

 

 

기본키(Primary Key)

 

 

기본키는 후보키 중에서 특별히 선정된 주키(Main Key)로 중복된 값을 가질 수 없다. 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이고 *NULL 값을 가질 수 없다. 즉, 튜플에서 기본키로 설정된 속성에는 NULL값이 있어서는 안된다.

 

 

*NULL값:
데이터베이스에서 아직 알려지지 않거나 모르는 값으로써 '해당 없음' 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터를 의미

 

 

<학생> 릴레이션
학번 주민번호 이름 학과
202011 840404-1212121 김철수 컴퓨터공학과
202012 860830-2193929 김민아 컴퓨터공학과
<수강> 릴레이션
학번 과목명
202011 소프트웨어 개발
202012 소프트웨어 설계

 

ex) <학생> 릴레이션에서는 '학번'이나 '주민번호'가 기본키가 될 수 있고, <수강> 릴레이션에서는 '학번'+'과목명'으로 조합해야 기본키가 만들어진다. 

'학번'이 <학생> 릴레이션의 기본키로 정의되면 이미 입력된 202011 등은 다른 튜플의 '학번' 속성의 값으로 입력할 수 없다.

 

 

 

대체키(Alternate Key)

 

 대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다(보조키). 아래의 <학생> 릴레이션에서 '학번'을 기본키로 정의하면 '주민번호' 는 대체키가 된다.

 

 

<학생> 릴레이션
학번 주민번호 이름 학과
202011 840404-1212121 김철수 컴퓨터공학과
202012 860830-2193929 김민아 컴퓨터공학과

 

 

 

 

슈퍼키(Super Key)

 

슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다. 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.

 

<학생> 릴레이션
학번 주민번호 이름
202011 840404-1212121 김철수
202012 860830-2193929 김민아

 

 

ex) <학생> 릴레이션에서는 '학번','주민번호','학번+주민번호', '주민번호+성명', '학번+주민번호+성명' 등으로 슈퍼키를 구성할 수 있다.

 

 

 

 

 

외래키(Foreign Key)

 

외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다. 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구이다. 한 릴레이션에 속한 속성 A와 *참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 한다.

 

외래키로 지정되고나면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.

 

*참조 릴레이션: 외래키를 포함하는 릴레이션이 참조하는 릴레이션이고, 대응되는 기본키를 포함하는 릴레이션이 참조릴레이션이다. 여기서는 <수강> 릴레이션이 참조하는 릴레이션이고, <학생> 릴레이션이 참조 릴레이션이다.

 

<학생> 릴레이션
학번 주민번호 이름
202011 840404-1212121 김철수
202012 860830-2193929 김민아

 

<수강> 릴레이션
학번 과목명
202011 소프트웨어 개발
202012 소프트웨어 설계

 

ex) 
<수강> 릴레이션이 <학생> 릴레이션을 참조하고 있으므로 <학생> 릴레이션의 '학번'은 기본키이고, <수강> 릴레이션의 '학번'은 외래키이다


<수강> 릴레이션의 '학번'에는 <학생> 릴레이션의 '학번'에 없는 값은 입력할 수 없다.

 

 

 

 

 


 

 

[2021 정보처리기사 필기 총정리] 3과목 (상시업데이트)

목차 2021년 정보처리기사 공부를 위해 각 과목/챕터 별 Best 키워드를 정리해 놓은 글입니다. 시나공 문제집의 기출빈도와 중요도를 기준으로 정리된 키워드들이며, 순서와 관계 없

y-oni.tistory.com

참고: 시나공 정보처리기사 필기 (저자: 강윤석, 김용갑, 김우경, 김정준 | 출판사: 길벗), 유튜브 주간컴공TV

728x90