스키마(Schema)
DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합이다.
스키마는 데이터베이스를 구성하는 Entity, Attribute, Relationship 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다
스키마는 사용자 관점에 따라 내부 스키마, 외부 스키마, 개념 스키마로 나눠진다.
Entity(개체) : 데이터로 표현하려고 하는 객체(속성들의 집합)
Attribute(속성) : 개체가 갖는 속성
Relationship(관계) : 개체와 개체 사이의 연관성
스키마의 특징
- 데이터 사전에 저장되며, 다른 이름으로 메타데이터라고도 한다.
- 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
- 시간에 따라 불변인 특성을 갖는다.
- 데이터의 구조적 특성을 의미하고, 인스턴스에 의해 규정된다.
스키마 3계층
스키마는 하나의 데이터베이스를 사용자의 관점에 따라 외부 스키마,개념 스키마,내부 스키마 이렇게 세 개의 단계로 나누는데
이를 스키마의 3계층 이라 합니다.
- 사용자 관점에서 논리적 구조를 기술한 외부 스키마.
- 물리적인 저장장치의 면에서 논리적인 구조를 기술한 내부 스키마.
- 조직체나 기관의 관점에서 논리적 구조를 기술한 개념 스키마.
외부 스키마
외부(사용자)가 바라보는 스키마를 의미한다.
사용자들이 사용할 데이터들을 보여주는 것이기 때문에 추상화가 되어있고,
여러 사용자가 바라보는 관점에 따라 여러 스키마가 존재할 수 있다.
ex) 네이버 데이터베이스 -> 메일 스키마, 카페 스키마, 블로그 스키마
또한 사용자는 DB에서 데이터를 사용하는 사람이므로 응용 프로그래머라고 볼 수 있다.
응용 프로그래머는 외부 스키마를 통해 구조를 확인하고 DML을 사용하여 데이터를 이용한다.
개념 스키마
전체적인 개념을 정의하는 것을 의미한다.
전체 DB가 어떤 구조로 되었는지 구체적으로 어떤 데이터가 있고 그 데이터는 어떤 테이블에 있고 각 테이블마다 어떤 관계가 존재하는지를 정의한다.
데이터베이스 자체의 전체적인 구조를 확인하기 때문에 개념 스키마를 확인하는 사람은 DBA이고,
DBA는 개념 스키마를 통해 전체적인 구조의 개념을 확인하고 DDL과 DCL을 사용해서 구조를 설계한다.
내부 스키마
실제 데이터의 내부를 정의하는 것을 의미하다.
데이터의 필드 이름이 무엇이고 해당 필드는 몇 Byte이며 인덱스가 있는지 등을 정의한다.
이 것이 곧 데이터를 물리적으로 어떻게 저장할지에 대해 정의한 것이므로 저장 스키마라고도 부른다.
물리적 저장장치의 입장으로 바라보기 때문에 내부 스키마를 확인하는 사람은 시스템 프로그래머이다.
시스템 프로그래머란 컴퓨터를 작동시키고 컴퓨터의 활동을 조정,통제하는 OS를 설계하는 프로그래머입니다.
시스템 프로그래머는 내부 스키마를 통해 데이터의 내부 구조를 확인하고 물리적인 데이터 구조를 설계한다.
'CS > 데이터베이스' 카테고리의 다른 글
인덱스 (0) | 2024.04.01 |
---|---|
저장 프로시저, 트리거 (0) | 2024.03.27 |
RDB - NoSQL 차이점 (1) | 2024.03.18 |
트랜잭션 격리 수준 (0) | 2024.03.14 |
동시성 제어 (1) | 2024.03.14 |