필기_1과목_5장 자료 구조의 기본 - JuNijen/Industrial-Engineer-Information-Processing GitHub Wiki

5. Database #41~45

41_정렬방식

  • 내부정렬

ㆍ소량의 데이터에 대하여 주기억장치 내에만 기억시켜서 정렬하는 방식

ㆍ종류 : 하프정렬, 삽입정렬, 버블정렬, 선택정렬, 퀵정렬, 2-Way Merge Sort, 기수정렬(=Radix Sort)

  • 외부정렬

ㆍ대량의 데이터에 대하여 보조기억장치에 기억시켜서 정렬하는 방식으로, 대부분 합병정렬(Merge Sort)기법으로 처리

ㆍ종류 : 밸런스 병합정렬, 캐스캐이드 병합정렬, 폴리파즈 병합정렬, 오실레이팅 병합정렬

#42_해싱(Hashing)

  • Hash Table이라는 기억공간을 할당하고, 해시함수(Hash Function)를 이용하여 레코드 키에 대한 Hash Table 내의 Home Address를 계산한 후, 주어진 레코드를 해당 기억장소에 저장하거나 검색작업을 수행하는 방식

  • DAM(직접접근) 파일을 구성할 떄 해싱이 사용되먀, 접근 속도는 빠르나 기억공간이 많이 요구됨

  • 검색 속도가 가장 빠름

  • 삽입, 삭제 작업의 빈도가 많을 때 유리한 방식

  • 해시 테이블(Hash Table)

ㆍ레코드를 1개 이상 보관할 수 있는 Home Bucket들로 구성한 기억공간으로, 보조기억장치에 구성할 수도 있고 주기억장치에 구성할 수도 있음

https://blog.kakaocdn.net/dn/xa68r/btqDp1BLCFN/OlxNYUROBDJNMbK8YUumLk/img.png

해시 테이블 구조

ㆍ버킷(bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수 있는 레코드 수를 의미

ㆍ슬롯(slot) : 한 개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷 형성

ㆍCollision(충돌현상) : 서로 다른 두 개 이상의 레코드가 같은 주소를 갖는 현상

ㆍSynonym : 같은 Home Address를 갖는 레코드들의 집합

ㆍOverflow : 계산된 Home Address의 Bucket 내에 저장할 기억공간이 없는 상태(버킷을 구성하는 슬롯이 여러 개일 때는 Collision은 발생해도 Overflow는 발생하지 않을 수 있음)

#43_순차 파일(Sequential File) =  순서 파일

  • 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식

  • 급여 관리 등과 같이 변동 사항이 크지 않고 기간 별로 일괄 처리를 주로 하는 경우에 적합함

  • 주로 순차 접근이 가능한 자기 테이프에서 사용됨

  • 순차 파일의 장점

ㆍ기록 밀도가 높아 기억 공간을 효율적으로 사용할 수 있음

ㆍ매체 변환이 쉬워 어떠한 매체에도 적용할 수 있음

ㆍ레코드를 기록할 때 사용한 키 순서대로 레코드를 처리하는 경우, 다른 편성법보다 처리 속도가 빠름

  • 순차 파일의 단점

ㆍ파일에 새로운 레코드를 삽입, 삭제하는 경우 파일 전체를 복사해야하므로 시간이 많이 소요됨

ㆍ데이터 검색 시 처음부터 순차적으로 하기 때문에 검색 효율이 낮음

#44_색인 순차 파일(Indexed Sequential File)

  • 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값순으로 정렬(Sort)시켜 기록하고, 레코드의 키 항목만을 모든 색인을 구성하여 편성하는 방식

  • 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM(Index Sequential Access Method)라고도 함

  • 레코드를 참조하는 경우 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 직접 참조할 수 있음

  • 일반적으로 자기 디스크에 많이 사용되며, 자기 테이프에서는 사용할 수 없음

  • 색인 순차 파일의 구성

ㆍ기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로, 각 레코드는 키 값 순으로 저장됨

ㆍ색인 구역(Index Area) : 기본 구역이 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구억, 마스터 색인 구역으로 구분할 수 있음

ㆍ오버플로우 구역(Overflow Area) : 기본 구억에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해둔 부분

① 실린더 오버플로우 구역 : 각 실린더마다 만들어지는 오버플로우 구역으로, 해당 실린더의 기본 구역에서 오버플로우된 데이터를 기록함

② 독립 오버플로우 구역 : 실린더 오버플로우 구역에 더 이상 오버플로우된 데이터를 기록할 수 없을 때 사용할 수 있는 예비 공간으로, 실린더 오버플로우 구역과는 별도로 만들어짐

#45_VSAM 파일

  • 동적 인덱스 방버블 이용한 색인 순차 파일

  • 제어 구간, 제어 구역, 순차 세트, 인덱스 세트로 구성됨

ㆍ제어 구간(Control Interval) : 데이터 레코드가 저장되는 부분

ㆍ제어 구역(Control Area) : 몇 개의 제어 구간을 모아놓은 것

ㆍ순차 세트(Sequence Set) : 제어 구역에 대한 인덱스를 저장한 것

ㆍ인덱스 세트(Index Set) : 순차 세트의 상위 인덱스

  • 기본 구역과 오버플로우 구역을 구분하지 않음

  • 레코드를 삭제하면 그 공간을 재사용할 수 있음

  • 제어 구간에 가변 길이 레코드를 쉽게 수용할 수 있음

⚠️ **GitHub.com Fallback** ⚠️