31
โโโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโโโโโโโ กกกกกกกกกกกกกกกกกกกก กกกก Random file organization

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bucket

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

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

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

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

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

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

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

เลขทตำาแหนงของระเบยนทผานการคำานวณเรยกวา 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 เปนการเผอทใหแฟมขอมล ถาเผอมากโอกาสจะเกดสวนลนจะลดลง

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

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

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

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

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

แฮชชงฟงกชน

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 . Mid-square Method

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

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

4 . Folding

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

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

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

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

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

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 เปนตำาแหนงทอยระเบยน

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คำาถาม

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

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

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