Stack Building
[03] 데이터베이스 시스템의 구성 본문
1. 3단계 데이터베이스
스키마란 데이터베이스의 구조와 제약조건에 대한 명세다. 스키마에는 개체(엔터티), 속성(애트리뷰트), 관계(relationship)에 대한 정의와 제약조건이 포함된다. 그러나 누가 데이터베이스를 보고 있느냐에 따라 스키마는 상이하다. 때문에 관리 측면에서 데이터베이스는 크게 사용자(외부 단계), 사용자 개개인의 모든 뷰를 종합한 것(개념 단계), 물리적 저장 장치의 뷰(내부 단계)의 3단계로 분류하여 기술하고 그들의 관계를 정의한다. 각 단계에서의 스키마는 단계의 이름을 따 외부 스키마, 개념 스키마, 내부 스키마라고 한다.
(1) 외부 스키마
개개 사용자를 위한 것으로, 여러 형태의 외부 스키마가 존재할 수 있다. 공용을 위한 것이라기보다 특정 응용만을 위한 한정된 논리의 자료구조라 개체와 관계만을 포함하곤 한다. 전체의 일부분이라고 하여 서브 스키마라고도 한다.
(2) 개념 스키마
범 기관적 입장에서 데이터베이스를 정의한 것. 개념적이라는 의미는 전체적이고 종합적이라는 뜻이다. 따라서 모든 개체, 관계, 제약조건, 접근 권한, 보안 정책, 무결성 규칙 등에 대한 명세도 포함한다. 모든 조직 전체의 데이터베이스를 기술한 것이기 때문에 하나의 데이터베이스 시스템에는 하나의 개념스키마만 존재한다. 여기에서 외부스키마가 생성 및 지원된다고 보면 된다. 간편하게 스키마라고도 부른다.
(3) 내부 스키마
내부 단계에는 하나의 내부 스키마가 있다. 이는 개념 스키마에 대한 저장 구조를 정의한 것으로, 실제로 저장될 형식, 인덱스 유무, 표현 방법, 물리적 순서 등의 명세를 한다. 이 스키마는 물리적 단계 위에 있다.
DBMS는 위의 3단계 스키마에 있는 모든 개체와 속성의 대응 관계를 알아야 지원할 수 있다. 예를 들어 외부 스키마의 n은 개념 스키마의 num_ppl, 개념 스키마의 num_ppl은 내부 스키마의 num_of_people에 대응된다는 것을 알고 있어야 한다. 이러한 대응 관계에 대한 정의를 사상mapping이라고 하고, DBMS는 사상 정보를 정확하게 유지하고 관리한다.
DBMS가 저장하고 관리하는 사상은 '외부/개념 사상'과 '개념/내부 사상'이 있다. 전자는 응용 인터페이스, 후자는 저장 인터페이스라고 부르는데, 이런 사상만 변경해주면 맞닿아 있지 않은 단계까지 수정할 필요가 없게 되어 데이터 독립성을 제공하게 된다. 3단계를 정확하게 구분하는 DBMS는 드물다.
여러 스키마와 여기에 포함되는 사상들에 대한 정보가 컴파일되고 저장, 관리되는 시스템이 '데이터 사전' 또는 '시스템 카탈로그'이다. 이를 사용자가 이용하는 데이터베이스와 구분하여 시스템 데이터베이스라고도 한다. 여기에 실제로 접근할 수 있도록 위치 정보를 관리하는 시스템은 데이터 디렉토리라고 하는데, 시스템 카탈로그와 달리 사용자는 접근하지 못하고 시스템만 접근 가능하다. 데이터 디렉토리는 데이터에 대한 데이터라는 의미로 메타데이터라고도 불린다.
2. DBMS
DBMS는 사용자와 DB 간에 위치하여 DB를 관리하고 사용자가 요구하는 연산을 수행해 정보를 생성하는 소프트웨어를 말한다. DDL 컴파일러는 스키마 정의를 시스템 카탈로그에 저장하며, 쿼리 처리기는 사용자가 준 쿼리를 처리한다. DML 컴파일러는 DML 예비 컴파일러가 제공한 명령문을 처리하여 효율적인 목적 코드를 만든다.
3. 데이터 언어
DB를 정의 및 접근하기 위해서는 DBMS와의 통신이 필요하다. 이때 사용하는 것이 데이터 언어로, 데이터 정의어, 데이터 조작어, 데이터 제어어로 나뉜다. 현실적으로는 각기 별도의 언어로 존재하는 것이 아니라 통합된 언어 속에서 기능적으로만 구분된다.
(1) 데이터 정의어 : DB를 정의하거나 수정할 목적으로 사용
(2) 데이터 조작어 : 데이터 처리를 명세함
* 절차적 데이터 조작어: 무엇을 어떻게 접근해야 하는가?
* 비절차적 데이터 조작어: 무엇을 원하는지만 명세하고 어떻게 하는지는 DBMS에 위임
(3) 데이터 제어어 : 데이터 제어에 대해 정의 및 기술
4. 사용자
(1) 일반 사용자: 터미널에서 쿼리로 DB에 접근하는 사용자군. 검색, 삽입, 삭제, 갱신 작업을 모두 수행
(2) 응용 프로그래머: 응용 프로그램을 작성할 때 DML을 삽입하여 DB에 접근하는 사용자군.
(3) 데이터베이스 관리자: DDL, DCL을 사용하여 DBMS에 데이터를 기술하고 제어하는 사용자군.
5. 참고
데이터베이스론 (이석호 저)
'DB' 카테고리의 다른 글
[05] 관계대수와 관계해석 (0) | 2019.08.13 |
---|---|
[04] 관계 데이터베이스 (0) | 2019.08.06 |
[02] 데이터베이스 관리 시스템 (0) | 2019.07.19 |
[01] 정보 환경 (0) | 2019.07.16 |
OLAP과 OLTP (0) | 2019.03.16 |