민규의 흔적

[오라클 DB] 데이터베이스 설계 본문

데이터베이스

[오라클 DB] 데이터베이스 설계

민규링 2023. 10. 22. 18:24

데이터베이스 설계

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

목적은 주요 응용과 사용자들이 요구하는 데이터, 데이터 간의 관계를 표현하는 것이다.

 

훌륭한 데이터베이스 설계

 

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

 

 

데이터베이스 설계 과정에는 요구사항 분석/설계/구현 과정이 있으며, 설계 세부 과정은 3단계(개념/논리/물리 설계)로 구성된다.

 

개념적 데이터베이스 설계

 

독립적인 정보 사용의 모델을 개발하는 과정으로, 이를 개념적 데이터 모델링이라고 한다.

DBMS와 상관없이 독립적으로 수행되며

실세계의 비즈니스를 이해를 통해 데이터 요소 간의 관계를 표현한 개념적 스키마를 산출한다.

 

개념적 데이터 모델

 

특정 DBMS와 독립적으로 실세계를 정보 모델링 할 수 있도록 하며, 요구사항 명세를 분석 후 개념 설계로 변환한다.

데이터베이스 구조나 스키마를 개발할 수 있기 위한 틀(framework)을 제공한다.

 

대표적인 개념적 데이터 모델로는 엔티티-관계(Entity - Relationship) 모델ER모델이 있으며, 실세계를 모델링 할 수 있게 한다.

엔티티, 관계, 프로세스, 무결성 제약조건을 나타내는 추상화된 뷰로 표현한다.

 

 

논리적 데이터베이스 설계

 

DBMS의 데이터 모델(관계 데이터 모델)을 사용하여 개념적 설계 결과인 개념적 스키마를 알고리즘을 적용하여 논리적 스키마를 생성한다.

이 과정을 논리적 데이터 모델링이라고 한다.

 

 

 

물리적 데이터베이스 설계

 

DBMS를 사용하여 물리적인 저장 장치와의 접근 방식을 다루며, 테이블 및 인덱스를 생성한다.

이 과정을 물리적 데이터 모델링이라고 한다.

 

 


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

 

데이터베이스 설계 5단계

 

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

 

기존의 문서를 조사하고, 인터뷰나 설문 조사 등이 시행된다.

( 인터뷰는 요구사항 수집을 위해 가장 흔히 사용되는 방식이며, 설문 조사는 자유롭게 의견을 적어내도록 하는 방식과 주어진 질문에 대해서만 답을 하는 방식으로 구분된다. )

 

파악하고 분석해야 할 내용으로는 다음과 같다.

 

요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의 애트리뷰트들이 무엇인가?

엔티티들 간의 관계가 무엇인가?

데이터 처리에 관한 요구사항에 대하여 전형적인 연산들은 무엇인가?

연산들의 의미, 접근하는 데이터의 양 등을 분석

 


 

2단계 : 개념적 설계

 

대표적인 개념적 데이터 모델인 ER 모델을 이용하여 정보 모델을 구축한다.

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

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

 

개념적 설계의 단계에서, ER 모델에서 결정할 내용은 다음과 같다.

 

엔티티 타입, 관계 타입, 애트리뷰트들을 식별한다.

애트리뷰트들의 도메인을 결정한다.

후보 키와 기본 키 애트리뷰트들을 결정한다.

 

ER 모델을 통해 완성된 개념적 스키마(ER 스키마) ER 다이어그램으로 표현된다.

 

 

DBMS 선정

 

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

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

정치적인 요인은 고수준의 전략적인 결정 등이 존재한다.

경제적인 요인은 DBMS 구입 비용, 하드웨어 구입 비용, 유지 보수(서비스) 비용, 기존의 시스템을 새로운 DBMS에 맞게 변환하는데 소요되는 비용, 인건비, 교육비 등이 존재한다.

 

 


3단계 : 논리적 설계

 

선정한 DBMS의 데이터 모델(관계형 데이터 모델)을 사용하여 개념적 스키마에 알고리즘을 적용하여 논리적 스키마를 생성한다. 이를 논리적 데이터 모델링이라고 한다.

관계 데이터 모델을 사용하는 경우에는, ER 모델로 표현된 개념적 스키마를 관계 데이터베이스 스키마로 사상한다.

 

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

 

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

 

 


4단계 : 물리적 설계

 

논리적인 설계의 데이터 구조를 장치 상의 파일(물리적인 데이터 모델)로 사상한다.

요구 사항들을 만족시키기 위해 저장 구조와 인덱스 등을 결정한다.

 

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

 

응답 시간 : 질의와 갱신이 평균적으로 또는 피크 시간 때 얼마나 오래 걸릴 것인가?

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

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

 


5단계 : 트랜잭션 설계 및 구현

 

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

 

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

 

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