✅ 스키마
스키마를 이용해서 테이블을 분류하고 권한 관리를 할 수 있다.
스키마 개념
스키마란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
- 개체의 특성을 나타내는 속성 (Attribute)
- 속성들의 집합으로 이루어진 개체 (Entity)
- 개체 사이에 존재하는 관계 (Relation)
이들이 유지해야 할 제약 조건들을 기술 한 것
DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조
스키마의 특징
- 데이터 사전(Data Dictionary)에 저장된다.
- 데이터 사전 : 시스템 전체에서 나타나는 데이터 항목들에 대한 정보를 지정한 중앙 저장소, 항목을 참조하는데 사용되는 식별자, 항목에 대한 Entity의 구성요소, 항목이 저장되는 곳, 항목을 참조하는 곳 등을 포함
- 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어지게 된다.
- 시간에 따라 불변인 특성을 갖는다. (시불변성)
- 데이터의 구조적 특성을 의미한다.
- 인스턴스에 의해 규정된다.
✅ 스키마 종류
스키마는 사용자의 관점에 따라 외부, 개념, 내부 스키마로 구분된다.
-
개념 스키마 = 전체적인 뷰
- 조직체 전체를 관찰하는 입장에서 DB를 정의한 것
- 조직의 모든 응용시스템에서 필요로 하는 개체 관계, 제약 조건을 포함하고 있음
- DB를 효율적으로 관리하는데 필요한 접근권한, 보안정책, 무결성 규칙등에 관한 사항들도 추가적으로 포함됨
- 개념스키마를 ‘스키마’라고 칭하기도 함 (DB 전체를 기술하고 있는 것)
특징
- 데이터 베이스의 전체적인 논리적 구조
- 데이터 베이스에 실제로 어떤 데이터가 저장되었으며 데이터의 관계가 어떻게 되어있는지 기술
- 모든 응용프로그램이나 사용자들이 필요로하는 데이터를 종합한 조직 전체의 데이터베이스
- 개체간의 관계와 제약조건 명시
- 데이터베이스 관리자 (DBA)에 의해 구성됨
- 데이터베이스당 하나만 존재
-
내부 스키마 = 저장 스키마
- 물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한 것
- 실제로 저장될 내부레코드 형식, 내부레크드의 물리적 순서, 인덱스의 유/무 등에 관한 내용
- DB는 내부 스키마에 의해서 곧바로 구현되는 것이 아니라 내부 스키마에 기술한 내용에 따라 운영체제의 파일시스템에 의해 물리적 저장장치에 기록됨
- 내부스키마에 의해 DB 실행 속도가 결정적으로 영향을 받으므로, DB 구축 목적에 따라 내부 스키마를 결정해야한다.
특징
- 데이터 베이스의 물리적 저장구조를 의미
- 데이터의 실제 저장방법을 기술
- 물리적인 저장장치와 밀접한 계층
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
-
외부 스키마 = 사용자 뷰
- 실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인지 정의한 스키마
특징
- 전체 데이터 베이스의 한 논리적 부분 → 서브 스키마
- 하나의 데이터베이스에는 여러 개의 외부 스키마가 존재 가능
- 하나의 외부스키마를 여러 개의 응용 프로그램이나 사용자가 공유 가능
- 일반 사용자는 질의어를 이용해서 DB를 손쉽게 사용 가능
✅ 데이터 독립성
- 데이터베이스 내의 데이터, 데이터를 사용하는 사용자 및 응용 프로그램, 데이터베이스의 저장 구조가 서로 영향을 받지 않는 성질
논리적 독립성
- 개념 스키마가 변경되어도, 외부 스키마에 영향을 주지 않는다.
물리적 독립성
- 내부 스키마가 변경되어도, 개념 스키마, 외부스키마에 영향을 주지 않는다.
출처 링크
https://jwprogramming.tistory.com/47
https://iingang.github.io/posts/DB-schema/