티스토리 뷰

#1 기본키

 

기본키 PK : Primary Key는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키이다.

기본키의 속성을 정리하면 다음과 같다.

 

기본키의 속성

1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.

2. 값의 중복이 없어야 한다.

3. NULL 값을 가질 수 없다.

 

기본키는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있다.

예를 들어 다음과 같이 학생을 관리하는 학생 정보 테이블이 있다고 가정해 보자.

학생별로 특정 서비스를 제공하려면 각 학생을 구별할 수 있는 데이터가 필요하다.

이 경우에 학번, 아이디, 주민등록번호가 각 학생을 구별할 수 있는 데이터가 될 수 있다.

이들 중 한 열을 기본키로 지정한다.

대부분의 경우에 개인 정보 노출이 가장 적은 데이터를 선정하기 때문에 여기에서는 학번을 기본키로 지정했다.

웹 서비스를 비롯한 대부분의 프로그램은 가입 회원을 관라하기 위해 회원번호 특수한 데이터를 따로 정의하여 관리한다. 이러한 데이터는 내부 관리 목적으로 사용하므로 일반적으로 사용자에게는 공개하지 않는다.

 

널 NULL은 특정 열 값이 존재하지 않는다는 의미이다.

지금은 '비어 있는 값' 정도로 생각하면 된다.

 

 

#2 보조키 Alternate key

보조키는 대체키 alternate key라고도 부르며 후보키 candidate key에 속해 있는 키이다.

그리고 후보키 중에서 기본키로 지정되지 않은 열이다.

 

엄밀한 의미의 후보키는 기본키가 될 수 있는 모든 키를 의미한다. 즉 기본키 역시 후보키에 속한다.

이 후보키 중 기본키로 지정되지 않은 키를 보조키 또는 대체키라고 한다.

그리고 행식별이 가능한 키의 모든 조합을 의미하는 슈퍼키 super key 개념도 존재한다.

 

 

#3 외래키 Foreign Key : FK

FK키는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다.

외래키는 외부키로도 부른다. 하지만 실우에서는 외부키나 외래키보다 포린키 foreign key라고 부르는 경우가 더 많다.

 

외래키는 테이블을 참조할 때 사용하는 키이다.

 

실무에서는 데이터베이스를 활용하여 프로그램 및 서비스를 구축할 때 테이블 개수는 많게는 몇 백, 몇 천개에 이른다.

또 하나의 테이블이 가진 열 수 또한 몇 백개를 넘나드는 일도 종종 있다.

그리고 행 수는 조금 규모가 있다 싶으면 억 단위를 웃도는게 흔한 일이다.

 

외래키는 데이터의 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소이다.

하지만 실무에서 데이터베이스를 활용하여 응용 프로그램을 만들 때 데이터의 구조 및 설계가 외래키를 사용해 너무 엄격하게 정의하면 응용 프로그램의 제작과 테스트 진행에 걸림돌이 되기도 한다.

따라서 테이블 사이의 관계에서 개념적으로 외래키가 필수인 상황일지라도 응용 프로그램 제작의 효율 및 편의를 위해 외래키를 따로 정의하지 않고, 테이블 사이의 관계를 '느슨하게' 설계하여 이를 응용 프로그램 영역에서 처리하는 경우도 종종 발생한다.

 


#4 복합기 Composite Key

복합키는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 뜻한다.

복합키를 만들 때 적게는 두세 개, 많게는 열 개가 넘는 열을 조합하기도 한다.

왜냐하면 하나의 열만으로 행을 식별하는 것이 불가능하여 두 개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문이다.

 

예를 들어 학생들의 수강 과목 데이터를 생각해 보자.

수강과목 데이터는 앞에서 살펴본 학과 코드와 마찬가지로 과목 코드 열을 가진 과목 정보 테이블로 표현할 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함