DBMS 아키텍처

Vorhandenheit ·2021년 12월 28일
1

Database

목록 보기
8/28

DBMS 아키텍처

데이터베이스와 데이터베이스 관리시스템, 데이터베이스 시스템은 각각 다른 개념이다.
데이터베이스는 저장소를 뜻하고 데이터베이스 시스템은 DB를 접근하거나 관리하는 데이터베이스 사용자이고 데이터베이스 관리시스템(DBMS)는 이를 관리하는 소프트웨어를 의미한다

아키텍처
하드웨어와 소프트웨어를 포함한 시스템구조

위에 그림은 DBMS 아키텍쳐를 보여줍니다. 각각 어떤 기능을 하는지 알아보겠습니다.

1. 쿼리 평가 엔진

쿼리 평가 엔진은 입력받은 SQL 구문을 분석하고 어떤 순서로 기억장치의 데이터에 접근할지를 결정합니다. 이때 결정되는 계획을 실행계획이라고 합니다.

(1) 파서

사용자로부터 입력받은 SQL 구문이 항상 구문적으로 올바르다는 보장이 없으므로 검사를 해주는 것, 존재하지않는 데이터나 이상한 문법을 사용할 경우 미리 떨어뜨립니다.

(2) 옵티마이저

옵티마이저의 뜻은 '최적화'입니다. 인덱스 유무, 데이터 분산 또는 편향 정도, DBMS 내부 매개변수등의 조건을 고려해서, 선택 가능한 많은 실행 계획을 작성하고, 이들의 비용을 연산하고, 가장 낮은 비용을 가진 실행 계획을 선택합니다.

(3) 카탈로그 매니저

옵티마이저가 실행계획을 세울 때 옵티마이저에 중요한 정보를 제공하는 것이 카탈로그 매니저입니다. 카탈로그란 DBMS 내부정보를 모아놓은 테이블들로, 테이블 또는 인덱스의 통계정보가 저장되어있습니다.

(4) 플랜 평가

옵티마이저가 SQL 구문에서 여러 개의 실행 게획을 세운 뒤 그것을 받아 최적의 실행 결과를 선택하는 것이 플랜 평가 입니다.

2. 버퍼 매니저

DBMS는 버퍼라는 메모리 영역을 확보해둡니다. 이 메모리 영역을 관리하는 것이 버퍼 매니저입니다.

버퍼
성능 향상을 목적으로 데이터를 저장하는 메모리를 버퍼 또는 캐시라고 부릅니다.

3. 디스크 용량 매니저

데이터베이스 프로그램 중 가장 많은 데이터를 다루는 소프트웨어입니다. 디스크 용량 매니저는 어디에 어떻게 데이터를 저장할지 관리하며, 데이터의 읽고 쓰기를 제어합니다.

4. 트랜잭션 매니저와 락 매니저

데이터베이스는 한 사람이 사용하는 게 아니라 여러사람이 동시에 데이터베이스에 접근해 사용합니다. 이떄 각가 처리는 이 트랜잭션이라는 단위로 관리됩니다.
이러한 트랜잭션 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락으르 걸어 다른 사람의 요청을 대기시키는 것이 트랜잭션 매니저와 락 매니저의 역할입니다.

5. 리커버리 매니저

데이터를 정기적으로 백업하고, 문제가 일어났을 때 복구하는 기능을 수행하는 게 리커버리 매니저입니다.

profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글