Chapeter 8. 데이터베이스 설계

Suji Park·2022년 8월 23일
0
post-thumbnail

01. 데이터베이스 설계 단계

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

02. 요구 사항 분석

데이터베이스의 용도 파악
결과물 : 요구 사항 명세서

  • 데이터베이스를 사용할 주요 사용자의 범위 결정
  • 해당 사용자가 조직에서 수행하는 업무를 분석
  • 사용자의 업무와 관련해 필요한 데이터가 무엇인지 확인
  • 그 데이터에 어떤 처리가 필요한지 등에 초점을 맞춰 요구사항들을 수집하고 분석.

03. 개념적 설계

DBMS에 독립적인 개념적 구조 설계
결과물: 개념적 스키마 (E-R Diagram)

  • 개념적 모델링 과정: 개체와 속성 추출 → 관계 추출 → E-R 다이어그램 작성
  • 개념적 데이터 모델: 데이터베이스에 저장해둘 필요가 있다고 판단되는 데이터 요소를 추출하고 데이터 요소간의 관계를 파악하여 이를 표현한 것
  • 개념적 모델링: 개념적 설계 단계에서 사용자의 요구 사항을 개념적 데이터 모델로 변환하는 작업
  • 개념적 구조/개념적 스키마 : E-R 다이어그램과 같이 개념적 데이터 모델로 표현된 개념적 설계의 결과물

1. 개체와 속성 추출

  • 개체와 속성 추출 : 명세서의 명사 → 개체/속성, 동사 → 관계

  • 개체: 저장할만한 가치가 있는 중요 데이터를 지닌 사람이나 사물 등
    (1) 요구 사항 명세서의 문장에서 업무처리와 관련이 깊은 의미 있는 명사 찾기
    (2) 찾아낸 명사를 개체와 속성으로 정확히 분류하는 작업 필요

2. 관계 추출

  • 관계: 개체 간의 의미 있는 연관성
    (1) 요구 사항 문장에서 동사부터 찾는다.
    - 일반적으로 관계는 요구 사항을 표현한 문장에서 동사로 표현된다.
    (2) 관계를 추출한 후에는 추출한 관계에 대한 매핑 카디널리티와 참여 특성을 결정한다.
    - 매핑카디널리티: 관계를 맺고 있는 두 개체에서, 각 개체 인스턴스가 관계를 맺고 있는 상대 개체의 개체 인스턴스 개수를 의미 → 일대일(1:1)/일대다(1:n)/다대다(n:m)
    - 참여특성: 개체가 관계에 필수적으로 참여하고 있는 지 선택적으로 참여하고 있는지를 의미

3. E-R 다이어그램 작성

  • E-R Diagram : 정의된 개체와 관계를 토대로 E-R Diagram을 작성한다.
분류표현
개체사각형
속성타원형
키 속성이름에 밑줄
관계마름모 & 개체와 선으로 연결
일대일(1:1)/일대다(1:n)/다대다(n:m)선 위에 레이블로 표시
필수참여개체개체와 관계를 이중선으로 연결

04. 논리적 설계

DBMS에 적합한 논리적 구조 설계
결과물 : 논리적 스키마 (릴레이션 스키마/테이블 스키마)

  • 다양한 논리적 데이터 모델을 사용할 수 있지만, 일반적으로 관계 데이터 모델을 많이 사용
  • E-R Diagram → 릴레이션 스키마 변환
E-R Diagram릴레이션 스키마
개체와 관계를 구분개체 관계 구분X, 모두 릴레이션으로 표현
다중 값 속성/복합 속성을 허용 O다중 값 속성/복합 속성의 표현 허용 X

1. 릴레이션 스키마 변환 규칙

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

    • 개체의 이름 → 릴레이션의 이름
    • 개체의 속성 → 릴레이션의 속성
      - 복합 속성인 경우! (복합 속성을 구성하고 있는 단순 속성만!! → 릴레이션 속성)
    • 개체의 키 → 릴레이션의 기본키

    상품(상품번호, 상품명, 재고량, 단가)

  • 규칙2. 다대다n:m 관계는 릴레이션으로 변한다.

    • 관계이름 → 릴레이션 이름
    • 관계속성 → 릴레이션 속성
    • 관계를 맺고 있는 릴레이션들의 기본키 → 관계 릴레이션에 포함시키고 외래키로 변환
      (외래키의 조합으로 기본키 사용 혹은 별도의 기본키 지정)
      ※ 개체를 변환한 릴레이션의 기본키를 외래키로 지정할 때는 가져온 기본키들의 이름이 같을 경우 하나는 이름을 변경해야 한다.(속성의 이름은 모두 달라야하기 때문) 속성의 이름만 달라질뿐 속성의 도메인은 변하지 않으므로 외래키로 사용하는 데 문제가 되지 않는다.
  • 규칙3. 일대다 1:n 관계는 외래키로 표현한다.

    • 규칙 3-1: 일반적인 일대다 관계는 외래키로 표현한다.
      - 관계의 속성은 N측에 포함, 1측의 기본키를 N측의 외래키로 지정
    • 규칙 3-2: 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 표현한다.
      - n측 개체 릴레이션이 가지고 있던 키속성과 외래키 속성을 조합하여 기본키로 지정한다.
      - 1측의 기본키를 N측에 포함하여 기본키를 구성해야 한다.
      (ex. 강한 개체-비행기 약한 개체-좌석)
  • 규칙4. 일대일 1:1 관계를 외래키로 표현한다.

    • 규칙 4-1: 일반적인 일대일 관계는 외래키를 서로 주고받는다.
      • 관계의 속성은 양측에 포함, 서로의 기본키를 외래키로 주고 받는다.
    • 규칙 4-2: 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
    • 규칙 4-3: 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션하나로 합친다.
  • 규칙5. 다중 값 속성은 릴레이션으로 변환한다.

  • 기타 고려 사항
    * 순환 관계

2. 릴레이션 스키마 변환 규칙을 이용한 논리적 설계

05. 물리적 설계와 구현

물리적 설계
DBMS로 구현 가능한 물리적 구조 설계 (인덱스/내부 저장 구조 등)
결과물 : 물리적 스키마

  • 하드웨어나 운영체제의 특성 고려하여 필요한 인덱스의 구조나 내부 저장 구조, 접근 경로 등에 대한 물리적인 구조를 설계

구현
SQL문을 작성하여 이를 DBMS에서 실행, 데이터베이스 생성

profile
천방지축😛 얼레벌레🙄 빙글빙글🙃 돌아가는 수지의 코드~🎵

0개의 댓글