출처: https://3months.tistory.com/307 [Deep Play]

4-1/데이터베이스시스템

Chapter 2 Relation, Key

코딩하는 랄뚜기 2022. 3. 14. 21:18

Relation

 

RelationDB에서 Table(표)과 같은 의미로 쓰인다.

Relation schemaRelation을 속성과 속성들의 도메인을 나타낸다. R = (A1,A2,...,An) 로 표현한다.

위는 Instructor Relation의 예시이다.

Instructor Relation schema 는 Instructor = { ID, name, dept_name, salary } 이다.

Relation를 구성하는 tuple은 정렬되어있지 않다

 

Database는 Data가 추가되거나 제거되기 때문에 그 상태가 계속 변한다. 이런 Database의 한 순간을 Database instance라고 한다. (Database instance는 변하지 않는다.)

 


 

Key

 

Key는 Relation에서 특정 tuple을 찾거나 정렬할 때 다른 tuple과 구별할 수 있는 기준이 되는 Attribute이다.

 

Superkey는 Relation에서 tuple끼리 구별할 수 있는 속성의 모임이다.

Superkey에서 속성의 개수가 가장 적은 것을 Candidate key라고 한다.

즉, Superkey는 Candidate key를 포함한 속성들의 집합이다.

Candidate key들 중 실제로 tuple을 구별 할 때 사용하기 위해 하나를 고르는데 이를 Primary key라고 한다.

 

간단한 예시를 통해 알아보자.

 

 

Candidate key - 주민등록번호, 학번

Superkey - { 주민등록번호, 이름 }, { 학번, 이름 }, { 주민등록번호, 학번, 성별 }... Candidate key가 포함된 속성들의 집합

Primary key - 주민등록번호, 학번 중 하나

 

※여기서 만약 주민등록번호와 학번이 없다면 Candidate key와 Primary key는 { 이름, 성별  }이 된다.

 

Foreign key는 외부 Relation의 key값을 참조하는 key로 반드시 참조되는 Relation의 key값만 나와야 한다는 조건이 있다. 이 조건을 Foreign key constraint라고 한다.

잘 이해가 안가기 때문에 예시를 들어보자.

 

 

 

Instructor Relation의 dept_name이 Department Relation의 dept_name을 referencing하고있다. 즉, Instructor Relation의 dept_name은 Foreign key이다.

Department Relationpsychology가 없기 때문에 { 10231, Karina, psychology, 65000 }은 Instruction Relation에 추가 될 수 없다.

 

 

 

'4-1 > 데이터베이스시스템' 카테고리의 다른 글

Chapter 2 : Reduction to Relation Schemas  (0) 2022.03.28
Chapter 6 : ER Model  (0) 2022.03.21
Chapter2 : Relational Algebra  (0) 2022.03.18