DB - Lecture 15
Download
Report
Transcript DB - Lecture 15
مهدیای لبیگی
دانشگاهپیامن ور دماوند
• مراحل طراحی پایگاه داده:
.1مطالعه و شناخت خرد جهان واقع
.2انجام عمليات مهندس ي نيازها
.3مدلسازي معنايي دادهها
.4طراحي منطقي پايگاه دادهها
.5طراحي فيزيكي پايگاه دادهها
.6انجام تحليل عملكردي :تعيين تراكنش ها
.7طراحي برنامههاي كاربردي و واسط هاي كاربري
2
خرد جهان ولقع
تشخيص نيازها و تحليل آنها
نيازهاي عملياتي
نيازهاي پايگاهي
مدلسازي معنايي دادهها
نمودار ER
تحليل عملكردي
مشخص كردن تراكنش ها در سطح باال
ناوابسته به DBMS
طراحي منطقي
شماي ادراكي (منطقي) و شماي خارجي
طراحي برنامههاي كاربردي
ي
و واسط هاي كاربر
طراحي فيزيكي
شماي داخلي
3
پيادهسازي تراكنش ها
برنامههاي كاربردي
وابسته به DBMS
.1روش بااال باه پاايين :در اين رو ابدندا مدلسننازي معننايي دادههنا انجنام ميشنمدل سن
به مجممعهاي از رابطهها تبديل ميكنيم.
مدلسننازي را
منيكنيم .سن ب نا
.2روش ساان ز رابطاهاي :در اين رو مجممعننه نندات خردجهننان واقننع را ممن
تحلي ننل قماع نند و مح نندوديت ه نناي ن نناخر ب ننه نندات و تم ن ي واتس نندگي ه نناي ب ننين ن ه ننال نندات را
مدناس ننبا ب نناهم س ننن ز (ترکین ن ) م نيكنيم .ه ننر ننروه از نندات عن ننمان ي نند رابط ننه را ب ننه م ننا ميده نند ب ننه
گمنهاي كه حتياالمكان در مطلمب ري مرت نرمنا باشند .هنر رابطنه بدسنت مده نما ن ر بخشن ي از
خردجهان واقع بمده و ضمابط يد طرح خمب و قابل دفاع را خماهد داشت.
.3روش تركيبي :در اي رو ل ابددا طراحني را بنا رو بناال بنه پنايين انجنام منيدهيم و سن بنا دخالنت
دادن برخنني محنندوديت هنناي جننامعيتي كننه در مرحلننه مدلسننازي معنننايي دادههننا من ننمر نندهاند و ب نا
تحلي ننل ه ننر رابط ننهل مرحل ننه نرمال رس ننازي رابطن نهها را انج ننام من نيدهيم ت ننا ب ننه مجممعن نهاي از نرم ننال ري
رابطهها برسيم.
4
-1نما ش واضحي از خردجهان واقع باشد.
-2نمن ن ننا ش ن ن ننويحي از خردجهن ن ننان واقن ن ننع باشن ن نند (بگمنن ن ننه ا کن ن ننه هن ن ننی اشن ن ن باه معنن ن ننا در
پاس گم به پرسش ها کاربران بروز نکند).
-3نما ش جامعي از خردجهان واقع باشد( .در بر يرنده تمام
دات ممرد نیاز کاربران)
-4تمننام قماعنند جننامعيتي كننه قابننل اعمننا در هننر مرحلننه از طراحنني منطقنني باشننندل در طراحنني
من مر شده باشند.
-5معناي هريد از دات از هر نمع ممجمديت به درستي رعايت شده باشد.
-6كم ري ميزان افزونگي را داشده باشد.
5
-7كم ننري مي نزان اخنند ر اط عننات را داشننده باشنند( .روابننط در سننطی بنناال نرمننا س ناز
ت مند)
-8ا عطافپذيري داشده باشد( .بدمان تغیيرات نیازها جدید کاربران را من مر کرد)
-9كم ري دشماري در انجام عمليات ذخيرهسازي را داشده باشد.
-10كم ري ميزان هيچمقدار در پایگاه داده ایجاد شمد.
-11ه نني اط ن ع جعر نني در اي ننر انج ننام عملي ننات در پايگ نناه دادهه ننا پدي نند نياي نند( .تعن ننمان م ن نا
رابط ننه حا ننل از پیمن نند دو ج نندو رو ی ننا نندت یي ننر کلی نند ممک ن اس ننت س ننطرها
جدید و ح م را ایجاد نماید)
-12بن ننا درن ن ننر ن ننرف ن طراحن نني فيزيكن نني و تن ننايير ن در طراحن نني منطقن ننيل ب ن ن ري كن نارايي ب ن نراي
س سدم كاربردي پايگاه دادهها تامين شمد.
6
•
حالت او :
–
–
–
•
•
7
تعداد نمع ممجمديتn >= 2 :
وضع ممجمديت ها :مسدقل
چندي ارتبارN:M :
در اي حالتل n+1رابطه الزم است n .رابطه براي nممجمديت مسدقل و يند رابطنه بنراي نمنا ش
ارتبار بين ن ها.
ا ننر ارتب ننار ب ننين ان ننماع ممجمدي ننت ه ننال نندت س نناده ي ننا مرك ن چندمق ااداري نداش ننده باش نندل در اي ن
ننمرت كلينند كاندينند رابطننه نما ن ر ارتبننار بننين nممجمديننتل از تركي ن كلينندهاي كاندينند nرابطننه
نما ن ر nممجمديننت بننه دسننت مي ينند .پ ن كلينندهاي خننارزيل از اج نزاه ت ننكيلدهنده كلينند كاندي ند
رابطه نما ش دهنده ارتبار هس ند.
• م ا برا حالت او :
• در ای ن ن م ن ننا ب ن نرا هن ننر ین ننا از ممجمدین ننت
هننا S, P, Jیننا رابطننه (جنندو )
تعریف م نماییم.
• ب ن نرا رابط ن ننه S-P-Jني ن ننز ی ن ننا رابط ن ننه در
ن ن ننر من ن ين ننریم .کلین نند ای ن ن رابطن ننه ترکی ن ن
کلیندها کاندیند در رابطنه هنا S, P,
Jم باشد.
8
• حالت دوم:
– تعداد نمع ممجمديت :دو
– وضع ممجمديت ها :مسدقل
– چندي ارتبار1:N :
• در اي حالتل دو رابطه كدايت ميكند :يد رابطه براي نما ش نمع ممجمديت طرف يدل و يد رابطنه
بنراي نمننا ش نننمع ممجمديننت طننرف Nو نيننز ارتبننار 1:Nدر رابطننه اخيننر .كلينند كاندينند رابطننه او ل بننه
عن ننمان كلي نند خ ننارزي در رابط ننه دومل ارتب ننار م ننمرد ن ننر را ننان ميده نند و ج ننزه ت ننكيلدهنده كلي ند
كانديد رابطه ن ست.
• در م ا فمق باید دو رابطه بصمرت زیر تعریف نماییم:
•
9
)… DEPT(D#,
EMPL(E#, …, D#, F) → Foreign-Key: D#
نکدننه :در رابطننه کارمننند D#کلینند خننارزی اسننت و جننزه کلینند ا ننری کارمننند نيننز ن ن باشنند .البدننه بنندلیل
اینکه م ارکت در ارتبار الزام استل D#در رابطه کارمند ن تماند NULLباشد.
• حالت سمم
– تعداد نمع ممجمديت :دو
– وضع ممجمديت ها :مسدقل
– چندي ارتبار1:1 :
• در اين حالننتل دو رابطنه الزم اسننت :يند رابطننه بنراي نمننا ش يكني از دو نننمع ممجمدينت و رابطنهاي دي ننر
براي نما ش نمع ممجمديت دي ر و ارتبار بين دو نمع ممجمديت.
• در م ا فمق باید دو رابطه زیر را تعریف کننیم و رابطنه سنمت بنا م نارکت الزامن کلیند کاندیند رابطنه
دوم را تعنمان کلید خارزی دارا خماهد شد:
)… Book(B#,
Course(C#, …, B#) → Foreign-Key: B#
نکده :ا ر م ارکت طرفين یير الزام بمد م ا فمق با سه جدو زیر طراحی م شمد:
•
)B(B#, …), C(C#, …), BC(B#, C#
10
• حالت چهارم
– تعداد نمع ممجمديت :يد
– وضع ممجمديت ها :مسدقل
– چندي ارتبارN:M :
• در اين حالننتل ارتبننار بنا خننمد داريننم .دو رابطنه الزم اسننت :ينند رابطنه بنراي نمننا ش خنمد
نننمع ممجمديننت و دي ننري ب نراي نمننا ش ارتبننارل اعننم از اينكننه م نناركت الزامنني باشنند يننا
نباشد.
• در م ا فمق باید دو رابطه زیر را تعریف نماییم:
)… Part(P#,
)Made(P#, M#, Count
11
• حالت پنجم
– تعداد نمع ممجمديت :يد
– وضع ممجمديت ها :مسدقل
– چندي ارتبار1:N :
• در اي حالتل هم ”ارتبار با خمد“ داريمل ولی يد رابطه كدايت ميكند.
• برا م ا فمق باید جدو زیر را تعریف نماییم:
EMP(E#, …, EManager#) → Foreign-Key: EManager#
12
• حالت ش م
– تعداد نمع ممجمديت :يد
– وضع ممجمديت ها :مسدقل
– چندي ارتبار1:1 :
• در اي ن حال ننت ي نند رابط ننه كداي ننت ميكن نندل ب ننه ش ننرر نك ننه م نناركت در ارتب ننار الزام ني
باشد .البده ميتمان با دو رابطه هم طراحي كرد.
• برا م ا فمق باید جدو زیر را تعریف نماییم:
)STJST(ST#, …, JST#
• نکدننه :در ای ن م ننا JST#شننماره دا مننکم هم ننار در پننرو ه اسننت .ب نرا پننرو ه ی ننا
13ندره م تماند NULLباشد.
• حالت هددم
– نما ش ممجمديت ضعيف
• ممجمدي ن ننت ض ن ننعيف داراي شناس ن ننه يكد ن ننا ن س ن ننتل بلك ن ننه ن نندت ممي ن ننزه دارد .ب ن نراي نم ن ننا ش اي ن ن ن ن ننمع
ممجمديت در طراحي پايگاه رابطهايل يند رابطنه طراحني منيكنيم كنه در عننمان نل ندات ممجمدينت
ضعيف و كليد كانديد ممجمديت قمي كه با ن ارتبار دارد (ممجمديت شناسا)ل وجمد دارند.
• در م ننا مقاب ننل ی ننا رابط ننه ب نرا ممجمدی ننت ض ننعیف و ارتب ننار ن ب ننا ممجمدی ننت شناس ننال در ن ننر م ن
يریم .پ خماهیم داشت:
)… EMP(E#,
EEDU(E#, Title, …) → Foreign-Key: E#
•
14
نکده :کلید کاندید رابطه قم جزعی از کلید رابطه ضعیف
خماهد بمد و همچنين به عنمان کلید خارزی عمل خماهد
کرد.
• حالت ه دم
ي
– وجمد دت چندمقدار
•
•
ا نر MVAل يند ندت (سناده ينا مركن ) چندمقنداريل EIDشناسنه ممجمدينت Eو A1, A2,
…, Aiس نناير نندات تدمق ننداري ممجمدي ننت Eباش ننندل در اي ن ننمرت ب نراي نم ننا ش اي ن ن ننمع
ممجمديتل دو رابطه الزم است:
)R2(EID, MVA
در م ا مقابل باید جداو زیر را تعریف کنیم:
)… EMP(E#,
)ETEL(E#, Phone#
)… EDHIS(E#, Title, From, To,
•
15
نکده :در مرت که یا ممجمدیت mدت
چندمقدار داشده باشدل برا نمایش ای
ممجمدیت به m+1رابطه نیاز داریم.
)R1(EID, A1, A2, …, Ai
•
حالت نهم
– ارتبار IS-Aيا ”گمنهاي است از “...
• در اي ن حالننت ممجمديننت سننطی بنناالتر بننا ينند رابط نه
ن ننان داده ميش ن ننمد و ه ن ننر ن ن ننمع ممجمدي ن ننت س ن ننطی
پننايينتر ب ننا نندات خ ننا خننمد هم نراه بننا شناس نه
ا ن ننري ممجمدي ن ننت س ن ننطی ب ن نناالترل در رابط ن ننه دي ن ننري
نما ش داده خماهد شد.
•
16
در م ا روبرو جداو زیر باید تعریف ردد:
)… E(EID, A, B,
)… E1(EID, C, D,
)… E2(EID, F,
…
)En(EID, M, N, P
U
• حالت دهم
– وجمد دسده (طبقه) در ارتبار IS-A
• در اين ارتبننار وقتنني زيرنننمع دسننده (طبقننه) داريننم و نندات شناسننه زبرنننمع هننال مددنناوت
باشندل يد طرز طراحي اي است كه اي زيرنمع را با يد رابطه ان دهيم .كليند اين
رابطهل يد كليد جاي زي (شناسنه سناخدگي) اسنت و تعن وه يند ندت دي نر کنه در ن
اندادن نمع ن (از نمع كدام زبرنمع است) .هنر زبرننمع را هنم بنا
درن ر مي يريم برا
ينند رابطننه ننان منيدهيم و نندت كلينند زيرنننمع را بننه هننر ينند از رابطنههاي نناندهنده
زبرنمع ها اضافه ميكنيم.
17
• مد کری حالت دهم:
• برا نممدار روبرو رابطه ها
زیر را ایجاد م نماییم:
)E1(E1ID, …, E3ID
)E2(E2ID, …, E3ID
)E3(E3ID, E3Type
E2ID
.
.
.
E1ID
E1
E2
.
.
.
U
E3
• نکدننه :ا ننر کلینند E1و E2یکسننان باشننندل کلینند رابطننه E3همننان کلینند E1و E2
خماهد بمد و دی ر نیاز به دت E3Typeنيز ن باشد.
18
• حالت يازدهم
– ارتبار IS – A PART – OFيا ”جزئي است از “...
• در اي ن ن حالن ننتل ب ن نراي ممجمدين ننت كن ننل (شن ننامل)ل ين نند رابطن ننه و ب ن نراي هن ننر ين نند از ممجمدين ننت هن نناي جن ننزه
(م ننمم ) نيننز ينند رابطننه طراحنني ميشننمد .در رابطننه نناندهنده ممجمديننت جننزهل كلينند كاندينند رابطننه
نناندهنده ممجمديننت كننلل تعنننمان کلینند خننارزی و جزعننی از کلینند ا ننری رابطننه جننزه ورده ميشن مد و
بقيه دات اي رابطهل خا خمد ممجمديت جزه هس ند.
• برا نممدار مقابل بصمرت زیر باید رابطه ها را تعریف
کنیم:
)… E (EID,
)… E1(E1ID, EID,
)… E2(E2ID, EID,
…
19
•
حالت دوازدهم
– ب ش از يد ارتبار بين دو نمع ممجمديت
•
فننرم م نيكنيم هننر دو نننمع ممجمديننت مسنندقل هس ن ند .تعننداد رابط نههال تسنندگي بننه چننندي هننر ا رتبننار
دارد .خماهیم داشت:
•
هر ارتبار با چندي N:Mبا يد رابطه نما ش داده ميشمد.
•
نمع ممجمديت سمي Nو همه ارتبار هاي با چندي 1:Nل ا ر م اركت دو ننمع ممجمدينت در همنه
ارتبار ها الزامي باشدل را ميتمان با يد رابطه نما ش داد.
•
ا ننر م نناركت دو نننمع ممجمديننت در ينند ارتبننار 1:Nل الزامنني نباشنندل ه ننر اسننت بنراي چنننين ارتبنناطي
ي نند رابط ننه جداگان ننه طراح نني ش ننمد ك ننه نندات نل شناس ننه دو ن ننمع ممجمدي ننت و در ننمرت وج ننمدل
دات خمد ارتبار هس ند.
•
در نمرت وجنمد بن ش از يند ارتبننار 1:1و الزامني بنمدن م ناركت هننال هنر دو ننمع ممجمدينت و همننه
اي ارتبار ها را ميتمان با يد رابطه نما ش داد.
•
ا ننر م نناركت در ي نند ارتب ننار 1:1الزام نني نباش نندل ه ننر اس ننت اي ن ارتب ننار را ب ننا ي نند رابط ننه جداگان ننه
نما ش داد.
20
•
م ا برا حالت دوازدهم:
•
ب نرا نم ننمدار روب ننرو نی نناز ب ننه چه ننار ج نندو داری ننم .دو ت ننا
ب نرا دو ممجمدی ننت و ارتب ننار ه ننا 1:Nو 1:1و دو
تا برا ارتبار ها .M:N
•
ای جداو در ش ل زیر ورده شده است:
21
• حالت سيزدهم
– ارتبار سلسلهمراتبي (پدر -فرزندي)
• در تبديل اي نمع ارتبار بين ممجمديت ها به طراحي رابطهايل يد رو چنين است:
-1براي نمع ممجمديت ري هل يد رابطه در ن ر مي يريم.
-2كليد كانديد اي رابطه همان شناسه ري ه است.
-3براي هر نمع ممجمدينت فرزنند يند رابطنه در ن نر مي ينريم و كليند كانديند هنر ننمع
ممجمدين ننت فرزنن نندل تركي ن ن شناسن ننه ن نن ننمع ممجمدين ننت بن ننا كلين نند كاندين نند نن ننمع
ممجمديت پدر است.
22
• م ا برا حالت سيزدهم:
هر ممجمدیت یا
نممدار مقابل برا
در
رابطه درن ر م يریم بطمر که کلید
هر رابطهل ترکیب از کلید ا ری
ا ری
پدران ن رابطه با کلید خمد رابطه م
باشد:
)… E1(E1ID,
)… E2(E1ID, E2ID,
)… E3(E1ID, E2ID, E3ID,
…
23
• حالت چهاردهم
– تجمع (ارتبار با ارتبار)
• در اين ن حال ننتل ابد نندا نم ننمدار ERجزئ نني درون
مسدطيل اندهنده نمع ممجمدينت حا نل از
عمن ن ن ننل تجمين ن ن ننع را بن ن ن ننه رابط ن ن ن نههاي الزم تبن ن ن ننديل
م نيكنيم .س ن بننا تمجننه بننه چننندي ارتبننار ب نين
ن ن ننمع ممجمدي ن ننت م ن ننرتبط ب ن ننا ارتب ن ننار و چگ ن ننمنگي
م نناركت در ارتبننار ب ننا ارتبننارل طراحنني را كام نل
ميكنيم.
24
•
•
25
م ا برا حالت چهاردهم:
در نممدار روبرو ابددا باید رابطنه هنا داخنل مسندطیل
را طراحی کنیم و س بنه سنراط طراحنی روابنط خ نارج
مس ن نندطیل من ن ن روی ن ننم .گلین ن نند ا ن ننری رابطن ن ننه ارتب ن ننار بن ن نا
ارتبن ن ننارل کلین ن نند ا ن ن ننری ارتبن ن ننار درون مسن ن نندطیل را ب ن ن نه
هم ن نراه کلین نند خن ننمد رابطن ننه دارا خماهن نند بن ننمد .در ن یج ن ننه
خماهیم داشت: