CS/DB

[DB] 물리적 데이터베이스 설계

겜도리도리 2022. 5. 16. 01:14
반응형

물리적 데이터베이스 설계

논리적인 설계의 데이터 구조를 보조 기억장치상의 화일(물리적인 데이터 모델)로 사상한다.

예상 빈도를 포함하여 데이터베이스 질의와 트랜잭션을 구분한다.

데이터에 대한 효율적인 접근을 제공하기 위하여 저장 구조와 접근방법들을 다룬다.

특정 DBMS의 특성을 고려하여 진행된다.

질의를 효율적으로 지원하기 위해서 인덱스 구조를 적절히 사용한다.

보조 기억 장치

사용자가 원하는 데이터를 검색하기 위해서 DBMS는 디스크 상의 데이터베이스로부터 사용자가 원하는 데이터를 포함하고 있는 블록을 읽어서 주기억 장치로 가져온다.
데이터가 변경된 경우에는 블록들을 디스크에 다시 기록한다.
블록 크기는 512바이트부터 수 킬로바이트까지 다양하다. (전형적인 블록 크기는 4,096바이트)
각 화일은 고정된 크기의 블록들로 나누어져서 저장된다.
디스크는 데이터베이스를 장기간 보관하는 주된 보조 기억 장치이다.

자기 디스크

디스크는 자기 물질로 만들어진 여러 개의 판으로 이루어진다.
각 면마다 디스크 헤드가 있다.
각판은 트랙과 섹터로 구분된다.
정보는 디스크 표면 상의 동심원(트랙)을 따라 저장된다.
여러 개의 디스크 면 중에서 같은 지름을 갖는 트랙들을 실린더라고 부른다.
블록은 한 개 이상의 섹터들로 이루어진다.
디스크에서 임의의 블록을 읽어오거나 기록하는데 걸리는 시간은 탐구 시간(seek time), 회전 지연 시간(rotational delay), 전송 시간(transfer time)의 합이다.

 

자기 디스크

버퍼 관리와 운영 체제

디스크 입출력은 컴퓨터 시스템에서 가장 속도가 느린 작업이다. 따라서 입출력 횟수를 줄이는 것이 DBMS의 성능을 향하는데 매우 중요하다.
가능하면 많은 블록들을 주기억 장치에 유지하거나, 자주 참조되는 블록들을 주기억 장치에 유지하면 블록 전송 횟수를 줄일 수 있다.
버퍼는 디스크 블록들을 저장하는데 사용되는 주기억 장치 공간이다.
버퍼 관리자는 운영 체제의 구성요소로서 주기억 장치 내에서 버퍼 공간을 할당하고 관리하는 일을 맡는다.
운영 체제에서 버퍼 관리를 위해 흔히 사용되는 LRU 알고리즘은 데이터베이스에서는 항상 우수한 성능을 보이지는 않는다.

버퍼 관리

디스크 상에서 화일의 레코드 배치

릴레이션의 애트리뷰트는 고정 길이 또는 가변 길이의 필드로 표현된다.
연관된 필드들이 모여서 고정길이 또는 가변길이의 레코드가 된다.
한 릴레이션을 구성하는 레코드들의 모임이 화일이라고 부르는 블록들의 모임에 저장된다.

화일과 블록과 레코드

한 화일에 속하는 블록들이 반드시 인접해 있을 필요는 없다.
인접한 블록들을 읽는 경우에는 탐구 시간과 회전 지연 시간이 들지 않기 때문에 입출력 속도가 빠르므로 블록들이 인접하도록 한 화일의 블록들을 재조직할 수 있다.

블록 연결

반응형

'CS > DB' 카테고리의 다른 글

[DB] 다단계 인덱스  (0) 2022.05.20
[DB] 화일 조직  (0) 2022.05.19
[DB] ER 스키마를 관계 모델의 릴레이션으로 사상하기  (1) 2022.05.15
[DB] ER 모델  (0) 2022.05.14
[DB] 데이터베이스 설계 개요  (0) 2022.05.13