본문 바로가기

데이터베이스 Database

Chapter 9 데이터베이스 설계

데이터베이스 생명주기

 

데이터베이스 설계 순서

 

요구조건 분석(Requirement analysis): 목표 데이터베이스 시스템의 사용자를 식별하고 원하는 용도를 파악하는 과정

  • 정보의 내용 처리 요구조건 파악(분석)
    • 주요 응용분야 파악
    • 사용자 그룹 식별
    • 사용자별 기능(업무) 파악
    • 데이터의 종류, 용도, 처리 방법, 데이터 흐름
    • 트랜잭션 입출력, 실행 빈도, 데이터 갱신 빈도, 데이터량 파악
  • 기관의 경영 목표 및 제약 조건 식별
    • 조직의 경영목표, 정책, 관리, 기획과 관련한 설계 범위 설정
  • 명세 작성
    • 정보 내용 및 처리 요구 조건(데이터, 트랜잭션, 처리 특성 등)
  • 명세 검토
    • 최종적으로 시스템 명세(System Specification) 확정

 

개념적 설계

  • 개념적 스키마 모델링
    • 데이터 구조 및 표현 중점(데이터 중심의 설계)
    • E-R 모델을 사용
  • 트랜잭션 모델링
    • 데이터 처리 중심 설계
    • 트랜잭션의 입출력 및 기능적 동작(functional behavior) 정의

 

개념적 스키마 정의 방법

  • 뷰통합 방법(view integration approach, top-down)
    • 작업분야 또는 사용자 유형별로 부문별 뷰(데이터 범위)를 식별
    • 뷰별로 개체 정의(속성 및 키 도출)
    • 뷰별로 관계 정의
    • 부문별 뷰를 통합(모순 또는 모호성 해결 필요)
  • 속성 합성 방법(attribute synthesis approach, bottom-up)
    • 모든 속성을 파악(작업들로부터)
    • 후보 키 속성들을 파악
    • 개체 정의
    • 관계 정의

 

논리적 설계

  • 논리적 데이터 설계
    • 관계 DBMS, 네트웍 DBMS, 계층 DBMS, 객체 DBMS, 객체-관계 DBMS 등 적용할 DBMS의 논리 모델에 적합한 논리적 구조 설계
  • 트랜잭션 인터페이스 설계
    • 트랜잭션의 이름, 인자, 데이터 접근 방법 등을 명세
  • 스키마 평가 및 정제
    • 데이터의 양, 처리 빈도수, 처리 작업의 양, 데이터 전송량 등을 고려한 스키마 검토
      • ERD → 테이블 정의 변환 시 고려할 점
      • 성능향상을 위한 스키마 변경의 예: 강의자료 참고

 

물리적 설계

  • 효율적인 물리적 스키마를 설계하는 과정
  • 동일한 논리적 구조를 지원하더라도 좋은 성능이 나오도록 설계
  • 주요 작업
    • 저장 레코드 양식 결정
      • 데이터 표현, 압축 여부 등
    • 레코드 집중 분석 및 설계
      • 관련된 레코드(데이터)를 물리적으로 인접하게 위치시킴
    • 접근 경로 설계
      • 파일 구조 선택
      • 인덱스 선택

 

성능 비교 관점

  • 응답 시간(response time)
    • 트랜잭션(작업) 실행요청에서부터 결과 산출까지 소요된 시간
    • 단위: 시간(miliseconds, seconds, minutes, ...)
  • 처리도(throughput)
    • 단위 시간 당 처리하는 트랜잭션(작업)의 수
    • 단위: 트랜잭션 수 / 단위 시간
      • 분당 ** 트랜잭션
  • 저장 공간의 사용량
    • 데이터를 저장하거나 처리하는데 소모되는 메모리의 양
      • 메인메모리 또는 디스크

응답시간 vs. 처리량

강의자료 참고

 

데이터베이스 벤치마크(Benchmark): 전형적인 데이터베이스 스키마 및 응용프로그램을 이용한 성능 평가 기준

 

TPC-C Homepage

Approved in July of 1992, TPC Benchmark C is an on-line transaction processing (OLTP) benchmark. TPC-C is more complex than previous OLTP benchmarks such as TPC-A because of its multiple transaction types, more complex database and overall execution struct

www.tpc.org

  • TCP-App
  • TPC-W
  • TPC-H

 

데이터베이스 구현

  • 목표 DBMS에 DDL을 실행하여 데이터베이스 스키마 생성
    • 데이터베이스는 비어 있는 상태
  • 테스트용 데이터 로딩
    • 데이터 생성 또는 기존 데이터로부터
  • 트랜잭션별 코드 작성
    • 응용프로그램 개발 언어 + DML