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

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


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

 

6-9-3 ارائه گروههای رابطه
فرض کنید که R یک گروه رابطه است، a1,a2,…,am گروهی از صفاتی است که با بهم پیوستن کلید اولیه هر گروه اولیه ای که در R شرکت دارد، ایجاد می شود ونیز فرض کنیم صفاتی توصیفی R (اگر وجود دارد) عبارتند از: b1,b2,…,bn. ما این گروه رابطه را توسط الگوی رابطه به نام R همراه با یک صفت برای هر عضو گروه ارائه می کنیم:
{ a1,a2,…,am}U{ b1,b2,…,bn}
قبلاً در بخش 6-3-2-2 نحوه انتخاب یک کلید اولیه را برای یک گروه رابطه دوطرفه بیان کردیم. همانگونه که درآن بخش دیدیم برداشتن تمام صفات کلید اولیه از همه گروههای موجودیت مرتبط، به تشخیص یک چندگانه خاص کمک می کند، اما درمورد گروههای رابطه یک به یک، چند به یک و یک به چند، این موضوع منتهی به یک گروه صفات می شود که نسبت به آنچه ما در کلید اولیه نیاز داریم بزرگتر است. به همین دلیل کلید اولیه به شکل زیر انتخاب می شود.
برای رابطه دوطرفه چند به چند از به هم پیوستن صفات کلید اولیه از گروههای موجودیت شرکت کننده، کلید اولیه ایجاد می شود.
برای یک گروه رابطه دوطرفه چند به چند، کلید اولیه هر گروه موجودیت را می توان به عنوان کلید اولیه برای رابطه انتخاب کرد. انتخاب گروه موجودیت از میان آنهایی که توسط گروه رابطه به هم مرتبط شده اند، می تواند به طور اتفاقی ایجاد شود.
برای یک گروه رابطه دوطرفه چند به یک یا یک به چند، کلید اولیه گروه موجودیت در طرف «چند» گروه رابطه به عنوان کلید اولیه محسوب می شود.
برای یک گروه رابطه n طرفه (چند طرفه) بدون هیچ فلشی در کناره های آن، به هم پیوستن صفات کلید اولیه از گروههای موجودیت شرکت کننده، کلید اولیه را ایجاد       می کند.
برای یک گروه رابطه n طرفه (چند طرفه) با یک فلش در یکی از کناره های آن، کلید اولیه گروههای مدیریتی که فلش در کنار گروه رابطه ندارد به عنوان کلید اولیه برای برنامه محسوب می شود. لازم به یادآوری است که ما اجازه داده ایم تنها یک فلش از یک گروه رابطه خارج شود. 
ما همچنین محدودیت های کلید خارجی درابطهR   ایجاد می کنیم. برای هر گروه موجودیت Ei که با گروه رابطه R مرتبط است، یک محدودیت کلید خارجی از رابطه R با صفات R ایجاد می کنیم که اینها صفات کلید اولیه E بودند که کلید اولیه رابطه را فراهم می کند. وبا Ei نشان داده می شود.
به عنوان نمونه، گروه رابطه borrower در نمودارE-R از جدول 6-7 را ملاحظه کنید. این گروه رابطه شامل دو گروه موجودیت زیر می باشد.
customer با کلید اصلی customer-id 
loan با کلید اصلی loan-number 
از آنجایی که گروه رابطه دارای هیچ صفتی نیست، الگوی borrower دو صفت دارد.
Borrower=( customer-id, loan-number)
ترکیبی از صفات کلید اولیه customer و loan، کلید اولیه برای رابطه  borrower است. ما همچنین دو محدودیت کلید خارجی از رابطه borrower با صفت customer-id که کلید اولیه customer را فراهم می کند و صفت loan-number که کلید loan را فراهم می کند، ایجاد می کنیم. 

