Transcript Slide 1

‫‪‬پايگاه داده‌ها (بانک اطالعات)‬
‫‪‬نوع درس‪ :‬تئوري‬
‫‪‬مقطع‪ :‬کارشناس ي‬
‫‪‬رشته‪ :‬مهندس ي کامپيوتر و ‪IT‬‬
‫‪‬تعداد واحد‪3 :‬‬
‫‪‬منبع اصلي درس‪:‬‬
‫‪‬بانک اطالعات علمي‪ -‬کاربردي‬
‫جلد اول‬
‫‪‬مولف‪ :‬دکتر مصطفي حق جو‬
‫‪‬انتشارات‪ :‬دانشگاه علم و صنعت ايران‬
‫‪ -‬زمان بندی‬
‫‪ ‬طول ترم‪ :‬شانزده هفته‬
‫‪ ‬تعطيالت‪ 2 :‬جلسه‬
‫‪ ‬تعداد جلسات‪22 :‬جلسه‬
‫ نحوه ارتباط‬‫‪ ‬سایت دانشگاه ‪www.Shahroodut.ac.ir‬‬
‫ نحوه ارزیابی‬‫‪( %5‬یک جلسه غیبت موجه مجاز‪،‬‬
‫‪‬حضور اجباری‌‬
‫غیبت بیش از دو جلسه هیچ نمره ای تعلق نمی گیرد‪).‬‬
‫‪‬امتحانک (کوئیز)‪ :‬حداکثر‪( %10‬دوره ای‪ -‬هر کوئیز ‪)%1‬‬
‫‪%20‬‬
‫‪‬تمرین و پروژه‪:‬‬
‫‪)94/1/29( %30‬‬
‫‪‬ميان ترم‪:‬‬
‫‪‬پایان ترم‪( %40 :‬تقویم آموزش ی ‪)94/4/7‬‬
‫ي)‬
‫‪( %10‬اختيار ‌‬
‫‪‬فوق برنامه‬
‫‪4‬‬
‫فهرست مطالب‬
‫‪ ‬بانک اطالعات چيست؟‬
‫‪ ‬تصوير ادراکي عام (مدل ‪)ER‬‬
‫‪ ‬مباني نظري مدل رابطه‌اي (جبر رابطه‌اي)‬
‫‪ ‬زبان پرس و جوي ‪SQL‬‬
‫ي‬
‫‪ ‬وابستگي و نرمال‌ساز ‌‬
‫‪ ‬پروژه‪:‬‬
‫‪ ‬طراحي و پياده‌سازي يک بانک اطالعات (بصورت گروهی)‬
‫‪ ‬فوق برنامه‬
‫‪ ‬مقاله های جدید ‪Data mining‬‬
‫‪ ‬پايگاه داده هاي جديد‬
‫‪ ‬پروژه‪:‬‬
‫‪ ‬طراحي و پياده‌سازي يک بانک اطالعات‬
‫‪ .1‬تشکيل گروه‌هاي ‪ 2‬نفره و انتخاب موضوع و نوع پیاده سازی به همراه‬
‫خالصه پروژه (جلسه‌ي آينده‪ -‬بصورت تایپ شده در کاغذ ‪)0/2( )A4‬‬
‫‪ .2‬گزارش اول‪ ،‬نمودار ‪ EER‬پروژه و جداول استخراج شده از نمودار‬
‫(یکشنبه ‪)0/3( )12/03‬‬
‫‪ .3‬گزارش دوم‪ ،‬طرح نیازمندیهای کاربران این سیستم بصورت پرسش و‬
‫پاسخ به آنها با استفاده از عملگرهای جبر رابطه‌اي (شنبه ‪)12/23‬‬
‫(‪)0/5‬‬
‫‪ .4‬گزارش سوم‪ ،‬پياده‌سازي بانک اطالعات و جداول‪ ،‬به همراه‬
‫پرس‌وجوهاي ‪ SQL‬بر اساسگزارش دوم و سوم (شنبه ‪)1( )2/19‬‬
‫‪ .5‬طراحی واسط کاربر برای ارتباط با بانک اطالعات (شنبه ‪)1( )4/13‬‬
‫‪ ‬فوق برنامه‬
‫‪ ‬پايگاه داده‌هاي جديد‬
‫‪ .1‬پيشنهاد موضوع بهمراه مستندات اولیه (حداکثر ‪)12/2‬‬
‫‪ .2‬ارایه مستندات نهایی تا تاریخ ‪2/19‬‬
‫‪ .3‬ارایه در کالس‬
‫بانک اطالعات چيست؟‬
‫مقدمه‬
‫ً‬
‫‪ ‬در ابتدا کاربران مستقيما با سخت افزار کار مي‌کردند و داده‌ها را روي آنها‬
‫ذخیره و بازيابي مي‌کردند‪.‬‬
‫‪ ‬با گذشت زمان نرم‌افزارهاي شيوه دستيابي بوجود آمد که رابط بین کاربر و‬
‫کامپيوتر بود‪(.‬اين نرم افزار مديريت ذخیره و بازيابي را به عهده داشتند)‬
‫‪ ‬انقالب بانک اطالعات در اوايل دهه ‪ 1970‬باعث ايجاد ”نظام مديريت بانک‬
‫اطالعات“ ‪ )DBMS( Database Management System‬گرديد‪.‬‬
‫(هرگونه دسترس ي به داده‌ها توسط آن صورت مي‌پذيرد‪).‬‬
‫انواع کاربر‬
 1. DBA (Data Base Administrator)
 2. DBP (Data Base Programmer)
 3. End user
‫)‪Data Base Administrator (DBA‬‬
‫‪‬‬
‫يكی از مهمترين كاربران در سيستم بانك اطالعاتی‪ ،‬كه مسئوليت‬
‫طراحي و تصميم‌گیري براي كليه موارد يك سيستم بانك اط ‌العاتی را‬
‫دارد‪.‬‬
‫اداره كننده بانك‪ ،‬فرد يا گروهی از افراد هستند كه مسئوليت‬
‫ايجاد‪ ،‬پياده‌سا ‌زی‌ و نگهدا ‌ری‌ بانك را در محيط عملياتی برعهده دارد‪.‬‬
‫كاربر برنامه‌ن ‌ويس يا )‪DataBaseProgramer (DBP‬‬
‫‪ ‬اين گروه افراد مسئول ساختن برنامه‌هايي هستند كه از يك طرف‬
‫به بانك اطالعات متصل است و از طرف ديگر به كاربر نهايي يا همان‬
‫اپراتور‌‪ .‬در واقع اين افراد تصميمات مدير را پياده سازي مي‌كنند‪.‬‬
‫كاربر نهايي (‪)End User‬‬
‫‪‬‬
‫كاربران نهايي كساني هستند كه از طريق برنامه‌هاي تهيه شده داده‌ها‬
‫را در حيطه نظارت ‪ DBMS‬دستكاري مي‌نمايند‪.‬‬
‫بانک اطالعات علمی ‪ -‬کاربردی‬
‫مدير بانک‬
‫‪DBA‬اطالعاتی‬
‫نظام مديريت بانک اطالعاتی‬
‫کاربر ‪1‬‬
‫کاربر ‪2‬‬
‫بانک اطالعات‬
‫برنامه ساز بانک‬
‫‪DBP‬اطالعاتی‬
‫‪n‬کاربر‬
‫‪Data Base Management System - DBMS‬‬
‫‪15‬‬
‫نظام بانک اطالعات‬
‫ی سيستم بانك اطالعاتی ‪: ANSI /Sparc‬‬
‫معما ‌ر ‌‬
‫بعد از سال‌ها بحث پيرامون اينكه ساختار بانك اطالعات چيست‪،‬‬
‫سرانجام كميته ‪ ANSI/SPARS‬معماري ‪ 3‬اليه را ارائه داد كه بعدها‬
‫يك اليه به آن افزودند و ما معماري ‪ 4‬اليه را بررس ي مي‌كنيم‪ .‬اين معماري‬
‫يك مدل نظري از بانك اطالعاتي است و به همين جهت قابل تطبيق رو‌ي‬
‫انواع مدل‌هاي بانك اطالعاتي است‪0‬‬
‫‪16‬‬
‫معما ‌ری‌ سيستم بانك اطالعاتی ‪: ANSI /Sparc‬‬
‫ديد خارجی ‪n‬‬
‫‪External View‬‬
‫‪000000‬‬
‫ديد خارجی ‪2‬‬
‫‪External View‬‬
‫ديد خارجی ‪1‬‬
‫‪External View‬‬
‫ديد ادراکی عام‬
‫ديد ادراکی‬
‫‪Conceptual View‬‬
‫ديد داخلی‬
‫‪Internal View‬‬
‫‪17‬‬
‫ديد ادراکی خاص‬
‫‪ -1‬ديد خارجي يا ‪External View‬‬
‫ديد خارجي‪ ،‬ديد خاص هر گروه ازكار ‌بران است به داده‌های ذخیره شده در بانك‬
‫اطالعاتي‪0‬‬
‫يعني اينكه هر كاربر چه قسمتهايي از بانك اطالعات را اجازه دارد ببيند و چه كارهايي روي‬
‫آن قسمتها مي‌تواند انجام دهد‪(.‬امنيت)‬
‫اصل اول بانك اطالعات اين اصل مي‌گويد به هر كس همان مقدار اطالعات بده كه الزم دارد نه بيشتر‬
‫هر گروه ‌ازكار ‌بران ديد خاص خود را دا ‌رند ‌و همچنین چند كاربر می‌توانند دارای ديد‬
‫‌ترين سطح به كاربران نهايي است‪.‬‬
‫يكسانی باشند‪ .‬ديد خارجی نزديك ‌‬
‫‪18‬‬
‫‪ – 2‬ديد ادراكي عام ‪Public Conceptual View‬‬
‫اين اليه‪ ،‬ديد منطقي يكپارچه از كل بانك اطالعاتي است‪0‬‬
‫اليه دوم اليه تصوير ادراكي عام است‪ .‬تصوير ادراكي عام يعني طراحي بانك‬
‫اطالعات بدون وابستگي به مدل خاص و پياده سازي فیزيك خاص‪ .‬اين اليه را‬
‫كاربر نهايي نمي‌بيند‪(.‬بسيار مهم)‬
‫طراحي اين اليه به عهده مدير بانك مي‌باشد‪0‬‬
‫فقط مدير بانك است كه اين اليه براي او قابل استفاده است‬
‫‪19‬‬
‫‪ – 3‬ديد ادراكي خاص ‪Spec. Conceptual View‬‬
‫اين اليه‪ ،‬تصوير ادراكي خاص يا همان مدل منطقي است‪ .‬يعني اينكه داده‌ها به‬
‫صورت منطقي چگونه كنار هم قرار مي‌گیرند‪ .‬مدل‌هاي مرسوم جدول‪ ،‬درخت‪،‬‬
‫گراف و مانند اين‌هاست‪.‬‬
‫در سطح ادراكی ارتباط موجوديتها و صفات خاصه‪ ،‬امنيت و جامعيت داده‌ها‬
‫مطرح می‌گردد‪.‬‬
‫طراحي اين اليه به عهده مدير بانك ميباشد‪0‬‬
‫فقط مدير بانك و برنامه نويس هستند كه اين اليه براي آنها قابل استفاده‬
‫است‪.‬‬
‫‪20‬‬
‫‪ – 4‬ديد داخلي ‪Internal View‬‬
‫در اين سطح يا ديد در واقع فايلهای محيط فی ‌زيكی از نظر محتوا‪ ،‬ساختار ‌و‬
‫تعريف می‌ش ‌وند‪.‬‬
‫اتژی‌ دستيابی‪‌ ،‬‬
‫استر ‌‬
‫اتژی‌‬
‫در شمای داخلی‪ ،‬انواع ركوردها‪ ،‬فايلها‪ ،‬صفات خاصه شاخص (استر ‌‬
‫تشريح ركوردهای ذخیره شده در فايل‪ ،‬توالی ركوردها‪،‬‬
‫دستيابی)‪ ،‬نحوه نمايش و ‌‬
‫تخصيص فضای ذخیره‌سا ‌زی‌ برای داده‌ها‪ ،‬محل ركورد‪ ‌،‬فشردگی داده‌ای و‬
‫تشريح می‌شوند‪ .‬در يک سيستم بانک اطالعاتی‪ ،‬کاربران‬
‫ی داده‌ها ‌‬
‫تكنيكهای رمزگذا ‌ر ‌‬
‫كترين سطح به رسانه‬
‫اساسا به مسائل اين سطح نمی پردازند‪ .‬سطح داخلی نزدي ‌‬
‫ذخیره‌سا ‌زی‌ فی ‌زيكی است‬
‫‪21‬‬
‫مدل‌هاي بانک اطالعات‬
‫‪ ‬مدل‌هاي قديمي‬
‫‪‬‬
‫‪‬‬
‫سلسله مراتبي‪ :‬پياده‌سازي با درخت‬
‫مدل شبکه‌اي‪ :‬پياده‌سازي با گراف‬
‫‪ ‬مدل سنتي (مدل رابطه‌اي)‬
‫‪ ‬مدل‌هاي جديد (معنايي‪ -‬فرا رابطه‌اي)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مدل ش يءگرا‬
‫مدل تابعي‬
‫مدل منطقي‬
‫مدل استنتاجي‬
‫مدل رابطه‌اي‬
‫‪ ‬در مدل رابطه‌اي داده‌ها بصورت رکوردهاي مرتبط سازماندهي مي‌شوند و بانک‬
‫اطالعات بصورت مجموعه‌اي از رابطه‌ها طراحي مي‌شود‪.‬‬
‫‪ ‬علل موفقيت مدل رابطه‌اي‪:‬‬
‫‪ ‬سادگي‬
‫ي‬
‫‪ ‬پشتوانه‌ي تئوريک قو ‌‬
‫امنيت و جامعيت‬
‫‪ ‬امنيت (‪:)security‬‬
‫محافظت از داده ها در برابر خطرات‪.‬‬
‫‪ ‬جامعيت (‪:)integrity‬‬
‫صحت داده‌ها و پردازش‌ها و پیروي از مقررات سيستم‪.‬‬
‫تراکنش (‪)transaction‬‬
‫‪ ‬هر گونه برنامه‌اي که توسط کاربر در محيط بانک اطالعات اجرا مي‌شود‬
‫تراکنش نام دارد‪.‬‬
‫‪ ‬تراکنش همواره به ‪ DBMS‬تسليم شده و ‪ DBMS‬در اعمال هرگونه‬
‫کنترل‪ ،‬به تعويق انداختن و يا ساقط کردن آن تصميم‌گیري مي‌کند‪.‬‬
‫‪‬‬
‫هدف اصلي از اين کنترل‌ها حفظ جامعيت و صحت بانک اطالعات است‪.‬‬
‫‪ ‬داده‌هاي بانک اطالعات را مانا (‪ )persistent‬مي‌نامند زيرا برنامه‌ها‬
‫مي‌آيند و مي‌روند اما داده‌ها مي‌مانند‬
‫خواص ‪ACID‬‬
‫‪ ‬چه کنترل‌هايي الزم است روي برنامه‌ها اعمال شود تا صحت و جامعيت بانک‬
‫اطالعات تضمین گردد؟‬
‫‪ .1‬يکپارچگي (‪)atomicity‬‬
‫‪ .2‬همخواني (‪)consistency‬‬
‫‪ .3‬انزوا (‪)isolation‬‬
‫‪ .4‬پايايي (‪)durability‬‬
‫يکپارچگي (‪)atomicity‬‬
‫‪ ‬به معني ”همه“ يا ”هيچ“‬
‫‪ ‬يا تمامي دستورالعمل‌هاي يک تراکنش بايد اجرا شود و يا هيچکدام از آنها‪.‬‬
‫‪ ‬مثال‪ :‬تراکنش ي براي انتقال مبلغي پول از حسابي به حساب ديگر‪.‬‬
‫اين تراکنش شامل دو بخش است‪.‬‬
‫‪ ‬بخش اول‪ ،‬پول را از حساب اول برداشت مي‌کند‪.‬‬
‫‪ ‬بخش دوم‪ ،‬همان پول را به حساب دوم واريز مي‌کند‪.‬‬
‫همخواني (‪)consistency‬‬
‫‪ ‬اين خاصيت مي‌گويد که تراکنش بايد تمامي قوانین جامعيت بانک اطالعات ‌را‬
‫رعايت کند‪( .‬فرض مي‌شود که تراکنش يک برنامه صحيح است‪).‬‬
‫‪ ‬مثال‪ :‬در برنامه انتقال پول اگر مبلغ برداشت شده با مبلغ واريز شده به حساب ديگر‬
‫برابر نباشد تراکنش غلط است‪( .‬چنین مواردي توسط نظام مديريت بانک اطالعات‬
‫به طور اتوماتيک قابل کنترل نيست)‬
‫انزوا (‪)isolation‬‬
‫‪ ‬اثر تراکنش‌هاي همروند روي يکديگر چنان است که گويا هر کدام در انزو‌ا‬
‫هستند‪( .‬همروندي تراکنش‌ها کنترل مي‌شود تا اثر مخرب روي هم نداشته‬
‫باشند‪).‬‬
‫‪ ‬اين عمل توسط بخش ي از ‪ DBMS‬به نام واحد کنترل همروندي‬
‫(‪ )concurrency control‬انجام مي‌شود‪.‬‬
‫پايايي (‪)durability‬‬
‫‪ ‬تراکنش‌هايي که به مرحله انجام (‪ )commit‬برسند‪ ،‬اثرشان ماندني است و‬
‫هرگز بطور تصادفي از بین نمي‌رود‪.‬‬
‫‪ ‬دو عمل يکپارچگي و پايايي توسط واحدي از ‪‌DBMS‬به نام واحد مديريت‬
‫بازگرد (‪ )recovery management‬انجام مي‌گیرد‪.‬‬
‫مراحل طراحي بانک اطالعات‬
‫‪ .1‬بررس ي و تجزيه و تحليل‬
‫‪ ‬امکان سنجي‪ ،‬شناخت نيازها و ‪...‬‬
‫‪ .2‬طراحي ادراکي عام‬
‫‪ ‬طراحي شماتيک مانند مدل ‪ER‬‬
‫‪ .3‬طراحي ادراکي خاص‬
‫‪ ‬انتخاب مدل‪ ،‬تبديل شماتيک به ساختار مدل و ‪...‬‬
‫‪ .4‬طراحي فیزيکي‬
‫جلسه آينده‬
‫‪ ‬تصوير ادراکي عام‬