‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬»
‫تهیه‬‫است‬ ‫شده‬.
‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬
faradars.org/fvsft106
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫مدرس‬:
‫شیرافکن‬ ‫فرشید‬
‫دانشجوی‬‫دکتری‬‫تهران‬ ‫دانشگاه‬
(‫ارشد‬ ‫کارشناسی‬ ‫و‬ ‫کارشناسی‬:‫افزار‬ ‫نرم‬ ‫کامپیوتر‬( )‫دکتری‬:‫انفورماتیک‬ ‫بیو‬)
‫اطالعات‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬
‫نهم‬ ‫درس‬:‫مستقیم‬ ‫فایل‬ ‫ساختار‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
3
‫ساختار‬‫مستقیم‬ ‫فایل‬(‫یا‬ ‫درهم‬Hashed)،‫وابسته‬ ‫قبلي‬ ‫ساختارهاي‬ ‫به‬‫باش‬‫نمي‬‫د‬.
‫استراتژي‬‫دستیابي‬‫مستقیم‬‫مي‬ ‫تامین‬ ‫ركورد‬ ‫هر‬ ‫آدرس‬ ‫طریق‬ ‫از‬ ‫ركوردها‬ ‫به‬‫شود‬.
‫در‬‫از‬ ‫یكي‬ ،‫اولیه‬ ‫لود‬ ‫در‬ ‫فایل‬ ‫ایجاد‬ ‫هنگام‬‫فیلددها‬‫ي‬،‫ركدورد‬‫كلیدد‬‫نظدر‬ ‫در‬‫رفتده‬
‫شود‬‫مي‬.
‫مستقیم‬ ‫ساختار‬ ‫معرفی‬
‫تابع‬‫ساز‬ ‫درهم‬:‫مي‬ ‫انجام‬ ‫را‬ ‫آدرس‬ ‫به‬ ‫كلید‬ ‫تبدیل‬ ‫عمل‬ ‫كه‬ ‫تابعي‬‫دهد‬.
‫بر‬ ‫را‬ ‫یرد‬ ‫قرار‬ ‫آن‬ ‫در‬ ‫باید‬ ‫ركورد‬ ‫كه‬ ‫آدرسي‬ ‫و‬ ‫داده‬ ‫انجام‬ ‫آن‬ ‫روي‬ ‫را‬ ‫پردازشي‬ ‫سیستم‬ ،‫شد‬ ‫داده‬ ‫فایل‬ ‫سیستم‬ ‫به‬ ‫كلید‬ ‫مقدار‬ ‫آنكه‬ ‫از‬ ‫بعد‬‫مي‬‫ردان‬‫د‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
4
‫فاکتور‬ ‫لود‬
m
n
:‫فاكتور‬‫لود‬(‫كوچكتر‬‫یك‬ ‫مساوي‬ ‫یا‬)
‫فایل‬‫آدرس‬ ‫فضاي‬ ‫یك‬ ‫داراي‬ ‫ساختار‬ ‫این‬ ‫در‬‫از‬0‫تا‬m-1‫باشد‬ ‫مي‬.
45.0
11
5

