การจัดระเบียบแฟ้มแบบสุ่ม Random file organization

Preview:

DESCRIPTION

การจัดระเบียบแฟ้มแบบสุ่ม Random file organization. โดยนายบุญค้ำ จุลเจือ วิทยาลัยชุมชนตราด. นิยามและการประยุกต์. วิธีการจัดระเบียบแฟ้มเป็นแบบเข้าถึงระเบียนโดยตรง เราเรียกว่า การจัดระเบียบแฟ้มแบบสุ่ม Random file organization. - PowerPoint PPT Presentation

Citation preview

โดยนายบญคำ�า จลเจอ วทยาลยชมชนตราด

การจดระเบยบแฟมแบบสมRandom file organization

นยามและการประยกต

วธการจดระเบยบแฟมเปนแบบเขาถงระเบยนโดยตรง เราเรยกวา การจดระเบยบแฟมแบบสม Random file organization

การจดระเบยบแฟมแบบสม ไมจำาเปนตองเรยงตามไพรมารคย นอกจากนนแฟมยงมท วางเปลาอยปะปนเปนระยะ

เราสามารถหาตำาแหนงทเกบจากคาไพรมารคย

เนองจากการเขาถงแฟมขอมลแบบสม สามารถเขาถงขอมลโดยตรงไดรวดเรว ดงนนแฟมสมจงเหมาะสำาหรบงาน Interactive processing (การประมวลผลแบบโตตอบ )ตวอยางเชนระบบธนาคารออนไลน

ขอสงเกต 1) การเขาถงระเบยนในแฟมสม สามาตรงไปยงระเบยนทตองการ 2) ระเบยนแฟมแบบสมสามารถถกเรยกใช ปรบปรงคาแลวบนทก

กลบเขาไปทเดมขอไดเปรยบแฟมสมคอ สามารถเขาถงระเบยนใดๆ โดยตรง และ

สามารถเรยกใช ปรบปรงระเบยนทตองการโดยไมกระทบตอระเบยนอนๆ ในแฟมขอมล

เทคนคในการแปลงสงฟงกชน R เมอ R(key value)address มดวยกน 3 วธคอ

1.การแปลงสงโดยตรง (Direct Mapping) 2 . การคนหาในพจนานกรม (Dictionary lookup) 3. การคำานวณตำาแหนง (Address Calculation)

1. การแปลงสงโดยตรง (Direct Mapping)

โดยทวไปเรยกวา Relative Addressing Relative addressing ของระเบยนในแฟมคอ ลำาดบทของระเบยนหนงระเบยนตอหนงตำาแหนงไพรมารคยจะตองเปนตวเลขเรยงจากนอยไป

มาก และ ระเบยนตองมขนาดคงทตวอยางเชน ระเบยนแฟมสมชดหนง ไพรมารคยอยในชวง

- 09999 ดงนน จะตองสำารองพนทวาง 10, 000 ทตอ 10 , 000 ระเบยน โดยไพรมารคยตออยในชวง -09999

คาของไพรมารคยตองเปนตวเลขทตอเนองกนตลอด หรอ อาจขาดชวงไดไมเกน 30%

คาคยบางอยางไมเหมาะสมกบวธนเชน เลขทบตรผเสยภาษ เนองจากใชตวเลข 10 ตำาแหนงคาทไดจะอยในชวง -199999999

99 หรอประมาณหนงหมนลาน ตวอยางเชนบรษทหนงมพนกงาน 2 , 000 คน ตองเผอทถงหนงหมนลานท

ขอดและขอเสยสำาหรบวธ Relative addressing

ขอด 1. การแปลงสงคา R ทำาไดงายเพราะคาคยของระเบยนกคอ

คาตำาแหนงสมพทธของระเบยนในแฟมขอมล 2. สมารถประมวลผลไดดทงแบบลำาดบและแบบสมขอเสย 1. ไมสามารถใชกบเขตหลกทเปนตวอกษร 2. ไมเหมาะสำาหรบแฟมทชวงของคยกวางและมระเบยน

