ساختار فایل ها
Download
1 / 244

??? ??? - PowerPoint PPT Presentation


  • 145 Views
  • Uploaded on

ساختار فایل ها (ذخیره و بازیابی اطلاعات) تهیه کننده : جعفر پورامینی منبع: سیستم و ساختار فایل مولف: زولیک تعداد واحد:3 www.darage1web.gigfa.com. فصل اول. آشنایی با طراحی و مشخصات ساختار فایل ها. هدف کتاب.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '??? ???' - baruch


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
4425987

ساختار فایل ها (ذخیره و بازیابی اطلاعات)تهیه کننده : جعفر پورامینی منبع: سیستم و ساختار فایل مولف: زولیکتعداد واحد:3www.darage1web.gigfa.com


4425987
فصل اول

آشنایی با طراحی و مشخصات ساختار فایل ها


4425987
هدف کتاب

  • یافتن راههایی برای به حداقل رساندن دستیابی به دیسک، برای فایل هایی است که اندازه و محتویات آنها تغییر می کند.

  • ساختار فایل ترکیبی از نحوه نمایش داده ها در فایل ها و عملیات لازم برای دستیابی به داده ها است

    • در حالت ایده آل، کسب اطلاعات مورد نظر با یک دسترسی

    • در صورتی که امکان پذیر نیست با حداقل دسترسی

    • به حداکثر رساندن احتمال وجود اطلاعات مورد نظر در حافظه


4425987
عوامل موثر در طراحی ساختار فایل

  • شرایط خاص دیسک ها این الزام را به وجود می آورد که ساختارهای ویژه ای برای ذخیره و بازیابی داده در آنها توسعه دهیم تا در حد امکان مشکل های کار با دیسک را کاهش دهیم

    • زمان دستیابی نسبتا کم دیسک ها

    • ظرفیت بالای آنها

    • حفظ اطلاعات پس از قطع جریان برق


4425987
تاریخچه مختصری درباره طراحی ساختار فایل

  • دستیابی ترتیبی (فایل ها بر روی نوار) (مرتبه زمانی n)

  • درخت دودویی AVL (مرتبه زمانی log d)

  • درخت B

  • درخت B+:ترکیب درخت B و لیست پیوندی

  • دستیابی مستقیم


4425987
کیت ابزار مفهومی: مواد ساختار فایل

  • ابزارهایی که برای حل مشکلات مشابه بکار گرفته می شوند

    • بافرها، بلوکها و باکتها: کاهش تعداد دستیابی به دیسک


4425987
فصل دوم فایل

عملیات مهم پردازش فایل


4425987

فایلهای فیزیکی و منطقی فایل

فایلها همان مجموعه ای از بایت ها هستند که در یک دیسک به صورت فیزیکی در کنار یکدیگر قرار گرفته اند.

از دیدگاه برنامه کاربردی ، فایل تعریف دیگری دارد . استفاده از فایلهای منطقی به برنامه این امکان را می دهد تا اعمال اجرا شده روی یک فایل را توصیف کند؛ بدون اینکه بداند چه فایل فیزیکی را مورد استفاده قرار می دهد. سپس میتوان برنامه را برای پردازش هر یک از چند فایل متفاوت که دارای ساختاری یکسان هستند به کار برد.


4425987
باز کردن فایل ها فایل

معرفی تابع OPEN

FD=OPEN(FILENAME,FLAGS[,PMODE])

  • FD:توصیف کننده فایل.

  • FILENAME:یک رشته کاراکتری حاوی نام فایل فیزیکی.

  • FLAGS:عملکرد تابع OPEN را کنترل کرده وتععیین می کند که فایل موجود را برای خواندن یا نوشتن باز می کند یا خیر.

  • PMODE:حالت محافظت فایل را بر می گرداند.


4425987
بستن فایل ها فایل

  • هنگامی که برنامه ای به صورت عادی پایان می یابد، فایل ها معمولا به طور خودکار بسته می شوند.

  • در نتیجه اجرای یک دستور بستن در داخل برنامه فقط برای محافظت آن در برابر اتلاف داده ها در صورت توقف برنامه و آزاد کردن نام فایل های منطقی برای استفاده مجدد می باشد.


4425987
خواندن و نوشتن فایل

READ(SOURCE_FILE,DESTINATION_ADDR,SIZE)

WRITE(DESTINATION_FILE,SOURCE_ADDR,SIZE)

  • DESTINATION: نام فایل مقصد

  • SOURCE: نام فایل منبع

  • SIZE: تعداد بایتهایی که باید خوانده یا نوشته شود


4425987
پیگرد: عمل انتقال مستقیم به یک موقعیت معین در فایل را پیگرد می گویند.

SEEK(SOURCE_FILE,OFFSET)

SOURCE_FILE:نام فایل منطقی که در آن جستجو صورت می گیرد

OFFSET:میزان حرکت اشاره گر فایل را مشخص می کند


4425987
پیگرد با جریان های موقعیت معین در فایل را پیگرد می گویند.C

POS=FSEEK(FILE,BYTE_OFFSET,ORIGIN)

POS: یک مقدار صحیح بزرگ که توسط FSEEK بر گردانده می شود که برابر با موقعیت فعلی اشاره گر است.

FILE: توصیف کننده فایلی که FSEEK باید در آن اعمال شود.

BYTE_OFFSET: تعداد بایتهایی که باید از مبدا حرکت داده شود.


4425987

برنامه نمایش محتویات با استفاده از جریان

#INCLUDE<STDIO.H>

Main( ) {

Char ch ;

FILE *file ;

Char filename [20] ;

Printf (" enter the name of the file") ; //step 1

Gets (filename) ; //step 2

File = fopen (filename, "r") ; //step 3

While (fread(&ch, 1, 1, file) ! = 0) ; //step 4a

Fwrite (&ch, 1, 1, student) ; //step 4b

Fclose (file) ; //step 5

}


4425987
برنامه نمایش محتویات با استفاده از کلاسهای جریان ++ C:

#include <fsream.h>

main ( ) {

char ch ;

fstream file ;

char file name [20] ;

cout << "enter the name of the file: "; //step 1

cin >> filename; //step 2

file . open (filename,ios::in); //step 3

file . unsetf(ios::skipws);

while (1)

{

file >> ch; //step 4a

if (file.fail ()) break;

cout << ch; //step 4b

}

file . close (); //step 5

}


4425987
ساختار فهرست ها در یونیکس از کلاسهای جریان ++

چون هر نام فایل در سیستم یونیکس بخشی از سیستم فایلی است که با ریشه آغاز می شود هر فایل را می توان انحصارا با دادن نام مسیر آن شناسایی کرد.

هنگامی که فرمانهایی برای سیستم یونیکس صادر می شود این کار در داخل فهرستی انجام می شود که فهرست جاری نامیده می شود.


4425987
نمونه از کلاسهای جریان ++ ای از فهرست ها در یونیکس

BIN

USR

USR6

DEV

BIN

LIB

ADDBCC

KBD

TAPE

YACC

MYDIR

LIB

CONSOLE

LIBS.A

LIBM.A

ADDF

DF


4425987
دستگاههای فیزیکی و فایل های منطقی

  • در یونیکس، فایل مجموعهای از بایتها است

  • در یونیکس چگونگی و محل ذخیره فایل ها مهم نیست

  • در یونیکس مهم نیست که فایل ها از کجا می آیند

  • در یونیکس شکل فیزیکی فایل مهم نیست زیرا نمای منطقی فایل در یونیکس یکی است.


4425987
فصل سوم منطقی

حافظه جانبی و نرم افزار سیستم


4425987
تعريف حافظه منطقی

  • هر دستگاهي که بتوان اطلاعات را در آن ذخيره نموده به نحوي که کاربرد در هر لحظه بتواند به اطلاعات مورد نظرش دستيابي پيدا کند حافظه ناميده مي شود.


4425987
حافظه منطقی

انواع دستگاه ها از نظر نوع دستیابی

  • دستیابی مستقیم (DASD): از طریق آدرس می‌توان به طور مستقیم به اطلاعات دسترسی داشت. زمان دسترسی در این حالت برای تمام اطلاعات تقریبا برابر است، مانند هارد دیسک‌ها

  • دستیابی سری: دستگاه‌هایی که دستیابی ترتیبی را پشتیبانی می‌کنند. در این حالت برای خواندن یا نوشتن یک قطعه داده‌ی خاص، باید از تمام داده‌های پیش از آن گذر کرد


4425987
دیسکها منطقی

  • دیسک های مغناطیسی در اشکال مختلف وجود دارند

  • دیسک های سخت ظرفیتی بالا با هزینه پایین به ازای هر بیت ارائه می دهند.

  • دیسک های فلاپی ارزان هستند ولی سرعت آنها کم است و داده های نسبتا کمی را نگهداری می کنند.


4425987
انواع حافظه هاي برون ماشيني از نظر تكنولوژي ساخت

  • چهار تكنولوژي وجود دارد:

  • تكنولوژي الكترومكانيك

  • الكترو مغناطيس

  • تكنولوژي الكترو اپتيك

  • تكنولوژي الكترومغنااپتيك


4425987
سازمان دیسک ها نظر تكنولوژي ساخت

  • یک دیسک گردان معمولا از چند صفحه تشکیل شده است، که هر صفحه دو سطح دارد

  • هر صفحه شامل تعدادی شیار (TRACK) است

  • اطلاعات در شیارهایدیسک نگهداری می شود

  • هر شیار غالبا به چند سکتور (SECTOR) تقسیم می شود

  • سکتور کوچکترین بخشی از دیسک است که قابل آدرس دهی است.


