[데이터베이스 개론 8장] 데이터베이스 설계

Mh_Go·2021년 1월 12일
0
  • 다양한 요구 사항을 모두 만족시키는 데이터베이스를 구축하는 일은 어려움
  • 저장해야 하는 데이터의 양이 많고 사용자 수가 많은 조직일수록 어렵고 복잡
  • 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터베이스의 논리적, 물리적 구조를 제대로 설계해야할 필요성 존재

데이터베이스 설계

  • 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정
    데이터베이스는 구조를 변경하기 어렵기 때문에 설계 과정에서부터 품질 좋은 데이터베이스를 생성해야 됨

    품질 기준
    사용하는 구성원들의 요구 사항을 만족하는지, 데이터의 일관성과 무결성, 사용자가 이해하기 쉽고 접근성이 좋은지 ... etc

데이터베이스 설계 방식

E-R모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계와 정규화를 이용한 데이터베이스 설계

데이터베이스 설계 과정

요구 사항 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현

요구 사항 분석

  • 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악
  • 수집한 다양한 요구 사항을 분석하여 그 결과를 요구 사항 명세서로 작성하는 것이 주요 작업
  • 먼저 데이터베이스를 사용할 주요 사용자의 범위부터 결정하여 불필요한 요구 사항을 수집하지 않도록 함
  • 요구 사항 분석이 잘못되면 사용자가 원치 않는 데이터베이스가 개발되어, 고치거나 다시 개발하는 수고가 뒤따를 수 있음 (신중하고 꼼꼼하게 작업해야 함)

개념적 설계

  • 요구 사항 분석 단계의 결과물인 명세서를 바탕으로 개념적 구조를 설계
  • 사용자의 요구 사항을 개념적 데이터 모델을 이용해 표현 / 일반적으로 E-R모델로 설계하며 E-R 다이어그램으로 표현하는 것이 주요 작업
  • 요구 사항 명세서 → 개념적 데이터 모델 = 개념적 모델링

    개체와 속성 추출 - 일반적으로 요구 사항의 문장에서 명사
    관계 추출 - 일반적으로 요구 사항을 표현한 문장에서 동사

논리적 설계

  • 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용해 개념적 구조를 기반으로 논리적 구조를 설계

  • 일반적으로 관계 데이터 모델을 사용하며, E-R 다이어그램을 릴레이션 스키마로 변환하는 것이 주요 작업

  • 변환 시 고려할 사항이 많음

  • 개념적 데이터 모델 → 논리적 데이터 모델 = 논리적 모델링

    릴레이션 스키마 변환 규칙

    1. 모든 개체는 릴레이션으로 변환한다

    2. 다대다 관계는 릴레이션으로 변환한다

    3. 일대다 관계는 외래키로 표현한다
      3-1 일반적인 일대다 관계는 외래키로 표현한다
      3-2 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다

    4. 일대일 관계는 외래키로 표현한다
      4-1 일반적인 일대일 관계는 외래키를 서로 주고받는다
      4-2 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다
      4-3 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다

    5. 다중 값 속성은 릴레이션으로 변환한다

      기타 고려 사항
      - 속성이 많은 관계는 관계 유형에 상관없이 릴레이션으로 변환하는 것을 고려할 수 있음
      다만 릴레이션의 개수가 많으면 DBMS의 부담이 커짐, 릴레이션의 개수가 불필요하게 늘어나지 않도록 관리

물리적 설계

  • 논리적 구조를 기반으로 물리적 구조를 설계
  • 저장 장치에 적합한 저장 레코드와 인덱스의 구조 등을 설계하고, 저장된 데이터와 인덱스에 빠르게 접근하게 할 수 있는 탐색 기법 등을 정의
  • 데이터베이스를 실제로 구축할 컴퓨터 시스템의 저장 장치와 운영체제의 특성을 고려하여 물리적인 구조를 설계하는 것이 주요 작업
  • 응답 시간을 최소화하고 저장 공간을 효율적으로 활용하면서 데이터베이스 시스템의 처리 능력을 향상시킬 수 있도록 설계

구현

  • 이전 설계 단계의 결과물을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성
  • 데이터 정의어(DDL) 사용

※ 모든 단계가 중요하지만, 그 중에서 데이터베이스의 개념적 구조와 논리적 구조를 설계하는 요구 사항 분석, 개념적 설계, 논리적 설계 단계가 핵심

출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미

profile
능력있는 DBA가 되고자하는 초짜 DBA

0개의 댓글