در طراحی پایگاهدادههای رابطهای، یکی از مهمترین مفاهیم، کلیدها (Keys) هستند. کلیدها در SQL تضمین میکنند که دادهها منحصربهفرد، منظم و قابل اطمینان باقی بمانند. در این مقاله، سه نوع کلید در SQL پرکاربرد یعنی Primary Key، Foreign Key و Unique Key را بهطور کامل با مثال توضیح میدهیم تا درک عمیقی از نحوه استفاده آنها در طراحی دیتابیس بهدست آورید.
اهمیت کلیدها در SQL چیست؟
کلیدها ستون یا مجموعهای از ستونها هستند که برای شناسایی منحصربهفرد رکوردها در یک جدول استفاده میشوند. استفاده صحیح از کلیدها باعث میشود:
-
از ورود دادههای تکراری جلوگیری شود
-
روابط منطقی بین جداول برقرار شود
-
عملیات جستوجو و بروزرسانی سریعتر انجام گیرد
-
یکپارچگی دادهها حفظ شود
1. کلید اصلی (Primary Key)
تعریف:
Primary Key ستونی است که هر رکورد را در یک جدول بهصورت یکتا شناسایی میکند. این کلید نمیتواند NULL یا تکراری باشد.
ویژگیها:
-
فقط یک Primary Key در هر جدول مجاز است
-
مقدار آن باید یکتا و غیرقابل خالی (NOT NULL) باشد
-
میتواند از یک ستون یا چند ستون (Composite Key) ساخته شود
مثال ساده:
در این مثال، ستون CustomerID
کلید اصلی جدول است و از ورود دو کاربر با همان شناسه یا بدون شناسه جلوگیری میشود.
مثال با کلید ترکیبی (Composite Key):

در اینجا، ترکیب OrderID
و ProductID
کلید اصلی جدول است، چون هر سفارش میتواند شامل چند محصول باشد.
2. کلید خارجی (Foreign Key)
تعریف:
Foreign Key ستونی است که به کلید اصلی یک جدول دیگر اشاره میکند. این کلید باعث میشود که رابطهای منطقی بین جداول برقرار شود.
ویژگیها:
-
به یک Primary Key یا Unique Key در جدول دیگر اشاره دارد
-
به حفظ یکپارچگی ارجاعی (Referential Integrity) کمک میکند
-
میتوان چند Foreign Key در یک جدول داشت
مثال:

در این مثال، CustomerID
در جدول Orders به CustomerID
در جدول Customers ارجاع میدهد. یعنی هر سفارش باید متعلق به یک مشتری معتبر باشد.
مزایا:
-
مانع از ورود دادههای نادرست (مثلاً ثبت سفارش برای مشتری ناموجود) میشود
-
هنگام حذف دادهها میتوان با گزینههایی مانند
ON DELETE CASCADE
تعیین کرد که حذف در جدول اصلی چه اثری در جدول وابسته داشته باشد.
3. کلید یکتا (Unique Key)
تعریف:
Unique Key تضمین میکند که مقدار ستون مربوطه در تمام رکوردها یکتا باشد، ولی برخلاف Primary Key، میتواند شامل مقدار NULL نیز باشد (بسته به DBMS).
ویژگیها:
-
میتوان چند Unique Key در یک جدول داشت
-
مقدار NULL معمولاً مجاز است (برخی سیستمها فقط یک بار)
مثال:
در اینجا، هر کارمند باید ایمیل و کد ملی منحصربهفرد داشته باشد. اگر کسی با ایمیل تکراری ثبت شود، خطا برمیگردد.
تفاوتهای کلیدی بین Primary Key، Foreign Key و Unique Key
ویژگیها | Primary Key | Foreign Key | Unique Key |
---|---|---|---|
تضمین یکتا بودن | دارد | ندارد (ارجاعی است) | دارد |
مقدار NULL مجاز است؟ | خیر | بله | بسته به سیستم، بله |
چند بار در جدول؟ | فقط یکی | چندتا | چندتا |
هدف اصلی | شناسایی رکورد | ارتباط بین جداول | جلوگیری از تکرار |
مثال کامل از ارتباط چند جدول با کلیدها
فرض کنید یک سیستم مدیریت مدرسه طراحی میکنیم:
جدول Students

جدول Courses

جدول Enrollments
(ثبتنام دانشآموزان در دروس)

در این ساختار:
-
StudentID
وCourseID
در جدولEnrollments
، یک کلید ترکیبی هستند (Primary Key) -
همانها به عنوان Foreign Key به جداول دیگر اشاره میکنند
کاربردهای عملی کلیدها
-
اطمینان از صحت دادهها
فرض کنید یک فروشگاه آنلاین دارید، استفاده از Foreign Key برای اطمینان از اینکه هر سفارش واقعاً مربوط به یک مشتری ثبتشده باشد، بسیار حیاتی است. -
افزایش عملکرد جستوجو
کلیدهای اولیه و یکتا، اغلب به صورت ایندکسشده (Indexed) ایجاد میشوند، که باعث افزایش سرعت جستوجوی دادهها میشوند. -
یکپارچگی در حذف دادهها
مثلاً با دستورON DELETE CASCADE
، اگر یک مشتری حذف شود، تمام سفارشهای او هم حذف میشود.
نتیجهگیری
درک درست از تفاوتها و کاربردهای Primary Key، Foreign Key و Unique Key برای طراحی حرفهای پایگاهداده ضروری است. این کلیدها نه تنها از دادههای تکراری جلوگیری میکنند، بلکه ستون فقرات روابط منطقی بین جداول را نیز شکل میدهند.
با رعایت اصول کلیدگذاری در SQL، نهتنها دادههای سالمتری خواهید داشت، بلکه سیستم شما در آینده نیز توسعهپذیرتر، سریعتر و قابلاعتمادتر خواهد بود.
بدون دیدگاه