Database

Chapter 05. 관계 데이터 모델

JinWooHong Dev 2019. 10. 17. 00:08

1. 관계 데이터 모델의 개념

1-1. 관계 데이터 모델의 기본 용어

  • 일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(Relation) 하나에 담아 데이터베이스에 저장.
  • 릴레이션의 예 : 고객 릴레이션
고객아이디
CHAR(20)
고객이름
CHAR(20)
나이
INT
등급
CHAR(10)
직업
CHAR(10)
적립금
INT
apple 김현준 20 gold 학생 1000
banana 정소화 25 vip 간호사 2500
carrot 원유선 28 gold 교사 4500
orange 정지영 22 silver 학생 0
  • 속성 : 릴레이션의 열을 속성 또는 애트리뷰트(Attribute)라고 부른다.
  • 투플 : 릴레이션의 행을 투플(Tuple)이라 부른다.
  • 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인(Domain)이라 한다. 도메인을 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 적합성을 판단하여 네 가지 잉외의 값을 허용하지 않음으로써 항상 올바른 값만 유지할 수 있다는 장점이 있다.
  • 널 값 : 릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널(Null)이라는 특별한 값을 사용할 수 있다.
  • 차수 : 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수(Degree)라고 한다.
  • 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수를 릴레이션의 카디널리티(Cardinality)라고 한다.

 

1-2. 릴레이션과 데이터베이스의 구성

  • 릴레이션 스키마 : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조.
  • 릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 존재하는 투플들의 집합.

 

1-3. 릴레이션의 특성

  • 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.
  • 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.
  • 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다.

 

1-4. 키의 종류

릴레이션에 포함된 투플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다.

  • 슈퍼키 : 유일성의 특성을 만족하는 속성 또는 속성들의 집합
  • 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합.
  • 기본키 : 여러 후보키 중에서 기본적으로 사용해야 하는 키
    1. 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
    2. 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
    3. 단순한 후보키를 기본키로 선택한다.
  • 대체키 : 기본키로 선택되지 못한 후보키
  • 외래키 : 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키

 

2. 관계 데이터 모델의 제약

2-1. 개체 무결성 제약조건

개체 무결성 제약조건(Entity Integrity Constraint)이란?

  • 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙.
  • 기본키를 구성하는 속성 전체나 일부가 널 값이 되면 투플의 유일성을 판단할 수 없어 기본키의 본래 목적을 상실하게된다.

 

2-2. 참조 무결성 제약조건

참조 무결성 제약조건(Referential Integrity Constraint)이란?

  • 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙.
  • 외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 없어지기 때문에 외래키는 참조 가능한 값만 가져야 한다.