1. DB 시스템의 구성과 데이터 언어
1.1 DB 시스템이란?
DB 시스템은 데이터를 DB에 저장하고, DBMS를 사용해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템이다.
DB 시스템의 구성 요소
- 데이터 베이스(DB) : 데이터를 저장
- 데이터 베이스 관리시스템(DBMS) : DB를 생성, 관리, 조작하여 사용자와 DB를 연결하는 소프트웨어
- 데이터 언어(Data Language) : DB 정의와 조작 ,제어를 위한 DB 전용 언어
- DB 사용자 : 데이터 언어를 사용해서 DB에 접근하는 사람. 일반 사용자, 응용 프로그래머, DB 관리자
- DB 컴퓨터 : 효율적인 DB 관리를 위해서 DB에 대한 연산을 전담하는 DB 관리 전용 컴퓨터
1.2 데이터 언어
데이터 언어 DB를 정의하고, 조작, 제어하기 위해서 사용하는 언어이다. 사용자가 데이터에 접근하는 수단으로서, 사용자와 DBMS 간의 통신 수단을 제공한다. 데이터 정의어(DDL : Data Definition Language), 데이터 조작어(DML : Data Manipulation Language), 데이터 제어어(DCL : Data Control Language)가 있다.
데이터 언어의 완전성(Completeness of data language) : 데이터 언어가 반드시 갖추어야 할 필수 요건으로 사용자가 원하는 어떤 데이터도 검색하고 처리하며 어떤 연산도 표현할 수 있는 능력을 의미한다.
데이터 정의어(DDL) : DB 구조를 정의하거나 변경하기 위해서 사용하는 언어이다. DB 설계자 또는 관리자가 DB 스키마를 정의하기 위해 사용한다. DDL로 정의된 DB스키마는 DBMS의 구성 요소 가운데 하나인 DDL 컴파일러가 컴파일해서 '시스템 카탈로그' 또는 '데이터 디렉토리'에 저장하고 필요할 때 참조한다. * 시스템 카탈로그 : DB에 포함된 모든 객체들에 대한 정의나 명세 정보를 수록하는 시스템 테이블로 메타 데이터라고도 한다. DB 관리자가 주로 사용하는 도구로서 사용자와 시스템 모두 사용 가능하다. 데이터 딕셔너러리고도 한다. *데이터 디렉토리 : 데이터를 참조하는데 필요한 정보를 수록하는 시스템 테이블로 시스템만 사용할 수 있다.
- 논리적 데이터 구조의 정의 : 개념 스키마(스키마)와 외부 스키마(서브스키마)명세
- 물리적 데이터 구조의 정의 : 내부 스키마 명세. 별도의 데이터 저장 정의어를 사용해서 명세하는 경우도 있다.
- 논리적 데이터 구조와 물리적 데이터 구조간의 사상(Mapping) 정의
데이터 조작어(DML) : DB사용자와 DBMS 사이의 통신 수단으로 데이터 검색, 삽입, 삭제, 갱신 등의 DB연산을 처리한다
- 절차적 DML : 사용자가 무슨(What) 데이터를 어떻게(How) 접근하여 처리해야 하는지 기술하는 저수준(Low Level) 데이터 언어. 한번에 하나의 레코드 처리
- 비절차적 DML : 사용자가 무슨(What) 데이터를 원하는지만 기술하고 어떻게(How)의 부분은 DBMS에 위임하는 고급(High Level) 데이터 언어. 한번에 여러개의 레코드 처리. 독자적 및 대화식으로 사용하는 경우 '질의어'라고 한다.
데이터 제어어(DCL) : 공용 DB의 관리를 위해서 데이터 제어를 정의하고 기술하는 언어이다. DB 관리를 목적으로 주로 DB 관리자가 사용한다. 데이터 제어의 기능에는 데이터 보안(Security), 데이터 무결성(Integrity), 데이터 복구(Recovery), 병행 수행 제어(Concurrency Control) 등 네 가지가 있다.
1.3 DB 관리자와 사용자
일반 사용자 : 질의어를 사용해서 DB에 접근하는 사람 (일반 사용자 = 터미널 사용자 = 최종 사용자). 특별한 지식 없이 데이터 검색, 삽입, 삭제, 갱신을 목적으로 DB에 접근한다.
응용프로그래머 : 업무 중심의 응용프로그램을 개발하는데 참여하는 정보 기술 전문가. C, Java 등의 호스트 언어와 DML에 익숙하고 DB에 대한 기초 지식을 갖추고 있다.
DB 관리자 : DB 시스템이 기능을 원활히 수행하도록 관리를 책임진다. DB 설계 및 구축, DB 변경 계획도를 수립한다.
- DB 시스템 감시(Monitoring) 및 성능 분석
- DB의 구성요소 결정 및 스키마 정의
- DB의 저장 구조와 접근 방법 결정
- 보안 및 권한 부여 정책, 데이터의 유효성 검사 방법 수립
- 백업 및 복구 절차 수립
- DB의 무결성 유지를 위한 대책 수립
- DB 시스템의 성능 향상 및 새로운 요구에 대응한 DB 재구성
- 시스템 카탈로그의 관리
- 데이터 표현 및 시스템 문서화에 대한 표준 설적
- 사용자의 요구 및 불만 해소
1.4 DB 컴퓨터
DB 컴퓨터 : 대규모 DB(VLDB : Very Large DataBase)를 보다 효율적으로 관리하기 위한 DB 관리 전용 컴퓨터로 DB 머신이라고도 칭한다.
DB 컴퓨터의 특징
- Backend Computer로 후위에서 DB 관리 및 연산 수행 기능을 하는 특수 목적의 컴퓨터
- DB 관리 기능을 소프트웨어, 펌웨어, 하드웨어로 수행하기 때문에 저비용 고성능
- 후위 처리기(Backend Processor), 고성능 메인 메모리와 CPU, 대용량 저장장치, 병령처리 및 DB 연산 수행을 위한 특수 처리기 등으로 구성된다.
DB 컴퓨터와 호스트 컴퓨터의 관계
DB 컴퓨터의 주요 역할
- DB 연산 기능 : 호스트 컴퓨터가 일반 사용자나 응용 프로그램으로부터 DB 접근 요청을 받아서 DB 컴퓨터로 전달하면, 실제로 DB 컴퓨터가 데이터 검색 또는 삽입, 삭제, 갱신 등의 연산을 수행함
- DB 관리 기능 : 데이터 접근 권한 확인, 병행 수행 제어, 데이터 복구, 최적의 접근 경로 선정 등을 포함하는 데이터 관리 기능을 직접 수행
2. DBMS의 구성
2.1 DBMS의 DB 연산 처리 방법
DBMS의 주요 기능 : DB 관리 및 사용자 요구를 처리하기 위한 연산을 수행하고 필요한 정보를 생성한다.
DBMS의 연산 수행 절차
- 데이터 언어로 작성된 사용자의 Access Request를 접수하여 분석
- 시스템이 이해할 수 있는 형태로 변환
- 외부/개념/내부 스키마 간의 사상(Mapping)을 수행해서 저장 DB에 접근
- 저장된 목표 데이터에 대해 필요한 연산(Operation)을 수행
2.2 DBMS의 구성 요소
질의어 처리기 : 터미널에서 일반 사용자가 입력한 질의문을 컴파일해서, DB에 접근하기 위한 오브젝트 코드(Object Code)를 생성한다.
DML 예비 컴파일러 : 호스트 언어로 작성된 응용 프로그램에 삽입된 DML을 추출한 다음, 그 자리에 함수 호출문(Procedure Call Statement)을 삽입한다. 추출된 DML은 DML 컴파일러로 전달되고, 수정된 응용 프로그램은 호스트 프로그래밍 언어의 컴파일러로 전달된다.
DDL 컴파일러 : DDL로 정의된 스키마를 내부 형태로 변환해서 시스템 카탈로그에 저장한다. 이렇게 저장된 데이터를 메타 데이터(Meta Data)라 한다. (데이터의 데이터). DDL 처리기(Processor)라고도 칭한다.
DML 컴파일러 : DML 명령어를 컴파일해서 오브젝트 코드로 변환한다. 이 오브젝트 코드는 호스트 프로그래밍 언어의 컴파일러에 의해 수정된 응용 프로그램의 오브젝트 코드와 연결되어 런타임 DB 처리기에 의해 실행된다. DML 처리기(Processor)라고도 칭한다.
트랜잭션 관리자 : 데이터를 일관되게 변경하는 하나 이상의 DML 문장으로 구성된 트랜잭션(Transaction) 단위의 작업을 수행한다. 예를 들면, DB 접근 과정에서의 무결성(Integrity) 제약조건 검사, 데이터에 대한 접근 권한 검사, 여러 사용자의 요구를 동시에 처리하기 위한 병행 제어(Concurrency Control), 장애 발생 시 복구(Recovery) 작업 등을 수행한다.
런타임 데이터베이스 처리기 : 실행 시간에 DB 접근을 관리한다. 여러 가지 DB 연산(Operations)을 저장 데이터 관리자(Stored Data Manager)를 통해서 수행한다.
저장 데이터 관리자 : 디스크에 저장되어 있는 사용자 DB나 시스템 카탈로그에 대한 접근을 제어한다. 운영 체제의 기본 모듈인 File Manager와 Disk Manager를 이용한다. 파일 관리자(File Manager)는 요구된 저장 레코드가 어떤 파일의 어떤 페이지에 있는지 결정하고, 디스크 관리자(Disk Manager)는 실제로 디스크와 메인 메모리 버퍼 간의 데이터 전송을 책임진다.
e-koreatech 데이터베이스 강의 https://www.e-koreatech.ac.kr
'공부 > 데이터베이스' 카테고리의 다른 글
06. 관계 데이터 모델 (1) | 2017.11.27 |
---|---|
05. ER 모델 개요 (0) | 2017.11.22 |
04. 데이터 모델링 개요 (0) | 2017.11.21 |
02. DBMS 개요 (0) | 2017.11.15 |
01. 데이터베이스 개요 (0) | 2017.11.14 |