کلیدها (key) در پایگاه داده
در پایگاههای داده، کلیدها (Keys) نقش اساسی در تعریف روابط بین جداول و حفظ یکپارچگی دادهها دارند. انواع کلیدها در پایگاه داده عبارتند از:
1. کلید اصلی (Primary Key)
- تعریف: یک ستون یا مجموعهای از ستونها که هر رکورد را در یک جدول به طور منحصر به فرد شناسایی میکند.
- ویژگیها:
- مقدار آن باید منحصر به فرد باشد (Unique).
- نمیتواند مقدار خالی (NULL) داشته باشد.
- هر جدول فقط میتواند یک کلید اصلی داشته باشد.
- مثال: در جدول
کاربران
، ستونکد کاربر
میتواند به عنوان کلید اصلی استفاده شود.
2. کلید خارجی (Foreign Key)
- تعریف: ستونی که به کلید اصلی یک جدول دیگر اشاره میکند و برای ایجاد رابطه بین دو جدول استفاده میشود.
- ویژگیها:
- مقدار آن باید با مقدار کلید اصلی در جدول مرتبط مطابقت داشته باشد.
- میتواند مقدار خالی (NULL) داشته باشد.
- مثال: در جدول
سفارشات
، ستونکد کاربر
میتواند به عنوان کلید خارجی به جدولکاربران
اشاره کند.
3. کلید مرکب (Composite Key)
- تعریف: ترکیبی از دو یا چند ستون که به طور مشترک به عنوان کلید اصلی استفاده میشوند.
- ویژگیها:
- هر ستون به تنهایی ممکن است منحصر به فرد نباشد، اما ترکیب آنها باید منحصر به فرد باشد.
- مثال: در جدول
ثبتنامها
، ترکیب ستونهایکد کاربر
وکد دوره
میتواند به عنوان کلید مرکب استفاده شود.
4. کلید جایگزین (Alternate Key)
- تعریف: ستونی که میتواند به عنوان کلید اصلی استفاده شود اما به دلایلی به عنوان کلید اصلی انتخاب نشده است.
- ویژگیها:
- مقدار آن باید منحصر به فرد باشد.
- میتواند مقدار خالی (NULL) داشته باشد.
- مثال: در جدول
کاربران
، ستونایمیل
میتواند به عنوان کلید جایگزین در نظر گرفته شود.
5. کلید کاندید (Candidate Key)
- تعریف: هر ستون یا مجموعهای از ستونها که میتواند به عنوان کلید اصلی انتخاب شود.
- ویژگیها:
- مقدار آن باید منحصر به فرد باشد.
- نمیتواند مقدار خالی (NULL) داشته باشد.
- مثال: در جدول
کاربران
، ستونهایکد کاربر
وایمیل
میتوانند به عنوان کلید کاندید در نظر گرفته شوند.
6. کلید فوقکلید (Super Key)
- تعریف: مجموعهای از یک یا چند ستون که میتواند هر رکورد را در یک جدول به طور منحصر به فرد شناسایی کند.
- ویژگیها:
- ممکن است شامل ستونهای اضافی باشد که برای شناسایی منحصر به فرد لازم نیستند.
- مثال: در جدول
کاربران
، ترکیب ستونهایکد کاربر
ونام
میتواند به عنوان کلید فوقکلید در نظر گرفته شود.
7. کلید منحصر به فرد (Unique Key)
- تعریف: ستونی که مقدار آن باید منحصر به فرد باشد، اما لزوماً به عنوان کلید اصلی انتخاب نشده است.
- ویژگیها:
- میتواند مقدار خالی (NULL) داشته باشد، اما فقط یک بار.
- مثال: در جدول
کاربران
، ستونشماره تلفن
میتواند به عنوان کلید منحصر به فرد در نظر گرفته شود.
8. کلید مصنوعی (Surrogate Key)
- تعریف: کلیدی که به صورت مصنوعی و معمولاً به صورت خودکار توسط سیستم تولید میشود و هیچ معنای تجاری ندارد.
- ویژگیها:
- معمولاً به صورت عددی و به صورت خودکار افزایشی (Auto-Increment) است.
- مثال: در جدول
کاربران
، ستونشناسه
که به صورت خودکار تولید میشود، میتواند به عنوان کلید مصنوعی استفاده شود.
این کلیدها به حفظ یکپارچگی دادهها و ایجاد روابط بین جداول در پایگاههای داده کمک میکنند.
مفهوم Unique
در SQL، کلمه کلیدی UNIQUE
برای ایجاد محدودیت (constraint) استفاده میشود تا اطمینان حاصل شود که تمام مقادیر در یک ستون یا ترکیبی از ستونها در یک جدول، منحصر به فرد (unique) باشند. این به این معنی است که هیچ دو رکوردی در آن ستون یا ترکیب ستونها نمیتوانند مقدار یکسانی داشته باشند.
مثالها:
- ایجاد یک جدول با محدودیت UNIQUE روی یک ستون:
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Email VARCHAR(255) UNIQUE,
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
در این مثال، ستون Email
باید دارای مقادیر منحصر به فرد باشد. یعنی هیچ دو کارمندی نمیتوانند آدرس ایمیل یکسانی داشته باشند.
- اضافه کردن محدودیت UNIQUE به یک ستون موجود:
ALTER TABLE Employees
ADD CONSTRAINT UC_Email UNIQUE (Email);
این دستور یک محدودیت منحصر به فرد به ستون Email
در جدول Employees
اضافه میکند.
- ایجاد محدودیت UNIQUE روی چندین ستون:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
ProductID INT,
CustomerID INT,
UNIQUE (ProductID, CustomerID)
);
در این مثال، ترکیب ProductID
و CustomerID
باید منحصر به فرد باشد. یعنی یک مشتری نمیتواند دو بار یک محصول یکسان را سفارش دهد (البته این فقط یک مثال ساده است و در دنیای واقعی ممکن است شرایط پیچیدهتری وجود داشته باشد).
نکات مهم:
- تفاوت با PRIMARY KEY: هر دو
UNIQUE
وPRIMARY KEY
مقادیر منحصر به فرد را تضمین میکنند، اماPRIMARY KEY
به طور پیشفرضNOT NULL
است و هر جدول فقط میتواند یکPRIMARY KEY
داشته باشد، در حالی که میتوان چندین محدودیتUNIQUE
در یک جدول تعریف کرد. - NULL در ستونهای UNIQUE: در برخی از سیستمهای مدیریت پایگاه داده (مانند MySQL)، ستونهای با محدودیت
UNIQUE
میتوانند شامل مقادیرNULL
باشند، اما فقط یک رکورد میتواندNULL
داشته باشد. در برخی دیگر از سیستمها (مانند SQL Server)، چندین رکورد میتوانندNULL
داشته باشند. - حذف محدودیت UNIQUE: اگر بخواهید یک محدودیت
UNIQUE
را حذف کنید، میتوانید از دستورALTER TABLE
استفاده کنید:
ALTER TABLE Employees
DROP CONSTRAINT UC_Email;
این دستور محدودیت UC_Email
را از جدول Employees
حذف میکند.
استفاده از UNIQUE
در SQL به شما کمک میکند تا یکپارچگی دادهها را حفظ کنید و از ورود دادههای تکراری در ستونهای خاص جلوگیری کنید.
دیدگاه شما