[데이터베이스] 데이터베이스의 개념과 설계

728x90
반응형

목차

1. 데이터베이스 설계 개요

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


Database의 개념과 설계

 

* ER Model

 - 초기, 고수준(개념적) 데이터베이스 설계를 표현하는데 사용하는 모델

 - 실세계를 엔티티, 애트리뷰트, 엔티티들의 관계성으로 표현

 - ER Diagram으로 표현 (그래픽하게)

 - 최종적으로 ER Model은 관계 스키마(schema)로 쉽게 바꿀 수 있음

 


1. 데이터베이스 설계 개요

 

데이터베이스 설계

: 개념적 스키마(Conceptual Schema)를 작성하는 것

 

* 데이터베이스 설계 = 스키마 설계

 

개념적 스키마(Conceptual Schema)

: 실제로 데이터베이스를 “어떻게 구현할 것인가” 와는 독립적으로, “정보 사용을 위한 상위 모델”을 개발하는 과정

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

▷ 최종 산출물: 물리적인 구현을 고려하지 않는, 한 조직의 “개념적 스키마

개념적 수준의 모델: 구현 단계에서 사용되는 3가지 데이터모델- 관계, 계층, 네트워크 데이터모델

 

물리적 스키마(Physical Schema)

: 물리적인 저장 장치(disk 등)와 접근 방식(access path)를 다룸

 

 


 

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

 

DB 설계 주요 단계

1) 요구사항 수집 및 분석

2) 개념적 설계 (= ER diagram 작성)

3) DBMS의 선정

4) 논리적 설계 (= DB schema 작성 + 정규화)

5) 물리적 설계 (: 하드웨어/운영체제의 특성 고려, 성능상의 요구사항)

6) Transaction 설계 (응용 프로그래밍 고려 단계)

7) (추가-생략 가능) 튜닝 등 기타 여러 작업

 


1단계) 요구사항 수집과 분석

• 요구사항을 수집하고, 의견들을 평가, 조정함

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

• 요구사항에 관한 지식을 기반으로 Entity, Attributes, Relationship 결정

• 데이터 처리에 관한 요구사항에 대해 

1) 적합한 연산이 무엇인지 결정

2) 연산들의 의미가 명확한지 재분석

3) 접근하는 데이터의 양, 타입, 사용자, 결과, 예상되는 이상치 등을 분석

 

2단계) 개념적 설계

• 설계 결과는 ER Diagram으로 표현됨

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

 - 본 단계의 결과물은 논리적 설계 단계의 입력으로 사용됨

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

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

▷ 엔티티 타입, 관계 타입, 애트리뷰트들, 애트리뷰트들의 도메인(=타입), 기본키와 후보키 결정

완성된 개념적 스키마(ER Schema)는 “ER Diagram”으로 표현됨

 

3단계) DBMS 선정 

• 여러 가지 요인들을 검토한 후, 해당 업무에 최적인 DBMS를 선정

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

정치적 요인: 고수준의 전략적인 결정 등

경제적 요인: DBMS 구입 비용, 하드웨어 구입 비용, 유지보수 비용 등

 

4단계) 논리적 설계

• 설계 결과는 해당 데이터베이스의 “스키마”로 표현됨

• 데이터베이스 관리를 위해 선택한 DBMS의 Data model을 사용하여, 논리적 스키마(외부 스키마도 포함) 생성

• 관계 데이터 모델을 사용하는 경우, ER Model로 표현된 개념적 스키마를 “관계 데이터베이스 스키마”로 사상

• 관계 데이터베이스 스키마를 더 좋게 변환하기 위해 정규화 과정(Normalization) 적용

 

 

5단계) 물리적 설계

• 설계 결과는 성능 향상으로 나타남

• 처리 요구사항들을 만족시키기 위해 시스템 (디스크) 저장 구조접근 경로(질의어 선택, 인덱스 선택) 등 결정

• 성능상의 주요 기준: 응답시간, 트랜잭션 처리율, 확장성, 유연성

 

6단계) 트랜잭션 설계 (응용 프로그램 설계 단계)

• 설계 결과는 여러가지 “흩어진 일들이 하나로 묶여진 프로그램 계획서 생성”

어떤 일들을 하나로 묶어서 프로그램을 작성할 것인지 결정하는 단계

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

• 고객의 최종 필요성을 중심으로 프로그래밍을 고려하는 레벨

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

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

• 검색, 갱신, 입력, 출력 등의 유형으로 구분함.

 

728x90
반응형