Relation
Relation은 DB에서 Table(표)과 같은 의미로 쓰인다.
Relation schema는 Relation을 속성과 속성들의 도메인을 나타낸다. 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 Relation에 psychology가 없기 때문에 { 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 |