데이터베이스는 현실 세계를 이해하여 컴퓨터 세계에 대응을 시키는 과정이라고 할 수 있습니다. 이러한 과정은 총 3개의 과정으로 나타날 수 있습니다. 각각의 과정은 다음과 같습니다.
- Modeling : 현실 세계를 이해하는 과정
- Implementation : 설계 및 코딩을 하는 과정
- Application : 관리하는 과정
이렇게 총 3개의 과정으로 구성됩니다. 여기서 1의 내용을 2로 바로 대응하는 것은 쉬운 일이 아닙니다. 따라서 이를 돕기 위해서 우리는 어떤 다이어그램(Diagram)을 사용하는 데, 이 다이어그램을 통합 모델링 언어(Unified Modeling Language) 줄여서 UML이라고 합니다. 이것에 관해서는 뒤에서 배우도록 하겠습니다.
이제 이런 데이터베이스의 생명 주기는 어떻게 되는지 살펴보도록 하겠습니다. 이때 소프트웨어 생명 주기와 비교를 하도록 하겠습니다.
소프트웨어 | 데이터베이스 | 비고 |
---|---|---|
요구 사항 분석 | 요구 사항 분석 | PART 1 |
기능 명세 | 모델링 | PART 1 |
설계 | 스키마1 설계 | PART 2 |
개발 환경 구축 | DB 환경 구축 | - |
코딩 | 데이터 취합 및 입력 | - |
테스트 | 품질 제어 | - |
유지보수 | 관리 및 검색 | PART 3 |
여기서 각각의 부분(Part)에 관해서 구체적으로 확인해보도록 하겠습니다.
PART 1 : 데이터 모델링
이 과정에서는 다음과 같은 일이 발생하게 됩니다.
- 정형화된 방법으로 현실 세계를 이해
- 객체 지향 데이터 모델의 제작 (UML Class Diagram)
- 관계형 데이터 모델의 제작 (E-R Model)
각각의 모델은 뒤에서 배워보도록 하겠습니다.
PART 2 : 데이터베이스 설계
이런 데이터베이스 설계의 과정에서는 관계형 데이터베이스의 스키마를 디자인하도록 합니다.
PART 3 : 질의(質疑) 디자인
데이터베이스에서 조건에 맞는 데이터를 찾는 상황이 많이 벌어집니다. 이런 조건에 해당하는 데이터가 있는지를 데이터베이스에 묻는 것을 질의(質疑) 또는 쿼리(Query)라 하고, 이를 사용자들이 쉽게 쓸 수 있도록 구조화시킨 언어를 SQL(Structured Query Language)이라 합니다.
그리고 이러한 데이터베이스를 이해하기 위해서는 데이터베이스의 3단계 스키마를 이해하고 있는 것이 매우 중요합니다. 일반적으로, 모든 데이터베이스는 외부 단계, 개념 단계, 물리 단계의 3단계로 나누어지며 각각은 다음과 같이 정의될 수 있습니다.
물리 단계(Physical Level)
물리 계층에서는 물리적인 표현(Physical Representation)에 대해서 다루는 것으로 실세계의 이해 결과를 어떻게 컴퓨터에 넣을 것인가와 관련된 내용으로 아래 3가지를 고려해야 합니다.
- 어떻게 구현을 할 것인가?
- 컴퓨터 시스템은 무엇인가?
- 서로 다른 기계들을 어떻게 처리하게 할 것인가?
이것들의 자세한 내용에 대해서는 이번에는 다루지 않도록 하고, 만약 자세히 알고 싶으신 분은 Addison Wesly Longman. inc에서 출간된 Michael J. Folk 등 3명이 쓴 “File Structures An Object-Oriented Approach with C++”을 참고해주시길 바랍니다.
개념 단계(Conceptual Level)
개념 단계는 실세계를 이해하는 과정이자 물리적인 표현과 논리적인(혹은 개념적인) 표현 사이에 독립성을 보장하는 과정입니다. 여기서 독립성을 보장하는 방법으로 위의 PART 1에서 사용하는 데이터 모델링 방법이 이용됩니다.
외부 단계(External Level)
이제 실제 응용 프로그램에서 사용하는 단계가 됩니다.
이 3개의 단계로 구성되는 것을 지칭하길 Three Level Architecture라고 합니다.