จรงๆเพยงเลกนอย

2 . การคนหาในพจนานกรม (Dictionary lookup)

บางเรยกแฟมสมทใชวธนวา Indexed file หรอ Index Nonsequential File

แนวคดคอการสรางตารางแฟมพจนานกรมโดยพจนานกรมนนเกบในรปของคย/ตำาแหนง และทกๆระเบยนในแฟมจะแปลงสงไดตำาแหนงทไมซำากน

โครงสรางของแฟมพจนานกรม (Dictionary structure)

ประกอบดวย 2 entries คอ key กบ address โครงสรางของแฟมอาจแบงเปนตาราง (linear/table) หรอ (nonlinear) กได

1 แบบตาราง และขอมลเรยงตามลำาดบของ key - คนหาขอมลไดรวดเรว เพราะสามารถใชวธคนหาขอมลแบบไบนาร

(binary search) ได- การแทรกหรอลบขอมลในพจนานกรมทเรยงแลวนน เสยเวลามากขอมลทไมไดเกบเรยงลำาดบของ key-ตองใชวธหาแบบลำาดบ หาไดชา-อาจใชแฮชชงฟงกหาตำาแหนงการแทรกหรอการลบขอมลไมยงยากมากนก

2. Nonlinear แฟมพจนานกรมอาจมโครงสรางแบบอนกได เชน

- Binary search tree- M-way search tree- B – tree- โครงสรางพวกนคนหาขอมลไดรวดเรว แตซบซอนกวาแบบ

Linear - การแทรกหรอลบขอมลทำาไดงาย

โครงสรางของแฟมสม

ควรเกบตำาแหนงวางจากบนกอน หรอเกบในกลมระเบยนทมคยคลายๆ กนขณะเดยวกนตองเพมขอมล Key value : address เขาไปในแฟมพจนานกรมดวย

ขอดของการคนหาในพจนานกรม

1. ตำาแหนงของระเบยนสามารถหาไดโดยไมตองผานการคำานวณ

2. ไพรมารคยทใชสามารถเปนไปตามความตองการของผใช 3. เมอทำา reorganization (ปรบปรงระเบยน)เลขท

ตำาแหนงทคกบคยในแฟมพจนานกรมเปลยนคาไปแตคยไมตองเปลยนตาม

การใชเทคนคการคนหาในพจนานกรม ในการเปลยนคาคยใหเปนตำาแหนงทนนจะมประสทธภาพกบแฟมขอมลขนาดเลก

การคำานวณตำาแหนง (addressing Calculation)

วธการคำานวณตำาแหนงโปรแกรมเมอรเปนผจดการสรางหรอกำาหนดฟงกชนเพอเปลยน R(key value) address

ถา R(k1)=R(k2) แต k1#k2 เมอ k1,k2 เปนไพรมารคยของระเบยน 2 ระเบยน เราเรยกสภาพเชนนวา Collision (ชนกน ) และ เรยก k1,k2 วา Synonyms และเรยกระเบยนทไมสามารถเกบอยในตำาแหนงทคำานวณได (home address)วา ระเบยนสวนลน (overflow record)

วธการคำานวณตำาแหนงนมชอเรยกตางๆกน ในเอกสารนขอเรยกวา แฮชชงฟงกชน (hashing function)

ปจจยทมอทธพลตอประสทธภาพของแฟมสม ทใชวธการคำานวณตำาแหนง

1. ขนาดของ Bucket 2. loading factor 3. ชดของคาไพรมารคย 4. แฮชชงฟงกชนทไช 5. วธการจดการเกยวกบระเบยนสวนลน

Bucket

