목록Computer Science/File Structure (9)
엔지니어가 되고 싶은 공돌이

9. 1. Algorithm - 디스크 안에 있는 파일들을 정렬하기 위해서 여러 알고리즘을 사용할 수 있습니다. 파일을 정렬하기 위해서 디스크 안에 있는 파일을 메모리 안으로 읽어와 판독을 진행하고, 정렬한 뒤, 정렬한 파일들을 디스크에 기록합니다. 1) Key를 정렬하기 위해서 Heap Sort를 사용합니다. Key들이 메모리 안에 로드되는 동시에 정렬을 수행할 수 있습니다. 2) 용량이 큰 파일들을 정렬하기 위해서 External Sort를 사용합니다. a) Secondary Storage에 있는 정렬하고자 하는 파일들을 여러 개의 Block으로 나눕니다. b) 각각의 Block들을 Main Memory로 읽어와서 Block단위로 Sorting을 진행하고, 다시 S..

8. 1. Index - Definition: Key List와 Reference Field를 포함한 Table. - Index. 1) Index File, Data File을 따로 만들어서 관리하며, Data File의 Address of Record를 Index File의 Reference Field에 저장하여 Index File에서 Key Search를 통해 Data File을 찾을 수 있게 합니다. 2) Index File은 정렬되어 있지만(Data가 삽입, 삭제시에도 정렬), Data File은 정렬하지 않아도 됩니다. 3) 하나의 Index Entry는 하나의 Record Entry를 관리합니다. 4) Record를 더 효율적으로 관리하고, Recor..

7. 1. Placement Strategies - Placement Strategies(배치 전략들): 어떤 Record에 데이터를 넣을까? 결정하는 알고리즘. 1) First-Fit Placement Strategy(최초 적합) : 빈 공간(Available List)을 보면서 충분히 큰 공간을 찾아, 처음부터 탐색하여 가능한 한 최대한 앞에 Record를 삽입. 2) Best-Fit Placement Strategy(최적 적합) : 빈 공간(Available List)을 크기에 따라 Ascending Order로 정리하고, 삽입할 Record를 포함할 정도로 큰 것 중에서 제일 작은 Record Slot에 삽입. 3) Worst-Fit Placement Starteg..

6. 1. Data Compression - 저장공간을 절약하고, 전송시간을 단축시키는 방법에는 무엇이 있을까? 1) Run-Length Encoding - Definition: 반복되는 데이터를 압축시켜서 ff, value, count로 표현. ex) 15 16 17 17 17 17 17 17 17 17 18 19 20 20 20 20 20 20 20 21 22. Compression -> 15 16 ff 17 08 18 19 ff 20 07 21 22. - 무분별하게 사용하게 되면, 원래의 데이터보다 더 커질 수 있습니다. 2) Huffman Code - Definition: 파일 내에서 문자마다 출현빈도가 다르다는 사실에 착안하여, 빈도가 높은 문자에는 적은 자리수의 코드를,..

5. 1. Record Search - 저장된 레코드에서 필요한 레코드를 어떻게 찾을 수 있을까? 1) Sequential Search -> O(n) - Definition: 원하는 레코드를 찾기 위해 처음부터 검색. - 성능평가방법: Read 함수의 호출 수로 측정. (메모리 내에서 비교시간은 무시합니다.) - Non Blocking과 Blocking 2가지 방법이 있습니다. - Blocking이 Seek Time을 줄여서 성능개선을 가져오지만 두 방법 모두 검색에 소요되는 시간은 O(n)입니다. - Pros: 프로그래밍이 쉽고, 파일의 형태를 단순하게 할 수 있다. - Record의 개수가 적은 파일들에서 사용합니다. 2) Direct Access -> O(1) - Definition: 원하는..

4. 1. Field and Record - 데이터를 입력할 때, 연속적인 바이트 형태로 저장할텐데 어떻게 데이터를 구별할 수 있을까? Field와 Record로 구분. - Field: 파일을 구성하는 요소 중에서 가장 작은 단위. 1) 고정길이필드(Fixed Length Fields): 각 Field의 길이를 고정시키고, Field 마다 데이터를 넣습니다. 매우 간단하지만, 공간의 낭비가 심합니다. 2) 길이 지시자(Length Indicator): Field 앞에 필드의 길이를 저장합니다. 3) 구분자(Delimiter): | 와 같은 구분문자를 사용하여 필드를 구별합니다. 4) 키워드(Keyword): 각각의 필드를 “Keyword = field Value”의 형태로 작성합니다. - 1..

3. 1. Computer Storage Devices 1) Magnetic Tape: 플라스틱으로 만든 테이프 위에 자성 물질을 바른 테이프. 옛날에 주로 사용하였으며, 순차접근만 가능하고 속도가 느려서, 데이터 백업용으로 주로 사용. 2) CD: Pit(구멍)와 Land(평평한 면)으로 구성되어, 빛을 쏘아서 돌아오는 빛의 세기를 측정하여 데이터를 읽음. Pit에서는 빛이 분산되어 세기가 약해집니다. CD에서 DVD로, DVD에서 Blu-Ray Disk로 발전하였습니다. 3) USB Flash Drive: USB는 컴퓨터 단자와 연결하는 Connector, 데이터를 저장하고 읽는 Flash Memory, Connector-Flash Memory 사이에..

2. 1. Structure of Hard Disk Drive - Track Storage: Sectors Per Track X Sector Storage. - Sector Storage는 주로옛날 HDD는 512Byte, CD or DVD는 2048Byte, 최신 HDD는 4096Byte입니다. - Cylinder Storage: Tracks Per Cylinder X Track Storage. - Disk Storage: Number of Cylinders X Cylinder Storage. 2. 2. Cluster - File Manager: 파일의 논리적인 부분을 물리적 위치로 대응시키는 역할. 파일을 Cluster로 간주. - Cluster:..

1. 1. a Physical File and a Logical File - Physical File: 컴퓨터의 기억장치에 저장된 바이트들의 연속. - Logical File: OS의 도움을 받아서 DB나 다른 데이터 구조에 저장된 가상의 파일. - 동일한 데이터를 어떤 관점에서 보냐의 차이입니다. Physical은 파일매니저, Logical File은 Application. 1. 2. File I/O- File을 여는 방법은 이미 존재하는 파일을 여는 방법과 새로운 파일을 생성하는 방법 2가지가 있습니다. - File을 닫는 것은 그 파일을 기록하기 위해 사용했던 버퍼가 비워지고, 기록한 모든 것이 파일에 기록됨을 보장한다는 뜻입니다. - Cfp = fopen(filename, mode);fcl..