DNF LOVE
[데이터베이스론 기초 - 4] 데이터베이스의 스키마란 무엇일까? 3단계 스키마 구성과 데이터 독립성 본문
[데이터베이스론 기초 - 4] 데이터베이스의 스키마란 무엇일까? 3단계 스키마 구성과 데이터 독립성
botho 2019. 8. 4. 15:33스키마란 무엇일까? 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. DB의 구조(개체, 관계)와 제약조건을 명세해야 한다. 이를 명시하는 이유는 데이터베이스의 일관성 있게 만들기 위한 필요 조건이다.
스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉘어지며, 이렇게 나누는 이유는 데이터베이스의 독립성을 위해서이다.
반복적으로 이야기 하지만 데이터 독립성은 데이터베이스의 물리적, 논리적 구조를 변경되더라도 응용 프로그램에 영향을 주지 말아야 하며 DBMS의 궁극적 목표이다. 데이터모델링 역시 논리적 데이터 독립성과 물리적 데이터 독립성이 있다.
"스키마의 3단계"
- 외부 스키마(External Schema) : 개개 사용자 관점에서 정의한 데이터베이스 스키마이다. 전체 데이터베이스의 한 논리적인 부분이며 Sub Schema라고도 한다. 이는 개개 사용자나 응용프로그래머가 접근하는 데이터베이스이다.
- 개념 스키마(Conceptual Schema) : 범 기관적인 관점에서 정의한 데이터베이스 스키마이다. 모든 응용에 대한 전체적인 통합된 데이터 구조이다.
- 내부 스키마(Internal Schema) : 물리적 저장 장치 관점에서 정의한 데이터베이스 스키마이다. 개념 스키마에 대한 저장 구조를 정의한다.
"데이터 독립성 2종류"
- 논리적 데이터 독립성 : 외부 스키마와 개념 스키마 단계의 사상으로, 응용 프로그램에 영향을 주지 않고 논리적 데이터 구조의 변경이 가능하다
- 물리적 데이터 독립성 : 개념 스키마와 내부 스키마의 단계의 사상으로, 응용 프로그램에 영향을 주지 않고 물리적 데이터 구조의 변경이 가능하다.
데이터베이스의 독립성을 유지하기 위해서 사상(Mapping)이라는 데이터 독립성 구현 기법을 사용한다. 이를 이용하여 논리적, 물리적 구조가 변하더라도 응용 프로그램의 데이터 구조는 변경되서는 안된다.
사상에 대해 좀 더 깊게 설명을 해보도록 하자. 아래 사진을 보자.
1, 2, .... n개의 응용 프로그램이 존재한다. 응용프로그램 1은 A, B, C, D을 사용하며 응용프로그램2는 B, E, F를 사용한다.
이들은 B라는 중복된 데이터가 존재하는데 여기서 데이터 구조의 논리적 구조에는 A, B, C, D, E, ... 등을 가지고 있다.
논리적 구조에 있는 데이터 A, B가 변형이 되어 각각 A', B'가 되었을 때, 응용 프로그램1에서 B라는 데이터를 사용할 시, 응용 프로그램에서 직접 B라는 데이터를 B'로 변경하여 데이터를 쓰지 않고,
논리적 구조에 존재하는 B'를 Mapping하여 사용함으로써 논리적 구조가 변하더라도 응용 프로그램에는 영향을 끼치지 않게 되었다.
이를 통해 결론적으로 물리적, 논리적 구조의 데이터 가 변경되어도 응용 프로그램의 변형 없이 변경된 데이터를 사용할 수 있게 되었다.
이밖에도 스키마에 대한 여러 단어들이 존재한다.
- 스키마 다이어그램 : 스키마를 그래픽 형태로 표현한 것
- 시스템 카탈로그(데이터 사전) : 데이터를 위한 DBA가 사용하는 도구로서 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 관한 정보를 유지, 관리하는 시스템, 따라서 스키마가 컴파일 된 것도 이 카탈로그에 저장한다.
- 시스템 데이터베이스 : 사용자가 이용한 데이터베이스와 구별되는 시스템이 사용하는 것, 사용자와 시스템 둘다 접근 사용이 가능하다.
- 데이터 디렉터리 : 시스템 데이터베이스에 수록된 데이터를 실제로 접근할 때 필요한 데이터를 저장한다, 시스템 데이터베이스와 다르게 시스템만 접근 가능하다
- 메타 데이터 : 데이터에 관한 데이터, 시스템 데이터베이스에 저장되어 있는 데이터
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스론 기초 - 6] 데이터 모델링 3개의 종류, E-R다이어그램 & Entity Type, Relationship Type의 간단 설명 (0) | 2019.08.04 |
---|---|
[데이터베이스론 기초 - 5] 데이터 세계를 나타내는 데이터 모델링 (0) | 2019.08.04 |
[데이터베이스론 기초 - 3] 데이터베이스의 악의 근원, 데이터 종속성과 중복성 (0) | 2019.07.24 |
[데이터베이스론 - 기초2] 데이터베이스의 다양한 데이터 처리 시스템(데이터베이스관리시스템, DBMS) (0) | 2019.07.24 |
[데이터베이스론 - 기초1] 데이터베이스란? 데이터베이스 정의 (0) | 2019.07.24 |