ทเกบขอมลแฟมสมสำาหรบการคำานวณตำาแหนงนน ถกแบงออกเปนสวนๆ เรยกวา bucket แตละ bucket สามารถเกบระเบยนได 1 หรอมากกวา 1 ระเบยน และความยาวระเบยนอาจแปรผนไดผออกแบบเปนผกำาหนดความจของ bucket (bucket capacity) ทกๆระเบยนจะถกจบคกบ home bucket อนใดอนหนงโดยกรรมวธแฮชชงฟงกชน

ถาผออกแบบแฟมเลอก bucket ขนาดเลกแลวจะเกด overflow คอนขางสง ซงตองเสยเวลาอาน bucket เพมขน อาจตองเพมเวลาการแสวงหา Seek time

หาก bucket ความจมากจะชวยลด overflow แต bucket ใหญจะตองอานเขาไปในหนวยความจำา

แสดง Home bucket ตางๆในแฟมสม

เลขทตำาแหนงของระเบยนทผานการคำานวณเรยกวา home address ถาทเกบขอมลเปน bucket Bucket ทคำานวณไดคอ home bucket

เลขทตำาแหนงของระเบยนทผานการคำานวณเรยกวา home address

ถาทเกบขอมลเปน bucket Bucket ทคำานวณไดคอ home bucket

สวน bucket ทแยกไวตางหากสำาหรบเกบระเบยนสวนลนเรยกวา Overflow bucket

Loading factor ของแฟมขอมล คอ อตราสวนของจำานวนระเบยนทมอยในแฟมขณะทเกบตอจำานวนเนอททมใหใช (available)ในแฟม นยามอกแบบหนงloading factor = #records in file

max.#of records file can contain

Loading factor เปนการเผอทใหแฟมขอมล ถาเผอมากโอกาสจะเกดสวนลนจะลดลง

แสดงคา Loading factor และโอกาสเกด Overflow

โดยปกต loading factor แฟมสมควรอยประมาณ - 70 80. . ถามากกวานนจะตองทำา reorganization ตวอยาง ถาแฟมสมมระเบยน

4000 ตองเผอพนทอยางนอย 5000 ซงจะเกด loading factor = 80

แฮชชงฟงกชน

ทใชเปลยนคยใหเปนตวเลขทตำาแหนงนนมมากมาย แตแฮชชงฟงกชนทดจะตองใหจำานวน synonym นอยทสด และเปนฟงกชนทไมซบซอนนก

ถาระเบยนตางๆทผานฟงกชนแลวไดตำาแหนงกระจายตวสมำาเสมอ ถอวาชดของคา ไพรมารคยเขากบฟงกชนไดด แตถากระจกอยในตำาแหนงใดตำาแหนงหนงมากเกนไปกตองเปลยนใชแฮชชงฟงกชนอน

แฮชชงฟงกชนแบบตางๆ

1.วธการใชเศษเหลอจากการหาร (The Division – Remainder Method) เปนวธการแปลงคาคยของระเบยนใหเปนเลขทตำาแหนงซงอยใน home bucket ของแฟมขอมลโดยใชเฉพาะ (prime number) ทมคาใกลเคยงแตไมเกนจำานวน bucket ในแฟมขอมลมาหารคยของระเบยน เศษเหลอทไดคอตำาแหนงของระเบยน โดยเขยนฟงกชนไดดงน

F(KV) = Mod(KV/N)Rem = ฟงกชนทใชหาเศษเหลอKV = คาคยของระเบยนN = largest prime number ทมคาไมเกนจำานวน home bucket ของแฟมขอมล

ตวอยางการคำานวณ

สมมตแฟมมระเบยน 10, 000 ระเบยน คยอยในชวง - 00000009999999 เตรยมเนอท

12000 เพอลดโอกาสการเกด overflow ตำาแหนงระเบยนมเลขในชวง - 0000011999 ตวหารทเปน prime number จะตองไมเกด 11999 นนคอ 11987

การคำานวณหาตำาแหนง home bucket ของระเบยนทมคย=0235671

วธคำานวณ เอาคาคย 0235671 หารดวย 11987 ได 19 เศษ 7918

