آموزش ذخیره و بازیابی اطلاعات - درس نهم

30
ادرس فره درای نکات مطرح شدر مبنید ها ب این اس« ابیره و بازی آموزش ذخیعات اط» یه ته شده است. جعه نماینک زیر مران آموزش به لی در مورد ای بیشترعاترای کسب اط ب یدfaradars.org/fvsft106 آموزش ذخیره وابی بازیعات اطfaradars.org/fvsft106 ﻓﺮادرسFaraDars.org

Upload: faradars

Post on 16-Apr-2017

52 views

Category:

Education


7 download

TRANSCRIPT

Page 1: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

این اسالید ها بر مبنای نکات مطرح شده در فرادرس

« اطالعاتآموزش ذخیره و بازیابی »

.شده استتهیه

یدبرای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایfaradars.org/fvsft106

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

فرادرس

FaraDars.org

Page 2: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

:مدرس

فرشید شیرافکن

دانشگاه تهران دکتری دانشجوی (بیو انفورماتیک: دکتری( )کامپیوتر نرم افزار: کارشناسی و کارشناسی ارشد )

ذخیره و بازیابی اطالعاتساختار فایل مستقیم: درس نهم

2

فرادرس

FaraDars.org

Page 3: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

3

.دنمي باشبه ساختارهاي قبلي وابسته ، (Hashedدرهم یا )فایل مستقیم ساختار

. شودبه ركوردها از طریق آدرس هر ركورد تامین ميمستقیمدستیابي استراتژي

رفتده در نظدر كلیددركدورد، يفیلددهاهنگام ایجاد فایل در لود اولیه، یكي از در . مي شود

معرفی ساختار مستقیم

.دهدتابعي كه عمل تبدیل كلید به آدرس را انجام مي: درهم ساز تابع

. د ردانمي بعد از آنكه مقدار كلید به سیستم فایل داده شد، سیستم پردازشي را روي آن انجام داده و آدرسي كه ركورد باید در آن قرار یرد را بر

فرادرس

FaraDars.org

Page 4: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

4

لود فاکتور

m

n : (یا مساوي یك كوچكتر )لود فاكتور

. مي باشدm-1تا0از در این ساختار داراي یك فضاي آدرس فایل

45.011

5

m

n n : شدهدرج هاي ركوردتعداد

فرادرس

FaraDars.org

Page 5: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

5

. مي باشدmباقیمانده تقسیم صحیح كلید به عدد اول نزدیك به كه آدرس، است یكي از توابع درهم ساز

: باشد ، چون مي 3088برابر 5000..1در فضاي آدرسي 12345678كلید طو نمونه آدرس حاصل از به

12345678 mod 4997 = 3088

.(باشدمي 5000عدد اول نزدیك به ، 4997عدد )

تابع تقسیم

فرادرس

FaraDars.org

Page 6: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

6

. داشتواهیم خ(M-1از صفر تا )را باكت بندي كنیم، به جاي آدرس حفره، آدرس باكت حفره mفایل مستقیم با ا ر

fBK

fBK

mM

مزایای باکت بندی

تسهیل در حل مشكل تصادف-1

كوتاهتر شدن طول آدرسها-2

غیرامكان ایجاد فایل مستقیم با ركوردهاي با طول مت-3

باکت بندی

باكتهر در تعداد حفره ها : فرادرس

FaraDars.org

Page 7: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

7

.به ازاي دو كلید متفاوت، آدرس یكساني تولید شود، درهم سازرخ مي دهد كه پس از اعمال تابع وقتي

. هرچه تعداد ركوردهاي تصادفي كمتر باشد، واكشي ركوردها سریعتر خواهد بود

.غیرتصادفي با یكبار دستیابي بازیابي مي شوندركوردهاي

(collision)تصادف

فرادرس

FaraDars.org

Page 8: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

8

رار یرند ا ر در حل مساله تصادف از روش باكت بندي استفاده نمائیم و ركوردهاي تصادفي در یك آدرس باكت ق

باشد، در این صورت تعداد بیت 32برابر و تعداد حفره ها در باكت512برابر (m)و فرض كنیم تعداد حفره ها

