کلید‌ها (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) باشند. این به این معنی است که هیچ دو رکوردی در آن ستون یا ترکیب ستون‌ها نمی‌توانند مقدار یکسانی داشته باشند.

مثال‌ها:

  1. ایجاد یک جدول با محدودیت UNIQUE روی یک ستون:
   CREATE TABLE Employees (
       EmployeeID INT PRIMARY KEY,
       Email VARCHAR(255) UNIQUE,
       FirstName VARCHAR(50),
       LastName VARCHAR(50)
   );

در این مثال، ستون Email باید دارای مقادیر منحصر به فرد باشد. یعنی هیچ دو کارمندی نمی‌توانند آدرس ایمیل یکسانی داشته باشند.

  1. اضافه کردن محدودیت UNIQUE به یک ستون موجود:
   ALTER TABLE Employees
   ADD CONSTRAINT UC_Email UNIQUE (Email);

این دستور یک محدودیت منحصر به فرد به ستون Email در جدول Employees اضافه می‌کند.

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

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.