7918 นคอตำาแหนงของ home bucket ของระเบยน 0235671

2. การวเคราะหตวเลข (Digit Analysis Method)

ถาความถของเลขตำาแหนงใดมการกระจายตวของตวเลข - 09 อยาสมำาเสมอ (Uniform distribution) จะใช

ตำาแหนงเหลานมาพจารณา ตวอยางในตารางตำาแหนง 2 ,3 , 5 มการกระจายตวอยางสมำาเสมอ

3 . Mid-square Method

เปนการเอาคาคยของระเบยนมายกกำาลง 2 แลวเลอกตวเลขในชองกลางมาเปน Relative address โดยเลอกใหกบจำานวนหลกของ address ทตองการ

4 . Folding

โดยการแบงคยออกเปนสวนๆ ใหแตละสวนเทากบจำานวน หลกของaddress ทตองการ เอาแตละสวนพบเขาหากน แลวบวกกน ผลบอกคอตำาแหนงทตองการ

สมมตระเบยนทตองการหาคย = 123456789 ตองการ 4digit-address

แสดงการใช folding หาตำาแหนง

5 . Different Radix

โดยการเปลยนคาคยของระเบยน ซงเปนเลขจากฐานสบไปเปนฐานอน เชนคย 123456 อาจเปลยนเปนฐาน

11 เพอหาตำาแหนง 4 หลก ไดดงน(1*115)+(2 * 1 1 4)+(3 * 1 1 3)+(4 * 1 12)+(5 * 1 1 1)+6 = 194871 เลอก 4971 เปนตำาแหนงทอยระเบยน

การจดการปญหาระเบยนสวนลน

1. Open addressing คอเกบระเบยนปกตและระเบยนสวนลนปะปนกนไป

2. Separate overflow แบงแฟมออกเปน 2 สวน คอเกบ home bucket และ overflow ออกจากกน

เทคนคเพอจดการปญหา Collision (การชนกน)

1. Linear Probing โดยเกบระเบยนสวนลนไวตำาแหนงถดจาก home bucket ถาระเบยนถดไปไมวางกจะถาถดไปจนถงระเบยนสดทาย หากไมพบ กจะเรมหาทจดเรมตนไปเรอยๆ จบมาบรรจบ home bucket อกครงกแสดงวาแฟมเตม

2. Double Hashing ใชแฮชชงฟงกชนคำานวณหาคาจะไดคา C แลวใชคา C บวกกบ home address เดมจะไดเลขทตำาแหนง ถาเกด Collision อยกจะบวก C ดวยตำาแหนงลาสดจะไดตำาแหนงใหม ทำาแบบนไปเรอยๆจนไดตำาแหนงทตองการ

3. Synonym Chaining เปนการเพม link field ในทกๆ home bucket และ overflow bucket ซง link field จะเปนตวเชอม synonym เขาดวยกน

ลกษณะงานทเหมาะสมกบแฟมสม

1. งานแบบออนไลน 2. ตองการปรบปรงแฟมขอมลหลายๆ ชดพรอมๆกน 3. มอตราการเปลยนแปลงตำา รายการปรบปรงในแตละรอบ

มนอย 4. ตองการคำาตอบรวดเรวตวอยางระบบงานทใชแฟมแบบสม 1. ระบบธนาคารออนไลน2.ระบบการจองทนงของสายการบน

คำาถาม

1. จงเปรยบเทยบขอแตกตางระหวางแฟมสมกบแฟมลำาดบ 2. เทคนคการหาตำาแหนงของแฟมสมมกแบบ อะไรบาง 3. จงอธบายความหมายและวธของแฮชชงฟงกชน 4. จงเปรยบเทยบการจดการระเบยนสวนลน linear

probing , double hashing , synonym chaining 5. จากแฮชชงฟงกชนแบบ folding หากระเบยนท

ตองการหามคย 139971688 ตองการ 4digit-address จงหาตำาแหนงของระเบยน

Recommended