데이터베이스 설계
포스트
취소

데이터베이스 설계

데이터베이스 설계 단계

데이터베이스 설계란?

  • 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정
  • 사용자가 데이터베이스를 실제로 사용하면 구조를 변경하기 어렵다.
    • 설계 과정에서부터 품질 좋은 데이터베이스를 생성해야 한다.
  • 품질 좋은 데이터베이스를 평가하는 기준을 만족해야 한다.
    • 데이터베이스를 실제로 사용하는 구성원들의 요구 사항을 만족하는가
    • 데이터의 일관성과 무결성을 유지하고 있는가
    • 사용자가 이해하기 쉽고 접근하기 편리한가

데이터베이스 설계 과정

  1. 요구사항 분석
    • 역할
      • 데이터베이스의 용도 파악
    • 결과물
      • 요구 사항 명세서
  2. 개념적 설계
    • 역할
      • DBMS에 독립적인 개념적 구조 설계
    • 결과물
      • 개념적 스키마
  3. 논리적 설계
    • 역할
      • DBMS에 적합한 논리적 구조 설계
    • 결과물
      • 논리적 스키마
  4. 물리적 설계
    • 역할
      • DBMS로 구현 가능한 물리적 구조 설계
    • 결과물
      • 물리적 스키마
  5. 구현
    • 역할
      • SQL문을 작성 후 이를 DBMS에서 실행하여 데이터베이스 생성

1번에서 5번까지 순서대로만 진행되는게 아니라
설계 과정 중에 오류를 발견하여 변경이 필요하면
이전 단계로 되돌아가 설계 내용을 변경할 수도 있다.

요구사항 분석

  • 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악하는 단계
  • 데이터베이스를 사용해 실제 업무를 처리하는 사용자에게 필요한
    데이터의 종류와 처리 방법같은 다양한 요구 사항을 수집하고,
    이를 분석한 결과를 요구 사항 명세서로 작성한다.
  • 요구 사항 분석 단계에서 파악한 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되고,
    구축된 데이터베이스의 품질을 결정짓는 중요한 기준이 된다.
  • 기본 순서
    1. 데이터베이스를 사용할 주요 사용자의 범위 결정
    2. 해당 사용자가 조직에서 수행하는 업무 분석
      • 사용자의 업무와 관련해 필요한 데이터가 무엇이고,
        그 데이터에 어떤 처리가 필요한가 등에 초점을 맞춰서 요구 사항을 수집 및 분석한다.
    3. 수집된 요구 사항에 대한 다각도의 분석이 끝나면 분석 결과를 요구 사항 명세서로 문서화한다.

개념적 설계

  • 요구 사항 분석 단계에서 파악한 사용자의 요구 사항을 개념적 데이터 모델을 이용해 표현하는 단계
    • 일반적으로 E-R 모델을 많이 사용한다.
  • 요구 사항 분석 결과를 기반으로 현실 세계에서 중요한 데이터 요소인
    개체를 추출한 후 개체 간의 관계를 결정하여 개념적 데이터 모델로 표현한다.
  • 개념적 모델링
    • 개념적 설계 단계에서 요구 사항 명세서를 개념적 데이터 모델로 변환하는 작업
  • 개념적 구조
    • 개념적 데이터 모델로 표현한 결과물
      • 예시
        • E-R 다이어그램
    • 개념적 스키마라고도 부른다.
  • 개념적 데이터 모델은 사용자들의 요구 사항들을 분석한 결과에서,
    앞으로 데이터베이스에 저장해둘 필요가 있다고 판단되는 데이터 요소를
    추출하고 데이터 요소 간의 관계를 파악하여 이를 표현한다.
    • 개발에 사용할 DBMS의 종류는 중요하지 않다.
  • 개념적 모델링 과정
    1. 개체와 속성 추출
    2. 관계 추출
    3. 개념적 구조 작성 (예시 : ERD)

논리적 설계

  • 개념적 구조를 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용해
    논리적 구조를 설계하는 단계
    • 일반적으로 관계 데이터 모델을 많이 사용한다.
  • 논리적 모델링
    • 개념적 구조를 릴레이션(테이블) 스키마로 변환하여 DBMS가 처리할 수 있도록 하는 작업
    • 데이터 모델링이라고도 부른다.
  • 논리적 구조
    • 논리적 데이터 모델로 표현된 결과물
    • 논리적 스키마라고도 부른다.
  • 릴레이션 스키마 변환 규칙
    • 모든 개체는 릴레이션으로 변환한다.
    • 다대다 관계는 하나의 릴레이션으로 변환한다.
      • (기타 고려사항) 일대일 관계나 일대다 관계도 릴레이션으로 변환할 수 있다.
      • (기타 고려사항) 속성이 많은 관계는 관계의 유형에 상관없이
        릴레이션으로의 변환을 고려할 수 있다.
    • 일대다 관계는 외래키로 표현한다.
      • 일반적인 일대다 관계는 외래키로 표현한다.
      • 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.
    • 일대일 관게를 외래키로 표현한다.
      • 일반적인 일대일 관계는 외래키를 서로 주고 받는다.
      • 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
      • 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
    • 다중 값 속성은 릴레이션으로 변환한다.

물리적 설계

  • 논리적 구조를 기반으로 물리적 구조를 설계한다.
  • 데이터베이스의 물리적 구조는
    데이터베이스를 저장 장치에 실제로 저장하기 위한
    내부 저장 구조와 접근 경로 등을 의미한다.
  • 저장 장치에 적합한 저장 레코드와 인덱스의 구조등을 설계한다.
  • 저장된 데이터와 인덱스에 빠르게 접근하게 할 수 있는 탐색 기법등을 정의한다.
  • 주로 데이터베이스를 실제로 구축할 컴퓨터 시스테므이 저장 장치와 운영체제의 특성을 고려하여,
    효율적인 성늘을 지원하면서도 사용할 DBMS로 구현이 가능한
    물리적인 구조를 설계하는 작업을 한다.
  • 응답 시간을 최소화하고 저장 공간을 효율적으로 활용하면서,
    데이터베이스 시스템의 처리 능력을 향상시킬 수 있도록 물리적 구조를 설계해야 한다.
  • 내부 스키마
    • 물리적 설계의 결과물인 물리적 구조
    • 물리적 스키마라고도 부른다.

구현

  • 내부 스키마를 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다.
    • 데이터 정의어(DDL)이 사용된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.