6-9-3-1 الگوهای زاید
یک گروه رابطه که گروه موجودیت ضعیف را به گروه موجودیت قوی مشابه وصل می کند، بطور ویژه بررسی می شود. همانطور که در بخش 6-6 ذکر کردیم، این روابط، چند به یک هستند. و هیچ صفت توصیفی ندارد. به علاوه کلید اولیه گروه موجودیت ضعیف شامل کلید اولیه گروه موجودیت قوی می باشد. در نمودار E-R از جدول 6-19، گروه موجودیت ضعیف payment به گروه موجودیت قوی loan از طریق گروه رابطه payment-loan وابسته است. کلید اولیه payment عبارتند از:
 { payment-number ,loan-number} و کلید اولیه loan عبارت است از: {loan-number}. از آنجائیکه گروه loan-payment هیچ صفت توصیفی ندارد، الگوی loan-payment دارای دو صفت payment-number ,loan-number است. برنامه برای گروه موجودیت payment دارای چهار صفت payment-amount , payment-date , payment-number , loan-number است. همچنین هر ترکیب (payment-number ,loan-number) در یک رابطه loan-payment ، در الگوی رابطه payment وجود دارد و برعکس این هم وجود دارد. پس برنامه loan-payment اضافی است. در کل، برنامه برای گروه رابطه که گروه موجودیت ضعیف را به گروه موجودیت قوی مشابه متصل می کند، اضافی است و لازم نیست در یک طرح پایگاه داده رابطه ای که مبتنی بر نمودار E-R است، حاضر شوند.

6-9-3-2 ترکیب الگوها
گروه رابطه چند به یک AB را از گروه موجودیت A به گروه موجودیت B بررسی کنید با کاربرد طرح ایجاد الگوی رابطه ای که قبلاً توضیح داده شد، ما به سه الگو دست می یابیم: .AB,B,A دوباره فرض کنید که مشارکت A در گروه رابطه، کامل است، به عبارت دیگر موجودیت a در گروه موجودیت A باید در رابطه AB شرکت کند. سپس می توان برنامه A و  AB را ترکیب کرد تا یک برنامه ایجاد کرد که شامل ترکیبی از ساختارهای هر دو برنامه می باشد.
به عنوان نمونه، نمودار E-R در شکل 6-27 را ملاحظه کنید.
شکل 6-27 نمودار E-R 
شکل 6-27 نمودار E-R

 خط دوبل نشان می دهد که مشارکت account در account-branch، کامل و تمام است. به همین دلیل، یک حساب بدون ارتباط با شعبه خاصی نمی تواند وجود داشته باشد. به علاوه گروه رابطه account-branch، چند به یک از account به branch است. بنابراین الگوی account-branch را با الگوی account می توان ترکیب کرد که فقط دو الگوی زیر را نیاز دارد:
Account =(account-number ,balance ,branch-name)
branch =(branch-name ,branch-city ,assets)
در مورد روابط یک به یک، الگوی رابطه ای برای گروه رابطه را با الگوی هر یک از گروههای موجودیت می توان ترکیب کرد.
الگوها را می توان با استفاده از مقادیر null با هم ترکیب کرد حتی اگر مشارکت، نسبی باشد. در مثال بالا، ما برای صفت branch-name در مورد حسابی که هیچ شعبه مرتبطی ندارد، مقدار null ذخیره می کردیم.
کلید اولیه الگوی ترکیب شده، کلید اولیه گروه موجودیتی است که الگوی آن با الگوی گروه رابطه ترکیب می شود. در مثال بالا، کلید اولیه، account-number است.
الگویی که گروه رابطه را ارائه می دهد، دارای محدودیت های کلید خارجی است که هر کدام از گروههای موجودیت شرکت کننده در گروه رابطه را فراهم می آورد. ما محدودیت هایی را حذف می کنیم که گروه موجودیت را ارائه می کنند و الگوی آن با الگوی گروه رابطه ترکیب می شود و محدودیت های کلید خارجی را به برنامه ترکیب شده اضافه می کنیم. در مثال بالا، محدودیت کلید خارجی که account را ارائه می کند حذف می شود. اما محدودیت کلید خارجی با branch-name که branch را ارائه     می کند، به عنوان یک محدودیت در الگوی ترکیبی account حفظ می شود.

