데이터베이스 12) 데이터베이스 설계

zh025700·2022년 12월 22일

데이터베이스

목록 보기
12/15

데이터베이스

12. 데이터베이스 설계

데이터베이스 설계

  • 데이터베이스를 생성하는 일련의 과정
  • 기본적으로 정보 시스템 개발 절차를 따른다.

데이터베이스 개발 생명 주기

요구사항 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선

  • 각 단계별 돌아가기 가능하다.

데이터베이스 설계 단계

  • 요구사항 분석을 기반으로 데이터베이스 구조를 작성하는 과정
    • 사용자들의 요구에 부합하도록 데이터베이스의 논리적, 물리적 구조를 설계하는것이 중요

요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현으로 이루어짐

설계 시 고려사항

무결성

  • 변경 연산(삽입 삭제 갱신) 후에도 데이터가 제약조건에 만족해야함

일관성

  • 데이터가 모순 없이 일치해야함

회복

  • 장애 발생 시 일관된 상태로 복구 되어야함

보안

  • 불법 접근 방지

효율성

  • 최적화가 되어야함

    • 응답시간 단축
    • 저장 공간 최적화
    • 시스템 생산성 향상

확장성

  • 시스템 운영에 영향을 주지 않으며 새로운 데이터를 계속 추가시킬 수 있어야함

요구사항 분석

  • 사용자의 요구사항을 수집,분석해 공식적인 요구사항 명세서를 생성

명세서에 포함되어야하는 내용

  • 정적 정보 구조에 대한 요구사항
    • 개체, 애트리뷰트, 관계성, 제약조건
  • 동적 DB 처리 요구사항
    • 트랜잭션 유형, 트랜잭션 실행 빈도
  • 범기관적 제약조건 산출
    • 회사의 경영 목표, 정책, 규정

분석 과정

  1. 일반 사항 분석
  2. 업무와 관련된 문서 수집
  3. 회사 목표, 제약 조건 파악
  4. 자료 분류 및 정리
  5. 공식적 요구사항 명세서 작성
  6. 회의를 거쳐 수정

개념적 설계

  • 개념적 스키마 모델링과 트랜잭션 모델링을 병행적으로 수행

개념적 스키마 모델링

  • ER 다이어그램 사용
  • 명세서를 개념적 데이터 모델로 기술
    • 이 과정을 개념적 데이터 모델링이라 함 - 이 결과를 개념적 데이터 구조 또는 개념적 데이터 스키마라고 함
  • 스키마 구성 요소
    • 개체
    • 속성
    • 관계

추상화를 통해 개념적 데이터 스키마를 유도한다.

  • 현실 세계를 단순화, 개념화시켜 표현한 것을 뜻함.
  • 집단화일반화가 있다.
  • 집단화
    • 하위 클래스의 속성을 묶어 하나의 새 개체를 생성
      • 학번, 성명을 묶어 학생을 정의
  • 일반화
    • 하위 레벨 개체의 공통 특성을 파악해 상위 레벨의 개체를 생성
      • 승용차,트럭의 특성을 파악해 자동차라는 상위레벨 생성

트랜잭션 모델링

  • 요구사항 분석단계에서 얻어진 결과를 검토해 이들에 대한 트랜잭션을 명세서에 기술하는 과정

    • 처리 중심 설계라고한다.
    • 주요 트랜잭션을 식별, 이들에 대한 기능적 특성을 데이터베이스 설계 초기에 명세
    • 트랜잭션 사이의 상대적 중요성, 예상 실행 빈도를 파악해 중요정보로 사용
  • 트랜잭션의 입출력과 기능적 형태만 정의

    • 입출력 데이터, 내부적인 제어 흐름 기술
  • 트랜잭션의 유형은

    • 검색, 갱신, 혼합형태

논리적 설계

  • 개념적 데이터 스키마로부터 DBMS가 처리할 수 있는 스키마를 생성
    • 요구사항 명세서를 당연히 만족해야함
    • 무결성,일관성,제약조건도 만족
  • 3단계를 거쳐 수행
    • 논리적 데이터 모델로 변환
    • 트랜잭션 인터페이스 설계
    • 스키마의 평가 및 정제

논리적 데이터 모델로 변환

  • 개념적 데이터 스키마를 논리적 데이터 모델로 변환
    • 이 과정을 논리적 데이터 모델링이라고 함
    • 데이터 모델에는 관계,계층,네트워크,객체 지향, 객체관계형을 모두 포함함

