Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[데이터베이스] 5.1. 데이터베이스 설계의 개요 본문

3학년 1학기 전공/데이터베이스

[데이터베이스] 5.1. 데이터베이스 설계의 개요

시데브 2024. 5. 2. 14:36
경희대학교 이영구 교수님의 데이터베이스 수업 복습용 게시물입니다.

 

 

데이터베이스 설계

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

 

개념적 데이터베이스 설계

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

 

개념적 수준의 모델

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

 

데이터베이스 설계의 개요

  • 한 조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 과정
  • 목적: 모든 주요 응용과 사용자들이 요구하는 데이터, 데이터 간의 관계를 표현
  • 데이터베이스 개발 -> 일반적인 프로젝트 라이프 사이클 과정을 따름
  • 훌륭한 데이터베이스 설계
  • 시간의 흐름에 따른 데이터의 모든 측면을 나타냄 -> 현재의 요구 사항에 집착하여 이후 변경될 사항을 고려하지 못하는 문제 -> 이후에 변경할 것도 고려해라!
  • 데이터 항목의 중복을 최소화
  • 데이터베이스에 대한 효율적인 접근
  • 데이터베이스의 무결성
  • 이해하기 쉬워야 함

데이터베이스 개발의 라이프 사이클: 요구 사항 분석 단계 -> 설계 단계 -> 구현 단계 -> 데이터를 적재하거나 변환 -> 기존의 응용 변환

 

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

  • 요구사항 분석, 개념적 설계, DBMS 선정, 논리적 설계, 스키마 정제, 물리적 설계와 튜닝 등 여러 작업들로 이루어짐

요구사항 분석 단계

요구사항 수집과 분석

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

 

설계 단계

개념적 설계

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

 

DBMS 선정

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

 

논리적 설계

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

 

물리적 설계

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

 

트랜잭션 설계

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