와드의 블로그

Chapter 3. 데이터베이스 시스템 본문

CS/데이터베이스

Chapter 3. 데이터베이스 시스템

Ward 2022. 5. 15. 23:22

1. 데이터베이스 시스템의 정의

데이터베이스 시스템: 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해 주는 시스템

데이터베이스 시스템의 구성: 데이터베이스 + 데이터베이스 관리 시스템 + 사용자 + 데이터 언어 + 컴퓨터

데이터베이스 시스템의 구성

2. 데이터 베이스의 구조

(1) 스키마

스키마: 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

인스턴스: 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값

보통 스키마는 한 번 정의되면 자주 변경되지 않지만, 인스턴스는 계속 변함

(2) 3단계 데이터베이스 구조

① 3단계 데이터베이스 구조의 개념

3단계 데이터베이스 구조는 하나의 데이터베이스를 외부, 개념, 내부 단계로 나누고, 각 단계별로 다른 추상화를 제공

내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐

3단계 데이터베이스 구조를 통해, 데이터의 저장·유지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화하여 일반 사용자들에게 제공

② 외부 단계

외부 단계(external level)에서는 개별 사용자 관점에서 데이터베이스를 이해하고 표현

외부 스키마(=서브 스키마): 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것

데이터베이스 하나에는 외부 스키마 여러 개가 존재할 수 있고, 외부 스키마 하나를 사용 목적이 같은 사용자들이 공유하기도 함

③ 개념 단계

개념 단계(conceptual level)에서는 데이터베이스를 이용하는 사용자들의 관점을 통합하여, 데이터베이스를 조직 전체의 관점에서 이해하고 표현

개념 스키마: 개념 단계에서 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조 정의한 것

④ 내부 단계

내부단계(internal level)에서는 데이터베이스를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현

내부 스키마: 내부 단계에서 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것

(3) 데이터 독립성

 ① 스키마의 사상과 데이터 독립성

사용자가 자신의 외부 스키마를 통해 원하는 데이터를 얻으려면 내부 스키마에 따라 저장된 데이터베이스에 접근해야 함

-> 세 가지 스키마 사이에는 유기적인 대응관계가 성립

사상(mapping): 스키마 사이의 대응 관계

외부/개념 사상(응용 인터베이스): 외부 스키마와 개념 스키마의 대응 관계

개념/내부 사상(저장 인터페이스): 개념 스키마와 내부 스키마의 대응 관계

3단계 데이터베이스 구조와 스키마 사이의 대응 관계를 통해 데이터 독립성 실현

데이터 독립성(data independency): 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성

3단계 데이터베이스 구조에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재

②  논리적 데이터 독립성

논리적 데이터 독립성:  개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것

논리적 데이터 독립성이 실현되면 전체 데이터베이스의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보만 적절히 수정해 주면 외부 스키마를 변경할 필요 X

③ 물리적 데이터 독립성

물리적 데이터 독립성: 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것

물리적 데이터 독립성이 실현되면 데이터베이스의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면 데이터베이스의 논리적 구조는 변경할 필요 X

3단계 데이터베이스 구조에서 스키마 간의 사상

(4) 데이터 사전

데이터베이스를 관리하고 이용하려면 이에 필요한 부가 정보(스키마와 사상 정보 등)를 저장해야 함

데이터 사전(시스템 카탈로그): 데이터베이스에 저장되는 데이터에 관한 정보를 저장하는 곳

메타 데이터: 데이터 사전에 저장되는 데이터베이스에 저장되는 데이터에 관한 정보

데이터 사전도 데이터베이스의 일종이기 때문에 시스템 데이터베이스라고 하고 사용자가 실제로 이용하는 데이터가 저장되는 원래의 데이터베이스를 사용자 인터페이스라고 함

데이터 사전에 있는 데이터를 실제로 접근하는 데 필요한 위치 정보를 데이터 디렉터리에서 관리

3. 데이터베이스 사용자

데이터베이스 사용자: 데이터베이스를 이용하기 위해 접근하는 모든 사람

데이터베이스 사용자는 이용 목적에 따라 크게 데이터베이스 관리자, 최종 사용자, 응용 프로그래머로 나뉨

(1) 데이터베이스 관리자

