Database - 데이터베이스 설계의 개요

Bomin Seo·2022년 7월 24일
0

데이터 베이스 설계

  • 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분한다.
  • 개념적 데이터베이스 설계는 실제로 데이터베이스를 어떻게 구현할 것인가와는 독립적으로 정보 사용 모델을 개발하는 과정을 설계한다.
  • 물리적 데이터베이스 설계는 물리적인 저장 장치와 접근 방식을 다룬다.

개념적 데이터 베이스 설계 (정형적으로 설계)

  • 인간들이 이해하기 쉽게 고도로 추상화하여 표현한다.
  • 조직체(실세계)의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 구축
  • 엔티티는 서로 구분이 되면서 조직체에서 데이터베이스에 나타내려는 객체(사람, 장소, 사물 등)을 의미한다.
  • 관계는 2개 이상의 엔티티 간의 연관을 나타낸다.
  • 프로세스는 관련된 활동을 나타낸다.
  • 무결성 제약조건은 데이터의 정확성과 비즈니스 규칙을 의미한다.

개념적 수준의 모델

  • 특정 데이터 모델과 독립적으로 응용 세계를 모델링할 수 있도록 한다.
  • 데이터베이스 구조나 스키마를 하향식으로 개발할 수 있기 위한 Framework를 제공한다.
  • 인기 있는 개념적 수준의 모델은 엔티티-관계 모델 (ER/Entity-Relationship Model)
  • ER모델과 같은 개념적인 데이터 모델이 사상될 수 있는 다수의 구현 데이터 모델이 존재한다.
  • 구현 단계에서 사용되는 3가지 데이터 모델 : 관계 / 계층 / 네트워크 데이터 모델

데이터 베이스 설계의 개요

  • 한 조직체의 운영과 목적을 지원하기 위해 데이터 베이스를 생성하는 과정
  • 목적은 모든 주요 응용과 사용자들이 요구하는 데이터, 데이터 간의 관계를 표현하는 것이다.
  • 데이터 베이스 개발은 일반적인 프로젝트 라이프 사이클 과정을 따른다

훌륭한 데이터 베이스 설계

  • 시간의 흐름에 따른 데이터의 모든 측면을 나타낸다.
  • 데이터 항목의 중복을 최소화하고, 데이터 베이스에 대한 효율적인 접근을 제공한다.
  • 데이터 베이스의 무결성을 제공하고 이해하기 쉬워야 한다.

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

요구사항 분석(요구사항 명세 도출) → 개념적 설계(개념적 스키마 도출) → DBMS의 선정(데이터 모델 선정) → 논리적 설계(논리적 스키마 도출) → 스키마 정제 → 물리적 설계(물리적 스키마 도출) → 보안 설계 → 구현 단계

  • 설계의 완성도를 높이기 위해 단계를 오가며 진행할 필요가 있다.


  • 작은 세계 : 데이터 베이스 응용이 적용되는 실세계의 일부분
  • 개념적 설계단계까지 DBMS 독립적이며 논리적 설계부터는 DBMS 의존적이다.
  • 논리적 설계에서 DBMS가 선정되면 개념적 스키마가 릴레이션으로 사상된 논리적 스키마가 산출물

요구사항 수집과 분석 (설계자와 사용자 간의 의사소통이 가장 중요하다)

  • 흔히 기존의 문서를 조사하고, 인터뷰(흔히 사용)나 설문 조사 등이 시행된다.
    • 필요성이 발생한 원인을 파악하고 문제가 발생한 부서를 식별하고, 현재의 시스템을 이해하는 데 도움이 된다.
  • 설문 조사는 자유롭게 의견을 적어내는 방식과 주어진 질문에 답하는 방식으로 구분된다.
  • 요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의 Attribute들이 무엇인가, 엔티티들 간의 관계가 무엇인가에 대하여 파악한다. (작은 세계에서 일하고 있는 실무자 들과의 면담이 필요하다)
  • 데이터 처리에 관한 요구사항에 대하여 전형적인 연산들은 무엇인가, 연산들의 의미, 접근하는 데이터 양 등을 분석한다.

개념적 설계(대표적인 데이터 모델 : ER 모델)

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

DBMS 선정 (데이터 모델 선정)

  • 기술적인 요인은 DBMS가 제공하는 데이터 모델, 저장 구조, 인터페이스, 질의어, 도구, 제공되는 서비스 등이 있다.
  • 정치적인 요인은 고수준의 전략적인 결정 등이 있다.
  • 경제적인 요인은 DBMS 구입 비용, 하드웨어 구입 비용, 유지 보수 비용, 기존의 시스템을 새로운 DBMS에 맞도록 변환하는데 소요되는 비용, 인건비, 교육비 등이 있다.

논리적 설계 (정규화를 포함한다)

  • 데이터 베이스 관리를 위해 선택한 DBMS의 데이터 모델을 사용하여 논리적 스키마를 생성
  • 개념적 스키마에 알고리즘을 적용하여 논리적 스키마를 생성한다.
  • 논리적 스키마를 나타내기 위해 관계 데이터 모델을 사용하는 경우에는 ER모델로 표현된 개념적 스키마를 관계 데이터 베이스 스키마로 사상한다.
  • 관계 데이터 베이스 스키마를 더 좋은 스키마로 변환하기 위해서 정규화 과정을 적용한다.
  • 데이터 베이스 설계자가 요구사항 수집과 분석 후에 바로 논리적 설계 단계로 가는 경우는 좋은 관계 데이터 베이스 스키마가 생성되지 않는다.

물리적 설계

  • 처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로(직접 접근, 인덱스를 통한 접근 등) 등을 결정한다.

성능 상의 주요 기준

  • 응답 시간 : 질의와 갱신이 평균적 또는 피크 시간에 얼마나 오래 걸릴 것인가?
  • 트랜잭션 처리율 : 1초당 얼마나 많은 트랜잭션들이 평균적 또는 피크 시간에 처리되는가?
  • 전체 데이터 베이스에 대한 보고서를 생성하는데 얼마나 오래 걸릴 것인가?

트랜잭션 설계

  • 요구사항 수집과 분석 후에 데이터베이스 설계 과정과 별도로 트랜잭션 설계를 진행할 수 있다
  • 트랜잭션은 완성될 데이터베이스에서 동작할 응용 프로그램
  • 데이터베이스 스키마는 트랜잭션에서 요구하는 모든 정보를 포함해야 한다.
  • 검색, 갱신, 혼합 등 3가지 유형으로 구분하여 입/출력, 동작 등을 식별한다.
profile
KHU, SWCON

0개의 댓글