본문 바로가기
Major Review (학부)/Database

[DB] Ch03. 데이터베이스 시스템의 구성

by 삼준 2023. 4. 9.
반응형

데이터베이스 시스템(DBS, Database System) : 데이터를 데이터베이스로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템. DBS의 구성요소로는 DB, DBMS, 데이터 언어, 사용자, 관리자, 데이터베이스 컴퓨터가 있음.

 

 

1. 3단계 DB

스키마 : DB의 논리적 정의(DB의 구조와 제약 조건에 대한 명세)를 기술한 것. 개체, 속성, 관계, 제약조건의 내용을 포함함.

어떤 입장에서 DB를 보느냐에 따라 DB 스키마는 모두 상이하며, DB 관리 측면에서는 세 단계로 구별하여 관계를 정의함.

  • 데이터를 이용하는 개인의 뷰 --> 외부 단계 --> 외부 스키마
  • 개인의 뷰가 종합된 기관 전체의 뷰 --> 개념 단계 --> 개념 스키마
  • 물리적 저장 장치의 입장에서 보는 저장 장치의 뷰 --> 내부 단계 --> 내부 스키마

1.1. 외부 스키마

: 개개 사용자나 응용 프로그래머가 접근하는 DB를 정의한 것.

시스템의 입장에서 보면 DB의 한 외적인 면을 표현했기 때문에 외부 스키마라고 명명함.

'서브 스키마(Sub Schema)'라고도 함.

 

1.2. 개념 스키마

: 기관적 입장에서 DB를 정의한 것.

개념적(Conceptual)의 의미는 전체적이고 종합적이라는 뜻.

하나의 DBS에는 하나의 개념 스키마만 존재하며, 이 개념 스키마로부터 모든 외부 스키마가 생성됨.

'스키마'라고도 함.

 

1.3. 내부 스키마

: 저장 장치의 입장에서 DB 전체가 저장되는 방법을 명세한 것.

개념 스키마에 대한 저장 구조를 정의함.

물리적 단계보다는 한 단계 위임. 아직 물리적 레코드를 이용해 특정 물리적 저장 장치에 기술하는 것은 아니기 때문.

외부 스키마의 속성은 개념 스키마의 속성과 이름이 다를 수 있으며, 일부 개념 스키마의 속성이 외부 스키마의 속성에는 필요에 따라 존재하지 않을 수 있음.

 

DBMS는 이 3단계 스키마의 모든 개체와 속성 간의 대응 관계(사상)를 알아야 함.

3단계 DB 구조에서는 적어도 2종류의 사상이 존재함 --> 외부-개념 사상, 개념-내부 사상.

이 사상은 데이터 독립성을 구현하는 방법으로서 중요한 역할을 함.

 

외부-개념 사상 : 특정 외부 스키마와 개념 스키마간의 대응 관계를 정의함. 응용 인터페이스라 함. 개념 스키마의 변화가 있을 때 적절히 사상을 변경해 주면 외부 스키마에 영향이 없게 됨.(논리적 데이터 독립성을 제공해 줌.)

개념-내부 사상 : 개념 스키마와 내부 스키마간의 대응 관계를 정의함. 저장 인터페이스라 함. 내부 스키마에 변호가 있을 때 적절히 사상을 변경해 주면 개념 스키마에 영향이 없게 됨.(물리적 데이터 독립성을 제공해 줌.)

 

+ 시스템 카탈로그 (a.k.a 데이터 사전) : DB에 저장된 모든 데이터 개체들에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템. 여러 스키마와 이들 속에 포함된 사상들에 관한 정보도 컴파일되어 저장, 관리됨.

+ 데이터 디렉터리 : 데이터를 실제로 접근하는데 필요한 위치 정보를 관리하는 시스템.

  시스템 카탈로그 데이터 디렉토리
공통점   시스템 데이터베이스임.
차이점   사용자가 접근·검색 가능함. 시스템만 접근 가능함.

시스템 데이터베이스는 사용자가 아닌 시스템을 위한 데이터베이스이며, 여기에 저장된 데이터는 '메타 데이터'라고도 함.

 

 

2. DBMS