데이터베이스 관리자: 데이터베이스 시스템을 운영·관리, 데이터베이스를 설계 및 구축하고 데이터베이스를 제어

데이터베이스 관리자의 주요 업무

  • 데이터베이스 구성 요소 선정
  • 데이터베이스 스키마 정의
  • 물리적 저장 구조와 접근 방법 결정
  • 무결성 유지를 위한 제약 조건 정의
  • 보안 및 접근 권한 정책 결정
  • 백업 및 회복 기법 정의
  • 시스템 데이터베이스 관리
  • 시스템 성능 감시 및 성능 분석
  • 데이터베이스 재구성

(2) 최종 사용자

최종 사용자: 데이터를 조작하기 위해 데이터베이스에 접근하는 사람들

최종 사용자는 캐주얼 사용자와 초보 사용자로 구분됨

캐주얼 사용자: 주로 데이터 조작어를 이용해 원하는 데이터와 데이터에 대한 처리를 데이터베이스 관리 시스템에 직접 설명

초보 사용자: 응용 프로그램을 통해 데이터베이스를 사용

(3) 응용 프로그래머

응용 프로그래머: 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작 어를 삽입하는 사용자

4. 데이터 언어

데이터 언어: 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리 시스템과 통신하는 수단

데이터 언어는 사용 목적에 따라 데이터 정의어, 데이터 조작어, 데이터 제어어로 나뉨

(1) 데이터 정의어

데이터 정의어(data definition language): 새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어

데이터 정의어로 정의된 스키마는 데이터 사전에 저장되고, 삭제나 수정이 발생하면 이 내용도 데이터 사전에 반영됨

(2) 데이터 조작어

데이터 조작어(data manipulation language): 사용자가 데이터의 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어

데이터 조작어는 사용자가 인스턴스를 활용하기 위해 사용

데이터 조작어는 설명 방식에 따라 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉨

  • 절차적 데이터 조작어(procedural DML): 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지를 설명
  • 비절차적 데이터 조작어(nonprocedural DML): 사용자가 어떤 데이터를 원하는지만 설명하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지는 DBMS에 맡김

(3) 데이터 제어어

데이터 제어어(data control language): 데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용하는 데이터 언어

데이터 제어어를 이용해 규칙이나 기법을 정의하여 다음과 같은 특성을 보장

  • 무결성(integrity): 데이터베이스에 정확하고 유효한 데이터만 유지
  • 보안(security): 허가받지 않은 사용자가 데이터에 접근하는 것을 차단하거나, 허가된 사용자가 접근 권한이 있는 데이터에만 접근할 수 있게 함
  • 회복(recovery): 장애가 발생해도 데이터의 일관성을 유지
  • 동시성(concurrery): 여러 사용자가 같은 데이터에 동시에 접근하여 처리할 수 있게 함

5. 데이터 베이스 관리 시스템의 구성

데이터베이스 관리 시스템은 기능에 따라 질의 처리기와 저장 데이터 관리자로 구분

(1) 질의 처리기

질의 처리기(query processor): 사용자의 데이터 처리 요구를 해석하여 처리

질의 처리기의 구성 요소

  • DDL 컴파일러: 데이터 정의어로 작성된 스키마의 정의를 해석, 저장 데이터 관리자의 도움을 받아 새로운 데이터베이스를 구축하고, 스키마의 정의를 데이터 사전에 저장
  • DML 프리 컴파일러: 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
  • DML 컴파일러: 데이터 조작어로 작성된 데이터의 처리 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석
  • 런타임 데이터베이스 처리기: 저장 데이터 관리자를 통해 데이터베이스에 접근하여, DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에 실제로 실행
  • 트랜잭션 관리자: 데이터베이스에 접근하는 과정에서 사용자의 접근 권한이 유효한지 검사하고, 데이터베이스 무결성을 유지하기 위한 제약조건 위반 여부를 확인, 회복이나 병행 수행과 관련된 작업도 담당

(2) 저장 데이터 관리자

저장 데이터 관리자: 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당

저장 데이터 관리자는 운영체제의 도움을 받아 데이터베이스에 대한 접근을 수행

데이터베이스 관리 시스템의 구성

 

출처: 김연희, 「데이터베이스 개론」, 한빛아카데미