انواع کلیدها و مفاهیم مرتبط در پایگاه دادههای رابطهای
مقدمه
پایگاه دادههای رابطهای یکی از مهمترین و پراستفادهترین مدلهای پایگاه داده است که دادهها را در قالب جداول (relation) سازماندهی میکند. برای مدیریت دادهها و تضمین یکپارچگی آنها، از مفاهیمی به نام “کلیدها” استفاده میشود. کلیدها ابزارهایی هستند که به کمک آنها میتوان رکوردها را به صورت یکتا شناسایی و ارتباطات بین جداول مختلف را تعریف کرد. در این مقاله، به معرفی انواع کلیدها و نقش هر یک در پایگاه دادههای رابطهای میپردازیم.
1. کلید اصلی (Primary Key)
کلید اصلی یکی از مهمترین انواع کلیدها در پایگاه دادههای رابطهای است. وظیفه این کلید، شناسایی یکتای هر رکورد (یا تاپل) در یک جدول است. هر جدول تنها میتواند یک کلید اصلی داشته باشد و این کلید باید شرایط زیر را داشته باشد:
- یکتا بودن (Uniqueness): هر مقدار در کلید اصلی باید یکتا باشد و هیچ رکورد دیگری نباید همان مقدار را داشته باشد.
- عدم پذیرش مقدار تهی (NULL): کلید اصلی نمیتواند شامل مقادیر تهی باشد، زیرا باید برای هر رکورد، یک مقدار معتبر داشته باشد.
مثال:
در یک جدول دانشجویان
، ستون “شماره دانشجویی” به عنوان کلید اصلی انتخاب میشود، زیرا هر دانشجو باید یک شماره دانشجویی یکتا داشته باشد.
شماره دانشجویی | نام | رشته تحصیلی |
---|---|---|
101 | علی محمدی | مهندسی برق |
102 | سارا احمدی | ریاضیات |
در اینجا، ستون “شماره دانشجویی” کلید اصلی است.
2. کلید خارجی (Foreign Key)
کلید خارجی برای ایجاد ارتباط بین جداول مختلف استفاده میشود. این کلید اشاره به کلید اصلی یا یک کلید کاندید در جدول دیگر دارد و از آن برای تضمین یکپارچگی مرجع استفاده میشود. کلید خارجی تضمین میکند که مقداری که در یک جدول وارد میشود، حتماً در جدول مرجع وجود داشته باشد.
مثال:
در جدول درسها
، ستون “شماره دانشجویی” یک کلید خارجی است که به جدول دانشجویان
اشاره میکند. این ارتباط تضمین میکند که فقط دانشجویانی که در جدول دانشجویان
وجود دارند، میتوانند در جدول درسها
رکورد داشته باشند.
شماره درس | نام درس | شماره دانشجویی (کلید خارجی) |
---|---|---|
201 | ریاضیات 1 | 101 |
202 | فیزیک 1 | 102 |
3. کلید کاندید (Candidate Key)
کلید کاندید مجموعهای از یک یا چند ستون است که میتواند هر رکورد را در یک جدول یکتا شناسایی کند. یک جدول ممکن است چندین کلید کاندید داشته باشد، اما تنها یکی از آنها به عنوان کلید اصلی انتخاب میشود. هر کلید کاندید باید ویژگیهای زیر را داشته باشد:
- یکتا بودن: هر رکورد باید یک مقدار یکتا در ستون یا ستونهای تشکیلدهنده کلید کاندید داشته باشد.
- حداقل بودن: کلید کاندید باید کوچکترین مجموعه ستونهایی باشد که یکتا بودن را تضمین میکند.
مثال:
در یک جدول کارمندان
، ستونهای “شماره کارمندی” و “کد ملی” میتوانند هر دو کلید کاندید باشند. اما یکی از آنها به عنوان کلید اصلی انتخاب میشود.
شماره کارمندی | نام | کد ملی |
---|---|---|
301 | رضا حسینی | 123456789 |
302 | ناهید مرادی | 987654321 |
4. کلید ترکیبی (Composite Key)
کلید ترکیبی نوعی از کلید است که از بیش از یک ستون تشکیل شده است. این کلید زمانی استفاده میشود که هیچیک از ستونها بهتنهایی قادر به شناسایی یکتای رکوردها نباشند، اما ترکیب آنها میتواند این کار را انجام دهد.
مثال:
در یک جدول ثبتنام دورهها
، ستونهای “شماره دانشجویی” و “شماره درس” بهتنهایی یکتا نیستند، اما ترکیب این دو ستون میتواند یک کلید ترکیبی تشکیل دهد که هر رکورد را منحصربهفرد کند.
شماره دانشجویی | شماره درس | نمره |
---|---|---|
101 | 201 | 18 |
101 | 202 | 15 |
102 | 201 | 19 |
5. کلید جایگزین (Alternate Key)
کلید جایگزین هر کلید کاندیدی است که به عنوان کلید اصلی انتخاب نشده باشد. از آنجایی که ممکن است یک جدول بیش از یک کلید کاندید داشته باشد، کلیدهایی که بهعنوان کلید اصلی انتخاب نمیشوند به عنوان کلیدهای جایگزین شناخته میشوند.
مثال:
در مثال جدول کارمندان
، اگر “شماره کارمندی” به عنوان کلید اصلی انتخاب شود، “کد ملی” به عنوان کلید جایگزین در نظر گرفته میشود.
6. کلید فرعی (Super Key)
کلید فرعی هر مجموعهای از ستونهاست که میتواند یک رکورد را بهصورت یکتا شناسایی کند. هر کلید کاندید و کلید اصلی یک کلید فرعی نیز به حساب میآیند. به عبارتی، کلید فرعی میتواند شامل ستونهای اضافی نیز باشد که برای یکتابودن ضروری نیستند، اما همچنان رکوردها را بهطور یکتا شناسایی میکنند.
مثال:
در جدول کارمندان
، ترکیب “شماره کارمندی” و “نام” میتواند یک کلید فرعی باشد، اگرچه “شماره کارمندی” بهتنهایی نیز کافی است.
7. کلید مصنوعی (Surrogate Key)
کلید مصنوعی یک شناسه یکتا است که بهصورت خودکار توسط سیستم پایگاه داده تولید میشود و هیچ معنای مستقیمی در دنیای واقعی ندارد. این کلید معمولاً بهعنوان یک عدد ترتیبی یا UUID (شناسه منحصربهفرد جهانی) استفاده میشود.
مثال:
ستون “شناسه” در یک جدول پایگاه داده ممکن است یک عدد ترتیبی باشد که بهصورت خودکار توسط پایگاه داده تولید شده و به عنوان کلید اصلی استفاده شود.
شناسه | نام | سن |
---|---|---|
1 | محمد رضا | 25 |
2 | علی حسینی | 30 |
نتیجهگیری
کلیدها نقش حیاتی در پایگاه دادههای رابطهای ایفا میکنند و از آنها برای مدیریت و تضمین یکپارچگی دادهها استفاده میشود. کلید اصلی برای شناسایی یکتای رکوردها استفاده میشود، کلید خارجی ارتباط بین جداول را فراهم میکند، و کلیدهای کاندید، فرعی، و جایگزین به کاربر امکان انتخابهای بیشتری برای تعریف شناسایی یکتا را میدهند. استفاده صحیح از این کلیدها میتواند به بهبود ساختار پایگاه داده و افزایش کارایی آن منجر شود.