4425987
سازمان دیسک ها نظر تكنولوژي ساخت

  • شیار‌هایی که مستقیما در بالا و پایین یکدیگر قرار دارند یک سیلندر را تشکیل می‌دهند.

  • بودن حرکت بازو می‌توان به همه‌ی اطلاعات روی یک سیلندر دسترسی داشت‌

  • حرکت بازو، معمولا کندترین بخش خواندن اطلاعات از روی دیسک است.



4425987
برآورد نیازهای سرعت و ظرفیت ها ونوشتن

  • ظرفیت شیار=تعداد سکتورها *طول هر سکتور بر حسب بایت

  • ظرفیت سیلندر=تعداد شیار ها در هر سیلندر*ظرفیت شیار

  • ظرفیت دیسک=تعداد سیلندرها*ظرفیت سیلندر


4425987
سازماندهی شیارها به وسیله سکتورها

  • سازماندهی بر اساس سکتور

  • سازماندهی بر اساس بلوک‌های سازماندهی شده توسط کاربر


4425987
روش های سازمان دهی داده ها بر روی دیسک

  • بر اساس سکتور

  • بر اساس بلوک های تعریف شده توسط کار بر


4425987
سازمان دهی سکتور ها بر روی یک شیار

  • سکتور ها بخش های مجاور و با اندازه ثابت از یک شیار باشند(این روش راه خوبی برای در نظر گرفتن فایل به طور منطقی است اما راه خوبی برای نگه داشتن فیزیکی سکتور ها نیست.)

  • فاصله گذاری میان سکتورها(یعنی بین سکتور هایی که از نظر منطقی مجاورند چند سکتور فاصله می گذارند.)



4425987
کلاستر: شیار

  • کلاستر عبارت از تعداد ثابتی از سکتور های پیوسته است

  • کلاستر های بزرگ تعداد زیادی از سکتور ها را بدون پیگرد می خوانند.

  • استفاده از کلاستر های بزرگ در هنگام پردازش ترتیبی فایل به کارایی بیشتر منجر می شود.


4425987
پراکندگی شیار

طول تمام سکتور های موجود در یک دیسک باید یکسان باشد اما همیشه این تناسب بر قرار نیست .دو شیوه برای مقابله با این روش وجود دارد:

  • نگهداری یک رکورد در هر سکتور.

  • قرار دادن رکورد ها به طور متوالی به طوری که بخشی از رکورد در یک سکتور و بخش دیگر آن در سکتور دیگر قرار گیرد.


4425987
سازمان دهی شیار ها به کمک بلوک شیار

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

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

  • سازمان دهی بلوکها مشکلات پوشایی سکتورها و پراکندگی را ندارد.


4425987
زمان دستیابی به دیسک شیار

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

  • زمان پیگرد

  • تاخیر چرخشی

  • زمان انتقال


4425987

تاخیر چرخشی شیار

زمان پیگرد


4425987
زمان پیگرد شیار

  • زمان لازم برای انتقال بازوی دستیابی به سیلندر مناسب را زمان پیگرد می گویند


4425987
تاخیر چرخشی شیار

  • زمان لازم برای چرخش دیسک تا سکتور مورد نظر زیر هد خواندن و نوشتن قرار گیرد.


4425987
زمان انتقال شیار

زمان انتقال از فرمول زیر بدست می آید:

زمان انتقال=(تعداد بایت های انتقال یافته/تعداد بایت های روی شیار)*زمان چرخش


4425987
تنگنای دیسک شیار

راههای مقابله با تنگنای دیسک:

  • چند بر نامه ای (multiprogramming)

  • نوار بندی (striping)

  • موازی گرایی(parallelism)


4425987
سازمان دهی داده ها در نوار ها شیار

  • چون دستیابی به نوار ها به صورت ترتیبی است برای تشخیص موقعیت داده ها نیازی به آدرس نیست



4425987

نوار 7شیاره( شیارA) 9شیاره(B)


4425987
بيت توازن شیار

  • بيت توازن بخشی از داده ها نيست. بلکه براي بررسي اعتبار داده ها به کار مي رود. اگر از توازن فرد استفاده شود اين بيت در کادرهاي فرد برابر 1 قرار داده مي شود. توازن روج نيز به همین صورت عمل مي کند. ولي در نوارها به ندرت از آن استفاده مي شود.


4425987
در نوار دو نوع بيت توازن وجود دارد:

  • بيت پاريتي عرضي يا کاراکتري

  • بيت پاريتي طولي

  • بيت پاريتي عرضي براي هرکاراکتر و بيت پاريتي طولي، براي تعدادي کاراکتر ايجاد مي شود.


4425987
نوار گردان ها دارد:

اختلاف کارایی در میان نوار گردان ها را بر حسب سه کمیت می توان سنجید:

  • تراکم نوار

  • سرعت نوار

  • اندازه شکاف بین بلاک ها


4425987
براورد طول نوار مورد نیاز دارد:

طول فیزیکی یک بلوک از داده ها=b

طول شکاف بین بلا ک ها=g

تعداد بلاک های داده ها=n



4425987

اندازه بلوک / تراکم نوار= دارد:b

طول بلوک=b


4425987
تراکم ضبط موثر: دارد:

مقدار داده های واقعی را که به ازای هر اینچ از نوار می توان ذخیره کرد:

تراکم ضبط موثر=تعداد بایتها در هر بلوک/تعداد اینچهای مورد نیاز برای هر بلوک


4425987
برآورد زمان انتقال داده ها دارد:

  • عوامل موثر در سرعت انتقال داده ها:

  • اندازه شکاف های بین بلاکی

  • اندازه بلاک های داده

    سرعت اسمی =تراکم نوار*سرعت نوار


4425987
مقایسه دیسک و نوار دارد:

  • نوار برای پردازش ترتیبی و دیسک برای پردازش تصادفی است.

  • نوار ها به یک فرایند اختصاص دارند در حالی که دیسک ها معمولا چند فرایند را سرویس دهی می کنند.

  • نوار ها ارزانتر از دیسک ها هستند.

  • سرعت پردازش دیسک ها بالاتر است.


Cd rom
CD_ROM دارد:

  • نقطه قوت:ظرفیت ذخیره سازی بالا-بهای کم و دوام زیاد

  • نقطه ضعف:جستجو در آن بسیار کند است


4425987
کارایی در جستجو دارد:

  • در واقع ضعف اصلی CD_ROM در دستیابی مستقیم است زیرا بسیار زمان بر است


4425987
سرعت انتقال داده ها دارد:

  • سرعت انتقال داده ها بالا است چون نحوه ذخیره سازی به صورت بلاکی است.


4425987
ظرفیت ذخیره سازی دارد:

  • CD_ROM بیش از600 مگا بایت داده را نگهداری می کند , پس ظرفیت ذخیره سازی آن بالا است.


4425987
دستیابی فقط خواندنی دارد:

  • CD_ROM یک رسانه انتشاراتی است و پس از نوشتن محتویات آن قابل تغییر نیست.


Cva cav
تکنیک دارد:CVA دربرابر CAV


4425987
نوشتن و خواندن نا متقارن دارد:

  • به این معنی که ما فقط یک بار روی آن می نویسیم ولی هزاران بار آن را می خوانیم.


Dvd digital versatile disk
DVD(Digital versatile Disk ) دارد:

  • در سال 1997 چند شرکت بزرگ تجهيزات الکترونيکي سازماني بنام DVD – Forum تاسيس کردند که هدفش توليد استاندارد جديد براي CD بود که پس از کشمکشهاي زياد (Digital video pisk) DVD با 8 نوع متفاوت ساخته شدند.

  • در ابتدا DVD ها فقط براي ويدئوها طراحي شدند. بنابراين تحت نام (Digital video Disk) معرفي شدند.


4425987

  • اولين تفاوت دارد:DVD ها با CD ها بخاطر ظرفيت بالاي DVD هاست بطور مثال در حال حاضر ظرفيت بعضي DVD ها 20 برابر CDهاست. که يک عامل مهم آن دو لايه بودن DVD است بطوريکه يک طرف ديسک دو لايه مي تواند شامل دو لايه داده باشد در حين خواندن ابتدا لايه اوّل و سپس لايه دوم خوانده مي شود. البته تشخيص DVD ها دو لايه از DVDهاي تک لايه آسان است چون DVD دو لايه نقره اي و DVD تک لايه طلايي رنگ است.


4425987
انواع دارد:DVD از نظر ظرفيت

  • DVD ها بر اساس ظرفيت در هشت فرمت مختلف(18- DVD and 10- DVD و 9- DVD و 5- DVD و 4- DVD و 3- DVD و 2- DVD و 1- DVD) که هر شماره مقدار تقريبي هر ظرفيت DVD به گيگابايت را نشان مي دهد وجود دارند.



4425987

  • کاربرد دارد:DVDها متنوع است: video- DVD که براي نمايش فيلم Data- DVD براي کاربردهاي نرم افزاري Audio- DVD براي گوش کردن موسيقي ها بکار مي روند.

  • Duta - DVD همان CD – ROM با ظرفيت بالا مي باشد و مانند CDهاي معمولي استفاده مي شود اما باراندمان بالاتر، video- DVD ها بسيار رايج تر از Data- DVDهاهستند و در مقايسه با VHSها آينده ي پربارتري دارند.


4425987
آشنايي با بافر و بافرينگ دارد:

بافر ناحيه اي است واسط در عمليات ورودي و خروجي و در اين ناحيه اقلاًّ يک رکورد در حالت فايل بلاک بندي شده با يک بلاک در حالت بلاک بندي شده جاي داده مي شود و اساساً براي ايجاد هماهنگي بين عمليات پردازنده ورودي/خروجي و واحد پردازش مرکزي و در شرايطي سريع اين عمليات به کار مي رود. در سيستم فايل، بافر معمولاً از منطقه اي از حافظه اصلي به برنامه فايل پرداز تخصيص داده مي شود که به آن منطقه بافرها مي گويند.


4425987
نحوه ايجاد بافرها دارد:

  • خود برنامه ساز بافر را ايجاد مي کند: با ايجاد ناحيه اي در حافظه

  • با اجراي يک ماکرو، که از سيستم عامل درخواست ايجاد بافر مي کند.

  • خود سيستم عامل وقتي که فايل باز مي شود. اقدام به ايجاد بافرما مي کند و پس از بسته شدن فايل بافرها را باز پس مي گيرد.


4425987
بافر دهی چند گانه دارد:

  • به این معنی که CPU می تواند در حین ارسال یک بافر به دیسک , بافر دیگری را پر کند.


4425987
حالت تعیین محل در بافر دهی دارد:

  • بافر مستقیما بین داده ها و حافظه باشد.

  • بافر های سیستم همه بافر ها را کنترل کنداما اشاره گری برای محل بافر ها در اختیار برنامه باشد.


4425987
پراکنش ورودی دارد:

  • با پراکنش ورودی با یکبار خواندن , نه یک بافر , بلکه مجموعه ای از بافر هایی که داده های یک بلوک باید در آن پخش شود شناسایی می شود.


4425987
تمر کز خروجی دارد:

  • چند بافر را می توان گرد هم آورد و یکباره بر روی همه آنها نوشت.بدین ترتیب لازم نیست آنها را در یک بافر خروجی کپی کرد.


4425987
فصل چهارم دارد:

مفاهیم اساسی ساختار فایل


4425987
سازمان دهی فیلد ها و رکورد ها دارد:

  • واحد اصلی داده ها فیلد است.

  • آرایه مجموعه ای از فیلد های مثل هم است.

  • رکورد مجموعه ای از فیلد های متفاوت است.

  • رکوردی که در حافظه نگهداری می شود را یک شی گویند

  • فیلد های رکورد را اعضای آن می نامند.


4425987
ساختار های فیلد دارد:

  • قرار دادن فیلدها در طول هایی قابل پیش بینی

  • شروع کردن هر فیلدی با نشانگر طول فیلد

  • قرار دادن یک فاصل در انتهای هر فیلد برای جدا کردن آن از فیلد بعدی

  • استفاده از یک عبارت کلیدی برای شناسایی هر فیلد و محتویات آن


4425987
روش 1: ثابت کردن طول هر فیلد دارد:

  • مزیت این روش در این است که با محاسباتی ساده می توان داده ها را از فیلد های اولیه باز یابی کرد

  • عیب این روش این است که افزودن فضاهای خالی مورد نیاز برای رساندن فیلد ها به طولی ثابت باعث می شود فایل ها بسیار بزر گتر شوند.


4425987
روش2: قرار دادن نشانگر طول فیلد در ابتدای هر فیلد

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

این فیلدها را مبتنی بر طول می نامند.


4425987
روش 3 : جدا کردن فیلد ها با فاصل ابتدای هر فیلد

در این روش کافی است یک کاراکتر خاص یا ترتیبی از کاراکتر ها را که در فیلد ظاهر نمی شود انتخاب کنیم و آن فاصل راپس از نوشتن هر فیلد در فایل وارد کنیم.

در بسیاری از موارد از کاراکتر فضای خالی استفاده

می شود.


4425987
روش 4 : استفاده از عبارت کلیدی برای شناسایی فیلد ها

این روش دارای مزیتی است که بقیه ندارند و نخستین ساختاری است که در آن فیلد اطلا عاتی در باره خودش فراهم می آورد.

اما عیب این روش فضای زیادی است که تلف می کند.


4425987
ساختار های رکورد برای شناسایی فیلد ها

  • رکورد مجموعه ای از فیلد ها است.

  • مجموعه ای از رکورد ها فایل را تشکیل می دهند.

  • برای مراجعه به داده های مقیم در حافظه از کلمه شی و برای مراجعه به داده های مقیم در فایل از کلمه رکورد استفاده می شود.


4425987
روش های سازمان دهی رکورد های فایل برای شناسایی فیلد ها

  • قابل پیش بینی کردن طول رکورد ها بر حسب بایت.

  • قابل پیش بینی کردن طول رکورد ها بر حسب فیلد ها.

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

  • استفاده از فایل دیگری برای نگهداری آدرس شروع هر رکورد.

  • قرار دادن فاصل در انتهای هر رکورد برای جدا کردن آن از رکورد بعدی.


4425987
روش 1 : قابل پیش بینی کردن طول رکورد ها بر حسب بایت

  • فایلی با طول ثابت , فایلی است که در آن تعداد بایتهای همه رکورد ها یکسان است.

  • رکورد های با طول ثابت , غالبا به عنوان محلی برای نگهداری تعداد متغیری از فیلد ها , با طول متغیر به کار می روند.


4425987
روش 2 : قابل پیش بینی کردن طول رکورد ها بر حسب فیلد ها.

  • در این روش به جای آنکه مشخص کنیم هر رکورد در فایل حاوی تعداد ثابتی از بایتهاست , می توان مشخص کرد که حاوی تعداد ثابتی از فیلد هاست.


4425987
روش 3: شروع هر رکورد با یک نشانگر طول که تعداد بایتهای رکورد را نشان می دهد.

  • در این روش فیلدی در ابتدای هر رکورد در نظر گرفته می شود و طول رکورد در آنجا ذخیره می گردد.

  • از این روش معمولا برای کار با رکورد هایی با طول متغییر استفاده می شود.


4425987
روش 4 : استفاده از فایل دیگری برای نگهداری آدرس شروع هر رکورد.

  • برای نگهداری آفست بایت مربوط به رکورد های موجود در فایل , می توان از اندیس استفاده کرد.با آفست بایت می توان ابتدای هر رکورد را یافت و طول رکورد را محاسبه کرد


4425987
روش 5 : قرار دادن فاصل در انتهای هر رکورد برای جدا کردن آن از رکورد بعدی.

  • این حالت در سطح رکورد ها , دقیقا مشابه راه حلی است که برای متمایز ساختن فیلد ها در برنامه ها به کار می رود.


Raid raid
سیستم رکورد برای جدا کردن آن از رکورد بعدی.raid سه سطحی درمقابل raid یک سطحی


4425987
فصل پنجم رکورد برای جدا کردن آن از رکورد بعدی.

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


4425987
کلید های رکورد رکورد برای جدا کردن آن از رکورد بعدی.

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


4425987
جستجوی ترتیبی رکورد برای جدا کردن آن از رکورد بعدی.

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


4425987
ارزیابی جستجوی ترتیبی رکورد برای جدا کردن آن از رکورد بعدی.

به طور کلی کار مورد نیاز برای جستجوی ترتیبی در فایلی با

N رکورد با n متناسب است.

حداکثر n مقایسه و به طور میانگین n/2 مقایسه مورد نیاز است.


4425987
بهبود کارایی جستجوی ترتیبی با بلوک بندی رکورد ها

  • در این روش با خواندن بلوکی از چند رکورد به یکباره و سپس پردازش آن بلوک از رکورد ها در حافظه , کارایی جستجو را بهبود می بخشیم.


4425987

  • گرچه بلوک بندی می تواند منجر به بهبود چشمگیر کارایی شود , مرتبه عملکرد جستجوی ترتیبی را تغییر نمی دهد.

  • زمان جستجو هنوز o(N) است و با اندازه فایل نسبت مستقیم دارد.


4425987

  • بلوک سازی , اختلاف میان سرعت دستیابی در حافظه و زمان دستیابی در حافظه ثانویه را نشان می دهد.

  • بلوک سازی تعداد مقایسه هایی را که باید در حافظه انجام شود تغییر نمی دهدو احتمالا مقدار داده های انتقال یلفته میان حافظه و دیسک را افزایش می دهد.


4425987

  • با بلوک سازی در زمان صرفه جویی می شود زیرا مقدار جستجو کاهش می یابد.

  • بدین ترتیب تفاضل میان زمان جستجو و زمان عملیات دیگر , نظیر انتقال داده ها با دستیابی به حافظه , نیروی محرکه طراحی ساختار فایل است.


4425987
ابزار های یونیکس برای پردازش ترتیبی

متداول ترین ساختار فایل که در یونیکس وجود دارد یک فایل اسکی با کاراکتر خط جدید به عنوان فاصل رکورد ها و در صورت امکان , فضای خالی به عنوان فاصل فیلد هاست.


4425987
دستیابی مستقیم ترتیبی

  • هنگامی که بتوانیم مستقیما به ابتدای یک رکورد برویم و آن را به حافظه وارد کنیم به آن رکورد دستیابی مستقیم داریم.


4425987
رکورد های سرایند ترتیبی

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

  • اندازه سرایند

  • تعداد رکورد ها

  • اندازه هر رکورد


