บทที่ 5 Organizing Files for Performance

หัวช้อที่กล่าวถึงมีดังนี้

  1. Data Compression เป็นเทคนิคการทำให้แฟ้มข้อมูลขนาดใหญ่ เป็นแฟ้มขนาดเล็ก (บีบอัด)
  2. Reclaming Space in Files นำ Record ที่ Delete กลับมาใช้ประโยชน์ได้อย่างไร
  3. An Introduction to Internal Sorting and Binary Search การเรียงลำดับข้อมูล
  4. Key sorting เป็นเทคนิคการ Sort ใน Ram

5.1 Data Compression

เป็นเทคนิคที่เราจะ Encode แฟ้มข้อมูลขนาดใหญ่ ให้มีขนาดเล็กลง ซึ่งมีหลายเทคนิค

เหตุผลที่ต้องทำ Data Compression

  1. ใช้เนื้อที่ในการเก็บข้อมูลน้อยลง ค่าใช้จ่ายที่ต้องเสียไปในการบันทึกข้อมูลก็จะน้อยลง
  2. ทำให้การโอนถ่ายข้อมูลในระบบเครือข่ายได้เร็วขึ้น
  3. ทำให้การประมวลผลกับแฟ้มข้อมูลได้เร็วขึ้นเพราะใช้เวลาในการ Access time น้อยลง

วิธีการทำ Data Compression

  1. Using Different Notation

ข้อเสีย ? ข้อมูลที่เก็บไม่สื่อความหมายกับมนุษย์ ต้องเขียนโปรแกรมแปลง เช่น 010101 แทน OK เป็นต้น

? ค่าใช้จ่ายที่ต้องเสียให้กับการใช้เทคนิคนี้

 

  1. Suppressing Repeating Sequences

ตัวอย่างแบบฝึกหัดท้ายบทหน้า 219

A. 01 01 01 01 01 01 01 01 01 01 02 03 03 03 03 03 03 03 04 05 06 06 07

สามารถแทนด้วยการ run-length encoding ได้ดังนี้

FF 01 09 02 FF 03 07 04 05 FF 06 02 07

B. 01 01 02 02 03 03 04 05 06 06 05 05 04 04

FF 01 02 FF 02 02 FF 03 02 04 05 FF 06 02 FF 05 02 FF 04 02

(Code FF แทนในกรณีที่ข้อมูลช่วงนั้นๆ ซ้ำติดต่อกันมากกว่า 1 และบอกข้อมูลอะไรที่ซ้ำ, บอกจำนวนที่ซ้ำ

  1. Assigning Variable-Length Codes

 

ตัวอย่าง

Letter

a

b

c

d

e

f

g

Probability

0.4

0.1

0.1

0.1

0.1

0.1

0.1

Code

1

010

011

0000

0001

0010

0011

หาค่าความน่าจะเป็นแล้วเรียงจากมากไปน้อย จากนั้นจับตัวล่างบวกกัน

Letter

Prob.

Code

1

2

3

4

5

                         

a

0.4

1

0.4

1

0.4

1

0.4

1

0.4

1

0.6

0

b

0.1

010

0.2

001

0.2

000

0.2

01

0.4

00

0.4

1

c

0.1

011

0.1

010

0.2

001

0.2

000

0.2

01

   

d

0.1

0000

0.1

011

0.1

010

0.2

001

       

e

0.1

0001

0.1

0000

0.1

011

           

f

0.1

0010

0.1

0001

               

g

0.1

0011

                   

ข้อมูลเดิมคือ abde หลังจาก encode แล้ว 101000000001

หรือ dacab หลังจาก encode แล้ว 000010111010

  1. Irreversible Compression Technique
  1. Compression in OS

5.2 Reclaming Space in Files

การทำงานกับไฟล์มีดังนี้

5.2.1 Record Deletion and Storage Compaction

5.2.2 Delete Fixed-Length Records for Reclaiming Space Dynamically

การ Implement

5.2.3 Delete Variable-Length Records

ข้อแตกต่างระหว่าง Internal และ External fragmentation

5.2.4 Storage Fragmentation

เป็นกลยุทธ์ที่ใช้ในการแก้ปัญหา External

    1. รวมเนื้อที่ว่างที่อยู่ใกล้กัน รวมกันให้มีขนาดใหญ่ขึ้น
    2. เอา Record ใหม่ไปไว้ที่ไหนดี? ที่ทำให้เกิด fragment น้อยที่สุด

5.2.5 Placement Strategies

เทคนิคที่ใช้จัดการกับ Record ใหม่ ที่จะเอาไปเก็บที่ Storage

เลือกว่าจะนำ Record ใหม่ไปวาง ณ ตำแหน่งไหนของที่ว่าง เพื่อให้เกิด fragment น้อยที่สุด มีวิธีการดังนี้

    1. First fit หาตำแหน่งว่างตำแหน่งแรกแล้วเก็บ Record ใหม่ ซึ่งจะมีการตรวจสอบขนาด fragment ว่าใหญ่พอหรือไม่ ไม่สนใจขนาดที่ใหญ่กว่า ถ้าพบที่แรกที่สามารถใส่ได้จะนำ record ใหม่ไปใส่เลย
    2. Best fit หาตำแหน่งที่พอดีกับ Record ใหม่มากที่สุด จะมีการเลือกหรือเข้าไปค้นใน avail ว่ามีตำแหน่งไหนบ้างที่เหมาะสม และเนื้อที่พอดีที่สุดที่จะนำ record ใหม่ไปวาง เพื่อให้เหลือ fragment น้อยที่สุด
    3. Worst fit หาตำแหน่งที่ว่างที่ใหญ่ที่สุดที่จะใส่ record ใหม่ได้ เพื่อจะได้เหลือ fragment มากเพื่อให้ใส่ record ต่อๆ ไป ซึ่งช่วยลด external fragmentation

 

 

 

 

ตัวอย่าง ถ้าเอาข้อมูลที่มี Size = 55 มาใส่

Size

กรณีของ Best fit จะทำให้เกิดการ sort ข้อมูลจากน้อยไปมาก

 

กรณีของ Worst fit จะทำให้เกิดการ sort ข้อมูลจากมากไปน้อยไป

 

กรณีของ First fit

 

  1. An Introduction to Internal Sorting and Binary Search

Binary Search ใช้หลักการ

ต้องการหาค่า 15

2 6 7 10 12 15 17 25 26

á á á

ครั้งที่  low=1 mid=5 high=9

low mid

ƒ high

หา  mid = (low + high)/2

ƒ หาจนเจอ low=high=mid จึงจะได้ค่า key

Binary Search Versus

 

 

สัญลักษณ์ ë xû = floor แทนเลขจำนวนเติมที่มีค่ามากกว่าหรือเท่ากับ real number

สัญลักษณ์ é xù = ceiling แทนเลขจำนวนเติมที่มีค่าน้อยกว่าหรือเท่ากับ real number

5.4 Key Sorting

Keynodes à Key

à RRN (Relative Record Number)

Indexing to Provide Access by Multiple keys

 

 

 

 

 

 

 

 

Improving the secondary index structure inverted list

การจัดโครงสร้างของ secondary index เพื่อให้เปลืองเนื้อที่น้อยที่สุด

และกรณีที่มี recode ใหม่จะต้องเข้าไป Add ที่ secondary index ซึ่ง