[DB] Relational Model

G·2023년 3월 11일
0

DB

목록 보기
3/11

Relation은 row와 column으로 이루어진 행렬 형태의 데이터 저장소이다.
이는 table의 형태이며 좀 더 formal한 정의를 알아보자.

doimain이란 하나의 attribute가 가질 수있는 모든 경우의 수를 의미한다.(주어진 타입과 범위 내에서)

domain의 성질

  • domain은 또한 attribute의 변수의 타입과 범위(길이)를 의미한다.
  • domain은 atomic하다.(하나의 쪼갤 수 없는 값이다.)
  • domain은 null을 값으로 가질 수 있다.

그리고 다음과 같이 정의해보자.

A1,A2,...,AnA_1, A_2, ..., A_n: attributes의 집합 (이름, 나이 등)
D1,D2,...,DnD_1, D_2, ..., D_n: attributes의 domain 집합, 주어진 타입과 범위 내의 가능한 모든 집합이라 생각하자. ex) (김인하, 19)

그리고 이 domain의 카테시안 곱을 수행하면 모든 경우의 테이블을 구할 수 있다.

D1×D2×...×DnD_1 \times D_2 \times ... \times D_n

이 row들의 개수를 table로 만들기 위한 모든 경우의 수이고 이에 대한 부분집합을 relation이라 칭한다.

row는 tuple로도 표현된다.

Schema and Instance

Database shcema는 다음과 같은 형태로 표현한다.

r(A1,A2,...,An)r(A_1, A_2, ..., A_n)
ex) instructor(ID,name,deptname,salary)instructor(ID, name, dept_name, salary)

relation instance는 relation의 실제의 값을 저장한 특정 시점의 상태이다.

attribute의 순서는 중요하지만, relation의 tuple은 순서가 중요하지 않다.

위의 relation은 동일한 relation이다.

Keys

key란 tuple을 구별할 수 있는 attribute를 뜻한다.
key의 종류와 정의를 알아보자.

  • Superkey: relation의 각각의 tuple을 구별할 수 있는 하나 이상의 속성의 조합이다.
    {ID}, {ID, name} 모두 superkey이다.
  • Candidate key: 최소 attribute를 사용한 superkey 조합이다. {ID}, {ID, name} 모두 superkey이지만 {ID}가 최소의 조합일 경우 이를 candidate key라 칭한다. 최소의 조합이 여러개일 경우 이 모두 candidate key이다.
  • Primary key: 최소의 조합들 중 개발자가 지정한 하나의 조합이다.
  • Foreign key: 다른 relation의 primary key이다.

    Referencing relation: 다른 relation의 primary key를 참조하는 relation
    Referenced relation: 다른 relation에게 primary key를 참조 당하는 relation
    참조하거나 당하는 key 모두 primary key이다.
profile
열심히 안 사는 사람

0개의 댓글