سلام
دوست عزیز شما دو مفهوم را کاملا با هم قاطی کردید
.من سوال شما را کاملا درک کردم و اما توضیح:
باز هم یک مثال می زنم:در اینجا پایگاه داده من،پایگاه داده دانشگاه و جدولی که روش کار می کنم جدول(یا رابطهی )مشخصات دانشجویان دانشکده مهندسی است.
فرض کنید جدول ما بدین شکل است:
شماره رکورد نام نام خانوادگی رشته تحصیلی سال ورود
1 علی صادقی برق 84
2 مریم کمالی کامپیوتر 85
3 رضا شیاسی کامپیوتر 84
4 عاطفه نامور عمران 84
5 آزاده سهیلی برق 83
6 سحر رسولی متالوژی 85
خوب!اولین کاری که شما باید برای حل این سوال بکنید اینکه کاملا با مفهوم عملگر project آشنا باشید.
سوال اول:آیا می شود در یک جدول رکورد تکراری داشته باشیم؟مثلا به صورت زیر؟
شماره رکورد نام نام خانوادگی رشته تحصیلی سال ورود
1 علی صادقی برق 84
2 مریم کمالی کامپیوتر 85
3 رضا شیاسی کامپیوتر 84
4 عاطفه نامور عمران 84
5 آزاده سهیلی برق 83
6 سحر رسولی متالوژی 85
7 مریم کمالی کامپیوتر 85
جواب: خیر،پایگاه داده اجازه این کار را نمی دهد.(در اینجا رکورد تکراری به رکوردی گفته می شود که دقیقا هر 4 فیلد آن(نام،نام خانوادگی،رشته تحصیلی،سال ورود)با هم برابر باشند.مثل رکورد شمارهی 2 و 7)اگر اطلاعاتی وارد پایگاه داده شود که دقیقا مشابه آن موجود باشد پایگاه داده از وارد کردن آن در رابطه خودداری می کند.
(البته شاید پایگاه های داده ای هم وجود داشته باشند که اطلاعات را ذخیره کنند ولی مسئله این است که اگر از هر دو مدل پایگاه سوال شود که شما چند رکورد دارید؟جواب می دهند:6 رکورد نه 7 رکورد.(تاپل های تکراری شمارش نمی شوند!)
سوال 2:پس در این صورت چرا در برخی منابع نوشته که هنگام به کار بردن عملگر پرتو (project) تاپل های تکراری حذف می شوند؟مگر باز هم تاپل تکراری داریم؟؟
جواب:عملگر پرتو چکار می کند؟اگر در یک جستجو از پایگاه داده نیازی به اطلاعات کامل رکوردهای انتخاب شده نداشته باشیم و فقط ستون های خاصی از یک رکور مد نظر ما باشد از عملگر پرتو استفاده می کنیم.البته سوال شما اشکال دارد.در عملگر پرتو تاپل های تکراری حذف نمی شوند (تاپل تکراری اصلا نداریم)
ستون های تکراری حذف می شوند...
مثال:رشته های تحصیلی ارائه شده در دانشکدهی مهندسی را بدهید.
در اینجا اصلا برای کاربر مهم نیست که کی چه رشته ای قبول شده!فقط می خواهد بدانه که در این دانشگاه چه رشته های فنی تدریس می شود.در این حالت پایگاه داده ستون با نام رشته های تحصیلی را از جدول جدا کرده و به کاربر می دهد: بدین صورت
برق
کامپیوتر
کامپیوتر
عمران
برق
متالوژی
همان طور که می بینی رشته های برق و کامپیوتر هر کدام تکرار شده اند و اضافی هستند و امکان دارد کاربر با نگاهی به خروجی فکر کند که در این دانشگاه 6 رشتهی فنی تدریس می شود نه 4 رشته!پس عملگر پرتو لطف می کند و ستون های اضافی را حذف می کند تا باعث اشتباه نشود بدین طریق:
برق
کامپیوتر
عمران
متالوژی
پس سوال شما اینگونه باید مطرح شود:
1-ممکن است مشخصات یک نفر دو بار در جدول ظاهر شود؟خیر
2-ممکن است دو نفر رشتهی تحصیلی مشابه داشته باشند و ستون رشتهی تحصیلی دارای عناصر مشابه باشد؟بله