پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


پایگاه داده رابطه ای بخش سیزدهم تاریخ درج: ١٣٩۴/٠٩/٢۴

 6-3 محدودیتها

E-R به عنوان الگویی است که محدودیتهای خاصی را که شامل یک پایگاه داده مطابقت داده شده است تعریف می شود. در این بخش ترسیم کاردینالیتی ها، کلید محدودیتها و اشتراک محدودیتها را بررسی می کنیم.


6-3-1 ترسیم کاردینالیتی
ترسیم کاردینالیتی یا نسبتهای کاردینالیتی شماره موجودیت هایی که یک موجودیت دیگر می تواند از طریق یک گروه به هم مرتبط باشند را بیان کند.
 نقشه کاردینالیتی ها
شکل 6-5 نقشه کاردینالیتی ها:  (a یک به یک   (b یک به چند

ترسیم کاردینالیتی ها برای توصیف گروه رابطه های دوتایی بسیار مفیدند، اگر می توانند توصیف گروه رابطه هایی که شامل بیش از دو موجودیت می شود را بیان کنند. در این بخش بر روی گروه روابط دوتایی متمرکز می شویم. برای گروه رابطه دوتایی R بین دو موجودیت A و B کاردینالیتی ترسیم شده باید یکی از موارد زیر باشد:
یک به یک: موجودیت A به بیش از یک موجودیت در B مرتبط می شود، و موجودیت در B به بیش از یک موجودیت در A مرتبط می شود. (شکل .a6-5)
یک به چند: یک موجودیت در A به هر شماره (صفر یا بیشتر) موجودیت در B مرتبط می شود. و به هر حال یک موجودیت در B به بیش از یک موجودیت در A مرتبط می شود. (شکل b6-5)
چند به یک: یک موجودیت در A به بیش از یک موجودیت در B مرتبط می شود. به هر حال یک موجودیت در B می تواند با هر شماره (صفر یا بیشتر) موجودیت در A مرتبط شود. (شکل b6-6)
چند به چند: یک موجودیت در A با هر شماره (صفر یا بیشتر) موجودیت در B مرتبط می شود. و یک موجودیت در B با هر شماره (صفر یا بیشتر) موجودیت در A مرتبط شود. (شکلb6-6)
بدیهی است کاردینال ترسیم شده مناسب برای گروه رابطه های خاص بستگی به مدل قرار گرفتن گروه روابط جهان واقعی دارد.
برای نمونه، گروه رابطه borrower را مد نظر قرار دهید. در یک بانک خاص، اگر یک وام متعلق به یک مشتری باشد، و یک مشتری بتواند چندین وام داشته باشد، پس گروه رابطه از مشتری به وام یک به چند است. اگر یک وام بتواند به چندین مشتری متعلق باشد رابطه چند به چند است.
 
 نقشه کاردینالیتی ها
شکل 6-6 نقشه کاردینالیتی ها (a) چند به یک (b)  چند به چند

6-3-2 کلیدها
باید روشی برای تعیین اینکه چطور موجودیت ها در یک گروه موجودیت مفروض تشخیص داده می شوند، بیان کنیم. به طور ذهنی، از منظر یک پایگاه داده موجودیت های مجزا مشخص هستند، به هر حال تفاوت بین آنها باید در صفات آنها باشد. بنابراین مقدار صفات در موجودیت باید چنان باشد که بتواند به طرز خاص تعیین شود.
از طرف دیگر، نبودن دو موجودیت در گروه موجودیت ها اجازه می دهد دقیقاً برای همه صفات مقداری یکسان وجود داشته باشد.
یک کلید اجازه می دهد که گروه صفاتی که برای تشخیص کافی بودن موجودیت ها از یکدیگر   می باشند را تعیین کنیم. کلیدها در تشخیص رابطه ها از یکدیگر به ما کمک می کنند.

 
6-3-2-1 گروه موجودیت ها
یک کلید اصلی مجموعه از یک یا چند صفت است که به طور کلی به ما در تشخیص یک موجودیت در گروه موجودیت کمک می کند. برای مثال صفت customer_id از گروه موجودیت مشتری برای تشخیص موجودیت یک مشتری از مشتری دیگر مناسب می باشد. بنابراین شماره شناسایی یک کلید اصلی است. به همین ترتیب، ترکیب نام مشتری و شماره شناسایی مشتری  کلید اصلی برای موجودیت گروه مشتری است. نام مشتری به عنوان یک کلید اصلی برای یک مشتری نیست زیرا ممکن است چندین نفر نام یکسان داشته باشند.
مفهوم کلید اصلی برای اهداف ما کافی نیست، زیرا خواهیم دید که کلید اصلی  ممکن است شامل صفات اضافی باشد. ما اغلب علاقمندیم که کلیدهای اصلی برای هیچ زیر گروه آن کلید اصلی مناسب نباشد. کوچکترین کلیدهای اصلی، کلیدهای کاندیدا نامیده می شوند.
ممکن است چندین گروه صفت بتواند به عنوان کلید کاندیدای ذخیره شده تشخیص داده شوند.
فرض کنید که ترکیب نام مشتری وخیابان مشتری در تشخیص بین اعضاء گروه موجودیت مشتری کافی است. پس هر دو یعنی هم گروه شماره شناسایی مشتری وهم نام مشتری و هم خیابان مشتریcustomer-street},{customer-name کلیدهای کاندیدا هستند. اگر چه صفات شماره شناسایی مشتری و نام مشتری با یکدیگر می توانند موجودیت های مشتری را تشخیص دهند، ترکیب آنها شکل کلید کاندیدا نیست، چون صفت شماره شناسایی مشتری تنها یک کلید کاندیدا است.
باید از اصطلاح کلید اصلی  برای نشان دادن کلید کاندیدا که توسط طراح پایگاه داده انتخاب شده استفاده کنیم. A کلیدی (اولیه، کاندیدا و اصلی) در گروه موجودیت به جای موجودیت های فردی است. هر دو موجودیت های فردی در گروه از داشتن مقدار یکسان در کلید صفات در زمان یکسان ممانعت     می کند. کلیدهای کاندیدا باید با دقت انتخاب شوند. توجه کنید که بدیهی است اسم شخص کافی نمی باشد زیرا ممکن است افراد زیادی با اسامی یکسان وجود داشته باشد. در ایالت متحده، شماره بیمه اجتماعی یک شخص کلید کاندیدا است. چون هیچ یک از ساکنین ایالات متحده معمولا ً شماره های بیمه اجتماعی ندارد.کلید اولیه باید از بین صفاتی که هرگز یا بندرت تغییر یافتند انتخاب شوند. مثلاً، فیلد آدرس یک شخص نباید بخشی از کلید اولیه باشد زیرا احتمالا ً تغییر می کنند.

6-3-2-2 گروه رابطه ها
کلید اولیه گروه موجودیت به ما اجازه می دهد بین موجودیت های مختلف گروه را تشخیص دهیم. ما نیاز به مکانیزم مشابه در تشخیص بین گروه روابط مختلف داریم.
R در یک گروه رابطه شامل موجودیت گروه های En , . . . . E2 , E1 است. کلید اولیه (Ei) گروه صفاتی که کلید اولیه ای برای گروه موجودیت Ei است را نشان می دهد. اکنون فرض کنید که صفت اسامی همه کلیدهای اولیه مجزا هستند، و هر گروه موجودیت تنها یکبار در این رابطه شرکت می کند. ترکیب کلید اولیه برای رابطه گروه بستگی به گروه صفات مرتبط با گروه رابطه R دارد.
 گروه رابطه ها
 
در این مورد نامهای کلید اولیه در گروه موجودیت منحصر بفرد نیست، این صفات برای آنکه تشخیص داده شوند نام گذاری شده اند . اسم گروه موجودیت با اسم صفت ترکیب شده و شکل اسم یکتایی را نشان می دهد. در این مورد گروه موجودیت بیش از یکبار در گروه رابطه (مانند رابطه works-for در بخش 6-2-2) شرکت می کند.
ساختار کلید اولیه برای گروه رابطه بستگی به کار دینالیتی ترسیم شده گروه رابطه دارد. برای نمونه گروه موجودیت های مشتری وحساب   گروه رابطه سپرده گذاری  صفت موجود در بخش 6-2-2 را مد نظر قرار دهید. فرض کنید که گروه رابطه چند به چند است. پس کلید اولیه سپرده گذار شامل واحدی از کلیدهای اولیه مشتری و حساب می باشد. به هر حال اگر یک مشتری فقط یک حساب داشته باشد – به عبارتی اگر رابطه سپرده گذار از مشتری به حساب چند به یک باشد – پس کلید اولیه سپرده گذار تنها کلید اولیه مشتری است.
به همین ترتیب اگر رابطه از حساب به مشتری چند به یک باشد – به عبارتی هر حساب به بیش از یک مشتری متعلق بوده – پس کلید اولیه سپرده گذار تنها کلید اولیه حساب است. برای رابطه یک به یک میتوان از کلید اولیه دیگری استفاده کرد. 
برای روابط غیر دودویی اگر هیچ محدودیت کاردینالیتی وجود نداشته باشد پس کلید اصلی شکل یافته در این بخش فقط کلید کاندیدا است و به عنوان کلید اولیه انتخاب می شود. اگر محدودیتهای کاردینالیتی وجود داشته باشد انتخاب کلید اولیه بسیار پیچیده است. چون در مورد چگونگی کاردینالیتی در روابط غیر دودویی بحث نکردیم در این بخش هم بحث بیشتری در مورد آن انجام نمی دهیم. این مبحث را با جزئیات بیشتر در فصل 7 مورد بررسی قرار می دهیم.

6-3-3 مشارکت محدودیتها
به مشارکت گروه موجودیت E در رابطه R کلی می گویند اگر موجودیت E حداقل در یک رابطه R شرکت کند. اگر تنها بعضی از موجودیتها در E در رابطه R شرکت کنند، مشارکت گروه موجودیت E در رابطه R را جزئی می گویند. مثلاً فرض کنید هر موجودیت وام حداقل به یک مشتری از طریق رابطه Borrower مربوط می شود. بنابراین مشارکت وام در رابطه گروه Borrower کلی است. بنابراین احتمال دارد فقط بعضی از موجودیتهای مشتری با Borrower رابطه داشته باشند. بنابراین مشارکت customer در رابطه borrower جزئی است.

تگها: پایگاه داده   پایگاه داده رابطه ای   ترسیم کاردینالیتی   جبر رابطه ای   حساب رابطه ای   زبان های رابطه ای   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: