데이터 모델 - 데이터베이스 구조의 표현 방법
이 때 DB 구조의 구성요소는,
1. 데이터
2. 관계
3. 제약조건
입니다.
데이터의 동적 측면이나 행동이 데이터 모델에 포함되는 경우가 있습니다.
ex) 평균 학점을 구할 때, 실제 값을 저장하는 것이 아니라 연산식을 프로그래밍하여 저장
데이터 모델의 종류는 다음과 같습니다.
1. 개념 세계
- 개념(고수준) 데이터 모델
- E-R 데이터 모델을 사용합니다.
2. 논리 세계
- 논리적(구현, 표현) 데이터 모델
- DBMS를 사용합니다.
3. 물리적(기계) 세계
- 물리적(저수준) 데이터 모델
- 파일구조를 사용합니다.
논리적 데이터 모델(DBMS)의 진화 과정입니다.
1세대 : 계층형 데이터 모델 (트리, Parent - Child 관계)
- 식별자는 주소(Pointer) 사용
2세대 : 네트워크형 데이터 모델 (방향성 그래프, Owner - Member 관계)
- 식별자는 주소(Pointer) 사용
3세대 : 관계형 데이터 모델
- 식별자는 키 사용
4세대 : 객체 관계형 데이터 모델
- 식별자는 문자/숫자에 대해서는 키, 멀티미디어에 대해서는 주소(Pointer) 사용
데이터베이스 스키마는 데이터베이스를 설명하는 메타데이터입니다.
스키마를 시각적으로 표현한 것이 스키마 다이어그램 입니다. [그림 1]
특정 시점에서의 데이터베이스의 데이터를 데이터베이스 상태라고 표현합니다.
일반적으로 스키마를 내포(Intension), 데이터베이스 상태를 외포(extenstion)라고 합니다.
3단계 스키마 아키텍쳐는 DB의 특징을 구현하기 위해 개발된 아키텍쳐입니다.
외부 스키마 / 개념 스키마 / 내부 스키마로 나누어져 있으며, 각 단계별 설명은 다음과 같습니다.
1. 외부 스키마
- 데이터의 자세한 내용은 숨기고, 사용자가 원하는 요소를 View를 이용해서 보여줌.
2. 개념 스키마
- 무엇을(what) 저장할 것인지 기술해 놓은 스키마
3. 내부 스키마
- 데이터를 어떻게(how) 저장할 것인지 기술해 놓은 스키마
데이터 독립성은, 고수준 스키마 변경 없이 저수준 스키마를 변경하는 것을 말합니다.
(저수준 변경 없이 고수준을 변경하는 것은 데이터 독립성이 아닙니다. 당연한 것입니다.)
개념 스키마 변경 없이 내부 스키마를 변경하는 것을 물리적 데이터 독립성,
외부 스키마 변경 없이 개념 스키마를 변경하는 것을 논리적 데이터 독립성이라고 합니다.
외부 스키마에서의 요구를 개념 스키마의 요구로 변환하고, 이것을 내부 스키마에 대한 요구로 변환하여 데이터베이스에 접근하게 되는데,
이 과정을 사상(mapping)이라고 합니다.
DBMS에서 사용되는 언어입니다.
1. DDL (Data Definition Language)
- 데이터 정의어
- 개념 스키마와 내부 스키마를 정의할 때 사용됩니다.
2. DML (Data Manipulation Language)
- 데이터 조작어
- 데이터를 검색, 삽입, 삭제 등의 작업을 할 때 사용됩니다.
- 범용 프로그래밍 언어에서 사용 가능합니다. (ex : PHP 코드 안에서 DML 사용)
- 이 때 범용 프로그래밍 언어(예시에선 PHP)를 호스트 언어, 그 안에 사용된 DML을 데이터 부속어라고 합니다.
대화식으로 사용하는 DML을 query라고 합니다.
[그림 3]은 DBMS 구성요소를 시각적으로 나타낸 것입니다.
이 외에 DB시스템 운영을 도와주는 도구를 데이터베이스 유틸리티라고 합니다. (적재, 백업, 파일 재조직, 성능 모니터링)
많은 수의 PC나 서버 등 장치들이 네트워크에 연결되는데, 이 기기들을 제어하기 위해 클라이언트/서버 아키텍쳐가 개발되었습니다.
여기서, 중간에 하나의 단계를 집어넣은 것을 3-층 아키텍쳐라고 합니다.
클라이언트 <--> 응용 프로그램 <--> 서버
추가적으로 단계를 더 집어넣으면, n-층 아키텍쳐라고 표현합니다.
'Database' 카테고리의 다른 글
[Database] 데이터베이스 개요 (1) | 2023.04.17 |
---|
댓글