4425987
دستیابی به فایل و سازمان دهی فایل ترتیبی

  • رکورد های طول متغییر و رکورد های طول ثابت مربوط به بحث سازمان دهی فایل و دستیابی مستقیم و دستیابی ترتیبی مربوط به مبحث دستیابی به فایل می باشد.

  • تعامل میان ساز مان دهی فایل و دستیابی به فایل , بسیار سودمند است.


4425987
داده های انتزاعی برای دستیابی به فایل

این مفهوم که نیازی نیست داده ها را به صورتی که در یک رسانه خاص ظاهر شده اند در نظر بگیریم , در عملیات مدل دادهای انتزاعی مستتر است.


4425987
سرآیند ها و فایل های خود توصیف گر فایل

به فایلی که در رکورد سرایند آن اطلاعات بیشتری در باره ساختار فایل وجود داشته باشد فایل خود توصیف گر می گویند.


4425987
اطلاعاتی که میتوان در سرآیند نوشت

  • نامی برای هر فیلد

  • طول هر فیلد

  • تعداد فیلد های هر رکورد


4425987
عوامل موثر بر قابلیت حمل نوشت

  • اختلاف میان سیستم های عامل

  • اختلاف میان زبان ها

  • اختلاف در معماری ماشین


4425987
توافق بر سر رمز گذاری دودویی نوشت

  • IEEE مشخصات فرمت استاندارد را برای اعداد ممیز شناور 32 بیتی , 64 بیتی و 128 بیتی و برای اعداد صحیح 8 بیتی , 16 بیتی و 32 بیتی وضع کرده است.


4425987
یونیکس و قابلیت حمل نوشت

یونیکس ابزاری به نام dd فراهم آورده است.گرچه dd اساسا برای کپی کردن داده ها از روی سیستم های یونیکس بر روی نوار و بالعکس در نظر گرفته شده است, می توان آن را برای تبدیل از منبع فیزیکی دیگری به کار برد.


4425987
مواردی که ابزار نوشتdd در اختیار قرار می دهد:

  • تبدیل از یک اندازه بلوک به دیگری

  • تبدیل رکورد های طول ثابت به طول متغییر و بالعکس

  • تبدیل اسکی به ابسدیک و بالعکس

  • تبدیل همه کاراکتر ها به حروف کوچک یا حروف بزرگ

  • تبادل هر جفت دلخواه از بایتها


4425987
فصل ششم نوشت

سازمان دهی فایل ها برای کارایی


4425987
دلایل فشرده سازی فایل ها نوشت

  • فایل های کوچکتر نیاز به حافظه کمتری دارند که باعث صرفه جویی می شود.

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

  • به صورت ترتیبی سریعتر قابل پردازش هستند.


4425987
تکنیک های فشرده سازی نوشت

  • استفاده از یک نماد گذاری جدید

  • حذف دنباله های تکراری

  • تخصیص کد های با طول متغییر


4425987
استفاده از یک نماد گذاری جدید نوشت

معایب فشرده سازی با رمز

  • با استفاده از رمز گذاری دودویی فایل به وسیله اشخاص قابل خواندن نیست.

  • زمانی که بخواهیم نامی را به فایلمان اضافه کنیم زمانی را برای رمز گذاری از دست خواهیم داد.

  • باید ماژول های رمز گذاری و رمز گشایی را در تمام نرم افزار هایی که فایل را


4425987
حذف دنباله های تکراری نوشت

بر خلاف فشرده سازی نمادی رمز گزاری طول رانش مقدار معینی از صرفه جویی در فضا را تضمین نمی کند.


4425987
تخصیص کد های با طول متغییر نوشت

کد های با طول متغییر عموما بر اساس این اصل به وجود آمده اند که بعضی مقادیر بیش از بقیه به کار می روند بنابراین کد این مقادیر باید فضای کمتری اشغال کند.

کد های با طول متغییر فرم دیگری از کاهش زواید است.


4425987
روش های فشرده سازی بر گشت ناپذیر نوشت

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


4425987
فشرده سازی در یونیکس نوشت

  • هم یونیکس برکلی و هم system v روال های فشرده سازی فراهم می کنند که بسیار مورد استفاده قرار می گیرد .system v روالهایی دارد به نام packو unpack که از کد های هافمن به صورت بایت به بایت استفاده می کنند.


4425987
باز یابی فضای داخل فایلها نوشت

  • با داده های اضافی چه باید کرد؟

  • آنها را در انتهای فایل قرار داد و اشاره گری ایجاد کرد تا از مکان اولیه رکورد به بقیه آن اشاره کند.

  • کل رکورد را در انتهای فایل دوباره نوشت.


4425987
انواع تغییرات در فایل نوشت

  • اضافه کردن رکورد

  • بهنگام سازی رکورد

  • حذف رکورد


4425987
حذف رکورد و متراکم کردن فایل نوشت

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


4425987
حذف رکورد های با طول ثابت برای بازیابی پویای فضا

متراکم کردن فایل آسان ترین و رایج ترین روش های بازیابی فضا است.برای حذف رکورد ها و استفاده دوباره از فضای آزاد شده باید بتوانیم دو مسئله را تضمین کنیم

  • رکورد های حذف شده به طور خاصی علامت گذاری شوند.

  • بتوانیم محلی را که توسط رکورد های حذف شده اشغال شده بود را پیدا کنیم.


4425987
مواردی که برای باز یابی سریع فضا به آنها نیاز داریم:

  • راهی که بلا فاصله بدانیم حفره های خالی در فایل وجود دارد یا نه؟

  • راهی که اگر چنین حفرهای وجود دارد سریع به آن پرش کنیم.


4425987
راه حل: به آنها نیاز داریم:

  • استفاده از لیست های پیوند برای پیوند دادن تمام رکورد ها هر دو نیاز فوق را بر آورده می کند.

  • لیست پیوندی ساختمان داده ای است که هر گره آن به گره بعدی اشاره می کند.


4425987
پشته ها به آنها نیاز داریم:

آ سان ترین راه برای کار کردن با لیست استفاده از آن به صورت پشته است.

پشته لیستی است که در آن اضافه و حذف گرهها از یک انتهای لیست انجام می شود.


4425987
برای حل دو مسئله مر بوط به دسترسی سریع به فضای قابل بازیابی رکورد های حذف شده نیاز است که:

  • بدانیم که آیا حفره های خالی در فایل وجود دارد.

  • اگر چنین حفره ای وجود دارد مستقیما به آن پرش کنیم.


4425987
برای باز یابی رکورد ها از طریق لیست پیوندی به موارد زیر نیاز داریم:

  • راهی برای پیوند دادن رکورد های حذف شده و تبدیل آنها به یک لیست.

  • الگوریتمی برای اضافه کردن رکورد های حذف شده به لیست.

  • الگوریتمی برای پیدا کردن و خارج کردن یک رکورد از لیست, هنگامی که می خواهیم از آن رکورد استفاده کنیم.


4425987
پراکندگی حافظه لیست پیوندی به موارد زیر نیاز داریم:

  • فضای تلف شده در داخل یک رکورد پراکندگی داخلی نامیده می شود.

  • اگر با رکورد های طول ثابت کار کنیم برای به حداقل رساندن پراکندگی داخلی باید حداقل طول رکورد را انتخاب کنیم.


4425987
راهبرد های انتخاب جا لیست پیوندی به موارد زیر نیاز داریم:

  • اولین جای مناسب(first fit)

  • مناسب ترین جا(best fit)

  • نامناسب ترین جا(worst fit)


Best fit
اشکال روش لیست پیوندی به موارد زیر نیاز داریم: best fit

  • زمان پردازش اضافی

  • وجود پراکندگی خارجی


Worst fit
اشکال روش لیست پیوندی به موارد زیر نیاز داریم:worst fit

در این روش پراکندگی داخلی زیاد است.


4425987
جستجوی دو دویی در برابر جستجوی ترتیبی

  • جستجوی دودو یی فایلی با n رکورد حد اکثر به

    [log n]+1 مقایسه نیاز دارد .

  • اما جستجوی ترتیبی فایلی مشابه حداکثر به n

    مقایسه و به طور متوسط به n/2 مقایسه نیاز دارد


4425987
محدودیت های جستجوی دودویی و مرتب سازی داخلی

  • جستجوی دودویی نیاز به بیش از یک یا دو دسترسی به دیسک دارد.

  • نگهداری یک فایل به صورت مرتب شده خیلی گران تمام می شود.

  • مرتب سازی داخلی تنها در مورد فایل های کوچک عملی است.


4425987
مرتب سازی کلیدی سازی داخلی

  • مرتب سازی کلیدی که گاهی به آن مرتب سازی با بر چسب می گویند بر این ایده استوار است که وقتی فایلی را در حافظه مرتب می کنیم , تنها چیزی که به آن نیاز داریم کلید رکورد ها است.


4425987
فصل هفتم سازی داخلی

شاخص گذاری


4425987
شاخص چیست؟ سازی داخلی

منظور از شاخص مجموعه اي از عناصر شاخص است كه به صورت جفت هاي(x , a ) از داده هايي با طول ثابت است كه به طور فيزيكي كنار هم قرار دارند . x نشانگر كليد و a نشانگر اطلاعات همراه با كليد است .


