데이터베이스 설계
데이터베이스 설계는 사용자 요구를 토대로 현실 세계의 대상을 구현가능한 컴퓨터 데이터베이스의 구조로 개발하는 작업입니다. 데이터베에스 설계는 스키마를 정의하고 이를 구현하기 위한 전반적인 과정을 거칩니다.
이 과정들을 세분화하면, 요구조건 분석 → 설계(개념적 설계→논리적 설계→물리적 설계) → 구현 → 운영 및 유지보수 입니다.
1) 요구조건 분석: 업무 프로세스 및 사용자가 필요한 정보가 무엇인지, 해결해야할 문제가 무엇인지를 분석하는 과정입니다. 이렇게 분석된 자료를 토대로 요구조건 명세서를 작성합니다.
[예시]: ㅁㅁ대학교의 학생들을 데이터베이스로 구현한다. 학생에게는 고유의 학번이 부여되며, 그 외에 이름, 나이, 학년, 전공이란 속성을 가진다.
2) 개념적 설계: 요구조건을 분석한 결과를 기반으로, 데이터베이스에 저장해둘 데이터 요소(개체 및 속성)가 무엇인지 정하고 그 요소들 간의 관계를 파악하여 개념적으로 표현합니다. 개체-관계 모델(Entity-Relation Model, E-R모델, ERM)을 통하여 개체 타입과 이들간의 관계타입을 이용하여 현실 세계를 개념적으로 표현할 수 있습니다. 이렇게 E-R모델을 이용해 표현한 산출물을 개체-관계 다이어그램(Entity-Relationship Diagram, E-R다이어그램, ERD)이라고 합니다.
※ E-R모델(Entity-Relation Model): 데이터베에스에 사용되는 개체, 속성, 관계를 약속된 기호로 표현하여 데이터베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델.
3) 논리적 설계: 개념적 설계에서 만들어진 구조를 기반으로 DBMS가 처리할 수 있는 데이터베이스의 논리적 구조를 설계하는 단계입니다. 여기서 스키마를 정의하게 됩니다. 목표 DBMS에 따라 관계형, 계층형, 망형 모델로 설계될 수 있습니다. 이 단계에서 정규화 또한 진행됩니다.
※스키마(Schema): 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술·정의한 것입니다. 스키마의 계층으로는 개념 스키마, 외부 스키마, 내부 스키마가 있습니다.
(스키마의 3계층 사진. 출처: https://en.wikipedia.org/wiki/Three-schema_approach )
* 외부 스키마(External Schema): 전체 데이터 중에서 사용자가 바라보는 일부분에서의 논리적 구조를 말합니다. 이는 사용자에 따라 다르며, 여러개가 존재합니다. 서브 스키마라고도 합니다.
* 개념 스키마(Conceptual Schema): 논리적 관점(사용자 관점)에서 본 전체적인 데이터의 논리적 구조입니다. 개념 스키마를 줄여서 그냥 스키마라 부르기도 하며, 전체적인 뷰라고도 부릅니다. 데이터베이스 전체를 기술한 것이기에, 한 데이터베이스 시스템에선 유일합니다.
* 내부 스키마(Internal Schema): 물리적인 저장장치 관점에서 본 데이터베이스의 구조입니다.
4) 물리적 설계: 논리적으로 설계된 데이터베이스 구조를 토대로 하드웨어나 운영체제의 특성을 고려하여 그에 알맞은 인덱스의 구조와 내부 저장 구조 및 접근 경로를 설계하는 단계입니다. 그 외에 저장레코드의 양식을 설계하고, 물리적인 데이터의 타입이나 사이즈 등을 정의합니다. 여기서 성능을 향상시키기 위한 역정규화 작업도 실시합니다.
5) 구현: 설계 과정에서 얻어진 것을 토대로 실제 데이터베이스를 만드는 과정입니다.
6) 운영 및 유지보수: 구현된 데이터베이스를 실제로 운영해보면서 문제점과 개선점을 파악합니다. 그렇게 파악된 문제점을 토대로 데이터베이스의 튜닝과 유지보수를 합니다.
* 데이터베이스 튜닝(Database Tuning): 데이터베이스가 일정한 성능을 유지할 수 있도록 데이터베이스의 여러 요소들을 조율하여 비효율적인 요소를 제거하고 성능을 개선하는 작업입니다.
* 데이터베이스 유지보수: 데이터베이스를 운영하면서 사용자 및 비지니스 환경 변화, 업무 절차 변화가 일어날 수 있습니다. 이런 환경의 변화에 따라 데이터베이스를 지속적으로 변경하는데, 이런 일련의 작업을 유지보수라고 합니다.
'데이터베이스' 카테고리의 다른 글
7. 관계형 데이터 모델(Relation Data Model) (0) | 2018.04.04 |
---|---|
6. 개체-관계 모델(Entity-Relationship Model) (0) | 2018.04.03 |
4. 데이터베이스 관리시스템 DBMS와 데이터베이스 사용자 (0) | 2018.04.01 |
3. 데이터베이스의 언어, 시스템 카탈로그 (0) | 2018.04.01 |
2. 데이터베이스의 구성요소 (0) | 2018.03.31 |