1. Schema

- 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것을 의미한다.

- Attribute, Entity, Relation에 대한 정의와 이것들이 유지해야 할 제약조건을 기술한 것이다.

- 오라클 데이터베이스에서는 스키마와 사용자를 구별하지 않고 사용하기도 한다. 사용자는 데이터를 사용 및 관리하기 위해 오라클 데이터베이스에 접속하는 개체를 뜻하고, 스키마는 오라클 데이터베이스에 접속한 사용자와 연결된 객체를 의미한다.

 

1.1 Schema 특징

- 데이터 사전에 저장되며, 다른 이름으로 메타데이터라고도 한다.

- 현실 세계의 특정한 한 부분의 표현으로서, 특정 데이터 모델을 이용해서 만들어진다.

- 시간에 따라 불변인 특성을 갖는다.

- 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.

 

1.2 Schema 3계층

3-Level Schema

- 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 ASNI 표준이다.

- 데이터베이스의 독립성을 확보하기 위한 방법이다.

- 3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 View라고도 한다.

- 데이터베이스 관리 시스템은 외부 스키마에 따라 명시된 사용자의 요구를 개념 스키마에 적합한 형태로 변경하고 이를 다시 내부 스키마에 적합한 형태로 변환한다.

- 사상(Mapping)

종류 설명
논리적 사상(외부적/개념적 사상) 외부적 뷰와 개념적 뷰의 상호 관련성을 정의한다.
물리적 사상(개념적/내부적 사상) 개념적 뷰와 저장된 데이터베이스의 상호 관련성을 정의한다.

- 데이터 독립성

종류 설명
논리적 데이터 독립성 외부 스키마가 변경되어도 개념 스키마와 내부 스키마에 영향을 주지 않는 것을 의미한다.
물리적 데이터 독립성 내부 스키마가 변경되어도 개념 스키마와 외부 스키마에 영향을 주지 않는 것을 의미한다.

- 종류

종류 설명
외부 스키마(External Schema) - 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.
- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공유할 수도 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
- 일반 사용자는 SQL을 이용하여 DB를 쉽게 사용할 수 있다.
- 응용 프로그래머는 JAVA, C 등의 언어를 사용하여 DB에 접근한다.
개념 스키마(Conceptual Schema) - 데이터베이스의 전체적인 논리적 구조로써, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 Schema라고 하면 개념 스키마를 의미한다.
- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
- DBA에 의해서 구성된다.
내부 스키마(Internal Schema) - 물리적 저장 장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장 장치와 밀접한 계층이다.
- 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 

1.3 3층 스키마의 독립성 확보에 따른 장점

- 데이터 복잡도 감소

- 데이터 중복 제거

- 사용자 요구사항 변경에 따른 대응력 향상

- 관리 및 유지보수 비용 절감

 

참고

- https://itkjspo56.tistory.com/94

- https://coding-factory.tistory.com/216

- https://ppomelo.tistory.com/49

- 『오라클로 배우는 데이터베이스 입문』

- 『SQL 개발자 이론서+기출문제』

'Database' 카테고리의 다른 글

DDL(Data Definition Language)  (0) 2021.10.25
Transaction & Session  (0) 2021.10.22
DML(Data Manipulation Language)  (0) 2021.10.21
Oracle 테이블 및 데이터 복사  (0) 2021.10.21
Subquery  (0) 2021.10.20