Database - 2(1)

김세영·2021년 4월 15일
0

Relational Model

관계 모델은 이전에도 설명하였듯이, Table로 표현됩니다.

  • Attributes: A1, A2, A3, ..., An
  • Relation Schema R = (A1, A2, ..., An)
    ex) instructor = (ID, name, dept_name, salary)
  • Schema R에 정의된 relation instance rr(R)로 표시됩니다.
  • relation r의 원소 t는 tuple이라 하며, 테이블의 행을 나타냅니다.

Attribute의 특징

  • Attribute에는 허용된 값의 범위가 있는데, 이를 Domain이라 합니다.
    ex) string, varchar(20), number, ...
  • Attribute 값들은 Atomic합니다.
    • 쉽게 말해 테이블의 한 칸에 해당하는 값에는 무조건 값 하나만 들어가야 한다는 뜻입니다. 위의 instructor에서 name에 값이 두 개 이상 들어가면 이상하겠죠?
  • null은 모든 Domain에 포함된 값입니다. null은 "unknowned"를 뜻합니다.

Keys

  • Superkey

    Relation schema R이 있고, R의 부분집합 K를 정의합니다.
    만약 Kr(R)을 모두 구분할 수 있다면, KRsuperkey라 합니다.
    ex) instructor(ID, name, dept_name, salary)에서, 
    (12321, Turing, Comp.Sci., 92000),
    (65432, Einstein, Physics, 95000), ...
    이 있다고 했을 때, 이름/학과/연봉은 겹치는 사람이 있을 수 있지만 
    ID가 겹칠 수는 없기 때문에 {ID}를 포함한 집합이 superkey가 됩니다.
  • Candidate Key

    K가 각 항목들을 구분하기 위한 최소한의 값들만 가지고 있을 때,
    K후보 키 또는 Candidate Key라고 합니다.

  • Primary Key

    Candidate Key중 하나를 Primary Key로 설정할 수 있습니다.
    이 때, 변하지 않는 값으로 지정하는 것이 좋습니다.

  • Foreign Key

    외래 키라고도 하며, Referencing relation: 참조하고 있는 값, Referenced relation: 참조당하는 값으로 나뉘어집니다.

profile
초보 iOS 개발자입니다ㅏ

0개의 댓글