본문 바로가기

데이터베이스 Database

Chapter 4 관계 데이터베이스

관계 데이터 모델(Relation Data Model)

  • 관게(형) 데이터베이스(Relational Database)의 데이터 모델
  • E.F. Codd 제안(IBM, 1970)
  • 모든 데이터는 릴레이션(Relation, 관계)으로 표현
    • 릴레이션 ≒ 테이블(Table, 표)
더보기

릴레이션(Relation) = 릴레이션 스키마(Relation Schema) + 릴레이션 인스턴스(Relation Instance)

릴레이션 스키마

  • 속성들의 집합으로 릴레이션의 논리적 구조를 나타냄
  • '릴레이션 스킴(Relation Scheme)' 또는 '릴레이션의 내포(Intension)'라고도 함
  • 시간에 따라 변하지 않음

릴레이션 인스턴스

  • 일정 시점에서의 투플(Tuple)들의 집합
  • 시간에 따라 변함

투플: 속성에 해당하는 데이터의 모임

릴레이션의 예

더보기

속성(Attribute)

  • 단순 속성(Simple Attribute): 단일값
  • 복합 속성(Composite Attribute): 단순 도메인의 결합으로 이루어진 속성
    • 예) DATE는 YEAR, MONTH, DAY 결합
    • 일반적으로 하나의 속성값으로 취급

속성의 값은 분해할 수 없는 원자값(Atomic Value)임

도메인(Domain): 속성이 취할 수 있는 원자 값들의 집합

 

릴레이션의 정의 예

CREATE	DOMAIN	DSNO	INTEGER;
CREATE	DOMAIN	NAME	CHAR(10);
CREATE	DOMAIN	DYEAR	INTEGER DEFAULT 1 CONSTRAINT CHECK VALUE BETWEEN 1 AND 4;
CREATE 	DOMAIN	DEPT	CHAR(6);
CREATE	TABLE	STUDENT
		(sno	DOMAIN	DSNO,
                 sname	DOMAIN	NAME,
                 year	DOMAIN	DYEAR,
                 dept	DOMAIN	DEPT);

도메인, 속성, 스키마, 릴레이션

 

릴레이션의 수학적 의미

  • 릴레이션은 도메인 순서쌍(Domain Cartesian Product) 집합의 부분 집합

RD1×D2×D3××Dn

  • 릴레이션의 차수(Degree): 릴레이션을 이루는 속성의 개수
  • 카디널러티(Cardinality): 릴레이션에 포함된 투플의 개수(인스턴스 수)

 

널(Null) 값

  • 정보의 부재를 나타내는 특수한 값
    • 아직 알려지지 않은 값(Unknown Value)
    • 값이 있지만 아직 모름(Value exists, but is not available)
  • 공백(Blank) 또는 영(Zero)과는 다름

 

릴레이션의 특성

  • 투플의 상이성(uniqueness of tuples)
    • 릴레이션에 포함된 투플은 모두 상이하다
    • 모든 속성의 값이 동일한 투플이 존재해서는 안됨
  • 투플의 무순서성(no ordering of tuples)
    • 릴레이션 내의 투플들 간에는 순서가 없음
  • 속성의 무순서성(no ordering of attributes)
    • 릴레이션 내의 속성들 간에는 순서가 없음
  • 속성의 원자성
    • 모든 속성의 값은 원자값(atomic value)
    • 관계 데이터 모델은 정규화 릴레이션(normalized relation)만을 대상으로 함

정규화의 예
관계 데이터베이스의 예

 

데이터베이스 키(Key)

  • 키(Key)
    • 릴레이션 내의 투플을 항상 유일하게 식별할 수 있는 속성들의 집합
    • 투플 식별자(Tuple Identifier)라 할 수 있음
  • 후보키(Candidate Key)
    • 유일성(Uniqueness)과 최소성(Minimality)를 모두 만족하는 키
    • 모든 릴레이션은 적어도 하나의 후보키를 가짐
  • 수퍼키(Super Key): 유일성은 만족하나 최소성은 만족하지 못하는 키
  • 기본키(Primary Key, PK)
    • 후보키들 중에서 설계자가 특별히 지정한 키
    • 널(NULL) 값을 가질 수 없음
    • 데이터 접근 방법과 관련하여 중요한 의미를 가진다
  • 대체키(Alternate Key): 기본키로 지정되지 않은 후보키
  • 외래키(Foreign Key, FK)
    • 다른 릴레이션의 기본키(PK)인 속성
    • NULL 값을 가질 수는 있음

※ 키는 특정시점에 릴레이션의 투플들을 보고 판단하는 것이 아니라,

   스키마를 작성할 때, 속성들이 나타내는 값의 의미를 기준으로 판단해야 함

 

기본키와 외래키

 

무결성 제약(Integrity Constraint)

  • 개체 무결성 제약(Entity Integrity Constraint): 기본키에 해당하는 속성은 널 값이 될 수 없다.
  • 참조 무결성 제약(Referential Integrity Constraint): 참조할 수 없는 외래키(FK) 값은 가져서는 안된다.
    • 참조 릴레이션의 FK 값은 NULL 또는 반드시 피참조 릴레이션의 PK로 존재하는 값일 것!