논리적 데이터 모델링을 통해 DDL로 기술된 스키마가 됨

  • 완전한 스키마 정의는 물리적 설계단계까지 보류

트랜잭션 인터페이스 설계

  • 트랜잭션의 전체적 골격 개발
    • 세부적 정의 X
  • 인터페이스 정의
  • 트랜잭션에 대한 데이터 접근 방법 기술

스키마 평가 및 정제

  • 정량적 정보성능평가 기준에 따라 수행
    • 정량적 정보
      • 데이터 크기
      • 처리 빈도 수
      • 처리 작업량
    • 성능 평가 기준
      • 논리적 레코드의 접근
      • 데이터 전송량
      • DB 크기
  • 필요한 경우 인덱스나 해싱 기법을 통해 성능을 개선시킨다.

물리적 설계

논리적 데이터 스키마로부터 효율적인 내부스키마를 설계

  • 성능에 중대한 영향을 미치므로 효율성이 강조
  • 트랜잭션의 상세 설계도 병행하여 수행
  • 물리적 데이터 구조의 기본적 데이터 단위는 저장 레코드
  • 하나의 파일: 한 타입의 저장 레코드들의 집합

다음의 설계가 포함

  • 저장 레코드 양식 설계
  • 레코드 집중화
  • 접근 경로
  • 저장 공간 할당

저장 레코드 양식

  • 아래 사항을 고려해야함

    • 데이터 타입
    • 데이터 값의 분포
    • 사용될 응용
    • 접근 빈도
  • 저장 레코드에 대한 데이터 표현과 압축에 관한 정보도 포함

  • 접근 빈도수에 따라 그룹을 달리해 상이하게 저장하는 것도 포함

레코드 집중화

  • 논리적으로 관련이 깊은 레코드들을 물리적으로 근접하도록 저장
    • 물리적 순차성 지원
  • 연속된 레코드의 검색을 요구할 때 빠른 접근 가능
  • 블록 크기의 선정이 중요함
    • 순차처리 위주
      • 블록의 크기를 크게
    • 임의 접근 처리 위주
      • 블록의 크기를 작게

접근 경로

  • 저장된 데이터의 검색과 저장을 가능하게 함

    • 저장구조
      • 주로 인덱스를 통한 접근방법과 데이터 파일을 정의
    • 탐색기법
      • 주어진 응용을 위한 적절한 접근 경로를 정의

    기본 접근 경로와 보조 접근 경로로 나뉨

  • 기본 접근 경로

    • 기본키를 기본으로한 기본 인덱스를 이용
    • 초기 레코드 적재, 레코드의 물리적 위치, 기본키를 통한 검색과 밀접
    • 파일들은 주요 응용들이 기본 접근 경로를 이용해 처리되도록 설계되어야함
  • 보조 접근 경로

    • 보조키에 기반을 둔 보조 인덱스를 이용해 레코드를 접근, 화일간 연결을 가능캐
    • 접근 시간은 줄이지만, 저장 공간 추가 사용 인덱스 관리 복잡

상용 DBMS는 성능 향상을 위해 여러 도구를 지원

  • 인덱싱 기법
  • 레코드 집중화
  • 포인터
  • 해싱

물리적 데이터 구조 설계시 고려 사항

  • 트랜잭션 응답 시간
    • 실행을 위해 시스템에 요구한 시점부터 결과를 받을때 까지의 시간
  • 저장 공간의 효율화
  • 트랜잭션 처리도(throughput)
    • 단위시간에 DBMS가 처리할 수 있는 평균 트랜잭션 수

물리적 설계의 평가를 위해 시뮬레이션이나 프로토타입과 같은 기법을 많이 사용

DBMS는 성능 평가를 위해 시스템 catalog에 통계 데이터를 저장

  • 트랜잭션 발생 수, 입출력 연산, 페이지나 인덱스 수, 인덱스 사용빈도 등의 정보가 저장
  • 이러한 통계 데이터는 성능향상을 위해 화일 재구성에 이용됨

구현

  • 목표 DBMS의 DDL로 기술된 명령문이 컴파일되고 실행된다.
    • 데이터베이스 스키마와 빈 데이터베이스 파일을 생성한다.
  • 그 후 데이터를 적재
    • 기존 파일이 있다면 변환해서
  • DB의 트랜잭션은 응용 프로그래머에 의해 구현됨
  • DB 설계 및 구현이 끝나면 DB 운영단계로 넘어감
profile
정리

0개의 댓글