نمایه سازی در DBMS تکنیکی است که از ساختارهای داده برای بهینه سازی زمان جستجو در یک پرس و جو پایگاه داده استفاده می کند. این به نتایج پرس و جو سریعتر و بازیابی سریع داده ها از پایگاه داده کمک می کند. نمایه سازی عملکرد پایگاه داده را بهتر می کند. همچنین فضای کمتری در حافظه اصلی مصرف می کند.
محدوده
مقاله شامل مباحثی از قبیل نمایه سازی و انواع آن ، جدول فهرست ، ویژگی های نمایه سازی و مزایای فهرست بندی است.
هر یک از مباحث به وضوح با نمودارها و نمونه هایی در هر کجا که لازم باشد توضیح داده می شود.
فهرست بندی در DBMS چیست؟
از فهرست بندی برای بازیابی سریع داده های خاص از پایگاه داده استفاده می شود. به طور رسمی می توانیم نمایه سازی را به عنوان تکنیکی تعریف کنیم که از ساختارهای داده برای بهینه سازی زمان جستجو یک پرس و جو پایگاه داده استفاده می کند. نمایه سازی با ایجاد یک جدول شاخص ، تعداد دیسک های مورد نیاز برای دسترسی به یک داده خاص را کاهش می دهد.
نمایه سازی با ایجاد جدول یا فهرست شاخص حاصل می شود.
فهرست معمولاً از دو ستون تشکیل شده است که یک جفت ارزش کلیدی هستند. دو ستون جدول فهرست (به عنوان مثال ، جفت ارزش کلید) حاوی نسخه هایی از ستون های انتخاب شده از داده های جدولی بانک اطلاعاتی است.
در اینجا ، کلید جستجو شامل کپی کلید اصلی یا کلید کاندیدای جدول پایگاه داده است. به طور کلی ، ما کلیدهای انتخاب شده یا نامزد انتخاب شده را به روشی مرتب سازی شده ذخیره می کنیم تا بتوانیم زمان کل پرس و جو یا زمان جستجو (از خطی تا باینری) را کاهش دهیم.
مرجع داده ها شامل مجموعه ای از نشانگرها است که آدرس بلوک دیسک را در خود جای داده است. بلوک دیسک اشاره شده حاوی داده های واقعی است که توسط کلید جستجو به آنها اشاره شده است. مرجع داده ها همچنین به عنوان Block Pointer نامیده می شود زیرا از آدرس دهی مبتنی بر بلوک استفاده می کند.
ویژگی های نمایه سازی
بیایید در مورد ویژگی های مختلف نمایه سازی بحث کنیم:
استاندارد (درخت B) و بیت مپ
نشانگر B-Tree یکی از محبوب ترین و متداول ترین تکنیک های فهرست بندی است. B-Tree نوعی ساختار داده درختی است که شامل 2 چیز است: Key Index و آدرس دیسک مربوط به آن. Key Index به یک آدرس دیسک خاص اشاره دارد و دیسک بیشتر حاوی ردیف یا نمونه ای از داده ها است.
از طرف دیگر ، نمایه سازی Bitmap از رشته هایی برای ذخیره آدرس Tuples یا ردیف ها استفاده می کند. Bitmap نقشه برداری از یک سیستم به سیستم دیگر مانند اعداد صحیح به بیت ها است.
Bitmap نسبت به B-Chorth از این مزیت برخوردار است زیرا Bitmap بازیابی سریعتر از داده های خاص را انجام می دهد (Bitmap مطابق با داده های خاص ساخته می شود ، از این رو سریعتر بازیابی می شود). Bitmaps همچنین از درختان B جمع و جور تر است.
یک اشکال با نقشه برداری بیت وجود دارد ، نقشه برداری بیت در حین انجام عملیات Tuple روی میز به سربار بیشتری نیاز دارد. از این رو ، نقشه های بیت عمدتاً در محیط های انبار داده استفاده می شوند.
مثال - ما می خواهیم این جدول سه ستونی را در پایگاه داده ذخیره کنیم.
| نام | نشان | سن |
| جون | 5 | 28 |
| الکس | 32 | 45 |
| دلهره | 37 | 23 |
| رون | 87 | 13 |
| علامت | 20 | 48 |
| بچه | 89 | 32 |
نمایندگی B-Tree مانند این خواهد بود:
توجه: پایگاه داده اوراکل از درختان Bitmap و B استفاده می کند.
صعودی و نزولی
همانطور که در بالا بحث کردیم ، ستون های این فهرست به نوعی مرتب شده ذخیره می شوند. به طور کلی ، ما این کلیدهای جستجو را به ترتیب صعودی ذخیره می کنیم. این کلیدهای مرتب شده به ما امکان می دهند داده ها را به سرعت جستجو کنیم. ما می توانیم ترتیب مرتب سازی را از صعود به نزولی یا چیزهای متفاوت با توجه به شایع ترین سؤالات در پایگاه داده تغییر دهیم.
نحو
بیایید نحو را برای ذخیره نمایه سازی به ترتیب نزولی مشاهده کنیم-
به صورت پیش فرض مرتب سازی:
- داده های شخصیت: طبقه بندی شده توسط مقادیر ASCII کاراکترها.
- داده های عددی: کوچکترین تا بزرگترین اعداد.
- تاریخ: اولین تاریخ به آخرین تاریخ.
ستون و عملکردی:
به طور کلی ، ما جدول فهرست را با مقادیر ستون خاصی از پایگاه داده واقعی آماده می کنیم اما گاهی اوقات می توانیم از توابع SQL از پیش تعریف شده مانند بالا () یا پایین () یا حداکثر () و غیره استفاده کنیم تا کلیدهای جستجو را تهیه کنیم.
مثال - ما می توانیم تمام مقادیر را در یک ستون به حروف بزرگ تبدیل کنیم و این نتایج را در فهرست ذخیره کنیم.
نحو:
توجه: جدول شاخص هایی که مقادیر ستونهای استفاده شده تشکیل شده نیز به عنوان فهرست ستون یا جدول ستون ستون نامیده می شود.
تک ستونی و هماهنگ
ما می توانیم یک جدول شاخص تک ستونی یا جدول شاخص چند ستونی ایجاد کنیم. شاخص های جمع شده مطابق با مشخصات مشخصی ساخته می شوند (در آن بند مربوط به شایع ترین سؤالات SQL) ، از این رو باعث می شود سریعتر بازیابی یا بازیابی داده ها انجام شود.
مثال - بگذارید نمونه ای از جدول شاخص چند ستونی را بگیریم:
ما می توانیم از کلید اصلی برای ایجاد جداول شاخص های مختلف مانند نمایه سازی بر اساس سال (سالهای گروه بندی) یا نمایه سازی بر اساس مدل مدل و غیره استفاده کنیم. این نمایه سازی چند جدول به سریعتر شدن نتایج پرس و جو خاص کمک می کند.
توجه: چند ستونی نیز به عنوان یک فهرست هماهنگ نامیده می شود.
غیر حزبی و تقسیم شده
همانطور که می دانیم ایندکس به یک جدول خاص یا بلوک داده ها اشاره می کند اما گاهی اوقات داده ها به صورت خاص تقسیم می شوند ، بنابراین باید جدول فهرست را نیز تقسیم کنیم. به طور کلی ، ما از همان طرح پارتیشن جدول برای پارتیشن جدول فهرست استفاده می کنیم که به عنوان شاخص پارتیشن محلی شناخته می شود. ما از همان طرح استفاده می کنیم تا سرعت بازیابی داده ها حفظ شود. با این حال ، ما همچنین می توانیم شاخص غیر متعهد خود را ایجاد کنیم. این به عنوان شاخص جهانی جدول تقسیم شده شناخته می شود.
مثال - فرض کنید ما یک جدول داریم یعنی یک جدول دانشجویی. اگر جدول دانشجویی با توجه به شماره رول (کلید اصلی) تقسیم شود ، جدول فهرست جدول دانشجویی نیز باید مطابق با شماره رول تقسیم شود. این نوع پارتیشن در گروه بندی داده های مشابه و نتایج پرس و جو سریعتر کمک خواهد کرد.
انواع فهرست ها
با توجه به ویژگی های تعریف شده در بالا ، ما نمایه سازی را به سه نوع تقسیم می کنیم:
فهرست بندی تک سطح
تا حدودی شبیه شاخص (یا فهرست مطالب) است که در یک کتاب یافت می شود. فهرست یک کتاب شامل نام موضوعات به همراه شماره صفحه به طور مشابه جدول فهرست پایگاه داده حاوی کلیدها و آدرس بلوک مربوطه آنها است.
نمایه سازی تک سطح بیشتر به سه دسته تقسیم می شود:
- نمایه سازی اولیه: فهرست بندی یا جدول فهرست ایجاد شده با استفاده از کلیدهای اولیه به عنوان نمایه سازی اولیه شناخته می شود. در داده های سفارش داده شده تعریف شده است. از آنجا که این شاخص از کلیدهای اولیه تشکیل شده است ، آنها منحصر به فرد هستند ، نه تهی و دارای یک رابطه با بلوک های داده هستند.
ویژگی های نمایه سازی اولیه:
- کلیدهای جستجو بی نظیر هستند.
- کلیدهای جستجو به ترتیب مرتب شده اند.
- کلیدهای جستجو نمی توانند تهی باشند زیرا به بلوک داده ها اشاره می کند.
- جستجوی سریع و کارآمد.
- نمایه سازی ثانویه: این یک روش نمایه سازی دو سطح است که برای کاهش اندازه نقشه برداری شاخص اصلی استفاده می شود. شاخص ثانویه به یک مکان خاص اشاره می کند که داده ها پیدا می شوند اما داده های واقعی مانند فهرست بندی اولیه طبقه بندی نمی شوند. نمایه سازی ثانویه همچنین به عنوان نمایه سازی غیر خوشه ای شناخته می شود.
ویژگی های نمایه سازی ثانویه:
- کلیدهای جستجو کلیدهای نامزد هستند.
- کلیدهای جستجو مرتب شده اند اما داده های واقعی ممکن است مرتب شوند یا نباشند.
- به زمان بیشتری نسبت به نمایه سازی اولیه نیاز دارد.
- کلیدهای جستجو نمی توانند تهی باشند.
- سریعتر از نمایه سازی خوشه ای اما کندتر از نمایه سازی اولیه.
- نمایه سازی خوشه ای: از نمایه سازی خوشه ای استفاده می شود که چندین سوابق مرتبط در یک مکان وجود داشته باشد. در داده های سفارش داده شده تعریف شده است. نکته مهمی که در اینجا باید به آن توجه داشت این است که جدول فهرست فهرست بندی های خوشه ای با استفاده از مقادیر غیر کلید ایجاد می شود که ممکن است بی نظیر باشد یا نباشد. برای دستیابی به بازیابی سریعتر ، ستون های گروهی با ویژگی های مشابه را دارند. شاخص ها با استفاده از این گروه ها ایجاد می شوند و این فرایند به عنوان شاخص خوشه بندی شناخته می شود.
ویژگی های نمایه سازی خوشه ای:
- کلیدهای جستجو مقادیر غیر کلید هستند.
- کلیدهای جستجو مرتب شده اند.
- کلیدهای جستجو نمی توانند تهی باشند.
- کلیدهای جستجو ممکن است بی نظیر باشد یا نباشد.
- برای ایجاد نمایه سازی نیاز به کار اضافی دارد.
فهرست بندی سفارش داده شده:
نمایه سازی سفارش داده شده روش سنتی برای ذخیره سازی است که بازیابی سریع را انجام می دهد. شاخص ها به صورت مرتب سازی شده ذخیره می شوند از این رو به عنوان شاخص های سفارش داده شده نیز شناخته می شوند.
نمایه سازی سفارش داده شده بیشتر به دو دسته تقسیم می شود:
- نمایه سازی متراکم: در فهرست بندی متراکم ، جدول فهرست شامل سوابق مربوط به هر مقدار کلید جستجو از پایگاه داده است. این باعث می شود سریعتر جستجو شود اما به فضای بسیار بیشتری نیاز دارد. این مانند نمایه سازی اولیه است اما حاوی رکوردی برای هر کلید جستجو است.
- نمایه سازی پراکنده: نمایه سازی پراکنده فضای کمتری نسبت به نمایه سازی متراکم مصرف می کند ، اما کمی کندتر نیز هست. ما با وجود اینکه یک کلید جستجو را که به یک بلوک اشاره دارد ، یک کلید جستجو برای هر رکورد درج نمی کنیم. بلوک اشاره شده بیشتر شامل گروهی از داده ها است. بعضی اوقات ما مجبور به انجام مضاعف هستیم ، این باعث می شود که نمایه سازی پراکنده کمی کندتر باشد.
فهرست بندی چند سطحی
از آنجا که جدول فهرست در حافظه اصلی ذخیره می شود ، نمایه سازی تک سطح برای مقدار زیادی از داده ها به فضای حافظه زیادی نیاز دارد. از این رو ، نمایه سازی چند سطحی معرفی شد که در آن بلوک داده اصلی را به بلوک های کوچکتر تقسیم می کنیم. این باعث می شود بلوک بیرونی جدول فهرست به اندازه کافی کوچک باشد که در حافظه اصلی ذخیره شود.
ما از ساختار داده B+ درخت برای نمایه سازی چند سطحی استفاده می کنیم. گره های برگ درخت B+ حاوی نشانگرهای داده واقعی است. گره های برگ خود به صورت یک لیست مرتبط هستند. این نمایش لیست مرتبط به دسترسی متوالی و تصادفی کمک می کند.
کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید
برچسب :
نویسنده : ژیلا توفیقی
بازدید : <-PostHit->
تاريخ : دوشنبه
29 اسفند
1401 ساعت: 12:21