데이터베이스 설계

2021. 11. 23. 20:16

데이터베이스 설계

[TOC]

 

데이터베이스 설계

  • 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분
  • 개념적 데이터베이스 설계는 실제로 데이터베이스를 어떻게 구현할 것인가와는 독립적으로 정보 사용의 모델을 개발하는 과정
  • 물리적 데이터베이스 설계에서는 물리적인 저장 장치와 접근 방식을 다룸
  • 개념적 데이터베이스 설계 과정에서 조직체(실세계)의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 구축
  • 엔티티는 서로 구분이 되면서 조직체에서 데이터베이스에 나타내려는 객체(사람, 장소, 사물 등)을 의미
  • 관계는 두 개 이상의 엔티티들 간의 연관을 나타냄
  • 프로세스는 관련된 활동을 나타냄
  • 무결성 제약조건은 데이터의 정확성과 비즈니스 규칙을 의미

 

개념적 수준의 모델

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

 

훌륭한 데이터 베이스 설계란?

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

 

데이터베이스 설계 과정

DB 설계 과정flow chart

 

1. 요구사항 수집과 분석 (가장 중요한 부분)

  • 요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의 애트리뷰트들이 무엇인가, 엔티티들 간의 관계가 무엇인가를 팡가함
  • 또한 데이터 처리에 관한 요구사항에 대하여 전형적인 연산들은 무엇인가, 연산들의 의미, 접근하는 데이터의 양 등을 분석함
  • 클라이언트들은 본인들이 필요한 게 무엇인지 100% 모름, 엔지니어가 잘 이해해서 만들어야함

 

2. 개념적 설계

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

 

3. DBMS 선정

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

 

4. 논리적 설계

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

 

5. 물리적 설계

  • 처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로등을 결정함
  • 성능상의 주요 기준은 몇 가지로 구분할 수 있음
    • 응답 시간 : 질의와 갱신이 평균적, 피크 시간 때 얼마나 오래 걸리는가
    • 트랜잭션 처리율 : 1초당 얼마나 많은 트랜잭션을 처리하는가
    • 전체 데이터베이스에 대한 보고서를 생성하는데 얼마나 걸리나?

 

6. 트랜잭션 설계 (응용 설계)

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

'CS > 데이터베이스' 카테고리의 다른 글

인덱스  (0) 2021.12.07
물리적 데이터 베이스 설계  (0) 2021.12.01
SQL 기초  (0) 2021.11.18
관계대수  (0) 2021.11.17
SQL Delete, Truncate, Drop 비교  (0) 2021.01.05

+ Recent posts