4425987

  • فرض مي كنيم خود شاخص انقدر بزرگ است كه تنها بخش كوچكي از آن را مي توان در يك لحظه در حافظه اصلي نگه داشت . بنا بر اين شاخص بايد در يك حافظه جانبي ذخيره شود . نوع حافظه جانبي دستگاه هايي با دستيابي شبه تصادفي است كه زمان دستيابي يا انتظار آنها نسبتا طولاني است .


4425987

  • هدف , پيدا كردن روش كلي براي ذخيره و بازيابي داده ها در سيستم هاي فايل بزرگ بود كه امكان دسترسي با حداقل زمان را فراهم سازد . مك كرايت در سال 1972 اولين مقاله خود را در رابطه با درخت Bمنتشر كرد . پس از آن درخت B به قدري گسترش يافت كه كومر اينگونه نوشت : « درخت B , به طور غير رسمي ساختار استانداردي براي شاخص بندي در بانكهاي اطلاعاتي به شمار مي رود» .


4425987
شاخص چند سطحی و بازيابي داده ها در سيستم هاي فايل بزرگ بود كه امكان دسترسي با حداقل زمان را فراهم سازد . مك كرايت در سال 1972 اولين مقاله خود را در رابطه با درخت


4425987
مزیت شاخص ها و بازيابي داده ها در سيستم هاي فايل بزرگ بود كه امكان دسترسي با حداقل زمان را فراهم سازد . مك كرايت در سال 1972 اولين مقاله خود را در رابطه با درخت

  • بدون دستکاری محتویات فایل ,به فایل نظم و تر تیب می بخشند.


4425987

  • لازمه استفاده از الگوريتم جستجوي دودويي اين است كه بلاك هاي داده اي به طور پيوسته ذخيره شده باشند . اگر بلاك ها به طور ناپيوسته ذخيره و به هم پيوند شده باشند , يافتن آدرس بلاك مياني نا ممكن است .


4425987

  • با استفاده از تكنيكهاي ابتدايي ساختمان داده ها به آساني مي توانيم گره هايي را درست كنيم كه شامل فيلد هاي پيوندي چپ و راست باشند و به اين ترتيب درخت جستجوي دودويي را به صورت يك ساختار پيوندي ايجاد كنيم .


4425987

  • شكل زير را در نظر بگيريد : ساختمان داده ها به آساني مي توانيم گره هايي را درست كنيم كه شامل فيلد هاي پيوندي چپ و راست باشند و به اين ترتيب درخت جستجوي دودويي را به صورت يك ساختار پيوندي ايجاد كنيم .


4425987

  • مشكل درخت جستجوي دودويي اين است كه براي شاخص بندي روي ديسك سرعت لازم را ندارد . اما مشكل مهم ديگر درخت جستجوي دودويي , وجود نداشتن يك راهبرد موثر براي موازينه كردن درخت است براي حل اين مشكلات درختهاي AVL و در ختهاي دوديي صفحه صفحه به ميان آمدند


4425987
کاتالوگ کارتی چیست؟ كه براي شاخص بندي روي ديسك سرعت لازم را ندارد . اما مشكل مهم ديگر درخت جستجوي دودويي , وجود نداشتن يك راهبرد موثر براي موازينه كردن درخت است براي حل اين مشكلات درختهاي

مجموعه ای از سه شاخص است که هر کدام از یک فیلد کلید متفاوت استفاده می کنند وهمه آنها از یک شماره کاتالوگ یکسان به عنوان فیلد آدرس بهره می گیرند.


4425987
مقایسه سرعت دسترسی كه براي شاخص بندي روي ديسك سرعت لازم را ندارد . اما مشكل مهم ديگر درخت جستجوي دودويي , وجود نداشتن يك راهبرد موثر براي موازينه كردن درخت است براي حل اين مشكلات درختهاي

شاخص باعث می شود تا رکورد ها را به وسیله کلید آنها با سرعت زیادی ÷یدا کنیم .سرعت این کار در مقایسه با حالتی که جستجوی دودویی در یک فایل مرتب موجود در حافظه انجام می شود بیشتر است.


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

  • ایجاد فایل داده ها و شاخص خالی اولیه

  • باز کردن فایل شاخص در حافظه ,قبل از به کار گیری آن

  • نوشتن فایل شاخص بر روی دیسک , پس از به کار گیری آن

  • افزودن رکورد هایی به فایل داده ها

  • حذف رکورد ها از فایل داده ها

  • بهنگام کردن رکورد ها در فایل داده ها

  • بهنگام کردن شاخص برای انعکاس تغییرات به عمل آمده در فایل داده ها


4425987
ایجاد فایل داده ها و شاخص خالی اولیه

دو فایل باید ایجاد شود:

  • فایل داده ها برای نگهداری اشیائ داده ای

  • فایل شاخص برای نگهداری کلید اولیه


4425987
باز کردن فایل شاخص در حافظه ,قبل از به کار گیری آن

بازیابی و ذخیره اشیاء توسط کلاس io buffer انجام می شود.


4425987
نوشتن فایل شاخص بر روی دیسک , پس از به کار گیری آن

یکی از خطرات مربوط به خواندن شاخص و نوشتن آن در پایان برنامه آن است که اگر برنامه متوقف شود کپی شاخص که بر روی دیسک است اعتبار ندارد.


4425987
برنامه باید حداقل دو مکانیسم زیر را برای محافظت از خطا داشته باشد

  • باید مکانیسمی باشد که به برنامه اطلاع دهد که شاخص در چه زمانی از رده خارج است

  • اگر برنامه تشخیص دهد که شاخص از رده خارج است باید به روالی دستیابی داشته باشد که شاخص را از فایل داده ها بازسازی کند.


4425987
افزودن رکورد هایی به فایل داده ها را برای محافظت از خطا داشته باشد

برای افزودن رکورد ها باید همه ورودی هایی را که کلید آنها پس از کلید ورودی جدید است , جابجا کنیم تا پس از این ورودی قرار گیرند.


4425987
حذف رکورد ها از فایل داده ها را برای محافظت از خطا داشته باشد

بر خلاف یک فایل داده ای مرتب برای حفظ ترتیب رکورد ها نیاز به جابجایی آنها نیست.به وسیله کلید بدون اختلال در جای رکورد ها می توانیم با سرعت زیادی به رکورد ها دسترسی پیدا کنیم.


4425987
بهنگام کردن رکورد ها در فایل داده ها

بهنگام سازی به دو صورت انجام می شود:

  • بهنگام سازی تعداد فیلد و کلید را تغییر می دهد

  • بهنگام سازی بر فیلد کلید تا ثیر نمی گذارد.


4425987
بهینه سازی ها

شیوه استاندارد برای انجام این کار افزودن نشانگری به شی شاخص استتا نشان دهد که چه زمانی تغییر کرده است.

هنگامی که رکورد به حاففظه منتقل می شود به این نشانگر ارزش false داده می شود.و هرگاه رکورد شاخص توسط متد های remove و insert تغغییر داده شد به آن ارزش true داده می شود.


4425987
شاخص های بزرگ ها

اگر شاخص بیش از حد بزرگ باشد در آن صورت دستیابی به شاخص و دستکاری آن باید در حافظه ثانویه صورت گیرد.


4425987
معایب دستیابی به شاخص روی دیسک ها

  • جستجوی دودویی شاخص به جای آنکه با سرعت حافظه صورت پذیرد نیاز به چندین پیگرد دارد.

  • ترتیب مجدد شاخص که از حذف یا افزودن رکورد ناشی می شود نیاز به جابجا کردن یا مرتب سازی رکورد ها در حافظه ثانویه دارد که این کار بسیار گرانتر از اجرای این عملیات در حافظه است.


4425987
هرگاه شاخص در حافظه جا نشود باید از موارد زیر استفاده کرد:

  • در صورتی که سرعت دستیابی در اولویت قرار داشته باشد از درهم سازی استفاده شود

  • در صورتی که به هر دو نوع دستیابی کلیدی و ترتیبی نیاز باشد از یک شاخص چند سطحی با ساختار درختی نظیر درخت B استفاده می شود.


4425987
نکته 1: از موارد زیر استفاده کرد:

  • شاخص ساده استفاده از جستجوی دودویی را برای دستیابی کلیدی به یک رکورد در فایلی که طول رکورد های آن متغییر است امکان پذیر می سازد.


4425987
نکته 2: از موارد زیر استفاده کرد:

  • اگر ورودی های شاخص بسیار کوچکتر از رکورد های فایل داده ها باشد مرتب سازی و نگهداری شاخص نسبت به مرتب سازی و نگهداری فایل داده ها زمان کمتری می برد.


4425987
نکته 3: از موارد زیر استفاده کرد:

  • اگر در فایل داده ها رکورد هایی وجود دارند که در جای خود مستقر هستند با استفاده از شاخص می توان ترتیب کلید ها را بدون جابجایی رکورد های داده ها عوض کرد.


4425987
افزودن رکورد از موارد زیر استفاده کرد:

  • هنگامی که شاخص ثانویه ای موجود باشد , افزودن یک رکورد به فایل به معنای افزودن یک ورودی شاخص ثانویه است.


4425987
نکته از موارد زیر استفاده کرد:

  • اختلاف مهم شاخص اولیه با ثانویه آن است که شاخص ثانویه می تواند حاوی کلید های دوگانه باشد.


4425987
حذف رکورد ها از موارد زیر استفاده کرد:

  • حذف یک رکورد به معنای حذف تمامی آدرس های آن رکورد در سیستم فایل است.