m
n n:‫تعداد‬‫ركورد‬‫هاي‬‫درج‬‫شده‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
5
‫ساز‬ ‫درهم‬ ‫توابع‬ ‫از‬ ‫یكي‬‫است‬،‫آدرس‬ ‫كه‬‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬ ‫به‬ ‫كلید‬ ‫صحیح‬ ‫تقسیم‬ ‫باقیمانده‬m‫باشد‬ ‫مي‬.
‫به‬‫از‬ ‫حاصل‬ ‫آدرس‬ ‫نمونه‬ ‫طو‬‫كلید‬12345678‫آدرسي‬ ‫فضاي‬ ‫در‬1..5000‫برابر‬3088‫مي‬‫چون‬ ، ‫باشد‬:
12345678 mod 4997 = 3088
(‫عدد‬4997،‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬5000‫مي‬‫باشد‬).
‫تقسیم‬ ‫تابع‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
6
‫ر‬ ‫ا‬‫با‬ ‫مستقیم‬ ‫فایل‬m‫حفره‬‫باكت‬ ‫آدرس‬ ،‫حفره‬ ‫آدرس‬ ‫جاي‬ ‫به‬ ،‫كنیم‬ ‫بندي‬ ‫باكت‬ ‫را‬(‫تا‬ ‫صفر‬ ‫از‬M-1)‫خ‬‫واهیم‬‫داشت‬.
fBK
fBK
m
M 
‫بندی‬ ‫باکت‬ ‫مزایای‬
1-‫تصادف‬ ‫مشكل‬ ‫حل‬ ‫در‬ ‫تسهیل‬
2-‫آدرسها‬ ‫طول‬ ‫شدن‬ ‫كوتاهتر‬
3-‫مت‬ ‫طول‬ ‫با‬ ‫ركوردهاي‬ ‫با‬ ‫مستقیم‬ ‫فایل‬ ‫ایجاد‬ ‫امكان‬‫غیر‬
‫بندی‬ ‫باکت‬
:‫ها‬ ‫حفره‬ ‫تعداد‬‫در‬‫هر‬‫باكت‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
7
‫وقتي‬‫تابع‬ ‫اعمال‬ ‫از‬ ‫پس‬ ‫كه‬ ‫دهد‬ ‫مي‬ ‫رخ‬‫ساز‬ ‫درهم‬،‫شود‬ ‫تولید‬ ‫یكساني‬ ‫آدرس‬ ،‫متفاوت‬ ‫كلید‬ ‫دو‬ ‫ازاي‬ ‫به‬.
‫بود‬ ‫خواهد‬ ‫سریعتر‬ ‫ركوردها‬ ‫واكشي‬ ،‫باشد‬ ‫كمتر‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫تعداد‬ ‫هرچه‬.
‫ركوردهاي‬‫شوند‬‫مي‬ ‫بازیابي‬ ‫دستیابي‬ ‫یكبار‬ ‫با‬ ‫غیرتصادفي‬.
‫تصادف‬(collision)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
8
‫ق‬ ‫باكت‬ ‫آدرس‬ ‫یك‬ ‫در‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫و‬ ‫نمائیم‬ ‫استفاده‬ ‫بندي‬ ‫باكت‬ ‫روش‬ ‫از‬ ‫تصادف‬ ‫مساله‬ ‫حل‬ ‫در‬ ‫ر‬ ‫ا‬‫یرند‬ ‫رار‬
‫ها‬ ‫حفره‬ ‫تعداد‬ ‫كنیم‬ ‫فرض‬ ‫و‬(m)‫برابر‬512‫باكت‬ ‫در‬ ‫ها‬ ‫حفره‬ ‫تعداد‬ ‫و‬‫برابر‬32‫بیت‬ ‫تعداد‬ ‫صورت‬ ‫این‬ ‫در‬ ،‫باشد‬
‫آورید؟‬ ‫بدست‬ ‫را‬ ‫دهي‬ ‫آدرس‬ ‫براي‬ ‫الزم‬ ‫هاي‬
)( kfB
16
32
512
M
‫ساختن‬ ‫براي‬ ‫بنابراین‬16‫به‬ ‫حفره‬4‫داریم‬ ‫نیاز‬ ‫بیت‬:4log16
2 
‫باكت‬ ‫از‬ ‫استفاده‬،‫بندي‬5‫بیت‬‫كوتاهتر‬ ‫را‬ ‫آدرسها‬ ‫طول‬‫كرد‬.
‫ر‬ ‫ا‬‫نمي‬ ‫استفاده‬ ‫بندي‬ ‫باكت‬ ‫از‬‫كردی‬‫م‬:
9loglog 512
22 m
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
9
1-‫انه‬ ‫جدا‬ ‫فایل‬ ‫ایجاد‬
2-‫فایل‬ ‫خود‬ ‫در‬ ‫انه‬ ‫جدا‬ ‫اي‬ ‫ناحیه‬ ‫رفتن‬ ‫نظر‬ ‫در‬
3-‫جادار‬ ‫باكت‬ ‫اولین‬ ‫در‬ ‫تصادفي‬ ‫درج‬ ‫و‬ ‫خطي‬ ‫جستجوي‬
4-‫مجدد‬ ‫سازي‬ ‫درهم‬(Rehashing)
5-‫جایگزیني‬ ‫بدون‬ ‫زنجیره‬ ‫ایجاد‬
6-‫جایگزیني‬ ‫با‬ ‫زنجیره‬ ‫ایجاد‬
‫روش‬‫های‬‫ها‬ ‫سرریزی‬ ‫درج‬ ‫و‬ ‫تصادف‬ ‫مشکل‬ ‫حل‬
‫تذكر‬:‫روشهاي‬1‫و‬2،‫باشند‬‫نمي‬ ‫رایج‬‫روشهاي‬3‫و‬4‫دهي‬ ‫آدرس‬ ‫را‬‫باز‬(open addresing )‫و‬‫روشهاي‬5‫و‬6‫را‬chaining‫مي‬‫نامند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
10
‫در‬‫شوند‬‫مي‬ ‫درج‬ ‫آن‬ ‫در‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫و‬ ‫شده‬ ‫رفته‬ ‫نظر‬ ‫در‬ ‫انه‬ ‫جدا‬ ‫فایل‬ ‫یك‬ ‫روش‬ ‫این‬.
‫جداگانه‬ ‫فایل‬ ‫ایجاد‬
‫روش‬ ‫این‬ ‫معایب‬:
1-‫آید‬ ‫مي‬ ‫بوجود‬ ‫اصلي‬ ‫فایل‬ ‫در‬ ‫هرز‬ ‫هاي‬ ‫حفره‬.
2-‫كند‬ ‫پردازش‬ ‫را‬ ‫فایل‬ ‫دو‬ ‫باید‬ ‫فایل‬ ‫سیستم‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
11
‫در‬‫شو‬‫مي‬ ‫استفاده‬ ‫سرریز‬ ‫ركوردهاي‬ ‫درج‬ ‫براي‬ ‫استوانه‬ ‫هر‬ ‫درانتهاي‬ ً‫ال‬‫مث‬ ‫انه‬ ‫جدا‬ ‫اي‬ ‫ناحیه‬ ‫روش‬ ‫این‬‫د‬.
‫فایل‬ ‫خود‬ ‫در‬ ‫جداگانه‬ ‫ای‬ ‫ناحیه‬ ‫گرفتن‬ ‫نظر‬ ‫در‬
‫روش‬ ‫این‬ ‫عیب‬:
‫امكان‬‫با‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫داراي‬ ‫اصلي‬ ‫ناحیه‬ ‫از‬ ‫هایي‬ ‫باكت‬ ‫حالیكه‬ ‫در‬ ‫شود‬ ‫پر‬ ‫انه‬ ‫جدا‬ ‫ناحیه‬ ‫از‬ ‫هایي‬ ‫باكت‬ ‫دارد‬‫شند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
12
‫در‬‫ا‬ ‫در‬ ‫تصادفي‬ ‫ركورد‬ ‫و‬ ‫شده‬ ‫شروع‬ ‫فایل‬ ‫انتهاي‬ ‫سمت‬ ‫به‬ ‫خطي‬ ‫جستجوي‬ ،‫تصادف‬ ‫محل‬ ‫از‬ ‫شروع‬ ‫با‬ ‫روش‬ ‫این‬‫ولدین‬
‫شود‬‫مي‬ ‫درج‬ ‫جادار‬ ‫باكت‬.
‫جادار‬ ‫باکت‬ ‫اولین‬ ‫در‬ ‫تصادفی‬ ‫درج‬ ‫و‬ ‫خطی‬ ‫جستجوی‬
‫روش‬ ‫این‬ ‫معایب‬:
1-‫یابد‬ ‫مي‬ ‫افزایش‬ ‫لود‬ ‫فاكتور‬ ‫كه‬ ‫وقتي‬ ‫تصادفي‬ ‫ركورد‬ ‫واكشي‬ ‫براي‬ ‫خطي‬ ‫جستجوي‬ ‫زمان‬ ‫شدن‬ ‫طوالني‬.
(‫مرتبط‬ ‫غیر‬ ‫ركوردهاي‬ ‫بررسي‬ ‫علت‬ ‫به‬)
2-‫باشدد‬ ‫داشدته‬ ‫وجدود‬ ‫فایل‬ ‫در‬ ‫ركوردي‬ ‫اینكه‬ ‫وجود‬ ‫با‬ ‫دارد‬ ‫احتمال‬ ‫چون‬ ،‫كرد‬ ‫حذف‬ ‫راحتي‬ ‫به‬ ‫توان‬‫نمي‬ ‫را‬ ‫ركوردها‬،
‫شود‬ ‫صادر‬ ،‫نشد‬ ‫یافت‬ ‫ركورد‬ ‫پیام‬.
‫زیرا‬‫یك‬ ‫حذف‬ ‫صورت‬ ‫در‬‫ر‬‫كورد‬‫مورد‬ ‫ركورد‬ ‫یك‬ ‫یافتن‬ ‫براي‬ ‫خطي‬ ‫كاوش‬ ‫چون‬ ‫و‬ ‫شود‬ ‫مي‬ ‫خالي‬ ‫اي‬ ‫حفره‬ ،،‫نظر‬‫برخور‬ ‫محض‬ ‫به‬‫با‬ ‫د‬
‫بود‬ ‫نخواهد‬ ‫نظر‬ ‫مورد‬ ‫ركورد‬ ‫یافتن‬ ‫به‬ ‫قادر‬ ‫سیستم‬ ،‫پذیرد‬ ‫مي‬ ‫پایان‬ ‫خالي‬ ‫حفره‬ ‫یك‬.
‫روش‬ ‫به‬ ،‫كند‬ ‫مي‬ ‫استفاده‬ ‫باكت‬ ‫نزدیكترین‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫از‬ ،‫شده‬ ‫پر‬ ‫باكت‬ ‫هر‬ ‫چون‬ ‫روش‬ ‫این‬ ‫در‬"‫بد‬ ‫همسایگی‬"‫معر‬‫است‬ ‫وف‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
13
‫در‬‫شود‬ ‫مي‬ ‫داده‬ ‫دیگري‬ ‫تابع‬ ‫به‬ ‫تصادفي‬ ‫ركورد‬ ‫كلید‬ ‫روش‬ ‫این‬.
‫ر‬ ‫ا‬‫صورت‬ ‫به‬ ‫تابع‬ ‫اولین‬(1)‫كند‬ ‫عمل‬‫صورت‬ ‫به‬ ‫دیگري‬ ‫مشابه‬ ‫تابع‬ ‫و‬(2)،‫كند‬ ‫عمل‬‫برابدر‬ ‫جدیدد‬ ‫آدرس‬ ‫نهایدت‬ ‫در‬
A+D‫بود‬ ‫خواهد‬.
A = key mod m1 (1)
D = key mod m2+1 (2)
(m1‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬m‫و‬m2‫از‬ ‫كوچكتر‬ ‫بالفاصله‬ ‫اول‬ ‫عدد‬m1‫باشد‬ ‫مي‬).
‫ر‬ ‫ا‬A+D‫از‬m‫تر‬ ‫بزر‬،‫باشد‬‫پیمانه‬ ‫به‬ ‫جمع‬ ‫عمل‬m‫شود‬ ‫انجام‬ ‫باید‬.
‫تعداد‬‫است‬ ‫خطي‬ ‫كاوش‬ ‫روش‬ ‫از‬ ‫كمتر‬ ،‫روش‬ ‫این‬ ‫در‬ ‫شونده‬ ‫بررسي‬ ‫هاي‬ ‫حفره‬.
‫مجدد‬ ‫سازی‬ ‫درهم‬(Rehashing)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
14
‫در‬‫شوند‬‫مي‬ ‫بررسي‬ ‫غیرمرتبط‬ ‫ركوردهاي‬ ،‫خطي‬ ‫جستجوي‬ ‫روش‬.
‫براي‬‫تدا‬ ‫شدوند‬‫مي‬ ‫زنجیدر‬ ‫یكددیگر‬ ‫بده‬ ‫تصدادفي‬ ‫ركوردهداي‬ ،‫ركوردهدا‬ ‫ایدن‬ ‫بررسدي‬ ‫از‬ ‫یري‬ ‫جلو‬‫از‬
‫شود‬ ‫پرش‬ ‫دخیل‬ ‫غیر‬ ‫ركوردهاي‬.
‫ایجاد‬‫جایگزینی‬ ‫بدون‬ ‫زنجیره‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
15
‫ركورد‬R8‫آن‬ ‫براي‬ ‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬15‫یعني‬ ‫خالي‬ ‫آدرس‬ ‫اولین‬ ‫در‬ ،‫است‬18‫از‬ ‫و‬ ‫شود‬‫مي‬ ‫درج‬R1‫به‬R8‫شود‬‫مي‬ ‫ایجاد‬ ‫ري‬ ‫اشاره‬.
‫ركورد‬ ‫درج‬ ‫براي‬ ‫سپس‬R9‫آن‬ ‫براي‬ ‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬18‫آدرس‬ ‫با‬ ‫خانه‬ ‫از‬ ،‫است‬21‫حفره‬ ‫از‬ ‫و‬ ‫شود‬‫مي‬ ‫استفاده‬18‫به‬21‫شود‬‫مي‬ ‫ایجاد‬ ‫ري‬ ‫اشاره‬.
‫در‬‫ركورد‬ ،‫نهایت‬R10‫آن‬ ‫براي‬ ‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬15‫آدرس‬ ‫حفره‬ ‫در‬ ‫را‬ ‫است‬24‫آدرس‬ ‫از‬ ‫كه‬ ‫اي‬ ‫زنجیره‬ ‫و‬ ‫كنیم‬‫مي‬ ‫درج‬15‫از‬ ‫و‬ ‫شروع‬18‫و‬21‫به‬ ‫بود‬ ‫ذشته‬24‫شود‬‫مي‬ ‫ختم‬.
‫مبدأ‬ ‫به‬ ‫یكي‬ ‫زنجیره‬ ‫دو‬ ‫واقع‬ ‫در‬15‫مبدأ‬ ‫به‬ ‫یكي‬ ‫و‬18‫اند‬‫شده‬ ‫تبدیل‬ ‫زنجیره‬ ‫یك‬ ‫به‬ ‫كه‬ ،‫دارد‬ ‫وجود‬.
‫این‬‫را‬ ‫مشكل‬‫ها‬‫زنجیره‬ ‫ائتالف‬(Coalesce)‫ویند‬ ‫مي‬.
‫م‬ ‫كاهش‬ ‫حذف‬ ‫و‬ ‫درج‬ ‫در‬ ‫فایل‬ ‫كارایي‬ ‫و‬ ‫شده‬ ‫طوالني‬ ‫ها‬ ‫زنجیره‬ ‫طول‬ ،‫لود‬ ‫فاكتور‬ ‫افزایش‬ ‫با‬ ‫كه‬ ‫شود‬‫مي‬ ‫باعث‬ ‫ائتالف‬ ‫پدیده‬‫یابد‬ ‫ي‬.
‫تابع‬‫آمد‬ ‫در‬ ‫زیدر‬ ‫صورت‬ ‫به‬ ‫ركوردها‬ ‫این‬ ‫درج‬ ‫از‬ ‫بعد‬ ‫فایل‬ ‫و‬ ‫ایم‬ ‫كرده‬ ‫اعمال‬ ‫ركورد‬ ‫چند‬ ‫كلید‬ ‫روي‬ ‫را‬ ‫ساز‬ ‫درهم‬‫ده‬
‫است‬.‫ركورد‬R8‫آدرس‬ ‫با‬15‫و‬‫ركورد‬R9‫آدرس‬ ‫با‬18‫و‬‫ركورد‬R10‫با‬‫آدرس‬15‫درج‬‫كنید‬.
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
16
‫بدون‬ ‫درج‬ ‫روش‬ ‫اساسي‬ ‫مشكل‬‫جایگزین‬‫ي‬‫ركورد‬ ‫كه‬ ‫است‬ ‫وقتي‬‫زنجیره‬ ‫سر‬‫شود‬ ‫حذف‬.
‫در‬‫شد‬ ‫خواهد‬ ‫اعالم‬ ‫ندارد‬ ‫وجود‬ ‫ركورد‬ ‫پیام‬ ،‫زنجیره‬ ‫از‬ ‫ركورد‬ ‫یك‬ ‫بازیابي‬ ‫هنگام‬ ‫در‬ ‫حالت‬ ‫این‬.
‫بنابراین‬‫زنجیره‬ ‫سر‬‫منطقي‬ ‫حذف‬ ‫است‬ ‫بهتر‬‫شود‬(.‫نشانگر‬‫اعالم‬ ‫خالي‬ ‫حفره‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شود‬ ‫درج‬ ‫آن‬ ‫براي‬ ‫شده‬ ‫حذف‬‫نش‬‫ود‬.)
‫است‬ ‫كمتر‬ ‫قبلي‬ ‫روشهاي‬ ‫از‬ ‫جایگزیني‬ ‫بدون‬ ‫زنجیره‬ ‫ایجاد‬ ‫روش‬ ‫در‬ ‫جستجو‬ ‫زمان‬.
‫مشکل‬‫روش‬‫بدون‬ ‫درج‬‫جایگزین‬‫ی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
17
‫كند‬ ‫مي‬ ‫كوتاهتر‬ ‫هم‬ ‫باز‬ ‫را‬ ‫جستجو‬ ‫زمان‬ ،‫حذف‬ ‫مشكل‬ ‫رفع‬ ‫بر‬ ‫عالوه‬ ،‫جایگزیني‬ ‫با‬ ‫زنجیره‬ ‫ایجاد‬ ‫روش‬.
‫مربدو‬ ‫حفره‬ ‫در‬ ‫موجود‬ ‫ركورد‬ ،‫باشد‬ ‫اشغال‬ ‫آن‬ ‫طبیعي‬ ‫آدرس‬ ‫چنانچه‬ ،‫جدید‬ ‫ركورد‬ ‫درج‬ ‫هنگام‬ ‫روش‬ ‫این‬ ‫در‬
‫یرد‬ ‫مي‬ ‫جاي‬ ‫خود‬ ‫طبیعي‬ ‫حفره‬ ‫در‬ ‫جدید‬ ‫ركورد‬ ‫و‬ ‫شده‬ ‫برداشته‬ ‫حفره‬ ‫از‬ ‫شدني‬ ‫درج‬ ‫ركورد‬ ‫به‬.
‫ایجاد‬‫جایگزینی‬ ‫با‬ ‫زنجیره‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
18
‫تابع‬‫د‬ ‫زیدر‬ ‫صدورت‬ ‫بده‬ ‫ركوردها‬ ‫این‬ ‫درج‬ ‫از‬ ‫بعد‬ ‫فایل‬ ‫و‬ ‫ایم‬ ‫كرده‬ ‫اعمال‬ ‫ركورد‬ ‫چند‬ ‫كلید‬ ‫روي‬ ‫را‬ ‫ساز‬ ‫درهم‬‫ر‬
‫است‬ ‫آمده‬.‫ركورد‬R8‫آدرس‬ ‫با‬15‫ركورد‬ ‫و‬R9‫آدرس‬ ‫با‬18‫ركورد‬ ‫و‬R10‫آدرس‬ ‫با‬15‫كنید‬ ‫درج‬ ‫را‬.
‫مثال‬
‫در‬‫مي‬ ‫كاهش‬ ‫ها‬ ‫زنجیره‬ ‫طول‬ ‫و‬ ‫دهد‬ ‫نمي‬ ‫رخ‬ ‫ها‬ ‫زنجیره‬ ‫ائتالف‬ ‫پدیده‬ ‫و‬ ‫داریم‬ ‫زنجیره‬ ‫دو‬ ‫حالت‬ ‫این‬‫یابد‬.
‫همچنین‬‫است‬ ‫بیشتر‬ ،‫بگیرد‬ ‫قرار‬ ‫اش‬ ‫طبیعي‬ ‫آدرس‬ ‫در‬ ‫ركورد‬ ‫یك‬ ‫اینكه‬ ‫احتمال‬.
‫ابتدا‬R8‫حفره‬ ‫در‬18‫طبیعي‬ ‫آدرس‬ ‫چون‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫یرد‬ ‫مي‬ ‫قرار‬R9‫برابر‬18، ‫است‬R8‫یعني‬ ‫خالي‬ ‫حفره‬ ‫اولین‬ ‫در‬ ‫و‬ ‫شود‬‫مي‬ ‫برداشته‬21‫و‬ ‫رفته‬ ‫قرار‬R9‫شود‬‫مي‬ ‫درج‬ ‫آن‬ ‫جاي‬ ‫به‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
19
‫عملیات‬‫ركورد‬ ‫واكشي‬ ‫براي‬ ‫الزم‬:
1-‫آدرس‬ ‫یافتن‬ ‫و‬ ‫تابع‬ ‫اعمال‬
2-‫است‬ ‫آمده‬ ‫بدست‬ ‫آن‬ ‫آدرس‬ ‫كه‬ ‫باكتي‬ ‫خواندن‬.
3-‫باكت‬ ‫محتواي‬ ‫بررسي‬
4-‫جستجو‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫در‬ ‫را‬ ‫آن‬ ‫باید‬ ‫و‬ ‫است‬ ‫تصادفي‬ ،‫نباشد‬ ‫باكت‬ ‫در‬ ‫ركورد‬ ‫ر‬ ‫ا‬‫كرد‬.
‫رکورد‬ ‫واکشی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
20
‫چون‬‫مفهومي‬ ‫هیچ‬ ‫بعدي‬ ‫ركورد‬ ،‫است‬ ‫پایل‬ ‫نوع‬ ‫از‬ ‫فایل‬‫ندارد‬.
‫بنابراین‬‫جدید‬ ‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫مانند‬ ‫بعدي‬ ‫ركورد‬ ‫بازیابي‬‫است‬.
FN TT 
‫بعدی‬ ‫رکورد‬ ‫بازیابی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
21
‫ر‬ ‫ا‬‫انجام‬ ‫درجا‬ ‫صورت‬ ‫به‬ ‫سازي‬ ‫بهنگام‬ ،‫نشود‬ ‫عوض‬ ‫كلید‬ ‫مقدار‬‫شود‬‫مي‬.
‫براي‬‫شود‬‫مي‬ ‫بازنویسي‬ ‫ركورد‬ ،‫بافر‬ ‫در‬ ‫جدید‬ ‫نسخه‬ ‫ایجاد‬ ‫از‬ ‫بعد‬ ‫و‬ ‫شده‬ ‫واكشي‬ ‫ركورد‬ ‫اینكار‬.
‫البته‬‫ج‬ ‫نسدخه‬ ‫و‬ ‫شدود‬‫مي‬ ‫بازنویسدي‬ ‫شدده‬ ‫حذف‬ ‫نشانگر‬ ‫با‬ ‫قدیم‬ ‫نسخه‬ ،‫شود‬ ‫عوض‬ ‫ركورد‬ ‫كلید‬ ‫ر‬ ‫ا‬‫درج‬ ‫دیدد‬
‫شود‬‫مي‬.
‫سازی‬ ‫بهنگام‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
22
‫چون‬‫خواندن‬ ‫هنگام‬ ‫در‬ ،‫باشد‬‫مي‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫داراي‬ ‫فایل‬ ‫این‬‫ترتیبي‬‫شوند‬ ‫خوانده‬ ‫آنها‬ ‫همه‬ ‫باید‬ ،.
‫در‬‫كلید‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫ركوردها‬ ‫تمام‬ ‫بازیابي‬ ‫براي‬ ‫الزم‬ ‫زمان‬ ‫مستقیم‬ ‫ساختار‬ ‫با‬ ‫فایل‬‫باشد‬ ‫مي‬. FnT
‫فایل‬ ‫کل‬ ‫خواندن‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
23
‫ر‬ ‫ا‬‫مجدد‬ ‫سازماندهي‬ ‫باید‬ ‫فایل‬ ،‫شود‬ ‫پر‬ ‫سرریزي‬ ‫انه‬ ‫جدا‬ ‫ناحیه‬ ‫یا‬ ‫شود‬ ‫طوالني‬ ‫تصادفي‬ ‫زنجیره‬‫ردد‬.
‫براي‬‫لود‬ ‫فعال‬ ‫ركوردهاي‬ ‫با‬ ‫را‬ ‫فایل‬ ‫سپس‬ ‫و‬ ‫خواند‬ ‫باید‬ ‫را‬ ‫فایل‬ ‫كل‬ ‫ابتدا‬ ‫اینكار‬‫كرد‬.
‫فایل‬‫ندارد‬ ‫مجدد‬ ‫سازماندهي‬ ‫به‬ ‫نیازي‬ ‫آغازین‬ ‫نظم‬ ‫احیاء‬ ‫نظر‬ ‫از‬ ‫مستقیم‬.
‫مجدد‬ ‫سازماندهی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
24
‫طراح‬‫فایل‬ ‫سیستم‬‫توسط‬ ‫تابع‬ ‫انتخاب‬ ‫ضوابط‬ ‫از‬ ‫باید‬‫فایل‬ ‫پردازشگر‬‫بهتری‬ ‫بتواند‬ ‫تا‬ ،‫باشد‬ ‫مطلع‬‫كند‬ ‫انتخاب‬ ‫را‬ ‫تابع‬ ‫ن‬.
‫این‬‫از‬ ‫عبارتند‬ ‫ضوابط‬:
1-‫كرد‬ ‫اعمال‬ ‫كلید‬ ‫ارقام‬ ‫تمام‬ ‫روي‬ ‫را‬ ‫تابع‬ ‫بتوان‬.
2-‫شوند‬ ‫توزیع‬ ‫تري‬ ‫یكنواخت‬ ‫طور‬ ‫به‬ ‫ركوردها‬.
3-‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫براي‬ ‫الزم‬ ‫هاي‬ ‫تصادفي‬ ‫تعداد‬ ‫بودن‬ ‫كمتر‬.
4-‫عملیات‬ ‫تعداد‬ ‫متوسط‬ ‫بودن‬ ‫كمتر‬I /O‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫براي‬ ‫الزم‬.
‫مناسب‬ ‫ساز‬ ‫درهم‬ ‫تابع‬ ‫انتخاب‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
25
‫روي‬ ‫بر‬ ‫كه‬ ‫تابع‬ ‫دو‬ ‫از‬ ‫یك‬ ‫كدام‬7،‫اندد‬ ‫كدرده‬ ‫تولید‬ ‫را‬ ‫زیر‬ ‫آدرسهاي‬ ‫و‬ ‫اند‬ ‫شده‬ ‫اعمال‬ ‫فایل‬ ‫یك‬ ‫در‬ ‫موجود‬ ‫ركورد‬
‫ترند؟‬ ‫مناسب‬(‫شده‬ ‫اعمال‬ ‫كلید‬ ‫ارقام‬ ‫تمام‬ ‫روي‬ ‫بر‬ ‫تابع‬‫است‬)
1h
2h
:1,2,3,4,5,1,1
:1,2,3,4,5,1,2
‫تابع‬ ‫در‬‫اول‬،‫و‬ ‫است‬ ‫كرده‬ ‫تصادف‬ ‫یكم‬ ‫ركورد‬ ‫با‬ ‫نیز‬ ‫هفتم‬ ‫ركورد‬ ‫و‬ ‫یكم‬ ‫ركورد‬ ‫با‬ ‫ششم‬ ‫ركورد‬‫درتابع‬‫دوم‬،‫است‬ ‫كرده‬ ‫تصادف‬ ‫دوم‬ ‫ركورد‬ ‫با‬ ‫هفتم‬ ‫ركورد‬ ‫و‬ ‫یكم‬ ‫ركورد‬ ‫با‬ ‫ششم‬ ‫ركورد‬.
‫چون‬‫تعداد‬‫برابر‬ ‫تابع‬ ‫دو‬ ‫هر‬ ‫در‬ ‫ها‬ ‫تصادف‬‫است‬،‫عملیات‬ ‫تعداد‬ ‫متوسط‬ ‫باید‬ ‫بهتر‬ ‫تابع‬ ‫انتخاب‬ ‫براي‬I/O‫كرد‬ ‫محاسبه‬ ‫را‬ ‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫براي‬ ‫الزم‬.
4.1
7
10
7
3211111
:1 

h
2.1
7
9
7
2211111
:2 

h
‫تابع‬ ‫بنابراین‬،‫دوم‬‫است‬ ‫مناسبتر‬.
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
26
1-‫ترتیبي‬ ‫پردازش‬ ‫ماهیت‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫نیست‬‫و‬‫نظ‬ ‫مورد‬ ‫ركوردها‬ ‫به‬ ‫سریع‬ ‫دستیابي‬‫باشد‬ ‫ر‬.
2-‫عملیات‬ ‫نرخ‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫درج‬‫باشد‬ ‫پایین‬.
3-‫ركوردها‬ ‫طول‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫ثابت‬‫باشند‬ ‫كوچك‬ ‫و‬.
4-‫تركیبي‬ ‫ساختارهاي‬ ‫ایجاد‬ ‫در‬(‫شاخص‬ ‫اول‬ ‫سطح‬ ‫در‬ ‫شاخص‬ ‫مدخلهاي‬ ‫به‬ ‫دسترسي‬ ‫یا‬ ‫اي‬ ‫حلقه‬ ‫چند‬ ‫فایل‬ ‫در‬ ‫سرآیندها‬ ‫به‬ ‫دسترسي‬)
‫مستقیم‬ ‫ساختار‬ ‫کاربرد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
27
1-‫آدرسي‬ ‫فضاي‬ ‫در‬ ‫ركوردها‬ ‫نایكنواخت‬ ‫توزیع‬ ‫و‬ ‫فایل‬ ‫در‬ ‫هرز‬ ‫حافظه‬ ‫بروز‬
2-‫تقارن‬ ‫عدم‬(‫یك‬ ‫فقط‬‫فیلد‬‫به‬‫شود‬‫مي‬ ‫معرفي‬ ‫كلید‬ ‫عنوان‬).
3-‫ركوردها‬ ‫طول‬ ‫بودن‬ ‫ثابت‬ ‫محدودیت‬
4-‫تصادف‬ ‫پدیده‬
5-‫فایل‬ ‫بودن‬ ‫پایل‬ ‫علت‬ ‫به‬ ‫بعدي‬ ‫ركورد‬ ‫بازیابي‬ ‫امكان‬ ‫عدم‬
6-‫ركوردها‬ ‫سریال‬ ‫پردازش‬ ‫امكان‬ ‫عدم‬
‫مبنایی‬ ‫مستقیم‬ ‫فایل‬ ‫معایب‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
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
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
29
‫پایان‬
‫نهم‬ ‫فصل‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬»
‫تهیه‬‫است‬ ‫شده‬.
‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬
faradars.org/fvsft106
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org

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

  • 1.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 ‫فرادرس‬ ‫در‬‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬ «‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬» ‫تهیه‬‫است‬ ‫شده‬. ‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬ faradars.org/fvsft106 ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 2.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 ‫مدرس‬: ‫شیرافکن‬ ‫فرشید‬ ‫دانشجوی‬‫دکتری‬‫تهران‬‫دانشگاه‬ (‫ارشد‬ ‫کارشناسی‬ ‫و‬ ‫کارشناسی‬:‫افزار‬ ‫نرم‬ ‫کامپیوتر‬( )‫دکتری‬:‫انفورماتیک‬ ‫بیو‬) ‫اطالعات‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫نهم‬ ‫درس‬:‫مستقیم‬ ‫فایل‬ ‫ساختار‬ 2 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 3.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 3 ‫ساختار‬‫مستقیم‬ ‫فایل‬(‫یا‬‫درهم‬Hashed)،‫وابسته‬ ‫قبلي‬ ‫ساختارهاي‬ ‫به‬‫باش‬‫نمي‬‫د‬. ‫استراتژي‬‫دستیابي‬‫مستقیم‬‫مي‬ ‫تامین‬ ‫ركورد‬ ‫هر‬ ‫آدرس‬ ‫طریق‬ ‫از‬ ‫ركوردها‬ ‫به‬‫شود‬. ‫در‬‫از‬ ‫یكي‬ ،‫اولیه‬ ‫لود‬ ‫در‬ ‫فایل‬ ‫ایجاد‬ ‫هنگام‬‫فیلددها‬‫ي‬،‫ركدورد‬‫كلیدد‬‫نظدر‬ ‫در‬‫رفتده‬ ‫شود‬‫مي‬. ‫مستقیم‬ ‫ساختار‬ ‫معرفی‬ ‫تابع‬‫ساز‬ ‫درهم‬:‫مي‬ ‫انجام‬ ‫را‬ ‫آدرس‬ ‫به‬ ‫كلید‬ ‫تبدیل‬ ‫عمل‬ ‫كه‬ ‫تابعي‬‫دهد‬. ‫بر‬ ‫را‬ ‫یرد‬ ‫قرار‬ ‫آن‬ ‫در‬ ‫باید‬ ‫ركورد‬ ‫كه‬ ‫آدرسي‬ ‫و‬ ‫داده‬ ‫انجام‬ ‫آن‬ ‫روي‬ ‫را‬ ‫پردازشي‬ ‫سیستم‬ ،‫شد‬ ‫داده‬ ‫فایل‬ ‫سیستم‬ ‫به‬ ‫كلید‬ ‫مقدار‬ ‫آنكه‬ ‫از‬ ‫بعد‬‫مي‬‫ردان‬‫د‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 4.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 4 ‫فاکتور‬ ‫لود‬ m n :‫فاكتور‬‫لود‬(‫كوچكتر‬‫یك‬‫مساوي‬ ‫یا‬) ‫فایل‬‫آدرس‬ ‫فضاي‬ ‫یك‬ ‫داراي‬ ‫ساختار‬ ‫این‬ ‫در‬‫از‬0‫تا‬m-1‫باشد‬ ‫مي‬. 45.0 11 5  m n n:‫تعداد‬‫ركورد‬‫هاي‬‫درج‬‫شده‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 5.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 5 ‫ساز‬ ‫درهم‬‫توابع‬ ‫از‬ ‫یكي‬‫است‬،‫آدرس‬ ‫كه‬‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬ ‫به‬ ‫كلید‬ ‫صحیح‬ ‫تقسیم‬ ‫باقیمانده‬m‫باشد‬ ‫مي‬. ‫به‬‫از‬ ‫حاصل‬ ‫آدرس‬ ‫نمونه‬ ‫طو‬‫كلید‬12345678‫آدرسي‬ ‫فضاي‬ ‫در‬1..5000‫برابر‬3088‫مي‬‫چون‬ ، ‫باشد‬: 12345678 mod 4997 = 3088 (‫عدد‬4997،‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬5000‫مي‬‫باشد‬). ‫تقسیم‬ ‫تابع‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 6.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 6 ‫ر‬ ‫ا‬‫با‬‫مستقیم‬ ‫فایل‬m‫حفره‬‫باكت‬ ‫آدرس‬ ،‫حفره‬ ‫آدرس‬ ‫جاي‬ ‫به‬ ،‫كنیم‬ ‫بندي‬ ‫باكت‬ ‫را‬(‫تا‬ ‫صفر‬ ‫از‬M-1)‫خ‬‫واهیم‬‫داشت‬. fBK fBK m M  ‫بندی‬ ‫باکت‬ ‫مزایای‬ 1-‫تصادف‬ ‫مشكل‬ ‫حل‬ ‫در‬ ‫تسهیل‬ 2-‫آدرسها‬ ‫طول‬ ‫شدن‬ ‫كوتاهتر‬ 3-‫مت‬ ‫طول‬ ‫با‬ ‫ركوردهاي‬ ‫با‬ ‫مستقیم‬ ‫فایل‬ ‫ایجاد‬ ‫امكان‬‫غیر‬ ‫بندی‬ ‫باکت‬ :‫ها‬ ‫حفره‬ ‫تعداد‬‫در‬‫هر‬‫باكت‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 7.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 7 ‫وقتي‬‫تابع‬ ‫اعمال‬‫از‬ ‫پس‬ ‫كه‬ ‫دهد‬ ‫مي‬ ‫رخ‬‫ساز‬ ‫درهم‬،‫شود‬ ‫تولید‬ ‫یكساني‬ ‫آدرس‬ ،‫متفاوت‬ ‫كلید‬ ‫دو‬ ‫ازاي‬ ‫به‬. ‫بود‬ ‫خواهد‬ ‫سریعتر‬ ‫ركوردها‬ ‫واكشي‬ ،‫باشد‬ ‫كمتر‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫تعداد‬ ‫هرچه‬. ‫ركوردهاي‬‫شوند‬‫مي‬ ‫بازیابي‬ ‫دستیابي‬ ‫یكبار‬ ‫با‬ ‫غیرتصادفي‬. ‫تصادف‬(collision) ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 8.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 8 ‫ق‬ ‫باكت‬‫آدرس‬ ‫یك‬ ‫در‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫و‬ ‫نمائیم‬ ‫استفاده‬ ‫بندي‬ ‫باكت‬ ‫روش‬ ‫از‬ ‫تصادف‬ ‫مساله‬ ‫حل‬ ‫در‬ ‫ر‬ ‫ا‬‫یرند‬ ‫رار‬ ‫ها‬ ‫حفره‬ ‫تعداد‬ ‫كنیم‬ ‫فرض‬ ‫و‬(m)‫برابر‬512‫باكت‬ ‫در‬ ‫ها‬ ‫حفره‬ ‫تعداد‬ ‫و‬‫برابر‬32‫بیت‬ ‫تعداد‬ ‫صورت‬ ‫این‬ ‫در‬ ،‫باشد‬ ‫آورید؟‬ ‫بدست‬ ‫را‬ ‫دهي‬ ‫آدرس‬ ‫براي‬ ‫الزم‬ ‫هاي‬ )( kfB 16 32 512 M ‫ساختن‬ ‫براي‬ ‫بنابراین‬16‫به‬ ‫حفره‬4‫داریم‬ ‫نیاز‬ ‫بیت‬:4log16 2  ‫باكت‬ ‫از‬ ‫استفاده‬،‫بندي‬5‫بیت‬‫كوتاهتر‬ ‫را‬ ‫آدرسها‬ ‫طول‬‫كرد‬. ‫ر‬ ‫ا‬‫نمي‬ ‫استفاده‬ ‫بندي‬ ‫باكت‬ ‫از‬‫كردی‬‫م‬: 9loglog 512 22 m ‫مثال‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 9.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 9 1-‫انه‬ ‫جدا‬‫فایل‬ ‫ایجاد‬ 2-‫فایل‬ ‫خود‬ ‫در‬ ‫انه‬ ‫جدا‬ ‫اي‬ ‫ناحیه‬ ‫رفتن‬ ‫نظر‬ ‫در‬ 3-‫جادار‬ ‫باكت‬ ‫اولین‬ ‫در‬ ‫تصادفي‬ ‫درج‬ ‫و‬ ‫خطي‬ ‫جستجوي‬ 4-‫مجدد‬ ‫سازي‬ ‫درهم‬(Rehashing) 5-‫جایگزیني‬ ‫بدون‬ ‫زنجیره‬ ‫ایجاد‬ 6-‫جایگزیني‬ ‫با‬ ‫زنجیره‬ ‫ایجاد‬ ‫روش‬‫های‬‫ها‬ ‫سرریزی‬ ‫درج‬ ‫و‬ ‫تصادف‬ ‫مشکل‬ ‫حل‬ ‫تذكر‬:‫روشهاي‬1‫و‬2،‫باشند‬‫نمي‬ ‫رایج‬‫روشهاي‬3‫و‬4‫دهي‬ ‫آدرس‬ ‫را‬‫باز‬(open addresing )‫و‬‫روشهاي‬5‫و‬6‫را‬chaining‫مي‬‫نامند‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 10.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 10 ‫در‬‫شوند‬‫مي‬ ‫درج‬‫آن‬ ‫در‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫و‬ ‫شده‬ ‫رفته‬ ‫نظر‬ ‫در‬ ‫انه‬ ‫جدا‬ ‫فایل‬ ‫یك‬ ‫روش‬ ‫این‬. ‫جداگانه‬ ‫فایل‬ ‫ایجاد‬ ‫روش‬ ‫این‬ ‫معایب‬: 1-‫آید‬ ‫مي‬ ‫بوجود‬ ‫اصلي‬ ‫فایل‬ ‫در‬ ‫هرز‬ ‫هاي‬ ‫حفره‬. 2-‫كند‬ ‫پردازش‬ ‫را‬ ‫فایل‬ ‫دو‬ ‫باید‬ ‫فایل‬ ‫سیستم‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 11.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 11 ‫در‬‫شو‬‫مي‬ ‫استفاده‬‫سرریز‬ ‫ركوردهاي‬ ‫درج‬ ‫براي‬ ‫استوانه‬ ‫هر‬ ‫درانتهاي‬ ً‫ال‬‫مث‬ ‫انه‬ ‫جدا‬ ‫اي‬ ‫ناحیه‬ ‫روش‬ ‫این‬‫د‬. ‫فایل‬ ‫خود‬ ‫در‬ ‫جداگانه‬ ‫ای‬ ‫ناحیه‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫روش‬ ‫این‬ ‫عیب‬: ‫امكان‬‫با‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫داراي‬ ‫اصلي‬ ‫ناحیه‬ ‫از‬ ‫هایي‬ ‫باكت‬ ‫حالیكه‬ ‫در‬ ‫شود‬ ‫پر‬ ‫انه‬ ‫جدا‬ ‫ناحیه‬ ‫از‬ ‫هایي‬ ‫باكت‬ ‫دارد‬‫شند‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 12.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 12 ‫در‬‫ا‬ ‫در‬‫تصادفي‬ ‫ركورد‬ ‫و‬ ‫شده‬ ‫شروع‬ ‫فایل‬ ‫انتهاي‬ ‫سمت‬ ‫به‬ ‫خطي‬ ‫جستجوي‬ ،‫تصادف‬ ‫محل‬ ‫از‬ ‫شروع‬ ‫با‬ ‫روش‬ ‫این‬‫ولدین‬ ‫شود‬‫مي‬ ‫درج‬ ‫جادار‬ ‫باكت‬. ‫جادار‬ ‫باکت‬ ‫اولین‬ ‫در‬ ‫تصادفی‬ ‫درج‬ ‫و‬ ‫خطی‬ ‫جستجوی‬ ‫روش‬ ‫این‬ ‫معایب‬: 1-‫یابد‬ ‫مي‬ ‫افزایش‬ ‫لود‬ ‫فاكتور‬ ‫كه‬ ‫وقتي‬ ‫تصادفي‬ ‫ركورد‬ ‫واكشي‬ ‫براي‬ ‫خطي‬ ‫جستجوي‬ ‫زمان‬ ‫شدن‬ ‫طوالني‬. (‫مرتبط‬ ‫غیر‬ ‫ركوردهاي‬ ‫بررسي‬ ‫علت‬ ‫به‬) 2-‫باشدد‬ ‫داشدته‬ ‫وجدود‬ ‫فایل‬ ‫در‬ ‫ركوردي‬ ‫اینكه‬ ‫وجود‬ ‫با‬ ‫دارد‬ ‫احتمال‬ ‫چون‬ ،‫كرد‬ ‫حذف‬ ‫راحتي‬ ‫به‬ ‫توان‬‫نمي‬ ‫را‬ ‫ركوردها‬، ‫شود‬ ‫صادر‬ ،‫نشد‬ ‫یافت‬ ‫ركورد‬ ‫پیام‬. ‫زیرا‬‫یك‬ ‫حذف‬ ‫صورت‬ ‫در‬‫ر‬‫كورد‬‫مورد‬ ‫ركورد‬ ‫یك‬ ‫یافتن‬ ‫براي‬ ‫خطي‬ ‫كاوش‬ ‫چون‬ ‫و‬ ‫شود‬ ‫مي‬ ‫خالي‬ ‫اي‬ ‫حفره‬ ،،‫نظر‬‫برخور‬ ‫محض‬ ‫به‬‫با‬ ‫د‬ ‫بود‬ ‫نخواهد‬ ‫نظر‬ ‫مورد‬ ‫ركورد‬ ‫یافتن‬ ‫به‬ ‫قادر‬ ‫سیستم‬ ،‫پذیرد‬ ‫مي‬ ‫پایان‬ ‫خالي‬ ‫حفره‬ ‫یك‬. ‫روش‬ ‫به‬ ،‫كند‬ ‫مي‬ ‫استفاده‬ ‫باكت‬ ‫نزدیكترین‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫از‬ ،‫شده‬ ‫پر‬ ‫باكت‬ ‫هر‬ ‫چون‬ ‫روش‬ ‫این‬ ‫در‬"‫بد‬ ‫همسایگی‬"‫معر‬‫است‬ ‫وف‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 13.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 13 ‫در‬‫شود‬ ‫مي‬‫داده‬ ‫دیگري‬ ‫تابع‬ ‫به‬ ‫تصادفي‬ ‫ركورد‬ ‫كلید‬ ‫روش‬ ‫این‬. ‫ر‬ ‫ا‬‫صورت‬ ‫به‬ ‫تابع‬ ‫اولین‬(1)‫كند‬ ‫عمل‬‫صورت‬ ‫به‬ ‫دیگري‬ ‫مشابه‬ ‫تابع‬ ‫و‬(2)،‫كند‬ ‫عمل‬‫برابدر‬ ‫جدیدد‬ ‫آدرس‬ ‫نهایدت‬ ‫در‬ A+D‫بود‬ ‫خواهد‬. A = key mod m1 (1) D = key mod m2+1 (2) (m1‫به‬ ‫نزدیك‬ ‫اول‬ ‫عدد‬m‫و‬m2‫از‬ ‫كوچكتر‬ ‫بالفاصله‬ ‫اول‬ ‫عدد‬m1‫باشد‬ ‫مي‬). ‫ر‬ ‫ا‬A+D‫از‬m‫تر‬ ‫بزر‬،‫باشد‬‫پیمانه‬ ‫به‬ ‫جمع‬ ‫عمل‬m‫شود‬ ‫انجام‬ ‫باید‬. ‫تعداد‬‫است‬ ‫خطي‬ ‫كاوش‬ ‫روش‬ ‫از‬ ‫كمتر‬ ،‫روش‬ ‫این‬ ‫در‬ ‫شونده‬ ‫بررسي‬ ‫هاي‬ ‫حفره‬. ‫مجدد‬ ‫سازی‬ ‫درهم‬(Rehashing) ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 14.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 14 ‫در‬‫شوند‬‫مي‬ ‫بررسي‬‫غیرمرتبط‬ ‫ركوردهاي‬ ،‫خطي‬ ‫جستجوي‬ ‫روش‬. ‫براي‬‫تدا‬ ‫شدوند‬‫مي‬ ‫زنجیدر‬ ‫یكددیگر‬ ‫بده‬ ‫تصدادفي‬ ‫ركوردهداي‬ ،‫ركوردهدا‬ ‫ایدن‬ ‫بررسدي‬ ‫از‬ ‫یري‬ ‫جلو‬‫از‬ ‫شود‬ ‫پرش‬ ‫دخیل‬ ‫غیر‬ ‫ركوردهاي‬. ‫ایجاد‬‫جایگزینی‬ ‫بدون‬ ‫زنجیره‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 15.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 15 ‫ركورد‬R8‫آن‬ ‫براي‬‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬15‫یعني‬ ‫خالي‬ ‫آدرس‬ ‫اولین‬ ‫در‬ ،‫است‬18‫از‬ ‫و‬ ‫شود‬‫مي‬ ‫درج‬R1‫به‬R8‫شود‬‫مي‬ ‫ایجاد‬ ‫ري‬ ‫اشاره‬. ‫ركورد‬ ‫درج‬ ‫براي‬ ‫سپس‬R9‫آن‬ ‫براي‬ ‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬18‫آدرس‬ ‫با‬ ‫خانه‬ ‫از‬ ،‫است‬21‫حفره‬ ‫از‬ ‫و‬ ‫شود‬‫مي‬ ‫استفاده‬18‫به‬21‫شود‬‫مي‬ ‫ایجاد‬ ‫ري‬ ‫اشاره‬. ‫در‬‫ركورد‬ ،‫نهایت‬R10‫آن‬ ‫براي‬ ‫شده‬ ‫تولید‬ ‫آدرس‬ ‫كه‬15‫آدرس‬ ‫حفره‬ ‫در‬ ‫را‬ ‫است‬24‫آدرس‬ ‫از‬ ‫كه‬ ‫اي‬ ‫زنجیره‬ ‫و‬ ‫كنیم‬‫مي‬ ‫درج‬15‫از‬ ‫و‬ ‫شروع‬18‫و‬21‫به‬ ‫بود‬ ‫ذشته‬24‫شود‬‫مي‬ ‫ختم‬. ‫مبدأ‬ ‫به‬ ‫یكي‬ ‫زنجیره‬ ‫دو‬ ‫واقع‬ ‫در‬15‫مبدأ‬ ‫به‬ ‫یكي‬ ‫و‬18‫اند‬‫شده‬ ‫تبدیل‬ ‫زنجیره‬ ‫یك‬ ‫به‬ ‫كه‬ ،‫دارد‬ ‫وجود‬. ‫این‬‫را‬ ‫مشكل‬‫ها‬‫زنجیره‬ ‫ائتالف‬(Coalesce)‫ویند‬ ‫مي‬. ‫م‬ ‫كاهش‬ ‫حذف‬ ‫و‬ ‫درج‬ ‫در‬ ‫فایل‬ ‫كارایي‬ ‫و‬ ‫شده‬ ‫طوالني‬ ‫ها‬ ‫زنجیره‬ ‫طول‬ ،‫لود‬ ‫فاكتور‬ ‫افزایش‬ ‫با‬ ‫كه‬ ‫شود‬‫مي‬ ‫باعث‬ ‫ائتالف‬ ‫پدیده‬‫یابد‬ ‫ي‬. ‫تابع‬‫آمد‬ ‫در‬ ‫زیدر‬ ‫صورت‬ ‫به‬ ‫ركوردها‬ ‫این‬ ‫درج‬ ‫از‬ ‫بعد‬ ‫فایل‬ ‫و‬ ‫ایم‬ ‫كرده‬ ‫اعمال‬ ‫ركورد‬ ‫چند‬ ‫كلید‬ ‫روي‬ ‫را‬ ‫ساز‬ ‫درهم‬‫ده‬ ‫است‬.‫ركورد‬R8‫آدرس‬ ‫با‬15‫و‬‫ركورد‬R9‫آدرس‬ ‫با‬18‫و‬‫ركورد‬R10‫با‬‫آدرس‬15‫درج‬‫كنید‬. ‫مثال‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 16.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 16 ‫بدون‬ ‫درج‬‫روش‬ ‫اساسي‬ ‫مشكل‬‫جایگزین‬‫ي‬‫ركورد‬ ‫كه‬ ‫است‬ ‫وقتي‬‫زنجیره‬ ‫سر‬‫شود‬ ‫حذف‬. ‫در‬‫شد‬ ‫خواهد‬ ‫اعالم‬ ‫ندارد‬ ‫وجود‬ ‫ركورد‬ ‫پیام‬ ،‫زنجیره‬ ‫از‬ ‫ركورد‬ ‫یك‬ ‫بازیابي‬ ‫هنگام‬ ‫در‬ ‫حالت‬ ‫این‬. ‫بنابراین‬‫زنجیره‬ ‫سر‬‫منطقي‬ ‫حذف‬ ‫است‬ ‫بهتر‬‫شود‬(.‫نشانگر‬‫اعالم‬ ‫خالي‬ ‫حفره‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شود‬ ‫درج‬ ‫آن‬ ‫براي‬ ‫شده‬ ‫حذف‬‫نش‬‫ود‬.) ‫است‬ ‫كمتر‬ ‫قبلي‬ ‫روشهاي‬ ‫از‬ ‫جایگزیني‬ ‫بدون‬ ‫زنجیره‬ ‫ایجاد‬ ‫روش‬ ‫در‬ ‫جستجو‬ ‫زمان‬. ‫مشکل‬‫روش‬‫بدون‬ ‫درج‬‫جایگزین‬‫ی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 17.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 17 ‫كند‬ ‫مي‬‫كوتاهتر‬ ‫هم‬ ‫باز‬ ‫را‬ ‫جستجو‬ ‫زمان‬ ،‫حذف‬ ‫مشكل‬ ‫رفع‬ ‫بر‬ ‫عالوه‬ ،‫جایگزیني‬ ‫با‬ ‫زنجیره‬ ‫ایجاد‬ ‫روش‬. ‫مربدو‬ ‫حفره‬ ‫در‬ ‫موجود‬ ‫ركورد‬ ،‫باشد‬ ‫اشغال‬ ‫آن‬ ‫طبیعي‬ ‫آدرس‬ ‫چنانچه‬ ،‫جدید‬ ‫ركورد‬ ‫درج‬ ‫هنگام‬ ‫روش‬ ‫این‬ ‫در‬ ‫یرد‬ ‫مي‬ ‫جاي‬ ‫خود‬ ‫طبیعي‬ ‫حفره‬ ‫در‬ ‫جدید‬ ‫ركورد‬ ‫و‬ ‫شده‬ ‫برداشته‬ ‫حفره‬ ‫از‬ ‫شدني‬ ‫درج‬ ‫ركورد‬ ‫به‬. ‫ایجاد‬‫جایگزینی‬ ‫با‬ ‫زنجیره‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 18.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 18 ‫تابع‬‫د‬ ‫زیدر‬‫صدورت‬ ‫بده‬ ‫ركوردها‬ ‫این‬ ‫درج‬ ‫از‬ ‫بعد‬ ‫فایل‬ ‫و‬ ‫ایم‬ ‫كرده‬ ‫اعمال‬ ‫ركورد‬ ‫چند‬ ‫كلید‬ ‫روي‬ ‫را‬ ‫ساز‬ ‫درهم‬‫ر‬ ‫است‬ ‫آمده‬.‫ركورد‬R8‫آدرس‬ ‫با‬15‫ركورد‬ ‫و‬R9‫آدرس‬ ‫با‬18‫ركورد‬ ‫و‬R10‫آدرس‬ ‫با‬15‫كنید‬ ‫درج‬ ‫را‬. ‫مثال‬ ‫در‬‫مي‬ ‫كاهش‬ ‫ها‬ ‫زنجیره‬ ‫طول‬ ‫و‬ ‫دهد‬ ‫نمي‬ ‫رخ‬ ‫ها‬ ‫زنجیره‬ ‫ائتالف‬ ‫پدیده‬ ‫و‬ ‫داریم‬ ‫زنجیره‬ ‫دو‬ ‫حالت‬ ‫این‬‫یابد‬. ‫همچنین‬‫است‬ ‫بیشتر‬ ،‫بگیرد‬ ‫قرار‬ ‫اش‬ ‫طبیعي‬ ‫آدرس‬ ‫در‬ ‫ركورد‬ ‫یك‬ ‫اینكه‬ ‫احتمال‬. ‫ابتدا‬R8‫حفره‬ ‫در‬18‫طبیعي‬ ‫آدرس‬ ‫چون‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫یرد‬ ‫مي‬ ‫قرار‬R9‫برابر‬18، ‫است‬R8‫یعني‬ ‫خالي‬ ‫حفره‬ ‫اولین‬ ‫در‬ ‫و‬ ‫شود‬‫مي‬ ‫برداشته‬21‫و‬ ‫رفته‬ ‫قرار‬R9‫شود‬‫مي‬ ‫درج‬ ‫آن‬ ‫جاي‬ ‫به‬. ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 19.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 19 ‫عملیات‬‫ركورد‬ ‫واكشي‬‫براي‬ ‫الزم‬: 1-‫آدرس‬ ‫یافتن‬ ‫و‬ ‫تابع‬ ‫اعمال‬ 2-‫است‬ ‫آمده‬ ‫بدست‬ ‫آن‬ ‫آدرس‬ ‫كه‬ ‫باكتي‬ ‫خواندن‬. 3-‫باكت‬ ‫محتواي‬ ‫بررسي‬ 4-‫جستجو‬ ‫تصادفي‬ ‫ركوردهاي‬ ‫در‬ ‫را‬ ‫آن‬ ‫باید‬ ‫و‬ ‫است‬ ‫تصادفي‬ ،‫نباشد‬ ‫باكت‬ ‫در‬ ‫ركورد‬ ‫ر‬ ‫ا‬‫كرد‬. ‫رکورد‬ ‫واکشی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 20.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 20 ‫چون‬‫مفهومي‬ ‫هیچ‬‫بعدي‬ ‫ركورد‬ ،‫است‬ ‫پایل‬ ‫نوع‬ ‫از‬ ‫فایل‬‫ندارد‬. ‫بنابراین‬‫جدید‬ ‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫مانند‬ ‫بعدي‬ ‫ركورد‬ ‫بازیابي‬‫است‬. FN TT  ‫بعدی‬ ‫رکورد‬ ‫بازیابی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 21.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 21 ‫ر‬ ‫ا‬‫انجام‬‫درجا‬ ‫صورت‬ ‫به‬ ‫سازي‬ ‫بهنگام‬ ،‫نشود‬ ‫عوض‬ ‫كلید‬ ‫مقدار‬‫شود‬‫مي‬. ‫براي‬‫شود‬‫مي‬ ‫بازنویسي‬ ‫ركورد‬ ،‫بافر‬ ‫در‬ ‫جدید‬ ‫نسخه‬ ‫ایجاد‬ ‫از‬ ‫بعد‬ ‫و‬ ‫شده‬ ‫واكشي‬ ‫ركورد‬ ‫اینكار‬. ‫البته‬‫ج‬ ‫نسدخه‬ ‫و‬ ‫شدود‬‫مي‬ ‫بازنویسدي‬ ‫شدده‬ ‫حذف‬ ‫نشانگر‬ ‫با‬ ‫قدیم‬ ‫نسخه‬ ،‫شود‬ ‫عوض‬ ‫ركورد‬ ‫كلید‬ ‫ر‬ ‫ا‬‫درج‬ ‫دیدد‬ ‫شود‬‫مي‬. ‫سازی‬ ‫بهنگام‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 22.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 22 ‫چون‬‫خواندن‬ ‫هنگام‬‫در‬ ،‫باشد‬‫مي‬ ‫خالي‬ ‫هاي‬ ‫حفره‬ ‫داراي‬ ‫فایل‬ ‫این‬‫ترتیبي‬‫شوند‬ ‫خوانده‬ ‫آنها‬ ‫همه‬ ‫باید‬ ،. ‫در‬‫كلید‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫ركوردها‬ ‫تمام‬ ‫بازیابي‬ ‫براي‬ ‫الزم‬ ‫زمان‬ ‫مستقیم‬ ‫ساختار‬ ‫با‬ ‫فایل‬‫باشد‬ ‫مي‬. FnT ‫فایل‬ ‫کل‬ ‫خواندن‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 23.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 23 ‫ر‬ ‫ا‬‫مجدد‬‫سازماندهي‬ ‫باید‬ ‫فایل‬ ،‫شود‬ ‫پر‬ ‫سرریزي‬ ‫انه‬ ‫جدا‬ ‫ناحیه‬ ‫یا‬ ‫شود‬ ‫طوالني‬ ‫تصادفي‬ ‫زنجیره‬‫ردد‬. ‫براي‬‫لود‬ ‫فعال‬ ‫ركوردهاي‬ ‫با‬ ‫را‬ ‫فایل‬ ‫سپس‬ ‫و‬ ‫خواند‬ ‫باید‬ ‫را‬ ‫فایل‬ ‫كل‬ ‫ابتدا‬ ‫اینكار‬‫كرد‬. ‫فایل‬‫ندارد‬ ‫مجدد‬ ‫سازماندهي‬ ‫به‬ ‫نیازي‬ ‫آغازین‬ ‫نظم‬ ‫احیاء‬ ‫نظر‬ ‫از‬ ‫مستقیم‬. ‫مجدد‬ ‫سازماندهی‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 24.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 24 ‫طراح‬‫فایل‬ ‫سیستم‬‫توسط‬‫تابع‬ ‫انتخاب‬ ‫ضوابط‬ ‫از‬ ‫باید‬‫فایل‬ ‫پردازشگر‬‫بهتری‬ ‫بتواند‬ ‫تا‬ ،‫باشد‬ ‫مطلع‬‫كند‬ ‫انتخاب‬ ‫را‬ ‫تابع‬ ‫ن‬. ‫این‬‫از‬ ‫عبارتند‬ ‫ضوابط‬: 1-‫كرد‬ ‫اعمال‬ ‫كلید‬ ‫ارقام‬ ‫تمام‬ ‫روي‬ ‫را‬ ‫تابع‬ ‫بتوان‬. 2-‫شوند‬ ‫توزیع‬ ‫تري‬ ‫یكنواخت‬ ‫طور‬ ‫به‬ ‫ركوردها‬. 3-‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫براي‬ ‫الزم‬ ‫هاي‬ ‫تصادفي‬ ‫تعداد‬ ‫بودن‬ ‫كمتر‬. 4-‫عملیات‬ ‫تعداد‬ ‫متوسط‬ ‫بودن‬ ‫كمتر‬I /O‫ركورد‬ ‫یك‬ ‫واكشي‬ ‫براي‬ ‫الزم‬. ‫مناسب‬ ‫ساز‬ ‫درهم‬ ‫تابع‬ ‫انتخاب‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 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.1 7 10 7 3211111 :1   h 2.1 7 9 7 2211111 :2   h ‫تابع‬ ‫بنابراین‬،‫دوم‬‫است‬ ‫مناسبتر‬. ‫مثال‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 26.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 26 1-‫ترتیبي‬ ‫پردازش‬‫ماهیت‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫نیست‬‫و‬‫نظ‬ ‫مورد‬ ‫ركوردها‬ ‫به‬ ‫سریع‬ ‫دستیابي‬‫باشد‬ ‫ر‬. 2-‫عملیات‬ ‫نرخ‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫درج‬‫باشد‬ ‫پایین‬. 3-‫ركوردها‬ ‫طول‬ ‫كه‬ ‫هایي‬ ‫محیط‬ ‫در‬‫ثابت‬‫باشند‬ ‫كوچك‬ ‫و‬. 4-‫تركیبي‬ ‫ساختارهاي‬ ‫ایجاد‬ ‫در‬(‫شاخص‬ ‫اول‬ ‫سطح‬ ‫در‬ ‫شاخص‬ ‫مدخلهاي‬ ‫به‬ ‫دسترسي‬ ‫یا‬ ‫اي‬ ‫حلقه‬ ‫چند‬ ‫فایل‬ ‫در‬ ‫سرآیندها‬ ‫به‬ ‫دسترسي‬) ‫مستقیم‬ ‫ساختار‬ ‫کاربرد‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 27.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 27 1-‫آدرسي‬ ‫فضاي‬‫در‬ ‫ركوردها‬ ‫نایكنواخت‬ ‫توزیع‬ ‫و‬ ‫فایل‬ ‫در‬ ‫هرز‬ ‫حافظه‬ ‫بروز‬ 2-‫تقارن‬ ‫عدم‬(‫یك‬ ‫فقط‬‫فیلد‬‫به‬‫شود‬‫مي‬ ‫معرفي‬ ‫كلید‬ ‫عنوان‬). 3-‫ركوردها‬ ‫طول‬ ‫بودن‬ ‫ثابت‬ ‫محدودیت‬ 4-‫تصادف‬ ‫پدیده‬ 5-‫فایل‬ ‫بودن‬ ‫پایل‬ ‫علت‬ ‫به‬ ‫بعدي‬ ‫ركورد‬ ‫بازیابي‬ ‫امكان‬ ‫عدم‬ 6-‫ركوردها‬ ‫سریال‬ ‫پردازش‬ ‫امكان‬ ‫عدم‬ ‫مبنایی‬ ‫مستقیم‬ ‫فایل‬ ‫معایب‬ ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org
  • 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
  • 29.
  • 30.
    ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 ‫فرادرس‬ ‫در‬‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬ «‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬» ‫تهیه‬‫است‬ ‫شده‬. ‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬ faradars.org/fvsft106 ‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬ ‫اطالعات‬ faradars.org/fvsft106 ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬ FaraDars.org