خب خب خب، انواع کلید توی دیتابیس های رابطه ای🔑
کلید ها توی دیتابیس ها نقش حیاتی ای توی تضمین یکپارچگی و سازماندهی داده ها دارن. شاید تا الان موقع طراحی دیتابیس به این فکر کرده باشین که مثلا Primary Key چیه؟ چطوری تعیین میشه؟ یا اینکه اصلا Foreign Key چیه؟ توی این پست مهم ترین کلیدهای دیتابیس رو باهم مرور میکنیم.
1. کلید اولیه یا اصلی (Primary Key):
هر جدول یک کلید اولیه داره که رکوردها رو بهصورت یکتا شناسایی میکنه. مقادیر این کلید باید منحصربهفرد و غیر NULL باشن.
مثال: توی جدول کاربران، user_id به عنوان کلید اولیه عمل میکنه. نمیتونه NULL باشه و حتما باید منحصر به فرد باشه.
2. کلید خارجی (Foreign Key):
کلید خارجی ارتباط بین دو جدول را فراهم میکنه و به کلید اولیه یک جدول دیگر اشاره داره. این کلید برای حفظ یکپارچگی مرجع استفاده میشه. درواقع ستونی که به کلید اصلی یه جدول دیگه اشاره کنه رو کلید خارجی میگن.
مثال: توی جدول سفارشات، user_id به کلید اولیه جدول کاربران اشاره میکنه. کلید اصلی از جدول کاربران توی جدول سفارشات استفاده شده و توی جدول سفارشات بهش میگیم کلید خارجی.
3. کلید ترکیبی (Composite Key):
کلیدی که از ترکیب چند ستون ساخته میشه و برای شناسایی یکتا به کار میره. معمولاً زمانی که یک ستون به تنهایی کافی نیست از کلید ترکیبی استفاده میشه.
مثال: در جدول ثبتنامها، ترکیب student_id و course_id یک کلید ترکیبی ایجاد میکنه.
4. کلید کاندید (Candidate Key):
هر ستون یا ترکیبی از ستونها که بتونه به عنوان کلید اصلی استفاده بشه، کلید کاندید نامیده میشه. هر جدول میتواند چندین کلید کاندید داشته باشه، اما فقط یکی از اونها به عنوان کلید اصلی انتخاب میشن. خیلی ساده تر بخوام بگم ستون یا ستون هایی که میتونستند به عنوان کلید اصلی انتخاب بشن.
مثال: توی جدول محصولات، ستونهای product_code و product_name میتونن به عنوان کلید کاندید عمل کنن.
5. سوپر کلید (Super Key):
سوپر کلید، هر مجموعهای از ستونهاست که میتونه هر رکورد توی جدول رو بهطور یکتا شناسایی کنه. همه کلیدهای کاندید و کلید اصلی، سوپر کلید هستند، ولی هر سوپر کلیدی کاندید نیست.
مثال: ستون user_id یا ترکیب user_id و email در جدول کاربران میتواند سوپر کلید باشد.
برای این میگیم هر سوپر کلیدی، کلید کاندید نیست که یه سوپر کلید ممکنه از ترکیب یه کلید اصلی و یه کلید کاندید ایجاد شده باشه(مثلا user_id+user_email) ولی چون فقط با یکی از اینها(user_id) میتونیم یه رکورد رو به صورت یکتا شناسایی کنیم و کلید دومی(user_email) یه جورایی اضافه هست، دیگه این ترکیب کاندید نیست بلکه این فیلد ها هرکدوم یه کلید کاندید به حساب میان.
7. کلید جایگزین (Alternate Key):
زمانی که یک کلید کاندید به عنوان کلید اولیه انتخاب نمیشه، بهش کلید جایگزین میگن. این کلید هنوز قابلیت شناسایی یکتا را داره،ولی به عنوان کلید اصلی انتخاب نشده.
مثال: اگر توی جدول کاربران هم user_id و هم email کلید کاندید باشن و user_id به عنوان کلید اصلی انتخاب بشه، email کلید جایگزین خواهد بود.
8. کلید منحصر به فرد (Unique Key):
مثل کلید کاندیده با این تفاوت که کلید منحصر به فرد میتونه مقدار NULL داشته باشه (در بیشتر پایگاهدادهها حتی چند مقدار NULL مجازه)، ولی مقادیر غیر NULL نباید تکراری باشن. کلید منحصر به فرد در تضمین یکتایی دادهها موثر هست.
مثال: توی جدول کاربران، email میتونه یک کلید منحصر به فرد باشه، به این صورت که مقادیر ایمیل نباید تکراری باشن، اما میتونن NULL باشند.
جمع بندی✍️
این کلیدها به شما کمک میکنن تا وابستگیهای تابعی رو بهتر بشناسید و ساختار دیتابیستون رو اصولی و منظم طراحی کنید. همچنین باعث میشن دیتابیستون هم مقیاسپذیرتر باشه و هم برای تغییرات آینده آمادهتر.
#️⃣ #programming #db
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
>>Click here to continue<<