خانه SQL Server انواع کلید در پایگاه داده + بررسی کاربرد آن ها در SQL Server SQL Server امنیت SQL Server نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۲۴ بهمن ۱۴۰۲ آخرین بروزرسانی: 07 آذر 1403 زمان مطالعه: 16 دقیقه ۳.۷ (۳) کلید در پایگاه داده ، یک بخش بنیادی در سیستمهای مدیریت پایگاه داده (DBMS) بهشمار میرود و انواع مختلفی دارد. شما میتوانید کلیدها را براساس نوع آنها در سناریوهای گوناگون به کار ببرید تا بدین طریق، یکپارچگی و کارایی دیتابیس تضمین شود. از میان انواع کلید در دیتابیس ، کلید اصلی (Primary Key) و خارجی (Foreign Key) اهمیت بیشتری دارند؛ با این وجود، در این مطلب به بررسی انواع آن میپردازیم. پیش از مطالعه این مقاله، پیشنهاد میشود آموزش جامع SQL Server را نیز مطالعه کنید تا با تمامی مفاهیم پیشنیاز برای کار با این سیستم مدیریت پایگاه داده آشنا شوید. مفهوم کلید در پایگاه داده مفهوم کلید در پایگاه داده ، یک یا چند صفت (Attribute) است که به شما کمک میکند تا یک رکورد از جدول را بهصورت یکتا تشخیص دهید. به بیان دیگر، کلید در دیتابیس مشابه یک شناسه گر منحصر به فرد (Unique Identifier) برای یک رکورد خاص عمل میکند. فرض کنید یک کتابخانه، مملو از انواع کتاب در اختیارتان است؛ به طوری که هر یک از کتابها بارکد مخصوص خود را دارا باشند. در چنین شرایطی، وجود چنین بارکدهای متمایزی در یافتن کتاب مدنظر به شما کمک خواهد. استفاده از کلید نیز چنین مزیتی را برای دادههای درون پایگاه داده به ارمغان میآورند. علاوهبر این، بهواسطه تعریف مفهوم کلید در پایگاه داده ، رابطه (Relationship) میان جداول و ستونها در دیتابیس رابطه ای (RDBMS) تعیین میشود. علاوهبر این، افراد علاقهمند به توسعه دانش در زمینه کوئرینویسی و کار با دیتابیس، میتوانند مقاله پرکاربردترین دستورات SQL Server و اسکریپت های SQL را نیز مطالعه کنند. دلیل اهمیت کلید در پایگاه داده برخی از دلایل اهمیت مفهوم کلید در پایگاه داده و استفاده از آن عبارتند از: یکتایی (Uniqueness): با تعریف کلید در پایگاه داده ، تضمین میشود که هیچ دو رکوردی بهطور یکسان در جدول وجود ندارند؛ بدین طریق، از درج دادههای تکراری (Duplicated Data) جلوگیری میشود و خیالتان از بابت دقت (Accuracy) دادهها راحت خواهد بود. استخراج کارآمد دادهها: به دلیل وجود کلید در دیتابیس ، میتوان بهراحتی رکوردهای خاصی را از جداول استخراج کرد و از این مزیت، در دیتابیسهای گسترده بهرهمند شد. یکپارچگی دادهها: با اعمال یکتایی ازطریق کلید در پایگاه داده ، از ویرایش یا حذف سهوی دادهها جلوگیری میشود و تطبیقپذیری دادهها بهدرستی رعایت خواهد شد. روابط: کلیدها مانند پل ارتباطی برای ارتباط میان جداول پایگاه داده عمل میکنند. با ارجاع دادن به کلید اصلی (Primary Key) جدول دیگر، یک کلید خارجی (Foreign Key) برای ارتباط دادههای مرتبط تعیین میشود. این موضوع در تحلیل و درک صحیح ارتباط میان اطلاعات مختلف کارآمد است. بهعنوان مثال، لینک کردن سفارشهای مشتریان به محصولات خریداریشده از این طریق امکانپذیر است. بهینهسازی: کلید در پایگاه داده در بهبود کارایی دیتابیسها نقش کلیدی ایفا میکند. آنها بهعنوان نقاط ایندکس گذاری (Indexing) عمل میکنند و در بهبود سرعت کوئریها به شما کمک خواهند کرد. انواع کلیدها در پایگاه داده مهمترین انواع کلید در پایگاه داده به شرح زیر است: ابر کلید (Super Key) سوپر کلید یا ابر کلید در پایگاه داده ، مجموعهای از یک یا چند ستون جدول است که بهواسطه آن، رکوردهای جدول از یکدیگر متمایز میشوند. برخلاف کلید کاندید، لازم نیست ابرکلید بهصورت مینیمال یا بهینه باشد. بهعنوان مثال، در جدول دانشجویان، ترکیب شماره دانشجویی و ایمیل میتواند یک ابرکلید باشد؛ زیرا هر دانشجو دارای یک ایمیل آدرس و شماره دانشجویی متمایز است. با این وجود، اگر شماره دانشجویی بهتنهایی یک Unique Identifier برای هر دانشجو تلقی شود، میتوان آن را یک کلید کاندید و بهدنبال آن، یک ابرکلید در نظر گرفت. به همین دلیل است که سوپر کلید لزوماً منیمالترین حالت یکتایی محسوب نمیشود. برای درک بهتر مفهوم کلید در پایگاه داده ، آن را با کمک دیتابیس Northwind بررسی خواهیم کرد. تصویر زیر، Design مربوط به جدول Customer از این Database است. در این جدول، CustomerID بهعنوان کلید اصلی، هر یک از مشتریان را از یکدیگر متمایز میکند. ابر کلیدهای این جدول عبارتند از: CustomerID: بدیهی است که کلید اصلی یک جدول، یک Superkey باشد. CustomerID و CompanyName: ترکیب نام کارخانه و شماره مشتری یکتا خواهد بود. این موضوع حتی در شرایطی که نامها مشترک باشند نیز صادق است. CustomerID و ContactName: مشابه مورد فوق، ID و Contact Name مشتریان، یکتایی را به شما تضمین میدهند. به خاطر داشته باشید که ابرکلیدها میتوانند ترکیبی از چندین Attribute مختلف باشند؛ بهطوری که تمامی ستونها را بهصورت یکتا متمایز کنند. بنابراین، شما میتوانید انواع ترکیبها را براساس مشخصهها و محدودیتهای جداول خود اعمال کنید. هرچند در اغلب موارد، از کلید اصلی و کلید خارجی برای استخراج و دستکاری دادهها بهطور کارآمد استفاده میشود. کلید کاندید (Candidate Key) کلید کاندید مجموعهای از یک یا چند ستون از جدول بهشمار میآید که به کمک آن، یکتایی هر رکورد از سایر سطرها ممکن خواهد شد. درحقیقت، کلید کاندید نوع مینیمال و بهینهشده ابر کلید است و حداقل ستونهای لازم برای رسیدن به یکتایی را دربر میگیرد. بهعنوان مثال، در جدول کارمندان، هم شماره کارمندی و هم ترکیب نام و نام خانوادگی کارمندان، هردو میتوانند کلید کاندید در نظر گرفته شوند؛ زیرا هر کارمند دارای ID خاصی است و ترکیب نام و نام خانوادگی هر شخص نیز میتواند منحصربهفرد باشد. معمولاً یکی از این کلیدها بهعنوان کلید اصلی و دیگری بهعنوان کلید Alternative انتخاب میشود. تصویر زیر، نمای جدول Orders از دیتابیس Northwind است. برای درک بهتر، قصد داریم به بررسی جدول Orders (سفارشها) از دیتابیس Northwind بپردازیم. OrderID: این ستون، کلید اصلی جدول Orders است و بهطور خودکار، یک کلید کاندید نیز محسوب میشود. این یعنی، کلید اصلی خود یک کلید کاندید بهحساب میآید. CustomerID و OrderDate: بهواسطه این ترکیب، احتمالاً امکان تعیین هر سفارش مشتری در تاریخ خاصی وجود دارد. به همین دلیل، میتوان آن را کلید کاندید بالقوه درنظر داشت. CustomerID و ProductID: در شرایطی که مشتری یک محصول خاص را فقط یک بار سفارش دهد، میتوان اذعان داشت که این ترکیب، پتانسیل یکتا بودن را دارد. کلید اصلی (Primary Key) کلید اصلی در پایگاه داده ، یک یا چند ستون جدول است که هر رکورد را از سایر آنها متمایز میکند. به واسطه استفاده از کلید اصلی در دیتابیس ، این تضمین به وجود میآید که رکوردهای تکراری در جدول وجود ندارند. بهطور پیشفرض، کلید اصلی نمیتواند مقدار Null بگیرد و لازم است مقادیر مربوط به آن Unique باشند. برای آشنایی با انواع Constraint، پیشنهاد میشود مقاله تعریف محدودیت (Constraint) در SQL Server + بررسی انواع و کاربردهای آنها را نیز مطالعه کنید. کلید اصلی، اغلب بهطور خودکار توسط سیستم مدیریت پایگاه داده (DBMS) ایندکسگذاری میشود. بدین طریق، سرعت عملیات استخراج دادهها بهبود مییابد و اموری همچون جستجو (Search) و مرتبسازی (Sorting) تسهیل پیدا خواهند کرد. هنگامی که مقادیر کلید اصلی تعیین میشوند، دیگر امکان تغییر آنها وجود نخواهد داشت؛ به همین دلیل است که میتوان کلید اصلی را بهعنوان یک Unique Identifier پایدار درنظر داشت. برای مثال، ستون Customer ID در جدول مشتریان، Product ID در جدول محصولات یا شماره سفارش در جدول سفارشات، همگی کلید اصلی برای چنین جدولهایی محسوب شوند. برای درک بهتر اهمیت کلید اصلی در پایگاه داده و کاربردهای آن، به مثال زیر توجه کنید: فرض کنید قصد داریم نام مشتریان و نام شرکت مربوط به آنها را لیست کنیم. SELECT CustomerID, CompanyName FROM Customers ORDER BY CompanyName; این کوئری بهسادگی CustomerID و CompanyName را از جدول مشتریان استخراج میکند. در این مثال ساده، فیلترینگ دادهها وجود ندارد و میتوان آن را یک نمونه پایه برای نحوه استفاده از کلید اصلی در پایگاه داده درنظر گرفت. توجه کنید که کلاز Order By، نتایج حاصل را براساس نام شرکتها مرتبسازی خواهد کرد. کلید خارجی (Foreign Key) کلید خارجی (FK | Foreign Key)، آن ستون از جدول است که به کلید اصلی یا Unique Key یک جدول دیگر ارجاع داده میشود. این نوع از کلید در پایگاه داده ، بهعنوان یک لینک و به منظور برقراری ارتباط میان دادههای مرتبط در جداول گوناگون مورد استفاده قرار میگیرد. وجود کلید خارجی به دلایلی همچون، اعمال یکپارچگی ارجاعی (Referential Integrity)، تعیین روابط صریح میان جداول و امکان استفاده از Join های کارآمد میان آنها، نقش بنیادی در RDBMS ها ایفا میکنند. فرض کنید میخواهیم تمامی سفارشهایی که توسط مشتریان از آلمان ثبت شده را بههمراه اطلاعات آنها نمایش دهیم. مشابه کوئری زیر، ابتدا باید جداول Orders و Customers را در نظر داشته باشیم و فیلترینگ دادهها را براساس کشور مشتری انجام دهیم. این فرآیند، ازطریق رابطه کلید خارجی و اعمال Join امکانپذیر است. SELECT o.OrderID, o.OrderDate, c.CompanyName, c.ContactName, c.Country FROM Orders o INNER JOIN Customers c ON o.CustomerID = c.CustomerID WHERE c.Country = 'Germany'; در این کوئری، از یک Inner Join میان دو جدول Orders و Customers استفاده شده؛ این عمل، برمبنای کلید خارجی CustomerID انجام میشود. درحقیقت، کلید فرعی در جدول Order به کلید اصلی در جدول Customers ارجاع داده شده و یک رابطه والد – فرزندی میان آنها صورت گرفته است. بهطور کلی، کلید فرعی بهمنظور اتصال جداول، یکپارچکی ارجاعی و استخراج کارآمد دادهها کاربرد دارد و شما میتوانید آن را در فیلترینگ و جوین روی جداول استفاده کنید. کلید فرعی (Alternative Key) کلید فرعی (Alternative Key) همان کلید کاندیدی است که بهعنوان Primary Key یا همان کلید اصلی انتخاب نشده باشد. یک جدول میتواند فقط یک کلید اصلی داشته باشد، اما شما میتوانید برای همان جدول چند کلید فرعی بالقوه داشته باشید. مشابه PK، هر یک از کلیدهای فرعی، یکتایی هر رکورد از جدول را تضمین میکنند. کلید فرعی در پایگاه داده به هدف بهینهسازی کارایی، ایندکسگذاری، Identifier های پشتیبان و اعمال یکتایی روی جدول به کار میروند. کلیدهای فرعی بهطور صریح در دیتابیس Northwind تعیین نشدهاند، اما میتوان به بررسی مواردی که احتمالاً کلید کاندید هستند پرداخت. جدول Customers از این دیتابیس را درنظر بگیرید؛ پیشتر اشاره کردیم که در این جدول، CustomerID کلید اصلی است. اگر فرض کنیم نام شرکتها یکتا و منحصربهفرد هستند، میتوان CompanyName را یک کلید فرعی یا همان Alternative تلقی کرد. در این سناریو، با استفاده از CompanyName، امکان تشخیص هر مشتری از سایرین فراهم میشود. کلید مرکب (Compound Key) کلید مرکب در DBMS ، نوعی Identifier یکتا بهحساب میآید که در قالب ترکیبی از ستونها ایجاد شده است. این یعنی، برخلاف یک کلید ساده که در آن یک ستون برای اعمال Uniqueness بهکار میرود، کلید مرکب به ترکیبی از ستونهای یکتا برای هر رکورد از جدول اکتفا خواهد کرد. هرچند این نوع از کلید در پایگاه داده برای برخی از سناریوها مناسب است، اما در اغلب موارد افزایش پیچیدگی را بههمراه دارد. کلید ترکیبی (Composite Key) کلید ترکیبی یک نوع خاصی از کلید کاندید است که یک یا چند Attribute (ستون) را شامل میشود. به بیان ساده، Composite Key نوعی Unique Identifier است که از ترکیب چندین ستون بهوجود آمده است. تفاوت کلید مرکب و ترکیبی این است که کلید ترکیبی بهعنوان کلید اصلی جدول درنظر گرفته میشود؛ در حالی که کلیدهای مرکب میتوانند هر شناسه منحصربهفردی ازجمله کلیدهای اصلی، کلیدهای جایگزین یا کلیدهای خارجی باشند. کلید ترکیبی مزیتهای مانند تضمین یکپارچگی دادهها، انعطافپذیری و امکان استفاده از ایندکسها روی آنها را بههمراه دارند؛ با این وجود، ممکن است به افزایش پیچیدگی، دوره کوئری نویسی پیشرفته و تأثیر منفی روی کارایی منجر شوند. بنابراین پیش از استفاده، بهتر است بررسی کنید که آیا استفاده از یک کلید اصلی یک ستونه یا کلید جایگزین برای سناریو مدنظر کافی است یا خیر. مقایسه کلید اصلی و کلید خارجی کلید اصلی در پایگاه داده ، همانند یک Fingerprint برای هر رکورد از جدول عمل میکند و بهواسطه آن، از تکرار دادهها جلوگیری میشود. استفاده از کلید اصلی مزایایی مانند استخراج سریع دادهها را بههمراه دارد و بهعنوان یک نقطه ارجاعی برای اتصال به سایر جداول تلقی میشود. ازسوی دیگر، کلید خارجی مانند یک پاسپورت عمل میکنند که شما میتوانید برای اتصال دادهها روی جداول مختلف استفاده کنید. این فرآیند، با ارجاع دادن به کلید اصلی یک جدول دیگر امکانپذیر است و مزایایی همچون سازگاری دادهها را برای شما به ارمغان میآورد. از میان انواع کلید در پایگاه داده ، این دو نوع به وفور و بهعنوان بخش اساسی از DBMS ها مورد استفاده قرار میگیرند. عوامل موثر در انتخاب نوع کلید شما باید بتوانید کلید در پایگاه داده را به گونهای انتخاب کنید که دقیقاً مناسب دیتابیس باشد. درحقیقت، این انتخاب اگر به شکل صحیح انجام شود، یکپارچگی دادهها، بهبود کارایی و انعطافپذیری را در اختیارتان قرار میدهد. انتخاب Primary Key در پایگاه داده موارد زیر در انتخاب کلید اصلی نقش بسزایی دارند: یکتایی: انتخاب ستونهایی که یکتایی هر رکورد را تضمین کنند. استخراج کارآمد دادهها: توجه کنید که به چه میزان یک کلید میتواند برای استخراج دادهها و جستجوی سریع به کار برده شود. پایداری: از انتخاب ستونهایی پرهیز شود که به وفور تغییر میکنند؛ زیرا این عمل، نیازمند آپدیت ارجاعات در تمامی دیتابیس است و میتواند روی یکپارچگی دیتا تأثیر نامناسبی ایجاد کند. مقادیر Null حداقلی: بهطور ایدهآل، کلید اصلی نباید مقدار Null داشته باشد تا از ابهام اجتناب شود. انتخاب Foreing Key در پایگاه داده عوامل مؤثر در انتخاب کلید خارجی عبارتند از: یکپارچگی ارجاعی: مطمئن شوید که کلید خارجی انتخابی به یک کلید اصلی قابل قبول در جدول مرتبط ارجاع داده میشود. علاوهبر این، از ارجاعات Circular میان جداول مختلف اجتناب کنید. کاردینالیتی روابط: نوع ارتباط میان جداول را درنظر بگیرید؛ این موضوع در تعیین اینکه آیا یک کلید خارجی واحد یا ترکیبی نیاز است به شما کمک خواهد کرد. منظور از کاردینالیتی، یک به یک بودن (One-To-One)، یک به چند بودن (One-To-Many) یا چند به چند بودن (Many-To-Many) روابط است. کارایی: شما میتوانید هنگام اعمال جوین روی این نوع روابط، از ایندکسگذاری کلیدهای خارجی استفاده کنید تا بدین طریق، کارایی کوئریها بهبود بیابند. انعطافپذیری مدلسازی دادهها: در صورتی که مدل داده شما درطول زمان تکامل یابد، میتوانید از ساختار منعطف کلید خارجی برای تطبیقپذیری نسبت به تغییرات بهرهمند شوید. موارد جانبی موثر در انتخاب کلید انتخاب کلید در پایگاه داده میتواند تحت تأثیر موارد زیر نیز باشد: نرمالسازی پایگاه داده: با استفاده از نرمال سازی (Normalization) پایگاه داده میتوان به کمینهسازی افزونگی (Redundancy) و بهینهسازی ساختار دادهها پرداخت کرد. نیازمندیهای کارایی: در شرایطی که کوئریهای خاصی برای اپلیکیشن شما نیاز باشند، بهتر است بررسی کنید که چه کلیدهایی روی کارایی مؤثر خواهند بود. نوع های داده: انتخاب نوع های داده که برای کلید، مناسب باشد، حائز اهمیت فراوانی است. عملیات دیتابیس مانند مقایسه و فیلترینگ دادهها بر کلیدها متکی هستند. این یعنی، نوع های داده مختلف از لحاظ کارایی میتوانند متفاوت عمل کنند. بهینه سازی عملکرد با استفاده از کلیدها به دلیل اهمیت انواع کلید در پایگاه داده ، بهویژه کلید اصلی و خارجی، میتوان آنها به روشهای زیر و بهمنظور بهینهسازی عملکرد دیتابیس استفاده کرد. پیادهسازی ایندکسگذاری بهصورت کارآمد انتخاب نوع داده مناسب اعمال یکپارچگی ارجاعی دقت در تعیین قوانین Cascading اجتناب از ارجاعات دایرهوار یا همان Circular نرمالسازی دیتابیس و کاهش افزونگیهای آن پیگیری الگوها و معیارهای استفاده از کلید و بهینهسازی هرچه بیشتر تطبیق رویکرد براساس الگوهای کوئرینویسی و نیازمندیهای عملکردی سخن پایانی انتخاب کلید در پایگاه داده و نحوه استفاده از آن، به نیازمندیها و مدل داده بستگی دارد. در این مقاله به بررسی کارکرد انواع کلید در پایگاه داده پرداخته شد؛ اکنون میتوانید با درک دقیق کاربردهای هر یک، مواردی مانند ذخیرهسازی، مدیریت و استخراج دادهها از دیتابیس را بهصورت کارآمد و دقیق انجام دهید. ما در نیک آموز منتظر نظرات ارزشمند شما درباره این مقاله در بخش نظرات هستیم. چه رتبه ای میدهید؟ میانگین ۳.۷ / ۵. از مجموع ۳ اولین نفر باش دانلود مقاله انواع کلید در پایگاه داده + بررسی کاربرد آن ها در SQL Server فرمت PDF 12 صفحه حجم 0/7 مگابایت دانلود مقاله معرفی نویسنده مقالات 401 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول مسعود طاهری دوره آموزش امنیت در SQL Server 2022 7.000.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