4425987
بهنگام سازی رکورد ها از موارد زیر استفاده کرد:

  • بهنگام سازی فایل داده ها فقط هنگامی شاخص ثانویه را تحت تا ثیر قرار می دهد که کلید اولیه یا ثانویه تغییر یابند


4425987
در بهنگام سازی سه وضعیت پیش می آید:

  • بهنگام سازی با عث تغییر کلید ثانویه می شود

  • بهنگام سازی باعث تغییر کلید اولیه می شود

  • بهنگام سازی محدود به فیلد های دیگر


4425987
ساختار های شاخص ثانویه دو مشکل دارند

  • هر بار که رکورد جدیدی به فایل افزوده می شود باید فایل شاخص را دوباره مرتب کنیم.

  • اگر کلید های ثانویه وجود داشته باشد فیلد کلید ثانویه برای هر ورودی تکرار می شود.


4425987
انقیاد دارند

منظور از انقیاد این است که کلید در چه نقطه ای به آدرس فیزیکی رکورد مربوط به خود می پیوندد


4425987


4425987
نکته اولیه به آدرس در زمان ایجاد شدن فایلها رخ می دهد.ولی کلید های ثانویه در زمان استفاده به آدرس خود پیوند می یابند.

  • عیب انقیاد مستقیم در فایل آن است که سازمان دهی دوباره فایل داده ها باید منجر به اصلاح همه فایل های شاخص انقیاد یافته شود.


4425987
انقیاد درون داده ها هنگامی بهترین نتیجه را می دهد که:

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

  • کارایی سریع طی بازیابی واقعی , از اولویت بالایی بر خوردار است.


4425987
فصل هشتم بهترین نتیجه را می دهد که:

پردازش کمک ترتیبی و مرتب سازی فایل های بزرگ


4425987
عملیات بهترین نتیجه را می دهد که:

  • عملیات کمک ترتیبی شامل پردازش هماهنگ دو یا چند لیست ترتیبی برای ایجاد یک لیست خروجی است.

  • روال زير تطابق بين دو ليست را نشان مي‌دهد.


4425987

In +match (char * List1Name, char * List2 name, char * outpute listName)

{

Int More items;

Initialize List (1, List Name)

Initialize List (2, List Name)

Initialize output (Output List Name)

More items; = next ItemINList (1)86 Next ItemInList (2)


4425987

While (More items) outpute listName)

{

If (Item (1) < Item (2))

More items= next Item List (1);

Else If Item (1) = Item (2)

{

Process item (1) ; // Match found

More items= next ItemInList;

}

Else

More items = next ItemInList(2)

}

finishup();

Return 1;

}


4425987
ترتیب روال همخوانی outpute listName)

  • آماده سازی

  • دستیابی به عضو بعدی لیست

  • همزمان سازی

  • کنترل شرایط پایان فایل

  • تشخیص خطا ها


4425987
الگوریتمی برای ادغام outpute listName)k طرفه

تصمیم گیری در این باره که کدامیک از دو عضو ورودی دارای مقدار کمینه است , قرار دادن آن عضو در خروجی و سپس حرکت به طرف جلو


4425987
الگوریتمی که می توان برای ادغام outpute listName)k طرفه در نظر گرفت بدینگونه است :

  • Int minitem = minindex (item , k )

  • Process item ( minitem),

  • For (i=0 ; i<k ; i++ )

  • If ( item (minitem) = = item(i)

  • More items[i] = nextiteminlist(i);


4425987
مراحل مرتب سازی در حافظه outpute listName)

  • خواندن فایل از روی دیسک به حافظه

  • مرتب سازی رکورد ها با استفاده از یک روال مرتب سازی استاندارد

  • نوشتن دوباره فایل روی دیسک


4425987
هرم درختی دودویی با ویژگی های زیر است:

  • هر گره دارای کلیدی است که آن کلید بزرگتر یا مساوی کلید واقع در گره پدرش است.

  • یک درخت دودویی کامل است.

  • بخاطر ویژگی های 1و2 در نگهداری درخت می توان آرایه ای اختصاص داد که در آن گره ریشه اندیس 1 و اندیس های فرزندان چپ و راست گره i به ترتیب برابر با2i,2i+1 باشند .



4425987
بازیابی ترتیبی کلید ها به صورت زیر انجام می شود

  • تعیین مقدار کلید موجود در اولین موقعیت هرم

  • انتقال بزرگترین مقدار هرم به اواین محل آن و کم کردن یک واحد از تعداد عناصر

  • ترتیب دوباره هرم


4425987
برنامه حذف زیر انجام می شود

char * Heap::Remove ( ) }// remove the smallest element , reorder the Heap

// put the smallest value into 'val' for use in return

char * val = HeapArray [1];

// put largest value into root

HeapArray [1] = HeapArray [NumElements];

// decrease the number of elements

NumElements - - ;

// reorder the heap by exchanging and moving down

int k = 1 ; //node of heap that contains the largest value

int newK ; // node to exchange with largest value

while (2 * K <= NumElements ) //K has at least one child

{ // set nemK to the index of smallest child of K

if Compare (2 * k , 2 * K + 1) < 0 ) newK = 2 * K;

else newK = 2 * K + 1 ;

if (Compar (K,newK) < 0) break ; // in order

Exchange (K,newK ); // K and newK out of order

K = NEWk ; // continue down the tree

}

return val ; }


4425987
فايل با ساختار درخت زیر انجام می شودK-D

  • اين فايل گونه اي از ساختار درخت جستجوي دودويي است . اما تفاوت فايل با ساختار درخت K-D با فايل با ساختار درخت جستجوي دودويي دراين است كه فيلد كليد در سطوح مختلف يكسان نيست .

  • به طوركلي ، تعداد درخت هاي K-D براي يك مجموعه از ركوردها مي تواند بيش از يك باشد .انتخاب يك درخت از درختهاي ممكن بستگي به نظمي دارد كه براساس آن مي خواهيم ركوردها را درج كنيم .


4425987

مثالي از درخت زیر انجام می شودK-D


4425987
مرتب سازی کلیدی دو نارسایی دارد: زیر انجام می شود

  • هنگامی که کلید ها مرتب سازی می شوند باید زمان زیادی صرف این موارد شود ,پیگرد هر رکورد در رکورد های مرتب شده,خواندن هر رکورد به حافظه و سپس نوشتن آن روی فایل مرتب شده.

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


4425987
مراحل مرتب سازی زیر انجام می شود

  • خواندن همه رکورد ها به حافظه برای مرتب سازی و تشکیل رانش ها

  • نوشتن رانش های مرتب شده روی دیسک


4425987
مراحل ادغام زیر انجام می شود

  • خواندن رانش های مرتب شده به حافظه برای ادغام

  • نوشتن فایل مرتب شده بر روی دیسک


4425987
راهکارهای کاهش زمان زیر انجام می شود

  • تخصیص سخت افزار بیشتر نظیر دیسک گردان و حافظه

  • اجرای ادغام در بیش از یک مرحله

  • افزایش طول رانش های مرتب شده از لحاظ الگوریتمی

  • یافتن راههایی برای همپوشانی عملیات i/o


4425987
به کمک سخت افزار زیر انجام می شود

  • افزایش مقدار حافظه

  • افزایش تعداد دیسک گردان ها

  • افزایش تعداد کانال های i/o


4425987
ابزار هایی برای بهبود کارایی مرتب سازی خارجی

  • برای مرتب سازی درون حافظه ای از مرتب سازی هرمی در یک رانش استفاده می کنیم

  • استفاده از حد اکثر حافظه ممکن

  • اگر تعداد رانش های اولیه بزرگ باشد از ادغام چند مرحله ای استفاده می کنیم

  • استفاده از گزینش جایگزینی برای تشکیل رانش های اولیه

  • از بیش از یک دیسک گردان و کانال io استفاده کنیم


4425987
مراحل مرتب سازی روی نوار مرتب سازی خارجی

  • تقسیم فایل مرتب نشده به رانش های مرتب شده

  • ادغام رانش ها به یک فایل مرتب شده


4425987
راهکارهای کاهش زمانهای تاخیر چرخشی و پیگرد

  • با اجرای ادغام در بیش از یک مر حله

  • افزایش اندازه رانش های مرتب شده اولیه


4425987

مقایسه ی زمان های دستیابی مورد نیاز برای مرتب سازی 80 میلیون رکورد با استفاده از مرتب سازی حافظه ای و گزینش جایگزینی و یک ادغام دو جانبه پس از هریک.


4425987
فصل نهم نیاز برای مرتب سازی 80 میلیون رکورد با استفاده از مرتب سازی حافظه ای و گزینش جایگزینی و یک ادغام دو جانبه پس از هریک.

شاخص بندی چند سطحی و درختهای B


4425987
اهداف فصل نیاز برای مرتب سازی 80 میلیون رکورد با استفاده از مرتب سازی حافظه ای و گزینش جایگزینی و یک ادغام دو جانبه پس از هریک.

  • توسعه ی درخت های B برای حل مسأله هایی که برای آن ها طراحی شده اند.

  • نگاهی به سایر ساختارهای درختی که ممکن است در حافظه های جانبی مورد استفاده قرار گیرند، مثل درخت AVL صفحه بندی شده (paged).

  • معرفی شاخص های چند رکوردی و چند سطحی و ارزیابی سرعت عمل جستجو.

  • درک ویژگی های مهمی که توسط درخت های B پردازش می شوندو بررسی اهمیت آن ها در حافظه های جانبی.

  • طراحی شیء گرای درخت های B

  • تعریف کلاس BTreeNode، نمایش گره های درخت های B در حافظه.

  • تعریف کلاس BTree، نمایش کامل درخت های B و تمام اعمال آن ها.

  • تشریح پیاده سازی اصول عملیات درخت های B

  • معرفی بافردهی صفحه ای و درخت های B مجازی.

  • توصیف الگوریتم های اصلی درخت B، مثل آن هایی که برای ساختن درخت B* و درخت B با رکوردهای طول متغیر به کار گرفته شده اند.


