데이터 베이스는 3단계의 스키마를 가진다
3단계의 스키마는 하나의 데이터를 어떠한 관점으로 보고, 어떠한 목적으로 정보 information으로 사용할 것인가에 따라 나누어진다
단계별로 스키마를 독립적으로 유지시키는 것이 목적
- 스키마 Schema : 데이터베이스의 제약 조건, 구조를 정의한 것
3단계 : 외부 단계 - 외부 스키마 (서브 스키마)
개별 사용자의 관점에서 데이터를 바라보는 스키마
사용자에 따라 하나의 데이터를 어떻게 사용항지에 대한 목적과 의도는 모두 다르기 때문에 외부 스키마는 하나의 데이터에 대해 여러개가 나올 수 있다.
쇼핑몰을 예로 들면 )
유져 입장 - 상품 판매 관련 DB, 주문 DB, 내 정보 관련 DB -> 스키마 1
입점 판매자 입장 - 상품 상세 정보 관련 DB, 상품 판매 통계 관련 DB, 정산 관련 DB -> 스키마 2
각각의 입장을 응용프로그램이라고 본다면 같은 데이터베이스 내에서도 각 프로그램이 봐야할 것이 있고 보면 안될 것이 있다.
- 응용 인터페이스 (Application Interface) : 외부 스키마와 개념 스키마의 대응 관계 / 응용 인터페이스를 통해 데이터 사용자드이 원하는 데이터에 접근
2단계 : 개념 단계 - 개념 스키마
데이터 베이스 운용 조직 전체 관점에서 데이터를 바라보는 스키마
관리자 전체 관점이라고 생각한다 -> 다 보이는 것
관리자 입장에서 데이터베이스의 중심을 잡아준다고 생각하면 된다
- 저장 인터페이스 (Storage Interface) : 개념 스키마와 내부 스키마의 대응 관계
1단계 : 내부 단계 - 내부 스키마
물리적인 관점에서의 데이터베이스
데이터를 저장하는 기계의 관점에서 보는 것
각 인스턴스에 어떻게 데이터가 접근, 저장 구조를 가지고 있는지 정의
데이터 독립성 (Data Independency)
3단계의 스키마 구조는 데이터의 독립성을 유지하기 위함
즉, 하나의 스키마를 변경하더라도 다른 스키마에 영향을 끼치지 않음을 유지
-> 각 스키마에서 변경이 일어나도 다른 스키마가 변경되지 않으므로 변경 후 매핑 해주면 됨
데이터 사전 (Data Dictionary) - 시스템 카탈로그
데이터에 대한 데이터, Meta Data
- 스키마
- 제약조건
등등의 데이터에 대한 데이터를 DBMS가 자동으로 생성, 저장
데이터 디렉토리 (Data Directory)
data dictionary에 기록된 데이터에 접근하는 데 필요한 정보 소유
사용자 데이터베이스
실제 사용자가 사용하는 데이터가 저장된 데이터베이스
데이터 언어
데이터 정의어 Data Definition Language
스키마 정의, 수정, 삭제에 사용
데이터 조작어 Data Maninpulation Language
데이터 삽입, 수정, 삭제, 검색 등의 처리를 위해 사용
데이터 제어어 Data Control Language
내부 스키마에서 필요한 프로토콜을 정의하기 위해 사용
무결성 (정확, 유효 데이터 유지) / 보안 / 회복 / 동시성 을 위한 프로토콜을 정의
데이터베이스 관리 시스템 DBMS
각 유져는 위와 같이 데이터 언어를 이용해 데이터베이스에 쿼리를 던진다
데이터베이스 관리 시스템은 해당 쿼리를 질의 처리기 (Query Processor)와 저장 데이터 관리자(Stored Data Manager)를 사용하여 database로부터 데이터를 가져온다
질의 처리기 (Query Processor)
사용자의 쿼리를 해석하여 처리한다
- DDL 컴파일러
- DML 컴파일러
- DML 프리 컴파일러 - 응용프로그램에서 들어온 쿼리의 DB 연산을 따로 뽑아내서 DML 컴파일러에 전달하는 역할
- 런타임 데이터베이스 처리기
- 트렌젝션 관리자 - DML에서 read write 시에 transaction을 직렬 가능 스케줄로 만들어주는 역할
저장 데이터 관리자 (Stored Data Manager)
디스크에 저장된 데이터 베이스와 데이터 사전을 관리 / 접근
'데이터베이스 Database' 카테고리의 다른 글
SQL (Structured Query Language) - DDL 총정리 (0) | 2021.12.09 |
---|---|
관계 데이터 모델 (Relation) (0) | 2021.12.08 |
데이터 모델링 Data Modeling (0) | 2021.12.07 |
데이터베이스 관리 시스템 DBMS(Data Base Management System) (0) | 2021.12.07 |
데이터베이스 Data Base 기본 개념 (0) | 2021.12.07 |