데이터베이스 생명주기
데이터베이스 설계 순서
요구조건 분석(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
- TCP-App
- TPC-W
- TPC-H
데이터베이스 구현
- 목표 DBMS에 DDL을 실행하여 데이터베이스 스키마 생성
- 데이터베이스는 비어 있는 상태
- 테스트용 데이터 로딩
- 데이터 생성 또는 기존 데이터로부터
- 트랜잭션별 코드 작성
- 응용프로그램 개발 언어 + DML
'데이터베이스 Database' 카테고리의 다른 글
Chapter 13 무결성과 보안 (0) | 2020.12.10 |
---|---|
Chapter 10 데이터베이스 저장구조 (0) | 2020.12.06 |
Chapter 8 ER 모델 ✍ (0) | 2020.11.16 |
Chapter 7 데이터 종속성과 정규화 ✍ (0) | 2020.11.16 |
Chapter 6 SQL - JDBC를 이용한 자바응용프로그램 개발 (0) | 2020.11.05 |