chapter 03. 관계 데이터베이스 설계
데이터베이스 설계 시 고려 사항 항목 설명 무결성 데이터가 만족해야 할 제약 조건 만족 (갱신, 삽입, 삭제 등의 연산 후에도 데이터 값이 정확) 일관성 저장된 데이터와 질의응답 일치하여 모순성이 없어야 함 회복 시스템에 장애 발생 시 장애 발생 전의 일관된 상태의 데이터베이스 상태로 복구 가능 보안 불법 접근(데이터의 변경, 손실, 노출)에 대한 보호 가능 효율성 응답시간 단축, 저장 공간 최적화, 시스템의 생산성(처리도) 등을 고려 데이터베이스 확장 응용과 데이터의 확대(시스템에 영향을 주지 않고, 새로운 데이터 추가 가능)
데이터베이스 설계 과정
데이터베이스 계획 내적, 외적 환경과 전략적 요구사항, 그리고 최상위 수준의 시스템 구분과 모델링을 통해 향후 데이터베이스의 구축 방향 제시 요구 사항 분석 데이터베이스가 제공해야 할 정보 내역을 분석하여 제공 사용자와 응용 환경 범위에서의 주요 대상 범위와 데이터베이스를 사용할 사용자 집단이 검증하고, 운영 환경과 처리 사항을 분석하여 시스템 내에서의 정보의 흐름, 입력 및 출력 데이터 등을 정의 정적 정보 구조 요소 개체, 애트리뷰트, 관계성, 제약 조건 등의 요구조건 분석 동적 DB 처리 요구 조건 트랜잭션 유형, 실행 빈도 등의 요구조건 분석 범 기관적 제약 조건 경영목표, 정책, 규정 등의 요구조건 분석
요구 분석 단계의 일반적 처리 절차
개념 데이터 설계 표현하고자 하는 현실 세계를 정보 모델링에 의해 개념적 모델로 전환하여 정보 구조를 정의하는 단계 데이터의 조직과 표현을 중심으로 한 개념 스키마 모델링과 응용을 위한 데이터 처리에 중심을 둔 처리 중심 설계인 트랜잭션 모델링으로 구분 개념적 설계 절차
응용을 위한 트랜잭션을 명세 -> 주요 트랜잭션을 식별 기능적 특성을 DB 설계 초기에 명세 개념 스키마 모델링 정보 모델링으로 스키마를 정확한 형태로 재정의하여 정보 구조(개념 스키마)를 생성하고, 개념적 데이터 모델인 E-R 다이어그램을 사용하여 개체, 속성, 관계성 등의 정보 구조를 표현하여 최종적으로 하나의 개념적 데이터 모델을 작성한다. 즉, 집단화와 일반화를 통하여 데이터를 추상화하는 과정 방법 : 뷰 통합 (view integration) 방법, 애트리뷰트 합성(Attribute Synthesis) 방법, 인사이드 아웃 (inside-out) 방법, 혼합 방법 트랜잭션 모델링 응용을 위한 트랜잭션을 명세 -> 주요 트랜잭션을 식별 기능적 특성을 DB 설계 초기에 명세 스키마에 트랜잭션이 필요로 하는 정보가 모두 포함되는지 확인 -> 트랜잭션의 상대적 중요성, 예상 실행 빈도수 등의 파악 가능 트랜잭션의 분석은 각 트랜잭션별 접근 경로를 결정하는 데 유용하게 사용 방법: 개념적, 시스템 독립적으로 명세 -> 입력 데이타, 출력 데이타, 내부 제어 흐름
논리 데이터 설계(Logical Data Design) 개념적 모델을 데이터 모델링에 의해 논리적 구조로 정의하여 데이터베이스 관리 시스템과 결부된 논리적 모델로 변환하는 단계 논리 데이터 설계를 위해 필요한 내용 개념 데이터 모델 : 개념 설계에서 작성한 ERD 등의 모델 운영 요구사항 : 요구사항 분석 단계에서 파악된 응답시간, 보안, 회복 및 데이터 저장, 일관성의 제약조건 등에 관한 명세 상위 수준의 프로그램 명세 : 데이터베이스 트랜잭션의 접근형태 등 DBMS 특성 : DBMS의 논리적 구조와 데이터 정의어 일관성 제약조건 : 일관성 있게 데이터를 보관하는 규칙, 일관성 제약조건에 위배되는 데이터를 다루는 규칙 및 중복, 변경연산의 순서에 따른 제약조건 상위레벨의 프로그램 명세 : 개념적 설계과정에서 작성된 논리적 접근도로 데이터베이스 트랜잭션의 접근형태의 정의
물리 데이터 설계(Physical Data Design) 논리적 모델을 데이터 구조화에 의해 물리적 자료 구조를 정의하여 물리적 모델로 변환하는 단계 스템을 고려한 논리적 설계를 해당 구현 가능한 물리적 데이터베이스 구조로 전환하고 DBMS의 조건에 맞게 성능을 최적화하는 과정