티스토리 뷰

안녕하세요 오늘은 데이터베이스의 파일과 색인에 대해 공부 해보겠습니다.



파일, 색인, 해싱의 관계


데이터베이스를 구축하는 목적은 자료를 저장하고 필요할 때 검색하는 것이다.

  • 파일
    • 데이터베이스의 자료를 파일 형태로 저장한다.
  • 색인
    • 저장된 자료를 찾기 위하여 색인을 사용한다.
    • 색인은 자료 검색을 도와주는 보조 파일이다.
  • 해싱
    • 자료를 신속하게 찾아주는 알고리즘


저장장치

저장 장치는 2가지로 나누어 진다.


1. 주 기억장치 : 전자회로로 구성된 전자장치이므로 자료 처리 속도가 빠르며, 중앙연산 처리장치(CPU)에서 1차적으로 접근하기 때문에 Primary storage라고 한다.

하지만 가격이 높기 때문에 용량을 크게 확장하기 어려워 보조 기억장치와 같이 쓴다. 그리고 전원이 꺼지면 기억된 정보가 소실된다.


2. 보조 저장장치 : 기계장치이기 때문에 전자장치인 주 저장장치보다 속도가 느리다. 보조 저장장치는 전원이 꺼져도 기억된 정보가 유지되는 특징이 있다.


3) 디스크 구조 : 디스크에서 자료는 물리 블록(Physical Block)이라는 단위로 저장된다. 디스크는 여러개의 원판(Platter)로 구성되어 축을 중심으로 고속 회전한다.


이때 자료를 읽고 쓰는 헤드는 회전하는 원반 위로 이동하면서 동심원의 트랙(Track)을 구성한다.


4) 버퍼관리기 : DBMS가 자료를 처리하려면 자료가 주기억 장치에 있어야함. 그러나 주기억 장치의 크기는 데이터베이스 자료의 크기에 비하면 매우 작아서 신속하게 자료를 접근하지 못하는 문제 발생.


버퍼관리기(Buffer manager)는 DBMS가 원하는 페이지를 디스크에서 가져와 주기억장치의 버퍼 풀(Buffer Pool)에 저장하는 일을 한다.



파일 구성


파일은 레코드로 구성되며, 레코드들은 같은 형태를 가진 속성들로 구성된다.


1) 파일구조 : 파일구조는 파일을 구성하는 레코드들이 연결되는 방식에 따라서 다양하다. 파일 구조는 길이에 따라서, 레코드들의 순서에 따라서, 레코드들이 연결되는 방식에 따라서 다양하게 구성된다.


- 고정 길이 레코드 : 한 파일의 레코드들의 길이가 동일한 경우. 레코드를 구성하는 각 속성들의 길이가 고정되어 있고, 속성들의 수가 고정되어 있으면 고정길이 레코드.


- 가변 길이 레코드 : 

- 레코드를 구성하는 속성의 길이가 다르면 레코드들의 길이가 다를 수 있다. 

- 사용하는 속성의 수가 많아지면 가변 길이가 된다. 예를 들어 사원들의 경력 파일에서 경력이 많으면 레코드의 길이가 길어진다.


2) 블록 : 디스크에서 자료의 읽기/ 쓰기 단위와 주기억 장치 사이의 전송단위



레코드의 크기보다 블록의 크기가 일반적으로 크기 때문에 한 블록에 여러개의 레코드를 작성. 레코드를 블록에 저장하다보면 마지막 레코드는 중간만 저장하고 나머지는 다음 블록에 저장할 수 있다.


!! 하나의 레코드가 두 블록에 나뉘어 있는지, 한 블록에만 있는지에 따라서 신장 레코드와 비신장 레코드로 구분된다.


1. 비신장 레코드(Unspanned Record) : 

- 레코드들을 블록에 저장할 수 있을만큼 저장하고 빈 공간을 남겨둔다. 

- 레코드가 들어갈 수 없으면 다음 블록에 저장하므로 블록 공간의 낭비


2. 신장 레코드(Spanned Record)

- 남는 여분의 공간이 있으면 레코드를 적당한 크기로 잘라서 저장.

- 디스크 공간을 낭비하지 않는다.



파일의 종류


파일의 종류는 구성에 따라서 히프 파일(Heap file), 순서 파일(Sequential file), 해시 파일(Hash file)로 나눌 수 있다.



[히프 파일]

- 순서가 없는 가장 간단한 파일.

- 레코드들이 어떤 형태로든 정렬되지 않으며, 파일의 레코드들을 검색하려면 다음 레코드를 읽어야 함.

- 추가할 때는 마지막 페이지를 읽어서 새로운 코드를 추가한 다음에 다시 기록한다.

- 검색의 경우 모든 페이지들을 읽어서 원하는 레코드인지 확인해야 하기 때문에 비효율적이다.


[순서 파일]

- 한 필드의 자료 값을 기준으로 레코드들을 정렬한 파일

- 순서필드 : 정렬의 기준이 되는 필드 ex) 순서 필드가 파일의 키라면 순서 키가 된다.

- 장점 : 레코드를 읽을 때, 부가적인 연산이 필요 없다, 검색처리가 신속하다.


[해시 파일]

- 탐색 키값을 이용하여 원하는 레코드를 신속하게 찾을 수 있도록 구성된 파일.

- 특징 : 키 값을 알면 다른 레코드 거치지 않고 직접 원하는 레코드를 찾을 수 있다.

 --> 히프 파일, 순서 파일은 처음부터 다른 레코드를 검색해야 한다.







댓글