전공 과목 이수2👨‍💻/데이터베이스관리

파일 내 레코드 구조, 데이터 사전 저장장치

천숭이 2021. 10. 5. 21:38

테이블은 칼럼(열)과 로우(행)으로 구성되어 있다 -> 추상적인 개념.

파일로 가게되면 행이 레코드가 된다.

레코드는 여러개의 필드로 구성되어 있는데,

열이 레코드에서는 필드가 된다.

 

# 파일 구성 방법

테이블은 레코드들의 집합

힙 파일 구조 : 공간이 있으면 배정

순차파일 구조 : 주어진 키 (검색키)값에 따라 연속적인 순서로 배정

                       검색하는것은 조건이 적용되는 것. 이때, 조건값이 검색키.

                       정렬은 검색/시행착오 과정을 줄여줌

해싱파일 구조 : 속성들을 해시함수에 적용하고 파일 내 위치를 정함. 시행착오 x

                       ex 레코드 구성) "홍길동" | 컴공 | 2019 | 3.8 일 때,

                       예시의 레코드를 찾으려면  해시함수H("홍길동") 한다.

                      H("홍길동")=57일때, 파일 내 57번째에는 홍길동의 레코드가 있다. 

 

 

# 순차파일 구조

* 순차파일 구조은 대략적인 위치만을 가지고 찾아가서 시행착오가 존재하지만,

해싱파일 구조는 있으면 위치를 반환하기에 시행착오가 없다. *

 

- 검색키   ->   특정 속성'들' (속성들을 조합할 수 있기에 속성) (반드시 주키다 슈퍼키일 필요는 없음)

속성 = 열 => field(필드)

(속성과 열은 추상적)

포인터로 순서를 구축

레코드들이 포인트로 다음 레코드를 지목하면서 순서를 가진다. 

 

# 순차파일 삽입

- 빈공간에 삽입

- 빈공간이 없다면 포인터로 연결된 사이에 낄 수 없으므로, 새로운 공간을 만들 후 삽입.

- Overflow 블록에 배정 -> 물리적 순차성을 위한 재구성 (Key Rebuilding) -> 비용 발생하지만, 성능좋아짐

 

# 다중테이블 클러스터링 파일 구조

- 하나의 블록에 2개 이상 테이블의 레코드를 저장하기

 - natural join으로 두개 이상 테이블의 레코드를 저장하면 탐색 효율이 좋아진다.


Data dictionary, System Catalog

# 데이터베이스 버퍼

- 목적 ) 디스크와 주기억장치 사이의 블록 전송 수 최소화하기!

- 최소화 방법) 주기억 장치에 많은 블록 유지 (접근회수 줄이기위해)

- 주기억장치에 블록 저장하기 위한 공간은 버퍼 (Buffer)

 

# 버퍼 관리자 (Buffer Manager)

- 디스크로부터 블록 가져오려고 할때, 버퍼 관리자 호출

(1) read 하는 경우

(2)-1 write 하는 경우

미러링방식 적용

(2)-2 DB Buffer 꽉 찼을 경우

디스크에서 M.M으로 넘어올 때 DB Buffer가 꽉 찼을 경우, 원래 있던 자리를 꿰찬다. 이때 어떤 자리를 정할지 전략을 짜야한다. -> (3) 버퍼교체전략

 

(3) 버퍼 교체 전략 (Replacement strategy)

- LRU 제일 적게 사용된 자리에 대체.

  이 때, 붙박이 블록 (pinned block)은 제외.

- 블록 강제 출력

블록강제출력 : 쉬운 복구를 위한

 

- MRU : 가장 최근에 사용된 자리에 대체

 

 

** OS에서는 블록단위로만 데이터를 처리한다.      

row단위로 교체전략을 정교하게 설정해야한다. **

'전공 과목 이수2👨‍💻 > 데이터베이스관리' 카테고리의 다른 글

Transaction 트랜잭션  (0) 2021.12.06
인덱스 정리  (0) 2021.11.05
인덱스  (0) 2021.10.13
파일 구조  (0) 2021.10.04
RAID  (0) 2021.10.04
저장장치  (0) 2021.09.15