프로그래밍/Database

관계 데이터 모델, 릴레이션

미냐님 2020. 4. 6. 20:37
728x90

관계 데이터 모델의 개요

  1. 관계 데이터 모델이란?
    • 관계 데이터 모델
      • 개념적 구조를 논리적 구조로 표현한 모델
      • 개체에 관한 데이터를 행과 열로 구성된 데이블(릴레이션)에 저장
  2. 관계 데이터 모델의 기본 용어
    • 릴레이션 (Relation)
      • 개체에 대한 데이터를 2차원 테이블의 구조로 저장한 것
      • 파일 관리 시스템의 파일(File)에 대응


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


    • 투플 (Tuple)
      • 릴레이션의 행
      • 개체 인스턴스
      • 파일 관리 시스템의 레코드(Record)에 대응
      • 예 : 회사 사원 개체 집합에 5개의 사원 정보가 있을 경우, 5개의 투플 또는 5개의 개체 인스턴스가 있다고 한다.


    • 도메인 (Domain)
      • 하나의 속성이 가질 수 있는 모든 값의 집합
        • 예: 회사의 직급 - 대표이사, 전무, 상무, 부장, 차장, 과장, 대리, 사원
      • 속성의 특성을 고려한 데이터 타입으로 정의
      • 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨
      • 도메인을 속성의 특성을 고려한 데이터 타입으로 정의
        • 예 : 이름 속성의 도메인 : CHAR(20), 나이 속성의 도메인 : INT


    • 널 (Null)
      • 속성 값을 모르거나 적합한 값이 없는 경우 사용되는 값
      • 해당되는 값이 없음을 의미
      • 숫자 0 이나, 공백 문자와 다름
      • 널 값은 DBMS마다 표시하는 기호가 다르다.
        • 쇼핑몰의 회원 가입시 직장정보 입력 칸에 입력을 하지 않은 경우
    • 차수 (Degree)
      • 한 릴레이션에서 속성의 수, 즉 열의 수
      • 모든 릴레이션은 최소 1 이상의 차수를 가지고 있다
      • 릴레이션의 차수는 변화가 별로 없다
      • 예 : 5개의 속성을 가진 릴레이션의 차수는 5이다.
    • 카디널리티 (Cardinality)
      • 한 릴레이션에서 투플의 개수, 즉 행의 수
      • 카디널리티가 0 (투플이 없는 릴레이션)인 릴레이션도 있다
      • 릴레이션의 카디널리티는 자주 변한다




릴레이션의 구성 및 특징

  1. 릴레이션 구성
    • 릴레이션 스키마 (Relation Schema) / 릴레이션 내포 (Relation Intension)
      • 릴레이션의 이름과 릴레이션에 포함된 속성의 이름으로 정의한 릴레이션의 논리적 구조
      • 릴레이션의 논리적 구조
      • 릴레이션의 전체구조를 파악할 수 있다
      • 자주 바뀌지 않는다.
      • 일반적인 표현


        • 사원(사번, 직책, 이름, 생년월일)
    • 릴레이션 인스턴스 (Relation Instance) / 릴레이션 외연 (Relation Extension)
      • 한 시점에 릴레이션에 존재하는 투플의 집합
      • 릴레이션 인스턴스에 포함된 투플은 릴레이션 스키마에서 정의하는 각 속성의 실제 값으로 구성
      • DBMS의 데이터 조작어를 이용하여 투플의 삽입, 삭제, 수정, 검색을 수행
      • 릴레이션 인스턴스는 자주 바뀐다.
      • 간단히 릴레이션이라고 부르기도 한다.


    • 데이터베이스 스키마와 릴레이션 스키마
      • 데이터베이스는 여러 개의 릴레이션으로 구성
      • 데이터베이스 스키마
        • 데이터베이스의 전체 구조
        • 릴레시션 스키마를 모아 놓은 것
      • 데이터베이스 스키마를 설계한다 = 모든 릴레이션 스키마를 정의한다.
    • 데이터베이스 인스턴스와 릴레이션 인스턴스
      • 데이터베이스 인스턴스
        • 어느 시점에 데이터베이스에 저장된 데이터 내용 전체
        • 데이터베이스를 구성하는 모든 릴레이션 인스턴스를 모아 놓은 것


  2. 릴레이션의 특징
    • 속성의 이름은 중복될 수 없다
      • 한 릴레이션의 속성은 다른 이름을 가져야 한다
    • 속성은 단일 값을 가진다.
      • 여러 개의 값을 가져야만 하는 경우, 투플을 여러 개 만들어, 속성 값이 단일 값이 되도록 나눈다.
    • 한 속성의 값은 해당 도메인의 값만 가질 수 있다
    • 속성은 순서를 갖지 않는다
      • 속성의 순서가 달라도 스키마는 동일하다.
      • 속성의 순서와 상관없이 같은 속성들로 구성되어 있어야 같은 릴레이션이다.
      • 예 : 속성 순서가 다른 두 릴레이션
        • 사원(사번, 직책, 이름, 생년월일)
        • 사원(사번, 이름, 생년월일, 직책)
    • 릴레이션 내의 중복된 투플은 허용되지 않는다
      • 동일한 투플은 같은 릴레이션에 존재할 수 없다.
      • 모든 투플에는 자신을 식별할 수 있는 속성을 가지고 있으므로, 동일한 투플이 존재하지 않는다.
    • 하나의 릴레이션에서 투플의 순서는 무의미하다.
      • 투플의 순서가 빠뀐다고 다른 릴레이션이 될 수 없다.
      • 릴레이션에 투플이 삽입된 순서대로 저장된다.
728x90