반응형
2022. 12. 13. 22:00 수정 및 복습 시작
데이터베이스 설계
데이터베이스 설계란 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다.
관계 데이터베이스의 대표적인 설계 방법으로는 2가지가 있다.
- E - R 모델과 릴레이션 변환 규칙을 이용한 설계
- 정규화를 이용한 설계 (차후에 다루어보겠다)
요구 사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현 순서로 이루어진다.
설계 1 단계 : 요구 사항 분석
- 목적: 사용자의 요구사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악.
(업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려) - 결과물: 요구 사항 명세서
- 주요 작업:
데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정.
사용자가 조직에서 수행하는 업무를 분석. 면담, 설문 조사, 업무 관련 문서 분석 등의 방법을 이용해 요구 사항 수집.
수집된 요구 사항에 대한 분석 결과를 요구 사항 명세서로 작성.
설계 2 단계 : 개념적 설계
- 목적: DBMS에 독립적인 개념적 스키마 설계.
요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현 -> 개념적 모델링 (일반적으로 E - R 모델을 많이 이용) - 결과물: 개념적 스키마 : E - R 다이어그램
- 주요 작업: 요구 사항 분석 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E - R 다이어그램으로 표현.
개념적 설계에 대한 작업 과정
- step 1: 개체 추출, 각 개체의 주요 속성과 키 속성 선별.
- step 2: 개체 간의 관계 결정.
- step 3: E - R 다이어그램으로 표현.
작업 과정은 좀 더 자세히 알아보겠다.
STEP 1 개체와 속성 추출
- 개체란 저장할 만한 가치가 있는 중요 데이터를 가진 사람이나 사물이다.
- 개체 추출 방법은 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사를 찾는다.
- 찾아낸 명사를 개체와 속성으로 분류한다.
STEP 2 관계 추출
- 관계란 개체 간의 의미 있는 연관성이다.
- 관계 추출 방법은 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사를 찾는다.
- 찾아낸 관계에 대해 매핑 카디널리티와 참여 특성을 결정하라.
- (매핑 카디널리티 : 일대일, 일대다, 다대다)
- (참여 특성 : 필수적 참여, 선택적 참여)
STEP 3는 위에 내용을 바탕으로 E - R 다이어그램을 작성하면 된다.
설계 3 단계 : 논리적 설계
E - R 다이어그램을 릴레이션 스키마로 변환하는 규칙이다. 규칙을 확인해보자.
- 모든 개체는 릴레이션으로 변환한다.
- 다대다 관계는 릴레이션으로 변환한다.
- 일대다 관계는 외래키로 표현한다.
- 일대일 관계는 외래키로 표현한다.
- 다중 값 속성은 릴레이션으로 변환한다.
변환 규칙을 순서대로 적용하되, 해당되지 않는 규칙은 제외한다. 이제 규칙에 대해 좀 더 자세히 알아보겠다.
규칙 1 : 모든 개체는 릴레이션으로 변환한다.
- E - R 다이어그램의 각 개체를 하나의 릴레이션으로 변환
- 개체의 이름 -> 릴레이션 이름
- 개체의 속성 -> 릴레이션 속성
- 개체의 키 속성 -> 릴레이션의 기본키
- 개체의 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환
규칙 2 : 다대다 관계는 릴레이션으로 변환한다.
- E - R 다이어그램의 다대다 관계를 하나의 릴레이션으로 변환.
- 관계의 이름 -> 릴레이션 이름
- 관계의 속성 -> 릴레이션의 속성
- 관계에 참여하는 개체를 규칙 1에 따라 릴레이션으로 변환한 후 이 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정하고, 외래키들을 조합하여 관계 릴레이션의 기본키로 설정
규칙 3 : 일대다 관계는 외래키로 표현한다.
- E - R 다이어그램의 일대다 관계는 외래키로만 표현.
- 규칙 3 - 1 일반적인 일대다 관계는 외래키로 표현한다.
- 규칙 3 - 2 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.
규칙 3 - 1 세부 설명
- 일반적인 일대다 관계는 외래키로 표현한다.
- 일대다 관계에서 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정
- 관계의 속성들도 n측 개체 릴레이션에 포함시킴
규칙 3 -2 세부 설명
- 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키를 지정한다.
- 일대다 관계에서 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정.
- 관계의 속성들도 n측 개체 릴레이션에 포함시킴
- n측 개체 릴레이션은 외래키를 포함하여 기본키를 지정함.
- (약한 개체는 강한 개체에 따라 존재 여부가 결정되므로 강한 개체의 기본키를 이용해 식별해야 함)
규칙 4 : 일대일 관계는 외래키로 표현한다.
- E - R 다이어그램의 일대일 관계는 외래키로만 표현.
- 규칙 4 - 1: 일반적인 일대일 관계는 외래키를 서로 주고받는다.
- 규칙 4 - 2: 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
- 규칙 4 - 3: 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
규칙 4 -1 세부 설명
- 일반적인 일대일 관계는 외래키를 서로 주고받는다.
- 관계에 참여하는 개체 릴레이션들이 서로의 기본키를 주고받아 외래키로 지정.
- 관계의 속성들도 모든 개체 릴레이션에 포함시킴.
- 불필요한 데이터 중복이 발생할 수 있음.
규칙 4 -2 세부 설명
- 필수적으로 참여하는 개체 릴레이션만 외래키를 받는다.
- 관계에 필수적으로 참여하는 개체 릴레이션에만 외래키를 포함시킴.
- 관계의 속성들은 관계에 필수적으로 참여하는 개체 릴레이션에 포함시킴.
규칙 4 - 3 세부 설명
- 모든 개체가 필수적으로 참여하면 릴레이션 하나로 합친다.
- 관계에 참여하는 개체 릴레이션들을 하나의 릴레이션으로 합쳐서 표현.
- 관계의 이름을 릴레이션 이름으로 사용하고, 관계에 참여하는 두 개체의 속성들을 관계 릴레이션에 모두 포함시킴.
- 두 개체 릴레이션의 키 속성을 조합하여 관계 릴레이션의 기본키로 지정.
규칙 5 : 다중 값 속성은 릴레이션으로 변환한다.
- E - R 다이어그램의 다중 값 속성은 독립적인 릴레이션으로 변환.
- 다중 값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킴.
- 새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정.
기타 고려 사항
- 모든 관계를 독립적인 릴레이션으로 변환할 수 있다.
- (속성이 많은 관계는 유형에 상관없이 릴레이션으로의 변환을 고려할 수 있음)
- 개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙을 그대로 적용.
설계 4 단계 : 물리적 설계
- 하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스 구조나 내부 저장 구조 등에 대한 물리적인 구조를 설계.
설계 5 단계 : 구현
- SQL로 작성한 명령문을 DBMS에서 실행하여 데이터베이스를 실제로 생성.
이상으로 포스팅을 마칩니다.
2022. 12. 13. 22:40 수정 및 복습 마무리
반응형
댓글