کلید و محدودیت ها (CONSTRAINTS) در SQL Server

زهیر صفری 1403/09/24 0 307
لینک کوتاه https://zoheirsoftware.com/z/dba1cb08b |
 انواع محدودیت  CONSTRAINTS,محدودیت های موجود Entity Constraints  در SQL Server,کلید و محدودیت ها (CONSTRAINTS) در SQL Server

کلیدها و محدودیت‌ها (CONSTRAINTS) در SQL Server

در SQL Server، کلیدها و محدودیت‌ها ابزارهایی هستند که برای مدیریت یکپارچگی داده‌ها، تعریف روابط بین جداول، و اعمال قوانین خاص بر روی داده‌ها استفاده می‌شوند.

این ویژگی‌ها نقش بسیار مهمی در طراحی بانک‌های اطلاعاتی ایفا می‌کنند و باعث می‌شوند که داده‌ها قابل اعتماد، منسجم و بدون خطا باشند.

کلیدها و محدودیت‌ها (CONSTRAINTS) در SQL Server مجموعه‌ای از قوانین و شرایط هستند که برای تضمین یکپارچگی و اعتبار داده‌ها در پایگاه داده استفاده می‌شوند.

این محدودیت‌ها می‌توانند شامل کلید اصلی (Primary Key) باشند که تضمین می‌کند هر رکورد در جدول یکتاست، یا کلید خارجی (Foreign Key) که ارتباط بین جداول مختلف را برقرار می‌کند.

همچنین، محدودیت‌های یکتا (Unique) تضمین می‌کنند که مقادیر در یک ستون خاص تکراری نباشند، محدودیت "NOT NULL" تعیین می‌کند که مقادیر تهی (NULL) در یک ستون ذخیره نشود، و محدودیت‌های "Check" شرایط خاصی را برای مقادیر یک ستون تعیین می‌کنند.

استفاده از این محدودیت‌ها باعث افزایش دقت، یکپارچگی و صحت داده‌ها در پایگاه داده می‌شود.

 

 

کلیدها و محدودیت‌ها (CONSTRAINTS) در SQL Server

انواع کلیدها (Keys)  در SQL Server

کلیدها به شناسایی یکتای رکوردها در یک جدول کمک می‌کنند و برای تعریف روابط بین جداول استفاده می‌شوند.

انواع کلیدهای پرکاربرد در SQL Server عبارتند از:

  • کلید اصلی (Primary Key)

کلید اصلی به شناسایی یکتای هر رکورد در جدول کمک می‌کند.
این کلید به صورت خودکار یک محدودیت یکتا (Unique Constraint) و غیر تهی (Not Null) اعمال می‌کند.
هر جدول می‌تواند تنها یک کلید اصلی داشته باشد.

ویژگی‌ها:

مقادیر تکراری یا NULL نمی‌پذیرد.

به صورت پیش‌فرض یک ایندکس خوشه‌ای (Clustered Index) ایجاد می‌کند.

مثال:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,
    Name NVARCHAR(50),
    Age INT
);
  • کلید خارجی (Foreign Key)

کلید خارجی برای ایجاد ارتباط بین دو جدول استفاده می‌شود. این کلید مقدار خود را از کلید اصلی جدول دیگری به ارث می‌برد و یکپارچگی ارجاعی (Referential Integrity) را تضمین می‌کند.

ویژگی‌ها:

مقدار کلید خارجی باید با مقادیر موجود در کلید اصلی جدول مرجع مطابقت داشته باشد یا NULL باشد.

رفتارهایی مانند حذف (ON DELETE) یا به‌روزرسانی (ON UPDATE) را می‌توان مشخص کرد.

مثال:

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    StudentID INT,
    OrderDate DATE,
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
  •  کلید یکتا (Unique Key)

کلید یکتا تضمین می‌کند که مقادیر یک ستون یا مجموعه‌ای از ستون‌ها در یک جدول منحصربه‌فرد باقی بمانند. برخلاف کلید اصلی، یک جدول می‌تواند بیش از یک کلید یکتا داشته باشد.

ویژگی‌ها:

مقادیر تکراری نمی‌پذیرد، اما مقادیر NULL ممکن است پذیرفته شوند.

معمولاً یک ایندکس غیرخوشه‌ای (Non-clustered Index) ایجاد می‌کند.

مثال:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Email NVARCHAR(100) UNIQUE,
    PhoneNumber NVARCHAR(15) UNIQUE
);
  •  کلید ترکیبی (Composite Key)

کلید ترکیبی شامل بیش از یک ستون است که با هم به صورت یکتا یک رکورد را شناسایی می‌کنند.
معمولاً برای جداول رابطه‌ای (Junction Tables) استفاده می‌شود.

مثال:

CREATE TABLE Enrollment (
    StudentID INT,
    CourseID INT,
    EnrollmentDate DATE,
    PRIMARY KEY (StudentID, CourseID)
);

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

انواع محدودیت‌ها (CONSTRAINTS) در SQL Server

محدودیت‌ها قوانین خاصی هستند که بر روی ستون‌ها اعمال می‌شوند تا یکپارچگی داده‌ها تضمین شود.

در SQL Server، انواع محدودیت‌ها عبارتند از:

  • محدودیت NOT NULL

این محدودیت تضمین می‌کند که مقدار یک ستون نمی‌تواند NULL باشد.

مثال:

CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName NVARCHAR(100) NOT NULL,
    Price DECIMAL(10, 2) NOT NULL
);
  •  محدودیت DEFAULT

