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에서 실행, 데이터베이스 생성