تارا فایل

پاورپوینت نگهداری فایلهای ایندکس دار


File Structure
Lecture 10 نگهداری فایلهای ایندکس دار Maintenance of Indexed files (Sections 7.5-7.6)

File Structure
نگهداری فایلهای ایندکس دار Maintenance of Indexed files
نگهداری فایلهای ایندکس دار چه مسائلی را بهمراه دارد؟

چه عملیاتی روی فایل یا ایندکس آن بایستی درنظرگرفت؟

مشکلات ایندکس های بزرگتر از فضای حافظه چیست؟

موارد استفاده ایندکس های متعدد چیست؟

ساختار ایندکس های ثانوی چگونه است؟

چه عملیاتی روی ایندکس ثانوی بایستی درنظرگرفت؟

File Structure
نگهداری فایلهای ایندکس دار Maintenance of Indexed files
نگهداری فایلهای ایندکس دارچه مسائلی را بهمراه دارد؟

چه عملیاتی روی فایل یا ایندکس آن بایستی درنظرگرفت؟

ایجاد اوّلیه ایندکس به همراه خود فایل
آوردن ایندکس در حافظه RAM قبل از استفاده از فایل
بازنویسی ایندکس روی دیسک بعد از استفاده از فایل
ایجاد رکوردها
حذف رکوردها
به روز آوردن رکورد ها (Update)

File Structure
نگهداری فایلهای ایندکس دار
ایجاد اوّلیه ایندکس به همراه خود فایل:

هنگام ایجاد فایل (Create File).

بایستی ایجاد ایندکس مربوطه را نیز پیش بینی نمود.

اگر چه در آغاز هر دو تهی از داده ها (Data) می باشند.

آوردن ایندکس در حافظه RAM قبل از استفاده از فایل:

هنگام شروع استفاده از فایل (Open File).

بایستی ایندکس نیز باز شده.

داده های ایندکس به حافظه RAM آورده شوند (Load).

File Structure
نگهداری فایلهای ایندکس دار
بازنویسی ایندکس روی دیسک بعد از استفاده از فایل:

در پایان استفاده از فایل (Close File)،

بایستی داده های ایندکس نیز در فایل ایندکس نوشته شده (Rewrite)،

و سپس هر دو فایل بسته شوند.

مدیریت صحت (به روز بودن) فایل ایندکس:

برای جلوگیری از حوادث پیش بینی نشده (مثل Failure Power).

بایستی یک علامت (Flag) در آغاز فایل ایندکس پیش بینی شود.

تا وقتیکه ایندکس به روز نشده است این Flag در حالت "ON" قرار داشته باشد. (کی؟)

هنگام استفاده مجدد اگر Flag=ON باشد بایستی ایندکس بازسازی شود. (چرا؟)

File Structure
نگهداری فایلهای ایندکس دار
ایجاد رکوردها:

هنگام ایجاد یک رکورد جدید در فایل این رکورد در آخر فایل اضافه می شود

ولی کلید مربوط به این رکورد بایستی در محل مناسب خود در ایندکس اضافه (Insert) شود

بطوریکه همواره کلیدها در ایندکس مرتب شده باشند (ُSorted)

File Structure
نگهداری فایلهای ایندکس دار
حذف رکوردها:

هنگام حذف یک رکورد در فایل،
فضای ایجاد شده در فایل به Avail list اضافه میشود.
ولی در مورد ایندکس اینطور نیست،
دو راه حل وجود دارد:

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

File Structure
نگهداری فایلهای ایندکس دار
به روز آوردن رکوردها (Update):

هنگام به روز آوردن یک رکورد داده:

در صورت تغییر طول رکورد بایستی:
اوّل مانند حالت حذف،
و سپس مانند حالت اضافه نمودن رکورد عمل کرد.

در غیر اینصورت در همان مکان قبلی رکورد به روز می شود.

اما در هر حال در مورد ایندکس مربوطه:

اگر مقدارکلید تغییر کرده باشد بایستی:
اوّل مانند حالت حذف،
و سپس مانند حالت اضافه نمودن رکورد عمل کرد.

در غیر اینصورت هیچ عملی لازم نمی باشد.

File Structure
ایندکس های بزرگتر از فضای حافظه
اگرایندکس بزرگتر از فضای حافظه (RAM) باشد چه اشکالاتی دارد؟

درصورتیکه امکان آوردن کل ایندکس به حافظه RAM نباشد:

