본문 바로가기

CS/데이터베이스 DB

[데이터베이스] 관계형 데이터 모델(relation data model)

1. 데이터 모델

  1) 데이터 모델이란?

     - 물리적 혹은 추상적으로 존재하는 현실 세계를 단순화되고 정형화된 형태로 표현하는 하나의 방식.
     - 데이터 관리를 위한 하나의 틀 즉 데이터 모델을 이용하면 추상화가 가능하다.

     - 대부분의 DBMS가 관계형 모델을 사용한다. 

  2) 관계형 데이터 모델이란?

    - 데이터를 표(table)를 이용하여 데이터를 설명하는 모델

    - 수학에서는 관계를 표로 나타낸다. 즉 표(table)은 릴레이션(relation)이다.

    - 물론 테이블이 컴퓨터의 기억장치에 어떻게 저장되는가와 같은 물리적인 구조까지 정의한 것은 아니다.

 

2. 관계형 데이터 모델

  1) 속성(attribute) - 필드, 칼럼

    - 어떤 개체를 표현하는 값의 종류를 의미한다.

    - 릴레이션을 구성하는 각 열(column)의 이름

    - ex) 이름, 전화번호, 나이

  2) 튜플(tuple) - 레코드, 행

    - 각각의 개체를 의미한다.

    - 릴레이션의 각 행(row)

    - ex) <현서, 010-8888-0000, 10>

    - 하나의 레코드가 의미하는 것이 무엇인지 아는 것이 테이블 이해에 큰 도움이 된다.

  3) 도메인(domain) 

    - 각 필드에 입력 가능한 값들의 범위

      즉 필드가 가질 수 있는 모든 값들의 집합이다.

    - 하나의 속성에 들어가는 값은 atomic value여야 한다.

      ex) 이름 : 이름으로 구성된 문자열 집합

      번호 : ddd-dddd-dddd 형식으로 구성된 문자열 집합 (d=0~9 숫자)

      나이 : 정수 집합

    - 도메인은 atomic해야하므로 주로  자료형(정수, 실수, 문자열)을 이용한다. 

  4) 데이터 타입

   - 관계형 데이터 모델의 값은 atomic(=simple + single valued)하다.

     즉 단순한 형태(정수, 실수, 문자열, 날짜형) + 하나의 값이여야 한다.

   - atomic하지 않은 data type(=complex type(구조체 타입, 콜렉션 타입))은

     관계형 데이터 모델의 속성으로 사용할 수 없다.

 5) 널(null)

    - 특정 필드에 대한 값을 알지 못하거나

      아직 정해지지 않아 입력하지 못한 경우의 필드의 값

    - 널은 값이 아예 없기 때문에 0이나 공백 문자와는 다르다. 

6) 테이블 스키마(table schema)

   - 테이블의 구조

   - R(A1, A2, A3, ..., An)

     R: 테이블 이름

     A1...An : 필드들의 이름

     이렇듯 전체 속성의 집합으로 표현할 수 있다.

7) 차수(degree)

   - 테이블 스키마에 정의된 필드의 개수.

8) 테이블 인스턴스(table instance)

   - 테이블 스키마에 레코드가 저장되어 실체가 생긴 객체.

   - 객체 지향 언어의 인스턴스와 비슷하다.

9) 기수(cardinality)

  - 테이블 인스턴스의 레코드의 수

 

3. 관계형 데이터베이스 구조

  1) 데이터베이스 스키마(database schema) : 테이블 스키마의 집합

  2) 데이터베이스 인스턴스(database instance) : 테이블 스키마들에 대한 테이블 인스턴스의 집합