تاپل تکراری - نسخهی قابل چاپ |
تاپل تکراری - لهمشد - ۲۶ آذر ۱۳۸۹ ۰۲:۴۹ ب.ظ
با سلام به نظر شما ایا در یک رابطه می توانیم تاپل تکراری داشته باشیم اخه من تو کتاب خوندم که در یک عملگر رابطه ای ببنید عملگر رابطه ای مثل project تا پل های تکراری حذف می شوند ولی می خوام بگم ایا در مدل رابطه ای نیز چنین است ایا همچین اتفاق میفته مثال می زنم یک رابطه داریم با صفات نام و فامیل حالا دو تاپل بنام رضا احمدی می توان داشت یا خیر اگه جواب سوال اینه که رابطه داره از تئوری مجمو عهها پیروی می کنه و در مجمو عه عضو تکراری وجود نداره خواب من یه مثال دیگه میارم و اون اینه کهتر تیب در مجموعهها مهم ولی در رابطه در بعضی عملگرها مهم نیست مثل ضرب دکارتی یا پیوند طبیعی ؟؟ |
RE: تاپل تکراری - Maryam-X - 26 آذر ۱۳۸۹ ۱۰:۳۴ ب.ظ
سلام دوست عزیز شما دو مفهوم را کاملا با هم قاطی کردید.من سوال شما را کاملا درک کردم و اما توضیح: باز هم یک مثال می زنم:در اینجا پایگاه داده من،پایگاه داده دانشگاه و جدولی که روش کار می کنم جدول(یا رابطهی )مشخصات دانشجویان دانشکده مهندسی است. فرض کنید جدول ما بدین شکل است: شماره رکورد نام نام خانوادگی رشته تحصیلی سال ورود ۱ علی صادقی برق ۸۴ ۲ مریم کمالی کامپیوتر ۸۵ ۳ رضا شیاسی کامپیوتر ۸۴ ۴ عاطفه نامور عمران ۸۴ ۵ آزاده سهیلی برق ۸۳ ۶ سحر رسولی متالوژی ۸۵ خوب!اولین کاری که شما باید برای حل این سوال بکنید اینکه کاملا با مفهوم عملگر project آشنا باشید. سوال اول:آیا می شود در یک جدول رکورد تکراری داشته باشیم؟مثلا به صورت زیر؟ شماره رکورد نام نام خانوادگی رشته تحصیلی سال ورود ۱ علی صادقی برق ۸۴ ۲ مریم کمالی کامپیوتر ۸۵ ۳ رضا شیاسی کامپیوتر ۸۴ ۴ عاطفه نامور عمران ۸۴ ۵ آزاده سهیلی برق ۸۳ ۶ سحر رسولی متالوژی ۸۵ ۷ مریم کمالی کامپیوتر ۸۵ جواب: خیر،پایگاه داده اجازه این کار را نمی دهد.(در اینجا رکورد تکراری به رکوردی گفته می شود که دقیقا هر ۴ فیلد آن(نام،نام خانوادگی،رشته تحصیلی،سال ورود)با هم برابر باشند.مثل رکورد شمارهی ۲ و ۷)اگر اطلاعاتی وارد پایگاه داده شود که دقیقا مشابه آن موجود باشد پایگاه داده از وارد کردن آن در رابطه خودداری می کند. (البته شاید پایگاه های داده ای هم وجود داشته باشند که اطلاعات را ذخیره کنند ولی مسئله این است که اگر از هر دو مدل پایگاه سوال شود که شما چند رکورد دارید؟جواب می دهند:۶ رکورد نه ۷ رکورد.(تاپل های تکراری شمارش نمی شوند!) سوال ۲:پس در این صورت چرا در برخی منابع نوشته که هنگام به کار بردن عملگر پرتو (project) تاپل های تکراری حذف می شوند؟مگر باز هم تاپل تکراری داریم؟؟ جواب:عملگر پرتو چکار می کند؟اگر در یک جستجو از پایگاه داده نیازی به اطلاعات کامل رکوردهای انتخاب شده نداشته باشیم و فقط ستون های خاصی از یک رکور مد نظر ما باشد از عملگر پرتو استفاده می کنیم.البته سوال شما اشکال دارد.در عملگر پرتو تاپل های تکراری حذف نمی شوند (تاپل تکراری اصلا نداریم)ستون های تکراری حذف می شوند... مثال:رشته های تحصیلی ارائه شده در دانشکدهی مهندسی را بدهید. در اینجا اصلا برای کاربر مهم نیست که کی چه رشته ای قبول شده!فقط می خواهد بدانه که در این دانشگاه چه رشته های فنی تدریس می شود.در این حالت پایگاه داده ستون با نام رشته های تحصیلی را از جدول جدا کرده و به کاربر می دهد: بدین صورت برق کامپیوتر کامپیوتر عمران برق متالوژی همان طور که می بینی رشته های برق و کامپیوتر هر کدام تکرار شده اند و اضافی هستند و امکان دارد کاربر با نگاهی به خروجی فکر کند که در این دانشگاه ۶ رشتهی فنی تدریس می شود نه ۴ رشته!پس عملگر پرتو لطف می کند و ستون های اضافی را حذف می کند تا باعث اشتباه نشود بدین طریق: برق کامپیوتر عمران متالوژی پس سوال شما اینگونه باید مطرح شود: ۱-ممکن است مشخصات یک نفر دو بار در جدول ظاهر شود؟خیر ۲-ممکن است دو نفر رشتهی تحصیلی مشابه داشته باشند و ستون رشتهی تحصیلی دارای عناصر مشابه باشد؟بله |