CS/DB

[DB] 데이터베이스 설계 개요

겜도리도리 2022. 5. 13. 21:57
반응형

개념적 데이터베이스 설계

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

엔티티는 서로 구분이 되면서 조직체에서 데이터베이스에 나타내려는 객체를 의미

관계는 두 개 이상의 엔티티들 간의 연관을 나타냄

프로세스는 관련된 활동을 나타냄

무결성 제약조건은 데이터의 정확성과 비즈니스 규칙을 의미

데이터베이스 설계 개요

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

모든 주요 응용과 사용자들이 요구하는 데이터 및 데이터 간의 관계를 표현

DB 개발은 일반적으로 프로젝트의 라이프 사이클을 따름

데이터베이스 개발의 라이프 사이클

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

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

데이터베이스 설계의 완성도를 높이기 위해서는 이런 과정들을 앞뒤로 왔다 갔다 할 필요가 있음

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

요구사항 수집과 분석

기존의 문서 조사,  인터뷰, 설문 조사 등이 시행됨

인터뷰는 요구사항 수집을 위해 가장 흔히 사용됨

설문 조사는 자유롭게 의견을 적어내도록 하는 방식과 주어진 질문에 대해서만 답을 하는 방식으로 구분

요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의 애트리뷰트들이 무엇인가, 엔티티들 간의 관계가 무엇인가 등을 파악함

데이터 처리에 관한 요구사항에 대하여 전형적인 연산, 연산들의 의미, 접근하는 데이터 양 등을 분석함

개념적 설계

모든 물리적인 사항과 독립적으로, 한 조직체에서 사용되는 정보의 모델을 구축하는 과정

사용자들의 요구사항 명세로부터 개념적 스키마가 만들어짐

높은 추상화 수준의 데이터 모델을 기반으로 정형적인 언어로 데이터 구조를 명시함

대표적인 데이터 모델이 ER 모델

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

완성된 개념적 스키마(ER 스키마)는 ER 다이어그램으로 표현됨

DBMS 선정

여러 가지 요인들을 검토한 후 DBMS를 선정함.

기술적인 요인에는 DBMS가 제공하는 데이터 모델, 저장 구조, 인터페이스, 질의어, 도구 등이 있음

정치적인 요인에는 고수준의 전략적 결정 등이 있음

경제저긴 요인에는 DBMS 구입 비용, 하드웨어 구입 비용, 유지 보수 비용, 기존의 시스템을 새로운 DBMS에 맞게 변환하는데 소요되는 비용, 인건비, 교육비 등이 있음

논리적 설계

데이터베이스 관리를 위해 선택한 DBMS의 데이터 모델을 사용하여 논리적 스키마를 생성함

개념적 스키마에 알고리즘을 적용하여 논리적 스키마를 생성함

논리적 스키마를 나타내기 위해 관계 데이터 모델을 사용하는 경우에는, ER 모델로 표현된 개념적 스키마를 관계 데이터베이스 스키마로 사상함.

관계 데이터베이스 스키마를 더 좋은 관계 데이터베이스 스키마로 변환하기 위해서 정규화 과정을 적용함

데이터베이스 설계자가 요구사항 수집과 분석 후에 바로 논리적 설계 단계로 가는 경우가 있는데, 이런 경우에는 흔히 좋은 관계 데이터베이스 스키마가 생성되지 않음.

물리적 설계

처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로 등을 결정함

성능상의 주요 기준은 몇 가지로 구분할 수 있음

응답 시간 : 질의와 개인이 평균적으로 또는 피크 시간 때 얼마나 오래 걸리는지

트랜잭션 처리율 : 1초당 얼마나 많은 트랜잭션들이 평균적으로 또는 피크 시간 때 처리될 수 있는지

전체 데이터베이스에 대한 보고서를 생성하는데 얼마나 오래 걸릴 것인지

트랜잭션 설계

요구사항 수집과 분서 후에 데이터베이스 설계 과정과 별도로 트랜잭션 설계를 진행할 수 있음

트랜잭션은 완성될 데이터베이스에서 동작할 응용 프로그램

데이터베이스 스키마는 트랜잭션에서 요구하는 모든 정보를 포함해야 함

검색, 갱신, 혼합 등 세 가지 유형으로 구분하여 입력과 출력, 동작 등을 식별함

반응형

'CS > DB' 카테고리의 다른 글

[DB] ER 스키마를 관계 모델의 릴레이션으로 사상하기  (1) 2022.05.15
[DB] ER 모델  (0) 2022.05.14
[DB] SQL 사용법(2)  (0) 2022.04.26
[DB] SQL 사용법(1)  (0) 2022.04.26
[DB] 관계 대수 예시  (0) 2022.04.26