스키마 ?
: DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합, 메타데이터라고도 한다.
→ 메타데이터 : 데이터에 대한 데이터. 어떤 목적을 가지고 만들어진 데이터로 정의된다.
- 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 DB 스키마를 생성하고, DB 사용자가 자료를 저장, 조회, 삭제, 변경 할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조해서 명령을 수행한다. → 즉, DBMS는 스키마를 참조하여 사용자의 명령을 수행하는 것이다.
- 개체의 특성을 나타내는 속성과 속성들의 집합으로 이루어진 개체(Entity), 개체 사이에 존재하는 관계에 대한 정의와 이들이 유지해야할 제약조건을 기술한 것.
- 개체 (Entity) : 데이터로 표현하려고 하는 객체(여러 속성들로 구성) - ERD의 네모
- 속성 (Attribute) : 개체가 갖는 속성 - ERD 원
- 관계 (Relation) : 개체와 개체 사이의 연관성 - ERD 마름모
스키마의 특징
- 스키마는 데이터 사전(Data Dictionary) 에 저장된다.
- 데이터 사전 : 데이터 항목들에 대한 정보를 지정한 중앙 저장소 (테이블 및 뷰들의 집합)
- 스키마는 특정 데이터 모델을 이용해서 만들어진다. (현실 세계의 특정한 부분의 표현)
- 스키마는 시간에 따라 불변인 특성을 가진다.
- 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
스키마 3계층
: 사용자의 관점에 따라 외부, 개념, 내부 3가지 스키마로 나눠진다.
- 외부 스키마 → 사용자 뷰
- 개인의 입장에서 필요로 하는 데이터 베이스의 논리적 구조를 정의한 것
- 전체 DB의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
- 동일한 데이터에 대해 서로 다른 관점을 정의할 수 있도록 허용
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러개의 응용프로그램이나 사용자가 공용할 수도 있다.
- 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있다.
- 응용프로그래머는 C, JAVA 등의 언어를 사용하여 DB에 접근한다.
- 개념 스키마 → 전체적인 뷰
- DB의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않는다.
- 모든 응용 프로그램이나 사용자들이 필요로하는 데이터를 종합한 조직 전체의 DB로, 각 DB에는 한 개의 개념 스키마만 존재한다.
- 개체간의 관계 및 데이터베이스의 접근권한, 무결성 제약 조건에 대한 명세를 정의한다.
- 무결성 제약 조건 : DB의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정 등을 제약하기 위한 조건
- DB 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념스키마를 의미한다.
- 데이터베이스 관리자(DBA)에 의해 구성된다.
- 내부 스키마 → 저장 스키마
- 물리적 저장장치의 입장에서 본 DB구조, 물리적인 저장장치와 밀접한 계층이다.
- 실제로 DB에 저장될 레코드의 물리적인 구조를 정의하고, 저장데이터 항목의 표현방법, 내부 레코드의 물리적 순서등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
- 개념 스키마를 디스크 기억 장치에 물리적으로 구현하기 위한 방법을 기술 한 것
데이터 독립성
: DB내의 데이터, 데이터를 사용하는 사용자 및 응용 프로그램, DB의 저장 구조가 서로 영향을 받지 않는 성질을 의미한다.
- 논리적 독립성
- 개념 스키마가 변경되어도, 외부 스키마에 영향을 주지 않는다.
- 물리적 독립성
- 내부 스키마가 변경되어도, 개념 스키마/ 외부스키마에 영향을 주지 않는다.
→ 저장구조 등이 물리적으로 변경돼도 다른 스키마와 독립적인 것을 의미한다.
출처