کلیدها (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 به شما کمک میکند تا یکپارچگی دادهها را حفظ کنید و از ورود دادههای تکراری در ستونهای خاص جلوگیری کنید.
دیدگاه شما