هاي الزم براي آدرس دهي را بدست آورید؟

)( kfB

1632

512M

4log16:بیت نیاز داریم4حفره به 16بنابراین براي ساختن

2

.كردطول آدرسها را كوتاهتر بیت 5بندي، استفاده از باكت

:مكردیاز باكت بندي استفاده نمي ا ر 9loglog 512

22 m

مثال

فرادرس

FaraDars.org

Page 9: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

9

ایجاد فایل جدا انه-1

در نظر رفتن ناحیه اي جدا انه در خود فایل-2

جستجوي خطي و درج تصادفي در اولین باكت جادار-3

(Rehashing)درهم سازي مجدد -4

ایجاد زنجیره بدون جایگزیني-5

ایجاد زنجیره با جایگزیني -6

حل مشکل تصادف و درج سرریزی هاهای روش

open addresing)بازرا آدرس دهي 4و3روشهاي رایج نمي باشند، 2و1روشهاي : تذكر .نامندمي chainingرا 6و5روشهاي و (

فرادرس

FaraDars.org

Page 10: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

10

. این روش یك فایل جدا انه در نظر رفته شده و ركوردهاي تصادفي در آن درج مي شونددر

ایجاد فایل جداگانه

:معایب این روش

.حفره هاي هرز در فایل اصلي بوجود مي آید-1

.سیستم فایل باید دو فایل را پردازش كند-2

فرادرس

FaraDars.org

Page 11: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

11

. داین روش ناحیه اي جدا انه مثالً درانتهاي هر استوانه براي درج ركوردهاي سرریز استفاده مي شودر

در نظر گرفتن ناحیه ای جداگانه در خود فایل

:عیب این روش

.شنددارد باكت هایي از ناحیه جدا انه پر شود در حالیكه باكت هایي از ناحیه اصلي داراي حفره هاي خالي باامكان

فرادرس

FaraDars.org

Page 12: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

12

ولدین این روش با شروع از محل تصادف، جستجوي خطي به سمت انتهاي فایل شروع شده و ركورد تصادفي در ادر . باكت جادار درج مي شود

جستجوی خطی و درج تصادفی در اولین باکت جادار

:معایب این روش .طوالني شدن زمان جستجوي خطي براي واكشي ركورد تصادفي وقتي كه فاكتور لود افزایش مي یابد-1

(به علت بررسي ركوردهاي غیر مرتبط)

، ركوردها را نمي توان به راحتي حذف كرد، چون احتمال دارد با وجود اینكه ركوردي در فایل وجدود داشدته باشدد-2. پیام ركورد یافت نشد، صادر شود

د با به محض برخورنظر، ، حفره اي خالي مي شود و چون كاوش خطي براي یافتن یك ركورد مورد كوردردر صورت حذف یك زیرا .یك حفره خالي پایان مي پذیرد، سیستم قادر به یافتن ركورد مورد نظر نخواهد بود

.وف استمعر" همسایگی بد" در این روش چون هر باكت پر شده، از حفره هاي خالي نزدیكترین باكت استفاده مي كند، به روش

فرادرس

FaraDars.org

Page 13: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

13

. این روش كلید ركورد تصادفي به تابع دیگري داده مي شوددر

در نهایدت آدرس جدیدد برابدر عمل كند،( 2)و تابع مشابه دیگري به صورت عمل كند( 1)اولین تابع به صورت ا ر

A+Dخواهد بود.

A = key mod m1 (1)

D = key mod m2+1 (2)(m1 عدد اول نزدیك بهm وm2 عدد اول بالفاصله كوچكتر ازm1مي باشد).

.باید انجام شودmعمل جمع به پیمانه باشد، بزر تر mاز A+Dا ر

.حفره هاي بررسي شونده در این روش، كمتر از روش كاوش خطي استتعداد

(Rehashing)درهم سازی مجدد

فرادرس

FaraDars.org

Page 14: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

14

. روش جستجوي خطي، ركوردهاي غیرمرتبط بررسي مي شونددر

از جلو یري از بررسدي ایدن ركوردهدا، ركوردهداي تصدادفي بده یكددیگر زنجیدر مي شدوند تدابراي

.ركوردهاي غیر دخیل پرش شود

زنجیره بدون جایگزینی ایجاد

فرادرس

FaraDars.org

Page 15: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

15

.اشاره ري ایجاد مي شودR8به R1درج مي شود و از 18است، در اولین آدرس خالي یعني 15كه آدرس تولید شده براي آن R8ركورد . اشاره ري ایجاد مي شود21به18استفاده مي شود و از حفره 21است، از خانه با آدرس 18كه آدرس تولید شده براي آن R9سپس براي درج ركورد

.ختم مي شود24 ذشته بود به 21و 18شروع و از 15درج مي كنیم و زنجیره اي كه از آدرس 24است را در حفره آدرس 15كه آدرس تولید شده براي آن R10نهایت، ركورد در

. وجود دارد، كه به یك زنجیره تبدیل شده اند18و یكي به مبدأ 15در واقع دو زنجیره یكي به مبدأ . مي ویند(Coalesce)ائتالف زنجیره ها مشكل را این

.ي یابدپدیده ائتالف باعث مي شود كه با افزایش فاكتور لود، طول زنجیره ها طوالني شده و كارایي فایل در درج و حذف كاهش م

ده درهم ساز را روي كلید چند ركورد اعمال كرده ایم و فایل بعد از درج این ركوردها به صورت زیدر در آمدتابع .كنیددرج 15آدرس با R10ركورد و 18با آدرس R9ركورد و 15با آدرس R8ركورد . است

مثال

فرادرس

FaraDars.org

Page 16: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

16

. حذف شودسر زنجیره وقتي است كه ركورد يجایگزینمشكل اساسي روش درج بدون

. این حالت در هنگام بازیابي یك ركورد از زنجیره، پیام ركورد وجود ندارد اعالم خواهد شددر

(.ودنشحذف شده براي آن درج شود و به عنوان حفره خالي اعالم نشانگر .)شودبهتر است حذف منطقي سر زنجیره بنابراین

.زمان جستجو در روش ایجاد زنجیره بدون جایگزیني از روشهاي قبلي كمتر است

یجایگزیندرج بدون روش مشکل

فرادرس

FaraDars.org

Page 17: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

17

. روش ایجاد زنجیره با جایگزیني، عالوه بر رفع مشكل حذف، زمان جستجو را باز هم كوتاهتر مي كند

در این روش هنگام درج ركورد جدید، چنانچه آدرس طبیعي آن اشغال باشد، ركورد موجود در حفره مربدو

.به ركورد درج شدني از حفره برداشته شده و ركورد جدید در حفره طبیعي خود جاي مي یرد

زنجیره با جایگزینی ایجاد

فرادرس

FaraDars.org

Page 18: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

18

ر درهم ساز را روي كلید چند ركورد اعمال كرده ایم و فایل بعد از درج این ركوردها بده صدورت زیدر دتابع .را درج كنید15با آدرس R10و ركورد 18با آدرس R9و ركورد 15با آدرس R8ركورد . آمده است

مثال

.یابداین حالت دو زنجیره داریم و پدیده ائتالف زنجیره ها رخ نمي دهد و طول زنجیره ها كاهش مي در .احتمال اینكه یك ركورد در آدرس طبیعي اش قرار بگیرد، بیشتر استهمچنین

. به جاي آن درج مي شودR9قرار رفته و 21برداشته مي شود و در اولین حفره خالي یعنيR8است ، 18برابر R9قرار مي یرد و پس از آن چون آدرس طبیعي 18در حفره R8ابتدا

فرادرس

FaraDars.org

Page 19: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

19

: الزم براي واكشي ركوردعملیات

اعمال تابع و یافتن آدرس-1

.خواندن باكتي كه آدرس آن بدست آمده است-2

بررسي محتواي باكت -3

.كردا ر ركورد در باكت نباشد، تصادفي است و باید آن را در ركوردهاي تصادفي جستجو-4

واکشی رکورد

فرادرس

FaraDars.org

Page 20: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

20

.نداردفایل از نوع پایل است، ركورد بعدي هیچ مفهومي چون

.استبازیابي ركورد بعدي مانند واكشي یك ركورد جدید بنابراین

FN TT

بازیابی رکورد بعدی

فرادرس

FaraDars.org

Page 21: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

21

. مي شودمقدار كلید عوض نشود، بهنگام سازي به صورت درجا انجام ا ر

. اینكار ركورد واكشي شده و بعد از ایجاد نسخه جدید در بافر، ركورد بازنویسي مي شودبراي

دیدد درج ا ر كلید ركورد عوض شود، نسخه قدیم با نشانگر حذف شدده بازنویسدي مي شدود و نسدخه جالبته

.مي شود

بهنگام سازی

فرادرس

FaraDars.org

Page 22: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

22

.، باید همه آنها خوانده شوندترتیبياین فایل داراي حفره هاي خالي مي باشد، در هنگام خواندن چون

.مي باشدفایل با ساختار مستقیم زمان الزم براي بازیابي تمام ركوردها با استفاده از كلید در FnT

خواندن کل فایل

فرادرس

FaraDars.org

Page 23: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

23

. رددزنجیره تصادفي طوالني شود یا ناحیه جدا انه سرریزي پر شود، فایل باید سازماندهي مجددا ر

. كرداینكار ابتدا كل فایل را باید خواند و سپس فایل را با ركوردهاي فعال لود براي

.مستقیم از نظر احیاء نظم آغازین نیازي به سازماندهي مجدد نداردفایل

سازماندهی مجدد

فرادرس

FaraDars.org

Page 24: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

24

. ن تابع را انتخاب كندمطلع باشد، تا بتواند بهتریپردازشگر فایل باید از ضوابط انتخاب تابع توسط سیستم فایل طراح

:ضوابط عبارتند از این

.بتوان تابع را روي تمام ارقام كلید اعمال كرد-1

.ركوردها به طور یكنواخت تري توزیع شوند-2

.كمتر بودن تعداد تصادفي هاي الزم براي واكشي یك ركورد-3

.الزم براي واكشي یك ركوردI /Oكمتر بودن متوسط تعداد عملیات -4

انتخاب تابع درهم ساز مناسب

فرادرس

FaraDars.org

Page 25: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

25

ركورد موجود در یك فایل اعمال شده اند و آدرسهاي زیر را تولید كدرده اندد، 7كدام یك از دو تابع كه بر روي (استتابع بر روي تمام ارقام كلید اعمال شده )مناسب ترند؟

1h

2h

:1,2,3,4,5,1,1

:1,2,3,4,5,1,2

. ركورد ششم با ركورد یكم و ركورد هفتم با ركورد دوم تصادف كرده است، دومدرتابعركورد ششم با ركورد یكم و ركورد هفتم نیز با ركورد یكم تصادف كرده است و ، اولدر تابع.الزم براي واكشي یك ركورد را محاسبه كردI/Oبراي انتخاب تابع بهتر باید متوسط تعداد عملیات ،استتصادف ها در هر دو تابع برابر تعداد چون

4.17

10

7

3211111:1

h

2.17

9

7

2211111:2

h

.مناسبتر استدوم، بنابراین تابع

مثال

فرادرس

FaraDars.org

Page 26: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

26

.ر باشددستیابي سریع به ركوردها مورد نظو نیست در محیط هایي كه ماهیت پردازش ترتیبي -1

.پایین باشددرجدر محیط هایي كه نرخ عملیات -2

.و كوچك باشندثابتدر محیط هایي كه طول ركوردها -3

(دسترسي به سرآیندها در فایل چند حلقه اي یا دسترسي به مدخلهاي شاخص در سطح اول شاخص)در ایجاد ساختارهاي تركیبي-4

کاربرد ساختار مستقیم

فرادرس

FaraDars.org

Page 27: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

27

بروز حافظه هرز در فایل و توزیع نایكنواخت ركوردها در فضاي آدرسي-1

.(عنوان كلید معرفي مي شودبه فیلد فقط یك )عدم تقارن -2

محدودیت ثابت بودن طول ركوردها-3

پدیده تصادف -4

عدم امكان بازیابي ركورد بعدي به علت پایل بودن فایل-5

عدم امكان پردازش سریال ركوردها-6

معایب فایل مستقیم مبنایی

فرادرس

FaraDars.org

Page 28: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

28

بازیابیبهنگام سازيمصرف حافظه

طول بارکورد متغیر

رکورد با طول ثابت

ثابت ماندن طول رکورد

تغییر کردن از زیرمجموعه ايتک رکوردطول رکورد

فایلتمامرکوردها

ABAEEDBپایل

FADFFDAترتيبی

FBBDBDB دارترتيبی شاخص

BCCCABDچند شاخصی

FBBFBFEمستقيم

مقایسه میزان کارایی ساختارها

A : (کامال مناسب)عالیB : خوبC :مناسبD :پاسخ می دهد( کار اضافی)با مشکالتی.E : امکان پذیر با فزونکاریF :نامناسب

A : O(r)

B : O(o.r)

C : O(r.logn)

n : تعداد ركوردهاي فایلo : تعداد ركوردهاي سرریزr :اندازه نتیجه

1)(: knoF k

D : O(n)

E :O(r.n)

فرادرس

FaraDars.org

Page 29: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

29

پایان فرادرسفصل نهم

FaraDars.org

Page 30: آموزش ذخیره و بازیابی اطلاعات - درس نهم

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

این اسالید ها بر مبنای نکات مطرح شده در فرادرس

« اطالعاتآموزش ذخیره و بازیابی »

.شده استتهیه

یدبرای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایfaradars.org/fvsft106

بازیابی و آموزش ذخیره

اطالعات

faradars.org/fvsft106

فرادرس

FaraDars.org