코딩공작소
데이터베이스 설계 본문
DB design
- 현실세계의 어플레케이션을 위한 DB스키마를 결정해야 한다.
- SW의 실질적인 성능을 좌지우지 한다.
DB design 의 목표
- 측정과 성취가 매우 어려운 현실세계의 데이터들을 정확성, 효율성 그리고 자연스러운 표현으로 표현하는것
DB design procedure (6단계의 실행 절차)
- 요구집합을 분석하고 모은다
- Conceptual DB design
- DBMS 선택
- Logical design ( data model mapping이라고도 불린다. )
- Physical design ( hardward )
- System implementation and tuning
--> DBMS와 무관하게 현실세계를 conceptual DB로 디자인 하는것 : 2번
--> 3 level architecture ! conceputal schema는 DBMS가 2번을 hanling 할 수 있어야 함 : 4번
<Phase 1 : Requirement analysis >
요구사항을 분석해서 정리한다.
<Phase 2 : Conceptual DB design>
Conceptual schema design
- ER DM과 같은 conceptual high-level DM을 사용하는 것이 중요하다.
접근법 : Centralized schema design approach , View integration approach
Schema design을 위한 전략 : Top-down 전략 , Bottom-up 전략
Schema(view) integration : 스키마들의 일치성/충돌여부를 확인한다 . 뷰를 수정한다. 뷰와 구조를 합친다.
Transaction design : conceptual DB design 과 같은말, 트랜잭션을 개념수준으로 설계한다. 입출력과 함수기능을 확인한다.
<Conceptual DB의 결과>
<Phase 3 : Choice of DBMS>
기술적인 부분, 경제적인 부분을 고려해서 DBMS를 선택한다.
<Phase 4 : Logical design ( DM mapping ) >
Conceptual schema 와 external schema를 만든다.
System-independent mapping.
특정 DBMS맞춤 스키마 설정
<Phase 5 : Physical design >
특정한 파일저장구조를 고르고 DB 경로에 접근한다 : 좋은 성능을 위해
피지컬 DB 디자인의 옵셜의 가이드를 선택하기 위한 기준 : 응답시간, 공간효율 , 트랜잭션 처리량
<Phase 6 : System implementation and tuning >
전형적으로 DBA의 응답성 : DDL의 구성, DB loading , 시스템으로부터 데이터로의 전환
DB Tool
Many CASE(Computer -aided software engineering ) tools for DB design
- Diagramming
- Model mapping
- Design normalization
좋은 툴의 조건 :
- 쉬운 인터페이스
- 분석적인 구성요소
- 발견적 구성요소
- Trade-off 분석
- 디자인 결과의 진열
- 디자인 검증
- Forward/Backward engineering