관계 데이터 모델의 개념

2023년 04월 11일

TOC

Database

개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델을 관계형 데이터 모델이라고 한다.

1️⃣ 기본 용어

릴레이션(Relation)

  • 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
  • 파일 관리 시스템 관점에서 파일(File)에 대응

속성(Attribute)

  • 릴레이션의 열, Attribute
  • 파일 관리 시스템 관점에서 필드(Field)에 대응

투플(Tuple)

  • 릴레이션의 행
  • 파일 관리 시스템 관점에서 레코드(Record)에 대응

도메인(Domain)

  • 하나의 속성이 가질 수 있는 모든 값의 집합
  • 속성 값을 입력 및 수정할 때 적합성 판단의 기준이 됨
  • 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의

널(Null)

  • 속성 값을 아직 모르거나 해당되는 값이 없음을 표현

차수(Degree)

  • 하나의 릴레이션에서 속성의 전체 개수

카디널리티(Cardinality)

  • 하나의 릴레이션에서 투플의 전체 개수

5-1

고객 릴레이션의 차수와 카디널리티 값은?

Degree : 6, Cardinality : 4

2️⃣ 릴레이션의 구성

릴레이션 스키마(Relation schema)

  • 릴레이션의 논리적 구조
  • 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의

    • ex) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
  • 릴레이션 내포(Relation Intension)라고도 함
  • 자주 변하지 않는 정적인 특징

릴레이션 인스턴스(Relation Instance)

  • 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
  • 릴레이션 외연(Relation Extension)이라고도 함
  • 투플의 삽입, 삭제, 수정이 자주 발생하는 동적인 특징

5-2

3️⃣ 데이터베이스의 구성

데이터베이스 스키마(Database Schema)

  • 데이터베이스의 전체 구조
  • 데이터베이스를 구성하는 릴레이션 스키마의 모음

데이터베이스 인스턴스(Database Instance)

  • 데이터베이스를 구성하는 릴레이션 인스턴스의 모음

5-3

4️⃣ 릴레이션의 특성

투플의 유일성

  • 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.

    • » 투플을 유일하게 구별하기 위해 선정하는 속성(또는 속성들의 모임)의 값으로 판단

투플의 무순서

  • 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.

속성의 무순서

  • 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

속성의 원자성

  • 속성 값으로 원자 값만 사용할 수 있다.

5️⃣ 릴레이션 키

키(key)

릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합

유일성(uniqueness)

- 하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함

최소성(minimality)

- 꼭 필요한 최소한의 속성들로만 키를 구성함

키의 종류

슈퍼키(super key)

  • 유일성을 만족하는 속성 또는 속성들의 집합
  • ex) 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름),(고객이름, 주소) 등

후보키(candidate key)

  • 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
  • ex) 고객 릴레이션의 후보키 : 고객아이디, (고객이름, 주소) 등

기본키(primary key)

  • 후보키 중에서 기본적으로 사용하기 위해 선택한 키
  • ex) 고객 릴레이션의 기본키 : 고객아이디

대체키(alternate key)

  • 기본키로 선택되지 못한 후보키
  • ex) 고객 릴레이션의 대체키 : (고객이름, 주소)

외래키(foreign key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 릴레이션들 사이의 관계를 표현

    – 참조하는 릴레이션 : 외래키를 가진 릴레이션

    – 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션


5-8
5-9 5-11
하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고, 외래키를 기본키로 사용할 수도 있다.
5-12
같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다.
그리고 외래키 속성은 널 값을 가질 수도 있다.

Reference

IT CookBook, 데이터베이스 for Beginner

Written by

yhuj79

🌱 Junior Developer