본문 바로가기

Programming/DataBase System

Chapter1 - 데이터 저장과 질의

  • 데이터 저장과 질의


데이터베이스 시스템은 여러 모듈로 구성되며, 이들 각 모듈들이 데이터베이스의 여러 책무들을 나누어 맡는다. 데이터베이스 시스템은 기능적인 관적에서 봤을 때, 크게 두 부분으로 나누어지는데 저장장치 관리자질의 처리기가 그것이다.
    데이터베이스는 본질적으로 대량의 기억 공간을 필요로 하므로 저장장치 관리자의 역할은 매우 중요하다. 기업의 데이터베이스의 용량은 보통 GB(giga byte)가 소요되고 크게는 TB(tera byte)가 소요된다. 1GB 는 1000MB(mege byte, 실제로는 1024)이고, 1TB(tera byte)는 100만 MB이다. 컴퓨터의 메인 메모리는 이렇게 큰 용량의 정보를 저장할 수 없기 때문에 정보는 디스크에 저장된다. 데이터는 필요할 때마다 디스크 저장 장치와 메인 메모리 사이에서 이동된다. 디스크로부터 데이터를 가져오거나 디스크로 정보를 보내는 작업은 중앙 처리 장치의 속도에 비해 상대적으로 매우 늦기 때문에, 데이터베이스 시스템은 디스크와 메인 메모리 사이의 데이터이동이 최소화 되도록 데이터를 구조화한다.
    데이터베이스가 데이터에 접근하는 과정을 단순화하고 효율적으로 만드는 역할을 하는 질의 처리기 또한 중요하다. 질의처리기는 데이터베이스 사용자들이 뷰 단계에서 일을 하는 동안 시스템의 물리적 단계에서의 자세한 구현내용을 이해하지 않아도 되며, 좋은 성능을 얻을 수 있도록 한다. 논리적 단계에서 비절차적 언어로 작성된 갱신 요구와 질의를 물리적 단계의 효율적인 일련의 연산으로 변환하는 것은 데이터베이스의 책임이다.



  • 저장장치 관리자

저장 장치 관리자(storage manager) 는 데이터베이스에 저장된 하위 단계의 데이터와 시스템의 응용 프로그램 및 질의 사이의 인터페이스를 제공하는 데이터베이스 시스템의 요소이다. 저장 장치 관리자는 파일 관리자(file manager)와 상호 작용하는 책무가 있다. 원시 데이터는 운영체제상의 파일 시스템 명령으로 변환한다. 그러므로 저장 장치 관리자는 데이터베이스 내의 데이터를 저장하고 검색하며, 갱신하는 책임이 있다.
    저장 장치 관리자의 구성 요소는 다음과 같다.


  • 권한과 무결성에 관한 관리자 : 무결성 제약조건에 만족하는지 검사하고, 데이터에 엑세스하는 사용자의 권한을 확인한다.
  • 트랜잭션 관리자 : 시스템이 고장이 나도, 데이터베이스가 일관성 있는 정확한 상태를 유지하도록 보장하며, 동시에 실행되는 트랜잭션들이 충돌 없이 잘 이루어지도록 보장한다.
  • 파일 관리자 : 디스크 공간의 할당과 디스크 상에 저장된 정보 표현을 위해 자료 구조를 관리한다.
  • 버퍼 관리자 : 디스크로부터 메인 메모리로 데이터를 인출하는 과정, 메인 메모리에서 캐시로 보낼 데이터를 결정하는 것에 대한 책임이 있다. 데이터베이스에서 이 버퍼 관리자의 역할은 매우 중요한데, 이는 메인 메모리보다 훨씬 큰 데이터베이스 내의 데이터를 메인 메모리에서 처리가능하게 하는 역할을 버퍼관리자가 하기 때문이다.

물리적 시스템 구현의 일부로서, 저장 장치 관리자는 몇몇 데이터 구조를 구현한다.


  • 데이터 파일 : 데이터베이스 자체를 저장한다.
  • 데이터 사전 : 데이터베이스의 구조에 관한 메타 데이터를 저장한다. 특히, 데이터베이스의 스키마를 여기에 저장한다.
  • 색인 : 특정한 값을 가지고 있는 데이터 항목에 빠르게 액세스하기 위한 것이다. 이 책에서의 색인처럼 데이터베이스 인덱스는 특정한 값을 가지는 데이터 항목을 지정하는 포인터를 제공한다. 예를 들면 특정한 ID 혹은 특정한 이름을 가지는 교수의 정보들을 찾는 색인을 사용할 수 있다. 해싱은 모든 경우는 아니지만 좀 더 빠른 색인 방법이다.



  • 질의 처리기

질의 처리기는 다음과 같은 구성 요소를 가진다.


  • DDL 인터프리터(DDL interpreter) : DDL 문을 해독하여 데이터 사전 내에 기록한다.
  • DML 컴파일러(DML complier) : 질의어 내의 DML 문을 질의 평가 엔진이 이해할 수 있는 하위 단계 명령어로 구성된 질의 수행 계획으로 바꾼다. 징릐는 보통 여러 방안의 질의 수행 계뢱으로 변환될 수 있으며, 각 질의 수행 계획은 같은 결과를 반환한다. DML 컴파일러는 또한 질의 최적화(query optimizaion)를 수행한다. 즉, 여러 질의 수행 계획 중 가장 낮은 비용의 계획을 선택해 준다.
  • 질의 평가 엔진(query evaluaion engine) : DML 컴파일러가 생성한 하위 단계 명령을 실행한다.