본문 바로가기
Database

DBMS 아키텍처

by creatingeveryday 2023. 5. 6.

DBMS 아키텍처

네트워크의 OSI 모델처럼 각 모듈별로 하위의 모듈에만 의존하게 끔 설계되어있음.

  • 쿼리 파싱 및 최적화(Parsing & Optimization) 모듈
    • 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

댓글