DBMS는 사용자 요구에 따라 외부 스키마, 외부-개념 사상, 개념 스키마, 개념-내부 스키마, 내부 스키마, 그리고 저장 구조를 통해 목표 데이터에 접근하여 연산을 실행함. 이 같은 과정은 DBMS를 구성하고 있는 여러 복잡한 요소를 통해 수행됨.

DBMS의 구성요소

  • DDL 컴파일러(또는 DDL 처리기) : DDL로 명세된 스키마 정의를 내부 형태로 변환해 시스템 카탈로그에 저장함.
  • 질의어 처리기 : 일반 사용자가 제출한 고급 질의문을 처리함.(파싱->컴파일->코드 생성->런타임 DB 처리기로 보내 실행)
  • DML 예비 컴파일러 : 호스트 프로그래밍 언어로 작성된 응용 프로그램 속에 삽입되어 있는 DML 명령문을 추출하고 그 자리에 함수 호출문을 삽입함. 추출된 명령문들은 DML 컴파일러로 보내지고 수정된 응용 프로그램은 호스트 프로그래밍 언어 컴파일러로 감.
  • DML 컴파일러(또는 DML 처리기) : DML 명령문 파싱, 컴파일하여 효율적인 목적 코드 생성. 호스트 프로그래밍 언어 컴파일러를 거친 프로그램의 목적 코드와 연결되어 런타임 DB 처리기에 의해 실행됨.
  • 런타임 DB 처리기 : DB연산을 저장 데이터 관리자를 통해 저장된 DB에 실행함.
  • 트랜잭션 관리자 : 트랜잭션 단위로 무결성 제약조건 만족, 권한 검사 실시함. 병행 제어, 회복 작업도 수행함.
  • 저장 데이터 관리자 : 디스크에 저장되어 있는 사용자 DB나 시스템 카탈로그 접근을 책임짐. 기본 OS 모듈을 이용함.

 

3. 데이터 언어

DBMS와의 통신 수단. 목적에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나뉨.

 

3.1. 데이터 정의어

: DDL, Data Definition Language. DB를 정의하거나 정의를 수정할 목적으로 사용하는 언어.

스키마를 DBMS가 이해할 수 있게끔 기술하는 데 사용됨.

개념 스키마와 내부 스키마를 구분하는 시스템에서는 내부 스키마를 명세하기 위해 별도의 데이터 저장 정의어(DSDL, Data Storage Definition Language)를 사용하는 경우도 있음.

외부 스키마와 개념 스키마를 구분하는 시스템에서는 DDL을 그대로 사용하거나 약간 확장된 DDL을 사용함. 서브스키마란 용어를 사용하는 시스템에서는 스키마 DDL과 서브스키마 DDL로 구분하여 사용함.

응용 프로그램이 필요로 하는 외부 스키마를 응용 프로그램 속에 DDL 명령문으로 정의해 사용하는 경우도 있음. 이 경우 호스트 프로그램 명령문과 구별되고 시스템 내부에서는 별도로 컴파일해 처리함.

 

3.2. 데이터 조작어

: DML, Data Manipulation Language. DBMS로 하여금 원하는 데이터를 처리하게끔 명세하는 도구로서 사용자와 DBMS간의 인터페이스를 제공함. 명세 방법에 따라 두 가지 유형으로 나뉨.

3.2.1. 절차적 데이터 조작어

   무슨 데이터를 어떻게 접근해 처리할지 명세해야 되는 저급 데이터 언어. 호스트 프로그래밍 언어로 작성된 응용 프로그램 속에 삽입되어 사용됨. 호스트 프로그래밍 언어와 데이터 언어 모두 아는 사람만 사용 가능하므로 비전문가의 이용이 어려움.

3.2.2. 비절차적 데이터 조작어

   무슨 데이터를 원하는지만 명세하면 되는 고급 데이터 언어. '선언적 언어'라고도 함. 한 번에 여러 개의 레코드를 검색해서 처리함. 터미널을 통해 일반 사용자가 대화 식을 사용하는 게 보통이며, 호스트 프로그램 속에 넣어 사용할 수도 있음.

