جزوه پایگاه داده

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 415

‫بسم ﷲ الرحمن الرحيم‬

‫نام درس‪ :‬اصول طراحي پايگاه دادهها‬

‫نام منبع‪:‬‬
‫مفاهيم بنيادي پايگاه دادهها‬
‫مولف‪ :‬سيد محمد تقي روحاني رانكوهي‬

‫تهيهكننده‪:‬‬
‫دكـتر احمد فراهي‬
‫فهرست جلسات‬

‫جلسه اول‪ :‬مفاهيم پايگاه دادهها‬


‫جلسه دوم‪ :‬مدلسازي معنايــي دادهها‬
‫جلسه سوم‪ :‬محدوديتهاي روش ‪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‬‬
‫‪U‬‬ ‫برنامهھاي ايجاد‪،‬‬ ‫محيط‬
‫‪U1‬‬ ‫‪F‬‬ ‫كنترل و‬ ‫‪FS‬‬ ‫ذخيرهسازي اطالعات‬
‫‪I‬‬ ‫پردازش فايلھا‬ ‫‪FILES‬‬
‫يا‬ ‫خاص اداره‬
‫‪DMS‬‬ ‫ثبت نام‪U1 :‬‬
‫اداره امور فارغ التحصيالن‬

‫‪OS‬‬ ‫محيط‬
‫‪U‬‬ ‫برنامهھاي ايجاد‪،‬‬ ‫ذخيرهسازي اطالعات‬
‫‪U2‬‬ ‫‪F‬‬ ‫كنترل و‬ ‫‪FS‬‬ ‫خاص اداره‬
‫‪I‬‬ ‫پردازش فايلھا‬ ‫يا‬ ‫‪FILES‬‬
‫‪DMS‬‬
‫فارغالتحصيالن‪U2 :‬‬
‫اداره امور رفاھي دانشجويان‬

‫‪OS‬‬
‫‪U‬‬ ‫برنامهھاي ايجاد‪،‬‬ ‫محيط‬
‫‪FS‬‬
‫‪U3‬‬ ‫‪F‬‬ ‫كنترل و‬ ‫ذخيرهسازي اطالعات‬
‫‪I‬‬ ‫پردازش فايلھا‬ ‫يا‬ ‫‪FILES‬‬
‫‪DMS‬‬ ‫خاص اداره‬
‫امور رفاھي‪U3 :‬‬

‫محيط فايلينگ‬ ‫محيط فيزيكي‬


‫منطقي و يا مجازي‬ ‫ذخيره و بازيابي اطالعات‬
‫مراحل كلي كار در مشي فايلينگ‬

‫‪ -‬تحليل و بررسي نيازهاي اطالعاتي و پردازشي هر قسمت به طور جداگانه‬

‫‪ -‬اجراي مراحل كالسيك اوليه الزم براي طراحي و توليد يك سيستم كاربردي‬
‫ٓ‬
‫‪ -‬تعيين مشخصات هر سيستم و وظايف ان‬
‫‪ -‬طراحي تعدادي فايل‬
‫‪ -‬نوشتن مجموعهاي از برنامههاي ايجاد‪ ،‬كنترل و پردازش فايل‬

‫ادامه‬
‫مراحل كلي كار در مشي فايلينگ‬

‫‪ -‬استفاده از يك پيكربندي سختافزاري و نرمافزاري مشخص‬

‫‪ -‬انجام تستهاي الزم و تنظيم سيستم كاربردي‬


‫‪ -‬ايجاد يك سيستم كاربردي براي هر قسمت و برپايــي محيط فيزيكي ذخيره و‬
‫ي ٓ‬
‫بازيابي اطالعات و سيستم بهرهبردار از ان خاص همان قسمت‪.‬‬
‫معايب مشي فايلينگ‬

‫‪ -1‬عدم وجود محيط مجتمع ذخيرهسازي اطالعات و عدم وجود سيستم يكپارچه‬

‫‪ -2‬عدم وجود سيستم كنترل متمركز روي كل دادهها‬

‫‪ -3‬افزونگي‬

‫‪ -4‬عدم وجود ضوابط ايمني كارا و مطمئن‬

‫‪ -5‬خطر بروز پديده ناسازگاري دادهها‬

‫ادامه‬
‫معايب مشي فايلينگ‬

‫‪ -6‬عدم امكان اشتراكي شدن دادهها‬

‫‪ -7‬مصرف نابهينه امكانات سختافزاري و نرمافزاري‬

‫‪ -8‬حجم زياد برنامهسازي‬

‫‪ -9‬وابستگي برنامههاي كاربردي به محيط ذخيرهسازي دادهها‬


‫كاربران‬

‫برنامهساز‬
‫نابرنامهساز‬ ‫تيم بھرهبردار‬ ‫نمايش سادهشده مشي پايگاھي‬
‫تيم پيادهساز‬

‫‪U‬‬ ‫تعريف دادهھا‬


‫‪F‬‬ ‫و برنامهھاي‬
‫‪I‬‬ ‫عمليات در‬

‫تعريف و كنترل دادهھا به طور‬