4425987


4425987
نکته واقعی:حافظه کر

  • مشکل اصلی نگه داشتن شاخص در حافظه جانبی این است که دسترسی به حافظه جانبی کند است


4425987
مشکل قبل به دو مشکل تقسیم می شود: واقعی:حافظه کر

  • جستجو بر حسب شاخص باید سریع تراز جستجوی دودویی باشد.

  • درج و حذف باید با سرعت جستجو کردن انجام شود.


4425987
راهکار مشکل اول واقعی:حافظه کر

  • استفاده از درخت های دودویی صفحه ای

در درخت دودويي صفحه اي سعي مي كند با قرار دادن چندين گره دودويي در يك صفحه ديسك مشكل را حل كند . به اين ترتيب كه با يك دستيابي به ديسك بخش بزرگي از درخت را مي توان به دست آورد . ب شاخص هاي صفحه اي مي توان در بين تعداد زيادي كليد , با تعداد كمي دستيابي به ديسك كليدي را جستجو كنيم .


4425987

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


4425987
راهکار مشکل دوم صفحه اي را نشان مي دهد.

  • استفاده از درخت موازنه شده


4425987
دو مزیت درختهای صفحه اي را نشان مي دهد.AVL

  • با تعیین کردن حداکثر تفاوت مجاز در ارتفاع هر دو زیر درخت این درخت ها حداقل کارایی را در جستجو تضمین می کنند.

  • برای اینکه هنگام درج در درخت AVL ویژگی خود را حفظ کند مستلزم چهار نوع چرخش است.


4425987
تاریخچه درخت صفحه اي را نشان مي دهد.B

داگلاس کومر، در مقاله ی تحقیقاتی عالی خود،تحت عنوان " درخت B درهمه جا "از رقابت میان صاحبان صنایع کامپیوتر و گروه های تحقیقاتی مستقل در اواخر دهه ی 1960 صحبت می کند. هدف، پیدا کردن روشی کلی برای ذخیره و بازیابی داده ها در فایل بزرگ بود، که امکان دسترسی سریع با حداقل زمان را فراهم کند. در میان رقبا، بایر و پ. مک کرایت بودند که برای شرکت بویینگ کار می کردند. در سال 1972 آن ها مقاله ای به نام " سازمان دهی و نگهداری شاخص های مرتب شده ی بزرگ " منتشر کردند که درخت B را به جهان معرفی کرد.


4425987
درخت صفحه اي را نشان مي دهد.B

هر گره درخت B یک رکورد شاخص است .هر کدام از این رکورد ها تعداد یکسانی از جفتهای کلید – آدرس دارند که مرتبه درخت نام دارد.


4425987
متد جستجو در درخت صفحه اي را نشان مي دهد.B

  • به صورت تکراری عمل می کنند.

  • در دو مر حله عمل می کنند : به صورت یک در میان روی کل صفحات.


4425987
مراحل درج کردن صفحه اي را نشان مي دهد.

  • جستجو تا سطح برگ با استفاده از متد FINDLEAF قبل از تکرار.

  • درج تشخیص سرریز و تقسیم کردن در مسیر رو به بالا.

  • ایجاد یک ریشه جدید , در صورتی که ریشه فعلی تقسیم شده است.


4425987
خواص یک در خت صفحه اي را نشان مي دهد.B از مرتبه m

  • هر صفحه حد اکثر m فرزند دارد.

  • هر صفحه بجز ریشه ها و برگها حداقل [m/2]فرزند دارد.

  • ریشه حد اقل دو فرزند دارد.

  • تمام برگها در یک سطح قرار دارند.

  • سطح برگها, یک شاخص کامل و مرتب شده از داده های مر بوط به درخت را ایجاد می کند.


4425987
خواص درختهای صفحه اي را نشان مي دهد.B*

  • هر صفحه حد اکثر m فرزند دارد.

  • هر صفحه بجز ریشه حداقل[(2m-1)/3] فرزند دارد.

  • ریشه حداقل دو فرزند دارد.

  • تمام برگها در یک سطح قرار دارند.


4425987
روش صفحه اي را نشان مي دهد.LRU

  • این روش زمانی کارساز است که احتمال در خواست صفحاتی که در بافر است از درخواست احتمال صفحاتی که در بافر وجود ندارند بیشتر باشد.


4425987

ارزیابی سرعت درخت صفحه اي را نشان مي دهد.B

درخت B امکان بازیابی، درج و حذف کردن کلیدها را درزمان متناسب با log K I یا بهتر از آن فراهم می کند، I اندازه ی شاخص را نشان می دهد و K یک عدد طبیعی وابسته به دستگاه است که اندازه ی صفحه را نشان می دهد، به طوری که نگهداری و دستیابی، نزدیک به حالت بهینه باشد.


Page fault
PAGE FAULT صفحه اي را نشان مي دهد.

  • فرایند دستیابی به دیسک برای خواندن صفحه ای که در بافر وجود ندارد.


4425987
دو علت برای نقص صفحه وجود دارد: صفحه اي را نشان مي دهد.

  • هیچگاه تا کنون از آن صفحه استفاده نکرده ایم.

  • آن صفحه قبلا در بافر بوده است اما صفحه جدیدی جایگزین آن شده است.


4425987
فصل دهم صفحه اي را نشان مي دهد.

دستیابی به فایل های ترتیبی شاخص دار و درختهای B+


4425987
اهداف فصل صفحه اي را نشان مي دهد.

  • آشنایی با فایل های ترتیبی شاخص دار.

  • شرح عملیات روی مجموعه ای ترتیبی از بلوک ها که رکوردها را به ترتیب توسط کلید ذخیره می کنند.

  • چگونه می توان یک مجموعه شاخص را روی یک مجموعه ی ترتیبی ایجاد و یک ساختار فایل ترتیبی شاخص دار ایجاد نمود.

  • آشنایی با کاربرد درخت B برای حفظ مجموعه شاخص و در نتیجه آشنایی با درخت B+ و درخت B+ پیشوندی ساده (prefix B+ tree).

  • چگونه مجموعه شاخص درخت B در یک درخت B+ پیشوندی ساده، می تواند از مرتبه ی متفاوتی بوده، تعداد متغیری از جدا کننده ها (separators) را نگهداری می کند.

  • مقایسه نقاط ضعف و قوت درخت های B+، درخت های B+ پیشوندی ساده و درخت های B.


4425987

فايل با ساختار پايل يا برهم : صفحه اي را نشان مي دهد.

  • اين فايل داراي ساختاري فاقد هر گونه نظم است . يعني ركوردها بر اساس مقادير هيچ نوع كليدي مرتب نشده اند و در بهترين حالت نظم بين ركوردها ، نظمي زماني است .


4425987

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


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

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


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

  • اين ساختار چنان است كه پديده عدم تقارن در آن وجود ندارد ، زيرا روي تعدادي و حتي تمام صفات كليد مي توان شاخص ايجاد كرد .


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

  • در اين ساختار درج و واكشي ركوردها با استراتژي خاصي صورت مي گيرد . به طوريكه يكي از صفات خاصه به عنوان كليد در نظر گرفته شده ، سيستم فايل آن را پردازش مي كند و حاصل آدرسي است كه ركورد بايد در آن جاي گيرد .


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

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


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

  • در اين ساختار با استفاده از نشانوند جستجو مي توان از يك نوع تابع درهم ساز براي دستيابي به فايل استفاده كرد . تابع درهم ساز ، پس از اعمال روي مقادير نشانوند جستجو ، براي هر ركورد عددي را به دست مي دهد كه نشان دهنده موقعيت نسبي ركورد در فايل است كه همان آدرس نسبي ركورد (RRN) است . سيستم فايل با داشتن RRN و طول ركورد و نيز آدرس شروع فايل (BOF)‌ آدرس محل درج ركورد را به دست مي دهد .نشانوند جستجوتابع درهم سازRRN است

  • آدرس ركورد با استفاده از فرمول زير حاصل مي شود :

  • آدرس ركورد = آدرس شروع فايل + ( RRN – 1 ) * R


4425987

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

نشانوند جستجو

RR

  • آدرس ركورد با استفاده از فرمول زير حاصل مي شود :

  • آدرس ركورد = آدرس شروع فايل + ( RRN – 1 ) * R


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

  • فایل را می توان به عنوان مجمو عه ای از کلید ها در نظر گرفت که توسط کلید شاخص بندی شده اند.


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

  • به فایل می توان دستیابی ترتیبی داشت (برای رکورد های پیوسته – بدون پیگرد) و رکورد ها را به ترتیب توسط کلید باز گرداند.


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

  • مجموعه ای از رکورد ها که به طور فیزیکی توسط کلید ها مرتب شده اند و رکورد هایی به آن اضافه یا از آن حذف می شوند.