+ 독자적이고 터미널에서 많이 사용하는 고급 명령어 형태의 데이터 조작어를 '질의어(Query Language)'라고 함.

+ DML 명령어가 고급이든 저급이든 호스트 프로그램 속에 삽입되어 사용되면 '데이터 부속어(DSL, Data Sub-Language)'라고 함.

+ 완전성 : 데이터 언어의 필수 요건 중 하나로, DB의 어떤 객체도 추출할 수 있고 처리할 수 있으며 어떤 연산도 표현할 수 있는 데이터 언어의 능력.

 

3.3. 데이터 제어어

: DCL, Data Control Language. 데이터 제어에 관해 정의하고 기술하는 언어. 데이터 보안, 무결성, 데이터 회복, 병행 수행 제어를 명세할 수 있는 명령어들을 포함함. 주로 데이터베이스 관리자(DBA, Database Administrator)가 사용함. DDL의 일부로 포함되어 왔으나, 제어 기능이 중요하고 제어 기법이 개발됨에 따라 별도의 언어로 구분하게 됨.

 

데이터 언어는 위와 같이 3개로 구분되지만, 현실적으로는 별도의 언어로 존재하지 않고 하나의 통합된 언어에서 기능적으로만 구분됨.

EX) SQL

DDL - CREATE, ALTER, DROP 등

DML - SELECT, INSERT, UPDATE, DELETE 등

DCL - GRANT, REVOKE, CHECK, COMMIT, ROLLBACK, LOCK, UNLOCK 등

 

 

4. 사용자

: 데이터베이스를 이용하기 위해 접근하는 사람. 사용하는 언어에 따라 세 가지 그룹으로 나뉨.

4.1. 일반 사용자

질의어를 이용함. 보통 사용자, 터미널 사용자라고도 함. 검색, 삽입, 삭제, 갱신 작업을 목적으로 함. 편리한 사용자 인터페이스를 개발해 지원 중임.

 

4.2. 응용 프로그래머

응용 프로그램을 작성할 때 DSL을 삽입시켜 DB에 접근하는 사람.

 

4.3. 데이터베이스 관리자(DBA)

DDL과 DCL을 사용해 DBMS에 기술해 주고 제어할 목적으로 접근하는 사람. 정확한 정보가 서비스될 수 있도록 데이터를 관리하기 위해 접근함. DBS의 구성요소로 취급.

 

 

5. 데이터베이스 관리자

: DBA, Database Administrator. DBS의 관리 운영에 대한 모든 책임을 지고 있는 사람.

책임지는 업무들은 다음과 같음.

 

5.1. DB 설계와 운영

  • DB 구성요소 결정.(DB에 포함될 개체, 개체 속성, 개체 간의 관계를 선정)
  • 스키마 정의.
  • 저장 구조와 접근 방법 결정. 
  • 보안 및 권한 부여 정책, 데이터 유효성 검사 방법 수립.
  • 백업, 회복 절차 수립.
  • 무결성 유지를 위한 대책 수립.
  • 성능 향상이나 새로운 요구에 대응하기 위해 필요에 따라 DB 재구성.
  • 시스템 카탈로그 유지·관리

5.2. 행정 관리 및 불평 해결

  • 문서화에 표준을 정하여 시행
  • 사용자 요구, 불평 해결

5.3. 시스템 감시 및 성능 분석

  • 자원 이용도, 병목 현상, 성능을 감시함.
  • 각종 통계를 종합 및 분석함.

 

6. 하드웨어

DB 관리 기능을 전문적이고 효율적으로 수행할 수 있도록 설계된 HW/SW 시스템을 DB 컴퓨터(또는 DB 기계)라고 함.

DB 컴퓨터는 후위 처리기, 내용식 메모리, 병렬 처리, DB연산을 위한 특수 처리기 등으로 구성됨.

일반 작업을 처리하는 호스트 컴퓨터와 협동적으로 후위에서 DB관리 작업을 수행함.

이런 후위 DB 컴퓨터는 대부분의 데이터 관리 기능을 펌웨어나 하드웨어로 수행하기 때문에 높은 효율과 성능을 보여줌.

반응형

댓글