DBMS 아키텍처
네트워크의 OSI 모델처럼 각 모듈별로 하위의 모듈에만 의존하게 끔 설계되어있음.
- 쿼리 파싱 및 최적화(Parsing & Optimization) 모듈
- SQL을 파싱하여 문법에 맞는지 검사한 후, 시스템이 실행할 수 있는 관계형 쿼리 계획(relational query plan)으로 변환하는 작업을 수행
- 사용자가 입력한 쿼리를 분석하여 쿼리 문법이 올바른지 확인한다.
- 쿼리에서 참조하는 테이블과 열등이 존재하는지 확인한다.
- 이 과정에서 오류가 발생하면 쿼리 실행 불가
- 다양한 최적화 기법을 사용하여 쿼리 실행 계획을 결정한다.
- 인덱스 사용
- 조인순서 최적화
- 서브쿼리를 최적화
- SQL을 파싱하여 문법에 맞는지 검사한 후, 시스템이 실행할 수 있는 관계형 쿼리 계획(relational query plan)으로 변환하는 작업을 수행
- 관계형 연산자(Relational Operators) 모듈
- 관계형 쿼리 계획을 사용하여 쿼리의 결과를 생성한다.
- 레코드와 파일을 다루며, 연산자들을 데이터 흐름으로 결합하여 쿼리에 대한 결과를 생성
- 관계형 데이터베이스에 데이터를 검색하고 조작하기 위한 다양한 연산자를 제공한다.
- select, union, order, where, group...
- 데이터베이스 시스템의 성능향상을 위해 최적화 기능을 수행한다.
- 인덱스를 사용하여 데이터를 검색하고 조작할 때 관계형 연산자 모듈은 최적의 인덱스를 선택하여 검색 속도를 높인다.
- 관계형 쿼리 계획을 사용하여 쿼리의 결과를 생성한다.
- 파일 및 인덱스 관리 모듈(Files and Index Management)
- 이 모듈의 목적은 논리적 파일의 페이지 그룹으로 테이블과 레코드를 구성하는 것이다.
- 데이터 파일과 인덱스 파일을 생성, 수정, 삭제 및 유지관리하는 역할을 한다.
- 데이터베이스 파일은 데이터베이스에 저장되는 실제 데이터를 담고 있는 파일이다.
- 인덱스파일은 검색 속도를 높이기 위한 인덱스 정보를 담고 있는 파일이다.
- 데이터 파일과 인덱스 파일을 물리적으로 저장하는 방법을 결정하고 그 파일에 대한 입출력을 수행한다.
- 파일에 대한 접근권한도 관리한다.
- 버퍼 관리 모듈(Buffer Management)
- 데이터베이스에서 사용되는 메모리 공간을 관리한다.
- 모든 데이터를 디스크에서 메모리로 불러오는 것을 매우 비효율적이므로 버퍼라는 작은 메모리 공간을 사용하여 디스크에서 필요한 데이터를 읽어서 메모리에 저장한다.
- 메모리에 저장된 데이터를 사용하여 작업을 수행하면서, 변경된 데이터를 버퍼에 기록하고, 변경된 내용을 디스크에 저장한다.
- 버퍼 풀은 여러개의 버퍼로 구성되어 있으며, 각 버퍼는 고정 크기의 페이지를 저장할 수 있다.
- 디스크 공간 관리 모듈
- 버퍼 관리 모듈로 부터 온 페이지 요청을 실제 물리적인 byte로 변환하는 역할
- Cross-cutting-Module
- 동시성 제어 모듈
- 여러 사용자가 데이터를 동시에 사용할 때 다른 사용자의 데이터에 대한 접근을 제어
- 복구 모듈
- 동시성 제어 모듈
'Database' 카테고리의 다른 글
| DBMS 버퍼 관리 (0) | 2023.05.27 |
|---|---|
| 디스크 공간 관리 모듈 (0) | 2023.05.08 |
| SQL (0) | 2023.04.22 |
| 데이터베이스 시스템 (0) | 2023.04.15 |
댓글