Transcript Slide 1

‫بسم هللا الرحمن الرحيم‬
‫دانشگاه پيام نور‬
‫دانشكده فناوري اطالعات‬
‫نام درس‪ :‬اصول طراحي پايگاه دادهها‬
‫تعداد واحد‪4 :‬‬
‫نام منبع‪:‬‬
‫مفاهيم بنيادي پايگاه دادهها‬
‫مولف‪ :‬سيد محمد تقي روحاني رانكوهي‬
‫تهيه‌كننده‪:‬‬
‫دكتر احمد فراهي‬
‫فهرست جلسات‬
‫جلسه اول‪ :‬مفاهيم پايگاه دادهها‬
‫جلسه دوم‪ :‬مدلسازي معنايي دادهها‬
‫جلسه سوم‪ :‬محدوديتهاي روش ‪ER‬‬
‫جلسه چهارم‪ :‬پايگاه داده در محيط انتزاعي‬
‫جلسه پنجم‪ :‬معماري پايگاه دادهها‬
‫جلسه ششم‪ :‬سيستم مديريت پايگاه دادهها‬
‫جلسه هفتم‪ DBMS :‬در يك سيستم كامپيوتري‬
‫جلسه هشتم‪ :‬معماري سيستم پايگاه‬
‫دادهها‬
‫فهرست جلسات‬
‫جلسه نهم‪ :‬مدل رابطهاي‬
‫جلسه دهم‪ :‬قواعد جامعيت پايگاه دادهها‬
‫جلسه يازدهم‪ :‬زبان ‪SQL‬‬
‫جلسه دوازدهم‪ :‬ادامه زبان ‪SQL‬‬
‫جلسه سيزدهم‪ :‬ديد در مدل رابطهاي‬
‫جلسه چهاردهم‪ :‬طراحي پايگاه دادههاي رابطهاي‬
‫جلسه پانزدهم‪ :‬نرمالترسازي رابطهها‬
‫جلسه شانزدهم‪ :‬طراحي فيزيكي پايگاه دادهها‬
‫اهداف اين درس‬
‫در اين درس به بخش ي از مفاهيم مبنايي دانش و تكنولوژي پايگاه داده‌ها و اصول‬
‫مدلسازي و طراحي آن پرداخته مي‌شود‪ .‬پايگاه داده و عناصر اصلي محيط آن معرفي‬
‫مي‌شود‪ .‬با مدلسازي معنايي داده‌ها و محيط انتزاعي آشنا مي‌شويم‪ .‬سطوح معما ‌ريهاي‬
‫پايگاه داده‌ها بيان مي‌شود‪ .‬سيستم مديريت پايگاه داده‌ها (‪ )DBMS‬و اجزاء آن‬
‫شرح داده مي‌شود‪ .‬به انواع معماريهاي سيستم پايگاهي و مفاهيم اساس ي مدل‬
‫رابطه‌اي پرداخته مي‌شود‪ .‬با زبان ‪ SQL‬به عنوان يك زبان رابطه‌اي و همچنين با‬
‫ديدهاي رابطه‌اي آشنا مي‌شويم و در نهايت طراحي پايگاه داده‌ها به روش باال به‬
‫پايين‪ ،‬سنتز و طراحي فيزيكي را خواهيم ديد‪.‬‬
‫جلسه اول‬
‫مفاهيم پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬سيستم ذخيره و بازيابي اطالعات در معناي عام‬
‫‪ -2‬ردههاي تكنولوژيكي سيستم مديريت پايگاه دادهها‬
‫‪ -3‬داده‬
‫‪ -4‬تعريف اطالع‬
‫‪ -5‬تعريف دانش‬
‫‪ -6‬تعريف پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -7‬مراحل كلي كار در مش ي فايلينگ‬
‫‪ -8‬معايب مش ي فايلينگ‬
‫‪ -9‬مراحل كلي كار در مش ي پايگاهي‬
‫‪ -10‬عناصر محيط پايگاه دادهها‬
‫‪ -11‬انواع سختافزارهاي محيط پايگاه داده‬
‫‪ -12‬انواع نرمافزارهاي موجود در محيط پايگاه دادهها‬
‫هدفهاي كلي‪ :‬مقدمه و آشنايي با مفاهيم پايگاه داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• داده‪ ،‬اطالع‪ ،‬شناخت‪ ،‬سيستم ذخيره و بازيابي و پايگاه داده‌ها را تعريف‬
‫كند‪.‬‬
‫• رده‌هاي تكنولوژيكي پايگاه داده را بيان كند‪.‬‬
‫• رهيافتهاي ايجاد يك سيستم كاربردي را ارائه كند‪.‬‬
‫اصطالح پايگاه دادهها يكي از رايجترين اصطالحات‬
‫در دانش و فن كامپيوتر است‬
‫در اين درس دانشجويان تنها با بخش ي از مفاهيم‬
‫بنيادي دانش وفن پايگاه دادهها آشنا شده‪ ،‬آگاهي‬
‫در اين‬
‫پايهاي الزم را براي مطالعه بيشتر و يا كار ‌‬
‫زمينه كسب ميكنند‪.‬‬
‫سيستم مديريت پايگاه دادهها يكي از سيستمهاي ذخيره‬
‫و بازيابي اطالعات است‪.‬‬
‫سيستم ذخيره و بازيابي اطالعات در معناي عام‪:‬‬
‫نابرنامهساز‬
‫هر سيستمي كه به كاربر برنامهساز يا ‌‬
‫امكان دهد تا اطالعات خود را ذخيره‪ ،‬بازيابي و‬
‫پردازش كند‪.‬‬
‫ردههاي تكنولوژيكي سيستم مديريت پايگاه دادهها‬
‫‪ -1‬سيستم فايلينگ‬
‫‪ -2‬سيستم مديريت دادهها‬
‫‪ -3‬سيستم مديريت پايگاه دادهها‬
‫‪ -4‬سيستم مديريت پايگاه شناخت‬
‫‪ -5‬سيستم مديريت پايگاه دادههاي شيئگرا‬
‫‪ -6‬سيستم هوشمند مديريت پايگاه دادهها‬
‫‪ -7‬سيستم معنايي مديريت پايگاه دادهها‬
‫‪ -8‬سيستم مديريت پايگاه دادههاي زمانبند‬
‫‪ -9‬سيستم مديريت پايگاه دادههاي نيمساختمند و ناساختمند‬
‫ادامه‬
‫ردههاي تكنولوژيكي سيستم مديريت پايگاه دادهها‬
‫‪ -10‬سيستم مديريت پايگاه دادههاي بي درنگ‬
‫‪ -11‬سيستم دادهكاوي و كشف شناخت‬
‫‪ -12‬سيستم مديريت چند پايگاهي‬
‫‪ -13‬سيستم اطالعات اجرائي‬
‫‪ -14‬سيستم فعال مديريت پايگاه داده‌ها‬
‫‪ -15‬سيستم مديريت پايگاه داده‌هاي شيئ‪-‬رابطه‌اي‬
‫داده‬
‫تعريف اول‌‪ -‬نمايش ذخيرهشده اشياء فيزيكي‪،‬‬
‫چيزهاي مجرد‪ ،‬بودهها‪ ،‬رويدادها يا چيزهاي قابل‬
‫مشاهده كه در تصميمسازي بكار ميآيند‪.‬‬
‫داده‬
‫تعريف دوم‪ -‬هر مجموعهاي از بودهها‬
‫داده‬
‫تعريف سوم‪ -‬بودههاي خام كه معناي اندكي دارند‬
‫مگر اينكه به صورت منطقي سازماندهي شده‬
‫باشند‬
‫تعريف داده از ديدگاه ‪ANSI‬‬
‫نمايش بودهها‪ ،‬پديدهها‪ ،‬مفاهيم يا شناختهها به طرزي‬
‫پردازش‬
‫صوري و مناسب براي برقراري ارتباط‪ ،‬تفسير يا ‌‬
‫توسط انسان يا هر امكان خودكار‬
‫هر نمايش ي اعم از كاراكتري يا كميتهاي قياس ي كه‬
‫معنايي به آن قابل انتساب باشد‪.‬‬
‫تعريف اطالع‬
‫اطالع به دادهاي اطالق ميشود كه توسط يك‬
‫فرد يا سازمان براي تصميمگيري بكار ميرود‬
‫اطالع‪ ،‬داده پردازششده است‪.‬‬
‫اطالع عبارت است از داده سازمان يافتهاي كه‬
‫شناختي را منتقل ميكند‬
‫تعريف دانش‬
‫دانش عبارتست از نمايش نمادين‬
‫جنبه‌هايي از بخش ي از خرد جهان واقع‬
‫تعريف پايگاه دادهها‬
‫مجموعهاي است از دادههاي ذخيره شده و پايا‪ ،‬به صورت‬
‫مجتمع(يكپارچه) (نه لزوما فيزيكي‪ ،‬بلكه حداقل به طور منطقي)‪ ،‬بهم‬
‫مرتبط‪ ،‬با كمترين افزونگي‪ ،‬تحت مديريت يك سيستم كنت ‌رل متمركز‪،‬‬
‫مورد استفاده يك يا چند كاربر از يك يا بيش از يك ”سيستم كاربردي“‪،‬‬
‫به طور همزمان و اشتراكي‬
‫براي ايجاد يك سيستم كاربردي دو‬
‫رهيافت وجود دارد‪:‬‬
‫‪ -1‬رهيافت سنتي يا مش ي فايلينگ‬
‫‪ -2‬رهيافت (مش ي) پايگاهي‬
‫كاربران‬
‫نمايش سادهشده مشي فايلينگ‬
‫برنامه‌ساز‬
‫‪OS‬‬
‫‪FILES‬‬
‫‪FS‬‬
‫يا‬
‫‪DMS‬‬
‫‪OS‬‬
‫‪FILES‬‬
‫محيط‌فيزيكي‬
‫ذخيره‌‌و‌بازيابي‌اطالعات‬
‫‪FS‬‬
‫يا‬
‫‪DMS‬‬
‫برنامه‌هاي‌ايجاد‪‌،‬‬
‫كنترل‌و‌‬
‫پردازش‌فايلها‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫برنامه‌هاي‌ايجاد‪‌،‬‬
‫كنترل‌و‌‬
‫پردازش‌فايلها‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫محيط‌فايلينگ‌‬
‫منطقي‌و‌يا‌مجازي‬
‫‪U2‬‬
‫‪U3‬‬
‫اداره‌امور‌رفاهي‌دانشجويان‬
‫محيط‬
‫ذخيره‌سازي‌اطالعات‬
‫خاص‌اداره‬
‫امور‌رفاهي‪U3 :‬‬
‫‪U1‬‬
‫اداره‌امور‌فارغ‌التحصيالن‬
‫محيط‬
‫ذخيره‌سازي‌اطالعات‬
‫خاص‌اداره‬
‫فارغ‌التحصيالن‪U2 :‬‬
‫‪FILES‬‬
‫‪FS‬‬
‫يا‬
‫‪DMS‬‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫اداره‌امور‌آموزش‬
‫محيط‬
‫ذخيره‌سازي‌اطالعات‬
‫خاص‌اداره‬
‫ثبت‌نام‪U1 :‬‬
‫‪OS‬‬
‫برنامه‌هاي‌ايجاد‪‌،‬‬
‫كنترل‌و‌‬
‫پردازش‌فايلها‬
‫نابرنامه‌ساز‬
‫مراحل كلي كار در مش ي فايلينگ‬
‫ تحليل و بررس ي نيازهاي اطالعاتي و پردازش ي هر قسمت به طو ‌ر‬‫جداگانه‬
‫ اجراي مراحل كالسيك اوليه الزم براي طراحي و توليد يك سيستم‬‫كاربردي‬
‫ تعيين مشخصات هر سيستم و وظايف آن‬‫ طراحي تعدادي فايل‬‫‪ -‬نوشتن مجموعهاي از برنامههاي ايجاد‪ ،‬كنترل و پردازش فايل‬
‫ادامه‬
‫مراحل كلي كار در مش ي فايلينگ‬
‫ استفاده از يك پيكربندي سختافزاري و نرمافزاري مشخص‬‫‪ -‬انجام تستهاي الزم و تنظيم سيستم كاربردي‬
‫ ايجاد يك سيستم كاربردي براي هر قسمت و برپايي محيط فيزيكي‬‫ذخيره و بازيابي اطالعات و سيستم بهرهبرداري از آن خاص همان‬
‫قسمت‪.‬‬
‫معايب مش ي فايلينگ‬
‫‪ -1‬عدم وجود محيط مجتمع ذخيرهسازي اطالعات و عدم وجود‬
‫سيستم يكپارچه‬
‫‪ -2‬عدم وجود سيستم كنترل متمركز روي كل دادهها‬
‫‪ -3‬افزونگي‬
‫‪ -4‬عدم وجود ضوابط ايمني كارا و مطمئن‬
‫‪ -5‬خطر بروز پديده ناسازگاري دادهها‬
‫ادامه‬
‫معايب مش ي فايلينگ‬
‫‪ -6‬عدم امكان اشتراكي شدن دادهها‬
‫ي‬
‫‪ -7‬مصرف نابهينه امكانات سختافزاري و نرمافزار ‌‬
‫‪ -8‬حجم زياد برنامهسازي‌‬
‫‪ -9‬وابستگي برنامههاي كاربردي به محيط ذخيرهسازي دادهها‬
‫كاربران‬
‫برنامه‌ساز‬
‫نمايش سادهشده مشي پايگاهي‬
‫تيم‌پياده‌ساز‬
‫پايگاه‌داده‌ها‬
‫فايلهاي‌ذخيره‌شده‬
‫بهم‌مرتبط‬
‫)‪(FILES‬‬
‫محيط‌واحد‪‌،‬مجتمع‌و‬
‫اشتراكي‌ذخيره‌سازي‬
‫‪F‬‬
‫‪S‬‬
‫‪D‬‬
‫‪B‬‬
‫‪M‬‬
‫‪S‬‬
‫تعريف‌و‌كنترل‌داده‌ها‌به‌طور‌‬
‫جامع‌و‌برنامه‌هاي‌عمليات‌در‌داده‌ها‬
‫‪OS‬‬
‫نابرنامه‌ساز‬
‫تيم‌بهره‌بردار‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫تعريف‌داده‌ها‌‬
‫و‌برنامه‌هاي‌‬
‫عمليات‌در‌‬
‫داده‌ها‌)‪(AP1‬‬
‫تعريف‌داده‌ها‌و‌‬
‫برنامه‌هاي‌عمليات‌در‌‬
‫داده‌ها‌)‪(AP2‬‬
‫تعريف‌داده‌ها‌و‌‬
‫برنامه‌هاي‌عمليات‌‬
‫در‌داده‌ها‌)‪(AP3‬‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫‪U‬‬
‫‪F‬‬
‫‪I‬‬
‫كثرت‌و‌تنوع‌ديدها‌نسبت‌به‬
‫داده‌هاي‌ذخيره‌شده‬
‫محيط‌فرافايلي‬
‫مراحل كلي كار در مش ي پايگاهي‬
‫ بررس ي و تحليل نيازهاي پردازش ي و اطالعاتي همه قسمتها توسط يك گ ‌روه‬‫‪ -‬مدلسازي معنايي دادهها‬
‫ تعيين مشخصات جامع (يكپارچه) كاربردي و وظايف آن‬‫ انتخاب يك يا چند پيكربندي سخت‌افزاري‌‪-‬نرم‌افزاري‌‬‫ استفاده از يك يا چند ‪DBMS‬‬‫‪ -‬طراحي پايگاه دادهها در سطوح الزم‬
‫ادامه‬
‫مراحل كلي كار در مش ي پايگاهي‬
‫ توليد مجموعه‌اي از برنامه‌هاي ايجاد و كنترل پايگاه داده‬‫ ايجاد محيط واحد و مجتمع ذخيرهسازي و مشترك بين كاربران‬‫ طراحي و توليد واسطهاي كاربرپسند مورد نياز‬‫‪ -‬تعريف پايگاه داده هر قسمت توسط كاربر مربوطه‬
‫ طراحي برنامههاي عمليات در پايگاه داده‬‫‪ -‬بهرهبرداري واقعي از سيستم پس از تستهاي الزم‬
‫عناصر محيط پايگاه دادهها‬
‫‪ -1‬سختافزار‬
‫‪ -2‬نرمافزار‬
‫‪ -3‬كاربر ‪ -4‬داده‬
‫كاربران‬
‫سيستم‌عامل‬
‫سيستم‬
‫پايگاه‌‬
‫داده‌ها‬
‫يكجا‬
‫مديريت‬
‫پايگاه‬
‫داده‌هاي‌‬
‫ذخيره‌شده‪:‬‬
‫مجموعه‌اي‌‬
‫از‌فايلها‬
‫سخت‌افزار‌‬
‫ذخيره‌سازي‬
‫داده‌ها‬
‫پيوسته‌‬
‫(برخط)‬
‫انواع سختافزارهاي محيط‬
‫پايگاه داده‬
‫‪ -1‬سختافزار ذخيرهسازي دادهها‬
‫‪ -2‬سختافزار پردازشگر‬
‫‪ -3‬سختافزار همرسانش (ارتباط)‬
‫انواع نرمافزارهاي موجود در محيط پايگاه دادهها‬
‫‪ -1‬سيستم مديريت پايگاه دادهها (‪)DBMS‬‬
‫‪ -2‬برنامههاي كاربردي قابل اجرا در محيط ‪DBMS‬‬
‫‪ -3‬رويههاي ذخيرهشده‬
‫‪ -4‬نرمافزار شبكه‬
‫جلسه دوم‬
‫مدلسازي معنايي دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬مدلسازي معنايي دادهها‬
‫‪ -2‬انواع روشهاي مدلسازي معنايي دادهها‬
‫‪ -3‬سه مفهوم معنايي موجود در روش ‪ER‬‬
‫‪ -4‬تعريف موجوديت‬
‫‪ -5‬سه ضابطه در رابطه با تشخيص يك نوع موجوديت‬
‫‪ -6‬موجوديت مستقل و وابسته‬
‫‪ -7‬تعريف صفت‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -8‬انواع صفت و تعاريف هريك‬
‫‪ -9‬ارتباط‬
‫‪ -10‬خصوصيات نوع ارتباط‬
‫‪ -11‬نمودار ‪ER‬‬
‫‪ -12‬نمادهاي رسم نمودار ‪ER‬‬
‫‪ -13‬وضع مشاركت در ارتباط‬
‫‪ -14‬درجه آن ارتباط‬
‫‪ -15‬چندي يا ماهيت نوع ارتباط‬
‫هدفهاي كلي‪ :‬آشنايي با مدلسازي معنايي داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• مدلسازي معنايي پايگاه داده‌ها و انواع آن را بيان كند‪.‬‬
‫• روش مدلسازي ‪ ER‬و مفاهيم آن را تشريح كند‪.‬‬
‫• نمودار ‪ ER‬و نمادهاي آن را رسم كند‪.‬‬
‫مدلسازي معنايي دادهها‬
‫دادههاي ذخيرهشدني در پايگاه دادهها‬
‫ابتدا بايد در باالترين سطح انتزاع‬
‫مدلسازي معنايي شوند‪.‬‬
‫انواع روشهاي مدلسازي معنايي دادهها‬
‫روش موجوديت‪ -‬ارتباط (‪)ER‬‬
‫روش زبان عمومي مدلسازي (‪)UML‬‬
‫روش تكنيك مدلسازي شيئي (‪)OMT‬‬
‫سه مفهوم معنايي موجود در روش ‪ER‬‬
‫نوع موجوديت‬
‫صفت‬
‫ارتباط‬
‫تعريف موجوديت‬
‫هر آنچه‬
‫مفهوم كلي شيئ‪ ،‬چيز‪ ،‬پديده و به طور كلي ‌‬
‫كه ميخواهيم در موردش اطالع داشته باشيم و‬
‫شناخت خود را در موردش افزايش دهيم‪.‬‬
‫سه ضابطه در رابطه با تشخيص يك نوع موجوديت‬
‫‪ -1‬معموال نمونههايي متمايز از يكديگر دارند‪.‬‬
‫‪ -2‬معموال بيش از يك صفت دارد و كاربر به مجموعهاي از اطالعات در مو ‌رد‬
‫آن نياز دارد‪.‬‬
‫‪ -3‬معموال حالت كنشگري (فاعليت) يا حالت كنشپذيري (مفعوليت) دارد‪.‬‬
‫موجوديت مستقل و وابسته‬
‫ي)‪ ،‬موجوديتي است كه‬
‫موجوديت مستقل (قو ‌‬
‫مستقل از هر موجوديت ديگر و به خودي خود‪ ،‬در يك‬
‫محيط مشخص مطرح باشد‪.‬‬
‫موجوديت وابسته (ضعيف)‪ ،‬موجوديتي است كه‬
‫وجودش وابسته به يك نوع موجوديت ديگر است‪.‬‬
‫تعريف صفت‬
‫خصيصه يا ويژگي يك نوع موجوديت است ‌و‬
‫هر نوع موجوديت مجموعهاي از صفات دارد‪.‬‬
‫هر صفت يك نام‪ ،‬يك نوع و يك معناي‬
‫مشخص دارد‪.‬‬
‫ساده يا مركب‬
‫ي‬
‫تكمقداري يا چندمقدار ‌‬
‫انواع صفت‬
‫شناسه يا ناشناسه موجوديت‬
‫هيچمقدارپذير يا ناپذير‬
‫ذخيرهشده يا مشتق‬
‫مقدار صفت ساده از لحاظ معنايي تجزيهنشدني يا‬
‫اتوميك است‪.‬‬
‫صفت مركب از چند صفت ساده تشكيل شده‬
‫است‪.‬‬
‫صفت تكمقداري‪ ،‬صفتي است كه براي يك نم ‌ونه از‬
‫يك نوع موجوديت حداكثر يك مقدار از دامنه مقادير‬
‫را ميگيرد‬
‫صفت چندمقداري بيش از يك مقدار از دامنه‬
‫مقادير ميگيرد‪.‬‬
‫صفت شناسه موجوديت كه گاه به آن‬
‫كليد هم گفته ميشود‪ ،‬دو ويژگي دارد‪:‬‬
‫‪ -1‬يكتايي مقدار دارد‪.‬‬
‫‪ -2‬حتي االمكان طول مقاديرش كوتاه است‪.‬‬
‫صفت هيچ مقدارپذير‬
‫هيچ مقدار يعني مقدار ناشناخته‪ ،‬مقدار‬
‫غيرقابل اعمال‪ ،‬مقدار تعريفنشده‪.‬‬
‫اگر مقدار يك صفت در يك يا بيش از يك نمونه از‬
‫يك نوع موجوديت‪ ،‬برابر با هيچمقادر باشد‪ ،‬آن‬
‫صفت هيچمقدارپذير است‪.‬‬
‫صفت ذخيرهشده و مشتق‬
‫صفت ذخيرهشده صفتي است كه‬
‫مقاديرش در پايگاه دادهها ذخيره شده‬
‫باشد‪.‬‬
‫صفت مشتق‪ ،‬صفتي است كه مقاديرش در پايگاه‬
‫دادهها ذخيره نشده باشد‪ ،‬بلكه حاصل يك پردازش‬
‫روي فقرههايي از دادههاي ذخيره شده باشد‪.‬‬
‫ارتباط‬
‫تعريف‪ -‬اندركنش (تعامل) بين دو يا بيش از دو نوع‬
‫موجوديت است و ماهيتا نوعي بستگي بين انواع‬
‫موجوديتهاست‬
‫خصوصيات نوع ارتباط‬
‫‪ -1‬هر ارتباط يك نام دارد‬
‫‪ -2‬هر ارتباط يك معناي مشخص دارد و اين معنا با‬
‫معناي هر ارتباط ديگر متفاوت است‪.‬‬
‫‪ -3‬هر ارتباط نمونههايي دارد‪.‬‬
‫نمودار ‪ER‬‬
‫نموداري است كه سه مفهوم اساس ي مدل ‪ ،ER‬يعني‬
‫نوع موجوديت‪ ،‬صفت و ارتباط نمايش داده ميشوند‬
‫نمادهاي رسم نمودار ‪ER‬‬
‫نوع موجوديت‬
‫نوع موجوديت ضعيف‬
‫نوع ارتباط‬
‫نوع ارتباط با موجوديت ضعيف‬
‫مشاركت نوع موجوديت در نوع ارتباط‬
‫نمادهاي رسم نمودار ‪ER‬‬
‫مشاركت الزامي‬
‫صفت‬
‫صفت شناسه اول‬
‫صفت شناسه دوم‬
‫صفت شناسه مركب‬
‫صفت چندمقداري‬
‫نمادهاي رسم نمودار ‪ER‬‬
‫صفت مركب‬
‫صفت مشتق‬
‫چندي ارتباط‬
‫‪ 1‬به ‪N‬‬
‫‪ 1‬به ‪1‬‬
‫‪ M‬به ‪N‬‬
‫ارتباط ”گونهاي است از“‬
‫‪N‬‬
‫‪E2‬‬
‫‪1‬‬
‫‪M‬‬
‫‪E2‬‬
‫‪R‬‬
‫‪1‬‬
‫‪E1‬‬
‫‪1‬‬
‫‪N‬‬
‫‪E1‬‬
‫وضع مشاركت در ارتباط‬
‫مشاركت يك نوع موجوديت در يك نوع ارتباط را الزامي‬
‫گويند‪ ،‬اگر تمام نمونههاي آن نوع موجوديت در آن نوع‬
‫الزامي‬
‫ارتباط شركت كنند‪ .‬در غير اين صورت مشاركت غير ‌‬
‫است‪.‬‬
‫درس‬
‫انتخاب‬
‫نمايش مشاركت الزامي‬
‫دانشجو‬
‫تعداد شركتكنندگان در يك ارتباط را درجه آن ارتباط ميگويند‪.‬‬
‫استاد‬
‫نمره‬
‫درس‬
‫انتخاب‬
‫سال‌آموزشي‬
‫ارتباط بين سه موجوديت‬
‫دانشجو‬
‫ترم‬
‫چندي يا ماهيت نوع ارتباط عبارتست از چگونگي تناظر بين دو مجموعه نمونههاي‬
‫آن دو نوع موجوديت‪.‬‬
‫يك به يك ‪1:1‬‬
‫انواع چندي ارتباط‪:‬‬
‫يك به چند ‪1:N‬‬
‫چند به چند ‪N:M‬‬
‫نمايش چندي ارتباط‬
‫سال‌آموزشي‬
‫نمره‬
‫درس‬
‫‪M‬‬
‫ترم‬
‫‪N‬‬
‫دانشجو‬
‫انتخاب‬
‫‪N‬‬
‫‪1‬‬
‫حذف‬
‫جلسه سوم‬
‫محدوديتهاي روش ‪ER‬‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬مشكالت روش ‪(ER‬سه نوع دام)‬
‫‪ -2‬تجزيه و تركيب‬
‫‪ -3‬تخصيص و تعميم‬
‫‪ -4‬تجمع‬
‫‪ -5‬وراثت صفت‬
‫‪ -6‬دستهبندي‬
‫‪ -7‬مراحل مدلسازي معنايي دادهها‬
‫‪ -8‬روش مدلسازي ‪UML‬‬
‫‪ -9‬نمادها‬
‫‪ -10‬خصوصيات کلي روش مدلسازي معنايي داده ها‬
‫هدفهاي كلي‪ :‬مشكالت و محدوديتهاي روش ‪ER‬‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• مشكالت روش ‪( ER‬انواع دامها) را تشريح كند‪.‬‬
‫• محدوديتهاي روش ‪ ER‬را كه در روش ‪ EER‬برطرف شدند‪ ،‬بيان كند‪.‬‬
‫• مراحل مدلسازي معنايي داده‌ها را توصيف كند‪.‬‬
‫• مدلسازي ‪ UML‬و نمادهاي به كار رفته در آن را شرح دهد‪.‬‬
‫• خصوصيات كلي مدلسازي معنايي داده‌ها را بيان كند‪.‬‬
‫مشكالت روش ‪ER‬‬
‫‪ -1‬دام حلقه‌اي‬
‫هنگامي ايجاد ميشود كه با داشتن مثال سه ارتباط دو موجوديتي‪،‬‬
‫وجود يك ارتباط سه موجوديتي را نتيجه بگيريم در وضعي كه اين‬
‫استنتاج درست نباشد‬
‫مشكالت روش ‪ER‬‬
‫ي)‬
‫‪ -2‬دام چندشاخه (چتر ‌‬
‫اين نوع دام وقتي ايجاد مي‌شود كه بين يك نوع‬
‫موجوديت ‪ E‬و هريك از ديگر انواع موجوديت ‪ G ،F‬و‬
‫‪ ...‬ارتباط ‪ 1:N‬با مشاركت الزامي وجود داشته باشد‪،‬‬
‫ولي ارتباط بين مثال ‪ F‬و ‪ ،G‬در مدلسازي ديده نشده‬
‫باشد‪.‬‬
‫مشكالت روش ‪ER‬‬
‫‪ -3‬دام شكاف‬
‫هنگامي ايجاد ميشود كه بين دو نوع موجوديت ‪ E‬و ‪ ،F‬يك ارتباط‬
‫باچندي ‪ 1:N‬و مشاركت الزامي وجود داشته باشد‪ ،‬ولي ‪ F‬خود با نوع‬
‫موجوديت ‪ ،G‬ارتباط ‪ 1:N‬با مشاركت غيرالزامي داشته باشد‪ .‬به دليل‬
‫غير الزامي بودن ارتباط بين ‪ F‬و ‪ ،G‬نمي‌توان همه اطالعات‬
‫دوموجوديتي در مورد ارتباط بين نمونه‌هاي دو نوع موجوديت ‪ E‬و ‪ G‬را‬
‫بدست آورد‬
‫تجزيه‬
‫تركيب‬
‫محدوديتهاي روش ‪ ER‬كه در‬
‫روش ‪ EER‬برطرف گرديدند‪:‬‬
‫تخصيص‬
‫تعميم‬
‫تجمع‬
‫وراثت صفت‬
‫تجزيه‬
‫تجزيه يا جداسازي يعني يك شيئ كل را به اجزاء تشكيل‌دهنده آن تقسيم‬
‫كنيم‪ .‬شيئ كل صفات‪ ،‬ساختار و رفتار خود را دارد و هريك از اجزاء نيز‬
‫صفات‪ ،‬ساختار و رفتار خاص خود را دارند‪ .‬شيئ كل شامل اجزاء خود است ‌و‬
‫بين شيئ كل و اجزايش‪ ،‬ارتباط شمول وجود دارد‪ .‬به اين نوع ارتباط در‬
‫‪ ،EER‬ارتباط ”جزئي است از ‪ “...‬گفته مي‌شود‪.‬‬
‫تركيب‬
‫تركيب‪ ،‬عكس عمل تجزيه است و در اين عمل‪ ،‬با داشتن‬
‫(… ‪ Ei(i=1 , 2 ,‬يك نوع موجوديت ‪ E‬را بازشناس ي مي‌كنيم‬
‫به نحوي كه ‪Ei‬ها اجزاء تشكيل‌دهنده آن باشند‬
‫مثال تجزيه و تركيب‬
COMPUTER
Mother Board
. . .
Monitor
RAM
Hard
. . .
. . .
‫تخصيص‬
‫تخصيص عبارتست از مشخص كردن گونه‌هاي خاص يك شيئ براساس يك يا چند‬
‫ضابطه مشخص‪ ،‬مثال اگر شيئ موجود زنده را درنظر بگيريم‪ ،‬سه گونه خاص آن‬
‫عبارتند از‪ :‬انسان‪ ،‬حيوان و نبات‪ .‬در روش ‪ EER‬هر يك نوع موجوديت مي‌تواند‬
‫خود زيرنوع موجوديتهايي داشته باشد‪ .‬بين هر زيرنوع و زبرنوع ارتباط ”گ ‌ونه‌اي است‬
‫از ‪ “...‬وجود دارد‪.‬‬
‫تعميم‬
‫تعميم‪ ،‬عكس عمل تخصيص است‪ ،‬به اين معنا كه با‬
‫داشتن زيرنوعهاي خاص‪ ،‬صفات مشترك بين آنها ‌را در‬
‫يك مجموعه صفات براي يك زبرنوع موجوديت درنظر‬
‫مي‌گيريم‬
‫مثال تخصيص و تعميم‬
‫شماره‬
‫زبرنوع‬
‫دانشجو‬
‫دانشجوي دوره‬
‫كارشناس ي ارشد‬
‫دانشجوي دوره‬
‫كارشناس ي‬
‫دانشجوي دوره‬
‫دكترا‬
‫‪...‬‬
‫‪...‬‬
‫صفات مشترك‬
‫نام و نام‬
‫خانوادگي‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪...‬‬
‫‪...‬‬
‫صفات خاص‬
‫صفات خاص‬
‫صفات خاص‬
‫زيرنوعها‬
‫وراثت چندگانه‬
‫يك زيرنوع موجوديت‪ ،‬مي‌تواند در عين حال زيرنوع‬
‫ترتيب‬
‫يك زبرنوع موجوديت ديگر هم باشد‪ .‬با اين ‌‬
‫مي‌توان مفهوم وراثت چندگانه را در روش ‪EER‬‬
‫نمايش داد‪.‬‬
‫مثال وراثت چندگانه‬
‫دانشجو‬
‫دانشجوي دوره شبانه‬
‫دانشجوي دوره روزانه‬
‫دانشجوي دوره كارشناس ي‬
‫دانشجوي دوره كارشناس ي ارشد‬
‫دستهبندي‬
‫يك زيرنوع مي‌تواند زيرنوع بيش از يك زبرنوع باشد‪.‬‬
‫ممكن است زبرنوعهاي اين زيرنوع‪ ،‬از يك نوع نباشند‪ .‬به‬
‫اين زيرنوع اصطالحا دسته (طبقه) گويند‪ .‬براي نمايش‬
‫دسته‪ ،‬از نماد ‪ U‬استفاده مي‌شود‪.‬‬
‫دسته‌بندي‬
E1ID
E2ID
E1
E2
U

E3
‫تجمع‬
‫تجمع عبارتست از ساختن يك نوع موجوديت جديد با ديدن د ‌و يا‬
‫بيش از دو نوع موجوديت‪ ،‬كه خود باهم در يك ارتباط شركت‬
‫دارند‪ ،‬به صورت يك نوع موجوديت واحد‪ .‬در واقع مجموعه‌اي از‬
‫موجوديتهاي مرتبط را باهم مجتمع كرده و به عنوان يك نوع‬
‫موجوديت واحد‪ ،‬درنظر مي‌گيريم و اين نوع موجوديت واحد خود‬
‫مي‌تواند با نوع موجوديت ديگري ارتباط داشته باشد‪.‬‬
‫نمايش تجمع‬
‫‪Ek‬‬
‫‪E2‬‬
‫‪R1‬‬
‫‪R2‬‬
‫‪E3‬‬
‫‪E1‬‬
‫مراحل مدلسازي معنايي دادهها‬
‫‪ -1‬مطالعه‪ ،‬تحليل و شناخت محيط‬
‫‪ -2‬برآورد خواسته‌ها و نيازهاي اطالعاتي و پردازش ي همه‬
‫كاربران و تشخيص محدوديتهاي معنايي‬
‫‪ -3‬بازشناس ي انواع موجوديتهاي مطرح و تعيين وضع هريك‬
‫‪ -4‬تعيين مجموعه صفات هر نوع موجوديت‬
‫ادامه‬
‫مراحل مدلسازي معنايي دادهها‬
‫‪ -5‬بازشناس ي انواع ارتباطات بين انواع موجوديتها‪ ،‬تشخيص‬
‫نوع مشاركت و چندي ارتباط‬
‫‪ -6‬رسم نمودار ‪ER‬‬
‫‪ -7‬فهرست كردن پرسشهايي كه پاسخ آنها از نمودار ‪ER‬‬
‫بدست مي‌آيد‪.‬‬
‫‪ -8‬وارس ي مدلسازي انجام شده تا اطمينان حاصل شود كه‬
‫مدلسازي پاسخگوي نياز كاربران است‪.‬‬
‫روش مدلسازي ‪UML‬‬
‫در اين روش از چند نمودار براي نمايش مدلسازي و‬
‫طراحي نرم‌افزار استفاده مي‌شود‬
‫ي‪:‬‬
‫مفاهيم اصلي در اين مدلساز ‌‬
‫• رده‬
‫• صفت‬
‫• بستگي‬
‫تناظر بين مفاهيم ‪ UML‬و مفاهيم ‪EER‬‬
‫مفهوم در ‪UML‬‬
‫مفهوم در ‪EER‬‬
‫رده‬
‫نوع موجوديت‬
‫شيئ‬
‫نمونه موجوديت‬
‫صفت‬
‫صفت‬
‫بستگي‬
‫ارتباط‬
‫پيوند‬
‫نمونه ارتباط‬
‫بستگي انعكاس ي‬
‫ارتباط بازگشتي‬
‫بستگي مقيد‬
‫نوع موجوديت ضعيف‬
‫ميدان ساختمند‬
‫صفت مركب‬
‫صفت پيوند‬
‫صفت ارتباط‬
‫چندي بستگي‬
‫چندي ارتباط‬
‫نمادها‬
‫• رده با يك مربع يا مستطيل نشان داده مي‌شود وبه‬
‫شكل زير به سه قسمت تقسيم مي‌شود‪:‬‬
‫نام رده‬
‫نام صفات‬
‫پردازشها‬
‫نمادها‬
‫• بستگي بين دو رده‪ ،‬به صورت يك خط متصل‌كننده دو‬
‫رده نمايش داده مي‌شود و نام ارتباط روي خط نوشته‬
‫مي‌شود‪.‬‬
‫• تجمع به صورت زير نشان داده مي‌شود‪:‬‬
‫شيئ جزء‬
‫شيئ كل‬
‫• چندي بستگي به صورت ‪ min…max‬نوشته‬
‫مي‌شود‪ .‬اگر به جاي ‪ max‬عالمت ستاره باشد‪ ،‬به اين‬
‫معنا است كه مقدار ‪ max‬محدوديت ندارد‪.‬‬
‫• صفت چندمقداري به صورت يك رده جداگانه‬
‫نشان داده مي‌شود‪ ،‬ولي فاقد قسمت مربوط به‬
‫پردازش است‪.‬‬
‫• نام ميدان بعد از نام صفت نوشته مي‌شود و بين اين دو‬
‫نام عالمت ‪ :‬گذاشته مي‌شود‪.‬‬
‫• صفت پيوندي در يك مربع (مستطيل) نوشته مي‌ش ‌ود و‬
‫اين مربع با خط‌چين به خط نشان‌دهنده بستگي متصل‬
‫مي‌شود‪ .‬نام پيوند و نام صفات پيوند در دو قسمت از اين‬
‫مربع گذاشته مي‌شود‪.‬‬
‫نمايش صفت پيوند در ‪UML‬‬
‫نام رده‬
‫نام صفت‬
‫نام رده‬
‫‪ Min…max‬نام بستگي ‪min…max‬‬
‫پردازشها‬
‫نام صفت‬
‫پردازشها‬
‫نام بستگي‬
‫نام صفات‬
‫خصوصيات کلي روش مدلسازي معنايي دادهها‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫گويايي‬
‫صوري بودن‬
‫سادگي مفاهيم‬
‫قابليت نمايش نموداري‬
‫ايجاز‬
‫جامع بودن مفاهيم‬
‫قابليت نمايش ساختار‪ ،‬حالت و رفتار نوع موجوديت‬
‫گسترش‌پذيري‌‬
‫جلسه چهارم‬
‫پايگاه داده در محيط انتزاعي‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬پايگاه دادهها در محيط انتزاعي‬
‫‪ -2‬سطوح محيط انتزاعي‬
‫‪ -3‬گونههاي موجود ساختار دادهاي‬
‫‪ -4‬مفهوم ساختار دادهاي در سطوح مختلف پايگاه دادهها‬
‫‪ -5‬ساختار دادهاي رابطهاي‬
‫‪ -6‬شماي پايگاه جدولي‬
‫‪ -7‬عمليات در پايگاه جدولي‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -8‬عملگرهاي جبر رابطهاي‬
‫‪ -9‬برخي ويژگيهاي ساختار دادهاي جدولي‬
‫‪ -10‬ساختار دادهاي سلسلهمراتبي‬
‫‪ -11‬برخي ويژگيهاي ساختار دادهاي سلسلهمراتبي‬
‫‪ -12‬ساختار دادهاي شبكهاي‬
‫‪ -13‬مجموعه كوداسيل‬
‫‪ -14‬برخي ويژگيهاي ساختار دادهاي شبكهاي‬
‫هدفهاي كلي‪ :‬آشنايي با پايگاه داده‌ در محيط انتزاعي‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• پايگاه داده در محيط انتزاعي و سطوح اين محيط را بيان كند‪.‬‬
‫• ساختار داده‌اي رابطه‌اي و ويژگيهاي آن را بيان كند‪.‬‬
‫• ساختار داده‌اي شبكه‌اي و ويژگيهاي آن را بيان كند‪.‬‬
‫• ساختار داده‌اي سلسله‌مراتبي و ويژگيهاي آن را بيان كند‪.‬‬
‫پايگاه دادهها در محيط انتزاعي‬
‫در مقوله پايگاه دادهها وقتي از محيط انتزاعي سخن‬
‫ميگوييم‪ ،‬منظور محيطي است فراتر از محيط‬
‫فايلينگ منطقي و فايلينگ فيزيكي‪ .‬مفاهيمي كه در اين‬
‫محيط مطرح ميشوند بايد از جنبههاي فايلينگ‬
‫پايگاه مستقل و ماهيتا انتزاعي باشند‪.‬‬
‫سطوح محيط انتزاعي‬
‫خرد جهان واقع‬
‫باالترين سطح انتزاع‬
‫مدل معنايي پايگاه داده ها‬
‫طرح منطقي پايگاه داده ها در‪:‬‬
‫سطوح انتزاعي در‬
‫پايگاه داده ها‬
‫سطح خارجي‬
‫سطح ادراکي‬
‫محيط انتزاعي‬
‫ساختار دادهاي امكاني است براي نشان دادن دادههاي در‬
‫مورد انواع موجوديتها و انواع ارتباطات بين آنها‬
‫هر ساختار دادهاي حداقل يك عنصر ساختاري اساس ي دارد‪.‬‬
‫پايگاه دادهها در محيط انتزاعي‪ ،‬گردايهاي است از‬
‫نمونههاي متمايز عنصر (عناصر) ساختاري اساس ي يك‬
‫ساختار دادهاي مشخص‪.‬‬
‫گونههاي موجود ساختار دادهاي‬
‫ ساختار دادهاي رابطهاي‬‫ ساختار دادهاي سلسلهمراتبي‬‫ ساختار دادهاي شبكهاي‬‫ ساختار دادهاي جعبهاي‬‫‪ -‬ساختار دادهاي هايپرگرافي‬
‫‪ -‬ساختار دادهاي ليستهاي وارون‬
‫مفهوم ساختار دادهاي در سطوح‬
‫مختلف پايگاه دادهها‬
‫‪E.DS‬‬
‫‪C.DS‬‬
‫‪I/P.DS‬‬
‫ساختار‌داده‌اي‬
‫داخلي‪/‬فيزيكي‬
‫ساختار‌داده‌اي‌ادراكي‬
‫ساختار‌داده‌اي‌خارجي‬
‫ساختار دادهاي رابطهاي‬
‫رابطه مفهومي رياض ي است‪ .‬اما از ديد كاربر‪ ،‬رابطه‬
‫نمايش ي جدولي دارد‪.‬‬
‫مفاهيم ساختار جدولي عبارتند از‪:‬‬
‫جدو ‌ل‬
‫سطر‬
‫ستو ‌ن‬
‫عنصر ساختاري اساس ي در اين ساختار دادهاي‪ ،‬جدول است‪.‬‬
‫شماي پايگاه جدولي‬
‫شماي پايگاه داده‌ها عبارتست از تعريف (توصيف)‬
‫ساختهاي انتزاعي طراحي‌شده و نوعي برنامه است شامل‬
‫دستورات تعريف داده‌ها و كنترل داده‌ها‪ ،‬و دستورات‬
‫عمليات در داده‌ها در آن وجود ندارد‪.‬‬
‫عمليات در پايگاه جدولي‬
‫درج (‪)INSERT‬‬
‫حذف (‪)DELETE‬‬
‫بهنگامسازي (‪)UPDATE‬‬
‫بازيابي (‪)SELECT‬‬
‫مثال درج يك نمونه دانشجو‬
INSERT
INTO STT
VALUES(‘7413673’,’AHMADI’,’bs’,’Comp’,’D222’)
‫مثال حذف يك نمونه درس‬
DELETE
FROM COT
WHERE COID=‘COM777’
‫مثال حذف چند سطر‬
‫‪DELETE‬‬
‫‪FROM STT‬‬
‫’‪WHERE STDEG=‘ms‬‬
‫با اين دستور مشخصات دانشجويان دوره كارشناس ي ارشد از‬
‫جدول ‪ STT‬حذف ميشود‬
‫مثال بهنگامسازي تك سطر‬
‫‪UPDATE COT‬‬
‫’‪SET COID=‘Com303‬‬
‫;’‪WHERE COID=‘Com202‬‬
‫با اين دستور شماره درس ‪ Com202‬عوض ميشود‪.‬‬
‫مثال بهنگامسازي چند سطر‬
‫‪UPDATE COT‬‬
‫’‪SET CREDIT=‘1‬‬
‫;’‪WHERE COTYPE=‘Lab‬‬
‫با اين دستور‪ ،‬تعداد واحد تمام درسهاي آزمايشگاهي‪ ،‬يك ميشود‪.‬‬
‫مثال بازيابي‬
‫‪SELECT DOID‬‬
‫‪FROM STCOT‬‬
‫’‪WHERE STID=‘76140444‬‬
‫با اين دستورشماره درسهاي يك دانشجو بازيابي ميش ‌ود‪.‬‬
‫عملگرهاي جبر رابطهاي كه براي بازيابي از محيط جدولي‬
‫بكار ميروند‪:‬‬
‫‪ -1‬عملگر گزينش (تحديد) ‪ :RESTRICT‬زيرمجموعهاي افقي‬
‫(تعدادي سطر) را بازيابي ميكند‪.‬‬
‫‪ -2‬عملگر پرتو ‪ :PROJECT‬زيرمجموعهاي عمودي (تعدادي‬
‫ستو ‌ن) را بازيابي ميكند‪.‬‬
‫‪ -3‬عملگر پيوند ‪ :JOIN‬دو جدول را بهم پيوند ميزند‪ ،‬يعني‬
‫سطرهايي كه شرايط مورد نظر را داشته باشند‪ ،‬با يكديگر پيوند‬
‫ميشوند‪.‬‬
‫برخي ويژگيهاي ساختار دادهاي جدولي‬
‫‪ -1‬از نظر كاربر نمايش سادهاي دارد‪.‬‬
‫‪ -2‬محيطش مسطح است‪.‬‬
‫‪ -3‬عنصر ساختاري اساس ي آن جدول است‪.‬‬
‫‪ -4‬همه چيز با فقره دادههاي ساده نمايش داده ميشود‪.‬‬
‫‪ -5‬ارتباطات با چنديهاي مختلف در آن قابل نمايش است‪.‬‬
‫‪ -6‬منطق بازيابي آن ساده است‪.‬‬
‫‪ -7‬ساختار منطقي دستور بازيابي آن ساده است‪.‬‬
‫‪ -8‬براي پرسشهاي قرينه‪ ،‬رويه پاسخگوي قرينه دارد‪.‬‬
‫‪ -9‬مبناي تئوريك قوي دارد‪.‬‬
‫ساختار دادهاي سلسلهمراتبي‬
‫عناصر ساختاري اساس ي‬
‫‪ -2‬نوع پيوند پدر‪ -‬فرزندي‬
‫‪ -1‬نوع ركورد‬
‫نوع ركورد براي نمايش نوع موجوديت به كار ميرود‪.‬‬
‫ارتباط بين دو نوع موجوديت به وسيله پيوند پدر–فرزندي نمايش داده ميشود‪.‬‬
‫‪N‬‬
‫‪V‬‬
‫‪T‬‬
‫‪P‬‬
‫‪Y‬‬
‫‪M‬‬
‫‪U‬‬
‫برخي ويژگيهاي ساختار دادهاي سلسلهمراتبي‬
‫‪ -1‬سادگي نمايش ساختار جدولي را ندارد‪.‬‬
‫‪ -2‬مبناي رياض ي ندارد‪.‬‬
‫‪ -3‬دو عنصر ساختاري اساس ي دارد‪.‬‬
‫‪ -4‬ارتباط يك به چند را نمايش ميدهد‪.‬‬
‫‪ -5‬نمايش ارتباط چند به چند در آن دشوار است‪.‬‬
‫‪ -6‬ساخت منطقي رويه بازيابي آن به سادگي منطق رويه بازيابي در‬
‫ساختار جدولي نيست‪.‬‬
‫ادامه‬
‫برخي ويژگيهاي ساختار دادهاي سلسلهمراتبي‬
‫‪ -7‬در عمليات ذخيره‌سازي مشكالتي دارد‪.‬‬
‫‪ -8‬تقارن ساختار جدولي را ندارد‪.‬‬
‫‪ -9‬تعدادي قاعده جامعيت ذاتي دارد‪.‬‬
‫‪ -10‬در مواقعي كه در ذخيرهسازي نمونههاي فرزند‪ ،‬افزونگي پديد‬
‫آيد‪ ،‬پايگاه در معرض ناسازگاري قرار ميگيرد‪.‬‬
‫ساختار دادهاي شبكهاي‬
‫عناصر ساختاري اساس ي‬
‫‪ -2‬نوع مجموعه‬
‫‪ -1‬نوع ركورد‬
‫نوع ركورد براي نمايش نوع موجوديت به كار ميرود‪.‬‬
‫نوع مجموعه براي نمايش ارتباط ‪ 1:N‬بين دو (چند) نوع موجوديت‬
‫به كار ميرود‪.‬‬
‫‪A‬‬
‫‪D‬‬
‫‪B‬‬
‫‪C‬‬
‫‪G‬‬
‫‪H‬‬
‫‪F‬‬
‫‪E‬‬
‫نوع مجموعه (مجموعه كوداسيل) از سه جزء تشكيل‬
‫شده است‪:‬‬
‫‪ -1‬نام مجموعه‬
‫‪ -2‬يك نوع ركورد مالك‬
‫‪ -3‬يك نوع ركورد عضو‬
‫يك نوع مجموعه كوداسيل‬
‫مالك‬
‫‪DEPT‬‬
‫‪…..‬‬
‫عضو‬
‫‪E-TERM‬‬
‫‪DEID‬‬
‫‪STID‬‬
‫‪…..‬‬
‫‪STID‬‬
‫برخي ويژگيهاي ساختار دادهاي شبكهاي‬
‫‪ -1‬سادگي ظاهري ساختار دادهاي جدولي را ندارد‪.‬‬
‫‪ -2‬مبناي رياض ي ندارد‪.‬‬
‫‪ -3‬دو عنصر ساختاري اساس ي دارد‪.‬‬
‫‪ -4‬ماهيتا خاص نمايش ارتباطات ”يك به چند“ نيست‪.‬‬
‫‪ -5‬ساخت منطقي دستور بازيابي آن پيچيدهتر از ساختارهاي‬
‫ديگر است‪.‬‬
‫ادامه‬
‫برخي ويژگيهاي ساختار دادهاي شبكهاي‬
‫‪ -6‬مثل ساختار دادهاي جدولي تقارن دارد‪.‬‬
‫‪ -7‬خطر بروز ناسازگاري دادهها نسبت به ساختار سلسلهمراتبي‪،‬‬
‫كمتر است‪.‬‬
‫‪ -8‬قواعد جامعيت ذاتي دارد‪.‬‬
‫‪ -9‬به علت حجم زياد اشارهگرها‪ ،‬ايجاد يا اصالح آنها ميتواند‬
‫سبب بروز فزونكاري در سيستم شود‪.‬‬
‫‪ -10‬بعض ي آنوماليهاي مدل سلسله‌مراتبي در عمليات ذخيره‌سازي را‬
‫ندارد‪.‬‬
‫جلسه پنجم‬
‫معماري پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬معماری پشنهادی ‪ANSI‬‬
‫‪ -2‬ديد ادراكي (مفهومي)‬
‫‪ -3‬ديد خارجي‬
‫‪ -4‬ديد داخلي‬
‫‪ -5‬سطوح معماري در محيط ناپايگاهي و محيط پايگاهي و نقش‬
‫‪ DBMS‬در ايجاد‪ ،‬مديريت و پردازش فايلها‬
‫‪ -6‬كاربر‬
‫‪ -7‬زبان ميزبان‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -8‬نقش افزايش تعداد زبانهاي ميزبان مورد پذيرش ‪DBMS‬‬
‫‪ -9‬زبان دادهاي فرعي‬
‫‪ -10‬دستورهاي ‪ DSL‬براي سه سطح معماري پايگاه دادهها‬
‫‪ -11‬تقسيمبندي زبان دادهاي فرعي از نظر نياز به زبان ميزبان‬
‫‪ -12‬روند كلي مرحله كامپايل برنامه دوزباني‬
‫‪ -13‬ويژگيهاي زبان دادهاي فرعي‬
‫هدفهاي كلي‪ :‬آشنايي با معماري پايگاه داده‌‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• معماري پايگاه داده‌ها را تشريح كند‪.‬‬
‫• ديدهاي ادراكي‪ ،‬خارجي و داخلي را توضيح دهد‪.‬‬
‫• سطوح معماري در محيط ناپايگاهي و پايگاهي را مقايسه كند‪.‬‬
‫• كاربر‪ ،‬زبان ميزبان‪ ،‬زبان داده‌اي فرعي و ويژگيهاي آن را بيان نمايد‪.‬‬
‫معماري پايگاه دادهها‬
‫معماري پشنهادي ‪ANSI‬‬
‫‪D‬‬
‫‪B‬‬
‫‪M‬‬
‫‪S‬‬
‫کاربر ‪i‬‬
‫‪HL +‬‬
‫‪DSL‬‬
‫ديد خارجي‬
‫‪j‬‬
‫کاربر ‪1‬‬
‫کاربر ‪2‬‬
‫‪HL +‬‬
‫‪HL +‬‬
‫‪DSL‬‬
‫‪DSL‬‬
‫ديد خارجي‬
‫ديد خارجي‬
‫‪1‬‬
‫‪1‬‬
‫سطح‬
‫ادراکي‬
‫ديد ادراکي (مفهومي)‬
‫‪OS‬‬
‫سطح داخلي‬
‫ديد داخلي‬
‫فايل‬
‫‪K‬‬
‫فايل ‪2‬‬
‫سطح‬
‫خارجي‬
‫فايل ‪1‬‬
‫سطح فيزيکي‬
‫سطوح‬
‫انتزاعي‬
‫‪D‬‬
‫‪B‬‬
‫‪A‬‬
‫ديد ادراكي (مفهومي)‬
‫‪ -1‬ديد طراح پايگاه داده‌ها نسبت به داده‌هاي ذخيره‌شده است‪.‬‬
‫‪ -2‬جامع است‪.‬‬
‫‪ -3‬در يك محيط انتزاعي مطرح است‪.‬‬
‫‪ -4‬با عناصر ساختاري اساس ي همان ساختار داده‌اي طراحي مي‌شود‪.‬‬
‫‪ -5‬شماي ادراكي نوعي برنامه است حاوي دستورات تعريف و كنترل داده‌ها‪.‬‬
‫سطح ادراكي در واقع همين شماي ادراكي است‪.‬‬
‫‪ -6‬شماي ادراكي به سيستم داده مي‌شود و در كاتالوگ سيستم نگهداري‌‬
‫مي‌شود‪.‬‬
‫ديد خارجي‬
‫‪ -1‬ديد كاربر خاص نسبت به داده‌هاي ذخيره‌شده در پايگاه داده است‪.‬‬
‫‪ -2‬جزئي است‪.‬‬
‫‪ -3‬در سطح انتزاعي مطرح است‪.‬‬
‫‪ -4‬روي ديد ادراكي طراحي و تعريف مي‌شود‪.‬‬
‫‪ -5‬شماي خارجي نوعي برنامه است حاوي دستورات تعريف و كنترل داده‌ها در‬
‫سطح خارجي كه توسط كاربر اين سطح نوشته مي‌شود‪.‬‬
‫ادامه‬
‫ديد خارجي‬
‫‪ -6‬به تعريف مجموعه ديدهاي خارجي كاربر‪ ،‬سطح خارجي گفته‬
‫مي‌شود‪.‬‬
‫‪ -7‬هر كاربر مي‌تواند تعدادي ديد داشته باشد‪.‬‬
‫‪ -8‬چند كاربر مي‌توانند در يك ديد مشترك باشند‪.‬‬
‫ديد داخلي‬
‫‪ -1‬ديد ‪ DBMS‬و طراح پايگاه داده‌ها است و در سطحي پايين‌تر از سطح‬
‫ادراكي‪ ،‬نسبت به كل داده‌هاي ذخيره‌شده است‪.‬‬
‫‪ -2‬در سطح فايلينگ منطقي مطرح است‪.‬‬
‫‪ -3‬مبتني بر يك ساختار فايل است كه با نظر طراح پايگاه طراحي مي‌شود و‬
‫به طراحي‪ ،‬طراحي فيزيكي موسوم است‪.‬‬
‫‪ -4‬در سطح داخلي پايگاه داده‌ها‪ ،‬فايلينگ منطقي تعريف مي‌شود‪.‬‬
‫‪ -5‬شماي داخلي نوعي برنامه است كه توسط خود ‪ DBMS‬توليد‬
‫مي‌شود و شرح فايلينگ منطق پايگاه است‪.‬‬
‫سطوح معماري در محيط ناپايگاهي و محيط پايگاهي و نقش ‪ DBMS‬در ايجاد‪،‬‬
‫مديريت و پردازش فايلها‬
‫محيط پايگاهي‬
‫محيط ناپايگاهي‬
‫شماي خارجي‬
‫سطوح انتزاعي‬
‫شماي ادراكي‬
‫برنامه‌ساز فايل‌پرداز‬
‫برنامه‌هاي تعريف‪ ،‬كنترل و‬
‫پردازش فايلها‬
‫‪FS‬‬
‫‪AM‬‬
‫‪OS‬‬
‫شماي داخلي‪ :‬دستورات تعريف و كنترل فايلها‬
‫برنامه‌هاي پردازش فايلها‬
‫‪DBMS‬‬
‫‪FS‬‬
‫‪AM‬‬
‫‪DB‬‬
‫‪FILES‬‬
‫داده‌هاي ذخيره‌شده‬
‫در محيط فيزيكي‬
‫‪FLIES‬‬
‫داده‌هاي ذخيره‌شده‬
‫در محيط فيزيكي‬
‫طراح و پياده‌ساز‬
‫پايگاه داده‌ها‬
‫كاربر‬
‫در معناي عام‪ ،‬هر استفاده‌كننده از پايگاه داده‌ها را كاربر گوييم‪.‬‬
‫كاربر‬
‫كاربر فرمي‬
‫كاربر منويي‬
‫كاربر نقشه‌اي‬
‫كاربر فرماني‬
‫كاربر پارامتري‌‬
‫نابرنامه‌ساز‬
‫‪QL‬‬
‫برنامه‌ساز‬
‫‪HL + QL‬‬
‫كاربر گرافيكي‬
‫كاربر با زبان طبيعي‬
‫كاربر صوتي‬
‫موردي‪ :‬نامنظم‬
‫هميشگي‪ :‬منظم‬
‫در اسلوب‬
‫يكجا‬
‫در اسلوب‬
‫پيوسته‬
‫در اسلوب‬
‫تعاملي‬
‫كاربر‪ :‬پاياني‬
‫كاربردساز‬
‫جزء تيم اجرائي‬
‫سيستم‌ساز‬
‫(پياده‌ساز)‬
‫ابزارساز‬
‫جزء تيم‬
‫مديريت پايگاه‬
‫زبان ميزبان‬
‫يكي از زبانهاي برنامه‌سازي متعارف مانند كوبو ‌ل‪،‬‬
‫‪ ،PL1‬فرترن‪ ،‬پاسكال‪ C ،‬و زبانهايي مثل ‪،ADA‬‬
‫‪ JAVA ،LISP‬و نيز زبان اسمبلي است‪.‬‬
‫كاهش هزينه سازمان‬
‫افزايش تعداد‬
‫تنوع كاربر‬
‫زبانهاي ميزبان مورد پذيرش‬
‫‪DBMS‬‬
‫تنوع كاربرد‬
‫انعطاف‌پذيري بيشتر‬
‫زبان دادهاي فرعي‬
‫شامل سه دسته دستور زير است‪:‬‬
‫‪ -1‬دستورات تعريف داده‌ها )‪Data Definition Language (DDL‬‬
‫‪ -2‬دستورات عمليات روي داده‌ها )‪Data Manipulation Language (DML‬‬
‫‪ -3‬دستورات كنترل داده‌ها )‪Data Control Language (DCL‬‬
‫دستورهاي ‪ DSL‬براي سه سطح معماري پايگاه داده‌ها‬
‫‪DSL‬‬
‫‪DLL‬‬
‫سطح خارجي‬
‫‪DML‬‬
‫سطح ادراكي‬
‫‪DCL‬‬
‫سطح داخلي‬
‫ي‬
‫معمار ‌‬
‫‪ANSI‬‬
‫تقسيمبندي زبان دادهاي فرعي از نظر‬
‫نياز به زبان ميزبان‬
‫مستقل (‪ :)I.DSL‬به زبان ميزبان نياز ندارد و به صورت‬
‫تعاملي استفاده مي‌شود‪ .‬در واقع يك زبان پرس وجو است‪.‬‬
‫ادغام‌شدني (‪ :)E.DSL‬دستورهايش در متن برنامه‌اي به‬
‫زبان ميزبان به كار مي‌رود و مستقال قابل استفاده نيست‪.‬‬
‫هم مستقل و هم ادغام‌شدني (‪)I/E.DSL‬‬
‫روند كلي مرحله كامپايل برنامه دوزباني‬
‫برنامه به‬
‫‪:HL‬‬
‫كامپايل شده‬
‫كامپايلر‬
‫‪HL‬‬
‫دستورهاي ‪HL‬‬
‫پيش‬
‫اجرا‬
‫كامپايلر‬
‫دستورهاي‬
‫‪:DSL‬‬
‫كامپايل شده‬
‫كامپايلر‬
‫‪DSL‬‬
‫دستورهاي ‪DSL‬‬
‫دستورهاي‬
‫‪ HL‬و‬
‫دستورهاي‬
‫‪DSL‬‬
‫ويژگيهاي زبان دادهاي فرعي‬
‫‪ -1‬تعداد دستورهايش بايد كم باشد‪.‬‬
‫‪ -2‬دستورهايش بايد شبه زبان طبيعي باشد‪.‬‬
‫‪ -3‬يادگيري و استفاده آن بايد ساده باشد‪.‬‬
‫‪ -4‬در طراحي آن بايد اصل وحدت دستور رعايت شود‪.‬‬
‫‪ -5‬دستورهايش بايد مبتني بر عناصر ساختاري اساس ي ساختار‬
‫داده‌اي طراحي شوند‪.‬‬
‫ادامه‬
‫ويژگيهاي زبان دادهاي فرعي‬
‫‪ -6‬بهتر است نارويه‌اي (ناروشمند) باشند‪.‬‬
‫ي‪.‬‬
‫‪ -7‬بهتر است كامپايلري باشد و نه مفسر ‌‬
‫‪ -8‬بهتر است از نظر ساختاري كامل باشد‪.‬‬
‫‪ -9‬بهتر است از نظر برنامه‌سازي و محاسباتي كامل باشد‪.‬‬
‫‪ -10‬زبان بايد از نظر تعداد دستورهاي كنترل داده‌ها و عملكرد‬
‫هردستور‪ ،‬غني و قوي باشد‪.‬‬
‫‪ -11‬بايد از نظر انواع داده‌اي و به ويژه انواع داده‌اي انتزاعي و انواع‬
‫داده‌اي پيچيده غني باشد‪.‬‬
‫جلسه ششم‬
‫سيستم مديريت پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬سيستم مديريت پايگاه دادهها ‪DBMS‬‬
‫‪ DBMS -2‬به كاربر امكان ميدهد تا‬
‫‪ -3‬ردهبندي سيستمهاي ‪ DBMS‬از نظرهاي مختلف‬
‫‪ -4‬اجزاي ‪ DBMS‬از نماي بيروني‬
‫‪ -5‬نماي بيروني (سادهشده) ‪DBMS‬‬
‫‪ -6‬اجزاي ‪ DBMS‬از نماي دروني‬
‫‪ -7‬واحدهاي اليه هسته‬
‫‪ -8‬واحدهاي اليه مديريت محيط پايگاه دادهها‬
‫‪ -9‬ساختار يك سيستم پايگاهي‬
‫هدفهاي كلي‪ :‬سيستم مديريت پايگاه داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• سيستم مديريت پايگاه داده‌ها را توصيف كند‪.‬‬
‫• رده‌بندي ‪ DBMS‬را از ديدگاههاي مختلف بيان كند‪.‬‬
‫• اجزاء ‪ DBMS‬از نماي دروني و بيروني را برشمارد‪.‬‬
‫• واحدهاي اليه هسته و مديريت پايگاه داده را نام ببرد‪.‬‬
‫سيستم مديريت پايگاه دادهها‬
‫‪DBMS‬‬
‫تعريف‪ :‬يكي از انواع نرم‌افزارهاي واسط بين‬
‫محيط فيزيكي ذخيره و بازيابي اطالعات و محيط‬
‫منطقي برنامه‌سازي است‪.‬‬
‫‪ DBMS‬به كاربر امكان ميدهد تا‪:‬‬
‫‪ -1‬پايگاه داده‌هاي خود را تعريف كند‪.‬‬
‫‪ -2‬در پايگاه داده‌هاي خود عمليات انجام دهد‪.‬‬
‫‪ -3‬روي پايگاه داده‌هاي خود تا حدي كنترل داشته باشد‪.‬‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر نوع ساختار داده‌اي‬
‫• سيستم رابطه‌اي‬
‫• سيستم سلسله‌مراتبي‬
‫• سيستم شبكه‌اي‬
‫• جز اينها‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫ي‬
‫از نظر محيط سخت‌افزار ‌‬
‫• وابسته به يك محيط خاص‬
‫• ناوابسته به يك محيط خاص‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر رده كامپيوتر‬
‫• خاص محيط كامپيوترهاي شخص ي‬
‫• خاص محيط كامپيوترهاي متوسط (‪)Mini Computer‬‬
‫• خاص محيط كامپيوترهاي بزرگ (‪)Main Computer‬‬
‫• خاص محيط كامپيوترهاي خيلي بزرگ (‪)Super Computer‬‬
‫• اجراشونده درچند رده كامپيوتر‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر محيط سيستم عامل‬
‫• وابسته به يك سيستم عامل خاص‬
‫• اجراشونده در محيط چند سيستم عامل‬
‫از نظر نوع معماري سيستم پايگاه داده‌ها‬
‫• با توانش ايجاد پايگاه متمركز‬
‫• با توانش ايجاد پايگاه نامتمركز‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر معماري مشتري‌‪ -‬خدمتگزار‬
‫• با توانش ايجاد معماري چند مشتري – يك خدمتگزار‬
‫• با توانش ايجاد معماري چند مشتري – چند خدمتگزار‬
‫از نظر زبان‬
‫• سيستم داراي ‪SQL‬‬
‫• سيستم فاقد ‪SQL‬‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر نوع زبان داده‌اي فرعي‬
‫• داراي ‪I.DSL‬‬
‫• داراي ‪E.DSL‬‬
‫• داراي ‪E/I.DSL‬‬
‫از نظر ماهيت زبان داده‌اي فرعي‬
‫• با زبان رويه‌اي‬
‫• با زبان نارويه‌اي‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر سيستم فايل‬
‫• خودكفا‬
‫• وابسته به سيستم فايل محيط سيستم عامل‬
‫از نظر نوع كاربرد‬
‫• تك منظوره‬
‫• همه منظوره‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر قيمت‬
‫از حدود ده هزار دالر تا صد هزار دالر و گاه بيشتر‬
‫از نظر طرز برپايي‬
‫• با محدوديت برپايي يكپارچه‬
‫• داراي امكان برپايي گزينش ي‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر واسط كاربر‬
‫• با واسط زباني‬
‫• با واسط غير زباني‬
‫• با هر دو واسط‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر رفتار در قبال رويدادها‬
‫• سيستم فعال‬
‫• سيستم غير فعال‬
‫از نظر متدولوژي زبان‬
‫• بدون متدولوژي شيئ‌گرايي‬
‫• داراي متدولوژي شيئ‌گرايي‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر بهينه‌سازي پرسش‬
‫• داراي بهينه‌سازي متعارف‬
‫• داراي بهينه‌سازي مبتني بر قاعده‪ ،‬معنايي و ‪...‬‬
‫از نظر نوع تراكنش‬
‫• پذيرنده تراكنشهاي ساده‬
‫• پذيرنده تراكنشهاي با مدل پيشرفته‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر نوع پردازش‬
‫• با قابليت پردازش بي‌درنگ‬
‫• فاقد اين قابليت‬
‫از نظر رسانه ذخيره‌سازي پايگاه داده‌ها‬
‫• با قابليت ايجاد ‪MMDB‬‬
‫• فاقد اين قابليت‬
‫ردهبندي سيستمهاي ‪DBMS‬‬
‫از نظر قابليت تعامل بين سيستمها‬
‫• فاقد اين قابليت‬
‫• داراي قابليت تعامل با سيستمهاي همگن‬
‫• داراي قابليت تعامل با سيستمهاي ناهمگن‬
‫از نظر پردازش داده‌هاي زمانمند‬
‫• فاقد جنبه‌هاي يك سيستم زماني‬
‫• سيستم مديريت پايگاه داده‌هاي زماني‬
‫اجزاي ‪ DBMS‬از نماي بيروني‬
‫• واحد پردازشگر پرسش‌ها و برنامه‌هاي كاربردي‬
‫• واحد ايجاد و مديريت داد‌هاي ذخيره‌شده‬
‫نماي بيروني (ساده‌شده) ‪DBMS‬‬
‫كاربر‬
‫برنامه‌هاي كاربردي‪ /‬پرسشها‬
‫سيستم مديريت پايگاه داده‌ها‬
‫واحد پردازشگر برنامه كاربردي و پرسشها‬
‫واحد دستيابي به داده‌هاي ذخيره‌شده‬
‫‪DB‬‬
‫متا داده‬
‫داده‌هاي‬
‫ذخيره‌شده‬
‫اجزاي ‪ DBMS‬از نماي دروني‬
‫• اليه هسته (سيستم كنترل يا موتور پايگاه داده‌ها)‬
‫• اليه مديريت محيط پايگاه داده‌ها‬
‫• اليه تسهيالت نرم‌افزاري (ابزارها)‬
‫واحدهاي اليه هسته‬
‫‪ -1‬واحد دريافت درخواست كاربر و وارس ي‌هاي اوليه‬
‫‪ -2‬واحد توليد شماها‬
‫‪ -3‬پيش‌كامپايلرها براي ‪DML‬‬
‫‪ -4‬كامپايلرها (پردازنده ‪)DML‬‬
‫‪ -5‬پردازشگر پرسش و بهينه‌ساز پرسش‬
‫‪ -6‬واحد مديريت سطح داخلي‬
‫ادامه‬
‫واحدهاي اليه هسته‬
‫‪ -7‬واحد مديريت بافر‬
‫‪ -8‬واحد مديريت فضاي ديسك‬
‫‪ -9‬واحد ناظر زمان اجرا‬
‫‪ -10‬واحد مديريت همروندي تراكنش‌ها‬
‫‪ -11‬واحد مديريت انتقال داده‌ها‬
‫‪ -12‬واحد مديريت كاتالوگ‬
‫واحدهاي اليه مديريت محيط پايگاه دادهها‬
‫‪ -1‬واحد كنترل جامعيت پايگاه داده‌ها‬
‫‪ -2‬واحد ترميم پايگاه داده‌ها‬
‫‪ -3‬واحد ايمني و حفاظت پايگاه داده‌ها‬
‫‪ -4‬واحد توليد نسخه‌هاي پشتيبان‬
‫‪ -5‬واحد توليد فايلهاي ثبت تراكنشها‬
‫مدير پايگاه داده‌ها‬
‫‪DDL‬‬
‫ساختار يك‬
‫سيستم‬
‫پايگاهي‬
‫كاربر موردي‬
‫برنامه‌ساز ‪AP‬ها‬
‫واسط ‪DML‬‬
‫‪CLI‬‬
‫واسط ‪AP‬ها‬
‫كاربر نابرنامه‌ساز‬
‫‪UFI‬‬
‫فرمانهاي زبان پايگاهي‬
‫واحد پردازشگر پرسشها‬
‫واحد مديريت داده‌هاي ذخيره‌شده‬
‫مدير فايلينگ منطق‬
‫كامپايلر‬
‫‪DDL‬‬
‫مدير‬
‫ترميم‬
‫مدير بافر‬
‫‪DBMS‬‬
‫‪.......‬‬
‫مدير‬
‫تراكنشها‬
‫و‬
‫قفلها‬
‫مدير فضاي ديسك‬
‫‪......‬‬
‫فايل‬
‫ثبت‬
‫تراكنشها‬
‫متاداده‌ها‬
‫شاخصها‬
‫داده‌هاي ذخيره‌شده‬
‫جلسه هفتم‬
‫‪ DBMS‬در يك سيستم كامپيوتري‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬جايگاه ‪ DBMS‬در يك سيستم كامپيوتري‬
‫‪ -2‬سه طرح كاربرد ‪ DBMS‬در برنامههاي كاربردي‬
‫‪ -3‬اسلوبهاي عملياتي‬
‫‪ -4‬كاتالوگ سيستم و ديكشنري دادهها‪ :‬متا دادهها‬
‫‪ -5‬اطالعاتي كه در ديكشنري دادهها نگهداري ميشود‬
‫‪ -6‬ديكشنري دادهها و استفادهكنندگان آن‬
‫‪ -7‬پارامترهاي شناخت ‪DBMS‬‬
‫‪ -8‬مدير پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -9‬برخي مسئوليتهاي در تيم مديريت پايگاه دادهها‬
‫‪ -10‬پنج سرمايه در مديريت نوين سازمانها‬
‫‪ -11‬مزايا و معايب تكنولوژي پايگاه دادهها‬
‫‪ -12‬مزايا و معايب سيستم تككاربري‬
‫‪ -13‬مزايا و معايب سيستم چندكاربري‬
‫‪ -14‬شرايط استفاده از تكنولوژي پايگاه دادهها‬
‫‪ -15‬كاربردهاي جديد تكنولوژي پايگاه دادهها‬
‫‪ -16‬استقالل دادهاي و انواع آن‬
‫هدفهاي كلي‪ DBMS :‬در يك سيستم كامپيوتري و مدير پايگاه داده‌ها‬
‫ي‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫هدفهاي رفتار ‌‬
‫• ارتباط ‪ DBMS‬با ساير عناصر نرم‌افزاري را بيان كند‬
‫• اسلوبهاي عملياتي‪ ،‬و پارامترهاي شناخت را نام ببرد‪.‬‬
‫• مسئوليتهاي تيم مديريت پايگاه داده‌ها را شرح دهد‪.‬‬
‫• مزايا و معايب سيستم تك‌كاربره و چندكاربره را توصيف كند‪.‬‬
‫• استقالل داده‌اي و انواع آن را توضيح دهد‪.‬‬
‫جايگاه ‪ DBMS‬در يك سيستم كامپيوتري‬
‫برنامه‌هاي كاربردي‬
‫ابزارهاي توليد برنامه‌هاي كاربردي‬
‫‪DBMS‬‬
‫سيستم عامل‬
‫سخت‌افزار‬
‫يك ‪ DBMS‬براي هر برنامه كاربردي‬
‫درخواست كاربر‬
‫سيستم عامل‬
‫‪APi‬‬
‫‪.....‬‬
‫‪......‬‬
‫‪AP1‬‬
‫‪DBMS1‬‬
‫‪DBMSi‬‬
‫‪AM‬‬
‫‪DB2‬‬
‫‪DB1‬‬
‫يك ‪ DBMS‬براي چند برنامه كاربردي تحت كنترل سيستم عامل‬
‫درخواست كاربر‬
‫سيستم عامل‬
‫‪APi‬‬
‫‪.....‬‬
‫‪......‬‬
‫‪DBMS1‬‬
‫‪AM‬‬
‫‪DB‬‬
‫‪AP1‬‬
‫يك ‪ DBMS‬براي چند برنامه كاربردي با اجراي تحت كنترل ‪DBMS‬‬
‫درخواست كاربر‬
‫سيستم عامل‬
‫‪DBMS1‬‬
‫‪APi‬‬
‫‪.....‬‬
‫‪......‬‬
‫‪AM‬‬
‫‪DB‬‬
‫‪AP1‬‬
‫اسلوبهاي عملياتي‬
‫به طور كلي سه اسلوب عملياتي وجود دارد‪:‬‬
‫• اسلوب يكجا‬
‫• اسلوب برخط‬
‫• اسلوب تعاملي‬
‫كاتالوگ سيستم و ديكشنري دادهها‪ :‬متا دادهها‬
‫حاوي داده‌هايي است در مورد داده‌هاي ذخيره‌شده در پايگاه‬
‫داده‌هاي كاربر و اين داده‌ها به متاداده‌ها موسومند‬
‫ديكشنري داده‌ها معموال جزئي از خود سيستم است و به د ‌و‬
‫صورت فعال و غيرفعال توليد مي‌شود‪.‬‬
‫اطالعاتي كه در ديكشنري دادهها نگهداري ميشود‪:‬‬
‫• شماهاي خارجي‬
‫• شماي ادراكي‬
‫• شماي داخلي‬
‫• رويه‌هاي مربوط به تبديالت بين سه سطح معماري‌‬
‫• شرح ساختار فيزيكي داده‌هاي ذخيره‌شده‬
‫• مشخصات و حقوق دستيابي كاربران به داده‌ها‬
‫• مشخصات برنامه‌هاي كاربردي توليد شده و ارتباط آنها با‬
‫درخواستهاي كاربران‬
‫• مشخصات پايانه‌هاي متصل به سيستم‬
‫ادامه‬
‫اطالعاتي كه در ديكشنري دادهها نگهداري ميشود‪:‬‬
‫• ارتباط بين برنامه‌هاي كاربردي و داده‌هاي ذخيره‌شده‬
‫• قواعد جامعيت‬
‫• ضوابط كنترل ايمني داده‌ها‬
‫• مشخصات پيكربندي سخت‌افزاري سيستم و رسانه‌هاي‬
‫ذخيره‌سازي‌‬
‫• اطالعات متنوع آماري پايگاه داده و كاربران‬
‫• توابع تعريف‌شده توسط كاربران‬
‫ديكشنري دادهها و استفادهكنندگان آن‬
‫برنامه‌سازان سيستمي‬
‫كاربران پاياني‬
‫تيم مديريت پايگاه داده‌ها‬
‫برنامه‌سازان كاربردي‬
‫ديكشنري داده‌ها‬
‫زيرسيستم جامعيت‬
‫پايگاه داده‌ها‬
‫برنامه كاربردي‬
‫مولد گزارش‬
‫زيرسيستم و‬
‫ترميم پايگاه داده‌ها‬
‫كامپايلر‪/‬‬
‫پيش‌كامپايلر‬
‫بهينه‌ساز‬
‫پرس و جو‬
‫زيرسيستمهاي ايمني‬
‫و مجازشماري‌‬
‫پارامترهاي شناخت ‪DBMS‬‬
‫• پارامترهاي مربوط به توانش‌ها و كارايي سيستم‬
‫• تسهيالت و جنبه‌هاي ديگر‬
‫• مشخصات كلي سيستم‬
‫• پارامترهاي مربوط به معماري پايگاه داده‌ها‬
‫• پارامترهاي مربوط به زبان داده‌اي فرعي‬
‫مدير پايگاه دادهها‬
‫فردي است متخصص در پايگاه داده‌ها و با مسئوليت‬
‫علمي‪ ،‬فني و نيز اداري در محدوده وظايفي كه عهده‌دار‬
‫است‬
‫اين مدير همراه با يك تيم تخصص ي كار‬
‫مي‌كند كه به آن تيم مديريت پايگاه داده‌ها‬
‫مي‌گويند‪.‬‬
‫برخي مسئوليتهاي در تيم مديريت پايگاه دادهها‬
‫• مدير پايگاه داده‌ها‬
‫• مدير داده‌ها‬
‫• مدير امور پژوهش‪-‬توسعه‬
‫• مدير سيستمهاي كاربردي‬
‫ي‬
‫• مسئول تيمهاي برنامه‌ساز ‌‬
‫• مسئول كنترل كارايي ‪DBMS‬‬
‫• مسئول كنترل كارايي خود سيستم پايگاه داده‌ها‬
‫• مسئول نظارت بر عمليات روي پايگاه داده‌ها‬
‫• مسئول تماس با كاربران زيرمحيطهاي سازمان‬
‫• مسئول تنظيم مستندات و وضع استانده‌ها‬
‫در مديريت نوين سازمانها‪ ،‬هر سازمان داراي پنج‬
‫سرمايه است‪:‬‬
‫‪ -1‬سخت‌افزار‬
‫‪ -2‬نرم‌افزار‬
‫‪ -3‬داده‬
‫‪ -4‬بودجه‬
‫‪ -5‬تخصص‬
‫مزايا و معايب تكنولوژي پايگاه دادهها‬
‫مزاياي اين تكنولوژي بستگي به نوع سيستم‬
‫(‪ )DBMS‬و معماري سيستم پايگاه داده‌ها و‬
‫ماهيت كاربردها دارد‪.‬‬
‫سيستم تككاربري‬
‫مزايا‬
‫‪ -1‬هر بخش از سازمان‪ ،‬داده‌هاي خود را نگهداري و پردازش مي‌كند‪.‬‬
‫‪ -2‬با استفاده از كامپيوترهاي شخص ي‪ ،‬حجم داده‌هاي سيستم مركزي كاهش‬
‫مي‌آيد‪.‬‬
‫‪ -3‬پايگاه داده‌هاي ايجادشده روي كامپيوترهاي شخص ي معموال كوچك ‌و‬
‫مدلسازي‪ ،‬طراحي و پياده‌سازي آنها ساده است‪.‬‬
‫‪ -4‬كار با اين سيستمها و برنامه‌سازي در محيط آنها ساده است‪.‬‬
‫‪ -5‬با پيشرفت كامپيوترهاي شخص ي‪ ،‬اين سيستمها مي‌توانند بسياري از‬
‫كارهاي سيستمهاي كامپيوتري بزرگ را انجام دهند‪.‬‬
‫سيستم تككاربري‬
‫معايب‬
‫‪ -1‬وجود تعداد زيادي از اين سيستمها در يك سازمان باعث بروز افزونگي‪،‬‬
‫ناسازگاري داده‌ها و ناايمني آنها مي‌شود‪.‬‬
‫‪ -2‬محوديتهاي سخت‌افزاري سبب محدوديت اندازه فايلها و نيز محدوديت‬
‫سرعت پردازش باعث محدود شدن حجم پايگاه داده‌ها مي‌شود‪.‬‬
‫‪ -3‬خود سيستم نمي‌تواند قوي و كارا باشد‪.‬‬
‫ادامه‬
‫سيستم تككاربري‬
‫معايب‬
‫‪ -4‬ميزان ايمني و حفاظت در آنها ضعيف است‪.‬‬
‫‪ -5‬امكانات توليد نسخه پشتيبان در آنها معموال كم است‪.‬‬
‫‪ -6‬اشتراكي كردن آنها مشكالت تكنيكي جدي دارد‪.‬‬
‫‪ -7‬اعمال مجموعه واحدي از استانده‌ها در كل سازمان ناممكن است‪.‬‬
‫‪ -8‬معموال كاربر اين محيط مهارت كافي در مدلسازي و طراحي بهينه پايگاه‬
‫داده‌ها ندارد‪.‬‬
‫‪ -9‬ايجاد يك سيستم جامع و يكپارچه‪ ،‬براساس اين سيستمها‪ ،‬دشوار و‬
‫پرهزينه است‪.‬‬
‫سيستم چندكاربري‬
‫مزايا‬
‫‪ -1‬اشتراك داده‌ها‬
‫‪ -2‬كاهش افزونگي‬
‫‪ -3‬تعدد شيوه‌هاي دستيابي به داده‌ها‬
‫‪ -4‬اجتناب از ناسازگاري داده‌ها‬
‫‪ -5‬تامين همروندي بهتر‬
‫‪ -6‬تسهيل پردازش تراكنشها‬
‫‪ -7‬تضمين جامعيت داده‌ها‬
‫ادامه‬
‫سيستم چندكاربري‬
‫مزايا‬
‫‪ -8‬حفظ محرمانگي داده‌ها‬
‫‪ -9‬امكان اعمال استانده‌ها‬
‫‪ -10‬تعدد زبانها‬
‫‪ -11‬كاهش حجم برنامه‌ها‬
‫‪ -12‬تنوع كاربران‬
‫‪ -13‬تسريع در دريافت پاسخ پرسشها‬
‫‪ -14‬استفاده بهتر از سخت‌افزار و ‪...‬‬
‫سيستم چندكاربري‬
‫معايب‬
‫‪ -1‬هزينه باالي نرم‌افزار و سخت‌افزار‬
‫‪ -2‬هزينه بيشتر براي برنامه‌سازي‌‬
‫‪ -3‬هزينه باال براي انجام مهندس ي دوباره به منظور تبديل سيستم از‬
‫مش ي ناپايگاهي به مش ي پايگاهي‬
‫‪ -4‬كند شدن اجراي بعض ي از برنامه‌هاي كاربردي‬
‫‪ -5‬خطر آسيب‌پذيري داده‌ها‬
‫‪ -6‬تاثيرات گسترده‌تر خرابيها و دشواري بيشتر ترميم آنها‬
‫‪ -7‬پيچيده بودن سيستم و نياز به تخصص بيشتر‬
‫شرايط استفاده از تكنولوژي پايگاه دادهها‬
‫‪ -1‬نياز به ايجاد يك سيستم يكپارچه اطالعاتي‬
‫‪ -2‬حجم زياد داده‌هاي سازمان و رشد پوياي آن‬
‫‪ -3‬تغييرات مداوم در داده‌هاي ذخيره‌شده‬
‫‪ -4‬باال بودن بسامد درخواستهاي كاربران‬
‫‪ -5‬نياز به اعمال كنترل متمركز و دقيق روي كل داده‌ها‬
‫‪ -6‬وجود ارتباطات پيچيده بين داده‌ها‬
‫ادامه‬
‫شرايط استفاده از تكنولوژي پايگاه دادهها‬
‫‪ -7‬زياد بودن ميزان داده‌هاي مشترك بين برنامه‌هاي كاربردي‬
‫‪ -8‬مدنظر بودن صحت‪ ،‬دقت و سازگاري داده‌ها‬
‫‪ -9‬زياد بودن گزارشها‬
‫‪ -10‬نياز به انجام پردازشهاي تحليلي برخط‬
‫‪ -11‬نياز به سيستم داده‌كاوي و كشف دانش در سازمان‬
‫كاربردهاي جديد تكنولوژي پايگاه دادهها‬
‫• سيستم پشتيبان تصميم‬
‫• سيستم داده‌كاوي چندرسانه‌اي‬
‫• سيستم انبارش داده‌ها‬
‫• حيطه‌هاي فضايي و جغرافيايي‬
‫• پايگاه داده‌هاي شخص ي و همراه‬
‫• سيستم پايگاه داده‌ها در شبكه جهاني اطالع‌رساني‬
‫• سيستم اطالعات اجرايي‬
‫• سيستم اطالعات طراحي‬
‫• سيستم پردازش تحليلي برخط چندبعدي‬
‫• ‪...‬‬
‫استقالل دادهاي‬
‫يعني وابسته نبودن برنامه‌هاي كاربردي به داده‌هاي‬
‫ذخيره‌شده‬
‫‪DB‬‬
‫داده‌هاي‬
‫ذخيره‌شده‬
‫برنامه‌هاي‬
‫كاربردي‬
‫انواع استقالل دادهاي‬
‫ استقالل داده‌اي فيزيكي‬‫‪ -‬استقالل داده‌اي منطقي‬
‫استقالل دادهاي فيزيكي‬
‫عبارتست از مصونيت ديدهاي كاربران و برنامه‌هاي‬
‫كاربردي در قبال تغييرات در سطح داخلي‪-‬فيزيكي پايگاه‬
‫داده‌ها‬
‫چرا استقالل دادهاي فيزيكي در سيستمهاي رابطهاي جديد‬
‫كامال تامين است؟‬
‫زيرا‪:‬‬
‫‪ -1‬كاربران سطح خارجي در محيطي كامال انتزاعي عمل مي‌كنند ‌و‬
‫برنامه‌هاي كاربردي در اين سطح با فايلينگ پايگاه داده‌ها تماس‬
‫ندارند‪.‬‬
‫‪ -2‬بين سطح خارجي و داخلي‪ ،‬يك سطح انتزاعي ديگر واسط است و‬
‫مانع تاثيرپذيري برنامه‌هاي سطح خارجي از تغييرات درفايلينگ پايگاه‬
‫داده‌ها مي‌شود‪.‬‬
‫استقالل دادهاي منطقي‬
‫عبارتست از مصونيت ديدهاي كاربران و برنامه‌هاي كا ‌ربردي‬
‫در قبال تغييرات در سطح ادراكي پايگاه داده‌ها‬
‫تغيير در سطح ادراكي يعني تغيير در طراحي منطقي‬
‫پايگاه داده‌ها و تغيير در شماي ادراكي‬
‫اين تغيير معموال منجر به تغيير مناسب در سطح‬
‫فايلينگ پايگاه مي‌شود‪.‬‬
‫تغيير در سطح ادراكي دو وجه دارد‪:‬‬
‫‪ -1‬رشد پايگاه در سطح ادراكي‬
‫‪ -2‬سازمان‌دهي مجدد پايگاه در سطح ادراكي‬
‫جلسه هشتم‬
‫معماري سيستم پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬معماري سيستم پايگاه دادهها‬
‫‪ -2‬انواع معماري‬
‫‪ -3‬معماري متمركز‬
‫‪ -4‬معماري مشتري ‪ -‬خدمتگزار‬
‫‪ -5‬طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫‪ -6‬مزاياي معماري مشتري – خدمتگزار در مقايسه با معماري‬
‫متمركز‬
‫‪ -7‬معماري توزيعشده‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -8‬ويژگيهاي معماري توزيعشده‬
‫‪ -9‬مزايا و معايب معماري توزيعشده‬
‫‪ -10‬معماري با پردازش موازي‬
‫‪ -11‬طرح هاي معماري با پردازش موازي‬
‫‪ -12‬معماري سيستم چندپايگاهي‬
‫‪ -13‬معماري سيستم پايگاههاي همراه‬
‫هدفهاي كلي‪ :‬معماري سيستم پايگاه داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• گونه‌هاي مختلف معماري پايگاه داده‌ها شامل معماري متمركز و‬
‫نامتمركز و انواع معماري نامتمركز و ويژگيهاي هريك را شرح دهد‪.‬‬
‫معماري سيستم پايگاه دادهها‬
‫منظور‪ ،‬چندي و چوني اجزاء تشكيل‌دهنده سيستم و نيز‬
‫پيكربندي يا طرز تركيب اجزاء سيستم و چگونگي تعامل اجزاء با‬
‫يكديگر است‪ .‬در اين معماري حداقل يك پايگاه داده‌ها‪ ،‬يك‬
‫سيستم مديريت پايگاه داده‌ها‪ ،‬يك سيستم عامل‪ ،‬يك كامپيوتر با‬
‫دستگاههاي جانبي و تعدادي برنامه كاربردي و كاربر وجود دارند‪.‬‬
‫معماري متمركز‬
‫انواع معماري‬
‫معماري نامتمركز‬
‫معماري مشتري‪-‬خدمتگزار‬
‫معماري توزيعشده‬
‫معماري چندپايگاهي‬
‫معماري با پردازش موازي‬
‫معماري موبايل‬
‫معماري متمركز‬
‫در اين معماري يک پايگاه داده روي يک سيستم‬
‫کامپيوتري و بدون ارتباط با سيستم ديگر ايجاد‬
‫مي شود ‪.‬‬
‫نمايش معماري متمركز‬
‫كاربران پايانه‌اي نزديك‬
‫كنترولر ديسك‬
‫كامپيوتر بزرگ‬
‫‪..‬‬
‫‪.‬‬
‫كنترولر نوار‬
‫پايگاه داده‌هاي متمركز‬
‫‪...‬‬
‫‪..‬‬
‫‪.‬‬
‫كنترولر چاپگر‬
‫كاربران‬
‫پايانه‌اي‬
‫دور‌‬
‫معماري مشتري ‪ -‬خدمتگزار‬
‫هر معماري که در آن قسمتي از پردازش را يک برنامه‪ ،‬سيستم يا‬
‫ماشين انجام دهد و انجام قسمت ديگري از پردازش را از‬
‫برنامه ‪ ،‬سيستم يا ماشين ديگر بخواهد معماري مشت ‌ري‬
‫خدمتگزار ناميده مي شود‬
‫معماري مشتري ‪ -‬خدمتگزار‬
‫‪DBMS‬‬
‫‪DB‬‬
‫‪OS‬‬
‫ماشين خدمتگزار‬
‫‪D‬‬
‫‪B‬‬
‫‪M‬‬
‫‪S‬‬
‫‪OS‬‬
‫‪AP . . . .‬‬
‫ماشين مشتري‌‬
‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫از نظر تعداد مشتري و خدمتگزار‬
‫‪ -1‬چند مشتري – يك خدمتگزار‬
‫‪ -2‬يك مشتري – چند خدمتگزار‬
‫‪ -3‬چند مشتري – چند خدمتگزار‬
‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫از نظر پيكربندي سخت‌افزاري‌‬
‫الف‪ -‬معماري حول كامپيوتر بزرگ‬
‫مشتري‌‬
‫‪PC1‬‬
‫‪DB‬‬
‫‪PC2‬‬
‫‪......‬‬
‫‪MAIN‬‬
‫خدمتگزار‬
‫‪PCi‬‬
‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫از نظر پيكربندي سخت‌افزاري‌‬
‫ب‪ -‬معماري حول شبكه‬
‫‪PC1‬‬
‫مشتري‌‬
‫‪PC2‬‬
‫‪......‬‬
‫‪PCi‬‬
‫شبكه‬
‫خدمتگزاران‬
‫‪DB‬‬
‫‪PCk‬‬
‫‪PCn‬‬
‫‪Printer‬‬
‫‪PCi‬‬
‫‪Files‬‬
‫مزاياي معماري مشتري – خدمتگزار در مقايسه‬
‫با معماري متمركز‬
‫• تقسيم پردازش‬
‫• كاهش ترافيك شبكه‬
‫• استقالل ايستگاههاي كار‬
‫• اشتراك داده‌ها‬
‫معماري توزيعشده‬
‫مجموعه اي از داده هاي ذخيره شده که منطقا به يک‬
‫سيستم تعلق دارند ولي در مانه هاي مختلف يک يا بيش‬
‫از يک شبکه توزيع شده اند‪.‬‬
‫نماي يك مانه در معماري توزيع‌شده‬
OS
DB
D
D
B
M
S
D
C
NETWORK
LAN
WAN
MNET
‫معماري توزيعشده با سه مانه‬
‌‫كاربران دور‬
‫كاربران نزديك‬
‫كاربران نزديك‬
…
DB1
‌‫كاربران دور‬
…
…
…
OS1
OS2
DDBMS1
DDBMS2
APs
DC
DC
NETWORK
. LAN
. WAN
. MNET
DC
APs
DDBMS3
DB3
OS3
…
…
DDB = {DB1+DB2+DB3}
APs
DB2
‫ويژگيهاي معماري توزيعشده‬
‫• مجموعه‌اي است از داده‌هاي منطقا مرتبط و اشتراكي‬
‫• داده‌ها به بخشهايي تقسيم و در مانه‌ها توزيع شده‌اند‪.‬‬
‫• بعض ي بخشها ممكن است به طور تكراري در مانه‌ها ذخيره شده باشند‪.‬‬
‫• مانه‌ها از طريق شبكه بهم مرتبط‌اند‪.‬‬
‫• داده‌هاي هر مانه تحت كنترل يك ‪ DBMS‬است‪.‬‬
‫• ‪ DMBS‬هر مانه‪ ،‬مي‌تواند برنامه‌هاي كاربردي محلي را‬
‫به طور خودكار اجرا كند‪.‬‬
‫• هر ‪ DBMS‬حداقل دراجراي يك برنامه كاربردي سرتاسري‬
‫مشاركت دارد‪.‬‬
‫مزاياي معماري توزيع شده‬
‫• سازگاري و هماهنگي با ماهيت سازمانهاي نوين‪.‬‬
‫• كارايي بيشتر در پردازش داده‌ها‪.‬‬
‫• دستيابي بهتر به داده‌ها‪.‬‬
‫• اشتراك داده‌ها‪.‬‬
‫• افزايش پردازش موازي‌‪.‬‬
‫• كاهش هزينه ارتباطات‪.‬‬
‫• تسهيل گسترش سيستم‪.‬‬
‫• استفاده از پايگاه داده‌هاي از قبل موجود‪.‬‬
‫معايب معماري توزيعشده‬
‫• پيچيدگي طراحي سيستم‪.‬‬
‫• پيچيدگي پياده‌سازي‌‪.‬‬
‫• كاهش كارايي در برخي موارد‪.‬‬
‫• هزينه بيشتر‪.‬‬
‫• مصرف حافظه بيشتر‪.‬‬
‫معماري با پردازش موازي‬
‫در اين گونه سيستمها معموال تعداد زيادي تراکنش در‬
‫ثانيه و بطور موازي اجرا مي‌شود ‪.‬‬
‫طرح كلي معماري با پردازش موازي‬
‫خدمتگزاران برنامه‌هاي كاربردي‬
‫برنامه كاربر ‪n‬‬
‫‪............‬‬
‫برنامه كاربر ‪2‬‬
‫برنامه كاربر ‪1‬‬
‫مدير تماسهاي‬
‫اجرايي كاربران‬
‫مدير درخواست‬
‫برنامه كاربر ‪n‬‬
‫مدير داده‌هاي‬
‫برنامه ‪m‬‬
‫خدمتگزار پايگاه داده‌ها‬
‫‪............‬‬
‫مدير درخواست‬
‫برنامه كاربر ‪2‬‬
‫مدير درخواست‬
‫برنامه كاربر ‪1‬‬
‫مدير داده‌هاي‬
‫برنامه ‪m-1‬‬
‫مدير داده‌هاي‬
‫برنامه ‪2‬‬
‫مدير داده‌هاي‬
‫برنامه ‪1‬‬
‫طرح هاي معماري با پردازش موازي‬
‫الف‪ -‬معماري با حافظه مشترك‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫معماري با حافظه مشترك‬
‫مزيت‪ :‬ارتباط بين پردازنده‌ها به طور كارا انجام مي‌شود‪.‬‬
‫عيب‪ :‬نمي‌توان بيش از ‪ 32‬يا ‪ 64‬پردازنده داشت‪ .‬زيرا‬
‫احتمال بروز تنگنا در باسهاي حافظه‌اي يا شبكه‬
‫ارتباطي افزايش مي‌يابد‪.‬‬
‫طرح هاي معماري با پردازش موازي‬
‫ب‪ -‬معماري با ديسكهاي مشترك‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪M‬‬
‫معماري با ديسكهاي مشترك‬
‫مزيت‪:‬‬
‫‪ -1‬عدم بروز تنگنا در باسهاي حافظه‌اي‬
‫‪ -2‬تسهيل تحمل خرابي‬
‫عيب‪ :‬دشواري در گسترش سيستم‪.‬‬
‫طرح هاي معماري با پردازش موازي‬
‫ج‪ -‬معماري بي‌اجزاء مشترك‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪M‬‬
‫‪M‬‬
‫‪M‬‬
‫معماري بياجزاء مشترك‬
‫مزيت‪ :‬تسهيل گسترش‬
‫عيب‪ :‬هزينه ارتباط و دستيابي‌هاي غيرمحلي زياد است‪.‬‬
‫طرح هاي معماري با پردازش موازي‬
‫د‪ -‬معماري سلسله‌مراتبي‬
‫‪P‬‬
‫‪P‬‬
‫‪M‬‬
‫‪P‬‬
‫‪M‬‬
‫‪M‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P‬‬
‫معماري سيستم چندپايگاهي‬
‫‪S1‬‬
‫‪Sn‬‬
‫شماي خارجي‬
‫سراسري‌‬
‫شماي خارجي‬
‫سراسري‌‬
‫شماي ادراكي‬
‫سراسري‌‬
‫‪S1‬‬
‫شماي خارجي‬
‫محلي‬
‫شماي خارجي‬
‫محلي‬
‫شماي ادراكي‬
‫محلي‬
‫شماي داخلي‬
‫محلي‬
‫‪DB‬‬
‫شماي خارجي‬
‫محلي‬
‫شماي خارجي‬
‫محلي‬
‫شماي ادراكي‬
‫محلي‬
‫شماي داخلي‬
‫محلي‬
‫‪DB‬‬
‫معماري سيستم پايگاههاي همراه‬
‫سيستم عامل‬
‫‪DBMS‬‬
‫پايگاه داده‌هاي‬
‫ميزبان‬
‫برنامه‌هاي كاربردي‬
‫امكانات همرسانش‬
‫امكانات همرسانش‬
‫‪D‬‬
‫‪B‬‬
‫‪M‬‬
‫‪S‬‬
‫برنامه‌هاي‬
‫كاربردي‬
‫سيستم‬
‫عامل‬
‫امكانات همرسانش‬
‫سيستم‬
‫عامل‬
‫برنامه‌هاي‬
‫كاربردي‬
‫كامپيوتر همراه‬
‫پايگاه داده‌هاي‬
‫همراه‬
‫پايگاه داده‌هاي‬
‫همراه‬
‫‪D‬‬
‫‪B‬‬
‫‪M‬‬
‫‪S‬‬
‫جلسه نهم‬
‫مدل رابطهاي‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬مفاهيم اساس ي مدل رابطهاي‬
‫‪ -2‬بخشهاي اساس ي مدل دادهاي‬
‫‪ -3‬تعريف رابطه‬
‫‪ -4‬تناظر بين مفاهيم رابطه اي و مفاهيم جدولي‬
‫‪ -5‬ويژگيهاي رابطه‬
‫‪ -6‬انواع رابطه‬
‫‪ -7‬ميدان (دامنه)‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -8‬مزاياي ميدان‬
‫‪ -9‬رابطه نرمال و غير نرمال‬
‫‪ -10‬دليل لزوم نرمال بودن رابطه‬
‫‪ -11‬معايب رابطه نرمال‬
‫‪ -12‬مزايا و معايب رابطه غيرنرمال‬
‫‪ -13‬انواع کليد در مدل رابطه اي‬
‫هدفهاي كلي‪ :‬آشنايي با مدل رابطه‌اي‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• مدل رابطه‌اي و بخشهاي اساس ي آن را توضيح دهد‪.‬‬
‫• رابطه را تعريف و ويژگيهاي آن را بيان نمايد‪.‬‬
‫• انواع رابطه را نام برده و توضيح دهد‪.‬‬
‫• روابط نرمال و غيرنرمال را شرح دهد‪.‬‬
‫• كليد و انواع آن را توضيح دهد‪.‬‬
‫مفاهيم اساس ي مدل رابطهاي‬
‫مدل رابطه‌اي در سال ‪ 1970‬توسط كاد ابداع شد‪.‬‬
‫مدل داده اي امکاني است براي طراحي منطقي پايگاه داده‌ها‪،‬‬
‫تعريف و کنترل آن و نيز انجام عمليات درآن و امکان مي دهد تا‬
‫اين هر سه عمل اساس ي در محيط انتزاعي انجام شود‪ .‬بنابراين‬
‫مي‌توان گفت که مدل داده‌اي تامين کننده محيط انتزاعي پايگاه‬
‫داده هاست ‪.‬‬
‫بخشهاي اساس ي مدل دادهاي‬
‫‪ -1‬بخش ساختاري‌‬
‫‪ -2‬بخش عملياتي (پردازش ي)‬
‫‪ -3‬بخش جامعيتي‬
‫بخش ساختاري‪ ،‬نشان‌دهنده عناصر ساختاري مدل است كه همان‬
‫ساختار داده‌اي اصلي و مفاهيم مرتبط با آن است‪.‬‬
‫بخش عملياتي‪ ،‬مجموعه امكاناتي است كه به وسيله آنها‬
‫عمليات مورد نظر كاربر انجام مي‌شود‪.‬‬
‫بخش جامعيتي‪ ،‬از مجموعه‌اي از قواعد و محدوديتهاي جامعيتي تشكيل‬
‫شده است كه به وسيله آنها سيستم مديريت پايگاه داده مي‌تواند‬
‫صحت‪ ،‬دقت و سازگاري داده‌ها را كنترل و تضمين كند‪.‬‬
‫تعريف رابطه‬
‫با فرض وجود ‪ n‬ميدان ‪ D1‬تا ‪ ،Dn‬نه لزوما متمايز‪ ،‬رابطه ‪ R‬از دو قسمت‬
‫تشكيل شده است‪:‬‬
‫‪ -1‬سرآيند‪ :‬مجموعه‌اي نامدار از ‪ n‬صفت به صورت ‪ Ai:Di‬كه در‬
‫آن هر ‪ Ai‬نام يك صفت است و هر ‪ Di‬نام ميدان صفت‬
‫‪ -2‬پيكر (بدنه)‪ :‬مجموعه‌اي است از ‪ m‬تاپل ‪ t‬به نحوي كه ‪ t‬خود‬
‫مجموعه‌اي است از ‪ n‬عنصر هريك به صورت ‪ Ai:vi‬كه در آن ‪vi‬‬
‫مقداري است از نوع ميدان‪.‬‬
‫مقدار ‪ n‬را درجه (همان تعداد صفات) و مقدار ‪ m‬را كارديناليتي رابطه مي‌گويند‬
‫تناظر بين مفاهيم رابطه اي و مفاهيم جدولي‬
‫جدول زير تناظر بين مفاهيم رابطه اي و مفاهيم جدولي را نشان مي دهد ‪:‬‬
‫مفهوم تئوريک‬
‫رابطه‬
‫تاپل‬
‫صفت‬
‫ميدان‬
‫درجه‬
‫کارديناليتي‬
‫مفهوم جدولي‬
‫جدول‬
‫سطر‬
‫ستون‬
‫مجموعه مقادير ستون‌‬
‫تعداد ستونها‬
‫تعدادسطرها‬
‫ويژگيهاي رابطه‬
‫ويژگيهاي رابطه عبارتند از‪:‬‬
‫‪ -1‬رابطه تاپل تکراري ندارد‬
‫‪ -2‬تاپلها نظم ندارند‬
‫‪ -3‬صفات رابطه نظم مكاني ندارند‬
‫‪ -4‬تمام صفات تك‌مقداري هستند‪.‬‬
‫انواع رابطه‬
‫‪ -1‬مبنا‪ :‬استقالل وجودي دارد و از رابطه‌هاي ديگر مشتق نيست ‌و‬
‫داده‌هاي ذخيره‌شده متناظر دارد‪.‬‬
‫‪ -2‬نامدار‪ :‬با يك نام به سيستم معرفي مي‌شود‪.‬‬
‫‪ -3‬ديد‪ :‬نوعي رابطه نامدار كه مشتق از رابطه‌هاي ديگر است و ماهيتا‬
‫مجازي است‪.‬‬
‫‪ -4‬لحظه‌اي‪ :‬نامدار و مشتق است ولي مجازي نيست‪.‬‬
‫‪ -5‬مشتق‪ :‬به كمك يك عبارت رابطه‌اي بر حسب رابطه‌هاي مبنا‬
‫تعريف مي‌شود‪.‬‬
‫ادامه‬
‫انواع رابطه‬
‫‪ -6‬عبارتي‪ :‬از مجموعه‌اي از رابطه‌هاي نامدار و به وسيله يك عبارت‬
‫رابطه‌اي به دست مي‌آيد‪.‬‬
‫پرسش‬
‫‪ -7‬نتيجه پرسش‪ :‬بي‌نام و مشتق است كه حاصل اجراي يك ‌‬
‫مشخص است‪.‬‬
‫‪ -8‬بينابيني‪ :‬بي‌نام و مشتق است كه حاصل ارزيابي يك عبارت‬
‫رابطه‌اي است كه درون يك عبارت بزرگتر جاي دارد‬
‫‪ -9‬مشتق‪ :‬رابطه‌اي عبارتي است كه به طور مستقيم و كارا ذخيره‬
‫شده است‪.‬‬
‫ميدان (دامنه)‬
‫از نظر رياض ي‪ ،‬مجموعه‌اي است از مقادير كه يك يا بيش از‬
‫يك صفت از آن مقدار مي‌گيرند‪ .‬در مدل رابطه‌اي‪ ،‬اين‬
‫مجموعه‪:‬‬
‫• نامدار است‪.‬‬
‫• مقاديرش نوع مشخص دارند‪.‬‬
‫• مقاديرش فرمت مشخص دارند‪.‬‬
‫مزاياي ميدان‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫سبب ساده‌ترشدن و كوتاه‌تر شدن شماي پايگاه داده‌ها مي‌شود‪.‬‬
‫تغيير در شماي پايگاه را تسهيل مي‌كند‪.‬‬
‫امكاني است براي كنترل مقداري عمليات در پايگاه داده‌ها‪.‬‬
‫امكاني است براي كنترل معنايي درخواستها‪.‬‬
‫پاسخگويي به بعض ي پرسشها را آسان مي‌كند‪.‬‬
‫با استفاده از مفهوم ميدان مي‌توان امكانات و جنبه‌هاي موج ‌ود در‬
‫سيستم مديريت پايگاه داده‌هاي شيئ‌گرا را به سيستم مديريت‬
‫پايگاه داده‌هاي رابطه‌اي افزود‪.‬‬
‫رابطه نرمال و غير نرمال‬
‫• رابطه نرمال ‪:‬‬
‫رابطه اي است که مقادير هيچيک از ميدانهايش ‪ ،‬يک مقدار رابطه‬
‫اي با کارديناليتي بزرگتر از يک نباشد‬
‫• رابطه غير نرمال ‪:‬‬
‫رابطه اي است که در آن مقادير حداقل يک صفت ‪ ،‬خود مقادير‬
‫رابطه‌اي هستند‬
‫(رابطه اي که حداقل يک صفت چند مقداري داشته باشد)‬
‫دليل لزوم نرمال بودن رابطه‬
‫‪ -1‬سادگي در نمايش ظاهري رابطه (جدول با سطرهاي ساده‌تر)‬
‫‪ -2‬سادگي دستورات ‪( DSL‬بويژه ‪ DML‬و ‪)DDL‬‬
‫‪ -3‬سادگي در اجراي عمليات در پايگاه داده‌ها‬
‫معايب رابطه نرمال‬
‫‪ -1‬بروز پديده افزونگي كه مي‌تواند فيزيكي هم باشد‪.‬‬
‫‪ -2‬طوالني‌تر شدن كليد رابطه‪.‬‬
‫‪ -3‬عدم امكان نمايش داده‌هاي پيچيده‪.‬‬
‫‪ -4‬دشواري در نمايش طبيعي مفهوم سلسله مراتب‪.‬‬
‫‪ -5‬دشواري در نمايش مفهوم وراثت‪.‬‬
‫مزايا و معايب رابطه غيرنرمال‬
‫مزايا‪:‬‬
‫‪ -1‬كاهش ميزان افزونگي‬
‫‪ -2‬كوتاه شدن كليد‬
‫‪ -3‬امكان نمايش داده‌هاي پيچيده‬
‫‪ -4‬دشواري كمتر در نمايش مفهوم سلسله‌مراتب و مفهوم وراثت‬
‫‪ -5‬افزايش سرعت عملياتي سيستم در بازيابي اطالعات‬
‫‪ -6‬عدم نياز به نرمالترسازي رابطه‬
‫معايب‪:‬‬
‫‪ -1‬پيچيدگي‬
‫‪ -2‬عدم تقارن صفات‬
‫کليد در مدل رابطهاي‬
‫در مدل رابطه اي چند مفهوم در بحث کليد داريم که عبارتند از‪:‬‬
‫‪ .1‬ابر کليد (‪)super key‬‬
‫‪ .2‬کليد کانديد (‪)candidate key‬‬
‫‪ .3‬کليد اصلي (‪)primary key‬‬
‫‪ .4‬کليد ديگر (‪)alternate key‬‬
‫‪ .5‬کليد خارجي (‪)foreign key‬‬
‫ابر كليد‬
‫تعريف‪ -‬هر زيرمجموعه از مجموعه عنوان رابطه كه‬
‫يكتايي مقدار در گستره رابطه داشته باشد‪.‬‬
‫كليد كانديد‬
‫تعريف‪ -‬هر زيرمجموعه از مجموعه عنوان رابطه كه‬
‫دو خاصيت زير را داشته باشد كليد كانديد رابطه‬
‫است‪:‬‬
‫‪ -1‬يكتايي مقدار‬
‫ي‬
‫‪ -2‬كاهش‌ناپذير ‌‬
‫كليد اصلي‬
‫تعريف‪ -‬يكي از كليدهاي كانديد رابطه كه طراح‬
‫انتخاب مي‌كند و به سيستم معرفي مي‌شود‪.‬‬
‫ضابطه‌هاي انتخاب‪:‬‬
‫‪ -1‬از نظر كاربر‪ ،‬شناسه معمول نوع موجوديت باشد‪.‬‬
‫‪ -2‬طول كوتاهتر داشته باشد‪.‬‬
‫كليد ديگر (بديل)‬
‫تعريف‪ -‬هر كليد كانديد‪ ،‬غير از كليد اصلي‪ ،‬كليد‬
‫ديگر نام دارد‪.‬‬
‫كليد خارجي‬
‫تعريف‪ -‬دورابطه ‪1‬و‪2 R‬را‪R‬در نظر مي‌گيريم‪ .‬هر زيرمجموعه از صفات‬
‫هر‪R‬مقدار معلومش با يك مقدار از كليد كانديد برابر باشد‪،‬‬
‫رابطه‬
‫كه ‪2‬‬
‫‪R1‬‬
‫است‪R.‬‬
‫كليد خارجي در رابطه‬
‫‪2‬‬
‫كليد خارجي براي نمايش ارتباطات بين انواع موجوديتها به‌كار مي‌رود‪.‬‬
‫جلسه دهم‬
‫قواعد جامعيت پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬جامعيت پايگاه دادهها‬
‫‪ -2‬عوامل نقض جامعيت‬
‫‪ -3‬انواع قواعد جامعيت‬
‫‪ -4‬قواعد كاربري و انواع آن‬
‫‪ -5‬متاقواعد و انواع آن‬
‫‪ -6‬راههاي اعمال قواعد جامعيت‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -7‬عملگرهاي جبر رابطهاي‬
‫‪ -8‬كاربردهاي جبر رابطهاي‬
‫‪ -9‬حساب رابطهاي‬
‫‪ -10‬مزايا و معايب مدل رابطهاي‬
‫‪ -11‬كاتالوگ در مدل رابطهاي‬
‫‪ -12‬اشيائي كه اطالعات آنها در كاتالوگ نگهداري ميشود‬
‫هدفهاي كلي‪ :‬آشنايي با قواعد جامعيت پايگاه داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• جامعيت پايگاه داده‌ها و عوامل نقض آن را توضيح دهد‪.‬‬
‫• انواع قواعد جامعيت را نام برده و راههاي اعمال آن را شرح دهد‪.‬‬
‫• جبر رابطه‌اي و حساب رابطه‌اي را توضيح دهد‪.‬‬
‫• مزايا و معايب مدل رابطه‌اي را نام ببرد‪.‬‬
‫جامعيت پايگاه دادهها‬
‫يعني‪ :‬صحت‪ ،‬دقت و سازگاري داده‌هاي‬
‫ذخيره‌شده در پايگاه در تمام لحظات‬
‫عواملي كه سبب نقض جامعيت ميشوند‪:‬‬
‫• اشتباه در برنامه‌هاي كاربردي‬
‫• اشتباه در وارد كردن داده‌ها‬
‫• وجود افزونگي كنترل نشده‬
‫• توارد تراكنشها به گونه‌اي كه داده نامعتبر ايجاد شود‪.‬‬
‫ي‬
‫• خرابيهاي سخت‌افزاري و نرم‌افزار ‌‬
‫انواع قواعد جامعيت‬
‫‪ -1‬قواعد كاربري (قواعد خاص)‬
‫‪ -2‬متا قواعد (قواعد عام)‬
‫‪ -1‬قواعد كاربري‬
‫قواعدي هستند كه توسط كاربرمجاز تعريف مي‌شوند‪.‬‬
‫وابسته به داده‌هاي خردجهان واقع هستند‪ ،‬به اين‬
‫معنا كه در مورد يك پايگاه داده خاص مطرح مي‌شوند‬
‫و عموميت ندارند‪ .‬به اين قواعد‪ ،‬قواعد محيطي يا‬
‫وابسته به داده و يا محدوديتهاي جامعيت معنايي‬
‫مي‌گويند‪.‬‬
‫نماي سادهشده يك ‪ DBMS‬فعال‬
‫تعاريف قواعد‬
‫تحليلگر قواعد‬
‫ارزياب شرايط‬
‫موتور‌‬
‫قواعد‬
‫مجري اقدامات‬
‫مونيتور رويدادها‬
‫هسته ‪DBMS‬‬
‫ديكشنري قواعد‬
‫(بخش ي از متاداده)‬
‫پرسشها‬
‫انواع قواعد كاربري در مدل رابطهاي‬
‫‪ -1‬محدوديت ميداني‪ :‬ناظر بر يك ميدان است و مقادير مجاز آن را‬
‫مشخص مي‌كند‪.‬‬
‫‪ -2‬محدوديت صفتي (ستوني)‪ :‬ناظر به يك صفت است و بيان‌كننده‬
‫نوع آن صفت است‪.‬‬
‫‪ -3‬محدوديت رابطه‌اي‪ :‬ناظر بر يك رابطه است و مقادير مجاز يك تغيير‬
‫رابطه‌اي را مشخص مي‌كند‪.‬‬
‫‪ -4‬محدوديت پايگاهي‪ :‬ناظر بر دو يا بيش از دو متغير رابطه‌اي است و‬
‫به نحوي آنها را به يكديگر مرتبط‌ مي‌كند‪.‬‬
‫‪ -2‬متاقواعد‬
‫قواعدي هستند كه بايد توسط‬
‫هرسيستم رابطه‌اي در هر پايگاه داده‬
‫رابطه‌اي اعمال شود‪ ،‬ناوابسته به‬
‫داده‌هاي خاص هستند و عموميت دارند‪.‬‬
‫انواع متاقواعد‬
‫‪ -1‬قاعده ‪(C1‬جامعيت موجوديتي)‬
‫‪ -2‬قاعده ‪( C2‬جامعيت ارجاعي)‬
‫قاعده ‪C1‬‬
‫ناظر به كليد اصلي است و چنين است‪:‬‬
‫هيچ جزء تشكيل‌دهنده كليد اصلي نمي‌تواند هيچمقدار‬
‫داشته باشد‪.‬‬
‫قاعده ‪C2‬‬
‫ناظر بر كليد خارجي است و چنين است‪:‬‬
‫اگر صفت خاصه ‪ Ai‬در رابطه ‪ R2‬كليد خارجي باشد در اين صورت‪:‬‬
‫‪ Ai‬در ‪ R2‬مي‌تواند هيچ‌مقدار داشته باشد يا اينكه بايد حتما مقداري‬
‫داشته باشد كه در رابطه مرجع ‪ R1‬وجود دارد‪ .‬به عبارت ديگرمقدار كليد‬
‫خارجي يك رابطه نمي‌تواند در رابطه مرجع وجود داشته باشد‪.‬‬
‫به قواعد ‪ C1‬و ‪ C2‬محدوديتهاي ساختاري مي‌گويند‬
‫• وابستگي‌هاي تابعي‬
‫ي‬
‫• وابستگي‌هاي چندمقدار ‌‬
‫ي‬
‫محدوديتهاي ناساختار ‌‬
‫• وابستگي‌هاي شمو ‌ل‬
‫• وابستگي زماني‬
‫ي‬
‫• وابستگي برابر ‌‬
‫راههاي اعمال قواعد جامعيت‬
‫‪ -1‬معرفي كليد اصلي‬
‫‪ -2‬اعالم هيچ مقدارناپذيري صفت‬
‫‪ -3‬معرفي كليد خارجي‬
‫‪ -4‬اعالن محدوديتهاي مورد نظر‪ ،‬در شماي پايگاه داده‌ها‬
‫‪ -5‬نوشتن رهانا‬
‫‪ -6‬اعالن محدوديتها با استفاده از مكانيسم اظهار‬
‫عملگرهاي معمولي‬
‫‪ -1‬اجتماع‬
‫‪ -2‬اشتراك‬
‫‪ -3‬تفاضل‬
‫‪ -4‬ضرب كارتزين‬
‫عملگرهاي جبر‬
‫رابطهاي‬
‫عملگرهاي خاص‬
‫‪ -1‬گزينش (تحديد)‬
‫‪ -2‬پرتو‬
‫‪ -3‬پيوند‬
‫‪ -4‬تقسيم‬
‫عملگر گزينش تاپلهايي از يك رابطه را گزينش مي‌كند (سطرهايي از‬
‫جدول را)‪ .‬اين عملگر تك عملوندي است و به صورت زير نوشته‬
‫مي‌شود‪:‬‬
‫)‪R WHERE cond(s‬‬
‫* )‪ cond(s‬شرط يا شرايط گزينش را مشخص مي‌كند‪.‬‬
‫علمگر پرتو‪ ،‬مقادير صفت (صفاتي) از يك رابطه را به دست مي‌دهد‪.‬‬
‫تك عملوندي بوده و چنين نوشته مي‌شود‪:‬‬
‫)‪PROJECT R OVER(A1,A2,…,Ai‬‬
‫عملگر پيوند دو عملوندي است و چنين نوشته مي‌شود‪:‬‬
‫‪R1 JOIN cond(s) R2‬‬
‫كه در آن )‪ cond(s‬چنين است‪:‬‬
‫‪R1.Ai theta R2.Bi‬‬
‫‪ Ai‬يك صفت از رابطه ‪ R1‬و ‪ Bi‬يك صفت از رابطه ‪ R2‬است كه از يك ميدان‬
‫مقدار مي‌گيرند و بايد ناهمنام باشند‪.‬‬
‫كاربردهاي جبر رابطهاي‬
‫‪ -1‬بازيابي داده‌ها‬
‫‪ -2‬ذخيره‌سازي داده‌ها‬
‫‪ -3‬تعريف انواع رابطه‌هاي مشتق‬
‫‪ -4‬تعريف قواعد براي كنترل پايگاه داده‌ها‬
‫‪ -5‬تعريف داده‌ها به عنوان حيطه بعض ي عمليات كنترل‬
‫همروندي تراكنشها‬
‫‪ -6‬ضابطه تشخيص كامل بودن زبانهاي رابطه‌اي‬
‫حساب رابطهاي‬
‫حساب رابطه‌اي‪ ،‬با جبر رابطه‌اي منطقا معادل است‪،‬‬
‫يعني براي هر عبارت جبر رابطه‌اي‪ ،‬يك عبارت معادل در‬
‫حساب رابطه‌اي وجود دارد و برعكس‪ .‬تفاوت آنها اين‬
‫است كه جبر رابطه‌اي‪ ،‬دستوري است‪ ،‬اما حساب‬
‫رابطه‌اي توصيفي است‪.‬‬
‫• حساب تاپلي‪ :‬در اين حساب مفهوم مهمي به نام متغير‬
‫تاپلي وجود دارد كه تنها مقادير مجازش‪ ،‬تاپلهاي ‌رابطه‬
‫حساب رابطه‌اي‬
‫هستند‪.‬‬
‫• حساب ميداني‪ :‬در اين حساب‪ ،‬متغير ميداني وجود‬
‫دارد كه از يك ميدان مقدار مي‌گيرد‪ .‬در اين حساب يك‬
‫شرط اضافي به نام شرط عضويت وجود دارد‪.‬‬
‫در حساب رابطه‌اي تاپلي دو سور وجود دارد‪:‬‬
‫‪ -1‬سور وجودي‪ :‬به صورت ) ‪T ( f‬‬
‫نوشته مي‌شود‪ ،‬به اين معنا كه‬
‫حداقل يك مقدار براي متغير ‪ T‬وجود دارد به نحوي كه ‪ f‬به‬
‫”درست“ ارزيابي شود‪.‬‬
‫‪ -2‬سور همگاني‪ :‬به صورت ) ‪T ( f‬نوشته مي‌شود‪ .‬يعني به ازاء‬
‫تمام مقادير متغير ‪ f ،T‬به ”درست“ ارزيابي مي‌شود‪.‬‬
‫مزاياي مدل رابطهاي‬
‫‪ -1‬نمايش ساده‬
‫‪ -2‬مبناي رياض ي دارد‪.‬‬
‫‪ -3‬تامين‌كننده استقالل داده‌اي است‪.‬‬
‫‪ -4‬يك عنصر ساختاري اساس ي به نام رابطه دارد‪.‬‬
‫‪ -5‬كامل است‪.‬‬
‫‪ -6‬عدم نياز به مفهوم كالسيك نظم‪.‬‬
‫‪ -7‬براي بهترسازي طراحي‪ ،‬ابزار طراحي بهتر دارد‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫معايب مدل رابطهاي‬
‫‪ -1‬دشواري در نمايش داده‌هاي پيچيده‬
‫‪ -2‬دشواري در نمايش مفاهيمي مانند وراثت‪ ،‬تعميم و ‪...‬‬
‫‪ -3‬نداشتن قواعد جامعيت ذاتي‬
‫‪ -4‬عدم امكان مدلسازي رفتار اشياء‬
‫‪ -5‬فقدان اكمال برنامه‌سازي و اكمال محاسباتي‬
‫‪ -6‬دشواري در يافتن كليد كانديد‬
‫‪ -7‬جدا بودن داده‌ها از روشها‬
‫‪ -8‬مشكالت ناش ي از وجود مفهوم هيچ‌مقدار‬
‫‪.‬‬
‫‪.‬‬
‫كاتالوگ در مدل رابطهاي‬
‫كاتالوگ در مدل رابطه‌اي‪ ،‬تعدادي رابطه است‪ :‬يك پايگاه‬
‫رابطه‌اي كه خود سيستم ايجاد مي‌كند‬
‫در كاتالوگ اطالعاتي در مورد اشياء ذيل‬
‫نگهداري ميشود‪:‬‬
‫• ميدان‬
‫• رابطه‬
‫• صفت‬
‫• ديد‬
‫• قواعد جامعيت‬
‫• توابع و رويه‌هاي تعريف‌شده توسط كاربر‬
‫• رهاناهاي تعريف‌شده توسط كاربر‬
‫• كاربر‬
‫• شاخص و ساختارهاي مرتبط با آن‬
‫• ضوابط ايمني‬
‫• پرسشها‬
‫• برنامه‌هاي كاربردي‬
‫جلسه يازدهم‬
‫زبان ‪SQL‬‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬انواع زبانهاي رابطه اي‬
‫‪ -2‬امكانات مهم زبان ‪SQL‬‬
‫‪ -3‬دستورات تعريف داده ها‪ ،‬دستور ايجاد و حذف جدول و‬
‫ديد‬
‫‪ -4‬دستور مجازشماري‬
‫‪ -5‬دستورات پردازش داده ها‬
‫‪ -6‬توابع جمعي (گروهي)‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -7‬امكان ‪ LIKE‬و ‪NOTLIKE‬‬
‫‪ -8‬آزمون تست وجود هيچمقدار در يك ستون‬
‫‪ -9‬امكان ‪ UNION‬و ‪UNION ALL‬‬
‫‪ -10‬امكان ‪( :GROUP BY‬گروهبندي)‬
‫‪ -11‬امكان ‪HAVING‬‬
‫‪ -12‬امكان ‪BETWEEN‬‬
‫هدفهاي كلي‪ :‬آشنايي با زبان ‪SQL‬‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• امكانات زبان ‪ SQL‬را بيان كند‪.‬‬
‫• انواع دستورات تعريف داده‌ها و پردازش داده‌ها ياد گرفته و مي‌تواند‬
‫استفاده كند‪.‬‬
‫آشنايي با يک زبان رابطه اي ‪SQL :‬‬
‫انواع زبانهاي رابطه‌اي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪SQUARE‬‬
‫‪SEQUEL‬‬
‫‪SQL‬‬
‫‪QUEL‬‬
‫‪QBE‬‬
‫‪DATALOG‬‬
‫امكانات مهم زبان ‪SQL‬‬
‫• دستورات تعريف داده‌ها‬
‫ي‬
‫• دستورات مجازشمار ‌‬
‫• دستورات پردازش داده‌ها‬
‫• دستورات پردازش داده‌ها به طور ادغام‌شدني‬
‫• دستورات نوشتن ماژول و رويه‬
‫• دستورات كنترل جامعيت‬
‫• دستورات كنترل تراكنشها‬
‫ دستورات تعريف دادهها‬.1
: ‫ تعريف شما‬-1 -1
CREATE SCHEMA
AUTHORIZATION USER
{base – table definition , view definition ,
grant-operation }
‫ دستورات تعريف دادهها‬.1
CHARACTER[(length)]
INTEGER
DECIMAL [(precision[,scale])]
SMALLINT
DOUBLE PRECISION
REAL
FLOAT [(precision)]
NUMERIC [(precision[,scale])]
:‫ انواع داده‌اي‬-2 -1
‫ دستورات تعريف دادهها‬.1
: ‫ دستور ايجاد جدول‬-3 -1
CREATE SCHEMA
AUTHORIZATION …
CREATE TABLE …
‫‪ .1‬دستورات تعريف دادهها‬
‫‪ -4 -1‬دستور حذف جدول‌‪:‬‬
‫‪DROP TABLE table-name‬‬
‫‪ .1‬دستورات تعريف دادهها‬
‫‪ -5 -1‬دستور ايجاد و حذف ديد‪:‬‬
‫… ‪CREATE VIEW‬‬
‫… ‪VIEW‬‬
‫‪DROP‬‬
‫‪ .1‬دستورات تعريف دادهها‬
‫‪ -6 -1‬دستور مجاز شماري‌‪:‬‬
‫‪GRANT , REVOKE‬‬
‫با اين دستور حق انجام يك يا بيش از يك عمل به كاربر (كاربراني) داده‬
‫مي‌شود‪.‬‬
‫ دستورات پردازش داده ها‬-2
:) SELECT ( ‫ دستور بازيابي‬-1 -2
SELECT [ALL | DISTINCT] item(s)-list
FROM table(s)-name
[WHERE condition(s)]
[GROUP BY column(s)]
[HAVING conditions(s)]
‫توابع جمعي (گروهي)‬
‫• ‪ :COUNT‬تعداد مقادير اسكالر را به دست مي‌دهد‪.‬‬
‫• ‪ :SUM‬حاصل جمع مقادير اسكالر در يك ستون را به دست مي‌دهد‪.‬‬
‫• ‪ :AVG‬ميانگين مقادير اسكالر در يك ستون را به دست مي‌دهد‪.‬‬
‫• ‪ :MAX‬بيشترين مقدار اسكالر در يك ستون را به دست مي‌دهد‪.‬‬
‫• ‪ :MIN‬كمترين مقدار اسكالر در يك ستون را به دست مي‌دهد‪.‬‬
‫يك مثال در مورد استفاده از توابع جمعي‬
‫)‪SELECT MIN(GRADE) , MAX(GRADE‬‬
‫‪FROM STCOT‬‬
‫’‪WHERE TR=‘2‬‬
‫‪AND‬‬
‫’‪YRYR=’78-79‬‬
‫‪AND‬‬
‫;’‪COID=‘COM222‬‬
‫باالترين و پايين ترين نمره در درس ‪ COM222‬در ترم دوم ‪ 79-80‬را بازيابي‬
‫مي‌كند‪.‬‬
‫امكان ‪ LIKE‬و ‪NOTLIKE‬‬
‫با اين دو امكان مي‌توان داده‌هاي مورد نظر را با دادن يك رشته‬
‫كاراكتري به عنوان نشانوند جستجو و بيان شرايط مورد نظر‪،‬‬
‫بازيابي كرد‪.‬‬
‫مثال‪ :‬مشخصات استاداني را بدهيد كه نام آنها با ‪ AR‬شروع شده باشد‪.‬‬
‫* ‪SELECT‬‬
‫‪FROM PROF‬‬
‫;’‪WHERE PRNAME LIKE ‘AR%‬‬
‫آزمون تست وجود هيچمقدار در يك ستون‬
‫مي‌توان با امكان ‪ IS NULL‬وجود هيچ مقدار در يك ستون‬
‫را تست كرد‪.‬‬
‫مثال‪ :‬شماره دانشجوياني را بدهيد كه نمره آنها در درس ‪ SOC333‬در ترم دوم‬
‫‪ 78-79‬هنوز اعالم نشده است؟‬
‫‪SELECT STID‬‬
‫‪FROM STCOT‬‬
‫’‪WHERE COID=‘SOC333‬‬
‫‪AND‬‬
‫’‪TR=‘2‬‬
‫‪AND‬‬
‫’‪YRYR=’78-79‬‬
‫‪AND‬‬
‫‪GRADE IS NULL‬‬
‫امكان ‪ UNION‬و ‪UNION ALL‬‬
‫با اين امكان‪ ،‬مي‌توان عملكرد عملگر ‪ UNION‬جبري را‬
‫برنامه‌سازي كرد‪ .‬حاصل اين عملكرد‪ ،‬جدولي است كه‬
‫سطرهاي تكراري ندارد‪ .‬اگر از گزيدار ‪ ALL‬استفاده شود‪،‬‬
‫سيستم ديگر سطرهاي تكراري را در صورت وجود‪ ،‬حذف‬
‫نمي‌كند‪.‬‬
‫امكان ‪( :GROUP BY‬گروهبندي)‬
‫با اين امكان مي‌توان سطرهاي جدول را حسب مقادير يك ستون‬
‫ساده گروه‌بندي كرد به نحوي كه در هر گروه‪ ،‬مقدار آن ستون‬
‫يكسان باشد‪.‬‬
‫ منطقا‬COID ‫ را برحسب مقادير ستون‬STCOT ‫ جدول‬:‫مثال‬
.‫گروه‌بندي كنيد‬
SELECT COID, AVG(GRADE) AS
AVGGR
FROM STCOT
GROUP BY COID;
‫امكان ‪HAVING‬‬
‫با اين امكان مي‌توان شرط (شرايطي) ناظر به گروه سطرها اع ‌الن‬
‫كرد‪ .‬نقش اين امكان در واقع همان نقش ‪ WHERE‬در سطر‬
‫است‪ .‬توجه داشته باشيد كه ‪ HAVING‬هميشه با‬
‫‪ GROUP BY‬مي‌آيد‪.‬‬
‫مثال‪ :‬شماره درسهايي را بدهيد كه در ترم دوم ‪ 78-79‬كمتر از ‪ 10‬دانشجو در‬
‫آنها ثبت نام كرده باشند‪.‬‬
‫‪SELECT STCOT.COID‬‬
‫‪FROM STCOT‬‬
‫’‪WHERE TR=‘2‬‬
‫‪AND‬‬
‫’‪YRYR=’78-79‬‬
‫‪GROUP BY COID‬‬
‫‪HAVING COUNT(*)<10‬‬
BETWEEN ‫امكان‬
:‫شكل كلي اين امكان چنين است‬
Scalar-expression [NOT] BETWEEN Scalar-expression AND Scalar-expression
‫ در ترم‬HIS444 ‫ شماره دانشجوياني را بدهيد كه نمره آنها در درس‬:‫مثال‬
.‫ باشد‬19 ‫ و‬15 ‫ بين‬77-78 ‫اول‬
SELECT STCOT.STID
FROM STCOT
WHERE TR=‘1’
AND
YRYR=’78’79’
AND
GRADE BETWEEN ’15’ AND ’19’
‫جلسه دوازدهم‬
‫ادامه زبان ‪SQL‬‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬دستورات عمليات ذخيرهسازي (درج‪ ،‬حذف و‬
‫بهنگامسازي)‬
‫‪ -2‬جمعبندي در مورد امكانات نسخه ‪SQL1‬‬
‫‪ -3‬دستوراتي كه در نسخه ‪ SQL2‬تغيير كردند يا به آن‬
‫اضافه شدند‬
‫‪ -4‬امكانات جامعيتي‬
‫‪ -5‬امكانات ايمني‬
‫‪ -6‬امتيازها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -7‬دستوراتي كه در نسخه ‪ SQL3‬تغيير كردند يا به آن‬
‫اضافه شدند‬
‫‪ -8‬نوع داده مجرد‬
‫‪ -9‬تعريف رهانا و مزايا و موارد كاربرد آن‬
‫‪ -10‬تراكنش‬
‫‪ -11‬طرحهاي اجراي تراكنشها‬
‫‪ -12‬تكنيكهاي كنترل همروندي‬
‫هدفهاي كلي‪ :‬آشنايي با زبان ‪SQL‬‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• از دستورات ذخيره‌سازي استفاده كند‪.‬‬
‫• امكانات اضافه‌شده در نسخه ‪ SQL2‬را بيان كند‪.‬‬
‫• امكانات اضافه‌شده در نسخه ‪ SQL3‬را بيان كند‪.‬‬
‫‪ -2‬دستورات پردازش داده ها‬
‫‪ -2 -2‬دستورات عمليات ذخيره‌سازي ‪:‬‬
‫براي انجام عمليات سه‌گانه ذخيره‌سازي سه دستور ‪،DELETE‬‬
‫‪ INSERT‬و ‪ UPDATE‬وجود دارد‪.‬‬
UPDATE ‫دستور‬
:‫شكل كلي اين دستور چنين است‬
UPDATE table-name
SET assignment-commalist
[WHERE Condition(s)]
‫مثال‪ :‬تعداد واحد درسهاي عملي را يك واحد كاهش دهيد‪.‬‬
‫‪UPDATE COT‬‬
‫‪SET CREDIT=CREDIT-1‬‬
‫;’‪WHERE COTYPE=‘p‬‬
DELETE ‫دستور‬
:‫شكل كلي اين دستور چنين است‬
DELETE
FROM table-name
[WHERE Cond(s)]
‫مثال‪ :‬درسهاي دانشجوي با شماره ‪ 78110555‬را در ترم دوم سال ‪ 78-79‬حذف‬
‫كنيد‬
‫‪DELETE‬‬
‫‪FROM STCOT‬‬
‫’‪WHERE STID=‘78110555‬‬
‫‪AND‬‬
‫’‪TR=‘2‬‬
‫‪AND‬‬
‫;’‪YRYR=’78-79‬‬
INSERT ‫دستور‬
:‫اين دستور دو شكل كلي دارد‬
INSERT INTO table-name
Values(one row);
INSERT INTO table-name
Subquery;
.‫ تعدادي سطر در جدول درج مي‌شوند‬،‫در شكل دوم‬
‫مثال‪ :‬اطالعات درس ي زير را در جدول درج نمائيد‪.‬‬
‫>‪<78110888,COM888,2,78-79,12‬‬
‫‪INSERT INTO STCOT‬‬
‫;>‪VALUES <‘78110888’, ‘COM888’, 2, 78-79, 12‬‬
‫جمعبندي در مورد امكانات نسخه ‪SQL1‬‬
‫‪ -1‬نارويه‌اي است‪.‬‬
‫‪ -2‬داراي كمال ساختاري است‪.‬‬
‫‪ -3‬زبان استانده سيستم‌هاي رابطه‌اي موجود است‪.‬‬
‫‪ -4‬تمام انواع داده‌اي ساده را دارد‪.‬‬
‫‪ -5‬عملگرهاي بسيار قوي دارد‪.‬‬
‫‪ -6‬يادگيري آن ساده است‪.‬‬
‫‪ -7‬استقالل داده‌اي را تامين مي‌كند‪.‬‬
‫‪ -8‬هم به صورت مستقل و هم به صورت ادغام‌شده قابل استفاده است‪.‬‬
‫دستوراتي كه در نسخه ‪ SQL2‬تغيير كردند يا به آن‬
‫اضافه شدند‪:‬‬
‫‪ .1‬دستور تعريف داده‌ها‬
‫‪ .8‬دستور حذف جدو ‌ل‬
‫‪ .2‬دستور تعريف ميدان‬
‫‪ .9‬تعريف جدول موقت‬
‫‪ .3‬انواع داده‌اي‬
‫‪ .10‬دستور بازيابي‬
‫‪ .4‬دستور تغيير ميدان‬
‫‪ .11‬امكانات جامعيتي‬
‫‪ .5‬دستور حذف ميدان‬
‫‪ .12‬امكانات ايمني‬
‫‪ .6‬دستور ايجاد جدول‌‬
‫‪ SQL .13‬پويا‬
‫‪ .7‬دستور تغيير جدول‌‬
‫امكانات جامعيتي‬
‫كاربر مي‌تواند زمان وارس ي جامعيت پايگاه را (براساس محدوديتها و‬
‫قواعد داده‌شده) خود مشخص كند‪ .‬مي‌تواند درخواست كند كه‬
‫اين وارس ي بالفاصله باشد يا با تاخير‪ .‬براي اين منظور از امكان زير‬
‫استفاده مي‌شود‪:‬‬
‫)‪SET CONSTRAINTS (constraint-name‬‬
‫}‪{DEFERRED | IMMEDIATE‬‬
‫امكانات ايمني‬
‫كاربر مي‌تواند امتياز دستيابي به اشياء تعريف‌شده در شما ‌را به‬
‫منظور انجام عمل مشخص‪ ،‬به كاربر ديگري بدهد‪.‬‬
‫براي اعطاي امتياز از دستور ‪ GRANT‬و براي لغو آن از دستور‬
‫‪ REVOKE‬استفاده مي‌شود‪.‬‬
‫امتيازها‬
‫امتيازهايي كه يك كاربر مي‌تواند به يك كاربر ديگر بدهد‪:‬‬
‫• ‪ :USAGE‬اجازه استفاده از يك ميدان‬
‫• ‪ :SELECT‬اجازه دستيابي به تمام ستونهاي يك جدو ‌ل‬
‫• )‪ :INSERT(X‬اجازه درج يك مقدار در ستون ‪ X‬از يك جدول‌‬
‫• ‪ :INSERT‬اجازه درج تمام ستونهاي يك جدو ‌ل‬
‫• )‪ :UPDATE(X‬اجازه بهنگام‌سازي ستون ‪ X‬از يك جدول‌‬
‫• ‪ :UPDATE‬اجازه بهنگام‌سازي تمام ستونهاي يك جدول‌‬
‫• ‪ :DELETE‬اجازه حذف سطر(ها) از يك جدول‌‬
‫• )‪ :REFRENCES(X‬اجازه ارجاع به ستون ‪ X‬از يك جدول در تعريف‬
‫محدوديتهاي جامعيتي‬
‫دستوراتي كه در نسخه ‪ SQL3‬تغيير كردند يا‬
‫به آن اضافه شدند‪:‬‬
‫‪ .1‬تعريف نوع داده مجرد‬
‫‪ .2‬تعريف زيرنوع‬
‫‪ .3‬امكان تعريف زيرجدول و زبرجدول‌‬
‫‪ .4‬امكان ارث‌بري ستونهاي جدول جديد از ستونهاي جدول نامدار موجود‬
‫‪ .5‬رويه‌اي شدن زبان‬
‫‪ .6‬رهانا‬
‫‪ .7‬نوشتن رويه‬
‫‪ SQL .8‬ادغام‌شده‬
‫‪ .9‬واسط درخواست فراخوان‬
‫‪ .10‬دستورات كنترل تراكنشها‬
‫نوع داده مجرد‬
‫شايد مهمترين قابليتي كه در زمينه انواع داده‌اي در‬
‫‪ SQL3‬افزوده شد‪ ،‬امكان تعريف نوع داده مجرد‬
‫(‪ )ADT‬باشد‪ .‬با اين نوع داده مي‌توان مجموعه‌اي از‬
‫صفات و روالها را تعريف كرد‪ .‬نوع داده مجرد نمونه‌هايي‬
‫دارد و هر نمونه هم به نوبه خود‪ ،‬همه صفات و روالهاي‬
‫تعريف‌شده را دارد‪.‬‬
‫ساختهاي زباني افزوده‌شده به ‪ ،SQL3‬كه در تعريف توابع و رويه‌ها‬
‫استفاده مي‌شود‪:‬‬
‫• احكام مركب (تودرتو)‬
‫• احكام حلقه‌گرداني)‬
‫• احكام شرطي‬
‫• احكام انتساب‬
‫• احكام اعالن اشتباهات در برنامه‬
‫رهانا‬
‫تعريف‪ -‬قاعده (محدوديت) يا قواعدي است كه قبل يا بعد از بروز يك‬
‫رويداد در پايگاه داده‌ها (معموال يك عمل تغييردهنده داده‌ها) بايد‬
‫اعمال شود‪ .‬اين قاعده در سطح برنامه‌سازي‪ ،‬به صورت يك رويه از‬
‫پيش تعريف‌شده است كه به طور شرطي يا غيرشرطي‪ ،‬قبل يا بعد از‬
‫انجام يك عمل در پايگاه داده‌ها‪ ،‬به طور اتوماتيك اجرا مي‌شود‪.‬‬
‫رهانا‬
‫مزايا‬
‫‪.1‬اجراي آن تحت كنترل متمركز سيستم و نظارت مدير پايگاه‬
‫داده‌ها است‪.‬‬
‫هر‬
‫‪.2‬با وجود آن ديگر نيازي نيست كه محدوديتهاي مورد نظر در ‌‬
‫برنامه كاربردي اعمال شوند و كنترلهاي الزم انجام شود‪.‬‬
‫‪.3‬براي معماري ‪ C/S DB‬بسيار مناسب است‪.‬‬
‫كاربرد رهانا‬
‫‪ .1‬اعمال قواعد جامعيت‪.‬‬
‫‪ .2‬اعمال قواعد ايمني مبتني بر مقادير‬
‫‪ .3‬درج ركوردهاي ثبت عمليات در فايل ثبت تراكنشها‬
‫‪ .4‬توليد نسخه‌اي از داده‌هاي ذخيره‌شده در يك سايت ديگر‪.‬‬
‫‪ .5‬در انتشار اتوماتيك عمليات در پايگاه داده‌هاي توزيع‌شده‪.‬‬
‫‪ .6‬در بهنگام‌سازي ديدها در سيستم‌هاي رابطه‌اي‬
‫تراكنش‬
‫تعريف‪ :‬به بيان ساده عملي است كه تغييري در پايگاه داده‌ها ايجاد كند‪.‬‬
‫اين عمل كه طبعا به صورت يك برنامه يا بخش ي از يك برنامه است‪ ،‬يا‬
‫بايد به تمامي اجرا شود و يا اصال اجرا نشود و مي‌گوييم كه تراكنش‬
‫خاصيت تجزيه‌ناپذيري دارد‪.‬‬
‫خواص‬
‫‪ .1‬تجزيه‌ناپذيري‌‬
‫‪ .2‬سازگاري‌‬
‫‪ .3‬جدايي (انفراد)‬
‫‪ .4‬مانايي (دوام)‬
‫طرحهاي اجراي تراكنشها‬
‫• طرح اجراي متوالي‬
‫• طرح اجراي همروند‬
‫تكنيكهاي كنترل همروندي‬
‫ي‬
‫• تكنيك قفل‌گذار ‌‬
‫• تكنيك زمانمهر‬
‫• تكنيك چند نسخه‌سازي‌‬
‫• تكنيك تاييد (تصديق)‬
‫جلسه سيزدهم‬
‫ديد در مدل رابطهاي‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬ديدهاي رابطهاي‬
‫‪ -2‬ديد در ‪SQL‬‬
‫‪ -3‬مزايا و معايب ديد‬
‫‪ -4‬عمليات در ديدهاي رابطهاي‬
‫‪ -5‬انواع ديد از نظر پذيرش عمليات ذخيرهسازي‬
‫‪ -6‬انواع ديدهاي پذيرا‬
‫‪ -7‬انواع ديدهاي ناپذيرا‬
‫‪ -8‬ويژگيهاي ديدهاي قابل بهنگامسازي‬
‫هدفهاي كلي‪ :‬آشنايي با ديد در مدل رابطه‌اي‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• ديد را تعريف كند و دستورات ‪ SQL‬مرتبت با آن را بكار برد‪.‬‬
‫• مزاياي استفاده از ديد را برشمارد‪.‬‬
‫• عمليات قابل انجام روي ديد را شرح دهد‪.‬‬
‫• انواع ديد از لحاظ پذيرا و ناپذيرا را نام ببرد‪.‬‬
‫ديدهاي رابطهاي‬
‫ديد در مدل رابطه‌اي نوعي رابطه است‪ ،‬بنابراين‬
‫مي‌توان آن را به كمك يك عبارت جبر رابطه‌اي يا‬
‫حساب رابطه‌اي به شكل زير تعريف كرد‪:‬‬
‫‪View name= Relational expression‬‬
SQL ‫ديد در‬
‫دستور ايجاد ديد‬
CREATE VIEW Viewname [(Column-name(s))]
AS Subquery
.
.
.
[WITH [CASCADE|LOCAL] CHECK OPTION];
‫مثال‬
CREATE VIEW MAPHSTUD( STNUM, STLEV, STAREA)
AS SELECT STID, STDEG, STMJR
FROM STT
WHERE STMJR=‘Math’ OR STMJR=‘Phys’
WITH LOCAL CHECK OPTION;
SQL ‫ديد در‬
‫دستور حذف ديد‬
DROP VIEW Viewname {restrict | cascade}
:‫مثال‬
DROP VIEW MAPHSTUD CASCADE;
‫مزاياي ديد‬
‫‪ .1‬تامين‌كننده محيط انتزاعي براي كاربران سطح خارجي‬
‫‪ .2‬تامين‌كننده پويايي باال در تعريف پايگاه توسط كاربر‬
‫‪ .3‬تسهيل‌كننده واسط كاربر برنامه‌ساز با پايگاه‬
‫‪ .4‬امكاني است براي كوتاه‌نويس ي يا ماكرونويس ي پرسشها‬
‫‪ .5‬تامين‌كننده اشتراك داده‌اي‬
‫‪ .6‬تامين‌كننده نوعي مكانيسم خودكار ايمني داده‌ها‬
‫‪ .7‬تامين‌كننده استقالل داده‌اي فيزيكي و منطقي‬
‫‪ .8‬امكان تعريف شيئ با اندازه‌هاي مختلف‬
‫معايب ديد‬
‫‪.1‬ايجاد فزونكاري در سيستم براي انجام تبديل‬
‫خارجي‪/‬ادراكي و احيانا خارجي‪/‬خارجي‬
‫‪.2‬عدم امكان انجام عمليات ذخيره‌سازي در بسياري از‬
‫گونه‌هاي ديد و در نتيجه ايجاد محدوديت براي كاربر‬
‫عمليات در ديدهاي رابطهاي‬
‫بازيابي از ديد رابطه‌اي‬
‫چون ديد خود نوعي رابطه است‪ ،‬پس براي بازيابي از‬
‫ديد هم يك عبارت جبري يا حسابي مي‌نويسيم‬
SQL ‫مثال بازيابي از يك ديد با استفاده از دستورات‬
CREATE VIEW V1
AS SELECT STID, STDEG
FROM STT
WHERE STPROG=‘Math’
SELECT STID
FROM
V1
WHERE STDEG=‘bs’;
‫عمليات در ديدهاي رابطهاي‬
‫عمليات ذخيره‌سازي در ديدهاي رابطه‌اي‬
‫براي انجام عمليات ذخيره‌سازي در ديد از همان دستورات سه‌گانه‬
‫‪ UPDATE ،INSERT‬و ‪ DELETE‬استفاده مي‌شود‪.‬‬
‫ديدها از نظر پذيرش عمليات ذخيرهسازي‬
‫‪ .1‬ديدهاي پذيرا‬
‫‪ .2‬ديدهاي ناپذيرا‬
‫‪.1‬ديدهاي گزينش ي‬
‫‪.2‬ديد گزينش – پرتوي داراي كليد رابطه مبنا‬
‫ديدهاي پذيرا‬
‫‪.3‬ديد پيوندي ‪CK-CK‬‬
‫‪.4‬ديد پيوندي ‪CK-FK‬‬
‫‪.5‬ديد حاصل اجتماع‪ ،‬اشتراك و تفاضل دو رابطه‬
‫ديد گزينش ي حاصل عملگر گزينش در يك‬
‫رابطه است‪.‬‬
‫در ديد ”گزينش‪-‬پرتوي داراي كليد رابطه مبنا“ عالوه‬
‫بر گزينش تاپلهايي از رابطه مبنا‪ ،‬عملگر پرتو نيز‬
‫اعمال شده است‪ .‬اين نوع ديد را اصطالحا ديد‬
‫داراي كليد با تاپلهاي ناقص مي‌گوئيم‪.‬‬
‫ديد پيوندي ‪ ،CK-CK‬حاصل پيوند دو رابطه‬
‫روي كليد كانديد مشترك آنها است و در عمليات‬
‫ذخيره‌سازي مشكلي ندارد‬
‫ديد پيوندي ‪ ،CK-FK‬حاصل پيوند روي كليد كانديد يك‬
‫رابطه و كليد خارجي رابطه ديگر است‪ .‬اين ديد در حذف‬
‫مشكل دارد‪ ،‬زيرا با حذف يك تاپل از اين ديد‪ ،‬در هريك ‌از‬
‫دو رابطه مبنا‪ ،‬يك تاپل حذف مي‌شود و چنانچه كاربر‬
‫بخواهد محتواي ديد خود را نمايش دهد‪ ،‬تاپلهاي ديگر هم‬
‫از ديد او حذف مي‌شوند كه درخواست نكرده است‪.‬‬
‫ديد حاصل اجتماع‪ ،‬اشتراك و تفاضل دو رابطه در‬
‫عمليات ذخيره‌سازي مشكلي ندارد‪ ،‬به شرط آنكه‬
‫سيستم بتواند تشخيص دهد كه عمل‬
‫درخواست‌شده‪ ،‬در كداميك از دو رابطه مبنا انجام‬
‫شود‪.‬‬
‫مشكالت مهمتر ديدهاي پذيرا‬
‫• بروز عارضه جانبي در خود ديد‬
‫• بروز عارضه جانبي در ديدهاي ديگر‬
‫• نقض قاعده جامعيت‬
‫• بروز فزونكاري در سيستم‬
‫• تغيير ماهيت عمل درخواست شده‬
‫ي‬
‫• تعدد تبديالت و مشكل تصميم‌گير ‌‬
‫‪ .1‬ديد پرتوي يا گزينش ي فاقد كليد رابطه مبنا‬
‫ديدهاي‬
‫ناپذيرا‬
‫‪ .2‬ديد پيوندي ‪NK-NK‬‬
‫‪ .3‬ديد پيوندي ‪FK-FK‬‬
‫‪ .4‬ديد حاوي صفت مجازي‌‬
‫‪ .5‬ديد حاصل تقسيم‬
‫ويژگيهاي ديدهاي قابل بهنگامسازي‬
‫‪ .1‬عبارت تعريف‌كننده محدوده ديد‪ ،‬يك عبارت معتبر ‪ SELECT‬باشد‪.‬‬
‫‪ .2‬در كالز ‪ ،FROM‬عبارت ‪ ،SELECT‬فقط يك جدول وجود داشته باشد‪.‬‬
‫‪ .3‬جدول قيدشده در كالز ‪ ،FROM‬يك جدول مبنا يا يك ديد قابل بهنگام‌سازي باشد‪.‬‬
‫‪ .4‬در ‪ item-list‬عبارت ‪ ،SELECT‬ستونهاي مورد نظر بايد در جدول مبنا متناظر باشد‪.‬‬
‫‪ .5‬در عبارت ‪ SELECT‬نبايد كالز ‪ GROUP BY‬و ‪ HAVING‬و گزينه ‪ DISTINCT‬وجود‬
‫داشته باشد‪.‬‬
‫‪ .6‬در كالز ‪ WHERE‬عبارت ‪ SELECT‬نبايد عبارتي حاوي كالز ‪ FROM‬باشد‪ ،‬به گونه‌اي كه‬
‫در آن به همان جدولي ارجاع داده شده باشد كه در كالز ‪ FROM‬قبلي به آن ارجاع شده‬
‫است‪.‬‬
‫جلسه چهاردهم‬
‫طراحي پايگاه دادههاي رابطهاي‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬مراحل طراحي پايگاه دادهها‬
‫‪ -2‬نمودار مراحل اساس ي طراحي پايگاه دادهها‬
‫‪ -3‬روشهاي طراحي منطقي پايگاه دادهها‬
‫‪ -4‬روش طراحي باال به پايين‬
‫‪ -5‬روش سنتز رابطهاي‬
‫‪ -6‬روش تركيبي‬
‫‪ -7‬خصوصيات طراحي خوب‬
‫‪ -8‬چهارده روش تبديل نمودار‪ ER‬به رابطهها‬
‫هدفهاي كلي‪ :‬آشنايي با طراحي پايگاه داده‌هاي رابطه‌اي‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• مراحل طراحي پايگاه داده‌ها را بيان كند‪.‬‬
‫• روشهاي طراحي منطقي پايگاه را شرح دهد‪.‬‬
‫• روشهاي تبديل نمودار ‪ ER‬به رابطه را نام برده و توضيح دهد‪.‬‬
‫• خصوصيات يك طراحي خوب را بيان كند‪.‬‬
‫طراحي پايگاه دادههاي رابطهاي (روش باال به پايين)‬
‫مراحل طراحي پايگاه داده‌ها‬
‫‪ .1‬مطالعه و شناخت خرد جهان واقع‬
‫‪ .2‬انجام عمليات مهندس ي نيازها‬
‫‪ .3‬مدلسازي معنايي داده‌ها‬
‫‪ .4‬طراحي منطقي پايگاه داده‌ها‬
‫‪ .5‬طراحي فيزيكي پايگاه داده‌ها‬
‫‪ .6‬انجام تحليل عملكردي‪ :‬تعيين تراكنشها‬
‫ي‬
‫‪ .7‬طراحي برنامه‌هاي كاربردي و واسطهاي كاربر ‌‬
‫مراحل اساس ي طراحي پايگاه دادهها‬
‫خرد جهان ولقع‬
‫تشخيص نيازها و تحليل آنها‬
‫نيازهاي عملياتي‬
‫نيازهاي پايگاهي‬
‫مدلسازي معنايي داده‌ها‬
‫نمودار ‪ER‬‬
‫تحليل عملكردي‬
‫مشخص كردن تراكنشها در سطح باال‬
‫ناوابسته به ‪DBMS‬‬
‫طراحي منطقي‬
‫شماي ادراكي (منطقي) و شماي خارجي‬
‫طراحي برنامه‌هاي كاربردي‬
‫ي‬
‫و واسطهاي كاربر ‌‬
‫طراحي فيزيكي‬
‫شماي داخلي‬
‫پياده‌سازي تراكنشها‬
‫برنامه‌هاي كاربردي‬
‫وابسته به ‪DBMS‬‬
‫روشهاي طراحي منطقي پايگاه دادهها‬
‫‪ .1‬روش باال به پايين‬
‫‪ .2‬روش سنتز رابطه‌اي‬
‫‪ .3‬روش تركيبي‬
‫روش طراحي باال به پايين‬
‫در اين روش ابتدا مدلسازي معنايي داده‌ها انجام‬
‫مي‌شود‪ .‬سپس مدلسازي را به مجموعه‌اي از‬
‫رابطه‌ها تبديل مي‌كنيم‪ .‬حاصل اين فرايند‪ ،‬معموال‬
‫مجموعه‌اي از رابطه‌هاي خوش‌طرح است‬
‫روش سنتز رابطهاي‬
‫در اين روش مجموعه صفات خردجهان واقع را مشخص مي‌كنيم‪.‬‬
‫سپس با تحليل قواعد و محدوديتهاي ناظر به صفات و تشخيص‬
‫وابستگيهاي بين آنها‪ ،‬صفات را متناسبا باهم سنتز مي‌كنيم‪ .‬هر گروه‬
‫از صفات عنوان يك رابطه را به ما مي‌دهد به گونه‌اي كه‬
‫حتي‌االمكان در مطلوبترين صورت نرمال باشد‪ .‬هر رابطه بدست‌آمده‬
‫نمايشگر بخش ي از خردجهان واقع بوده‪ ،‬ضوابط يك طرح خوب ‌و‬
‫قابل دفاع را خواهد داشت‪.‬‬
‫روش تركيبي‬
‫در اين روش‪ ،‬ابتدا طراحي را با روش باال به پايين انجام‬
‫مي‌دهيم و سپس با دخالت دادن برخي محدوديتهاي‬
‫جامعيتي كه در مرحله مدلسازي معنايي داده‌ها منظور‬
‫نشده‌اند و با تحليل هر رابطه‪ ،‬مرحله نرمالترسازي‬
‫رابطه‌ها را انجام مي‌دهيم تا به مجموعه‌اي از نرمالترين‬
‫رابطه‌ها برسيم‪.‬‬
‫خصوصيات طراحي خوب‬
‫‪ -1‬نمايش واضحي از خردجهان واقع باشد‪.‬‬
‫‪ -2‬نمايش صحيحي از خردجهان واقع باشد‪.‬‬
‫‪ -3‬نمايش جامعي از خردجهان واقع باشد‪.‬‬
‫‪ -4‬تمام قواعد جامعيتي كه قابل اعمال در هر مرحله از طراحي منطقي‬
‫باشند‪ ،‬در طراحي منظور شده باشند‪.‬‬
‫‪ -5‬معناي هريك از صفات از هر نوع موجوديت به درستي رعايت شده‬
‫باشد‪.‬‬
‫‪ -6‬كمترين ميزان افزونگي را داشته باشد‪.‬‬
‫ادامه‬
‫خصوصيات طراحي خوب‬
‫‪ -7‬كمترين ميزان اختالط اطالعات را داشته باشد‪.‬‬
‫‪ -8‬انعطاف‌پذيري داشته باشد‪.‬‬
‫ي‬
‫‪ -9‬كمترين دشواري در انجام عمليات ذخيره‌ساز ‌‬
‫‪ -10‬كمترين ميزان هيچمقدار‬
‫‪ -11‬هيچ اطالع جعلي در اثر انجام عمليات در پايگاه داده‌ها پديد نيايد‪.‬‬
‫‪ -12‬با درنظر گرفتن طراحي فيزيكي و تاثير آن در طراحي منطقي‪ ،‬بيشترين‬
‫كارايي براي سيستم كاربردي پايگاه داده‌ها تامين شود‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت اول‌‬
‫• تعداد نوع موجوديت‪n>=2 :‬‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪N:M :‬‬
‫در اين حالت‪ n+1 ،‬رابطه الزم است‪ n .‬رابطه براي ‪ n‬موجوديت مستقل و يك‬
‫رابطه براي نمايش ارتباط بين آنها‪ .‬اگر ارتباط بين انواع موجوديتها‪ ،‬صفت ساده‬
‫يا مركب چندمقداري نداشته باشد‪ ،‬در اين صورت كليد كانديد رابطه نمايشگر‬
‫ارتباط بين ‪ n‬موجوديت‪ ،‬از تركيب كليدهاي كانديد ‪ n‬رابطه نمايشگر ‪n‬‬
‫موجوديت به دست مي‌آيد‪ .‬سپس كليدهاي خارجي‪ ،‬اجزاء تشكيل‌دهنده كليد‬
‫كانديد رابطه نمايشگر ارتباط هستند‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت دوم‬
‫• تعداد نوع موجوديت‪ :‬دو‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪1:N :‬‬
‫در اين حالت‪ ،‬دو رابطه كفايت مي‌كند‪ :‬يك رابطه براي نمايش نوع موج ‌وديت‬
‫طرف يك‪ ،‬يك رابطه براي نمايش نوع موجوديت طرف ‪ N‬و نيز ارتباط ‪.1:N‬‬
‫در رابطه اخير‪ ،‬كليد كانديد رابطه اول‪ ،‬به عنوان كليد خارجي رابطه دوم‪،‬‬
‫ارتباط مورد نظر را نشان مي‌دهد و جزء تشكيل‌دهنده كليد كانديد رابطه‬
‫نيست‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت سوم‬
‫• تعداد نوع موجوديت‪ :‬دو‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪1:1 :‬‬
‫در اين حالت‪ ،‬دو رابطه الزم است‪ :‬يك رابطه براي نمايش يكي از دو‬
‫نوع موجوديت و رابطه‌اي ديگر براي نمايش نوع موجوديت ديگر ‌و‬
‫ارتباط بين دو نوع موجوديت‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت چهارم‬
‫• تعداد نوع موجوديت‪ :‬يك‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪N:M :‬‬
‫در اين حالت‪ ،‬ارتباط با خود داريم‪ .‬دو رابطه الزم است‪ :‬يك رابطه‬
‫براي نمايش خود نوع موجوديت و ديگري براي نمايش ارتباط‪ ،‬اعم‬
‫از اينكه مشاركت الزامي باشد يا نباشد‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت پنجم‬
‫• تعداد نوع موجوديت‪ :‬يك‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪1:N :‬‬
‫در اين حالت‪ ،‬هم ”ارتباط با خود“ داريم و يك رابطه كفايت مي‌كند‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت ششم‬
‫• تعداد نوع موجوديت‪ :‬يك‬
‫• وضع موجوديتها‪ :‬مستقل‬
‫• چندي ارتباط‪1:1 :‬‬
‫در اين حالت يك رابطه كفايت مي‌كند‪ ،‬به شرط آنكه مشاركت در‬
‫ارتباط الزامي باشد‪ .‬البته مي‌توان با دو رابطه هم طراحي كرد‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت هفتم‬
‫نمايش موجوديت ضعيف‬
‫موجوديت ضعيف داراي شناسه يكتا نيست‪ ،‬بلكه صفت مميزه دارد‪.‬‬
‫براي نمايش اين نوع موجوديت در طراحي پايگاه رابطه‌اي‪ ،‬يك رابطه‬
‫طراحي مي‌كنيم كه در عنوان آن‪ ،‬صفات موجوديت ضعيف و كليد‬
‫كانديد موجوديت قوي كه با آن ارتباط دارد (موجوديت شناسا)‪ ،‬وجود‬
‫دارند‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت هشتم‬
‫ي‬
‫وجود صفت چندمقدار ‌‬
‫اگر ‪ ،MVA‬يك صفت (ساده يا مركب) چندمقداري‪ EID ،‬شناسه موجوديت ‪E‬‬
‫‪ ...‬و ‪A2 A1‬‬
‫ساير صفات ت ‪i‬ك‪‌A‬مقداري موجوديت ‪ E‬باشند‪ ،‬در اين صورت‬
‫و ‪،‬‬
‫براي نمايش اين نوع موجوديت‪ ،‬دو رابطه الزم است‪:‬‬
‫‪EID‬‬
‫) ‪, A1 , A2 ,..., Ai‬‬
‫‪C.K .‬‬
‫‪EID, MVA‬‬
‫)‬
‫‪C .K .‬‬
‫( ‪R1‬‬
‫( ‪R2‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت نهم‬
‫ارتباط ‪ IS-A‬يا ”گونه‌اي است از ‪“...‬‬
‫در اين حالت يك روش اين است كه موجوديت سطح باالتر با يك‬
‫رابطه نشان داده مي‌شود و هر نوع موجوديت سطح پايين‌تر با‬
‫صفات خاص خودش همراه با شناسه اصلي موجوديت سطح‬
‫باالتر‪ ،‬در رابطه ديگري نمايش داده مي‌شود‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت دهم‬
‫وجود دسته (طبقه) در ارتباط ‪IS-A‬‬
‫در اين ارتباط وقتي زيرنوع دسته (طبقه) داريم و صفات شناسه ‌زبرنوعها‪،‬‬
‫متفاوت باشند‪ ،‬يك طرز طراحي اين است كه اين زيرنوع را با يك رابطه‬
‫نشان دهيم‪ .‬كليد اين رابطه‪ ،‬يك كليد جايگزين (شناسه ساختگي) است و‬
‫بعالوه يك صفت ديگر در آن درنظر مي‌گيريم نشان‌دهنده نوع آن ( ‌از نوع‬
‫كدام زبرنوع است)‪ .‬هر زبرنوع را هم با يك رابطه نشان مي‌دهيم و صفت‬
‫كليد زيرنوع را به هريك از رابطه‌هاي نشان‌دهنده زبرنوعها اضافه مي‌كنيم‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت يازدهم‬
‫ارتباط ‪ IS – A PART – OF‬يا ”جزئي است از ‪“...‬‬
‫در اين حالت‪ ،‬براي موجوديت كل (شامل) يك رابطه و براي هريك ‌از‬
‫موجوديتهاي جزء (مشمول‌) نيز يك رابطه طراحي مي‌شود‪ .‬در رابطه‬
‫نشان‌دهنده موجوديت جزء‪ ،‬كليد كانديد رابطه نشان‌دهنده‬
‫موجوديت كل‪ ،‬آورده مي‌شود و بقيه صفات اين رابطه‪ ،‬خاص خود‬
‫موجوديت جزء هستند‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت دوازدهم‬
‫بيش از يك ارتباط بين دو نوع موجوديت‬
‫فرض مي‌كنيم هر دو نوع موجوديت مستقل هستند‪ .‬تعداد رابطه‌ها‪،‬‬
‫بستگي به چندي هر ارتباط دارد‪ .‬به صورت زير عمل مي‌كنيم‪:‬‬
‫• هر ارتباط با چندي ‪ N:M‬با يك رابطه نمايش داده مي‌شود‪.‬‬
‫•نوع موجوديت سوي ‪ N‬و همه ارتباطهاي با چندي ‪ ،1:N‬اگر‬
‫مشاركت دو نوع موجوديت در همه ارتباطها الزامي باشد‪ ،‬را مي‌توان‬
‫با يك رابطه نمايش داد‪.‬‬
‫ادامه‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت دوازدهم‬
‫بيش از يك ارتباط بين دو نوع موجوديت‬
‫• اگر مشاركت دو نوع موجوديت در يك ارتباط ‪ ،1:N‬الزامي نباشد‪ ،‬بهتر است براي‬
‫چنين ارتباطي يك رابطه جداگانه طراحي شود كه صفات آن‪ ،‬شناسه دو نوع‬
‫موجوديت و در صورت وجود‪ ،‬صفات خود ارتباط هستند‪.‬‬
‫• در صورت وجود بيش از يك ارتباط ‪ 1:1‬و الزامي بودن مشاركتها‪ ،‬هر دو نوع‬
‫موجوديت و همه اين ارتباطها را مي‌توان با يك رابطه نمايش داد‪.‬‬
‫• اگر مشاركت در يك ارتباط ‪ 1:1‬الزامي نباشد‪ ،‬بهتر است اين ارتباط را با يك‬
‫رابطه جداگانه نمايش داد‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت سيزدهم‬
‫ارتباط سلسله‌مراتبي (پدر‪ -‬فرزندي)‬
‫در تبديل اين نوع ارتباط بين موجوديتها به طراحي رابطه‌اي يك روش‬
‫چنين است‪:‬‬
‫‪ -1‬براي نوع موجوديت ريشه‪ ،‬يك رابطه در نظر مي‌گيريم‪.‬‬
‫‪ -2‬كليد كانديد اين رابطه همان شناسه ريشه است‪.‬‬
‫‪ -3‬براي هر نوع موجوديت فرزند يك رابطه در نظر مي‌گيريم و كليد‬
‫كانديد هر نوع موجوديت فرزند‪ ،‬تركيب شناسه آن نوع موجوديت با‬
‫كليد كانديد نوع موجوديت پدرش است‪.‬‬
‫روش تبديل نمودار ‪ ER‬به رابطهها‬
‫حالت چهاردهم‬
‫تجمع (ارتباط با ارتباط)‬
‫در اين حالت‪ ،‬ابتدا نمودار ‪ ER‬جزئي درون مستطيل نشان‌دهنده‬
‫نوع موجوديت حاصل از عمل تجميع را به رابطه‌هاي الزم تبديل‬
‫مي‌كنيم‪ .‬سپس با توجه به چندي ارتباط بين نوع موجوديت مرتبط‬
‫با ارتباط و چگونگي مشاركت در ارتباط با ارتباط‪ ،‬طراحي را كامل‬
‫مي‌كنيم‪.‬‬
‫جلسه پانزدهم‬
‫نرمالترسازي رابطهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬آنومالي در عمليات ذخيرهسازي‬
‫‪ -2‬صورتهاي نرمال‬
‫‪ -3‬وابستگي تابعي‬
‫‪ -4‬وابستگي تابعي نامهم (بديهي)‬
‫‪ -5‬قواعد استنتاج آرمسترانگ‬
‫‪ -6‬مجموعه كاهشناپذير وابستگيهاي تابعي‬
‫‪ -7‬وابستگي تابعي تام (كامل)‬
‫‪ -8‬رابطه ‪1NF‬‬
‫‪ -9‬رابطه ‪2NF‬‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -10‬رابطه ‪3NF‬‬
‫‪ -11‬صورت نرمال بايس‪-‬كاد‬
‫‪ -12‬وابستگي تابعي چندمقداري‬
‫‪ -13‬رابطه ‪4NF‬‬
‫‪ -14‬وابستگي تابعي چندمقداري ادغامشده‬
‫‪ -15‬رابطه ‪5NF‬‬
‫‪ -16‬مزايا و معايب نرمالترسازي‬
‫‪ -17‬انواع افزونگي در پايگاه دادهها‬
‫هدفهاي كلي‪ :‬آشنايي با نرمالترسازي رابطه‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• صورتهاي مختلف نرمال‌سازي را نام برده و هريك را توصيف كند‪.‬‬
‫• مزايا و معايب روش نرمالترسازي را شرح دهد‪.‬‬
‫طراحي پايگاه دادههاي رابطهاي‬
‫روش سنتز‪ :‬نرمالترسازي رابطهها‬
‫يك رابطه‪ ،‬هرچند نرمال‪ ،‬بازهم ممكن است در‬
‫ي)‬
‫عمليات ذخيره‌سازي (درج‪ ،‬حذف و بهنگام‌ساز ‌‬
‫مشكالتي داشته باشد‪.‬‬
‫آنومالي در عمليات ذخيره‌سازي به هريك از سه وضع زير گفته‬
‫مي‌شود‪:‬‬
‫• عدم امكان انجام يك عمل (كه منطقا بايد قابل انجام باشد)‬
‫• بروز پيامد بد پس از انجام يك عمل‬
‫• بروز فزونكاري در سيستم در انجام يك عمل‬
‫صورتهاي نرمال‬
‫• صورت نخست نرمال (‪)1NF‬‬
‫• صورت دوم نرمال (‪)2NF‬‬
‫• صورت سوم نرمال (‪)3NF‬‬
‫• صورت نرمال بايس‪-‬كاد (‪)BCNF‬‬
‫• صورت چهارم نرمال (‪)4NF‬‬
‫• صورت پنجم نرمال (‪)5NF‬‬
‫• صورت نرمال ميدان‪-‬كليدي (‪)DKNF‬‬
‫• صورت نرمال تحديد‪-‬اجتماع (‪)RUNF‬‬
‫وابستگي تابعي‬
‫تعريف‪ -‬فرض كنيد كه ‪ R‬يك متغير رابطه‌اي و ‪ A‬و ‪ B‬دو زيرمجموعه دلخواه از‬
‫عنوان ‪ R‬باشند‪ .‬مي‌گوييم ‪ B‬با ‪ A‬وابستگي تابعي دارد و چنين نمايش مي‌دهيم‪:‬‬
‫‪B‬‬
‫ميدان‪A‬ممكن از متغير رابطه‌اي ‪ ،R‬به هر مقدار ‪ A‬فقط يك‬
‫اگر و فقط اگر در هر‬
‫مقدار ‪ B‬متناظر باشد‪.‬‬
‫وابستگي تابعي نامهم (بديهي)‬
‫اگر در (…‪ R)A,B,C,‬داشته باشيم‪B، A :‬در اين صورت‪:‬‬
‫يك وابستگي‪ B‬‬
‫تابعي‪ A‬نامهم است‪ .‬به بيان ديگر اگر ‪ B‬زيرمجموعه‌اي‬
‫‪A‬‬
‫يك وابستگي نامهم ‪B‬‬
‫است‪.‬‬
‫از ‪ A‬باشد‪ ،‬در اين صورت‬
‫قواعد استنتاج آرمسترانگ‬
‫فرض‪ C ،B ،A :‬و ‪ D‬زيرمجموعه‌هايي از صفات رابطه ‪ R‬باشند‪ .‬قواعد زير برقرارند‪:‬‬
‫‪ .1‬قاعده انعكاس‪ :‬اگر ‪B  A‬‬
‫آنگاه‪:‬‬
‫‪BC‬‬
‫‪AC‬‬
‫‪ B‬و‪A‬‬
‫آنگاه‬
‫‪ .2‬قاعده تعدي(تراگذري‌)‪ :‬اگر‬
‫) ‪( A, C )  ( B, C‬‬
‫آنگاه‬
‫‪ .3‬قاعده افزايش‪ :‬اگر ‪A  B‬‬
‫‪BC‬‬
‫‪A‬‬
‫‪ C‬و‬
‫‪ .4‬قاعده تجزيه‪ :‬اگر )‪ A  (B, C‬آنگاه‬
‫) ‪A  ( B, C‬‬
‫‪ .5‬قاعده اجتماع‪ :‬اگر ‪A  C‬و ‪B  C‬آنگاه‬
‫)‪( A, C )  ( B, D‬‬
‫‪ A  B‬آنگاه‬
‫‪ .6‬قاعده تركيب‪ :‬اگر ‪C  D‬و‬
‫‪A B‬‬
‫‪( A, C )  D‬‬
‫آنگاه‬
‫‪ .7‬قاعده شبه تعدي‪ :‬اگر ‪ (C, B)  D‬و‬
‫‪A B‬‬
‫‪ .8‬قاعده يگانگي عمومي‪ :‬اگر‬
‫‪  D‬و‪C‬‬
‫‪A B‬‬
‫آنگاه‬
‫)‪A  (C  B)  ( B, D‬‬
‫مجموعه كاهشناپذير وابستگيهاي تابعي‬
‫مجموعه‌اي از وابستگيهاي تابعي ‪ ،R‬به نام ‪ F‬را كاهش‌ناپذير گوييم‬
‫اگر‪:‬‬
‫‪.1‬در ‪ F‬وابستگي تابعي افزونه نباشد‪.‬‬
‫‪.2‬در سمت راست هر ‪ FD‬از ‪ F‬صفت ساده وجود داشته باشد‪.‬‬
‫‪.3‬هيچ صفتي در سمت چپ ‪FD‬هاي ‪ F‬افزونه نباشد‪.‬‬
‫وابستگي تابعي تام (كامل)‬
‫اگر ‪ X‬و ‪ Y‬دو زيرمجموعه از مجموعه عنوان رابطه ‪ R‬باشند‪ ،‬مي‌گوييم ‪ Y‬با‬
‫‪X Y‬‬
‫‪ X‬وابستگي تابعي تام دارد و چنين نشان مي‌دهيم‪:‬‬
‫اگر و فقط اگر ‪ Y‬با ‪ X‬وابستگي داشته باشد‪ .‬ولي با هيچ زيرمجموعه‌اي از ‪X‬‬
‫وابستگي تابعي نداشته باشد‪.‬‬
‫رابطه ‪1NF‬‬
‫تعريف‪ -‬رابطه‌اي ‪ 1NF‬است اگر هر صفت خاصه آن در‬
‫هر تاپل‪ ،‬تك‌مقداري باشد‪ ،‬به بيان ديگر‪ ،‬صفت‬
‫چندمقداري نداشته باشد‪.‬‬
‫رابطه ‪2NF‬‬
‫تعريف‪ -‬رابطه‌اي ‪ 2NF‬است اگر اوال ‪ 1NF‬باشد و ثانيا‬
‫تمام صفات غيركليد با كليد اصلي وابستگي تابعي تام داشته‬
‫باشند‪ .‬به عبارت ديگر هر صفت غيركليد با كليد اصلي بطور‬
‫كاهش‌ناپذير وابسته باشد‪.‬‬
‫رابطه ‪3NF‬‬
‫تعريف‪ -‬رابطه‌اي ‪ 3NF‬است اگر ‪ 2NF‬باشد و هر صفت‬
‫غيركليد با كليد اصلي‪ ،‬وابستگي تابعي بي‌واسطه داشته‬
‫باشد‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬
‫تعريف او ‌ل‪ :‬رابطه‌اي ‪ BCNF‬است اگر در آن هر‬
‫دترمينان‪ ،‬كليد كانديد باشد‪ .‬اين تعريف ساده‌شده و غير‬
‫صوري است‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬
‫تعريف دوم‪ :‬رابطه )‪ ،R(H‬با مجموعه وابستگيهاي تابعي ‪ ،F‬در ‪BCNF‬‬
‫به صورت ‪ F ‬كه در آن ‪A  B‬‬
‫است اگر براي هر وابستگي تابعي در‬
‫حداقل‪R(H‬‬
‫)‬
‫) ‪A  R(H‬‬
‫يكي‪‬از‪ B‬دو حالت زير برقرار باشد‪:‬‬
‫است‪،‬‬
‫و‬
‫يك وابستگي نامهم باشد يعني‬
‫‪:a‬‬
‫‪A  B A :b‬‬
‫‪B A‬‬
‫سوپركليد رابطه ‪ R‬باشد‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬
‫تعريف سوم‪ :‬رابطه‌ ‪ R‬در ‪ BCNF‬است هرگاه يك وابستگي‬
‫تابعي به صورت ‪A  B‬در مجموعه ‪FD‬هاي ‪ R‬وجود داشته‬
‫باشد‪ A ،‬سوپركليد ‪ R‬باشد‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬
‫تعريف چهارم‪ :‬رابطه‌‌اي ‪ BCNF‬است اگر و فقط اگر‬
‫سمت چپ هر ‪ FD‬مهم (مطرح) و كاهش‌ناپذير‪ ،‬كليد كانديد‬
‫رابطه باشد‪.‬‬
‫وابستگي تابعي چندمقداري‬
‫تعريف اول‌‪ -‬در رابطه )‪ R(X,Y,Z‬با صفات ساده يا مركب ‪ Y ،X‬و‬
‫‪ Z‬مي‌گوييم كه ‪ Y‬با ‪ X‬وابستگي تابعي چندمقداري دارد و چنين‬
‫نمايش مي‌دهيم‪:‬‬
‫‪X  Y‬‬
‫اگر به يك مقدار ‪ ،X‬مجموعه‌اي از مقادير ‪ Y‬متناظر باشند‪.‬‬
‫وابستگي تابعي چندمقداري‬
‫تعريف دوم‪ -‬در رابطه ‪ ،R‬صفت ‪ Y‬با ‪ X‬وابستگي تابعي‬
‫چندمقداري دارد اگر و فقط اگر مجموعه مقادير ‪ Y‬متناظر با يك‬
‫مقدار از جفت )‪ (X,Z‬در ‪ R‬فقط به مقدار ‪ X‬بستگي داشته‬
‫باشد و وابسته به مقدار ‪ Z‬نباشد‪.‬‬
‫رابطه ‪4NF‬‬
‫تعريف‪ -‬رابطه‌اي ‪ 4NF‬است اگر ‪ BCNF‬باشد و در آن‬
‫وابستگي تابعي چند مقداري مهم وجود نداشته باشد‪.‬‬
‫وابستگي تابعي چندمقداري ادغامشده‬
‫در رابطه (…‪ ،R)X,Y,Z,U,V,‬پديده وابستگي تابعي‬
‫چندمقداري ادغام شده وجود دارد اگر در پرتوي از اين رابطه‪،‬‬
‫پديده وابستگي تابعي چندمقداري وجود داشته باشد‪ .‬توجه‬
‫مركب)‬
‫داشته باشيد كه اين پرتو بايد روي سه صفت (ساده يا ‌‬
‫باشد‪.‬‬
‫رابطه ‪5NF‬‬
‫تعريف‪ -‬رابطه‌اي ‪ 5NF‬است اگر تمام وابستگيهاي پيوندي آن‬
‫ناش ي از كليدهاي كانديد آن باشد‪ .‬در نتيجه‪:‬‬
‫اگر بتوانيم يك وابستگي پيوندي در رابطه ‪ R‬پيدا كنيم كه در همه‬
‫پرتوهايش كليد كانديد ‪ R‬وجود نداشته باشد‪ ،‬رابطه ‪5NF‬‬
‫نيست‪.‬‬
‫مزاياي نرمالترسازي‬
‫• ارائه يك طراحي بهتر و واضح‌تر با كمترين اختالط اطالعات‬
‫• كاهش بعض ي انواع افزونگي‬
‫• كاهش بعض ي آنوماليها‬
‫• تسهيل اعمال بعض ي قواعد جامعيت‬
‫انواع افزونگي در پايگاه داده‌ها‪:‬‬
‫‪ .1‬افزونگي طبيعي‬
‫هرصفت‬
‫‪ .2‬افزونگي تكنيكي ناش ي از وجود كليد خارجي يا ‌‬
‫مشترك ديگر در دو يا بيش از دو رابطه‬
‫‪ .3‬افزونگي ناش ي از وابستگي بين صفات‬
‫معايب روش نرمالترسازي‬
‫‪ -1‬بروز فزونكاري در سيستم در عمل بازيابي‬
‫‪ -2‬ايجاد نوعي افزونگي از نوع افزونگي در سطح ادراكي‬
‫‪ -3‬زمانگير بودن فرآيند نرمالترسازي به ويژه اگر محيط عملياتي بزرگ‬
‫و تعداد رابطه‌ها زياد باشد‪.‬‬
‫‪ -4‬تصميم‌گيري دشوار در اثر تعدد تجزيه‌ها‬
‫‪ -5‬ممكن وابستگي بين مجموعه صفات يك خردجهان‪ ،‬وابستگيهاي به‬
‫جز وابستگي تابعي و پيوندي باشد و بنابراين سبب مطرح شدن قواعد‬
‫جامعيت ديگر و نيز ضوابط ديگري براي تجزيه رابطه‌ها شود و ‪. . .‬‬
‫جلسه شانزدهم‬
‫طراحي فيزيكي پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -1‬تحليل عوامل‬
‫‪ -2‬تحليل پرسشها‬
‫‪ -3‬تحليل تراكنشها‬
‫‪ -4‬تصميمات در طراحي فيزيكي‬
‫‪ -5‬اهداف تنظيم پايگاه دادهها‬
‫‪ -6‬اطالعات الزم در تنظيم پايگاه دادهها‬
‫آنچه در اين جلسه مي خوانيد‪:‬‬
‫‪ -7‬مسائل مطرح در تنظيم‬
‫‪ -8‬نكات قابل توجه در بازبيني طراحي منطقي پايگاه دادهها‬
‫پس از عملياتي شدن آن‬
‫‪ -9‬كارهاي الزم براي اصالح شاخصهاي ايجادشده در مرحله‬
‫تنظيم پايگاه دادهها‬
‫هدفهاي كلي‪ :‬آشنايي با طراحي فيزيكي پايگاه داده‌ها‬
‫هدفهاي رفتاري‌‪ :‬دانشجو در پايان اين جلسه مي‌تواند‪:‬‬
‫• عواملي كه در طراحي فيزيكي پايگاه داده‌ها موثر هستند را بيان كند‪.‬‬
‫• پرسشهايي را كه در تحليل پرسشها و تراكنش مطرح مي‌شوند‪ ،‬بشناسد‪.‬‬
‫• اطالعات الزم در تنظيم پايگاه داده‌ها را بيان كند‪.‬‬
‫طراحي فيزيكي پايگاه دادهها‬
‫طراحي فيزيكي به عواملي از جمله حجم و ماهيت داده‌ها‪،‬‬
‫تعداد كاربران و از آنجا تعداد و ماهيت تراكنشها و نهايتا‬
‫تعداد و ماهيت برنامه‌هاي كاربردي و فركانس اجراي هر‬
‫برنامه بستگي دارد‪.‬‬
‫تحليل عوامل‬
‫تحليل پرسشها‬
‫در اين تحليل بايد به پرسشهاي زير پاسخ داده ش ‌ود‪:‬‬
‫• چه رابطه‌هايي در پرسش دخيل هستند‬
‫• نوع رابطه‌ها چيست‬
‫• صفات موجود در مسند گزينش‬
‫• صفات موجود در مسند پيوند‬
‫• صفات مورد نظر در پرسش‬
‫• فركانس اجراي هر پرسش‬
‫• اسلوب اجراي پرسش‪ :‬اندركنش ي يا كامپايل‌شده‬
‫تحليل عوامل‬
‫تحليل تراكنشها‬
‫در اين تحليل بايد به پرسشهاي زير پاسخ داده شود‪:‬‬
‫• رابطه‌هاي دخيل در تراكنش و نوع هر رابطه‬
‫• نوع هر عمل در تراكنش‬
‫• صفات موجود در مسند گزينش‬
‫• صفاتي كه مقدارشان تغيير مي‌كند‬
‫تصميمات در طراحي فيزيكي‬
‫• روي چه فايلهايي شاخص ايجاد شود يا تابع درهم‌ساز اعمال شود‪.‬‬
‫• روي چه صفاتي از فايل‪ ،‬شاخص ايجاد شود‪.‬‬
‫• شاخص ساده باشد يا مركب‪.‬‬
‫• شاخص خوشه‌ساز باشد يا نباشد‪.‬‬
‫اهداف تنظيم پايگاه دادهها‬
‫• تسريع اجراي برنامه‌هاي كاربردي‬
‫• كاهش زمان پاسخدهي پرسشها‬
‫• بهبود توان عملياتي سيستم مديريت پايگاه داده‌ها‬
‫• اجتناب از خريد سخت‌افزار بيشتر‬
‫• كاهش اندازه پيكربندي سخت‌افزاري‌‬
‫• رضايت بيشتر كاربران سيستم‬
‫اطالعات الزم در تنظيم پايگاه دادهها‬
‫• اطالعات در مورد خود ‪DBMS‬‬
‫• اطالعات اوليه مورد استفاده در طراحي منطقي و فيزيكي پايگاه‬
‫• آمار جمع‌آوري‌شده توسط ‪ DBMS‬و ‪ DBA‬در مورد رفتار سيستم مانند‪:‬‬
‫• كارديناليتي هر رابطه‬
‫• تعداد مقادير متمايز براي هرصفت و درصد هيچ‌مقدار براي هر صفت‬
‫• فركانس عرضه هر پرسش به سيستم و فركانس اجراي آن‬
‫• فركانس اجراي هر تراكنش‬
‫• اندازه صفحات‬
‫• زمان اجراي پرسشها و تراكنشها‬
‫• ‪...‬‬
‫مسائل مطرح در تنظيم‬
‫• چگونگي اجتناب از بروز تنگنا در قفل‌گذاري روي داده‌ها به منظور‬
‫افزايش همروندي اجراي تراكنشها‬
‫• چگونگي كاهش سربار ناش ي از ايجاد فايلهاي ثبت تراكنشها‬
‫• چگونگي بهينه‌سازي اندازه بافرها‬
‫• چگونگي بهينه‌سازي زمانبندي اجراي تراكنشها‬
‫• چگونگي بهينه‌سازي تخصيص منابع‬
‫در بازبيني طراحي منطقي پايگاه دادهها پس از عملياتي‬
‫شدن آن‪ ،‬بايد به نكات زير توجه شود‪:‬‬
‫• آيا رابطه‌هايي بايد تجزيه شوند؟‬
‫• آيا سطح نرماليتي رابطه‌هايي بايد كاهش يابد؟‬
‫• آيا مجموعه ديگري از رابطه‌ها‪ ،‬با همان سطح نرماليتي‪ ،‬بايد طراحي شوند؟‬
‫• آيا صفاتي با پذيرش ميزاني از افزونگي‪ ،‬بايد در رابطه‌هايي تكرار شوند؟‬
‫• آيا در طراحي ديدهاي خارجي بايد تغييراتي داده شود؟‬
‫كارهاي الزم براي اصالح شاخصهاي ايجادشده در‬
‫مرحله تنظيم پايگاه دادهها‬
‫• ايجاد شاخصهاي جديد‬
‫• حذف برخي از شاخصها‬
‫• كاهش تعداد شاخصها روي صفاتي كه مقاديرشان مرتب تغيير مي‌كنند‪.‬‬
‫• اصالح شاخصهايي كه در كنترل همروندي تراكنشها تاثير دارند‬
‫• بازسازي شاخصها مي‌تواند در كارايي سيستم تاثير مثبت داشته باشد‬
‫• در بعض ي از ‪RDBMS‬ها بهينه‌ساز‪ ،‬اگر در پرسش‪ ،‬عبارت‬
‫محاسباتي‪ ،‬مقايسه يا هيچ مقدار و محاسبه تفاوت مقادير وجود داشته‬
‫باشد‪ ،‬از شاخص استفاده نمي‌كند‪.‬‬