데이터베이스 모델링

데이터베이스 모델링의 이해

데이터베이스 모델링의 필요

  1. 비지니스적 관점

    • 어떤 데이터를 저장해야 하는가?
  2. 컴퓨터 프로그래머 관점

    • 어떻게 데이터를 저장해야 하는가?

데이터베이스 모델링의 개념

  1. 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업

  2. 모델링의 단계

데이터 모델

  1. 사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장, 사용할 방법이 필요

  2. 데이터 모델

    • 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합
  3. 데이터 모델링

    • 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정

데이터베이스 모델링의 단계

  1. 개념적 데이터 모델링

    • 요규사항의 해석 오류를 방지
    • 실세계의 데이터를 개념저긍로 일반화시켜 데이터 구조, 데이터 타입, 속성, 관계, 제약조건 등을 이끌어내는 과정
  2. 논리적 데이터 모델링

    • 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
    • 데이터 정의 언어로 기술된 개념 스키마 생성
  3. 물리적 데이터 모델링

    • 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정

사용자 요구사항 분석

사용자 요구사항의 필요성

  1. 사용자의 요구를 명세하지 않고 데이터베이스 설계 및 개발을 진행하는 경우

    • 결과물의 완성도 저하 및 사용자 신뢰도 추락
    • 개발 후, 발생하는 에러 수정에 많은 추가 비용 지출
  2. 시스템의 대상이 되는 업무를 분석

    • 정보 시스템의 데이터베이스가 신속하고 효과적으로 업무 처리를 지원
    • 필요한 데이터를 저장 및 운용할 수 있는 구조 개발

사용자 요구사항 분석

  1. 데이터에 대한 충분한 사전 분석없이 적절한 설계가 불가능

    • 데이터베이스의 활용 범위가 확대됨에 데이터베이스의 효율적 운용에 초점
    • 데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되고 때문에 신속, 정확성이 요구
  2. 도출, 분석, 기록 단계로 수행

ER 모델

ER 모델의 개념

  1. 1976년 카네기 멜론 대학의 Peter Chen 박사에 의하여 제안

  2. 개념적 모델링 단계에서 사용되는 데이터 모델

  3. 실세계의 속성들로 이러우지 개체(entity)와 개체 사이의 관계(relationship)를 정형화 시킨 모델

  4. 구성요소

    • 개체 집합
    • 관계 집합
    • 속성

개체 집합

  1. 개체

    • 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물
    • 개체를 설명하는 여러 속성들로 구성
  2. 개체 집합

    • 같은 속성을 공유하는 개체들의 모임

관계 집합

  1. 관계

    • 개체와 개체 사이의 연관성
  2. 관계 집합

    • 개체 집합 간의 전체적 연결 관계

속성의 개념

  1. 개체를 구체적으로 설명하는 특성

  2. 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분

  3. 속성의 종류

    • 단순 속성과 복합 속성
    • 단일값 속성과 다중값 속성
    • 유도 속성과 저장속성
    • null 속성

속성의 종류

  1. 단순 속성

    • 더 이상 작은 구성요소로 나눌 수 없는 속성
  2. 복합 속성

    • 더 작은 구성요소로 나눌 수 있는 속성
  3. 단일값 속성

    • 하나의 개체에 대해 단 하나의 값만을 갖는 속성
  4. 다중값 속성

    • 하나의 개체에 대해 여러 개의 값을 갖는 속성
  5. 유도 속성

    • 다른 속성의 값으로 부터 값이 유추될 수 있는 속성
  6. 저장 속성

    • 유도 속성을 위해 사용될 수 있는 속성

제약조건

  1. 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구

  2. ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 데이터가 항상 준수해야 하는 제약조건을 정의할 수 있는 방법을 제공

  3. 제약조건(constraints)의 종류

    • 사상수
    • 참가 제약조건
    • 키 속성

사상수(mapping cardinality)

  1. 관계 집합에 참가한 개체 집합들에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지 명시한 수

참가 제약조건

  1. 전체적 참가: 어떤 개체 집합의 모든 개체가 관계 집합에 참여 하는 조건

  2. 부분적 참가: 어떤 개체 집합의 일부 개체가 관계 집합에 참여 하는 조건

  3. 키: 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합

    • 개체를 찾는 역할
    • 관계 집합의 특정 관계를 찾는 역할

특수 속성과 관계

  1. 관계 집합의 속성: 두 개체 집합의 관계에서 생성되는 값을 저장하는 속성

  2. 재귀적 관계: 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계

특수 관계

  1. 약한 개체 집합

    • 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
  2. 강한 개체 집합

    • 약한 개체 집합과 연결되는 일반 개체 집합