[Database] 데이터베이스 설계

데이터베이스 설계란 어떤 것인지 개념적 설계 위주로 살펴본 후,
데이터베이스를 설계하는 과정에 대해 구체적으로 공부해보자❗️ 📖

  1. 데이터베이스 설계의 개요
    1. 개념적 데이터베이스 설계
    2. 개념적 수준의 모델
  2. 데이터베이스 설계의 주요 단계
    1. 요구사항 수집과 분석
    2. 개념적 설계
    3. DBMS 선정
    4. 논리적 설계
    5. 물리적 설계
    6. 트랜잭션 설계
  3. 데이터베이스 설계의 주요 단계 한눈에 보기

데이터베이스 설계의 개요

  • 한 조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 과정
  • 여기서 목적이란, 모든 주요 애플리케이션과 사용자들이 요구하는 데이터, 데이터 간의 관계를 표현하는 것이다.
  • 훌륭한 데이터베이스 설계는
    • 시간의 흐름에 따른 데이터의 모든 측면을 나타내고,
    • 데이터 항목의 중복을 최소화하고,
    • 데이터베이스에 대한 효율적인 접근을 제공하고,
    • 데이터베이스의 무결성을 제공하고,
    • 이해하기 쉬워야 한다.
  • 크게 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분한다.
    • 개념적 데이터베이스 설계는 정보 사용의 모델을 개발하는 과정
    • 물리적 데이터베이스 설계는 물리적 저장 장치와 접근 방식을 다룸

개념적 데이터베이스 설계

→ 조직체의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 구축한다.

  • 조직체
    • 실세계. 작은 세계.
  • 엔티티
    • 서로 구분이 되는, 조직체에서 데이터베이스에 나타내려는 객체를 의미
    • 사람, 장소, 사물 등
  • 관계
    • 두 개 이상의 엔티티들 간의 연관
  • 프로세스
    • 관련된 활동
  • 무결성 제약조건
    • 데이터의 정확성과 비즈니스 규칙을 의미

개념적 수준의 모델

  • 특정 데이터 모델과 독립적으로 응용 세계를 모델링할 수 있도록 한다.
  • 데이터베이스 구조나 스키마를 하향식으로 개발할 수 있도록 하는 틀을 제공한다.
  • 엔티티-관계 모델 (ER, Entity-Relationship)이 많이 사용된다.
  • ER 모델과 같은 개념적인 데이터 모델을 반영하여 표현할 수 있는
    구현 데이터 모델(implementation data model)이 다수 존재한다.

  • 구현 단계에서 사용하는 세 가지 데이터 모델
    • 관계 데이터 모델
    • 계층 데이터 모델
    • 네트워크 데이터 모델



데이터베이스 설계의 주요 단계

데이터베이스 개발의 라이프 사이클은 크게 요구사항 분석 단계, 설계 단계, 구현 단계로 이루어진다. 그중 요구사항 수집과 분석, 개념적 설계, 논리적 설계, 물리적 설계 전후를 중심으로 어떤 것을 어떻게 설계해야 하는지 알아보자.

요구사항 수집과 분석

  • 문서 조사, 인터뷰나 설문조사 시행
  • 요구사항에 관한 지식을 기반으로, 관련 있는 엔티티들과 이들의 애트리뷰트들이 무엇인지
    엔티티들 간의 관계가 무엇인지 파악한다.
  • 데이터 처리 관련 요구사항에 대하여 전형적인 연산이 무엇인지, 연산들의 의미가 무엇인지
    접근하는 데이터의 양은 어느정도인지 분석한다.

개념적 설계

  • 모든 물리적인 사항과 독립적으로, 한 조직체에서 사용되는 정보의 모델을 구축하는 과정
  • 사용자들의 요구사항 명세로부터 개념적 스키마가 만들어진다.
  • 데이터 모델을 기반으로, 정형적인 언어로 데이터 구조를 명시한다.
  • 대표적인 데이터 모델은 ER 모델이 있다.
  • 이 단계에서는 엔티티 타입, 관계 타입, 애트리뷰트들을 식별하고
    애트리뷰트들의 도메인, 후보 키와 기본키 애트리뷰트들을 결정한다.
  • 완성된 개념적 스키마(ER 스키마)는 ER 다이어그램으로 표현된다.

DBMS 선정

  • 여러 가지 요인들을 검토하여 DBMS(Database Management System)을 선정한다.
  • 기술적인 요인
    • DBMS가 제공하는 데이터 모델, 저장 구조, 인터페이스, 질의어, 도구, 서비스 등
  • 정치적인 요인
    • 고수준의 전략적 결정이 필요하다. 오…
  • 경제적인 요인
    • DBMS 구입 비용, 하드웨어 구입 비용, 유지보수(서비스) 비용,
      기존 시스템을 새로운 DBMS에 맞게 변환하는 데 소요되는 비용, 인건비, 교육비 등

논리적 설계

  • 데이터베이스 관리를 위해 선택한 DBMS의 데이터 모델을 사용하여 논리적 스키마(외부 스키마도 포함)를 생성한다.
  • 개념적 스키마에 알고리즘을 적용하여 논리적 스키마를 생성한다.
  • 논리적 스키마를 나타내기 위해 관계 데이터 모델을 사용하는 경우에는,
    ER 모델로 표현된 개념적 스키마를 관계 데이터베이스 스키마로 사상한다.
  • 정규화 과정을 적용하여 관계 데이터베이스 스키마를 개선한다.
  • 데이터베이스 설계자가 요구사항 수집과 분석 후에 바로 논리적 설계 단계로 가는 경우가 있는데,
    이런 경우에는 좋은 관계 데이터베이스 스키마가 생성되기 어렵다.

물리적 설계

  • 처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로 등을 결정한다.
  • 성능상의 주요 기준
    • 응답 시간
      • 질의와 갱신이 평균적으로 또는 피크 시간 때 얼마나 오래 걸릴 것인가?
    • 트랜잭션 처리율 (TPS, transaction per second)
      • 1초당 얼마나 많은 트랜잭션들이 평균적으로 또는 피크 시간 때 처리될 수 있는가?
    • 전체 데이터베이스에 대한 보고서를 생성하는 데 얼마나 오래 걸릴 것인가?

트랜잭션 설계

  • 요구사항 수집과 분석 후, 데이터베이스 설계 과정과 별도로 트랜잭션 설계를 진행할 수 있다.
  • 트랜잭션은 완성될 데이터베이스에서 동작할 응용 프로그램
    • 주로 DB의 상태를 변화시키기 위해 실행하는 작업의 단위,
    • 한꺼번에 처리되어야 하는 명령어들의 집합 정도로 이해할 수 있다
  • 데이터베이스 스키마는 트랜잭션에서 요구하는 모든 정보를 포함해야 한다.
  • 검색, 갱신, 혼합 등 세 가지 유형으로 구분하여 입력과, 출력, 동작 등을 식별한다.



데이터베이스 설계의 주요 단계 한눈에 보기

정리하자면, 작은 세계의 필요에 따라 데이터베이스를 생성하는 전체적인 과정은 다음과 같다!


© 2024 do. Some rights reserved. Powered by Hydejack.