انواع کلید در پایگاه داده — به زبان ساده و با مثال
در این مطلب انواع کلید در پایگاه داده یا همان بانک اطلاعاتی مورد بررسی قرار گرفته تعاریف و مفاهیم آنها شرح داده شده و در نهایت سعی شده است برای هر مورد مثالهایی نیز ارائه شود تا مخاطب بتواند درک بهتری به دست آورد. در ادامه میتوانید نوشتار مربوط به بحث انواع کلید در پایگاه داده را مطالعه کنید.
کلید در پایگاه داده چیست؟
کلید در پایگاه داده (Key in Database) و یا به طور دقیقتر، کلید در سیستم مدیریت پایگاه داده (Database Management System | DBMS) یک خصیصه و یا یک مجموعه از خصیصهها است که امکان شناسایی یک سطر در پایگاه داده رابطهای (Relational Database) را فراهم میکند. آنچه بیان شد در تعریف کلید در پایگاه داده است. همچنین، کلید در پایگاه داده به کاربر این امکان را میدهد که رابطه بین دو جدول در پایگاه داده رابطهای را کشف کنند. کلید در پایگاه داده کمک میکنند تا یک سطر در پایگاه داده با ترکیب یک ستون و یا مجموعهای از ستونها در آن پایگاه داده شناخته شود.
در عین حال، کلید به پیدا کردن یک رکورد یا سطر از پایگاه داده کمک میکند. در جدول کارکنان یک سازمان در پایگاه داده که در تصویر زیر قابل مشاهده است، ستون اول شماره شناسایی کارکنان در یک شرکت آمده است که در واقع همان شماره پرسنلی کارکنان در آن سازمان محسوب میشود. این شمارههای پرسنلی در واقع کلیدهایی در پایگاه داده هستند که به شناسایی سطرهای مربوط به هر همکار در جدول پایگاه داده کمک میکنند.
در این جدول، شماره پرسنلی نوعی از کلید پایگاه داده با عنوان کلید اصلی (Primary Key) است، زیرا به طور یکتایی در پایگاه داده وجود و در واقع، شماره پرسنلی هیچ دو فردی مشابه با یکدیگر نیست و هر فرد شناسه متمایزی دارد. ساز و کار این کلید در جدول اطلاعات کارکنان سازمان درست مانند آنچه است که شماره پرسنلی در دنیای واقعی انجام میدهد. در دنیای واقعی شماره پرسنلی به عنوان شناسهای یکتا محسوب میشود که کمک میکند افراد با اسامی گوناگون به راحتی قابل شناسایی و البته، قابل تفکیک و متمایز باشند.
این شمارههای پرسنلی در دنیای واقعی به طور خاص در مواردی بسیار مفید و کارآمد محسوب میشوند که دو کارمند یک سازمان دارای مشخصات مشابهی شامل اسم و فامیل یکسان، نام پدر مشابه، محل تولد یکسان و یا دیگر انواع اطلاعات پرسنلی مشابه باشند. در این حالت، بهرهمندی از یک شماره پرسنلی به قابل تفکیک کردن افراد کمک میکند. البته آنچه بیان شد یک حالت خاص از کاربرد شماره پرسنلی است و به طور کلی، شماره پرسنلی برای تفکیک کارکنان یک سازمان از یکدیگر به سریعترین و سادهترین شکل ممکن کمک میکند. شایان توجه است که از این شماره پرسنلی در امور اداری گوناگون مرتبط با همکاران از سندها و اوراق مالی گرفته تا سیستم حضور و غیاب و دیگر موارد نیز استفاده میشود.
در دنیای پایگاه داده نیز به همین صورت است و از شماره پرسنلی برای تفکیک کارکنان گوناگون از یکدیگر استفاده میکنند که اسامی همه آنها در یک جدول پایگاه داده آمده است. در جدول موجود در تصویر ۱، علاوه بر شماره پرسنلی که حکم کلید جدول پایگاه داده رابطهای را دارد، ستونهای دیگری نیز شامل نام و نام خانوادگی کارکنان وجود دارد. جداول دیگری با کلیدهای گوناگون نیز میتوان در پایگاه داده ساخت.
به عنوان مثالهایی از دیگر جداول پایگاه داده با کلید اصلیای مانند شماره پرسنلی میتوان به جدول پایگاه دادهای اشاره کرد که اطلاعات دانشآموزهای یک کلاس درس در آن وجود دارد. در چنین جدولی، شماره دانشآموزش هر دانشآموز میتواند کلید پایگاه داده باشد. با استفاده از این شماره دانشآموزی می توان به راحتی سطرهای پایگاه داده را از یکدیگر تفکیک و متمایز کرد. در ادامه مطلب انواع کلید در پایگاه داده به این پرسش پاسخ داده میشود که چرا به کلید در پایگاه داده نیاز است.
چرا به کلید در پایگاه داده نیاز است؟
در ادامه، دلایلی برای استفاده از انواع کلید پایگاه داده در سیستم مدیریت پایگاه داده بیان شده است.
- کلیدها به شناسایی هر سطری از دادهها در جدول کمک میکنند. در کاربردهای جهان واقعی، یک جدول ممکن است حاوی هزاران رکورد در جدول باشد. علاوه بر آن، رکوردها ممکن است تکراری باشند. کلیدها اطمینان حاصل میکنند که میتوان یک رکورد پایگاه داده را با وجود همه چالشهایی که بیان شد شناسایی کرد.
- انواع کلید در پایگاه داده این امکان را فراهم میآورند که روابط بین جداول را ایجاد و همچنین، روابط بین جداول را شناسایی کرد.
- انواع کلید در پایگاه داده به ایجاد هویت و یکپارچگی در روابط میان جدولها در پایگاه داده کمک میکند.
در ادامه مطلب انواع کلید در پایگاه داده به بررسی انواع کلید در پایگاه داده پرداخته شده و هر یک از این انواع کلید در پایگاه داده به طور کامل همراه با ارائه مثال مورد بررسی قرار گرفتهاند.
تعریف انواع کلید در پایگاه داده چیست؟
انواع گوناگونی از کلیدها در سیستم مدیریت پایگاه داده وجود دارد و هر کلید، کارکرد متفاوت خود را دارد.
در ادامه، تعریف انواع کلید در پایگاه داده به همراه کارکرد اختصاصی آنها بیان شده است.
- کلید سوپر: کلید سوپر یا Super Key یک گروه از کلیدهای یکتا یا چندگانه است که سطرها را در جدول شناسایی میکنند.
- کلید اصلی: کلید اصلی یا Primary Key یک ستون یا گروهی از ستونها در جدول است که که به طور یکتا هر سطری در آن جدول را شناسایی میکند.
- کلید کاندید: کلید کاندید یا Candidate Key یک مجموعه از خصیصهها است که به طور یکتا، تاپلها را در آن جدول شناسایی میکند.
- کلید فرعی: کلید فرعی یا Alternate Key (کلید جایگزین) یک ستون یا گروهی از ستونها در جدول است که به طور یکتایی هر سطر در آن جدول را تعریف میکند.
- کلید خصوصی: کلید خصوصی یا Foreign Key کلیدی است که رابطه بین دو جدول را میسازد. هدف از کلید خارجی در پایگاه داده آن است که یکپارچگی دادهها حفظ شود. کلید خصوصی به ناوبری (Navigation) بین دو نمونه موجودیت (Entity) متفاوت کمک میکند.
- کلید مرکب: کلید مرکب یا Compound Key دارای دو یا تعداد بیشتری خصیصه است که به کاربر این امکان را میدهد که به صورت یکتایی یک رکورد خاص را شناسایی کند. این امکان وجود دارد که هر ستون در پایگاه داده به ذات خود یکتا نباشد.
- کلید ترکیبی: کلید ترکیبی یا Composite Key یک کلید خصوصی است که هدف از آن شناسایی هر رکورد به صورت یکتا است که به آن کلید جانشین یا Surrogate Key نیز میگویند.
- کلید جانشین: کلید جانشین یا Surrogate Key یک کلید مصنوعی است که هدف از آن شناسایی یکتای هر رکورد است. این نوع از کلیدها یکتا هستند زیرا هنگامی ساخته میشوند که فرد هیچ کلید اصلی طبیعی ندارد.
در ادامه مطلب انواع کلید در پایگاه داده ، هر یک از انواع کلید در پایگاه داده که پیشتر معرفی شد، به صورت کامل مورد بررسی قرار میگیرد.
کلید سوپر یا سوپر کی در پایگاه داده چیست؟
Superkey یک گروه از کلیدهای یکتا یا چندگانه هستند که سطرها را در جدول شناسایی میکنند. یک Superkey ممکن است خصیصههای افزودهای داشته باشد که برای شناسایی یکتا نیاز نیست.
در ادامه مثالی از این مورد آمده است.
در جدول پایگاه داده بالا سه ستون شماره تامین اجتماعی (Social Security Number | SSN)، شماره پرسنلی (EmpNum) و نام کارمند (Empname) آمده است. در مثال بالا، EmpSSN و EmpNum کلید سوپر هستند. در ادامه مطلب انواع کلید در پایگاه داده به بررسی جامع کلید اصلی پرداخته شده است.
کلید اصلی چیست؟
کلید اصلی یک ستون یا گروهی از ستونها در جدول است که به طور یکتایی هر سطر در جدول را شناسایی میکنند. کلید اصلی نمیتواند تکراری باشد، یعنی یک مقدار نمیتواند بیش از یکبار در جدول باشد. در عین حال، جدول نیز نمیتواند بیش از یک کلید اصلی داشته باشد.
قوانین تعریف کلید اصلی چه هستند؟
در این بخش از مطلب انواع کلید در پایگاه داده قوانین تعریف کلید اصلی بیان شده است.
- دو سطر نمیتوانند مقدار کلید اصلی یکسانی داشته باشند.
- هر سطر باید حتما یک مقدار کلید اصلی داشته باشد.
- فیلد کلید اصلی نمیتواند هیچمقدار (Null) باشد.
- اگر یک کلید خارجی به یک کلید اصلی ارجاع داشته باشد، مقدار در ستون کلید اصلی برای آن کلید اصلی هرگز نمیتواند ویرایش یا به روز رسانی شود.
مثالی از این مورد در ادامه آمده است. در مثال زیر، <code>StudID</code> کلید اصلی است.
در ادامه مطلب انواع کلید در پایگاه داده به بررسی مفهوم کلید فرعی پرداخته شده است.
کلید فرعی چیست؟
کلید فرعی یک ستون یا گروهی از ستونهای در جدول است که به صورت یکتا هر سطر در آن جدول را شناسایی میکنند. یک جدول میتواند گزینههای گوناگونی برای کلید اصلی داشته باشد اما تنها یک مورد میتواند به صورت کلید اصلی تنظیم شود. همه کلیدهایی که کلید اصلی نیستند را کلید فرعی میگویند.
مثالی از این مورد در ادامه آمده است.
در جدول بالا، Roll No ،StudID و Email واجد شرایط مبدل شدن به کلید اصلی هستند. اما با توجه به اینکه StudID کلید اصلی است، Roll No و Email کلید فرعی هستند. در ادامه مطلب انواع کلید در پایگاه داده به مفهوم کلید کاندید پرداخته شده است.
کلید کاندید چیست؟
کلید کاندید یک مجموعه از خصیصهها است که به طور یکتایی تاپلها را در جدول شناسایی میکنند. کلید کاندید یک کلید سوپر بدون هیچ خصیصه تکرار شوندهای است. کلید اصلی باید از کلیدهای کاندید انتخاب شود. هر جدولی باید حداقل یک کلید کاندید یکتا داشته باشد. یک جدول میتواند چندین کلید کاندید داشته باشد اما تنها میتواند یک کلید اصلی داشته باشد.
مشخصههای کلید کاندید
در این بخش از مطلب انواع کلید در پایگاه داده ، مشخصههای کلید کاندید بیان شده است.
- کلید کاندید باید حاوی یک مقدار یکتا باشد.
- کلید کاندید ممکن است حاوی چندین خصیصه باشد.
- کلید کاندید نباید حاوی هیچ مقدار (Null) باشد.
- کلید کاندید باید حاوی حداقل فیلدهایی برای حصول اطمینان از یکتایی باشد.
- کلید کاندید باید به صورت یکتایی هر رکورد در جدول را شناسایی کند.
مثالی از آنچه در بالا بیان شد در ادامه آمده است. در جدول زیر، Roll No ،Stud ID و Email کلیدهای کاندیدی هستند که به کاربر کمک میکنند تا به صورت یکتایی رکورد دانشآموز (Student) را در جدول شناسایی کند.
کلید خارجی چیست؟
کلید خارجی یک کلید است که یک رابطه بین دو جدول را میسازد. هدف از کلید خارجی حفظ یکپارچگی دادهها است و امکان ناوبری بین دو نمونه از موجودیتهای متفاوت را فراهم میکند. کلید خارجی مانند یک مرجع متقابل (Cross-Reference) بین دو جدول عمل میکند؛ زیرا که به کلید اصلی جدول دیگر ارجاع دارد.
مثالی از کلید خارجی در ادامه آمده است.
در این کلید در مثال مربوطه به سیستم مدیریت پایگاه داده که در بالا ارائه شده است، دو جدول Teach و Department در School وجود دارد. اگرچه، هیچ راهکاری وجود ندارد که بتوان مشاهده کرد که چه نوع جستجویی در کدام دپارتمان کار میکند. در ادامه، مثالی از این مورد ارائه شده است.
در جدول موجود در تصویر ۸، با افزودن کلید خارجی در Deptcode به Teacher Name میتوان رابطهای بین دو جدول ساخت. این مفهوم با عنوان «یکپارچگی مرجع» (Referential Integrity) شناخته میشود.
کلید مرکب چیست؟
کلید مرکب (Compound Key) دارای دو یا تعداد بیشتری خصیصه است و این امکان را فراهم میکند تا به صورت یکتایی یک رکورد خاص را تشخیص دهد. این امکان وجود دارد که هر ستون در پایگاه داده به خودی خود به صورت یکتا در پایگاه داده نباشد، هرچند که در ترکیب با دیگر ستونها یا ستونهایی که ترکیبی از کلیدهای مرکب (Composite Keys) هستند یکتا میشوند.
هدف از کلید مرکب (Compound Key) در پایگاه داده آن است که به صورت یکتایی هر رکوردی در جدول را شناسایی کند. مثالی از این مورد در ادامه آمده است.
در این مثال، OrderNo و ProductID نمیتوانند کلیدهای اولیه باشند زیرا به صورت یکتا یک رکورد را شناسایی نمیکنند. اگرچه، یک کلید مرکب از Order ID و Product ID قابل استفاده است، زیرا که به صورت یکتا هر رکورد را شناسایی میکند. در ادامه مطلب انواع کلید در پایگاه داده به بررسی مفهوم کلید ترکیبی و نقش آن در پایگاه داده پرداخته شده است.
کلید ترکیبی چیست؟
کلید ترکیبی (Composite Key) ترکیبی از دو یا تعداد بیشتری ستون است که به طور یکتایی سطرها در جدول را شناسایی میکنند. ترکیب ستونها یکتایی را تضمین میکند، اگرچه، یکتا بودن به صورت مستقل تضمین نمیشود. بنابراین، دو یا تعداد بیشتری از ستونها ترکیب میشوند تا رکوردها را به صورت یکتایی بتوان شناسایی کرد.
تفاوت بین کلید مرکب (Compound Key) و کلید ترکیبی (Composite Key) آن است که هر بخشی از کلید مرکب میتواند یک کلید خارجی باشد اما کلید Composite ممکن است که بخشی از کلید خارجی باشد. در ادامه مطلب انواع کلید در پایگاه داده به مفهوم کلید جانشین پرداخته شده است.
کلید جانشین چیست؟
کلید جانشین یک کلید مصنوعی است که هدف از آن شناسایی یکتای هر رکورد است. این نوع از کلید جزئی در سیستم مدیریت پایگاه داده، یکتا است. زیرا هنگامی ساخته میشود که کاربر هیچ کلید اصلی طبیعی ندارد. کلیدهای جانشین هیچ معنایی به دادههای جدول نمیدهند. کلید جانشین مقداری است که درست پیش از رکوردی که در جدول قرار گرفته درج شده است. مثالی از این مورد در ادامه آمده است.
در جدول مثال بالا، زمانبندی شیفت کارکنان یک شرکت نمایش داده شده است. در این مثال، کلید جانشین برای شناسایی یکتای هر کارمند مورد نیاز است. کلیدهای جانشین در SQL هنگامی پذیرفته شدهاند که:
- هیچ خصوصیتی پارامترهای کلید اصلی را ندارد.
- در جدول، هنگامی که کلید اصلی بسیار بزرگ یا پیچیده است.
در ادامه مطلب انواع کلید در پایگاه داده تفاوت بین کلید اصلی و کلید خارجی مورد بررسی قرار گرفته و تفاوتهای آنها برشمرده شده است.
تفاوت بین کلید اصلی و کلید خارجی چیست؟
در ادامه مطلب انواع کلید در پایگاه داده مقایسهای بین کلید اصلی و کلید خارجی انجام و تفاوت بین کلید اصلی و کلید خارجی تشریح شده است.
کلید اصلی
- به کاربر کمک میکند تا به صورت یکتایی یک رکورد در جدول را شناسایی کند.
- کلید اصلی هیچ وقت مقادیر Null را نمیپذیرد.
- کلید اصلی یک اندیس خوشهبندی شده است و دادهای ورود سیستم مدیریت پایگاه داده در یک توالی از اندیس خوشهبندی شده سازماندهی شده است.
- میتوان یک کلید اصلی تنها در جدول داشت.
کلید خارجی
- فیلدی در جدول است که کلید اصلی جدول دیگری است.
- کلید خصوصی ممکن است چندین مقدار Null را بپذیرد.
- کلید خارجی نمیتواند به صورت اتوماتیک یک اندیس چه خوشهبندی شده و چه غیر خوشهبندی بسازد. اگرچه میتوان به صورت دستی اندیسی روی کلید خارجی ساخت.
- امکان وجود چندین کلید خارجی در جدول وجود دارد.
جمعبندی پیرامون انواع کلید در پایگاه داده
در این بخش انواع کلید در پایگاه داده به جمعبندی آنچه پرداخته شده است که پیرامون انواع کلید در پایگاه داده بیان شد.
- یک کلید در SQL خصیصه یا مجموعهای از خصیصهها است که به کاربر کمک میکند تا یک سطر (تاپل) در جدول رابطه را شناسایی کند.
- کلیدهای سیستم مدیریت پایگاه داده به کاربر این امکان را میدهند که رابطهای را بین جداول بنا و همچنین، روابط بین جداول را شناسایی کند.
- هفت نوع کلید در سیستم مدیریت پایگاه داده وجود دارد که عبارتند از: کلید سوپر، کلید اصلی، کلید کاندید، کلید فرعی، کلید خارجی، کلید مرکب، کلید ترکیبی و کلید جانشین.
- یک ستون یا گروهی از ستونها در جدول که به کاربر کمک می کنند تا به صورت یکتایی هر سطر در آن جدول را شناسایی کند، کلید اصلی گفته میشود.
- کلیه کلیدهایی که کلید اصلی نیستند، کلید فرعی نامیده میشوند.
- یک کلید سوپر بدون خصیصه تکرار شونده را کلید کاندید میگویند.
- یک کلید مرکب کلیدی است که فیلدهای بسیاری دارد و به کاربر این امکان را میدهد که به صورت یکتایی یک رکورد خاص را شناسایی کند.
- یک کلید که دارای چندین خصیصه برای شناسایی سطرها در جدول است را کلید ترکیبی میگویند.
- یک کلید مصنوعی که هدف آن شناسایی هر سطر به صورت یکتا است را کلید جانشین میگویند.
- کلید اصلی هرگز مقادیر هیچمقدار (Null) را نمیپذیرد؛ در حالی که کلید خصوصی ممکن است چندین مقدار Null را بپذیرد.