02 요구사항 분석
사용자들이 데이터베이스에 원하는 것이 무엇이지를 분석한다
사용자들의 요구 사항을 수집하고 분석하여, 개발할 데이터베이스의 용도를 명확히 파악한다
1단계 요구 사항 분석
데이터베이스의 용도 파악
결과물 = 요구 사항 명세서
요구 사항 분석 단계에서는 먼저 데이터베이스르 사용자의 범위부터 결정해야 한다
수집된 요구 사항을 다각도로 분석한 뒤 결과를 요구 사항 명세서로 문서화한다
03 개념적 설계
요구 사항 명세서를 개념적 데이터 모델을 이용하여 표현한다 = 개념적 설계
일반적으로 ER 다이어그램을 사용한다
결과물로 개념적 스키마가 나온다
2단계 개념적 설계
DBMS에 독립적인 개념적 구조를 설계
결과물 = 개념적 스키마 = ER다이어그램
요구 사항의 분석 결과를 ER 모델을 이용해 개념적 모델링을 하려면 ER 모델의 핵심 요소 인 개체를 추출해야 한다
그다음 각 개체의 주요 속성과 키 속성을 선별하고, 개체 간의 관계를 결정한다. 이 결과를 ER 다이어그램으로 표현한다
- 개체와 속성 추출
- 관계 추출
- ER 다이어그램 작성
개체와 속성 추출
요구 사항 명세서에서 개체를 추출하는 방법은 표준화된 것이 없다
개체를 추출할때 막막할 경우
요구 사항의 문장들에서 명사부터 찾는다
의미가 같은 명사일 경우 대표 명사 하나만 선택한다
04 논리적 설계
개념적 스키마를 기반으로 논리적 스키마를 설계한다
개발에 사용할 DBMS가 처리할 수 있는 데이터베이스의 논리적 구조를 설꼐하는 것이 논리적 설계 단계의 목표임
3단계 논리적 설계
DBMS에 적합한 논리적 구조 설계
결과물 = 논리적 스키마 = 릴레이션 스키마 = 테이블
일반적으로 관계 데이터 모델을 사용한다
데이터 모델링 = 논리적 모델링
개념 스키마 = ER 다이어그램을 릴레이션 스키마 = 테이블로 변환하는 작업을 한다
ER 다이어그램을 관계 데이터 모델의 릴레이션 스키마로 변환하는 작업은 어려움
관계 데이터 모델 표현이 많이 다르기 때문
이를 어느정도 정형화한 5가지 규칙이 존재함
릴레이션 스키마 변환 규칙
규칙 1 : 모든 개체는 릴레이션으로 변환한다
A - a1, a2, a3, a4일시
A 테이블
| a1 | a2 | a3 | a4 |
| 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 |
| 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 |
복합 속성일시
A - a1, a2, a3-a31, a32, a33
복합 속성 A 테이블
| a1 | a2 | a31 | a32 | a33 |
| 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 |
| 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 | 투플 데이터 |
규칙 2 : 다대다 관계는 릴레이션으로 변환한다
ER 다이어그램의 다대다 관계를 하나의 릴레이션으로 변환한다
관계의 이름을 릴레이션의 이름으로 하고, 관계의 속성도 릴레이션의 속성으로 그대로 변환한다
관계를 맺고 있는 개체가 무엇인지 중요하기에, 관계를 맺고 있는 개체들은 규칙 1에 따라 변환후 릴레이션들의 기본키를 관계 릴레이션이 포함시키고 외래키로 지정한다. 그리고 이 외래키들을 조합하여 관계 릴레이션의 기본키로 지정한다
규칙 3 : 일대다 관계는 외래키로 표현한다
ER 다이어그램의 일대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다
단, 약한 개체가 참여하는 일대다 관계는 일반 개체가 참여하는 경우와 다르게 처리해야 하기에 세부 규칙으로 나누어 적용한다
규칙 3-1 : 일반적인 일대다 관계는 외래키로 표현한다
일반 개체들이 참여하는 인대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다
규칙 3-2 : 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다
약한 개체가 참여하는 일대다 관계도 릴레이션으로 변환하지 않고 외래키로만 표현한다
규칙 4 : 일대일 관계를 외래키로 표현한다
일대일 관계도 일대다 관계처럼 릴레이션으로 변환하지 않고 외래키로만 표현한다
이때 데이터의 중복을 피하려면 개체가 관계에 참여하는 특성에 따라 약간 다르게 처리해야 하므로 규칙 4를 다음과 같이 3개의 세부 규칙으로 나누어 적용한다
규칙 4-1 : 일반적인 일대일 관계는 외래키를 서로 주고 받는다
일반적인 일대일 관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다
규칙 4-2 : 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다
일대일 관계를 맺고 있는 두 채체중 관계에 필수적으로 참여하는 개체에 대응하는 릴레이션에만 외래키를 포함시킨다
관계에 필수적으로 참여하는 개체에 해당하는 릴레이션이 선택적으로 참여하는 개체에 해당하는 릴레이션의 기본키를 받아 외래키로 지정한다
규칙 4-3 : 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다
두 개체에 해당하는 두 릴레이션을 하나로 합쳐 표현한다
두 개체 릴레이션의 키 속성을 조합하여 관계 릴레이션의 기본키로 지정한다
규칙5 : 다중 값 속성은 릴레이션으로 변환한다
관계 데이터 모델의 릴레이션은 다중 값 속성을 허용하지 않는다
ER 다이어그램에 있는 다중 값 속성은 그 속성을 가지고 있는 개체에 해당하는 릴레이션이 아닌 별도의 릴레이션을 만들어 포함시킨다
05 물리적 설계와 구현
하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스의 구조나 내부 저장 구조, 접근 경로 등에 대한 물리적 구조를 설계한다
DBMS를 이용해 SQL문을 작성하고 실행해 데이터베이스를 생성하면 개발이 완료된다
4단계 물리적 설계
DBMS로 구현 가능한 물리적 구조 설계
결과물 = 물리적 스키마
5단계 구현
SQL문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성
'공부 > 데이터베이스' 카테고리의 다른 글
| 9. 정규화 / 02 함수 종속 / 03 기본 정규형과 정규화 과정 (0) | 2025.09.14 |
|---|---|
| 9. 정규화 / 01 정규화의 개념과 이상 현상 (0) | 2025.09.14 |
| 8. 데이터베이스 설계 / 01 데이터베이스 설계 단계 (0) | 2025.09.13 |
| 7. 데이터베이스 언어 SQL / 총 정리 (0) | 2025.09.13 |
| 7. 데이터베이스 언어 SQL / 05 삽입 SQL (0) | 2025.09.13 |