본문 바로가기

공부하자/IT

[DB] DBMS의 구성

728x90
반응형


데이터베이스 시스템(DBMS)의 구성

 



데이터베이스 관리 시스템(DBMS)은 사용자와 데이터베이스 사이에 위치하여 데이터베이스를 관리하고 사용자의 요구에 따라 데이터베이스에 대한 연산을 수행해 정보를 생성해 주는 소프트웨어이다.

 

따라서, DBMS는 먼저 데이터베이스 사용자가 데이터 언어로 표현한 데이터베이스 접근 요구를 접수해서 이것을 조사, 분석한 뒤 컴퓨터가 이해할 수 있는 형태로 변환한다.

 

사용자의 요구는 일반적으로 데이터의 검색, 삽입, 삭제,갱신, 데이터의 생성 등을 포함한다.

 

이러한 요구를 실행시키기 위하여 DBMS는 사용자의 해당 외부 스키마, 외부/개념 사상, 개념 스키마, 개념/내부 사상, 내부스키마, 저장 구조를 통해 목표 데이터에 접근하여 연산을 실행한다.

 

 


DBMS 구성요소


 




 

DDL 컴파일러 또는 DDL처리기는

DDL로 명세 된 스키마 정의를 내부형태, 즉 메타 데이터로 처리하여 시스템 카탈로그에 저장한다. 이 카탈로그에는 파일의 이름과 크기, 데이터 아이템의 이름과 타입, 각 파일의 저장 세부 사항, 스키마 사이의 사상 정보, 제약 조건 등 DBMS 모듈들이 필요로 하는 많은 종류의 정보들을 포함하고 있다. 따라서 모든 DBMS 모듈들은 필요 시에 이 카탈로그 정보를 접근해서 이용한다.

 

질의어 처리기는 

터미널을 통해 일반 사용자가 제출한 고급 질의문을 처리한다. 이것은 질의문을 검사하고 파싱해서 컴파일 한다. 그리고 효율적인 데이터베이스 접근 코드를 생성한 뒤에, 이 코드 실행을 위해 런타임 데이터베이스 처리기에 보내진다.

 

DML 예비 컴파일러는

호스트 프로그래밍 언어로 작성된 응용 프로그램 속에 삽입되어 있는 DML 명령문(DSL)들을 추출한다. 이 명령문들은 데이터베이스 접근을 위한 목적 코드로 컴파일 되도록 DML 컴파일러에 보내진다. 프로그램의 나머지 부분은 호스트 프로그래밍 언어의 컴파일러에 보내진다.

 

DML 컴파일러 또는 DML처리기는

DML 예비 컴파일러가 넘겨준 DML 명령어를 컴파일하여 효율적인 목적 코드를 생성한다. DML에 대한 목적코드는 호스트 프로그래밍 언어 컴파일러에 의해 처리된 나머지 응용 프로그램의 목적 코드와 연결되어 런타임 데이터베이스 처리기에 의해 실행된다.

 

런타임 데이터베이스 처리기는

실행 시간에 데이터베이스 접근을 관리한다. 이것은 검색이나 갱신과 같은 데이터베이스 연산을 저장 데이터 관리자를 통해 디스크에 저장된 데이터베이스에 실행시킨다.

 

트랜잭션 관리자는

데이터베이스를 접근하는 과정에서 무결성 제약조건이 만족하는지, 데이터를 접근할 권한을 사용자가 가지고 있는지 권한 검사를 한다. 또한 여러 사용자의 요구를 동시에 처리할 수 있도록

트랜잭션의 병행 제어나 장애발생시 회복 작업을 수행한다.

 

저장데이터 관리자는

디스크에 저장되어 있는 사용자 데이터베이스나 카탈로그 접근을 책임진다. 디스크에 저장되어 있는 저장 레코드의 접근 요청은 파일 관리자가 먼저 어떤 파일의 어떤 페이지인가를 결정하고, 실제로 디스크와 메인 메모리 버퍼 사이의 데이터 전송을 책임지고 있는 디스크 관리자로 하여금 수행케 한다. 이 기능은 대부분 OS의 기본 모듈에 해당된다. 일단 메인 메모리의 데이터 버퍼에 전송된 데이터는 버퍼 관리자가 데이터 처리를 위해 관리한다.

 

지능적이고 고급 DBMS일수록 사용자로 하여금 데이터베이스 시스템 내부에 대해 자세히 알 필요 없이 편리한 방법으로 데이터 요구를 표현할 수 있게 한다. 따라서 DBMS는 정보 시스템의 소프트웨어나 하드웨어의 세세한 것으로부터 사용자를 독립시켜 주는 기능도 수행한다.

반응형