ورود

View Full Version : کلید اصلی یعنی چی؟



#Elahe#
پنج شنبه 14 فروردین 1393, 01:24 صبح
تعریفش تو اینترنت زیاد هست
ولی زیاد ازشون سردرنمیارم

سوداگر
پنج شنبه 14 فروردین 1393, 03:23 صبح
شما یه لحظه خودتون رو به جای موتور SQL بذار متوجه میشید:خجالت:

جدولی مثل جدول زیر براتون تعریف شده:


نام
نام خانوادگی
شماره ملی


علی
پرتویی
200×××××23


حسین
پرتویی
00×××××214


حسین
دلشاد
21×××××632


علی
رمضانی
201×××××96


علی
بابایی
19×××××744



برای پیدا کردن یک رکورد جدول، چه جوری راحت ترید عمل کنید؟ از چه نقطه ای میخواهید شروع کنید؟ با چه الگوریتمی میخواهید پیدا کنید؟
.
.
.
مجبورید ستونی را انتخاب و تک تک ردیف ها را بر اساس مقدار آن بازیابی کنید. اما کدام ستون رو انتخاب کنیم؟
در این مثال اگه ستون نام رو انتخاب کنید فقط 2 رکورد قابل بازیابی هست چون موتور، فرق علی اول با علی چهارم و پنجم رو نمیفهمه. (مثل اندیس آرایه میمونه در یک اندیس دوتا مقدار نمیگنجد، فقط یک مقدار با اندیس i قابل بازیابیه)
پس به خاطر اینکه تضمین کنیم تمام رکورد های جدول قابل بازیابی هستند و به علت تکراری بودن، رکوردی غیر قابل بازیابی نمیشه... باید ستونی را مشخص کنیم که هیچکدام از مقادیرش مثل هم نیست و جستجو رو بر اساس اون انجام بدیم. چون موتور SQL نمیدونه کدوم یکی چنین خاصیتی رو میتونه داشته باشه، ما اون فیلد را باید به موتور بانک اطلاعاتی معرفی کنیم(به عنوان کلید اصلی).
مثلا شماره ملی میتونه کلید اصلی این جدول باشه (کاری به طولش نداریم) چون هر فردی شماره ملی منحصر به فردی داره و در مثال فوق هر 5 رکورد قابل بازیابیه.

دیگه ساده تر از این نمیشد!

#Elahe#
پنج شنبه 14 فروردین 1393, 13:55 عصر
دیگه ساده تر از این نمیشد!

واقعا :لبخندساده:

مرسی


مجبورید ستونی را انتخاب و تک تک ردیف ها را بر اساس مقدار آن بازیابی کنید.
و یا ترکیب چن تا ستون باهم

سوداگر
پنج شنبه 14 فروردین 1393, 14:16 عصر
و یا ترکیب چن تا ستون باهم
به اون میگن کلید مرکب(Composite key). انواع کلید (http://www.dotnet-tricks.com/Tutorial/sqlserver/GcF9120312-Different-Types-of-SQL-Keys.html)

#Elahe#
پنج شنبه 14 فروردین 1393, 18:04 عصر
به اون میگن کلید مرکب(Composite key). انواع کلید (http://www.dotnet-tricks.com/Tutorial/sqlserver/GcF9120312-Different-Types-of-SQL-Keys.html)

تو vs چن تا ستون رو که انتخاب میکنی و روش راست کلیک میکنی primary key میشه انتخابشون کرد
یعنی اون گزینه primary key به composite تغییر نمیکنه
این اشتباه مایکروسافته یعنی؟

سوداگر
پنج شنبه 14 فروردین 1393, 19:44 عصر
تو vs چن تا ستون رو که انتخاب میکنی و روش راست کلیک میکنی primary key میشه انتخابشون کرد
یعنی اون گزینه primary key به composite تغییر نمیکنه
این اشتباه مایکروسافته یعنی؟
نه اشتباه نیست. اگه لینک بالا رو دقت کرده باشین گفته بود:

Composite Key is a combination of more than one fields/columns of a table. It can be a Candidate key, Primary key.
یعنی یک کلید مرکب میتونه به عنوان primary key هم استفاده بشه.