목차
1. 데이터베이스 설계 개요
2. 데이터베이스 설계의 주요 단계
Database의 개념과 설계
* ER Model
- 초기, 고수준(개념적) 데이터베이스 설계를 표현하는데 사용하는 모델
- 실세계를 엔티티, 애트리뷰트, 엔티티들의 관계성으로 표현
- ER Diagram으로 표현 (그래픽하게)
- 최종적으로 ER Model은 관계 스키마(schema)로 쉽게 바꿀 수 있음
1. 데이터베이스 설계 개요
데이터베이스 설계
: 개념적 스키마(Conceptual Schema)를 작성하는 것
* 데이터베이스 설계 = 스키마 설계
• 개념적 스키마(Conceptual Schema)
: 실제로 데이터베이스를 “어떻게 구현할 것인가” 와는 독립적으로, “정보 사용을 위한 상위 모델”을 개발하는 과정
- 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델 구축
▷ 최종 산출물: 물리적인 구현을 고려하지 않는, 한 조직의 “개념적 스키마”
개념적 수준의 모델: 구현 단계에서 사용되는 3가지 데이터모델- 관계, 계층, 네트워크 데이터모델
• 물리적 스키마(Physical Schema)
: 물리적인 저장 장치(disk 등)와 접근 방식(access path)를 다룸
2. 데이터베이스 설계의 주요 단계
DB 설계 주요 단계
1) 요구사항 수집 및 분석
2) 개념적 설계 (= ER diagram 작성)
3) DBMS의 선정
4) 논리적 설계 (= DB schema 작성 + 정규화)
5) 물리적 설계 (: 하드웨어/운영체제의 특성 고려, 성능상의 요구사항)
6) Transaction 설계 (응용 프로그래밍 고려 단계)
7) (추가-생략 가능) 튜닝 등 기타 여러 작업
1단계) 요구사항 수집과 분석
• 요구사항을 수집하고, 의견들을 평가, 조정함
• 기존의 문서 조사, 인터뷰, 설문조사 등이 시행됨
• 요구사항에 관한 지식을 기반으로 Entity, Attributes, Relationship 결정
• 데이터 처리에 관한 요구사항에 대해
1) 적합한 연산이 무엇인지 결정
2) 연산들의 의미가 명확한지 재분석
3) 접근하는 데이터의 양, 타입, 사용자, 결과, 예상되는 이상치 등을 분석
2단계) 개념적 설계
• 설계 결과는 ER Diagram으로 표현됨
- 사용자들의 요구사항 명세로부터 개념적 스키마가 만들어짐
- 본 단계의 결과물은 논리적 설계 단계의 입력으로 사용됨
- 높은 추상화 수준의 데이터 모델을 기반으로 정형적인 언어로 데이터 구조를 명시함
대표적인 데이터 모델이 ER Model
▷ 엔티티 타입, 관계 타입, 애트리뷰트들, 애트리뷰트들의 도메인(=타입), 기본키와 후보키 결정
완성된 개념적 스키마(ER Schema)는 “ER Diagram”으로 표현됨
3단계) DBMS 선정
• 여러 가지 요인들을 검토한 후, 해당 업무에 최적인 DBMS를 선정함
• 기술적 요인: DBMS가 제공하는 데이터 모델, 저장 구조, 인터페이스, 질의어, 도구, 제공되는 서비스 등
• 정치적 요인: 고수준의 전략적인 결정 등
• 경제적 요인: DBMS 구입 비용, 하드웨어 구입 비용, 유지보수 비용 등
4단계) 논리적 설계
• 설계 결과는 해당 데이터베이스의 “스키마”로 표현됨
• 데이터베이스 관리를 위해 선택한 DBMS의 Data model을 사용하여, 논리적 스키마(외부 스키마도 포함) 생성
• 관계 데이터 모델을 사용하는 경우, ER Model로 표현된 개념적 스키마를 “관계 데이터베이스 스키마”로 사상
• 관계 데이터베이스 스키마를 더 좋게 변환하기 위해 정규화 과정(Normalization) 적용
5단계) 물리적 설계
• 설계 결과는 성능 향상으로 나타남
• 처리 요구사항들을 만족시키기 위해 시스템 (디스크) 저장 구조와 접근 경로(질의어 선택, 인덱스 선택) 등 결정
• 성능상의 주요 기준: 응답시간, 트랜잭션 처리율, 확장성, 유연성
6단계) 트랜잭션 설계 (응용 프로그램 설계 단계)
• 설계 결과는 여러가지 “흩어진 일들이 하나로 묶여진 프로그램 계획서 생성”
• 어떤 일들을 하나로 묶어서 프로그램을 작성할 것인지 결정하는 단계
• 요구사항 수집과 분석 후에 데이터베이스 설계 과정과 별도로 트랜잭션 설계를 진행할 수 있음
• 고객의 최종 필요성을 중심으로 프로그래밍을 고려하는 레벨
• 트랜잭션은 완성될 데이터베이스에서 동작할 응용 프로그램
• 데이터베이스 스키마는 트랜잭션에서 요구하는 모든 정보를 포함해야 함.
• 검색, 갱신, 입력, 출력 등의 유형으로 구분함.