Relation Data Model

Relation Data model

릴레이션의 예시

  • Attribute 속성 : 각 데이터를 의미하는 이름
  • Tuple 투플 : entity instance, record.
  • Domain 도메인 : 속성의 타입을 의미한다. 예를들어 age는 int로 정의할 수 있다.
  • Null
  • Degree 차수 : attribute의 갯수 여기서는 7개다
  • Cardinality 카디널리티 : tuple(entity instance)의 갯수

Relation의 특징

  1. Tuple의 유일성 : 하나의 relation에는 동일한 tuple이 존재 할 수 없다.
  2. Tuple의 무순서 : tuple간에는 순서가 없다. 효율을 위해 삽입 순서를 임의로 바꾸기도 한다.
  3. Attribute의 무순서 : attribute간에는 순서가 없다.
  4. Attribute의 원자성 : tuple속 데이터는 하나의 값만 들어가야 한다.

Key

1. Super key

  • 유일성의 특성을 만족하는 attribute의 집합이다.
  • 유일성은 key가 갖춰어야 하는 기본 특성으로 , 하나의 relation에서 key로 지정된 속성 값은 tuple마다 달라야 한다는 의미다. key가 같은 tuple은 존재할 수 없다.
  • 그런데 super key중에는 유일한 tuple을 구별하기 위해 N개의 tuple이 다름을 판단하기 위해 불필요한 attribute 값까지 확인하는 비효율적인 작업이 필요한 경우도 있다. 그래서 몇가지로 제한하는 것이 candidate key다.

2. Candidate key

  • 유일성과 최소성을 만족하는 attribute의 집합니다.
  • 최소성은 꼭 필요한 최소한의 attribute들로만 key를 구성하는 특징이다.
  • 유일성과 최소성의 특징은 새로운 tuple이 삽입되거나 기존 tuple attribute가 바껴도 유지되어야 한다.

3. Primary key

  • relation에서 tuple을 구별하기 위해 여러개의 candidate key를 모두 사용할 필요는 없다. 그중에 하나만 선택해 primary key로 사용한다.
  • Null 값을 가질 수 있는 attribute가 포함된 cadidate key는 primary key로 부적합한다.
  • 값이 자주 변경 될 수 있는 attribute가 포함된 candidate key는 primary key로 부적합하다
  • 단순한 candidate key를 primary key로 선택한다.

4. Foreign key

  • 다른 릴레이션의 primary key가 되는 key다. 아래의 scheme을 보면 이해할 수 있다.

5. Alternative key

  • primary key로 선정되지 못한 candidate key를 말한다.