Study/데이터베이스

5장 - 관계 데이터 모델

석사한 화이트핸드 2024. 11. 20. 03:50
728x90
반응형

출처 : http://www.kocw.net/home/cview.do?lid=26bf847a9eeeafa5

 

데이터베이스의 원리와 응용

본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다.

www.kocw.net

 

 

이번 시간에는 관계 데이터 모델에 대해서 학습한다.

 

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

 

 

학습목표

  • 관계 데이터 모델의 기본 용어를 익힌다.
  • 릴레이션을 구성하는 요소와 특성을 이해한다.
  • 릴레이션에서 키의 역할과 종류를 알아본다.
  • 무결성 제약의 의미와 필요성을 이해한다.

 

 

이전 장에서는 2단계 개념적 설계를 학습했다. 이번 시간에는 3단계 논리적 설계 단계를 학습한다.

 

 

논리적 설계 단계는 개념적 설계에서 만든 E-R 다이어그램을 바탕으로 논리적 스키마를 만드는 단계이다.

 

 

관계 데이터 모델의 개념

관계 데이터 모델의 기본 개념

  • 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
  • 하나의 개체에 대한 데이터를 2차원 릴레이션에 저장한 것
  • 파일 관리 시스템 관점에서 파일에 대응
  • 위 그림은 고객이라는 개체를 릴레이션(테이블)으로 변환한 예시이다.
  • 튜플 : 테이블의 한 행. 인스턴스(실제 객체의 값)들이 저장되어있다.
  • 속성 : 테이블의 한 열
  • 도메인
    • 각 속성이 가질 수 있는 값의 집합(int, char 등).
    • 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 된다.
    • 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의
  • 널(Null) : 속성 값을 아직 모르거나 해당되는 값이 없음을 표현
  • 차수(degree) : 하나의 릴레이션에서 속성의 전체 개수
  • 카디널리티(cardinality) : 하나의 릴레이션에서 투플의 전체 개수

 

 

릴레이션의 구성

릴레이션은 크게 릴레이션 스키마와 릴레이션 인스턴스 2가지로 나눌 수 있다.

  • 릴레이션 스키마(Relation Schema)
    • 릴레이션의 구조를 정의하는 것으로, 테이블의 설계도라고 볼 수 있다. 
    • 릴레이션의 논리적 구조
    • 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의(ex. 고객[아이디, 이름, 나이, 등급, 직업, 적립금])
    • 릴레이션 내포라고도 한다
    • 릴레이션에 어떤 종류의 데이터를 저장할 것인지 미리 정의하여 데이터의 구조를 확립한다.
    • 정적인 특징이 있음
  • 릴레이션 인스턴스(Relation Instance)
    • 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
    • 릴레이션 외연이라고도 한다.
    • 릴레이션 스키마에 따라 실제로 저장된 데이터의 집합이다.
    • 릴레이션 스키마에서 정의된 구조에 맞춰 실제 데이터를 저장한다.
    • 동적인 특징이 있음

 

 

데이터베이스의 구성

  • 데이터베이스 스키마
    • 데이터베이스의 구조를 정의하는 설계도
    • 데이터베이스의 전체적인 구조를 설계하고 정의한다.
    • 데이터를 효율적으로 저장하고 관리하기 위한 기반을 제공한다.
    • 데이터베이스를 사용하는 사용자에게 데이터의 의미와 구조를 알려준다.
  • 데이터베이스 인스턴스
    • 스키마에 따라 실제로 저장된 데이터의 집합. 즉, 데이터베이스의 현재 상태를 나타낸다.
    • 스키마에서 정의된 구조에 맞춰 실제 데이터를 저장한다.
    • 데이터베이스의 내용을 보여주고, 사용자가 데이터를 조회하거나 수정할 수 있도록 한다.

 

릴레이션의 특성

  • 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
  • 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다. 즉, 더 이상 분해될 수 없는 하나의 원자 값이어야 한다.

 

 

키(Key)

  • 릴레이션에서 각 튜플들을 유일하게 식별하는 데 사용되는 속성 또는 속성들의 집합
  • 릴레이션에서 중복되는 값이 없도록하여 각 행을 고유하게 구분하는 역할을 한다.
  • 키의 종류
    • 슈퍼키(super key) : 유일성을 만족하는 속성 또는 속성들의 집합
    • 후보키(candidate key) : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
    • 기본키(primary key) : 후보키 중에서 기본적으로 사용하기 위해 선택한 키
      • Null 값을 가질 수 있는 속성이 포함된 후보키는 부적합
      • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
      • 단순한 후보키를 선택
    • 대체키(alternate key) : 후보키 중에서 기본키로 선택되지 않은 나머지 후보키들을 의미
    • 외래키(foreign key) : 다른 릴레이션의 기본키를 참조하는 속성. 두 릴레이션 간의 관계를 나타내는 데 사용된다.
      • 외래키 속성과 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야 한다.
      • 하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고, 외래키를 기본키로 사용할 수도 있다.
      • 같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다.
      • 외래키 속성은 Null 값을 가질 수 있다.
  • 키의 특성
    • 유일성(uniqueness) : 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 한다.
    • 최소성(minimality) : 꼭 필요한 최소한의 속성들로만 키를 구성

 

 

관계 데이터 모델의 제약

무결성 제약조건(Integrity Constraint)

  • 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
  • 무결성 : 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것

무결성 제약조건은 2가지로 나뉜다.

  • 개체 무결성 제약조건
    • 기본키를 구성하는 모든 속성은 Null 값을 가질 수 없는 규칙
  • 참조 무결성 제약조건
    • 외래키는 참조할 수 없는 값을 가질 수 없는 규칙
728x90
반응형