برای جستجوی دودئی هرکلیدها چندین دسترسی به دیسک خواهیم داشت!

هنگام ایجاد یا حذف هرکلید، عمل شیفت باعث چندین دسترسی به دیسک خواهد شد!

در این موارد چه راه حل هایی وجود دارد؟

کدامیک از مزایای یک ایندکس ساده حتّی روی دیسک نیز به قوت خود باقیست؟

به هرحال امکان جستجوی دودیی را برای فایلی با رکورد متغیر فراهم میکند.

حتّی روی دیسک هم، مرتّب سازی آن کم هزینه تراز فایل اصلی میباشد. (چرا؟)

به هرصورت از ایجاد نشانگرهای سرگردان جلوگیری میکند. (چرا؟)

File Structure
استفاده از ایندکس های متعدد
موارد استفاده ی ایندکس های متعدد چیست؟

ایجاد چند مسیر با کلیدهای مختلف برای دسترسی به داده های یک فایل.

برای هر فایل می توانیم یک ایندکس اصلی (Primary) و چند ایندکس ثانوی (Secondary) تعریف کنیم.

مثال:

یک فایل شامل اطلاعات مربوط به آهنگ ها در نظر میگیریم.

ایندکس اصلی به کمک دو فیلد (Label + ID no.) تعریف شده است.

میخواهیم امکان دسترسی از طریق نام سازنده (Composer) را نیز بدهیم.

بایستی یک ایندکس ثانوی روی این فیلد تعریف کنیم.

File Structure
استفاده از ایندکس های متعدد
ایندکس اصلی به کمک دو فیلد (Label+ID no.) تعریف شده است.

File Structure
استفاده از ایندکس های متعدد
چگونه امکان دسترسی از طریق نام سازنده (Composer) را بدهیم؟

ساختار متداول یک ایندکس ثانوی چگونه است؟

ساختار متداول:

استفاده از کلید اصلی بجای Byte Offset رکوردها.

این روش را "Postponing the binding" یا به تاخیر انداختن اتصال می گویند.

مزیت این ساختار چیست؟

اعمال مربوط به ایجاد، حذف یا به روز نمودن رکوردها را ساده تر، سریعتر و مطمئن تر می نماید. (چرا؟)

File Structure
عملیات روی ایندکس ثانوی
چه عملیاتی روی ایندکس ثانوی بایستی درنظرگرفت؟

ایجاد رکورد:

هنگام ایجاد رکورد در فایل و ایندکس اصلی،

بایستی کلید ثانوی نیز در ایندکس ثانوی ایجاد شود.

بایستی محتوای کلید به فرم کانونیک (Canonical Form) ثبت شوند. (چرا؟)

(مثلا با حروف کاپیتال و با طول مشخص )

در صورت وجود مقادیر تکراری برای کلید ثانوی بهتر است آنها به ترتیب کلید اصلی مرتّب (Sort) شوند.

File Structure
عملیات روی ایندکس ثانوی
حذف رکورد:

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

اما اگر فایل ایندکس های متعدد داشته باشد، این کار پرهزینه خواهد بود. (چرا؟)

روش دیگر:

فقط فایل اصلی و ایندکس اصلی به روز می شوند و کاری با ایندکس های ثانوی نداریم.

هنگام استفاده از ایندکس ثانوی چک می کنیم که رکورد مربوطه از ایندکس اصلی حذف نشده باشد.

اگر تعداد رکوردهای حذف شده زیاد باشد، بایستی ایندکس ثانوی باز سازی شود. (چرا؟)

File Structure
عملیات روی ایندکس ثانوی
به روز آوردن رکوردها:

حالت اول: مقدار کلید ثانوی تغییر کرده:

بایستی ایندکس ثانوی به روزآورده و دوباره مرتّب شود.

حالت دوم: مقدار کلید اصلی تغییر کرده:

بعد از به روزآوردن ایندکس اصلی و مرتّب نمودن آن،

بایستی ایندکس ثانوی نیز به کلید اصلی جدید اشاره کند و دوباره مرتّب شود.

حالت سوم: فقط فیلدهای غیر کلیدی تغییر کرده اند:

معمولا عملی روی ایندکس ها لازم نیست. (چرا؟)

مگر اینکه طول رکورد تغییر کرده باشد و محل آن در فایل جابجا شود. (چرا؟)

در نتیجه Offset در ایندکس اصلی تغییر خواهد کرد.


تعداد صفحات : 15 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود