파일의 구조화
💼📝🔑⏰ 📙📓📘📒🎓
💼 파일구조화란?
파일 수준에서 레코드를 관리(순서 등) 하는 기법을 말한다
- 하나의 파일은 여러개의 물리적인 블록 단위가 저장
- 하나의 블록 단위는 여러개의 레코드로 저장 되어 있는 구조로 되어 있다.
- 새로운 레코드가 저장될 때 어떤식으로 블록에 저장시키는지 3가지 방법을 살펴보고 차이점을 비교해보자.
📝 힙 파일 구조
저장순서 고려 없이 파일 내 임의의 위치에 배치
- 장점
- 어느 특정 블록을 찾아서 레코드를 저장시키는 것이 아니라
- 저장할 크기가 있는 아무 블록에다가 저장하므로 저장의 속도는 가장 빠르다.
- 단점
- 어떤 특정 레코드를 검색해야 하는 경우 임의의 블록으로 저장되어 있어
- 하나씩 블록을 탐색해서 찾아야 하므로 검색 속도는 느리다.
📝 순차 파일 구조
레코드들이 탐색키 기준으로 정렬되어 블록에 저장하는 것을 말한다
- 장점
- 어떤 특정 레코드를 검색해야 하는 경우 모든 블록간 레코드의 저장 순서는 탐색키 기준으로 정렬되어 있기 때문에
- 이진 탐색을 사용하여 검색을 할 수 있으므로 힙 파일 구조처럼 하나씩 블록을 탐색해야 할 필요가 없다.
- 그렇기 때문에 검색 속도는 힙 파일 구조보다 더 빠르다.
- 단점
- 레코드를 저장해야 할 경우 레코드의 탐색키를 비교하고 어떤 블록에 넣을지 판단해야 하는 절차가 있으므로
- 바로바로 저장할 수 있는 힙 파일 구조의 저장 속도보다는 느리다.
📝 해시 파일 구조
해시 함수를 이용하는 방식으로, 해시 함수는 레코드 탐색키를 입력받아 레코드가 저장될 블록 주소를 반환하고 해당 주소에 레코드를 저장하는 방식이다.
- 특정 레코드를 검색해야 하는 경우 대부분의 경우 한번의 블록 접근으로 원하는 레코드를 찾을 수 있어
- 힙 파일, 순차 파일 구조 보다 블록 접근 측면에서 보면 검색 속도가 빠르다고 볼 수도 있겠으나,
- 문제는 해시 함수가 어떤 구조를 갖느냐에 따라 빠를 수도 있고, 느릴 수도 있다.
- 공간적인 측면에서 다른 파일 구조들과 비교 해본다면 블록 주소들을 저장해야하는 공간이 필요하므로
- 다른 파일 구조들에 비해 공간의 낭비가 있을 수 가 있다.
📝 B+-트리
- B+-트리의 구조
- 이진 검색 트리의 확장된 버전
- 루트 노드로부터 모든 단말 노드에 이르는 경로의 길이가 같은 높이 균형트리이다.
- 순서 인덱스는 파일이 커질수록 데이터 탐색에 있어서 접근 비용이 커지는 문제점을 해결하기 위해 제안
- 상용 DBMS에서도 널리 사용되는 대표적인 순서 인덱스이다.
댓글남기기