شاخصها یکی از ابزارهای مهم در پایگاه دادهها هستند که باعث بهبود عملکرد جستجوها و کوئریها میشوند. در این پست، با مفهوم شاخصها، انواع آنها در Microsoft Access و نحوه مدیریت آنها آشنا خواهید شد.
شاخص چیست؟
شاخص یک ساختار دادهای است که به پایگاه دادهها کمک میکند تا دادهها را سریعتر پیدا کنند. شاخصها با ایجاد مسیرهای سریع به دادهها، عملیات جستجو، مرتبسازی و فیلتر کردن را بهبود میبخشند.
انواع شاخصها در Access
در Microsoft Access، دو نوع اصلی شاخص وجود دارد:
شاخصهای تکستونی (Single-Column Index):
این نوع ایندکس فقط یک ستون را ایندکس میکند. مثلاً ایندکس بر روی ستون LastName.
شاخصهای چندستونی (Multi-Column Index):
این نوع ایندکس بیش از یک ستون را ایندکس میکند. مثلاً ایندکس بر روی ستونهای LastName و FirstName.
شاخص یکتا (Unique Index):
این شاخص اطمینان میدهد که مقادیر در ستون یا ترکیبی از ستونها یکتا هستند. این به این معناست که در تمام ردیفهای جدول مقدار ستون شاخص یکتا باید باشد و مقادیر تکراری نمیتوانند در این ستون ثبت شوند. شاخص یکتا میتواند یک ستونی یا چند ستونی باشد.
شاخص یکتا از یک نظر مشابه و از یک نظر متفاوت با کلید اصلی جدول است. شاخص یکتا همانند کلید اصلی نمیتواند مقدار تکراری داشته باشد ولی برخلاف کلید اصلی شاخص یکتا میتواند مقدار Null داشته باشد.
در Microsoft Access، هنگامی که یک ستون به عنوان کلید اصلی (Primary Key) تعریف میشود، Access به طور خودکار یک شاخص یکتا برای آن ستون ایجاد میکند. این شاخص برای اطمینان از یکتایی مقادیر کلید اصلی و خالی نبودن مقدار آن ایجاد میشود.
برای درک بیشتر این شاخص فرض کنید که در یک جدول میخواهید که اطلاعات پرسنل شرکت را وارد نمایید. یک ستون بعنوان کلید اصلی تعریف کردهاید که بطور خودکار تکمیل میشود. جدول شما یک ستون برای کد ملی افراد دارد و شما میخواهید مطمئن شوید که کسی بطور اتفاقی مقدار تکراری را نتواند در این ستون وارد نماید.
اینجاست که شاخص یکتا بکار میآید و شما میتوانید با ایجاد شاخص یکتا روی ستون کد ملی مقادیر تکراری را ممنوع نمایید.
شاخصهای صعودی و نزولی
- شاخصهای صعودی (Ascending Index):
- شاخصهای صعودی دادهها را از کمترین به بیشترین مقدار مرتب میکنند. این نوع شاخصها به صورت پیشفرض در Access ایجاد میشوند.
- شاخصهای نزولی (Descending Index):
- شاخصهای نزولی دادهها را از بیشترین به کمترین مقدار مرتب میکنند. این نوع شاخصها برای شرایطی مفید هستند که اغلب به دادهها با ترتیب نزولی دسترسی دارید.
تاثیر ترتیب مرتبسازی بر عملکرد
ترتیب مرتبسازی شاخصها میتواند بر عملکرد کوئریها تأثیر بگذارد. به عنوان مثال، اگر اغلب کوئریهای شما دادهها را بر اساس ترتیب نزولی مرتبسازی میکنند، ایجاد شاخص نزولی میتواند به بهبود عملکرد کمک کند. به طور مشابه، اگر کوئریهای شما بیشتر از ترتیب صعودی استفاده میکنند، شاخص صعودی مناسب خواهد بود.
ترتیب مرتبسازی (Sort Order) در شاخصها یکی از ویژگیهای مهم است که میتواند به بهبود عملکرد جستجوها و کوئریها در پایگاه داده کمک کند. با انتخاب مناسب بین شاخصهای صعودی و نزولی بر اساس نیازهای خاص کوئریهای خود، میتوانید عملکرد کلی پایگاه داده را بهینه کنید.
ایجاد شاخصها در اکسس
ایجاد شاخصها با استفاده از Design View
برای ایجاد شاخص با استفاده از Design View روی جدول مورد نظر کلیک راست نمایید و Design View را انتخاب نمایید. برگه Table Design را انتخاب کنید و بر روی Indexes کلیک نمایید.
در پنجره باز شده میتوانید ایندکسهای جدول را مشاهده نمایید. بعنوان مثال در جدول پایگاه داده نمونه ما فقط یک ایندکس بنام Index_94D3553A_D518_4F91 قابل مشاهده میباشد.
اگر ردیف این ایندکس را انتخاب کنید مشاهده خواهید کرد که این ایندکس بصورت خودکار توسط اکسس بر روی کلید اصلی جدول ایجاد شده است. اگر دقت کرده باشید در سمت چپ ردیف علامت کلید را مشاهده خواهید کرد که نشان میدهد ایندکس روی کلید اصلی جدول ایجاد شده است.
ایجاد شاخص تکستونی با استفاده از Design View
برای ایجاد ایندکس تکستونی ردیف دوم را انتخاب نمایید و یک نام دلخواه برای ایندکس (بعنوان مثال idx_national_code) وارد نمایید. در ستون دوم (Field Name) ستون NationalCode را انتخاب نمایید.
ستون سوم (Sort Order) ترتیب دادهها روی ستون ایندکس را مشخص مینماید. در صورتی که در اکثر پرس و جوهای جدول دادههای این ستون بصورت صعودی باید مرتب شوند گزینه Ascending و در غیر این صورت Descending را انتخاب نمایید.
حالا از قسمت Index Properties مقدار Unique را به Yes تغییر دهید و تغییرات ذخیره نمایید.
ایجاد شاخص چندستونی با استفاده از Design View
برای ایجاد شاخص چندستونی همان مراحل قبلی را تکرار نمایید با این تفاوت که برای ستونهای دوم و بعدتر (حداکثر 10 ستون) نام ایندکس را باید خالی بگذارید.
حذف شاخصها با استفاده از Design View
برای حذف شاخصها ردیفهای مربوط به آن را از سمت راست انتخاب نمایید و کلید Delete را فشار دهید.
ایجاد ایندکس با استفاده از طریق SQL View
ایجاد ایندکس تکستونی
برای ایجاد یک ایندکس تکستونی در Access، از دستور زیر استفاده میکنیم:
CREATE INDEX idx_LastName ON Students (LastName);
ایجاد ایندکس چندستونی
برای ایجاد یک ایندکس چندستونی، از دستور زیر استفاده میکنیم:
CREATE INDEX idx_LastName_FirstName ON Students (LastName, FirstName);
حذف ایندکسها
اگر بخواهید یک ایندکس را حذف کنید، میتوانید از دستور DROP INDEX استفاده کنید. به عنوان مثال، برای حذف ایندکس idx_LastName:
DROP INDEX idx_LastName ON Students;
ایجاد شاخص با ترتیب مرتبسازی مشخص
برای تعیین ترتیب مرتبسازی در شاخصها، میتوانید از کلیدواژههای ASC
(برای صعودی) و DESC
(برای نزولی) استفاده کنید.
CREATE INDEX idx_LastName_Asc ON Students (LastName ASC);
در این مثال، شاخص idx_LastName_Asc
بر روی ستون LastName
با ترتیب صعودی ایجاد میشود.
CREATE INDEX idx_LastName_Desc ON Students (LastName DESC);
در این مثال، شاخص idx_LastName_Desc
بر روی ستون LastName
با ترتیب نزولی ایجاد میشود.
استفاده از ایندکسها
ایندکسها به طور خودکار توسط پایگاه داده در هنگام اجرای کوئریها مورد استفاده قرار میگیرند. به عنوان مثال، اگر یک کوئری جستجو بر روی ستون LastName اجرا شود، Access از ایندکس مربوطه برای بهبود سرعت جستجو استفاده خواهد کرد:
SELECT
*
FROM
Students
WHERE
LastName = 'Ahmadi';
نکات مهم در مورد ایندکسها
افزایش سرعت جستجو:
ایندکسها میتوانند سرعت جستجو و بازیابی دادهها را بهبود بخشند.
کاهش سرعت درج و بهروزرسانی:
ایجاد و نگهداری ایندکسها میتواند باعث کاهش سرعت عملیات درج و بهروزرسانی دادهها شود، زیرا ایندکسها باید بهروز شوند.
حفظ تعادل:
علیرغم اینکه شاخصها روی سرعت جستجو و درج اطلاعات تاثیر مثبت دارند ولی تعداد زیاد ایندکس میتواند باعث کاهش عملکرد پایگاه داده شود. بنابراین باید بین تعداد ایندکسها و عملکرد پایگاه داده تعادل برقرار شود.
استفاده از ایندکسهای مناسب:
برای بهبود عملکرد، باید ایندکسها را بر روی ستونهایی که اغلب در شرطهای جستجو و مرتبسازی استفاده میشوند، ایجاد کنید.
نتیجهگیری
ایندکسها ابزار قدرتمندی برای بهبود عملکرد پایگاه دادهها هستند. با استفاده صحیح از ایندکسها، میتوانید سرعت جستجو و بازیابی دادهها را افزایش دهید. با این حال، باید توجه داشته باشید که ایندکسها میتوانند بر سرعت عملیات درج و بهروزرسانی تاثیر بگذارند و باید بهطور متعادل از آنها استفاده کنید.
اگر سوالی دارید یا به راهنمایی بیشتری نیاز دارید، لطفاً در بخش نظرات مطرح کنید!
بیشتر بخوانید
آموزش SQL در Microsoft Access: ایجاد/افزودن دادهها در جداول
آموزش SQL در Microsoft Access: شروعی آسان
آموزش SQL در Microsoft Access: کاربرد جزء WHERE در SQL
آموزش SQL در Microsoft Access: ساختار جدولها و نحوه ایجاد آنها
آموزش SQL در Microsoft Access: دستور SELECT و اجزاء مختلف آن