6-9-4 صفات ترکیبی و چند مقداری
ما صفات ترکیبی را از طریق ایجاد صفت مجزا و جداگانه برای هر جزء از صفت کنترل می کنیم، اما یک صفت جداگانه برای خود صفت ترکیبی ایجاد نمی کنیم. فرض کنید که address یک صفت ترکیبی از گروه موجودیت customer است و اجزای address شامل street و city هستند. الگویی که از مشتری ایجاد می شود شامل صفات address-street و address-city است، صفت یا الگوی  جداگانه ای برای address وجود ندارد. این مطلب را در بخش 7-2 مرور می کنیم.
ما ملاحظه کرده ایم که صفات در نمودار E-R برای الگوهای رابطه ای مناسب به تدریج به ساختارها مرتبط می شوند. هرچند صفات چند مقداری از این امر مستثنی هستند اما الگوهای رابطه ای جدید، برای این صفات ایجاد می شود.
برای یک صفت چند مقداری M، یک الگوی رابطه R باصفت A را ایجاد می کنیم که بر M و صفات منطبق بر کلید اولیه گروه موجودیت یا گروه رابطه انطباق دارد که درآن M یک صفت است. به عنوان مثال یک نمونه، نمودار E-R را در جدول 6-25 ملاحظه کنید. نمودار شامل گروه موجودیت employee با یک صفت چند مقداری dependent-name می باشد. کلید employee ، employee-id است. برای این صفت چند مقداری الگوی رابطه زیر ایجاد می کنیم:
(dependent-name (employee-id ,d-name
هر فرد تحت تکلف یک کارمند، به عنوان یک چندگانه خاص در رابطه این الگو را ارائه می شود. بنابراین اگر ما کارمندی با شماره کارمندی 234-12 و افراد تحت تکلف جان و مری داشتیم، رابطه        d-name دارای دو چندگانه (12-234,john) و (12-234,mary) می شد.
ما کلید اولیه الگوی رابطه ایجاد می کنیم که شامل همه صفات برنامه است. در مثال بالا، کلید اولیه شامل هر دو صفت رابطه dependent-name می باشد.
به علاوه، ما یک کلید خارجی را در الگوی رابطه همراه با صفتی ایجاد می کنیم که ناشی از کلید اولیه گروه موجودیت می باشد، این گروه موجودیت ارائه کننده رابطه ای است که از گروه موجودیت ایجاد می شود. در مثال بالا، محدودیت، صفت employee-id است که رابطه employee را ارائه می کند.


6-9-5 ارائه روش عمومی سازی 
دو روش مختلف طراحی الگوهای رابطه ای برای یک نمودار E-R وجود دارد که شامل روش عمومی سازی است. اگر چه در این مقاله به روش عمومی سازی در جدول 6-20 اشاره می کنیم، اما تنها با وارد کردن اولین ردیف از گروههای موجودیت کوچک، آنرا تسهیل و ساده می کنیم که عبارتند از: customer, employee. ما فرض می کنیم که person-id، کلید اولیه person است.
1. یک برنامه برای یک گروه موجودیت بزرگ ایجاد کنیم. برای هر گروه موجودیت کوچک، یک برنامه ایجاد کنیم که شامل یک صفت برای هر یک از صفات آن گروه موجودیت به اضافه یکی بزای هر صفت از اصل اولیه گروه موجودیت بزرگ می شود. بنابراین: برای نمودار E-R از جدول 6-20، ما سه برنامه داریم.
(person-id, name, street, city) person=
employee= (person-id, salary)
customer= (person-id, credit- rating)
صفات کلید اولیه از گروه موجودیت بزرگ، مثل همه گروههای موجودیت کوچک، صفات کلید اولیه گروه موجودیت بزرگتر میشود. در مثال بالا در زیر این موارد خط کشیده شده است.
به علاوه، ما محدودیت های اصل جانبی در گروههای موجودیت را همراه با صفات اصل جانبی ایجاد می کنیم که این صفات، اصل اولیه رابطه ای که از گروه موجودیت بزرگ ایجاد شده است را ارائه می کند. در مثال بالا، خصوصیت person ازemployee کلید اولیه person و نیز customer را ارائه می دهد.
2. اگر عمومی سازی گسسته و کامل باشد. به عبارت دیگر، اگر هیچ موجودیتی، عضوی از دو گروه موجودیت کوچک که مستقیماً زیر گروه یک گروه موجودیت بالاتر قرار دارند، نباشد و اگر هر موجودیتی در گروه موجودیت بالاتر، عضو یکی از گروههای موجودیت کوچکتر نیز هست، ایجاد یک مدل جایگزین امکان پذیر است. در اینجا، برنامه ای برای گروه موجودیت بالاتر ایجاد       نمی کنیم. در عوض برای هر گروه موجودیت کوچکتر، برنامه ای ایجاد می کنیم که شامل یک صفت برای هر یک از صفات آن گروه موجودیت به اضافه یک صفت برای هر صفت از گروه موجودیت بالاتر می شود. پس برای نمودار E-R از جدول 6-20، دو برنامه داریم:
employee= (person-id ,name ,street ,city ,salary)
customer= (person-id ,name ,street ,city ,credit- rating)
هر دو این برنامه دارای  person-id می باشند که صفت اصل اولیه از گروه موجودیت بالاتر person  می باشد.
یکی دیگر از معایب شیوه دوم در نشان دادن محدودیت های کلید خارجی قرار دارد. برای روشن شدن این مسئله، فرض کنید که ما گروه رابطه R داشتیم که شامل گروه موجودیت person می باشد. در شیوه اول، زمانیکه برنامه رابطه R را از گروه رابطه ایجاد می کنیم ما همچنین یک محدودیت کلید خارجی را در R نشان می دهیم که برنامه person را ارائه می کند. متأسفانه، در شیوه دوم، ما رابطه واحدی نداریم که محدودیت کلید خارجی در R را بتواند ارائه کند. برای اجتناب از این مساله، ما نیازمند ایجاد الگوی رابطه person هستیم که حداقل شامل صفت کلید اولیه از موجودیت person می باشد.
اگر از شیوه دوم برای یک عمومی سازی مشترک استفاده می شد، بعضی از موارد، بدون هیچ ضرورتی چندین بار تکرار می شد. برای مثال اگر یک شخص، هم کارمند و هم مشتری است، اجزاء street و city دوباره ذخیره سازی می شد. اگر عمومی سازی کامل نبود به عبارت دیگر اگر بعضی اشخاص نه کارمند باشند و نه مشتری، بنابراین یک جدول دیگر person برای نشان دادن این اشخاص لازم بود.

6-9-6 ارائه دادن ترکیب
برنامه برای یک نمودار E-R که شامل ترکیب باشد، بسیار آسان است. نمودار شکل 6-22 را ملاحظه کنید. برنامه گروه رابطه manages در بین ترکیب work-on و گروه موجودیت manager شامل یک صفت برای هر کدام از صفات در کلید اولیه گروه موجودیت manager و گروه رابطه work-on        می باشد. این برنامه همچنین شامل یک صفت برای هر یک از صفات توصیفی گروه رابطه manager، در صورت وجود این صفات، می باشد. بنابراین ما این گروههای رابطه و گروههای موجودیت را به موجودیت ترکیب شده تبدیل می کنیم که قواعدی را که قبلاً ذکر شده دنبال می کند.
قواعدی را که قبلاً برای ایجاد کلید اولیه و محدودیت های کلید خارجی در گروههای زابطه بررسی کردیم، در مورد گروههای رابطه هم می توان به کاربرد، این گروهها شامل ترکیب ها هم می شود که این ترکیب مانند دیگر موجودیت ها بررسی می شود. کلید اولیه ترکیب، کلید اولیه گروه رابطه ای است که آنرا تعیین می کند. هیچ رابطه جداگانه ای برای ارائه این ترکیب مورد نیاز نیست، بلکه رابطه ای به کار   می رود که از رابطه تعیین کننده ایجاد می شود.

 


تگها: پایگاه داده   پایگاه داده رابطه ای   پروژه بانکداری   جبر رابطه ای   حساب رابطه ای   
 

HyperLink

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