طراحی بهینه یک پایگاه داده، مبحث ایندکس ها

farshid_mi

New Member
برای دیدن مقاله با عکس ها به لینک زیر مراجعه کنید:
http://www.farsaran.ir/Access_Section/Index%20in%20Access.htm


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



وقتی که ما اطلاعات را در یک جدول اکسس وارد می‌کنیم بدون هیچ نظم و منطقی اطلاعات(رکوردها) شکل می‌گیرند و حال وقتی که یک فرمان جستجو (Find)، Query و یا Sort را اجرا می‌‌کنیم اکسس بایستی تمام رکورد‌ها را از ابتدا مورد بررسی قرار دهد تا فرمان شما را اجرا کنید و هنگامیکه با تعداد زیادی رکورد مواجه هستیم این فرمانها بسیار زمانگیر می‌شوند و توجه داشته باشید که معمولا این فرمانها بایستی به دفعات اجرا شوند . راه حل این مشکل ایجاد ایندکس برای جداول است که در سرعت و راندمان یک پایگاه داده اکسس بسیار موثر واقع می‌شود.



اندیکس‌ها به اکسس کمک می‌کنند که فرایند پیدا کردن (find) و مرتب سازی (sort) رکوردها را سریعتر انجام دهد مانند آنچه که فهرست کلید واژه‌ها و اصطلاحات پایان یک کتاب یا تفکیک حروف الفبا در یک لغت‌نامه برای ما انجام می‌دهند.

در واقع اندیکس‌ یک جدول داخلی است که در آن دو ستون وجود دارد، ستون داده‌ها و ستون مکان داده‌ها در جدول اصلی برای توضیح این موضوع جدول زیر را در نظر بگیرید:

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

برای ایجاد اندیکس بر روی یک فیلد از جدول کافیست که وضعیت Indexed را Yes کنیم (شکل شماره 1) و در صورتیکه از گزینه Yes(No Duplicates) استفاده شود دیگر در این فیلد مقادیر تکراری را نمی‌توان وارد کرد.

در پایان لازم به ذکر است که اندیکس‌ها باعث می‌شود که عملیات به روز رسانی (update) کند تر انجام شود و از طرف دیگر حجم فایل نیز افزایش پیدا می‌کند به همین خاطر معمولا اندیکس‌ها فقط برای فیلدهایی استفاده می‌شود که روی آنها عملیات Sort, find به دفعات انجام می‌گردد .

منبع : http://www.farsaran.ir
 

جدیدترین ارسال ها

بالا