저번 게시물에 이어 데이터베이스 시스템 구조 2번째 포스팅을 시작하겠다.
External Level의 external schema
external level 에서는 external view가 여러개 존재할 수 있다.
각 external view를 사용하는 응용프로그램은 c/c++, Java, Python과 같은 host language를 사용하여 DB SQL을 호출하는 data sublanguage(DSL)를 사용한다.
이러한 DSL은 host language로 작성된 프로그램에 embedded된다고 한다.
DSL은 DDL(Data Definition language)와 DML(Data Mnipulation language)으로 구성된다.
DDL은 DBMS에 알려줄 객체를 가리키는 변수를 기술한 것이다.
DML은 응용프로그램에서 DBMS를 호출하여 SQL을 실행하는 코드에 해당되는 부분이다.external view는 전체 DB의 일부에 대한 view를 제공하며 external view는 external schema로 표현된다.external schema는 external record type 들로 구성되며 DSL의 DDL로 표현된다.
Conceptual Level의 conceptual view
conceptual view는 모든 external views를 통합한 전체 DB의 논리적 구조를 표현한 것이다.
conceptual view는 저장 레코드 타입을 논리적 레코드 테이블로 추상화한 conceptual schema를 제공한다. conceptual view는 external view의 external record type과 반드시 1:1 대응되는 것은 아니다.그러나, internal view의 stored record type에 대해 1:1대응되나, internal view와 차이가 있는 것은 conceptual record type에서 저장 구조나 접근 기법을 표현하지 않는다는 점이다. (conceptual view와 internal view는 1:1대응된다. 이 둘의 차이점은 conceptual view에서는 저장구조나 접근 기법을 표현x)따라서, conceptual schema에서 저장 레코드 표현, 저장 필드 표현, 저장 레코드 순서, 색인 등을 참조하지 않는다.
Internal Level의 internal schema
internal view는 전체 데이터베이스의 저장 구조를 표현한 것으로 저장레코드 타입, 저장 필드의 표현, 저장 레코드의 물리적 순서, 색인 등을 기술한 것이다.
(저장 레코드 타입은 디스크 또는 메모리의 페이지이나 블록을 다루는 운영체제의 파일 시스템과는 관련이 없다. )
internal schema는 저장 레코드 타입, 색인, 저장 필드의 표현, 저장 레코드 순서를 기술한다.
그렇다면 위 3단계 스키마 간의 Mapping은 무엇일까?
데이터 독립성은 3단계 구조의 schema간의 매핑으로 달성된다.
external schema와 conceptual schema 간의 매핑은 논리적 필드의 상이한 타입 사용, 논리적 필드의 이름 차이, 논리적 레코드 타입의 이름 차이, 여러개의 개념적 필드에 대한 min, max, sum등의 함수 값을 나타내는 external 레코드 필드의 사용 등을 가능케한다. 또한, 상이한 external view는 여러개 가질 수 있다. conceptual schema의 변경으로 응용 프로그램이 변경되지 않는 것을 논리적 독립성이라 한다.
데이터베이스 시스템의 3단계 구조에서 DBMS의 역할은?
DBMS는 데이터베이스에 대한 사용자 또는 응용 프로그램의 요청을 처리하는 소프트웨어로서 3단계 구조의 스키마를 표현하고 매핑 처리한다. 사용자의 DB 접근 요청에 대한 external schema를 찾고, 대응되는 external schema/conceptual schema간의 매핑, conceptual schema/internal schema간의 매핑으로 물리적 데이터베이스를 접근하게 된다.그리고 external record에 대한 요청을 처리하기 위하여 해당되는 저장 레코드를 접근하여 필요한 데이터를 가져와 요청된 논리적 레코드를 만드는 data materialization을 처리한다.
DBMS의 기능은 다음과 같다.- 소스 스키마의 기술과 매핑- 응용 프로그램의 DML 처리- 질의 처리 최적화- 데이터 dictionary로서 메타 데이터의 지원을 제공
DBMS가 질의처리를 할 때 optimization을 수행하는데, 메타 데이터를 사용하여 요청된 질의 처리의 최적 방법을 결정한다. 사용자 또는 응용 프로그램의 request는 internal schema의 메타데이터를 사용하여 optimized request로 변환된다.
참고: 데이터베이스 SQL프로그래밍(MySQL실습), 홍봉희 편저, 부산대학교 출판문화원, 2022
'대학원 공부 > 데이터베이스' 카테고리의 다른 글
[DB] Relational 데이터베이스 (0) | 2022.11.03 |
---|---|
[DB] 분산 데이터베이스 처리 (0) | 2022.11.02 |
[DB] 데이터베이스 시스템 구조(Database System Architecture) (0) | 2022.11.01 |
[DB] 데이터 독립성(Data Independence) (0) | 2022.10.31 |
[DB] 데이터베이스 시스템 (0) | 2022.10.31 |