스키마(Schema)
- 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
- 스키마, 데이터베이스, 테이블 = 평면도, 집, 방
- 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
- 스키마는 사용자의 관점에 따라 외부, 개념, 내부로 나눠진다.
- 특징
1. 스키마는 데이터 사전에 저장되며, 메타데이터라고도 불린다.
2. 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
3. 스키마는 시간에 따라 불변인 특성을 갖는다.
4. 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
인스턴스(Instance)
- 스키마에 따라 데이터베이스에 실제로 저장된 값 / 개체 인스턴스 = 레코드
3단계 데이터베이스 구조
- 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것
- 미국 표준화 기관인 ANSI / SPARC 에서 제안
- 각 단계별로 다른 추상화(abstraction) 제공 (내부단계에서 외부단계로 갈수록 추상화 레벨이 높아짐)
1. 외부 단계(External level) - 개별 사용자 관점
- 데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있음
- 외부 스키마 = 서브 스키마
1. 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것
2. 각 사용자가 생각하는 데이터베이스의 모습, 논리적 구조로 사용자마다 다른 모습
3. 하나의 데이터베이스 시스템에는 여러개의여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수도 있다.
4. 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
5. 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 접근할 수 있다.
6. 응용 프로그래머는 C, JAVA등의 언어를 사용하여 DB에 접근한다.
2. 개념 단계(Conceptual level) - 조직 전체의 관점 / 논리적 구조와 유사 / 조금 추상화
- 데이터베이스 하나에 개념 스키마가 하나만 존재함
- 개념 스키마 = 스키마
1. 개념 단계에서 데이터베이스 전체의 논리적 구조를 정의한 것
2. 조직 전체의 관점에서 생각하는 데이터베이스의 모습
3. 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 존재하는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함(데이터를 효과적으로 관리하기 위한 다양한 기능 개념)
4. 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
5. 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미한다.
6. 데이터베이스 관리자(DBA)에 의해서 구성된다.
3. 내부 단계(Internal level) - 물리적인 저장 장치의 관점 / 실질적인 내용
- 데이터베이스 하나에 내부 스키마가 하나만 존재함
- 내부 스키마 = 저장 스키마
1. 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것
2. 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적인 저장 구조를 정의
3. 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
3단계 데이터베이스의 구조의 사상
- 데이터의 독립성 실현
1. 파일 시스템의 종속성 문제 해결
2. 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
- 논리적 데이터 독립성(응용 인터페이스 독립성 유지)
(1) 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않음
(2) 개념 스키마가 변경되면 관련된 외부 / 개념 사상만 정확하게 수정해 주면 됨
- 물리적 데이터 독립성(저장 인터페이스 독립성 유지)
(1) 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음
(2) 내부 스키마가 변경되면 관련된 개념 / 내부 사상만 정확하게 수정해주면 됨
- 스키마 사이의 대응관계 / 관계와 관계를 정의하는 것
- 미리 정의된 사상 정보를 이용하여 사용자가 원하는 데이터에 접근(고객분석팀에서 고객 정보 데이터 접근)
- 데이터베이스를 3단계 구조로 나누고 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 목적
1. 외부 / 개념 사상 - 응용 인터페이스
- 외부 스키마와 개념 스키마의 대응 관계
2. 개념 / 내부 사상 - 저장 인터페이스
- 개념 스키마와 내부 스키마의 대응 관계
'DB' 카테고리의 다른 글
VIEW 와 SELECT 실행 순서 (0) | 2023.09.21 |
---|---|
SQL (0) | 2023.09.21 |
키(Key)의 종류 (0) | 2023.09.15 |
RDBMS(관리형 데이터베이스 관리시스템), 릴레이션 스키마 / 인스턴스 (0) | 2023.09.15 |
DBMS개요 (0) | 2022.08.02 |