데이터베이스 시스템이 기초로 하고 있는 가장 기본적인 요소는 데이터베이스인데 이 데이터베이스의 논리적 정의, 즉 데이터 구조와 제약조건에 대한 명서(specification)를 기술한 것을 스키마(schema)라 한다.

스키마에는 데이터 구조를 표현하는 데이터 객체, 즉 개체, 속성, 관계에 대한 정의와 이들이 유지해야 될 제약 조건이 포함된다.

그런데 데이터의 공용을 전제로 하는 데이터베이스 환경에서 개개인 사용자가 사용하는 데이터는 보통 그 기관 전체 데이터베이스의 일부분이고, 이것은 곧 실제 저장 장치에 저장되어 있는 물리적 데이터베이스의 일부분이 되는 것이다.

어떤 입장에서 데이터베이스를 보느냐에 따라 이 데이터베이스는 모두 상이할 수 밖에 없다.

그렇기 때문에 데이터베이스 관리 측면에서는 데이터를 이용하는 각 개인의 뷰, 이러한 각 개인의 모든 뷰가 종합된 기간 전체의 뷰, 그리고 시스템 즉 물리적 저장 장치의 입장에서 보는 저장 장치의 뷰 등 세 단계로 구별하여 데이터베이스를 기술하고 이들 간의 관계를 정의하고 있다.

이 세 단계를 외부단계,개념단계,내부단계라 한다.

하나의 데이터베이스를 세 단계로 나누어 기술하는 것을 3단계 데이터베이스 구조라 하고 각 단계에서의 스키마를 외부 스키마,개념 스키마, 내부 스키마라 한다.

외부 단계

-개개 사용자 입장의 데이터베이스 구조
-여러 형태의 외부 스키마 존재
-데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것
-전체 데이터베이스의 한 논리적 부분이 되는 것이기 때문에 서브 스키마라고도 불림

개념 스키마(=그냥 스키마)

-하나의 개념 스키마만 존재
-범 기관적 입장에서 데이터베이스를 정의한 것
-'개념적(conceptual)이란 추성적 ㄴㄴ, (전체적,종합적)ㅇㅇ
-각 사용자나 응용 프로그램은 이 개념 스키마의 일부 사용하는 것임
-이 개념 스키마로부터 모든 외부 스키마가 생성되고 지원되는 것
-이 개념 스키마를 단순히 스키마라고도 함

내부 스키마

-내부 단계에는 하나의 내부 스키마만 존재
-저장장치의 입장에서 전체 데이터베이스가 저장되는 방법을 명세한 것
-개념 스키마에 대한 저장구조를 정의한 것
-실제로 저장될 내부 레코드의 형식, 인덱스의 유무, 저장 데이터 항목의 표현 방법,내부 레코드의 물리적 순서 등에 관한 명세를 표현함
-내부 스키마는 실제로 물리적 단계보다 한 단계 위에 있음
💜💜3단계 데이터베이스 예시를 가져왔다!! 설명은 필기로 대신함


한 응용 프로그램이 DBMS를 통해 데이터베이스를 접근하려 할 때 DBMS는 이 3단계 스키마에 있는 모든 개체와 속성 간의 대응관계를 알아ㅑ 한다.

예를 들어, 외부 스키마의 Sn은 개념 스키마의 Snumber에 대응되고, 개념 스키마의 Snumber은 내부 스키마의 Sno에 대응된다.

이러한 대응 관계에 대한 정의를 사상(mapping)이라고 하는데, DBMS는 바로 이 사상 정보를 정확하게 유지하고 관리하고 있는 것임

🔼각 단계의 사상

외부/개념 사상

어느 특정 외부 스키마와 개념 스키마 간의 대응관계를 정의하는데, 이를 응용 인터페이스라 한다.

만약 개념 스키마에 개체의 삽입이나 속성의 첨가와 같은 변화가 생긴다고 하더라도 그 변화에 따라 이 사상(응용 인터페이스)만 올바르게 변경해준다면, 외부 스키마는 아무런 영향 안 받음.

응용 프로그램을 변경시키지 않고도 개념 스키마를 변경시킬 수 있으므로, 결과적으로 논리적 데이터 독립성을 제공해줌

개념/내부 사상

개념 스키마와 내부 스키마 간의 대응관계를 정의하는 것인데, 이걸 저장 인터페이스라고 한다.

이것은 개체의 각 속성이 내부 필드와 어떻게 대응되는가를 정의하고 있다.
만약, 어떤 불가피한 경우에 내부 스키마를 변경해야 한다면, 이 변화에 따라 개념/내부 사상(저장 인터페이스)만 정확히 변경시켜 주면 개념 스키마에는 아무런 영향X

내부 스키마를 변경시키더라도, 이 사상을 이용하면 개념 스키마에 아무런 영향을 주지 않게 되고 응용 프로그램에도 아무런 영향을 주지 않게 되므로 물리적 데이터 독립성을 제공해줌

💢여기서 잠깐!!! DBMS가 추구하는 궁극적인 목적은 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램은 영향을 받지 않는 데이터 독립성 제공이였음(논리적 데이터 독립성, 물리적 데이터 독립성)


데이터 사전(data dictionary)

데이터 사전은 시스템 카탈로그라고도 하는데, 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 관한 정보를 유지, 관리하는 시스템이다.

여러 스키마와 이들 속에 포함된 사상들에 관한 정보도 컴파일 되어 저장, 관리되고 있다.

이러한 정보는 데이터 관리 뿐만 아니라 데이터베이스를 이용하는 데도 사용됨

데이터 사전은 그 자체가 하나의 데이터베이스로 간주되기도 하지만,
사용자 데이터베이스와는 구별되는 시스템 데이터베이스이다.

데이터베이스에 수록된 데이터를 실제로 접근하는데 필요한 위치정보를 관리하는 시스템을 데이터 디렉토리(data directory)라고 함.

데이터 사전과 데이터 디렉토리는 모두가 사용자 응용을 위한 데이터가 아니고 주로 시스템을 위한 시스템 데이터베이스라는 점에서 같지만

데이터 사전은 사용자와 시스템이 다같이 공동으로 접근할 수 있는 반면에 데이터 디렉토리는 시스템만 접근할 수 있다.

시스템 데이터베이스에 저장되어 있는 데이터는 시스템에 저장되어 있는 "데이터에 관한 데이터(data about data)"라는 의미로
메타 데이터(meta data)라고 부르기도 한다!!

profile
웹앱 공부 중입니다.

0개의 댓글