본문 바로가기

Study/DataBase

데이터베이스 설계

728x90

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

  • E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정

1단계 - 요구사항 분석

데이터베이스의 용도 파악

결과물: 요구 사항 명세서

2단계 - 개념적 설계

DBMS에 독립적인 개념적 구조 설계

결과물: 개념적 스키마(E-R 다이어그램)

3단계 - 논리적 설계

DBMS에 적합한 논리적 구조 설계

결과물: 논리적 스키마(릴레이션 스키마)

4단계 - 물리적 설계

DBMS로 구현 가능한 물리적 구조 설계

결과물: 물리적 스키마

5단계 - 구현

SQL 문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성

2. 요구사항 분석

  • 설계 1단계: 요구 사항 분석

목적 - 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도 파악

결과물 - 요구 사항 명세서

3. 개념적 설계

  • 설계 2단계: 개념적 설계

목적 - DBMS에 독립적인 개념적 스키마 설계, 요구사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현(일반적으로 E-R 모델을 많이 이용)

결과물 - 개념적 스키마: E-R 다이어그램

  • 작업 과정
  1. 개체 추출, 각 개체의 주요 속성과 키 속성 선별
  2. 개체 간의 관계 설정
  3. E-R 다이어그램으로 표현
  4. 개체와 속성 추출

개체: 저장할 만한 가치가 있는 중요 데이터를 가진 사람이나 사물 등

ex) 병원

병원 운용에 필요한 사람: 환자, 의사, 간호사 등

병원 운용에 필요한 사물: 병실, 수술실, 의료 장비 등

개체 추출 방법

요구 사항 문장에서 업무과 관련이 깊은 의미 있는 명사를 찾아라!

ex) 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야한다.

가입한 회원에게는 등급과 적립금이 부여된다.

회원은 회원아이디로 식별한다.

한빛마트는 일반적이로 광범위한 의미의 명사이므로 제외

회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금은 회원의 속성으로 분류

회원아이디는 키 속성으로 분류

추출 결과

개체: 회원

회원 개체의 속성: 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금

회원 개체의 키 속성: 회원아이디

  1. 관계 추출

관계 추출 방법

요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사를 찾아라!

찾아낸 관계에 대해 매핑 카디널리티와 참여 특성을 결정하라!

매핑카디널리티: 일대일(1:1), 일대다(1:n), 다대다(n:m)

참여 특성: 필수적 참여 / 선택적 참여

추출 결과

관계: 주문

회원 개체와 상품 개체가 맺는 관계: 다대다(n:m) 관계

회원 개체는 관계에 선택적으로 참여 / 상품 개체는 관계에 선택적으로 참여

주문 관계의 속성: 주문번호, 주문수량, 배송지, 주문일자

4. 논리적 설계

  1. 논리적 설계

목적: DBMS에 적합한 논리적 스키마 설계

결과물: 논리적 스키마(릴레이션 스키마)

주요 작업: 개념적 설계 단계의 결과물인 E-R 다이어그램을 릴레이션 스키마로 변환

  • E-R다이어그램을 릴레이션 스키마로 변환하는 규칙
  1. 모든 개체는 릴레이션으로 변환한다.
  2. 다대다(n:m) 관계는 릴레이션으로 변환한다.
  3. 일대다(1:n) 관계는 외래키로 표현한다.
  4. 일대일(1:1) 관계는 외래키로 표현한다.
  5. 다중 값 속성은 릴레이션으로 변환한다.

변환 규칙을 순서대로 적용하되, 해당되지 않는 규칙은 제외함

 

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

개체의 이름 > 릴레이션의 이름

개체의 속성 > 릴레이션의 속성

개체의 키 속성 > 릴레이션의 기본키

개체의 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환

 

규칙2. 다대다 관계는 릴레이션을 변환한다.

관계의 이름 > 릴레이션의 이름

관계의 속성 > 릴레이션의 속성

관계에 참여하는 개체를 규칙 1에 따라 릴레이션으로 변환한 후 이 릴레이션의 기본키를 관게 릴레이션에 포함시켜 외래키로 지정하고, 외래키들을 조합하여 관계 릴레이션의 기본키로 지정

 

규칙3. 일대다 관계는 외래키로 표현한다.

일반적인 일대다 관계는 외래키로 표현한다.

약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.

 

규칙4. 일대일 관계는 외래키로 표현한다.

일반적인 일대일 관계는 외래키를 서로 주고받는다.

일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다

모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.

 

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

다중 값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킴

새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정

 

기타 고려사항

모든 관계를 독립적인 릴레이션으로 변환할 수 있다.

개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙을 그대로 적용

728x90