کلید اصلی و خارجی در SQL Server
کلیدهای اصلی و خارجی در SQL Server ابزارهای قدرتمندی برای مدیریت یکپارچگی دادهها و تعریف روابط بین جداول هستند
کلید اصلی و خارجی در SQL Server
در سیستم مدیریت پایگاه داده SQL Server، کلیدهای اصلی (Primary Key) و خارجی (Foreign Key) نقش بسیار مهمی در طراحی جداول و تضمین یکپارچگی دادهها ایفا میکنند.
این کلیدها برای شناسایی یکتای رکوردها و مدیریت روابط بین جداول استفاده میشوند. در ادامه، به تفصیل به بررسی این دو نوع کلید و محدودیتهای مرتبط با آنها میپردازیم.
محدودیت کلید اصلی در SQL Server
کلید اصلی یک ستون یا ترکیبی از ستونها در یک جدول است که بهطور یکتا هر رکورد را شناسایی میکند.
این کلید باعث میشود که مقادیر ستونهای انتخابی تکراری یا NULL نباشند.
هر جدول در SQL Server میتواند فقط یک کلید اصلی داشته باشد.
ویژگیهای کلید اصلی
-
یکتایی
مقادیر ستون یا ستونهای تشکیلدهنده کلید اصلی باید یکتا باشند. -
عدم پذیرش NULL
ستونهای کلید اصلی نمیتوانند مقدار NULL داشته باشند. -
ایجاد ایندکس
SQL Server بهطور پیشفرض یک ایندکس خوشهای (Clustered Index) برای کلید اصلی ایجاد میکند.
اگر ایندکس خوشهای قبلاً وجود داشته باشد، یک ایندکس غیرخوشهای ایجاد خواهد شد. -
تأثیر بر عملکرد
کلید اصلی باعث بهبود عملکرد جستجو و دسترسی به دادهها میشود.
ایجاد کلید اصلی در زمان ساخت جدول
میتوانید کلید اصلی را هنگام ایجاد جدول تعریف کنید:
مثال:
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name NVARCHAR(100),
BirthDate DATE
);
در اینجا ستون StudentID به عنوان کلید اصلی تعریف شده است و مقدار آن باید یکتا باشد.
ایجاد کلید اصلی ترکیبی
در مواردی که نیاز است چند ستون با هم به صورت یکتا یک رکورد را شناسایی کنند، از کلید اصلی ترکیبی استفاده میشود.
مثال:
CREATE TABLE Enrollment (
StudentID INT,
CourseID INT,
EnrollmentDate DATE,
PRIMARY KEY (StudentID, CourseID)
);
این کلید اصلی ترکیبی از دو ستون StudentID و CourseID تشکیل شده است.
اضافه کردن کلید اصلی به جدول موجود
اگر جدولی بدون کلید اصلی ایجاد شده باشد، میتوانید بعداً کلید اصلی را اضافه کنید:
مثال:
ALTER TABLE Employees
ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID);
حذف کلید اصلی
برای حذف یک کلید اصلی از جدول:
مثال:
ALTER TABLE Students
DROP CONSTRAINT PK_StudentID;
مزایای استفاده از کلید اصلی
-
تضمین یکپارچگی دادهها
کلید اصلی از ورود دادههای تکراری جلوگیری میکند. -
تسهیل روابط بین جداول
با استفاده از کلید اصلی میتوان روابط مؤثرتری با دیگر جداول برقرار کرد. -
بهبود عملکرد جستجو
ایندکس ایجاد شده برای کلید اصلی باعث بهبود سرعت جستجو و بازیابی دادهها میشود.
محدودیت کلید خارجی در SQL Server
کلید خارجی به ستونی در یک جدول اشاره دارد که مقادیر آن با مقادیر کلید اصلی در جدول دیگری مرتبط است.
این کلید برای ایجاد روابط بین جداول و حفظ یکپارچگی ارجاعی (Referential Integrity) استفاده میشود.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
ویژگیهای کلید خارجی
-
ارزشهای معتبر
مقادیر ستون کلید خارجی باید با مقادیر موجود در کلید اصلی جدول مرجع مطابقت داشته باشند یا NULL باشند. -
ایجاد روابط
کلید خارجی روابط بین جداول را مدیریت میکند و از ورود دادههای نامعتبر جلوگیری میکند. -
رفتار Cascading
میتوانید رفتارهایی مانند حذف (ON DELETE) یا بهروزرسانی (ON UPDATE) را برای کلید خارجی تنظیم کنید.
ایجاد کلید خارجی در زمان ساخت جدول
کلید خارجی را میتوان هنگام ایجاد جدول تعریف کرد:
مثال:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
OrderDate DATE,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
در اینجا ستون CustomerID به کلید اصلی جدول Customers مرتبط است.
اضافه کردن کلید خارجی به جدول موجود
برای اضافه کردن کلید خارجی به یک جدول موجود:
مثال:
ALTER TABLE Orders
ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
حذف کلید خارجی
برای حذف یک کلید خارجی از جدول:
مثال:
ALTER TABLE Orders
DROP CONSTRAINT FK_CustomerID;
رفتارهای Cascading در کلید خارجی
کلید خارجی میتواند بهصورت خودکار تغییرات یا حذفهایی را که در جدول مرجع رخ میدهد، در جدول وابسته اعمال کند.
دو رفتار متداول عبارتند از:
-
ON DELETE CASCADE
حذف یک رکورد از جدول مرجع باعث حذف تمام رکوردهای وابسته در جدول فرزند میشود. -
ON UPDATE CASCADE
بهروزرسانی مقدار کلید اصلی در جدول مرجع، مقدار مرتبط در جدول فرزند را نیز بهروزرسانی میکند.
مثال:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
);
مزایای استفاده از کلید خارجی
-
تضمین یکپارچگی ارجاعی
کلید خارجی از ورود دادههای ناسازگار در جداول مرتبط جلوگیری میکند. -
مدیریت روابط جداول
روابط بین جداول بهصورت ساختاریافته و قابل مدیریت تعریف میشوند. -
انعطافپذیری در مدیریت دادهها
رفتارهای Cascading امکان مدیریت خودکار تغییرات و حذفها را فراهم میکند.
تفاوتهای کلید اصلی و کلید خارجی
-
هدف
-
کلید اصلی (Primary Key)
شناسایی یکتای رکوردها در یک جدول
-
کلید خارجی (Primary Key)
ایجاد ارتباط بین دو جدول
-
-
تعداد در جدول
-
کلید اصلی (Primary Key)
هر جدول فقط یک کلید اصلی دارد
-
کلید خارجی (Primary Key)
هر جدول میتواند چندین کلید خارجی داشته باشد
-
-
NULL پذیری
-
کلید اصلی (Primary Key)
مقادیر NULL قبول نمیشود
-
کلید خارجی (Primary Key)
ممکن است مقادیر NULL پذیرفته شوند
-
-
ایندکس
-
کلید اصلی (Primary Key)
بهطور پیشفرض ایندکس ایجاد میشود
-
کلید خارجی (Primary Key)
ایندکس بهطور پیشفرض ایجاد نمیشود
-
-
ارتباط
-
کلید اصلی (Primary Key)
در همان جدول تعریف میشود
-
کلید خارجی (Primary Key)
به جدول دیگری اشاره میکند
-
نکات مهم در طراحی کلید اصلی و خارجی
-
نامگذاری معنادار
هنگام تعریف کلیدها و محدودیتها از نامهای معنادار استفاده کنید تا مدیریت آنها سادهتر شود. -
حداقل تعداد ستون
برای کلید اصلی، تعداد ستونها را به حداقل برسانید تا کارایی سیستم افزایش یابد. -
استفاده از Cascading
رفتارهای Cascading را با دقت و بر اساس نیازهای پروژه تنظیم کنید. -
یکپارچگی ارجاعی
از کلید خارجی برای تضمین روابط صحیح بین جداول استفاده کنید.





کاربران ما
شما هم نظرتون با ما دریاره “کلید اصلی و خارجی در SQL Server” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید