1. Schema
- 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것을 의미한다.
- Attribute, Entity, Relation에 대한 정의와 이것들이 유지해야 할 제약조건을 기술한 것이다.
- 오라클 데이터베이스에서는 스키마와 사용자를 구별하지 않고 사용하기도 한다. 사용자는 데이터를 사용 및 관리하기 위해 오라클 데이터베이스에 접속하는 개체를 뜻하고, 스키마는 오라클 데이터베이스에 접속한 사용자와 연결된 객체를 의미한다.
1.1 Schema 특징
- 데이터 사전에 저장되며, 다른 이름으로 메타데이터라고도 한다.
- 현실 세계의 특정한 한 부분의 표현으로서, 특정 데이터 모델을 이용해서 만들어진다.
- 시간에 따라 불변인 특성을 갖는다.
- 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
1.2 Schema 3계층

- 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 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 |