4425987
ته ریز شدن در درخت ترتيبي كليدي و فايل ترتيبي زماني است . در فايل ترتيبي زماني ، ركوردها به ترتيب ورود به سيستم ذخيره مي شوند و در فايل ترتيبي ، لود اوليه تمام نمونه ركوردها بر اساس مقادير صفت كليد ذخيره شده است به طوريكه تمام نمونه ركوردها قالب از پيش طراحي شده اي دارند .B می تواند منجر به دو راه حل زیر شود:

  • اگر یک گره مجاور نیز نیمه پر باشد می توان دو گره را در هم ادغام کرد و یکی از آنها را برای استفاده دوباره آزاد ساخت.

  • اگر گره های مجاور بیش از نیمه پر باشند می توان رکورد ها را دو باره میان گره ها توزیع کرد تا توزیع تقریبا متعادل گردد.


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

  • چون این شاخص از نوع ساده ای است رکورد های مشخص را با جستجوی دودویی اندیس می یابیم .اگر این جستجو در حافظه صورت پذیرد خوب عمل می کند.

  • با تغییر بلوکها در مجموعه ترتیبی , در اثر شکستن بلوکها , ادغام و تو زیع دوباره , شاخص باید بهنگام شود .بهنگام سازی یک شاخص ساده برای رکورد های طول ثابت , در صورتی که نسبتا کوچک باشد و در حافظه نگنجد خوب عمل می کند.


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

يك درخت B+ كه مجموعه شاخص آن , حاوي كوچكترين جداكننده يا پيشوندي كليدها باشد ايجاد مي شود درخت B+ پيشوندي نام دارد.

مجموعه انديس يك درخت B است . تغييرات صورت گرفته در مجموعه انديس , تغييرات ثانويه را نتيجه جانبي حاصل از عمليات اصلي روي مجموعه ترتيبي است. د ر همه عمليات درج و حذف , عمل اصلي در مجموعه ترتيبي صورت مي گيرد. چون ركوردها در آن قرار دارند . فقط وقتي جدا كننده جديدي به مجموعه شاخص مي افزاييم كه بلوك جديدي به مجموعه ترتيبي اضافه مي شود .


4425987
درخت ترتيبي كليدي و فايل ترتيبي زماني است . در فايل ترتيبي زماني ، ركوردها به ترتيب ورود به سيستم ذخيره مي شوند و در فايل ترتيبي ، لود اوليه تمام نمونه ركوردها بر اساس مقادير صفت كليد ذخيره شده است به طوريكه تمام نمونه ركوردها قالب از پيش طراحي شده اي دارند .B+

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

  • همه اين ركوردها د ر مجموعه ترتيبي نگهداري مي شوند. درج و حذف ركوردها از طريق شكافتن , پيوند دادن و توزيع دوباره بلوك ها در مجموعه ترتيبي صورت مي پذيرد.


4425987

  • تفاوت ميان درخت ترتيبي كليدي و فايل ترتيبي زماني است . در فايل ترتيبي زماني ، ركوردها به ترتيب ورود به سيستم ذخيره مي شوند و در فايل ترتيبي ، لود اوليه تمام نمونه ركوردها بر اساس مقادير صفت كليد ذخيره شده است به طوريكه تمام نمونه ركوردها قالب از پيش طراحي شده اي دارند .B+ يشوندي ساده و درخت B+ آن است كه B+ از پيشوندهايي به عنوان جداكننده استفاده نمي كند . در عوض جدا كننده ها د ر مجموعه انديس , صرفا يك كپي از نمونه هاي واقعي اند.


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

  • اگر بلوکها در مجموعه ترتیبی شکافته شوند , یک خط جدا کننده جدید باید در مجموعه شاخص درج گردد.

  • اگر بلوکها در مجموعه ترتیبی ادغام شوند یک جدا کننده باید از مجموعه شاخص حذف گردد.

  • اگر رکورد ها بین بلوکها در مجموعه ترتیبی دوباره توزیع شوند , مقدار یک جداکننده در مجموعه شاخص باید تغییر یابد.


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

  • اندازه فیزیکی یک گره برای مجموعه اندیس , معمولا برابر با اندازه یک بلوک در مجموعه ترتیبی است.در چنین موردی به جای گره از لفظ بلوک برای مجموعه شاخص استفاده می کنیم .


4425987
دلایل استفاده از اندازه بلوک مشترک میان مجموعه های ترتیبی و اندیسی:

  • معمولا از آن رو برای مجموعه شاخص از اندازه بلوک مجموعه ترتیبی استفاده می شود که تطابق خوبی میان اندازه بلوک , ویژگیهای دیسک گردان و مقدار حافظه در دسترس وجود دارد.بنا بر این , اندازه بلوکی که برای مجموعه ترتیبی بهترین باشد , برای مجمو عه شاخص نیز بهترین خواهد بود.


4425987

2. با اندازه بلوکهای مشترک , پیاده سازی یک الگوی بافر دهی برای ایجاد درخت B+ پیشوندی ساده مجازی مشابه درختهای B مجازی آسانتر می گردد.


4425987

3. بلوکهای مجموعه ترتیبی و بلوکهای مجموعه شاخص غالبا در یک فایل قرار داده می شوند تا از جستجو میان دو فایل جداگانه در هنگام دستیابی به درخت B+ پیشوندی ساده پرهیز شود.استفاده از یک فایل برای هر دو نوع بلوک , در صورت هم اندازه بودن آنها آسانتر صورت می پذیرد.


4425987
ساختار درونی بلوکهای مجموعه ترتیبی : یک درخت B از مرتبه متغییر

  • این ساختار بلوک شامل موارد زیر می شود:

  • تعداد جداکننده ها

  • طول کل جدا کننده ها


4425987
نکته 1: ترتیبی : یک درخت

  • بلوک صرفا یک دسته برش داده شده از یک فایل همگن نیست , بلکه چیزی بیش از یک مجموعه رکورد است.بلوک خود می تواند دارای یک ساختار درونی پیچیده باشد , که شامل شاخص داخلی آن , مجموعه ای از رکورد های طول متغییر , مجموعه های جداگانه ای از رکورد های طول متغییر و غیره باشد.


4425987
نکته 2: ترتیبی : یک درخت

  • هر گره در مجموعه اندیس درخت B از درخت B+ پیشوندی ساده دارای مرتبه متغییر است.زیرا هر بلوک از مجموعه شاخص حاوی تعداد متغیری از جداکننده ها است.


4425987

  • دلیل استفاده از کوتاه ترین جدا کننده ها فشرده سازی هر چه بیشتر آنها در یک بلوک از مجموعه شاخص است.این بدان معنا است که , در بلوکهای مجموعه شاخص از فیلد هایی با طول متغییر استفاده می کنیم.


B b b
خصوصیات مشترک درختهای کننده ها فشرده سازی هر چه بیشتر آنها در یک بلوک از مجموعه شاخص است.این بدان معنا است که , در بلوکهای مجموعه شاخص از فیلد هایی با طول متغییر استفاده می کنیم.B و B+ و B+ پیشوندی ساده

1.همگی ساختار های شاخص صفحه ای هستند.یعنی کل اطلا عات موجود در بلوک را یکباره به حافظه منتقل می کنند.در نتیجه می توان از میان حالتهای مختلف تنها با چند پیگرد , حالتی خاص را در دیسک یافت.شکل این درختها پهن و تو خالی است.


4425987

2. در هر سه روش درختهایی نگهداری می شود که ارتفاع آنها موازنه است .درختها به شیوه ای غیر عادی که منجر به جستجو های طولانی برای کلید های معین می شود رشد نمی کنند.


4425987

3.در همه موارد درختها از پایین به بالا رشد می کنند و موازنه از طریق شکستن بلوک , ادغام و توزیع دوباره حفظ می شود.

4.با هر سه ساختار می توان از طریق استفاده از شکافتگی دو به سه و در صورت امکان توزیع دوباره به جای شکستن بلوک , بازدهی را بالا برد.


4425987

5.هر سه روش را می توان به عنوان ساختار های درختی مجازی پیاده سازی کرد که در آن آخرین بلوکهای استفاده شده در حافظه نگهداری می شوند.

6.هر یک از این سه روش را می توان با استفاده از ساختار های موجود در بلوک با رکورد های طول متغییر به کار برد.


4425987
تفاوت میان درخت ساختار های درختی مجازی پیاده سازی کرد که در آن آخرین بلوکهای استفاده شده در حافظه نگهداری می شوند.B و B+

تفاوت مهم میان درخت B و B+ در آن است کهدر درخت B+ همه اطلاعات مربوط به کلید ها و رکورد ها در یک مجموعه پیوند یافته از بلوکها موسوم به مجموعه ترتیبی قرار دارند.


4425987
دو مزیت مهم ساختار درخت ساختار های درختی مجازی پیاده سازی کرد که در آن آخرین بلوکهای استفاده شده در حافظه نگهداری می شوند.B+ نسبت به درخت B

  • مجموعه ترتیبی را می توان به شیوه ای واقعا ترتیبی و خطی پردازش کرد و در نتیجه به ترتیب کلید ها به رکورد ها دستیابی مو ثری داشت.

  • شاخص با یک کلید منفرد یا جدا کننده به ازای هر بلوک از رکورد های داده ها , به جای یک کلید به ازای هر رکورد ساخته می شود.


4425987

پایان ساختار های درختی مجازی پیاده سازی کرد که در آن آخرین بلوکهای استفاده شده در حافظه نگهداری می شوند.


ad