본문 바로가기

Programming/DataBase

데이터베이스 설계(DataBase Design)



DB 설계

 

데이터베이스 설계의 개념

(1) 데이터베이스 설계란 데이터베이스의 구조(스키마)를 개발하는 과정이다.


(2) 요구조건 분석, 개념적 설계, 논리적 설계, 물리적 설계, 데이터베이스 구현의 단계를 순서대로 반복하여 수행한다.


(3) 데이터베이스의 구조에 치중하는 데이터 중심(Data-driven)설계와 데이터 처리 및 응용에 치중하는 처리 중심(Processing-driven) 설계를 병행한다.

 

요구조건 분석(Requirement Analysis)

(1) 데이터베이스를 사용할 사람이 필요로 하는 용도를 파악하는 작업을 뜻한다.


(2) 사용자의 요구조건을 수집하고 분석하여 공식적인 요구 조건 명세 (Requirement Specification)을 작성한다.


(3) 요구조건 분석 단계에서 수집하고 분석해야 할 요구조건은 다음과 같다.

  - 개체, 속성, 관계, 제약 조건등과 같은 정적 정보구조

  - 트랜잭션의 유형, 트랜잭션의 실행 빈도와 같은 동적 데이터베이스 처리 요구조건

        - 기관의 경영 목표 및 정책, 규정과 같은 범기관적 제약 조건에 대한 요구 조건


(4) 작성된 요구 조건 명세는 주요 사용자 그룹과 함께 다시 검토하고 확인한 후 최종 시스템 명세로 확정한다.


cf) 트랜잭션 (Transaction) : 트랜잭션은 DB에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위가 된다.


개념적 설계(Conceptual Design)

(1) 개념적 설계는 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다. 일반화과정이라고함.


(2) 개념적 설계 단계에서는 개념 스키마 모델링(=>ER Diagram으로 표현)과 트랜잭션 모델링을 병행하여 수행한다.


(3) 개념 스키마 모델링은 데이터의 조작과 표현에 치중하기 때문에 데이터 중심설계라 할 수 있고, 트랜잭션 모델링은 응용을 위한 데이터 처리에 치중하기 때문에 처리 중심 설계라 할 수 있다.


(4) 개념 스키마 모델링은 요구조건 분석의 결과로 나온 요구조건 명세를 기반으로 개념적 데이터 모델에서의 데이터 구조, 즉 개념 스키마를 기술하는 과정이다.


(5) 트랜잭션 모델링에서는 트랜잭션의 입, 출력과 기능적 형태를 정의하는 트랜잭션 명세를 작성한다.

     

(6) 추상화란 복잡한 것들을 단순화하는 것을 의미한다. 구체적인 추상화 방법으로는 여러 속성들을 그룹지어 하나의 개체로 만드는 집단화(Aggregation)와 공통 성질을 가진 여러 부류의 개체들을 보다 일반적이고 포괄적인 개체로 만드는 일반화(Generalization)가 있다.

논리적 설계(Logical Design)

(1) 논리적 설계는 현실 세계에서 발생하는 데이터 형태를 컴퓨터가 이해하고 처리할 수 있는 특정 DBMS가 지원하는 논리적 데이터 구조로 변환시키는 과정이다. 논리적 데이터 모델에서의 데이터 구조, 즉 논리 스키마를 설계한다.


(2) 논리적 설계를 위해서는 먼저 특정 DBMS를 선정해야 한다.


(3) 관계형 DBMS를 선정한 경우에는 개념적 설계에서 기술한 ER도형을 정형적인 규칙에 따라 릴레이션 스키마로 변환한다.


(4) 더 개선된 릴레이션 스키마를 만들기 위하여 정규화과정을 수행한다.


(5) 개념적 설계에서 기술한 트랜잭션 명세로부터 전체적인 트랜잭션의 골격을 개발하고 인터페이스를 정의한다.

 

물리적 설계(Physical Design)

(1) 물리적 설계는 주어진 응용 프로그램에 대한 성능 향상을 위해 데이터베이스 파일에 대한 특정한 저장 구조와 접근(Access) 경로를 결정하는 과정이다.


(2) 물리적 설계에는 저장 구조를 위한 레코드 양식, 순서, 저장 공간 등과 접근 경로를 위한 인덱싱, 클러스터링, 해싱 등의 설계가 포함된다.


(3) 물리적 설계를 위하여 특정 DBMS 뿐만 아니라 특정 하드웨어 및 운영체제의 특성도 고려해야 한다.


(4) 효과적인 물리적 설계를 위해 데이터베이스 트랜잭션을 요청해서 응답을 얻기 까지의 응답 시간, 데이터베이스 파일과 접근 경로 주고에 대한 저장 공간의 효율성, 일정단위 시간 동안 처리되는 트랜잭션의 평균 수인 트랜잭션 처리도(Throughput)등을 고려해야 한다.


(5) 논리적 설계에서 기술한 트랜잭션의 인터페이로부터 상세 트랜잭션을 정의한다.

 

데이터베이스 구현

(1) 선정된 DBMS의 DDL로 기술된 명령문을 실행시켜 데이터베이스 스키마와 데이터베이스 파일을 생성한다. 또한 필요한 경우 데이터를 직접입력한다.


(2) 응용 프로그래머에 의해 상세 트랜잭션이 실행 트랜잭션으로 구현된다. 즉, DML로 기술된 명령문을 가지는 프로그램 코드가 작성된다.


(3) 실제로 DB를 구축하는 과정이다.


'Programming > DataBase' 카테고리의 다른 글

무결성 (Integrity)  (0) 2013.06.26
키(key)의 개념 및 종류  (0) 2013.06.25
관계형 데이터모델 (Relational Data Model)  (0) 2013.06.25
스키마 (Schema)  (0) 2013.06.25
데이터베이스 관리 시스템(DBMS)  (0) 2013.06.25