데이터베이스 설계
데이터 베이스 설계
- 사용자의 다양한 요구사항을 고려하여 데이터베이스를 생성하는 과정
관계 데이터베이스의 대표적인 설계 방법
- E-R 모델과 릴레이션 변환 규칙을 이용한 설계
- 정규화를 이용한 설계
E-R 모델과 릴레이션 변환 규칙을 이용한 설계 과정
- 요구사항 분석
- 데이터 베이스의 용도 파악
- 결과물: 요구 사항 명세서
- 개념적 설계
- DBMS에 독립적인 개념적 구조 설계
- 결과물: 개념적 스키마(E-R 다이어그램)
- 논리적 설계
- DBMS에 적합한 논리적 구조 설계
- 결과물: 논리적 스키마(릴레이션 스키마)
- 물리적 설계
- DBMS로 구현 가능한 물리적 구조 설계
- 결과물: 물리적 스키마
- 구현
- SQL문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성
- 설계 과정 중에 오류를 발견해서 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경한다.
데이터 베이스 설계 단계
1. 요구 사항 분석
요구 사항 분석
- 사용자의 요구 사항을 수집하고 분석하여 개발할 DB의 용도 파악
- 업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한 지 고려
- 결과물: 요구 사항 명세서
2. 개념적 설계
개념적 설계
- 요구 사항 분석 결과물을 개념적 모델링을 통해 DBMS에 독립적인 개념적 스키마 설계 -> 일반적으로 E-R 모델을 많이 사용
- 요구 사항에서 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현
- 결과물: 개념적 스키마 (E-R 다이어그램)
작업 과정
- 개체와 속성 추출
- 개체: 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물
- 요구 사항에서 업무와 관련이 깊은 의미 있는 명사를 찾고, 찾아낸 명사를 개체와 속성으로 분류
- 개체 간의 관계 결정
- 관계: 개체 간의 의미 있는 연관성
- 요구 사항에서 개체 간의 연관성을 표현한 동사를 찾고, 찾아낸 관계의 매핑 카디널리티와 참여 특성 결정
- E-R 다이어그램 작성
IE 표기법 (Information Engineering)
- ER 다이어그램을 더 축약하여 표현하는 방법
3. 논리적 설계
논리적 설계
- 개념적 스키마를 논리적 모델링(데이터 모델링)을 통해 DBMS에 적합한 논리적 스키마 설계 -> 일반적으로 관계 데이터 모델 많이 이용
- 개념적 스키마를 릴레이션 스키마로 변환 후 속성의 데이터 타입, 길이, 널 값 허용 여부, 기본 값, 제약 조건 등을 세부적으로 결정하고 결과를 문서화
- 결과물: 논리적 스키마(릴레이션 스키마)
ER 다이어그램을 릴레이션 스키마로 변환하는 규칙
- 모든 개체는 릴레이션으로 변환한다.
- 개체의 속성이 복합 속성인 경우, 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환
- 다대다(n:m) 관계는 릴레이션으로 변환한다.
- 관계에 참여하는 개체 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정
- 일대다(1:n) 관계는 외래키로 표현한다.
- 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정
- 관계의 속성도 n측 개체 릴레이션에 포함시킴
- 일대일(1:1) 관계는 외래키로 표현한다.
- 일반적인 일대일 관계는 외래키를 서로 주고받는다
- 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
- 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
- 다중 값 속성은 릴레이션으로 변환한다.
테이블 명세서 작성
- 릴레이션 스키마 변환 후 속성의 데이터 타입, 널 값 허용 여부, 기본값, 제야조건 등을 세부적으로 결정하고 문서화시킴
- 테이블 명세서: 릴레이션 스키마에 대한 설계 정보를 기술한 문서
- 사용할 DBMS의 특성을 고려하여 작성한다.
4. 물리적 설계
물리적 설계
- 하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스 구조나 내부 저장 구조 등에 대한 물리적인 구조 설계
5. 구현
구현
- SQL로 작성한 명령문을 DBMS에서 실행하여 데이터베이스를 실제로 생성
'CS > 데이터베이스' 카테고리의 다른 글
9. 회복과 동시성 제어 (1) | 2023.12.02 |
---|---|
8. 정규화 (0) | 2023.11.30 |
6. SQL 기본 문법 (1) | 2023.11.18 |
05. 관계 데이터 연산 (0) | 2023.11.09 |
04. 데이터 모델링 (0) | 2023.11.06 |