این محدودیت یک مقدار پیش‌فرض را برای یک ستون مشخص می‌کند. در صورت عدم ارائه مقدار توسط کاربر، مقدار پیش‌فرض درج می‌شود.

مثال:

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name NVARCHAR(50) NOT NULL,
    RegistrationDate DATE DEFAULT GETDATE()
);
  •  محدودیت CHECK

محدودیت CHECK برای اعمال یک قانون منطقی بر روی مقدار ستون استفاده می‌شود.

مثال:

CREATE TABLE Accounts (
    AccountID INT PRIMARY KEY,
    Balance DECIMAL(10, 2) CHECK (Balance >= 0),
    AccountType NVARCHAR(20) CHECK (AccountType IN ('Savings', 'Checking'))
);
  • محدودیت UNIQUE

همان‌طور که در بخش کلیدها توضیح داده شد، این محدودیت تضمین می‌کند که مقادیر ستون یکتا باشند.

  •  محدودیت FOREIGN KEY

همانند کلید خارجی، این محدودیت یکپارچگی ارجاعی را در جداول مختلف تضمین می‌کند.

  • محدودیت PRIMARY KEY

این محدودیت ترکیبی از ویژگی‌های NOT NULL و UNIQUE است و برای شناسایی یکتای رکوردها در جدول استفاده می‌شود.

  • محدودیت‌های ایجاد شده توسط کاربر (User-Defined Constraints)

در SQL Server، می‌توان با استفاده از تریگرها یا توابع تعریف شده توسط کاربر (User-Defined Functions)، محدودیت‌های سفارشی ایجاد کرد.

 

انواع محدودیت‌ها (CONSTRAINTS) در SQL Server

محدودیت‌های موجود (Entity Constraints) در SQL Server

محدودیت‌های موجود به تضمین یکپارچگی داده‌ها در سطح موجودیت‌ها (Entity) کمک می‌کنند. این محدودیت‌ها شامل موارد زیر هستند:

  • یکپارچگی موجودیت (Entity Integrity)

این نوع یکپارچگی با استفاده از کلید اصلی (PRIMARY KEY) تضمین می‌شود. اطمینان حاصل می‌کند که هر رکورد در یک جدول دارای یک شناسایی یکتا است.

  • یکپارچگی دامنه‌ای (Domain Integrity)

این نوع یکپارچگی با استفاده از محدودیت‌های NOT NULL، CHECK، DEFAULT و UNIQUE اعمال می‌شود و تضمین می‌کند که مقادیر ستون‌ها در دامنه معتبر باقی بمانند.

  • یکپارچگی ارجاعی (Referential Integrity)

با استفاده از کلید خارجی (FOREIGN KEY) برقرار می‌شود و تضمین می‌کند که روابط بین جداول به درستی حفظ شوند.

محدودیت‌های موجود (Entity Constraints) در SQL Server

 

بررسی رفتار محدودیت‌ها در SQL Server

  • بررسی محدودیت‌ها در زمان ایجاد جدول

هنگام ایجاد جدول، می‌توانید محدودیت‌ها را مستقیماً تعریف کنید:

CREATE TABLE Sales (
    SaleID INT PRIMARY KEY,
    ProductID INT NOT NULL,
    Quantity INT CHECK (Quantity > 0),
    SaleDate DATE DEFAULT GETDATE()
);
  • اضافه کردن محدودیت به جدول موجود

می‌توانید پس از ایجاد جدول، محدودیت‌های جدیدی را به آن اضافه کنید:

ALTER TABLE Products
ADD CONSTRAINT CHK_Price CHECK (Price > 0);
  • حذف محدودیت‌ها

برای حذف یک محدودیت، ابتدا باید نام آن را بدانید. برای حذف محدودیت:

ALTER TABLE Products
DROP CONSTRAINT CHK_Price;
  • نامگذاری محدودیت‌ها

بهتر است هنگام تعریف محدودیت‌ها نامی معنادار به آن اختصاص دهید تا مدیریت آن‌ها در آینده ساده‌تر شود:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Email NVARCHAR(100) CONSTRAINT UQ_Email UNIQUE,
    Age INT CONSTRAINT CHK_Age CHECK (Age >= 18)
);

نکات و بهترین روش‌ها

  1. استفاده از محدودیت‌های نامگذاری شده

    نامگذاری محدودیت‌ها به درک بهتر و مدیریت ساده‌تر کمک می‌کند.
  2. استفاده ترکیبی از کلیدها و محدودیت‌ها

    طراحی خوب بانک اطلاعاتی نیازمند ترکیب مناسبی از کلیدها و محدودیت‌هاست.
  3. توجه به عملکرد

    محدودیت‌ها می‌توانند عملکرد عملیات درج و به‌روزرسانی را تحت تاثیر قرار دهند. استفاده بیش از حد یا نادرست از آن‌ها می‌تواند منجر به کاهش کارایی شود.
  4. مدیریت کلید خارجی

    رفتار ON DELETE و ON UPDATE را برای کلیدهای خارجی به دقت بررسی کنید تا از حذف یا تغییرات ناخواسته جلوگیری شود.

کلیدها و محدودیت‌ها اجزای حیاتی طراحی بانک اطلاعاتی در SQL Server هستند.

آن‌ها به بهبود کیفیت داده‌ها، مدیریت روابط بین جداول و تضمین یکپارچگی کمک می‌کنند.

با درک صحیح از انواع کلیدها و محدودیت‌ها و نحوه استفاده از آن‌ها، می‌توانید بانک‌های اطلاعاتی پایدارتر و کارآمدتری طراحی کنید.

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.7k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.