‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬»
‫تهیه‬‫است‬ ‫شده‬.
‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬
faradars.org/fvsft106
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫مدرس‬:
‫شیرافکن‬ ‫فرشید‬
‫دانشجوی‬‫دکتری‬‫تهران‬ ‫دانشگاه‬
(‫ارشد‬ ‫کارشناسی‬ ‫و‬ ‫کارشناسی‬:‫افزار‬ ‫نرم‬ ‫کامپیوتر‬( )‫دکتری‬:‫انفورماتیک‬ ‫بیو‬)
‫اطالعات‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬
‫ششم‬ ‫درس‬:‫ترتیبی‬ ‫ساختار‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
3
‫در‬‫فایل‬‫ترتیبی‬،‫کلیدی‬‫رکوردها‬‫به‬‫ترتیب‬‫کلید‬‫ذخیره‬‫می‬‫شوند‬.
‫ترتیبی‬ ‫ساختار‬ ‫معرفی‬
Vn…V2V1
‫قالب‬‫رکوردها‬‫ثابت‬‫مكان‬‫است‬‫و‬‫نیازی‬‫به‬‌‫ه‬‫ذخیر‬‫سازی‬‫اسم‬‫فیلد‬‫نمی‬‫‌باشد‬.
‌‫صرفه‌جویی‌در‌حافظه‌به‌علت‌ذخیره‌نكردن‌اسم‬‫فیلد‬
‫استراتژی‌دستیابی‬‫دارد‬.
‌‫مصرف‌حافظه‌بیشتر‌به‌علت‌در‌نظر‌گرفتن‌فیلد‌برای‌اطالع‌نهست‬
‫در‬‫لود‬،‫اولیه‬‫همه‬‫رکوردها‬‫براساس‬‫مقادیر‬‫کلید‬‫مرتب‬‫هست‬‫ند‬.
‫تقارن‬‌‫ندارد‬‌:‫چون‌استراتژی‌دستیابی‌فقط‌متكی‌به‌کلید‌است‌و‌صفات‌دیگر‌ن‬‫قش‌ندارند‬.
‌‫‌توان‬‫ی‬‫نم‬‫طول‌رکورد‌را‌تغییر‌داد‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
4
‌‫فایل‬‌‫ثبت‌تراکنش‌ها‬(Transaction Log File‌)‫در‌عملیات‌درج‌استفاده‌می‌شود‬‌.
‌‫در‬‫عمل‌درج،‌رکورد‌درج‌شدنی‌باید‌در‌محل‌منطقی‌اش‌درج‌شود‌و‌اگر‌فایل‌بزرگ‌باشد،‌این‌عمل‌به‌زماان‌زیااد‬‌‫ی‬
‫نیاز‌دارد‬‌.
‌‫به‬‌‫‌کنند‌و‌تمام‌عملیات‌تغییر‌دهنده‌در‬‫ی‬‫همین‌علت‌فایل‌ترتیبی‌را‌فقط‌خواندنی‌ایجاد‌م‬T.L.F‫‌شود‬‫ی‬‫انجام‌م‬‌.
‫فایل‬T.L.F
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
5
1-‫فایل‌اصلی‬(‫ترتیبی‌کلیدی‬)
2-‌‫فایل‬T.L.F(‫ترتیبی‌زمانی‬‌‌)
‌‫ظرفیت‌فایل‬‌‌:S=(n+o).R
o‌:‌‫تعداد‬‌‫‌های‌فایل‌تراکنش‬‫د‬‫رکور‬
n‌:‌‫تعداد‬‫رکوردهای‌فایل‌اصلی‬
‫فایل‬ ‫انواع‬‫ساختار‬ ‫در‬‫ترتیبی‬
‌‫فایل‬T.L.F‌‫در‌فایل‌اصلی‌ادغام‬‌‫شده‬‫‌شود‬‫ی‬‫و‌یك‌فایل‌ترتیبی‌جدید‌تولید‌م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
6
1-‫نیازی‌به‌تغییر‌طول‌رکورد‌نباشد‬‌.
2-‫واکشی‌سریع‌تك‌رکوردها‌مورد‌نظر‌نباشد‬.
3-‫در‌ایجاد‌بعضی‌از‌ساختارها‌الزم‌است‌که‌ابتدا‌فایل‌به‌صورت‌ترتیبی‌ایجاد‌گردد‬.
4-‌‫کاربردهای‬‫تجاری‬
‫ترتیبی‬ ‫ساختار‬ ‫استفاده‬ ‫موارد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
7
‌‫رکورد‬‌‫دارای‌قالب‌ثابت‌مكان‬‫است‬‌:
VaR .
a‌:‌‫تعداد‌صفات‌در‌یك‌نمونه‬‫رکورد‬
V‌:‌‫متوسط‌حافظه‌الزم‌برای‌ذخیره‌مقدار‬‫صفت‬
‫رکورد‬ ‫اندازه‬ ‫متوسط‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
8
1-‫نباشد‬ ‫کلید‬ ‫جستجو‬ ‫آرگومان‬.
‌‫فایل‬‌‫حالتی‌از‌پایل‬‫است‬:'
'
2
)(
t
Ron
TF 


‌:‌‫تعداد‬‌‫رکوردهای‬T.L.F‫در‌لحظه‌واکشی‬
'
o
2-‫باشد‬ ‫کلید‬ ‫جستجو‬ ‫آرگومان‬.
‌‫از‬‫‌شود‬‫ی‬‫یك‌الگوریتم‌جستجو‌استفاده‌م‬‌.
‌‫الگوریتم‬‌‫های‌جستجو‬‌:‫جستجوی‌دودویی،‌جستجو‌با‌پرش‌بالکی‌وجستجو‌با‌تخمین‌و‌کاوش‬.
‫رکورد‬ ‫واکشی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
9
‌‫فایل‬‌،‫باید‌در‌یك‌فضای‌پیوسته‌ذخیره‌شده‌باشد‬‌‫تا‌بتوان‬‌‫هر‬‫بار‌آدرس‌بالك‌میانی‌را‌بدست‌آورد‬‌.
‌‫یك‬‌‫جستجو‬‌‫دودویی‬‌‫انجام‬‫‌شود‌تا‌بالك‌حاوی‌رکورد‌مورد‌نظر،‌پیدا‌شود‬‫ی‬‫م‬‌.
‌‫سپس‬‌‫‌شود،‌یك‌جستجو‌دودویی‬‫ی‬‫برای‌هر‌بالك‌که‌به‌بافر‌آورده‌م‬‌‫درون‌بالکی‬‌‫‌شود‌تا‬‫ی‬‫انجام‌م‬‫رکورد‬‫مورد‌نظ‬‫رپیدا‌شود‬‌.
‌‫ممكن‬‌‫است‌رکورد‌در‬T.L.F‫باشد،‌که‌باید‌فایل‌تراکنش‌را‌نیز‌خواند‬.
).
2
(]log)[( '
'
)(
2
t
Ro
CbrsT B
nR
BttF 
‫دودویی‬ ‫جستجوی‬
ttbrs ‌:‌‫زمان‌خواندن‌مستقیم‌یك‌بالك‬(‫بالك‌میانی‬)
BC‌:‌‫زمان‌بررسی‌محتوای‌بالك‬‌(‌‫آیا‌رکورد‌در‌بالك‌هست‌یا‌نه‬)
)(
2log B
nR
‌:‫تعداد‌مراجعات‌به‌فایل‬
t
R
.
2
O


‌:‌‫زمان‌واکشی‌رکورد‌از‬T.L.F
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
10
‌‫کلید‬‫‌شود‌و‌در‌صورت‌بزرگتر‌بودن‌با‌پرش‌از‌بالك‬‫ی‬‫رکورد‌مورد‌نظر‌با‌کلید‌رکورد‌آخر‌بالك‌مقایسه‌م‬‌‫،‌بالك‌بعدی‬
‫خوانده‌شده‌و‌در‌صورت‌کوچكتر‌بودن‌محتوای‌بالك‌خوانده‌می‌شود‬‌.
‌‫در‬‫این‌حالت‌بطور‌متوسط‌نصف‌بالکها‌باید‌خوانده‌شود‬.
‌‫آنگاه‬‫تعداد‌رکوردهایی‌که‌باید‌بررسی‌شود‌به‌حداقل‌می‌رسد‬‌.nBf

‌‫حداقل‌تعداد‌مقایسه‌ها‌برای‌یافتن‌رکورد‌به‌روش‌جستجو‌پرش‌بالکی‌برابر‬‌‫می‬‫باشد‬ n
‫بالکی‬ ‫پرش‬ ‫با‬ ‫جستجو‬(Skipped block search)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
11
‌‫در‬‫‌گیرد‌تاا‌رکا‬‫ی‬‫‌شود‌و‌از‌این‌آدرس‌جستجوی‌خطی‌انجام‌م‬‫ی‬‫این‌جستجو‌آدرس‌تقریبی‌رکورد‌تخمین‌زده‌م‬‌‫ورد‬
‫مورد‌نظر‌پیدا‌شود‬‌.
‌‫اگر‬‫‌گیرد‬‫ی‬‫‌شود‌و‌کاوش‌انجام‌م‬‫ی‬‫رکورد‌در‌کاوش‌اول‌پیدا‌نشود،‌دوباره‌آدرس‌رکورد‌تخمین‌زده‌م‬‌.
‌‫اگر‬‌‫تعداد‌بالکهایی‌که‌باید‌خوانده‌شوند‌تا‌رکورد‌پیدا‌شود‌را‬k‫در‌نظر‌بگیریم،‌آنگاه‬:
)()( ttF brs
t
B
kT 


‫تذکر‬‌:‫کارایی‌این‌روش‌بستگی‌به‌چگونگی‌توزیع‌رکوردها‌دارد‬.
‫و‬ ‫تخمین‬ ‫با‬ ‫جستجو‬‫کاوش‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
12
‌‫اگر‬‌‫رکورد‌اول‌تا‬‌‫رکورد‬‌‫یكی‌به‌آخر‌بالکی‌را‌رکورد‬‫فعلی‬‌‫در‌نظر‌بگیریم،‌رکورد‬‫بعدی‬‫در‌همان‌باالك‌خواها‬‌‫د‌باود‌و‬
‫برای‌بازیابی‌آن‌نیاز‌به‌خواندن‌بالك‌بعدی‌نمی‌باشد‬‌.
‌‫اما‬‫اگر‌آخرین‌رکورد‌بالك‌را‌رکورد‌فعلی‌در‌نظر‌بگیریم‌،‌آنگاه‌رکورد‌بعدی‌در‌بالك‌بعدی‌خواهد‌باود‌و‌ب‬‌‫ایاد‌بارای‬
‫بازیابی‌آن‌بالك‌بعدی‌خوانده‌شود‬.
‌‫احتمال‌این‌حالت‬‌‫می‬‫باشد‬‌.
fB
1
‫بعدی‬ ‫رکورد‬ ‫بازیابی‬
''
1
t
R
t
B
B
T
f
N 
‌‫اگر‌رکورد‌بعدی‌در‬T.L.F‌،‫باشد‬‌‫چون‌هیچ‌ارتباط‬‫ساختاری‬(‌‫مثال‬‌‫از‌طریق‌اشاره‬‫گر‬‌)‫بین‌رکورد‌فعلی‌از‌فایل‌اصلی‌و‌رکورد‌بعدی‬‌‫وجاود‬
‌،‫ندارد‬‌‫بازیابی‌رکورد‌بعدی‌به‌یك‌جستجو‌در‬T.L.F‫منجر‌می‌شود‌که‌عملی‌محتوایی‌است‌و‌امكان‌پذیر‌نیست،‌مگر‌اینكه‌مقدار‌کل‬‌‫یاد‬
‌‫رکورد‌بعدی‌را‌داشته‌باشیم‌و‌عمل‌بازیابی‌رکورد‌بعدی‌تبدیل‌به‌واکشی‌یك‌رکورد‌از‬T.L.F‫می‌شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
13
‌‫در‬‫‌کنیم‬‫ی‬‫فایلهای‌کوچك،‌رکورد‌را‌در‌محل‌واقعی‌اش‌درج‌م‬‌.
‌‫برای‬‫این‌کار‌محل‌درج‌را‌پیدا‌کرده‌و‌رکوردهای‌دیگر‌را‌به‌سمت‌انتهای‌فایل‌شیفت‌می‌دهیم‌و‌ر‬‌‫کاورد‬
‫‌کنیم‬‫ی‬‫را‌در‌بالك‌مورد‌نظر‌درج‌م‬‌.
‌‫در‬‫‌شوند‬‫ی‬‫این‌حالت‌به‌طور‌متوسط‌نصف‌بالکها‌شیفت‌داده‌م‬‌:
)(
2 ' RWFI T
t
Bb
TT 
‫درج‬‫کوچک‬ ‫فایل‬ ‫در‬
FT‌:‌‫زمان‌پیدا‌کردن‌محل‌درج‬RWT
t
B

‌:‌‫زمان‌شیفت‌یك‌بالك‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
14
‌‫رکورد‬‌‫در‌آخرین‌بالك‬T.L.F‌‫‌شود‌تا‌در‌سازماندهی‌مجدد،‌بازآرایی‬‫ی‬‫درج‌م‬(Reordering)‌‫شود‌و‌در‌محل‌واقعی‌اش‌در‌فایل‬
‫اصلی‌قرار‌بگیرد‬.
o
T
brsT
y
ttI  )3(
‫کلی‬ ‫حالت‬ ‫در‬ ‫درج‬
ttbrs  3
o
Ty
‌:‌‫زمان‌درج‌در‬T.L.F(‌‫برابر‌با‌زمان‌درج‌در‌فایل‬‌‫پایل‬)
‌:‌‫سرشكن‌کردن‌زمان‌سازماندهی‌مجدد‌بر‌روی‬o‌‫رکورد‬T.L.F
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
15
‌‫رکورد‬‫مورد‌نظر‌را‌واکشی‌کرده‌و‌بعد‌از‌انجام‌عملیات‌بهنگام‌سازی‌در‌بافر،‌رکورد‌بهنگام‌درآمده‌را‌هماراه‌باا‬‌‫یاك‬
‌‫رکورد‌کوچك‌پیوست‌شده‌به‌آن‬(‫شامل‌تاریخ‌بهنگام‌سازی‌و‌نشانگر‌حذف‌شده‬‌)‌‫،‌در‬T.L.F‫درج‌می‬‫کنیم‬‌.
IFU TTT 
‌‫ر‬‫تذک‬‌:‫منظور‌از‌نشانگر‌حذف‌شده،‌این‌است‌که‌نسخه‌قدیم‌در‌فایل‌اصلی،‌در‌ساازماندهی‌مجادد،‌حاذف‌شاد‬‌‫نی‬
‫است‬.
‫سازی‬ ‫بهنگام‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
16
‫فایل‬ ‫تمام‬ ‫خواندن‬
‌‫اگر‬‫فایل‌به‌طور‌پی‌در‌پی‌خوانده‌شود‬‌:
`
`)(
t
R
onTXseq 
‌‫برای‬‌،‫خواندن‌سریال‬T.L.F‫باید‌مرتب‌شود‬‌:
'
''
)()(
t
R
onoTT sortxser 
‫تذکر‬‌:‌‫البته‌گاه‌در‌عمل،‌اگر‌پریود‌خواندن‌سریال‌طوالنی‌باشد،‌فایل‌اصلی‌را‌با‬T.L.F‫ادغام‌می‌کنند‬‌.
‌(‫سازماندهی‌مجدد‬‌)‫و‌سپس‌فایل‌اصلی‌جدید‌که‌کامال‌ترتیبی‌است،‌خوانده‌می‌شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
17
1-‌‫مرتب‌کردن‬‌‫فایل‌تراکنش‬(‫همتوالی‌کردن‌با‌فایل‌اصلی‬)
2-‌‫خواندن‬‌‫فایل‌اصلی‬
3-‌‫خواندن‬‌‫فایل‌تراکنش‬
4-‌‫بالك‌بندی‌مجدد‬‫رکوردها‬(‫ادغام‌آنها‌طبق‌نظم‬‌)‫ضمن‌خارج‌کردن‌رکوردهای‌حذف‌شدنی‬
5-‌‫بازنویسی‌کل‬‫فایل‬.
t
R
don
t
R
o
t
R
noTTy sort





 )(.)(
‫مجدد‬ ‫سازماندهی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
18
‫ترتیبی‬ ‫ساختار‬ ‫زمانی‬ ‫پارامترهای‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
19
‌‫پایان‬
‫فصل‌ششم‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫بازیابی‬ ‫و‬ ‫ذخیره‬ ‫آموزش‬‫اطالعات‬»
‫تهیه‬‫است‬ ‫شده‬.
‫نمای‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬‫ید‬
faradars.org/fvsft106
‫ذخیره‬ ‫آموزش‬‫و‬‫بازیابی‬
‫اطالعات‬
faradars.org/fvsft106
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org

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