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

BBaeng·2022년 6월 10일
0

데이터베이스

목록 보기
2/7

5장 개요

데이터베이스 설계는 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분된다.

  • 개념적 데이터베이스 : 실제 데이터베이스 구현과는 별개로 정보 사용의 모델을 개발하는 과정이다.
  • 물리적 데이터베이스 : 물리적인 저장 장치와 접근 방식에 대해 다룬다.

개념적 데이터베이스

실제 데이터베이스 구현과는 별개로 정보 사용의 모델을 개발하는 과정으로 조직체(실세계)의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 만든다.

  • 엔티티 : 서로 구분이 되며 데이터베이스에 나타내려는 객체(사람, 장소, 사물)를 의미한다.
  • 관계 : 엔티티들간의 연관을 나타낸다.
  • 프로세스 : 활동
  • 무결정 제약조건 : 데이터의 정확성과 비즈니스 규칙

개념적 수준의 모델

  • 특정 데이터 모델(관계, 네트워크, 객체지향 모델)과 독립적으로 응용 시계를 모델링한다.
  • 데이터베이스 스키마, 구조를 하향식으로 개발할 수 있는 틀을 제공한다.
  • 다수의 구현 데이터 모델이 존재하는데 그 중 대표적으로 ER모델이 있다.

구현 단계에서는 관계, 네트워크, 객체지향, 계층 데이터 모델이 사용된다.


5.1 데이터베이스 설계의 개요

데이터 베이스 설계


데이터 베이스

조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 것이다.

목적

모든 주요 응용과 사용자들이 요구하는 데이터, 데이터간의 관계를 표현하기 위해서 만들어 진다.


설계

아래는 훌륭한 데이터베이스의 설계에 대한 설명이다.

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

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


위 그림은 데이터 베이스 설계의 단계를 나눈 것이다.

일반적으로, 설계의 완성도를 높이기 위해 유동적으로 작업하기도 한다.

요구사항 수집과 분석

  • 작은 세계(설계 대상)에 대해 문서 조사, 인터뷰, 설문 조사와 같은 사실 수집(데이터 수집)
  • 요구사항을 기반으로 엔티티들과 이들의 애트리뷰트, 관계를 파악한다.
  • 데이터 처리에 관한 연산, 연산들의 의미, 접근하는 데이터의 양을 분석한다.

개념적 설계

  • 한 조직체에서 사용되는 정보의 모델을 구축한다.
  • 요구사항으로부터 개념적 스키마가 생성된다.
  • 정형적인 언어로 데이터 구조를 명시한다.
  • ER모델, 객체지향 모델, UML 모델 등이 존재한다.
  • 완성된 개념적 스키마(ER 스키마)는 ER 다이어그램으로 표현한다.

개념적 설계 단계에서는 엔티티 타입, 관계 타입, 애트리뷰트들을 식별, 애트리뷰트들의 도메인을 결정하고, 후보 키와 기본 키 애트리뷰트를 결정한다.

DBMS 선정

여러 요인들을 검토하여 선정한다.

  • 기술적 : DBMS가 제공하는 데이터 모델, 저장 구조, 인터페이스, 질의어, 도구, 제공되는 서비스
  • 정치적 : 고수준의 전략적인 결정
  • 경제적 : DBMS 구입 비용, 하드웨어 구입 비용, 유지비용, 변환비용 등

논리적 설계

데이터 베이스 관리르 위해 DBMS의 데이터 모델을 사용하여 논리적 스키나(외부 스키마도 포함)를 생성함.

  • 개념적 스키마에 알고리즘을 적용하여 논리적 스키마를 생성한다.
  • 관계 데이터 모델을 사용하는 경우, ER모델로 표현된 개념적 스키마를 관계 데이터베이스 스키마로 사상한다.
  • 더 좋은 관계 데이터베이스 스키마로 변환하기 위해 정규화 과정을 적용한다.
  • 개념적 설계 없이 논리적 설계로 가면 좋은 관계 데이터베이스 스키마가 생성되지 않는다.

물리적 설계

요구사항을 만족 시키기 위해 저장 구조와 접근(엑세스) 경로 등을 결정한다.

성능상의 주요 기준

  • 응답 시간
  • 트랜잭션 처리율
  • 보고서 생성 시간

트랜잭션 설계

데이터베이스 설계 과정 과 별도로 트랜잭션 설계를 할 수 있다.

  • 완성될 데이터베이스에서 동작할 응용프로그램
  • 데이터베이스 스키마는 트랜잭션에서 요구되는 모든 정보를 포함해야한다.
  • 검색, 갱신, 혼합 등으로 구분하여 입력, 출력, 동작등을 식별한다.

0개의 댓글