컴퓨터공학/데이터베이스

[데이터베이스] 데이터베이스 설계

NIMHO 2022. 11. 23. 14:19
728x90

복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

설계 개요

데이터베이스 개발 생명 주기(life cycle)

 

데이터베이스 설계 단계

요구사항 분석을 기초로 데이터 베이스 구조를 작성하는 과정이다.

문제가 발생되면 피드백을 받아 적절한 단계로 되돌아가 다시 시작한다.

 

 

데이터베이스 설계 시 고려사항

  • 무결성(integrity)
    • 변경 연산 후에도 제약조건 만족
  • 일관성(consistency)
    • 데이터 간, 응답 간의 일치
  • 회복(recovery)
    • 장애 발생 시 일관된 상태로 복구
  • 보안(security)
    • 불법 접근의 방지
  • 효율성(efficiency)
    • 응답 시간/저장 공간 최소화
    • 생산성 향상
  • 확장성(extensibility)
    • 운영에 지장이 없이 새로운 데이터의 계속적 추가

 

요구사항 분석(requirements analysis)

사용자의 요구사항을 수집하고 분석하여 공식적인 요구사항 명세서(specification)를 생성하는 것

  • 개체, 애트리뷰트, 관계성, 제약조건 등과 같은 정적 정보 구조에 대한 요구사항
  • 트랜잭션 유형, 트랜잭션 실행 빈도와 같은 동적 DB 처리 요구사항
  • 회사의 경영 목표 및 정책, 그리고 규정과 같은 범기관적 제약조건 등이 산출되어야 한다.

 

요구사항 분석 과정

  • 일반 사항 분석
    • 회사 매출 규모, 부서 조직, 생산 제품, 개발 배경 등
  • 업무와 관련된 문서들을 수집
    • 업무 매뉴얼, 장부, 거래 전표, PC 자료 등
    • 설문지, 인터뷰, 회의를 통해 수집: 업무 이해 및 정확한 요구사항 파악
  • 회사의 경영 목표 및 제약조건 파악
    • 경영 정책, 내/외적 환경, 조직의 관리와 기획에 필요한 정보, 조직의 현재와 장래 정보 전략 등에 대해 조사
    • 필요시 회사 경영자와의 면담
  • 모아진 문서와 자료 등을 분류하고 정리
  • 공식적 요구사항 명세서(requirement specification) 작성
    • 정적인 데이터 요소, 동적 데이터 처리 특성에 대한 내용이 포함
    • 빈번한 변경이나 분쟁 등을 방지
  • 요구사항 명세서 담당자들과 확인 회의를 거침
    • 회사 업무를 올바로 파악했는지를 확인함

 

문서들을 체계적으로 정리

많은 분량의 문서들을 정리하여 DB 설계 준비

소프트웨어 공학 기법들이 사용될 수 있다.

  • HIPO (hierarchical input process output)
  • SADT (strucured analysis and design technique)
  • DFD (data flow diagram)
  • Orr-Warnier Diagram
  • Nassi-Schneiderman Diagram

DFD (data flow diagram)

약속된 표기법에 따라서 작성된다.

 

개념적 설계 (conceptual design)

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

개념적 스키마 모델링(conceptual schema modeling)

  • E-R 다이어그램 사용
  • 요구 사항 분석 결과로 나온 명세서를 E-R 다이어그램과 같은 개념적 데이터 모델로 기술한다.
  • 이런 과정을 개념적 데이터 모델링이라 하고, 표현된 결과를 개념적 데이터 구조 또는 개념적 데이터 스키마라고 한다.
  • 스키마 구성 요소 : 개체, 속성, 관계를 식별해서 결정

 

개념적 스키마를 유도하는 기본 원리

  • 추상화(abstraction)
    • 현실세계를 단순화, 개념화시켜 표현한 것
  • 집단화(aggregation)
    • 하위 클래스 몇 개의 속성을 묶어서 하나의 새로운 개체를 생성
    • ex. 엔진, 기어, 바퀴 -> 자동차
  • 일반화(generalization)
    • 하위 레벨의 공통적인 특성을 파악하여 상위 레벨의 개체를 생성
    • ex. 승용차, 트럭, 버스 -> 자동차

 

트랜잭션 모델링

처리 중심 설계 : 응용을 위한 데이터 처리에 중점을 둔다.

  • 주요 트랜잭션들을 식별하고 이들에 대한 기능적 특성을 DB 설계 단계 초기에 명세해 놓은 것
  • 이렇게 하면 스키마에 트랜잭션이 필요로 하는 정보가 모두 포함되어 있는지 확인할 수 있다.
  • 트랜잭션 사이의 상대적 중요성예상 실행 빈도수를 파악해 물리적 DB 설계할 때 중요 정보로 사용된다.

I/O와 기능적 행태(functional behavior)만 주로 정의

  • 즉, 입력 데이터, 출력 데이터, 내부적인 제어 흐름을 기술한다.

트랜잭션의 유형

  • 검색, 갱신, 혼합(검색 & 갱신) 형태가 존재

728x90