‫جامع و برنامهھاي عمليات در دادهھا‬
‫دادهھا )‪(AP1‬‬
‫‪OS‬‬

‫‪D‬‬
‫‪B‬‬
‫پايگاه دادهھا‬
‫‪U‬‬ ‫تعريف دادهھا و‬ ‫‪F‬‬
‫‪F‬‬ ‫برنامهھاي عمليات در‬ ‫‪M‬‬ ‫‪S‬‬
‫‪I‬‬ ‫دادهھا )‪(AP2‬‬ ‫‪S‬‬ ‫فايلھاي ذخيرهشده‬
‫بھم مرتبط‬
‫)‪(FILES‬‬

‫‪U‬‬ ‫تعريف دادهھا و‬


‫‪F‬‬ ‫برنامهھاي عمليات‬ ‫محيط واحد‪ ،‬مجتمع و‬
‫‪I‬‬ ‫در دادهھا )‪(AP3‬‬ ‫اشتراكي ذخيرهسازي‬

‫كثرت و تنوع ديدھا نسبت به‬


‫دادهھاي ذخيرهشده‬

‫محيط فرافايلي‬
‫مراحل كلي كار در مشي پايگاهي‬

‫‪ -‬بررسي و تحليل نيازهاي پردازشي و اطالعاتي همه قسمتها توسط يك گروه‬


‫‪ -‬مدلسازي معنايــي دادهها‬
‫ٓ‬
‫‪ -‬تعيين مشخصات جامع )يكپارچه( كاربردي و وظايف ان‬

‫‪ -‬انتخاب يك يا چند پيكربندي سختافزاري‪-‬نرمافزاري‬

‫‪ -‬استفاده از يك يا چند ‪DBMS‬‬


‫‪ -‬طراحي پايگاه دادهها در سطوح الزم‬

‫ادامه‬
‫مراحل كلي كار در مشي پايگاهي‬

‫‪ -‬توليد مجموعهاي از برنامههاي ايجاد و كنترل پايگاه داده‬


‫‪ -‬ايجاد محيط واحد و مجتمع ذخيرهسازي و مشترك بين كاربران‬

‫‪ -‬طراحي و توليد واسطهاي كاربرپسند مورد نياز‬

‫‪ -‬تعريف پايگاه داده هر قسمت توسط كاربر مربوطه‬

‫‪ -‬طراحي برنامههاي عمليات در پايگاه داده‬

‫‪ -‬بهرهبرداري واقعي از سيستم پس از تستهاي الزم‬


‫عناصر محيط پايگاه دادهها‬
‫‪ -2‬نرمافزار ‪ -3‬كاربر ‪ -4‬داده‬ ‫‪ -1‬سختافزار‬
‫كاربران‬

‫سيستم عامل‬

‫يكجا‬
‫سيستم‬
‫پايگاه‬
‫مديريت‬
‫دادهھا‬
‫پايگاه‬
‫دادهھاي‬
‫دادهھا‬ ‫ذخيرهشده‪:‬‬
‫مجموعهاي‬
‫پيوسته‬ ‫از فايلھا‬

‫)برخط(‬

‫سختافزار‬
‫ذخيرهسازي‬
‫انواع سختافزارهاي محيط پايگاه داده‬

‫‪ -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‬به ‪N‬‬


‫‪E1‬‬ ‫‪R‬‬ ‫‪E2‬‬
‫چندي ارتباط‬
‫‪1‬‬ ‫‪1‬‬ ‫‪ 1‬به ‪1‬‬
‫‪N‬‬ ‫‪M‬‬ ‫‪ M‬به ‪N‬‬

‫‪E1‬‬ ‫‪E2‬‬ ‫ارتباط “گونهاي است از”‬


‫وضع مشاركت در ارتباط‬

‫مشاركت يك نوع موجوديت در يك نوع ارتباط را الزامي گويند‪ ،‬اگر تمام‬


‫ٓ‬ ‫ٓ‬
‫نمونههاي ان نوع موجوديت در ان نوع ارتباط شركت كنند‪ .‬در غير اين‬
‫صورت مشاركت غيرالزامي است‪.‬‬

‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫نمايش مشاركت الزامي‬


‫ٓ‬
‫تعداد شركتكنندگان در يك ارتباط را درجه ان ارتباط ميگويند‪.‬‬
‫دانشجو‬ ‫درس‬ ‫استاد‬

‫ترم‬ ‫انتخاب‬ ‫نمره‬

‫سال آموزشي‬

‫ارتباط بين سه موجوديت‬


‫ٓ‬
‫چندي يا ماهيت نوع ارتباط عبارتست از چگونگي تناظر بين دو مجموعه نمونههاي ان دو نوع‬
‫موجوديت‪.‬‬

‫يك به يك ‪1:1‬‬

‫يك به چند ‪1:N‬‬ ‫انواع چندي ارتباط‪:‬‬

‫چند به چند ‪N:M‬‬


‫نمايش چندي ارتباط‬

‫ترم‬ ‫سال آموزشي‬ ‫نمره‬

‫‪N‬‬
‫‪M‬‬
‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫‪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 , P‬يك نوع موجوديت ‪ E‬را بازشناسي ميكنيم‬
‫ٓ‬
‫به نحوي كه ‪Ei‬ها اجزاء تشكيلدهنده ان باشند‬
‫مثال تجزيه و تركيب‬

COMPUTER

Mother Board Monitor RAM Hard


. . .

. . . . . .
‫تخصيص‬

‫تخصيص عبارتست از مشخص كردن گونههاي خاص يك شيئ براساس يك يا چند ضابطه مشخص‪،‬‬
‫ٓ‬
‫مثال اگر شيئ موجود زنده را درنظر بگيريم‪ ،‬سه گونه خاص ان عبارتند از‪ :‬انسان‪ ،‬حيوان و نبات‪ .‬در‬
‫روش ‪ EER‬هر يك نوع موجوديت ميتواند خود زيرنوع موجوديتهايــي داشته باشد‪ .‬بين هر زيرنوع‬
‫و زبرنوع ارتباط “گونهاي است از ‪ ”...‬وجود دارد‪.‬‬
‫تعميم‬

‫تعميم‪ ،‬عكس عمل تخصيص است‪ ،‬به اين معنا كه با داشتن‬


‫ٓ‬
‫زيرنوعهاي خاص‪ ،‬صفات مشترك بين انها را در يك مجموعه‬
‫صفات براي يك زبرنوع موجوديت درنظر ميگيريم‬
‫مثال تخصيص و تعميم‬

‫شماره‬
‫دانشجو‬ ‫زبرنوع‬
‫صفات مشترك‬
‫نام و نام‬
‫خانوادگي‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬

‫دانشجوي دوره‬ ‫دانشجوي دوره‬ ‫دانشجوي دوره‬


‫زيرنوعها‬ ‫دكـترا‬ ‫كارشناسي‬ ‫كارشناسي ارشد‬ ‫‪...‬‬

‫‪...‬‬ ‫‪...‬‬ ‫‪...‬‬

‫صفات خاص‬ ‫صفات خاص‬ ‫صفات خاص‬


‫وراثت چندگانه‬

‫يك زيرنوع موجوديت‪ ،‬ميتواند در عين حال زيرنوع يك‬


‫زبرنوع موجوديت ديگر هم باشد‪ .‬با اين ترتيب ميتوان‬
‫مفهوم وراثت چندگانه را در روش ‪ EER‬نمايش داد‪.‬‬
‫مثال وراثت چندگانه‬

‫دانشجو‬

‫دانشجوي دوره روزانه‬ ‫دانشجوي دوره شبانه‬

‫دانشجوي دوره كارشناسي ارشد‬ ‫دانشجوي دوره كارشناسي‬


‫دستهبندي‬

‫يك زيرنوع ميتواند زيرنوع بيش از يك زبرنوع باشد‪ .‬ممكن است‬


‫زبرنوعهاي اين زيرنوع‪ ،‬از يك نوع نباشند‪ .‬به اين زيرنوع اصطالحا‬
‫دسته )طبقه( گويند‪ .‬براي نمايش دسته‪ ،‬از نماد ‪ U‬استفاده‬
‫ميشود‪.‬‬
‫دستهبندي‬

E1ID E2ID

E1 E2


E3
‫تجمع‬

‫تجمع عبارتست از ساختن يك نوع موجوديت جديد با ديدن دو يا بيش از دو‬


‫نوع موجوديت‪ ،‬كه خود باهم در يك ارتباط شركت دارند‪ ،‬به صورت يك نوع‬
‫موجوديت واحد‪ .‬در واقع مجموعهاي از موجوديتهاي مرتبط را باهم مجتمع كرده‬
‫و به عنوان يك نوع موجوديت واحد‪ ،‬درنظر ميگيريم و اين نوع موجوديت‬
‫واحد خود ميتواند با نوع موجوديت ديگري ارتباط داشته باشد‪.‬‬
‫نمايش تجمع‬

‫‪Ek‬‬

‫‪E1‬‬ ‫‪R1‬‬ ‫‪E2‬‬

‫‪R2‬‬

‫‪E3‬‬
‫مراحل مدلسازي معنايــي دادهها‬

‫‪ -1‬مطالعه‪ ،‬تحليل و شناخت محيط‬


‫ٓ‬
‫‪ -2‬براورد خواستهها و نيازهاي اطالعاتي و پردازشي همه كاربران و‬
‫تشخيص محدوديتهاي معنايــي‬
‫‪ -3‬بازشناسي انواع موجوديتهاي مطرح و تعيين وضع هريك‬
‫‪ -4‬تعيين مجموعه صفات هر نوع موجوديت‬

‫ادامه‬
‫مراحل مدلسازي معنايــي دادهها‬

‫‪ -5‬بازشناسي انواع ارتباطات بين انواع موجوديتها‪ ،‬تشخيص نوع مشاركت و‬


‫چندي ارتباط‬
‫‪ -6‬رسم نمودار ‪ER‬‬
‫ٓ‬ ‫ٓ‬
‫‪ -7‬فهرست كردن پرسشهايــي كه پاسخ انها از نمودار ‪ ER‬بدست ميايد‪.‬‬
‫‪ -8‬وارسي مدلسازي انجام شده تا اطمينان حاصل شود كه مدلسازي‬
‫پاسخگوي نياز كاربران است‪.‬‬
‫روش مدلسازي ‪UML‬‬

‫در اين روش از چند نمودار براي نمايش مدلسازي و طراحي نرمافزار‬
‫استفاده ميشود‬
‫مفاهيم اصلي در اين مدلسازي‪:‬‬
‫• رده‬
‫• صفت‬
‫• بستگي‬
‫تناظر بين مفاهيم ‪ UML‬و مفاهيم ‪EER‬‬
‫مفهوم در ‪EER‬‬ ‫مفهوم در ‪UML‬‬
‫نوع موجوديت‬ ‫رده‬
‫نمونه موجوديت‬ ‫شيئ‬
‫صفت‬ ‫صفت‬
‫ارتباط‬ ‫بستگي‬
‫نمونه ارتباط‬ ‫پيوند‬
‫ارتباط بازگشتي‬ ‫بستگي انعكاسي‬
‫نوع موجوديت ضعيف‬ ‫بستگي مقيد‬
‫صفت مركب‬ ‫ميدان ساختمند‬
‫صفت ارتباط‬ ‫صفت پيوند‬
‫چندي ارتباط‬ ‫چندي بستگي‬
‫نمادها‬

‫• رده با يك مربع يا مستطيل نشان داده ميشود وبه شكل زير به سه‬
‫قسمت تقسيم ميشود‪:‬‬

‫نام رده‬

‫نام صفات‬

‫پردازشها‬
‫نمادها‬

‫• بستگي بين دو رده‪ ،‬به صورت يك خط متصلكننده دو رده نمايش‬


‫داده ميشود و نام ارتباط روي خط نوشته ميشود‪.‬‬

‫• تجمع به صورت زير نشان داده ميشود‪:‬‬


‫شيئ كل‬ ‫شيئ جزء‬
‫• چندي بستگي به صورت ‪ minPmax‬نوشته ميشود‪ .‬اگر به‬
‫جاي ‪ max‬عالمت ستاره باشد‪ ،‬به اين معنا است كه مقدار‬
‫‪ max‬محدوديت ندارد‪.‬‬
‫• صفت چندمقداري به صورت يك رده جداگانه نشان داده‬
‫ميشود‪ ،‬ولي فاقد قسمت مربوط به پردازش است‪.‬‬
‫• نام ميدان بعد از نام صفت نوشته ميشود و بين اين دو نام عالمت ‪:‬‬
‫گذاشته ميشود‪.‬‬
‫• صفت پيوندي در يك مربع )مستطيل( نوشته ميشود و اين مربع با‬
‫خطچين به خط نشاندهنده بستگي متصل ميشود‪ .‬نام پيوند و نام‬
‫صفات پيوند در دو قسمت از اين مربع گذاشته ميشود‪.‬‬
‫نمايش صفت پيوند در ‪UML‬‬

‫نام رده‬ ‫نام رده‬


‫‪ MinPmax‬نام بستگي ‪minPmax‬‬
‫نام صفت‬ ‫نام صفت‬
‫پردازشها‬ ‫پردازشها‬

‫نام بستگي‬
‫نام صفات‬
‫خصوصيات کلي روش مدلسازي معنايــي دادهها‬

‫گويايــي‬ ‫•‬
‫صوري بودن‬ ‫•‬
‫سادگي مفاهيم‬ ‫•‬
‫قابليت نمايش نموداري‬ ‫•‬
‫ايجاز‬ ‫•‬
‫جامع بودن مفاهيم‬ ‫•‬
‫قابليت نمايش ساختار‪ ،‬حالت و رفتار نوع موجوديت‬ ‫•‬
‫گسترشپذيري‬ ‫•‬
‫جلسه چھارم‬
‫پايگاه داده در محيط انتزاعي‬
‫ٓ‬
‫انچه در اين جلسه مي خوانيد‪:‬‬

‫‪ -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‬‬

‫‪Y‬‬ ‫‪T‬‬ ‫‪V‬‬

‫‪U‬‬ ‫‪M‬‬ ‫‪P‬‬


‫برخي ويژگيهاي ساختار دادهاي سلسلهمراتبي‬

‫‪ -1‬سادگي نمايش ساختار جدولي را ندارد‪.‬‬


‫‪ -2‬مبناي رياضي ندارد‪.‬‬
‫‪ -3‬دو عنصر ساختاري اساسي دارد‪.‬‬
‫‪ -4‬ارتباط يك به چند را نمايش ميدهد‪.‬‬
‫ٓ‬
‫‪ -5‬نمايش ارتباط چند به چند در ان دشوار است‪.‬‬
‫ٓ‬
‫‪ -6‬ساخت منطقي رويه بازيابي ان به سادگي منطق رويه بازيابي در ساختار جدولي‬
‫نيست‪.‬‬
‫ادامه‬
‫برخي ويژگيهاي ساختار دادهاي سلسلهمراتبي‬

‫‪ -7‬در عمليات ذخيرهسازي مشكالتي دارد‪.‬‬


‫‪ -8‬تقارن ساختار جدولي را ندارد‪.‬‬
‫‪ -9‬تعدادي قاعده جامعيت ذاتي دارد‪.‬‬
‫ٓ‬
‫‪ -10‬در مواقعي كه در ذخيرهسازي نمونههاي فرزند‪ ،‬افزونگي پديد ايد‪ ،‬پايگاه در‬
‫معرض ناسازگاري قرار ميگيرد‪.‬‬
‫ساختار دادهاي شبكهاي‬
‫عناصر ساختاري اساسي‬
‫‪ -2‬نوع مجموعه‬ ‫‪ -1‬نوع ركورد‬
‫نوع ركورد براي نمايش نوع موجوديت به كار ميرود‪.‬‬
‫نوع مجموعه براي نمايش ارتباط ‪ 1:N‬بين دو )چند( نوع موجوديت به كار ميرود‪.‬‬

‫‪A‬‬
‫‪D‬‬
‫‪B‬‬
‫‪C‬‬
‫‪G‬‬
‫‪E‬‬
‫‪F‬‬
‫‪H‬‬
‫نوع مجموعه )مجموعه كوداسيل( از سه جزء تشكيل شده است‪:‬‬
‫‪ -1‬نام مجموعه‬
‫‪ -2‬يك نوع ركورد مالك‬
‫‪ -3‬يك نوع ركورد عضو‬
‫يك نوع مجموعه كوداسيل‬

‫‪DEPT‬‬ ‫مالك‬
‫‪DEID‬‬ ‫‪P..‬‬

‫‪STID‬‬ ‫عضو‬
‫‪STID‬‬ ‫‪P..‬‬ ‫‪E-TERM‬‬
‫برخي ويژگيهاي ساختار دادهاي شبكهاي‬

‫‪ -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‬‬

‫کاربر ‪1‬‬ ‫کاربر ‪2‬‬ ‫کاربر ‪i‬‬


‫‪HL +‬‬ ‫‪HL +‬‬ ‫‪HL +‬‬
‫‪DSL‬‬ ‫‪DSL‬‬ ‫‪DSL‬‬ ‫‪D‬‬
‫سطح‬ ‫ديد خارجي ‪1‬‬ ‫ديد خارجي ‪1‬‬ ‫ديد خارجي ‪j‬‬ ‫‪B‬‬
‫سطوح‬ ‫خارجي‬ ‫‪M‬‬
‫انتزاعي‬ ‫‪S‬‬
‫سطح‬ ‫ديد ادراکي )مفهومي(‬
‫‪D‬‬ ‫ادراکي‬
‫‪B‬‬
‫‪OS‬‬
‫‪A‬‬ ‫سطح داخلي‬ ‫ديد داخلي‬

‫سطح فيزيکي‬ ‫فايل ‪1‬‬ ‫فايل ‪2‬‬ ‫فايل ‪K‬‬


‫ديد ادراكي )مفهومي(‬
‫‪ -1‬ديد طراح پايگاه دادهها نسبت به دادههاي ذخيرهشده است‪.‬‬
‫‪ -2‬جامع است‪.‬‬
‫‪ -3‬در يك محيط انتزاعي مطرح است‪.‬‬
‫‪ -4‬با عناصر ساختاري اساسي همان ساختار دادهاي طراحي ميشود‪.‬‬
‫‪ -5‬شماي ادراكي نوعي برنامه است حاوي دستورات تعريف و كنترل دادهها‪ .‬سطح ادراكي در‬
‫واقع همين شماي ادراكي است‪.‬‬
‫‪ -6‬شماي ادراكي به سيستم داده ميشود و در كاتالوگ سيستم نگهداري ميشود‪.‬‬
‫ديد خارجي‬

‫‪ -1‬ديد كاربر خاص نسبت به دادههاي ذخيرهشده در پايگاه داده است‪.‬‬


‫‪ -2‬جزئي است‪.‬‬
‫‪ -3‬در سطح انتزاعي مطرح است‪.‬‬
‫‪ -4‬روي ديد ادراكي طراحي و تعريف ميشود‪.‬‬
‫‪ -5‬شماي خارجي نوعي برنامه است حاوي دستورات تعريف و كنترل دادهها در سطح خارجي‬
‫كه توسط كاربر اين سطح نوشته ميشود‪.‬‬

‫ادامه‬
‫ديد خارجي‬

‫‪ -6‬به تعريف مجموعه ديدهاي خارجي كاربر‪ ،‬سطح خارجي گـفته ميشود‪.‬‬
‫‪ -7‬هر كاربر ميتواند تعدادي ديد داشته باشد‪.‬‬
‫‪ -8‬چند كاربر ميتوانند در يك ديد مشترك باشند‪.‬‬
‫ديد داخلي‬
‫‪ -1‬ديد ‪ DBMS‬و طراح پايگاه دادهها است و در سطحي پايينتر از سطح ادراكي‪،‬‬
‫نسبت به كل دادههاي ذخيرهشده است‪.‬‬

‫‪ -2‬در سطح فايلينگ منطقي مطرح است‪.‬‬

‫‪ -3‬مبتني بر يك ساختار فايل است كه با نظر طراح پايگاه طراحي ميشود و به طراحي‪،‬‬
‫طراحي فيزيكي موسوم است‪.‬‬

‫‪ -4‬در سطح داخلي پايگاه دادهها‪ ،‬فايلينگ منطقي تعريف ميشود‪.‬‬

‫‪ -5‬شماي داخلي نوعي برنامه است كه توسط خود ‪ DBMS‬توليد ميشود و شرح‬
‫فايلينگ منطق پايگاه است‪.‬‬
‫سطوح معماري در محيط ناپايگاهي و محيط پايگاهي و نقش ‪ DBMS‬در ايجاد‪ ،‬مديريت و پردازش‬
‫فايلها‬
‫محيط پايگاهي‬ ‫محيط ناپايگاهي‬

‫شماي خارجي‬
‫سطوح انتزاعي‬
‫شماي ادراكي‬

‫طراح و پيادهساز پايگاه‬ ‫شماي داخلي‪ :‬دستورات تعريف و كنترل فايلها‬


‫برنامههاي تعريف‪ ،‬كنترل و‬
‫دادهها‬ ‫برنامهساز فايلپرداز‬
‫برنامههاي پردازش فايلها‬ ‫پردازش فايلها‬

‫‪DBMS‬‬ ‫‪OS‬‬
‫‪FS‬‬
‫‪FS‬‬ ‫‪AM‬‬
‫‪AM‬‬

‫‪DB‬‬
‫‪FLIES‬‬
‫‪FILES‬‬
‫دادههاي ذخيرهشده‬
‫دادههاي ذخيرهشده‬
‫در محيط فيزيكي‬
‫در محيط فيزيكي‬
‫كاربر‬
‫در معناي عام‪ ،‬هر استفادهكننده از پايگاه دادهها را كاربر گوييم‪.‬‬
‫كاربر‬ ‫كاربر فرمي‬
‫كاربر منويــي‬
‫كاربر نقشهاي‬
‫‪QL‬‬ ‫كاربر فرماني‬
‫نابرنامهساز‬
‫‪HL + QL‬‬ ‫برنامهساز‬ ‫كاربر پارامتري‬
‫كاربر گرافيكي‬
‫كاربر با زبان طبيعي‬
‫هميشگي‪ :‬منظم‬ ‫موردي‪ :‬نامنظم‬
‫كاربر صوتي‬

‫در اسلوب‬ ‫در اسلوب‬ ‫در اسلوب‬


‫تعاملي‬ ‫پيوسته‬ ‫يكجا‬

‫كاربر‪ :‬پاياني‬
‫ابزارساز‬ ‫سيستمساز‬
‫)پيادهساز(‬
‫كاربردساز‬

‫جزء تيم‬
‫جزء تيم اجرائي‬
‫مديريت پايگاه‬
‫زبان ميزبان‬

‫يكي از زبانهاي برنامهسازي متعارف مانند كوبول‪،PL1 ،‬‬


‫فرترن‪ ،‬پاسكال‪ C ،‬و زبانهايــي مثل ‪،LISP ،ADA‬‬
‫‪ JAVA‬و نيز زبان اسمبلي است‪.‬‬
‫كاهش هزينه سازمان‬

‫افزايش تعداد‬

‫انعطافپذيري بيشتر‬ ‫زبانهاي ميزبان مورد پذيرش‬ ‫تنوع كاربر‬


‫‪DBMS‬‬

‫تنوع كاربرد‬
‫زبان دادهاي فرعي‬

‫شامل سه دسته دستور زير است‪:‬‬

‫‪ -1‬دستورات تعريف دادهها )‪Data Definition Language (DDL‬‬

‫‪ -2‬دستورات عمليات روي دادهها )‪Data Manipulation Language (DML‬‬

‫‪ -3‬دستورات كنترل دادهها )‪Data Control Language (DCL‬‬


‫دستورهاي ‪ DSL‬براي سه سطح معماري پايگاه دادهها‬

‫سطح خارجي‬ ‫‪DLL‬‬

‫معماري‬
‫سطح ادراكي‬ ‫‪DML‬‬ ‫‪DSL‬‬
‫‪ANSI‬‬

‫سطح داخلي‬ ‫‪DCL‬‬


‫تقسيمبندي زبان دادهاي فرعي از نظر نياز به‬
‫زبان ميزبان‬

‫مستقل )‪ :(I.DSL‬به زبان ميزبان نياز ندارد و به صورت تعاملي استفاده‬


‫ميشود‪ .‬در واقع يك زبان پرس وجو است‪.‬‬
‫ادغامشدني )‪ :(E.DSL‬دستورهايش در متن برنامهاي به زبان ميزبان‬
‫به كار ميرود و مستقال قابل استفاده نيست‪.‬‬
‫هم مستقل و هم ادغامشدني )‪(I/E.DSL‬‬
‫روند كلي مرحله كامپايل برنامه دوزباني‬

‫برنامه به‬
‫كامپايلر‬
‫دستورهاي ‪HL‬‬ ‫‪HL‬‬
‫‪:HL‬‬
‫كامپايل شده‬

‫دستورهاي‬
‫‪ HL‬و‬ ‫پيش‬
‫اجرا‬
‫دستورهاي‬ ‫كامپايلر‬
‫‪DSL‬‬

‫كامپايلر‬
‫دستورهاي‬
‫دستورهاي ‪DSL‬‬ ‫‪DSL‬‬ ‫‪: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‬واحد توليد فايلهاي ثبت تراكنشها‬
‫كاربر نابرنامهساز‬ ‫كاربر موردي‬ ‫برنامهساز ‪AP‬ها‬ ‫مدير پايگاه دادهها‬

‫‪UFI‬‬ ‫واسط ‪AP‬ها‬ ‫واسط ‪DML‬‬ ‫‪CLI‬‬ ‫‪DDL‬‬

‫فرمانهاي زبان پايگاهي‬


‫ساختار يك‬
‫سيستم پايگاهي‬
‫‪DBMS‬‬ ‫واحد پردازشگر پرسشها‬

‫‪.......‬‬
‫واحد مديريت دادههاي ذخيرهشده‬

‫مدير فايلينگ منطق‬


‫مدير‬
‫تراكنشها‬
‫مدير بافر‬ ‫مدير‬ ‫كامپايلر‬
‫و‬
‫ترميم‬ ‫‪DDL‬‬
‫قفلها‬
‫مدير فضاي ديسك‬
‫‪......‬‬

‫فايل‬
‫شاخصها‬ ‫متادادهها‬ ‫ثبت‬
‫دادههاي ذخيرهشده‬ ‫تراكنشها‬
‫جلسه ھفتم‬
‫‪ 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‬براي هر برنامه كاربردي‬
‫درخواست كاربر‬

‫سيستم عامل‬

‫‪AP1‬‬ ‫‪.....‬‬ ‫‪......‬‬ ‫‪APi‬‬

‫‪DBMS1‬‬ ‫‪DBMSi‬‬

‫‪AM‬‬

‫‪DB1‬‬ ‫‪DB2‬‬
‫يك ‪ DBMS‬براي چند برنامه كاربردي تحت كنترل سيستم عامل‬
‫درخواست كاربر‬

‫سيستم عامل‬

‫‪AP1‬‬ ‫‪.....‬‬ ‫‪......‬‬ ‫‪APi‬‬

‫‪DBMS1‬‬

‫‪AM‬‬

‫‪DB‬‬
‫يك ‪ DBMS‬براي چند برنامه كاربردي با اجراي تحت كنترل ‪DBMS‬‬
‫درخواست كاربر‬

‫سيستم عامل‬

‫‪DBMS1‬‬

‫‪AP1‬‬ ‫‪.....‬‬ ‫‪......‬‬ ‫‪APi‬‬

‫‪AM‬‬

‫‪DB‬‬
‫اسلوبهاي عملياتي‬

‫به طور كلي سه اسلوب عملياتي وجود دارد‪:‬‬


‫• اسلوب يكجا‬
‫• اسلوب برخط‬
‫• اسلوب تعاملي‬
‫كاتالوگ سيستم و ديكشنري دادهها‪ :‬متا دادهها‬

‫حاوي دادههايــي است در مورد دادههاي ذخيرهشده در پايگاه دادههاي‬


‫كاربر و اين دادهها به متادادهها موسومند‬

‫ديكشنري دادهها معموال جزئي از خود سيستم است و به دو صورت فعال و‬


‫غيرفعال توليد ميشود‪.‬‬
‫اطالعاتي كه در ديكشنري دادهها نگهداري ميشود‪:‬‬

‫• شماهاي خارجي‬
‫• شماي ادراكي‬
‫• شماي داخلي‬
‫• رويههاي مربوط به تبديالت بين سه سطح معماري‬
‫• شرح ساختار فيزيكي دادههاي ذخيرهشده‬
‫• مشخصات و حقوق دستيابي كاربران به دادهها‬
‫ٓ‬
‫• مشخصات برنامههاي كاربردي توليد شده و ارتباط انها با درخواستهاي كاربران‬
‫• مشخصات پايانههاي متصل به سيستم‬

‫ادامه‬
‫اطالعاتي كه در ديكشنري دادهها نگهداري ميشود‪:‬‬

‫• ارتباط بين برنامههاي كاربردي و دادههاي ذخيرهشده‬


‫• قواعد جامعيت‬
‫• ضوابط كنترل ايمني دادهها‬
‫• مشخصات پيكربندي سختافزاري سيستم و رسانههاي ذخيرهسازي‬
‫ٓ‬
‫• اطالعات متنوع امار پايگاه داده و كاربران‬
‫ي‬
‫• توابع تعريفشده توسط كاربران‬
‫ٓ‬
‫ديكشنري دادهها و استفادهكنندگان ان‬

‫برنامهسازان سيستمي‬
‫كاربران پاياني‬

‫تيم مديريت پايگاه دادهها‬ ‫برنامهسازان كاربردي‬

‫ديكشنري دادهها‬

‫زيرسيستمهاي ايمني‬ ‫كامپايلر‪/‬‬ ‫برنامه كاربردي‬ ‫زيرسيستم جامعيت‬


‫و مجازشماري‬ ‫پيشكامپايلر‬ ‫مولد گزارش‬ ‫پايگاه دادهها‬

‫بهينهساز‬ ‫زيرسيستم و‬
‫پرس و جو‬ ‫ترميم پايگاه دادهها‬
‫پارامترهاي شناخت ‪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‬معماري سيستم پايگاههاي همراه‬
‫هدفهاي كلي‪ :‬معماري سيستم پايگاه دادهها‬

‫هدفهاي رفتاري‪ :‬دانشجو در پايان اين جلسه ميتواند‪:‬‬


‫• گونههاي مختلف معماري پايگاه دادهها شامل معماري متمركز و نامتمركز و انواع معماري‬
‫نامتمركز و ويژگيهاي هريك را شرح دهد‪.‬‬
‫معماري سيستم پايگاه دادهها‬

‫منظور‪ ،‬چندي و چوني اجزاء تشكيلدهنده سيستم و نيز پيكربندي يا طرز‬


‫تركيب اجزاء سيستم و چگونگي تعامل اجزاء با يكديگر است‪ .‬در اين معماري‬
‫حداقل يك پايگاه دادهها‪ ،‬يك سيستم مديريت پايگاه دادهها‪ ،‬يك سيستم‬
‫عامل‪ ،‬يك كامپيوتر با دستگاههاي جانبي و تعدادي برنامه كاربردي و كاربر‬
‫وجود دارند‪.‬‬
‫معماري متمركز‬

‫انواع معماري‬
‫معماري مشتري‪-‬خدمتگزار‬
‫معماري توزيعشده‬
‫معماري چندپايگاهي‬ ‫معماري نامتمركز‬
‫معماري با پردازش موازي‬
‫معماري موبايل‬
‫معماري متمركز‬

‫در اين معماري يک پايگاه داده روي يک سيستم کامپيوتري و‬


‫بدون ارتباط با سيستم ديگر ايجاد مي شود ‪.‬‬
‫نمايش معماري متمركز‬

‫كاربران پايانهاي نزديك‬

‫كاربران‬
‫پايانهاي‬
‫دور‬ ‫‪..‬‬
‫‪.‬‬ ‫كامپيوتر بزرگ‬ ‫كنترولر ديسك‬

‫‪..‬‬
‫‪.‬‬
‫كنترولر چاپگر‬ ‫كنترولر نوار‬

‫پايگاه دادههاي متمركز‬

‫‪...‬‬
‫معماري مشتري ‪ -‬خدمتگزار‬

‫ٓ‬
‫هر معماري که در ان قسمتي از پردازش را يک برنامه‪ ،‬سيستم يا ماشين انجام‬
‫دهد و انجام قسمت ديگري از پردازش را از برنامه ‪ ،‬سيستم يا ماشين‬
‫ديگر بخواهد معماري مشتري خدمتگزار ناميده مي شود‬
‫معماري مشتري ‪ -‬خدمتگزار‬

‫‪OS‬‬ ‫‪D‬‬
‫‪B‬‬
‫‪DBMS‬‬
‫‪AP . . . .‬‬ ‫‪M‬‬ ‫‪DB‬‬
‫‪S‬‬ ‫‪OS‬‬

‫ماشين مشتري‬ ‫ماشين خدمتگزار‬


‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬

‫از نظر تعداد مشتري و خدمتگزار‬


‫‪ -1‬چند مشتري – يك خدمتگزار‬
‫‪ -2‬يك مشتري – چند خدمتگزار‬
‫‪ -3‬چند مشتري – چند خدمتگزار‬
‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫از نظر پيكربندي سختافزاري‬
‫الف‪ -‬معماري حول كامپيوتر بزرگ‬
‫مشتري‬

‫‪PCi‬‬ ‫‪......‬‬ ‫‪PC2‬‬ ‫‪PC1‬‬

‫‪MAIN‬‬
‫‪DB‬‬

‫خدمتگزار‬
‫طرحهاي معماري مشتري ‪ -‬خدمتگزار‬
‫از نظر پيكربندي سختافزاري‬
‫مشتري‬ ‫ب‪ -‬معماري حول شبكه‬
‫‪PCi‬‬ ‫‪......‬‬ ‫‪PC2‬‬ ‫‪PC1‬‬

‫شبكه‬

‫‪PCi‬‬ ‫‪PCk‬‬ ‫‪PCn‬‬ ‫خدمتگزاران‬


‫‪Files‬‬ ‫‪DB‬‬

‫‪Printer‬‬
‫مزاياي معماري مشتري – خدمتگزار در مقايسه با معماري‬
‫متمركز‬

‫• تقسيم پردازش‬
‫• كاهش ترافيك شبكه‬
‫• استقالل ايستگاههاي كار‬
‫• اشتراك دادهها‬
‫معماري توزيعشده‬

‫مجموعه اي از داده هاي ذخيره شده که منطقا به يک سيستم تعلق دارند‬


‫ولي در مانه هاي مختلف يک يا بيش از يک شبکه توزيع شده اند‪.‬‬
‫نماي يك مانه در معماري توزيعشده‬

OS
D
D
DB B D LAN
C NETWORK WAN
M
S MNET
‫معماري توزيعشده با سه مانه‬
‫كاربران دور‬ ‫كاربران دور‬

‫كاربران نزديك‬ ‫كاربران نزديك‬

I I I I
OS1 OS2
DDBMS1 DDBMS2
DB1 APs DC DB2
DC APs

NETWORK
. LAN
. WAN
. MNET

DC APs

DDBMS3
DB3 OS3
I
I

DDB = {DB1+DB2+DB3}
‫ويژگيهاي معماري توزيعشده‬

‫• مجموعهاي است از دادههاي منطقا مرتبط و اشتراكي‬


‫• دادهها به بخشهايــي تقسيم و در مانهها توزيع شدهاند‪.‬‬
‫• بعضي بخشها ممكن است به طور تكراري در مانهها ذخيره شده باشند‪.‬‬
‫• مانهها از طريق شبكه بهم مرتبطاند‪.‬‬
‫• دادههاي هر مانه تحت كنترل يك ‪ DBMS‬است‪.‬‬
‫• ‪ DMBS‬هر مانه‪ ،‬ميتواند برنامههاي كاربردي محلي را‬
‫به طور خودكار اجرا كند‪.‬‬
‫• هر ‪ DBMS‬حداقل دراجراي يك برنامه كاربردي سرتاسري‬
‫مشاركت دارد‪.‬‬
‫مزاياي معماري توزيع شده‬

‫• سازگاري و هماهنگي با ماهيت سازمانهاي نوين‪.‬‬


‫• كارايــي بيشتر در پردازش دادهها‪.‬‬
‫• دستيابي بهتر به دادهها‪.‬‬
‫• اشتراك دادهها‪.‬‬
‫• افزايش پردازش موازي‪.‬‬
‫• كاهش هزينه ارتباطات‪.‬‬
‫• تسهيل گسترش سيستم‪.‬‬
‫• استفاده از پايگاه دادههاي از قبل موجود‪.‬‬
‫معايب معماري توزيعشده‬

‫• پيچيدگي طراحي سيستم‪.‬‬


‫• پيچيدگي پيادهسازي‪.‬‬
‫• كاهش كارايــي در برخي موارد‪.‬‬
‫• هزينه بيشتر‪.‬‬
‫• مصرف حافظه بيشتر‪.‬‬
‫معماري با پردازش موازي‬

‫در اين گونه سيستمها معموال تعداد زيادي تراکنش در ثانيه و بطور‬
‫موازي اجرا ميشود ‪.‬‬
‫طرح كلي معماري با پردازش موازي‬
‫خدمتگزاران برنامههاي كاربردي‬

‫برنامه كاربر ‪1‬‬ ‫برنامه كاربر ‪2‬‬ ‫‪............‬‬ ‫برنامه كاربر ‪n‬‬

‫مدير تماسهاي‬
‫اجرايــي كاربران‬

‫مدير درخواست‬ ‫مدير درخواست‬ ‫مدير درخواست‬


‫برنامه كاربر ‪1‬‬ ‫برنامه كاربر ‪2‬‬ ‫‪............‬‬ ‫برنامه كاربر ‪n‬‬

‫مدير دادههاي‬ ‫مدير دادههاي‬ ‫مدير دادههاي‬ ‫مدير دادههاي‬


‫برنامه ‪1‬‬ ‫برنامه ‪2‬‬ ‫برنامه ‪m-1‬‬ ‫برنامه ‪m‬‬
‫خدمتگزار پايگاه دادهها‬
‫طرح هاي معماري با پردازش موازي‬

‫الف‪ -‬معماري با حافظه مشترك‬


‫‪P‬‬
‫‪M‬‬

‫‪P‬‬

‫‪P‬‬

‫‪P‬‬
‫معماري با حافظه مشترك‬

‫مزيت‪ :‬ارتباط بين پردازندهها به طور كارا انجام ميشود‪.‬‬

‫عيب‪ :‬نميتوان بيش از ‪ 32‬يا ‪ 64‬پردازنده داشت‪ .‬زيرا احتمال بروز‬


‫تنگنا در باسهاي حافظهاي يا شبكه ارتباطي افزايش مييابد‪.‬‬
‫طرح هاي معماري با پردازش موازي‬

‫‪M‬‬ ‫‪P‬‬ ‫ب‪ -‬معماري با ديسكهاي مشترك‬

‫‪M‬‬ ‫‪P‬‬

‫‪M‬‬ ‫‪P‬‬

‫‪M‬‬ ‫‪P‬‬
‫معماري با ديسكهاي مشترك‬

‫مزيت‪:‬‬
‫‪ -1‬عدم بروز تنگنا در باسهاي حافظهاي‬
‫‪ -2‬تسهيل تحمل خرابي‬

‫عيب‪ :‬دشواري در گسترش سيستم‪.‬‬


‫طرح هاي معماري با پردازش موازي‬
‫ج‪ -‬معماري بياجزاء مشترك‬
‫‪M‬‬ ‫‪P‬‬

‫‪P‬‬ ‫‪M‬‬

‫‪M‬‬ ‫‪P‬‬

‫‪P‬‬ ‫‪M‬‬

‫‪M‬‬ ‫‪P‬‬
‫معماري بياجزاء مشترك‬

‫مزيت‪ :‬تسهيل گسترش‬

‫عيب‪ :‬هزينه ارتباط و دستيابيهاي غيرمحلي زياد است‪.‬‬


‫طرح هاي معماري با پردازش موازي‬
‫د‪ -‬معماري سلسلهمراتبي‬

‫‪P‬‬
‫‪P‬‬ ‫‪P‬‬
‫‪M‬‬
‫‪M‬‬ ‫‪M‬‬

‫‪P‬‬
‫‪P‬‬ ‫‪P‬‬

‫‪P‬‬
‫‪P‬‬ ‫‪P‬‬

‫‪P‬‬
‫‪P‬‬ ‫‪P‬‬
‫معماري سيستم چندپايگاهي‬
‫‪S1‬‬ ‫‪Sn‬‬
‫شماي خارجي‬ ‫شماي خارجي‬
‫سراسري‬ ‫سراسري‬

‫شماي ادراكي‬
‫سراسري‬

‫‪S1‬‬
‫شماي خارجي‬ ‫شماي خارجي‬ ‫شماي خارجي‬ ‫شماي خارجي‬
‫محلي‬ ‫محلي‬ ‫محلي‬ ‫محلي‬

‫شماي ادراكي‬ ‫شماي ادراكي‬


‫محلي‬ ‫محلي‬

‫شماي داخلي‬ ‫شماي داخلي‬


‫محلي‬ ‫محلي‬

‫‪DB‬‬
‫‪DB‬‬
‫معماري سيستم پايگاههاي همراه‬
‫سيستم عامل‬

‫‪DBMS‬‬
‫پايگاه دادههاي‬
‫ميزبان‬ ‫برنامههاي كاربردي‬
‫امكانات همرسانش‬

‫امكانات همرسانش‬ ‫امكانات همرسانش‬


‫‪D‬‬ ‫سيستم‬ ‫‪D‬‬
‫‪B‬‬ ‫برنامههاي‬ ‫سيستم‬ ‫برنامههاي‬ ‫‪B‬‬
‫‪M‬‬ ‫كاربردي‬ ‫عامل‬ ‫عامل‬ ‫كاربردي‬ ‫‪M‬‬
‫‪S‬‬ ‫‪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‬طول كوتاهتر داشته باشد‪.‬‬
‫كليد ديگر )بديل(‬

‫تعريف‪ -‬هر كليد كانديد‪ ،‬غير از كليد اصلي‪ ،‬كليد ديگر نام‬
‫دارد‪.‬‬
‫كليد خارجي‬

‫‪ R‬در ‪2‬نظر‪R‬ميگيريم‪ .‬هر زيرمجموعه از صفات رابطه كه هر‬ ‫تعريف‪ -‬دورابطه و ‪ 1‬را‬
‫مقدار معلومش با‪R2‬‬
‫يك مقدار از كليد كانديد برابر باشد‪ ،‬كليد خارجي در رابطه است‪.‬‬
‫‪R2‬‬ ‫‪R1‬‬

‫كليد خارجي براي نمايش ارتباطات بين انواع موجوديتها بهكار ميرود‪.‬‬
‫جلسه دھم‬
‫قواعد جامعيت پايگاه دادهها‬
‫ٓ‬
‫انچه در اين جلسه مي خوانيد‪:‬‬

‫‪ -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‬قاعده ‪C)2‬‬
‫جامعيت ارجاعي(‬
‫قاعده ‪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,I,Ai‬‬
‫عملگر پيوند دو عملوندي است و چنين نوشته ميشود‪:‬‬
‫‪R1 JOIN cond(s) R2‬‬

‫ٓ‬
‫كه در ان )‪ cond(s‬چنين است‪:‬‬
‫‪R1.Ai theta R2.Bi‬‬

‫‪ Ai‬يك صفت از رابطه ‪ R1‬و ‪ Bi‬يك صفت از رابطه ‪ R2‬است كه از يك ميدان مقدار ميگيرند و‬
‫بايد ناهمنام باشند‪.‬‬
‫كاربردهاي جبر رابطهاي‬

‫‪ -1‬بازيابي دادهها‬
‫‪ -2‬ذخيرهسازي دادهها‬
‫‪ -3‬تعريف انواع رابطههاي مشتق‬
‫‪ -4‬تعريف قواعد براي كنترل پايگاه دادهها‬
‫‪ -5‬تعريف دادهها به عنوان حيطه بعضي عمليات كنترل‬
‫همروندي تراكنشها‬
‫‪ -6‬ضابطه تشخيص كامل بودن زبانهاي رابطهاي‬
‫حساب رابطهاي‬

‫حساب رابطهاي‪ ،‬با جبر رابطهاي منطقا معادل است‪ ،‬يعني براي هر‬
‫عبارت جبر رابطهاي‪ ،‬يك عبارت معادل در حساب رابطهاي وجود‬
‫ٓ‬
‫دارد و برعكس‪ .‬تفاوت انها اين است كه جبر رابطهاي‪ ،‬دستوري‬
‫است‪ ،‬اما حساب رابطهاي توصيفي است‪.‬‬
‫• حساب تاپلي‪ :‬در اين حساب مفهوم مهمي به نام متغير تاپلي‬
‫وجود دارد كه تنها مقادير مجازش‪ ،‬تاپلهاي رابطه هستند‪.‬‬
‫• حساب ميداني‪ :‬در اين حساب‪ ،‬متغير ميداني وجود دارد كه از‬
‫حساب رابطهاي‬
‫يك ميدان مقدار ميگيرد‪ .‬در اين حساب يك شرط اضافي به نام‬
‫شرط عضويت وجود دارد‪.‬‬
‫در حساب رابطهاي تاپلي دو سور وجود دارد‪:‬‬

‫شود‪ ،‬به اين معنا كه حداقل يك مقدار‬‫نوشته‪( f‬مي‪∃T‬‬


‫)‬ ‫‪ -1‬سور وجودي‪ :‬به صورت‬
‫براي متغير ‪ T‬وجود دارد به نحوي كه ‪ f‬به “درست” ارزيابي شود‪.‬‬
‫نوشته ميشود‪ .‬يعني به ازاء تمام مقادير متغير‬ ‫‪ -2‬سور همگاني‪ :‬به صورت‬
‫‪ f ،T‬به “درست” ارزيابي ميشود‪∀T ( f ) .‬‬
‫مزاياي مدل رابطهاي‬
‫‪ -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
:‫ انواع دادهاي‬-2 -1
CHARACTER[(length)]
INTEGER
DECIMAL [(precision[,scale])]
SMALLINT
DOUBLE PRECISION
REAL
FLOAT [(precision)]
NUMERIC [(precision[,scale])]
‫ دستورات تعريف دادهها‬.1

: ‫ دستور ايجاد جدول‬-3 -1


CREATE SCHEMA
AUTHORIZATION I
CREATE TABLE I
‫‪ .1‬دستورات تعريف دادهها‬
‫‪ -4 -1‬دستور حذف جدول‪:‬‬
‫‪DROP TABLE table-name‬‬
‫‪ .1‬دستورات تعريف دادهها‬
‫‪ -5 -1‬دستور ايجاد و حذف ديد‪:‬‬
‫‪CREATE VIEW I‬‬
‫‪DROP‬‬ ‫‪VIEW I‬‬
‫‪ .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
ٓ
‫ بين‬77-78 ‫ در ترم اول‬HIS444 ‫ شماره دانشجوياني را بدهيد كه نمره انها در درس‬:‫مثال‬
.‫ باشد‬19 ‫ و‬15
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‬تغيير كردند يا به ان اضافه شدند‪:‬‬

‫‪ .8‬دستور حذف جدول‬ ‫‪ .1‬دستور تعريف دادهها‬


‫‪ .9‬تعريف جدول موقت‬ ‫‪ .2‬دستور تعريف ميدان‬
‫‪ .10‬دستور بازيابي‬ ‫‪ .3‬انواع دادهاي‬
‫‪ .11‬امكانات جامعيتي‬ ‫‪ .4‬دستور تغيير ميدان‬
‫‪ .12‬امكانات ايمني‬ ‫‪ .5‬دستور حذف ميدان‬
‫‪ SQL .13‬پويا‬ ‫‪ .6‬دستور ايجاد جدول‬
‫‪ .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‬بابا وجود ان ديگر نياز نيست كه محدوديتهاي مو د نظر در هر برنامه كاربردي‬ ‫‪.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‬و ‪... ،‬‬
‫موجوديت ‪Ai E‬‬
‫باشند‪ ،‬در اين صورت براي نمايش اين نوع موجوديت‪،‬‬ ‫مقداري ‪A2‬‬
‫و ساير صفات تك ‪A1‬‬
‫دو رابطه الزم است‪:‬‬
‫‪EID‬‬
‫( ‪R1‬‬ ‫) ‪, A1 , A 2 ,..., A i‬‬
‫‪C .K .‬‬

‫‪EID , MVA‬‬
‫( ‪R2‬‬ ‫)‬
‫‪C .K .‬‬
‫روش تبديل نمودار ‪ 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‬وابستگي تابعي دارد و چنين نمايش ميدهيم‪:‬‬
‫ممكن‪A‬از متغير رابطهاي ‪ ،R‬به هر مقدار ‪ A‬فقط يك مقدار ‪ B‬متناظر‬ ‫اگر و فقط اگر در هر ‪B‬‬
‫ميدان→‬
‫باشد‪.‬‬
‫وابستگي تابعي نامهم )بديهي(‬

‫⊆‪B‬‬
‫اين صورت‪:‬‬ ‫اگر در )‪ R(A,B,C,P‬داشته باشيم‪ A، :‬در‬
‫نامهم است‪ .‬به بيان ديگر اگر ‪ B‬زيرمجموعهاي از ‪ A‬باشد‪،‬‬
‫→‪A‬‬ ‫يك وابستگي ‪B‬تابعي‬
‫‪A→ B‬‬ ‫يك وابستگي نامهم است‪.‬‬ ‫در اين صورت‬
‫ٓ‬
‫قواعد استنتاج ارمسترانگ‬
‫فرض‪ C ،B ،A :‬و ‪ D‬زيرمجموعههايــي از صفات رابطه ‪ R‬باشند‪ .‬قواعد زير برقرارند‪:‬‬
‫ٓ‬
‫‪A→ B‬‬ ‫‪B⊆ A‬‬ ‫‪ .1‬قاعده انعكاس‪ :‬اگر انگاه‪:‬‬
‫‪ٓB‬‬
‫‪A→C‬‬ ‫‪B→C‬‬ ‫‪ .2‬قاعده تعدي)تراگذري(‪ :‬اگر و انگاه‬
‫‪A‬‬ ‫→‬
‫ٓ‬
‫) ‪( A, C ) → ( B, C‬‬ ‫نگاه‬‫→‪A‬‬ ‫‪ B‬ا‬ ‫‪ .3‬قاعده افزايش‪ :‬اگر‬
‫ٓ‬
‫‪B→C‬‬ ‫‪A→C‬‬ ‫و‬
‫‪A‬‬
‫) ‪ C‬انگاه‬
‫→‬ ‫(‬ ‫‪B‬‬ ‫‪,‬‬
‫‪ .4‬قاعده تجزيه‪ :‬اگر‬
‫ٓ‬
‫) ‪A → ( B, C‬‬ ‫و‪ A → C‬انگاه‪B → C‬‬ ‫‪ .5‬قاعده اجتماع‪ :‬اگر‬
‫ٓ‬
‫)‪( A, C ) → ( B, D‬‬ ‫و‪ C → D‬انگاه‪A → B‬‬ ‫‪ .6‬قاعده تركيب‪ :‬اگر‬
‫ٓ‬
‫‪( A, C ) → D‬‬ ‫‪A→ B‬‬ ‫‪ D‬و→ )‪ (C, B‬انگاه‬ ‫‪ .7‬قاعده شبه تعدي‪ :‬اگر‬
‫ٓ‬
‫)‪A ∪ (C − B ) → ( B, D‬‬ ‫‪A→ B‬‬ ‫و ‪ → D‬ا‪C‬نگاه‬ ‫‪ .8‬قاعده يگانگي عمومي‪ :‬اگر‬
‫مجموعه كاهشناپذير وابستگيهاي تابعي‬

‫مجموعهاي از وابستگيهاي تابعي ‪ ،R‬به نام ‪ F‬را كاهشناپذير گوييم اگر‪:‬‬


‫‪.1‬در ‪ F‬وابستگي تابعي افزونه نباشد‪.‬‬
‫‪.2‬در سمت راست هر ‪ FD‬از ‪ F‬صفت ساده وجود داشته باشد‪.‬‬
‫‪.3‬هيچ صفتي در سمت چپ ‪FD‬هاي ‪ F‬افزونه نباشد‪.‬‬
‫وابستگي تابعي تام )كامل(‬

‫اگر ‪ X‬و ‪ Y‬دو زيرمجموعه از مجموعه عنوان رابطه ‪ R‬باشند‪ ،‬ميگوييم ‪ Y‬با ‪ X‬وابستگي‬
‫‪X ⇒Y‬‬ ‫تابعي تام دارد و چنين نشان ميدهيم‪:‬‬

‫اگر و فقط اگر ‪ Y‬با ‪ X‬وابستگي داشته باشد‪ .‬ولي با هيچ زيرمجموعهاي از ‪ X‬وابستگي تابعي‬
‫نداشته باشد‪.‬‬
‫رابطه ‪1NF‬‬

‫ٓ‬
‫تعريف‪ -‬رابطهاي ‪ 1NF‬است اگر هر صفت خاصه ان در هر تاپل‪،‬‬
‫تكمقداري باشد‪ ،‬به بيان ديگر‪ ،‬صفت چندمقداري نداشته باشد‪.‬‬
‫رابطه ‪2NF‬‬

‫تعريف‪ -‬رابطهاي ‪ 2NF‬است اگر اوال ‪ 1NF‬باشد و ثانيا تمام صفات‬


‫غيركليد با كليد اصلي وابستگي تابعي تام داشته باشند‪ .‬به عبارت ديگر هر‬
‫صفت غيركليد با كليد اصلي بطور كاهشناپذير وابسته باشد‬
‫باشد‪..‬‬
‫رابطه ‪3NF‬‬

‫تعريف‪ -‬رابطهاي ‪ 3NF‬است اگر ‪ 2NF‬باشد و هر صفت غيركليد با‬


‫كليد اصلي‪ ،‬وابستگي تابعي بيواسطه داشته باشد‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬

‫ٓ‬
‫تعريف اول‪ :‬رابطهاي ‪ BCNF‬است اگر در ان هر دترمينان‪،‬‬
‫كليد كانديد باشد‪ .‬اين تعريف سادهشده و غير صوري است‪.‬‬
‫صورت نرمال بايس‪-‬كاد‬

‫تعريف دوم‪ :‬رابطه )‪ ،R(H‬با مجموعه وابستگيهاي تابعي ‪ ،F‬در ‪ BCNF‬است اگر‬
‫‪+‬‬ ‫ٓ‬
‫‪A‬‬ ‫‪B‬‬
‫است‪ ،‬حداقل‬
‫→‬ ‫و‬
‫‪F‬‬ ‫براي هر وابستگي تابعي در به صورت كه در ان‬
‫ار باشد‪B ⊆ R(H ) :‬‬
‫⊆ر‪A‬‬
‫حالت‪(H‬زير‪R‬برق‬
‫)‬ ‫يكي از دو‬
‫يك وابستگي نامهم باشد يعني‬ ‫‪:a‬‬
‫‪B⊆ A‬‬ ‫سوپركليد رابطه ‪ R‬باشد‪.‬‬
‫‪A → B A :b‬‬
‫صورت نرمال بايس‪-‬كاد‬

‫تعريف سوم‪ :‬رابطه ‪ R‬در ‪ BCNF‬است هرگاه يك وابستگي تابعي به صورت‬


‫وجود‪A‬داشته باشد‪ A ،‬سوپركليد ‪ R‬باشد‪.‬‬
‫‪→R‬‬ ‫در مجموعه ‪FD‬هاي ‪B‬‬
‫صورت نرمال بايس‪-‬كاد‬

‫تعريف چهارم‪ :‬رابطهاي ‪ BCNF‬است اگر و فقط اگر سمت چپ هر‬


‫‪ FD‬مهم )مطرح( و كاهشناپذير‪ ،‬كليد كانديد رابطه باشد‪.‬‬
‫وابستگي تابعي چندمقداري‬

‫تعريف اول‪ -‬در رابطه )‪ R(X,Y,Z‬با صفات ساده يا مركب ‪ Y ،X‬و ‪Z‬‬
‫ميگوييم كه ‪ Y‬با ‪ X‬وابستگي تابعي چندمقداري دارد و چنين نمايش ميدهيم‪:‬‬
‫→→ ‪X‬‬
‫متناظر باشند‪.‬‬ ‫اگر به يك مقدار ‪ ،X‬مجموعهاي‪Y‬از مقادير ‪Y‬‬
‫وابستگي تابعي چندمقداري‬

‫تعريف دوم‪ -‬در رابطه ‪ ،R‬صفت ‪ Y‬با ‪ X‬وابستگي تابعي چندمقداري دارد اگر‬
‫و فقط اگر مجموعه مقادير ‪ Y‬متناظر با يك مقدار از جفت )‪ (X,Z‬در ‪ R‬فقط‬
‫به مقدار ‪ X‬بستگي داشته باشد و وابسته به مقدار ‪ Z‬نباشد‪.‬‬
‫رابطه ‪4NF‬‬

‫ٓ‬
‫تعريف‪ -‬رابطهاي ‪ 4NF‬است اگر ‪ BCNF‬باشد و در ان وابستگي‬
‫تابعي چند مقداري مهم وجود نداشته باشد‪.‬‬
‫وابستگي تابعي چندمقداري ادغامشده‬

‫در رابطه )‪ ،R(X,Y,Z,U,V,P‬پديده وابستگي تابعي چندمقداري‬


‫ادغام شده وجود دارد اگر در پرتوي از اين رابطه‪ ،‬پديده وابستگي تابعي‬
‫چندمقداري وجود داشته باشد‪ .‬توجه داشته باشيد كه اين پرتو بايد روي سه‬
‫صفت )ساده يا مركب( باشد‪.‬‬
‫رابطه ‪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‬ها بهينهساز‪ ،‬اگر در پرسش‪ ،‬عبارت محاسباتي‪ ،‬مقايسه يا‬
‫هيچ مقدار و محاسبه تفاوت مقادير وجود داشته باشد‪ ،‬از شاخص استفاده نميكند‪.‬‬

You might also like