앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터 모델
1. 스키마(Schema), 인스턴스(Instance), 상태(State)
- 스키마(Schema)란 데이터베이스의 구조, 타입, 제약 조건을 명시해 놓은 메타데이터의 집합이고, Data Base의 description입니다.
- 일반적으로 스키마는 설계 과정에 명시하여 자주 변경되지 않습니다.
- 아래 그림은 이러한 스키마를 도식화한 스키마 다이어그램입니다.
- 위의 그림처럼 스키마는 Entity, Attribute, RelationShip, Type 등을 전반적으로 정의합니다.
- 이러한 스키마에 따라 데이터 베이스를 규격화 하는데, 이때 실제 데이터는 매우 자주 바뀔 수 있습니다.
- 학생의 이름이 바뀐다거나, 성적이 바뀐다거나 등등의 데이터가 바뀝니다.
- 이때 어떤 특정 시점에 데이터베이스에 있는 콘텐츠를 데이터베이스 상태(State)라고 합니다.
- 최초의 데이터베이스의 상태는 아무것도 없는 빈공간입니다. 이때 데이터가 갱신될수록 다른 데이터베이스 상태를 얻습니다.
- 이때 유효한 상태, 즉 Valid State는 데이터베이스의 구조와 제약 조건을 모두 만족하는 상태를 의미합니다.
- 결론적으로 스키마는 자주 변하지 않는 반면, 상태는 업데이트가 발생할 때마다 변경됩니다.
- 또한 이 상태를 데이터베이스 내의 인스턴스(Instance)의 현재 집합이라고도 합니다.
2. 3단계 스키마 구조(Three-Schema Architecture)
- 이전에 설명한 데이터베이스 방식의 중요한 4가지 특징 중 3가지가 Self-Describing, Insulation, Multi View입니다.
- 이러한 특성을 만족시키면서, 물리적 데이터베이스로부터 사용자 응용들을 분리시킨 3단계 스키마 구조에 대해 설명하겠습니다.
- 3단계 스키마 구조에는 Internal(=physical) schema, Conceptual(=logical) schema, External(=view level) schema가 있습니다.
- 내부 스키마는 내부 데이터베이스의 물리적 저장 구조를 기술합니다. 이는 데이터 저장 구조의 세부 사항과 데이터베이스에 대한 접근 경로들을 기술합니다.
- 개념 스키마는 엔티티, 타입, 연산, 제약 조건을 나타내는데 중점을 둡니다. 일반적으로 표현 데이터 모델을 사용하여 구현되지만, 종종 고수준인 Conceptual 데이터 모델을 기반으로 하는 경우도 있습니다.
- 외부 스키마는 특정 사용자 그룹이 관심을 갖는 데이터베이스의 부분만 기술하고, 나머지 부분은 은폐합니다.
- 세 개의 스키마는 단지 데이터에 대한 기술이고, 실제 데이터는 물리적 단계에만 위치합니다.
- 외부 스키마에서의 요구는 개념 스키마로 변환하고, 다시 내부 스키마로 변환하여 데이터베이스에 접근해야 합니다.
- 만약 요구가 검색이라면 이를 다시 사용자 외부 뷰에 맞게 재구성합니다.
- 아래는 이러한 데이터베이스의 스키마 아키텍쳐입니다.
- 단계들 간에 요구와 접근 결과인 데이터를 변환하는 과정을 Mapping이라고 합니다.
3. 데이터 독립성(Data Independence)
- 3단계 스키마 구조는 데이터 독립성(Data Independence)의 개념을 위해 설명됩니다.
- 이는 고수준의 스키마를 변경할 필요 없이, 특정 단계의 스키마를 변경할 수 있는 능력을 말합니다.
- 이 데이터 독립성에는 Logical Data Independence와 Physical Data Independence가 있습니다.
- Logical Data Independence는 conceptual(= logical) 스키마에서 변경이 발생했을 때, 외부 스키마나 외부 응용 프로그램을 변경할 필요 없이 개념 스키마만 변경할 수 있는 능력을 의미합니다.
- 데이터베이스를 확장, 축소, 제약 조건 갱신 등의 이유로 개념 스키마가 변경되었을 때, 남아있는 데이터만 참조하는 외부 스키마가 영향을 받아서는 안됩니다.
- 따라서 논리적 데이터 독립성을 제공하는 DBMS는 뷰 정의와 Mapping만 변경합니다.
- Physical Data Independence는 개념 스키마를 변경하지 않고, 내부 스키마를 변경하는 능력입니다. 따라서 외부 스키마도 변경할 필요가 없습니다.
- 내부 스키마에 대한 변경은 검색, 갱신 성능을 향상시키기 위해 인덱스나 접근 구조를 추가하는 것처럼, 파일들이 재구성될 때 필요합니다.
- 그럼에도 불구하고 데이터베이스에 이전과 같은 데이터가 남아있다면, 개념 스키마는 변경할 필요가 없습니다.
- 결론적으로 낮은 수준의 스키마가 변경되었을 때, 오로지 해당 스키마와 상위 스키마 사이의 Mapping만 변경함으로써, 데이터 독립성을 지키고, 상위 스키마는 변경하지 않는 채로 놔두는 것이 바로 Data Independence입니다.
4. 데이터베이스 언어
- 이 부분은 크게 중요하지 않고, 다음 글에 따로 빼기엔 너무 작은 부분이라 같이 쓰는 파트입니다.
- 많은 데이터베이스에서는 DDL(Data Definition Language)를 사용해서 개념 스키마와 내부 스키마를 정의합니다.
- 또한 스키마가 컴파일이 되고, 데이터가 채워지면 사용자에게 데이터베이스를 조작할 수 있는 수단이 필요합니다.
- 이러한 수단으로써 연산들의 집합 또는 데이터 조작어인 DML(Data Manipulation Language)라고 부르는 언어를 제공합니다.
- 조작어에는 고수준 데이터 조작어와 저수준 데이터 조작어가 존재합니다.
- 고수준 데이터 조작어는 declarative하고, 이 뜻은 어떻게 데이터를 검색할 것인가가 아닌 어떤 데이터를 추출할 것인가를 명시한다는 뜻입니다.
- 또한 고수준 데이터 조작어는 한 번의 명령으로 데이터 세트를 가져오기 때문에 set-at-a-time 혹은 set-oriented라고 불립니다.
- 마지막으로 고수준 데이터 조작어는 nonprocedural합니다.
- 저수준 데이터 조작어는 고수준 데이터 조작어와 반대입니다.
- 한 번에 하나의 데이터를 가져오며, 순차적입니다.
참고
경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업
DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년
다음 글에서는 ER 모델(Entity Type, Entity Sets, Attributes and Keys)에 대해 알아보겠습니다.
감사합니다.
지적 환영합니다.
'Computer Science > 데이터 베이스' 카테고리의 다른 글
[데이터베이스] ER 모델(관계, Relationship) (0) | 2023.10.21 |
---|---|
[데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys) (0) | 2023.10.21 |
[데이터베이스] 데이터 모델 (0) | 2023.10.20 |
[데이터베이스] 데이터베이스의 장점 (0) | 2023.10.10 |
[데이터베이스] 데이터베이스의 특징 (0) | 2023.10.10 |