Definition ?? ??????

Document Sample
Definition ?? ?????? Powered By Docstoc
					                                          ‫رئوس مطالب جلسات اول و دوم‬
‫‪(Storage and Retrieval‬‬   ‫1) سير تحول سيستمهاي ذخيره و بازي ابي اطالع ا‬
                                                                 ‫)‪Systems‬‬

                           ‫1-1) مقدمه : نياز هميشه انسان به اطالعات‬

                            ‫2-1) تعريف سيستم ذخيره و بازيابي اطالعات‬

                              ‫3-1) تعريف سيستم واسط ذخيره و بازيابي‬

      ‫4-1) عناصر تشکيل دهنده يک سيستم ذخيره و بازيابي اطالعات‬

                                            ‫)‪(Hardware‬‬       ‫سخت افزار‬        ‫-‬

                                              ‫نرم افزار )‪(Software‬‬            ‫-‬

                                                        ‫)‪(User‬‬       ‫كاربر‬    ‫-‬

                                                            ‫)‪(Data‬‬    ‫داده‬    ‫-‬

                                                   ‫5-1) تعريف داده و اطالع‬

                          ‫6-1) مروري بر نسلهاي تکنولوژي سيستم واسط‬
                                              ‫)‪(Database‬‬     ‫2) پايگاه داده ها‬

                                                                      ‫1-2) تعريف‬

                               ‫2-2) شرح کلمات مورد استفاده در تعريف‬

                                   ‫- داده هاي يکپارچه )‪(Integrated Data‬‬

                                                  ‫- افزونگي )‪(Redundancy‬‬

                                     ‫)‪(Data Structure‬‬      ‫- ساختار داده ها‬

                  ‫3-2) يک مثال مقدماتي براي درک تعريف پايگاه داده‬

                    ‫- تعريف ناسازگاري داده ها )‪(Data Inconsistency‬‬

          ‫تعريف بروز رساني منتشر شونده )‪(Propagating Updates‬‬                  ‫-‬

                    ‫)‪(Data Independence‬‬    ‫- تعريف استقالل داده اي‬
                                      ‫3) عناصر اصلي محيط پايگاه داده ها‬

                                               ‫سخت افزار )‪(Hardware‬‬          ‫1-3)‬

                                                ‫نرم افزار )‪(Software‬‬         ‫2-3)‬


‫1‬
                                                     ‫کاربر )‪(User‬‬    ‫3-3)‬

                                                      ‫داده )‪(Data‬‬    ‫4-3)‬


‫‪(Storage and Real-time‬‬   ‫1) سير تحول سيستمهاي ذخي ره و بازي ابي اطالع ا‬
                                                                ‫)‪Systems‬‬



                            ‫1-1) مقدمه : نياز هميشه انسان به اطالعات :‬




                     ‫شكل 1 – نياز هميشه انسان به اطالعات‬

                                       ‫سير تحول رسانه ذخيره سازي :‬
                        ‫لوحهاي سنگي، گلي ، چوبي، پوستي‬               ‫‪‬‬
‫كا غذ : سي ستمهاي د ستي براي ث بت ا سناد و مدارك “دف تر‬              ‫‪‬‬
‫داري” ، “داده داري” ، “ بايگاني” دفترهاي مختلفي ايجاد‬
                                                      ‫شد.‬
                               ‫نوارهاي مغناطيسي )‪(Tapes‬‬              ‫‪‬‬
                                            ‫ديسكها، ‪RAIDS‬‬            ‫‪‬‬
‫2-1) تعريف سيستم ذخيره و بازيابي اطالعات )‪: (Storage and Retrieval System‬‬

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

                              ‫سيستم ذخيره و بازيابي اطالعات :‬       ‫انواع‬

                                                ‫‪ ‬سيستم دستي )‪(Manual‬‬
                                       ‫‪ ‬سيستم اتوماتيزه )‪(Automatic‬‬
                                                           ‫سيستم دستي در‬

‫2‬
                                             ‫‪ ‬درج اطالعات )‪(Insert‬‬
                                        ‫‪ ‬تغيير اطالعات )‪(Update‬‬
                                    ‫‪ ‬بازيابي اطالعات )‪(Retrieval‬‬
                                                  ‫دچار مشكل است .‬
‫3-1) تعريف سيستم واسط ذخيره و بازيابي - سيستم ذخيره و بازيابي‬
                                          ‫اتوماتيك (كامپيوتري)‬

‫ب خش ا صلي ا ين سي ستم نرم ا فزاري ا ست . در ا ين ب حث ا ين ب خش‬
‫نرم ا فزاري سي ستم ، كه خود نوعي سي ستم ا ست را سي ستم وا سط‬
                            ‫ذخيره و بازيابي اطالعات مي گوييم .‬




               ‫شكل 2 : سيستم ذخيره و بازيابي اطالعات‬

‫م حيط فيزي كي ذخ يره سازي اطال عات : شامل داده هاي ذخ يره شده‬
                     ‫روي رسانه ها و خود رسانه ها مي باشد .‬




               ‫شكل 3 : سيستم ذخيره و بازيابي اطالعات‬

       ‫4-1) عناطر تشکيل دهنده يک سيستم ذخيره و بازيابي اطالعات :‬

                                          ‫)‪(Hardware‬‬    ‫- سخت افزار‬

                                            ‫- نرم افزار )‪(Software‬‬

                                                    ‫)‪(User‬‬      ‫- كاربر‬

                                                       ‫)‪(Data‬‬    ‫- داده‬

                                            ‫سخت افزار )‪: (Hardware‬‬
‫شامل : ملزو مات و امكا ناتي كه به ا صطالح ((ر سانه هاي ذخ يره‬
                 ‫سازي )) گفته مي شود و همچنين خود كامپيوتر.‬

                                            ‫نرم افزار )‪: (Software‬‬


‫3‬
  ‫ر‬       ‫ر‬      ‫ر‬
‫( تهي ره كنن ردگان ن ررم‬         ‫ن ررم اف رزار خ رود سيس رتم واس رط‬
                                  ‫ر‬       ‫ر‬       ‫ر‬      ‫ر‬      ‫ر‬
                                               ‫افزارهاي سيستمي )‬
‫( كاربران با مهارت هاي‬          ‫نرم ا فزار ت ماس با سي ستم وا سط‬
                                                  ‫برنامه سازي )‬
‫نرم ا فزار خدماتي : مجمو عه اي از وا حدهاي نرم ا فزاري كه‬
‫تماس انسان با سيستم را تسهيل و تسريع مي نمايند . از جمله‬
‫نرم افزارهايي كه شامل فرمهاي ورود و تغيير اطالعات و گزارشات‬
                                              ‫و …مي باشند .‬




                           ‫شکل 4 : ارتباط بين داده مسئله و اطالع‬



                                                   ‫:‬   ‫كاربر )‪(User‬‬
                     ‫خود انواعي دارد و طيفي از كاربران با‬
‫مهارت برنامه سازي تا كاربران فاقد مهارت برنامه سازي را در‬
                                              ‫بر مي گيرد.‬


                           ‫مروري بر نسلهاي تكنولوژي سيستم واسط‬

             ‫1451) : نسل بدون سيستم واسط‬     ‫نسل اول (1551 -‬

‫نسل دوم (6651 - 1551) : نسرل شريوه هراي دسرتيابي ‪(Access‬‬
                                                      ‫)‪Methods‬‬

‫‪(Data‬‬   ‫نسل سوم (3151 - 1651) : نسل سيستم مديريت داده هرا‬
                                               ‫)‪Management System‬‬
‫نسل چهارم (1151 - 4151) : نسل سيستم مديريت پايگاه داده ها‬
                                       ‫)‪(Database Management System‬‬

‫نسل پنجم (تاكنون - 1151) : نسل بانكهاي معرفت ‪(Knowledge‬‬
                                                               ‫)‪Bases‬‬



              ‫نسل اول (5711-1911) : نسل بدون نرم افزار واسط :‬
                             ‫رسانه ذخيره سازي معموال نوار بود .‬

‫4‬
                                      ‫نسل فايل هاي ترتيبي ساده .‬
                ‫ركوردها به ترتيب ورود روي رسانه درج مي شوند .‬
    ‫نرم افزار ابتدايي عمليات ورودي و خروجي را بر عهده دارد .‬
‫هرگونه تغيير در رسانه هاي ذخيره سازي يا ساختار فايل منطقي‬
‫( فيزي كي ) سبب تغي ير در برنا مه اي جاد كن نده و پرداز شگر‬
                                              ‫فايل مي شود .‬

          ‫دسته اي )‪ (batch‬است .‬   ‫فايلها ، پرداز‬   ‫پرداز‬   ‫تنها رو‬
                   ‫نسخه هاي متعددي از يك فايل نگهداري مي شود .‬
‫نرم افزار تنها عمليات ورودي / خروجي را انجام مي دهد و نرم‬
         ‫افزار واسطي براي مديريت پرداز فايلها وجود ندارد.‬
‫كاربر ا ست . ( در‬      ‫بر ع هده‬   ‫طرا حي ساختار فيزي كي فايل ها‬
                                                  ‫برنامه كاربر )‬
         ‫داده ها براي كاربرد خاصي طراحي و سازماندهي مي شوند .‬
‫ا ستفاده از يك داده در چندين كاربرد نادر است ( اشتراك داده‬
                                         ‫ها مطرح نيست ) .‬
              ‫تكرار در ذخيره سازي داده ها در باالترين حد است .‬


    ‫نسل دوم : نسل شيوه هاي دستيابي (1111- 1711) )‪: (Access Methods‬‬

             ‫رسانه هاي با دستيابي مستقيم ‪ Disk‬ها بوجود آمدند .‬
           ‫نرم افزارهايي به نام شيوه هاي دستيابي ايجاد شدند .‬

                                       ‫تعريف شيوه دستيابي )‪: (AM‬‬
‫نرم ا فزاري ا ست كه به جن به هاي فيزي كي م حيط ذخ يره سازي و‬
‫عمليات در اين محيط مي پردازد ، بره نحروي كره ديگرر برنامره‬
          ‫كاربر نيازي به پرداختن به اين جنبه ها را ندارد .‬
‫برنا مه هاي كاربردي در ق بال تغي يرات در سخت ا فزار ذخ يره‬
   ‫سازي و طرح نشست فيزيكي فايلها روي رسانه مصونيت يافتند .‬
‫مف هوم فا يل منط قي ( د يد كاربر از ركورد هاي ذخ يره شده ) از‬
‫مف هوم فا يل فيزي كي ( آنگو نه كه ر كورده روي ر سانه ذخ يره مي‬
                                          ‫شوند ) متمايز شد .‬
‫ام كان د ستيابي ترتي بي و م ستقيم به ركورد ها ( نه في لدها )‬
                                                ‫بوجود آمد .‬


‫5‬
‫)‪(Real-time‬‬    ‫پرداز در محيطهاي بر خط )‪ (Online‬و محيطهراي بالدرنر‬
                                                       ‫بوجود آمد .‬
                 ‫برنامه كاربردي هنوز از محيط فيزيكي مستقل نيست .‬
              ‫روشهاي تامين ايمني و حفاظت دهده ها ابتدايي هستند .‬
‫داده ها همچ نان براي كاربرد هاي خاص طرا حي مي شوند (ا شتراك‬
                                      ‫داده ها وجود ندارد) .‬
          ‫تكرار ذخيره سازي هنوز در حد نسبتا بااليي وجود دارد .‬
                     ‫نرم افزاري براي مديريت داده ها وجود ندارد .‬

                                                     ‫مثالهايي از )‪: (AM‬‬

                                         ‫‪VSAM : Virtual Storage Access Method‬‬
                                      ‫‪ISAM : Indexed Sequential Access Method‬‬

                           ‫.‪SQL : www.pervasive.com Btrieve and now Pervasive‬‬


‫‪(Data‬‬   ‫نس ل س وم : نس ل سيس تم م ديريت داده ه ا (3511-5111)‬
                                       ‫)‪: Management System) (DMS‬‬
‫نرم ا فزاري ن سبتا پيچ يده ب نام سي ستم مديريت داده ها ، وا سط‬
       ‫است بين برنامه هاي كاربران و محيط فيزيكي ذخيره سازي.‬
‫فايل هاي منط قي مت عددي مي توان ند از داده هاي فيزي كي م شترك‬
                                         ‫بهره برداري كنند .‬
                           ‫ميزان تكرار ذخيره سازي كاهش مي يابد .‬
                ‫داده هاي مشترك در كاربردهاي متنوع بكار مي روند .‬
                  ‫فيلدامكان پذير است .‬      ‫نشاني دهي داده ها در سطح‬


‫نسل چهارم : نسل سيستم م ديريت پايگ اه داده ه ا (1111-9511)‬
                              ‫)‪: (Databse Management System) (DBMS‬‬
                ‫نسل جهش در تكنولوژي ذخيره و بازيابي اطالعات بود .‬
‫م ستقل شدن برنا مه هاي كاربردي از جن به ها و خصو صيات م حيط‬
‫فيزي كي ذخ يره سازي كه آن را ا صطالحا ا ستقالل داده فيزي كي‬
                             ‫)‪ (Physical Data Independence‬مي نامند .‬



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

‫ايمني داده هرا و دسرترس پرذيري داده هرا )‪(Security and Availability‬‬
                                                        ‫مطرح شدند .‬

        ‫نسل پنجم نسل بانكهاي معرفت و شي گرا (تاكنون-1111) :‬

                                                      ‫‪Knowledge bases‬‬
                                             ‫‪Object oriented databases‬‬
                                              ‫‪Object relational database‬‬

                                                       ‫داده )‪: (Data‬‬

‫تعريف ‪ : ANSI‬عبرارت اسرت از نمرايش واقعيرات ، پديرده هرا ،‬
‫م فاهيم ، معلو مات و شناختها به گو نه اي صوري و منا سب براي‬
‫بر قراري ارت باط ، تف سير يا پرداز تو سط ان سان يا امكا نات‬
                                                  ‫خودكار .‬

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


                                     ‫2- پايگاه داده ها )‪: (Database‬‬

‫تعر يف : پاي گاه داده ها مجمو عه اي ا ست از داده هاي ذخ يره‬
‫شده ، بطور يكپارچه )‪ ، (integrated‬حتري االمكران بردون افزونگري‬
‫)‪( (Redundancy‬با افزونگي كنترل شده) ، مبتنري برر يرك سراختار‬
‫داده اي )‪ (DS‬مشخص ، تعريف شده بطور صوري )‪ ، (Formal‬تحت مديريت‬
‫متمركز )‪ (Centralized Management‬مورد استفاده يك يا چند كراربر ،‬
                                       ‫بطور اشتراكي و همزمان.‬

‫منرور از )‪( (Integrated Data‬داده هاي يكپارچه ) : يعني يك اتحادي‬
‫از فايل هاي داده اي كه در غ ير ا ين صورت فايل هاي داده اي‬

‫7‬
‫م جزا و مت مايز بود ند ، بطوري كه هر گو نه افزون گي م يان آن‬
                     ‫فايلها تماما يا تا حدودي حذف شده است .‬
                         ‫مثال مقدماتي (صرفا درک بهتر تعريف) :‬
                       ‫محيط عملياتي دانشگاه: زير محيطها شامل:‬
               ‫هر زير محيط مجموعه نيازهاي اطالعاتي خاص دارد.‬
‫مثال: اطالعات پرسنلي، اطالعات حقوق و دستمزد کارمندان، اطالعات‬
‫امور دانشجويان، اطالعات خوابگاه ها، اطالعات تيمها و سالن هه‬
                                      ‫و رشته هاي ورزشي، ...‬




‫مجموعه نيازهاي اطالعاتي ‪ ‬مجموعره ‪ : Application Programs‬سيسرتم‬
   ‫حقوق و دستمزد، سيستم پرسنلي، سيستم اطالعات دانشجويي، ...‬
‫دو م شي ک لي براي اي جاد سي ستم اتو ماتيزه ا ين م حيط عمل ياتي‬
                                                   ‫وجود دارد:‬

        ‫‪ ‬مشی فايلين (کالسيک)(غيربانکی) (‪)Non database policy‬‬
                                    ‫‪ ‬مشی بانکی (‪)Data base policy‬‬
                                                     ‫مشي فايلينگ :‬

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




‫8‬
                   ‫در بهترين حالت از ‪ DMS‬استفاده‬
                              ‫می شود‬




                                     ‫معايب اين سيستم مثالي:)‪(Filing‬‬
  ‫شر‬  ‫رودن) داده راي ذخير‬
‫رره رده‬      ‫هر‬              ‫رع رودن (يکپارچر‬
                        ‫ره نبر‬            ‫را مجتمر بر‬‫نر‬
                                     ‫(سيستمهاي پراکنده)‬

       ‫درجه قابل مالحره اي از افزونگي )‪ (Redundancy‬در ذخيره سازي‬

                       ‫ر‬               ‫ر‬        ‫ر‬         ‫ر‬     ‫ر‬
‫خط ررر ب ررروز پدي ررده ناس ررازگاري داده ه ررا )‪(Data inconsistency‬‬
                                                       ‫(ناهمخواني)‬
    ‫عدم امکان اعمال استانداردها (بدليل وجود سيستمهاي پراکنده)‬
‫خ طر نا اي من شدن داده ها: عدم و جود سي ستم ايم ني کارا در‬
                                             ‫محيط عملياتي‬
‫ح جم باالي برنا مه سازي: ت عداد بي شتر برنا مه ها و باال بودن‬
                                               ‫حجم برنامه ها‬
‫به م حيط فيزي کي ذخ يره سازي‬      ‫واب ستگي برنا مه هاي کاربردي‬
                                                       ‫اطالعات.‬
                                                     ‫استانداردها:‬



‫9‬
‫در مرا حل مخت لف تجز يه و تحل يل، طرا حي، پ ياده سازي، ت ست،‬
‫نگ هداري و ب هره برداري، ر فع ا شکاالت احت مالي، ا ستاندارد‬
                                          ‫واحدي وجود ندارد.‬
‫- کن ترل چ نين م حيط پراک نده اي ا گر نه نا مم کن بل که د شوار‬
                                                          ‫است.‬
‫ت مرين: روي چه محور هايي ا ستانداردها و ضع مي شود ؟ ( يا براي‬
                         ‫چه چيزهايي استاندارد وضع مي کنيم؟)‬
‫( مثال: مجمو عه ا ستانداردها در تول يد برنا مه ها يا در تول يد‬
                                          ‫مستندات)‪www.ansi.org‬‬
‫- واب ستگي برنا مه هاي کاربردي به م حيط فيزي کي ذخ يره سازي‬
‫اطال عات (م حيط فايلي ن ) : يع ني هرگو نه تغي يري در م حيط ذخ يره‬
             ‫سازي ايجاد شود منجر به تغيير در برنامه مي شود.‬
            ‫پديد مي آيد؟‬   ‫تمرين: چه تغييراتي در محيط فايلين‬
‫جواب : تغييرا تي که از سطح في لد تا ارت باط بين فايل ها مم کن‬
‫است پديد آيد از يکسو و تغييرات در رسانه ذخيره سازي از سوي‬
                                                        ‫ديگر.‬
                                                   ‫تغييرات در فيلد:‬

                                                  ‫‪ ‬نام فيلد‬
                                                  ‫‪ ‬طول فيلد‬
                                      ‫‪ ‬مکان فيلد در رکوردها‬
‫پس از برر سي مزا ياي م شي بانکي م شخص‬     ‫معا يب دي گر م شي فايلي ن‬
                                                        ‫خواهد شد.‬
                                             ‫:‬   ‫افزونگي )‪(Redundancy‬‬

‫از آنجا که داده ها ‪( integrated‬يکپارچه يا مجتمع) نيستند، هرر‬
‫‪ Application‬فايلهاي خاص خود را دارد که مي تواند منجر به ميزان‬
‫قا بل مالح ره اي افزون گي داده هاي ذخ يره شده گردد که ي کي از‬
                        ‫نتايج آن اتالف فضاي ذخيره سازي است.‬
                              ‫ناسازگاري داده ها )‪: (Data inconsistency‬‬

‫اگر اين واقعيت که دانشجويي مثال 1‪ S‬در گروه مهندسي شريمي درس‬
‫مي خواند، دو بار در فايلهاي مختلف ذخيره شده باشد( مثال براي‬
‫ز ير محيط هاي مخت لف) وق تي سي ستم مديريت پاي گاه داده هايي‬
‫و جود ندارد و از ا ين دو بار ذخ يره سازي مط لع ني ست، زمان هايي‬
‫مم کن ا ست پيش بيا يد که دو مجمو عه داده وارد شده با هم‬
‫سازگار ني ستند. به ع نوان م ثال وق تي که ف قط ي کي از آن ها به‬
‫روز در آمده باشد (‪ update‬شده باشرد)، در چنرين مرواقعي گفتره‬
          ‫ميشود که: مجموعه داده ها ناسازگار )‪ (inconsistence‬است.‬

‫01‬
‫اگر مجموعه داده فوق الذکر (در ارتباط با دانشرجوي 1‪ ) S‬فقرط‬
  ‫ر‬      ‫ر‬        ‫ر‬     ‫ر‬
‫يکب رار ذخي رره م ري ش رد (يعن ري افزونگ ري وج رود نداش رت) چن رين‬
                                  ‫ر‬       ‫ر‬    ‫ر‬     ‫ر‬       ‫ر‬
‫ناسازگاري امکان نداشت رخ دهد. همچنين اگر افزونگي فوق وجود‬
‫داشت ولي کنترل شده بود (افزونگي کنترل شرده) يعنري ‪ DBMS‬اي‬
‫وجود داشت و از اين افزونگي با خبرر برود ‪ DBMS‬مري توانسرت.‬
                 ‫تضمين کند که ‪ Database‬هيچگاه ناسازگار نباشد.‬
                                                      ‫به چه ترتيب ؟؟‬
‫با تضمين اينکه هر تغييري در هر يک از مجموعه داده مربوط به‬
                  ‫1‪ S‬بطور اتوماتيک به ديگري نيز اعمال شود.‬

‫(به روزرساني منتشر شرونده) نرام‬         ‫اين فرآيند ‪Propagating update‬‬
                                                                ‫دارد.‬
                                            ‫مشي بانکي )‪: (Database Policy‬‬
        ‫زبان سطح باال‬

‫برنامه هاي تعريف داده ها و کار‬
  ‫با داده ها در محدوده ايده آل‬




                                 ‫3 - عناصر اصلي محيط پايگاه داده ها:‬

                                              ‫- سخت افزار )‪(Hardware‬‬

                                               ‫- نرم افزار )‪(Software‬‬

                                                        ‫- کاربر )‪(User‬‬

‫11‬
                                                      ‫- داده )‪(Data‬‬


                                                         ‫سخت افزار:‬

                                                   ‫تشکيل شده از :‬
                          ‫‪ ‬سخت افزار ذخيره سازي داده ها:‬
           ‫‪ ‬حافره جانبی: ديسکهاي سريع با ظرفيت باال‬
       ‫‪ ‬نوار )‪ (Tape‬رسانه پشتيبان است نه رسانه اصلي‬
                        ‫‪ ‬سخت افزار پردازشگر: ‪ ، CPU‬ماشين‬
‫‪ ‬سخت افرزار ارتبراطي )‪ : (Communication‬برويهه در محيطهراي‬
                                          ‫‪Distributed Database‬‬
                                          ‫موارد استفاده از نوار‬

‫‪Data Backup , System‬‬   ‫در توليد نسخه هاي ‪ Backup‬اسرتفاده ميشرود:‬
                                                            ‫‪Backup‬‬

   ‫رت وقر‬
‫رايع‬          ‫راد )‪ : (Log files) (Transaction Log Files‬فايلهر‬
        ‫راي ثبر‬                                              ‫در ايجر‬
                                                            ‫تراکنشها‬

‫‪ : Log Files‬فايلي که حاوي اطالعاتي در مورد عملياتي که کراربران‬
‫انجام داده اند و اتفاقاتي کره در سيسرتم افتراده ، مخصوصرا‬
‫اين که چه کاربري در چه ز ماني و روي چه داده اي چه عم لي‬
                                            ‫انجام داده است.‬
                                 ‫اين دو امکان در نوار به منرور :‬

                ‫‪ ‬تامين امنيت پايگاه داده )‪(Database Security‬‬
‫‪ ‬ترميم داده ها )‪ : (Data Recovery‬هنگام خرابي سخت افزاري يا‬
                ‫نرم افزاري، خرابي محيطي، انساني و ...‬
‫* ترميم پاي گاه نهاي تا من جر به بازگردا ندن پاي گاه به حا لت‬
                               ‫صحيح خود پيش از خرابي ميشود.‬

‫‪( Transaction‬تراکنش) : عملي است که کاربر (طبعرا از طريري يرک‬
‫برنا مه) روي بخ شي از داده هاي يک پاي گاه داده ان جام مي د هد‬
‫و اجراي درست آن، ‪ Database‬را از يک حالت صحيح به حالرت صرحيح‬
‫ديگر مي برد. (برنامه ممکن است يک يا چنردين ‪ Statement‬داشرته‬
                                                      ‫باشد).‬
‫نک ته م هم : يک تراکنش يا با يد به ت مامي ان جام شود يا ا صال‬
                                                 ‫انجام نشود.‬
                                                              ‫مثال:‬


‫21‬
                                                                ‫تحقيي:‬

     ‫- تحقيي در مورد امنيت پايگاه داده و ترميم پايگاه داده‬

                                  ‫)‪(Database Security, Database Recovery‬‬

                              ‫- تحقيي درباره ‪Database Machines‬‬
                                      ‫2- نرم افزار (بحث مقدماتي):‬

                               ‫- نرم افزار محيط پايگاه داده :‬

                                      ‫- نرم افزار مديريتي: ‪DBMS‬‬
‫- نرم ا فزار کاربردي: مجمو عه برنا مه هايي ا ست براي اي جاد و‬
                                        ‫کار با پايگاه (‪ AP‬ها)‬




          ‫‪ DBMS‬نرم افزاري است که به کاربران امکان مي دهد تا:‬

                  ‫- پايگاه از ديد خود را تعريف کنند )‪(Definition‬‬

                        ‫- با پايگاه خود کار کنند. )‪(Manipulation‬‬

                   ‫- پايگاه خود را تا حدي کنترل کنند. )‪(Control‬‬

‫- مثال: يرک کراربر ‪ Access‬يرک کراربر ديگرر را ‪ Grant‬بکنرد يرا‬
               ‫نکند.(يا بعبارتي خصوصي کردن يا نکردن اطالعات)‬

                        ‫‪Grant user1 DBA‬‬                         ‫مثال :‬

                                    ‫‪( Manipulation‬کار با داده ها)‬

                                                 ‫- بازيابي )‪(Retrieve‬‬

‫31‬
                                         ‫درج ‪Insert‬‬   ‫-‬    ‫- عمليات ذخيره :‬

                                                      ‫حذف ‪Delete‬‬        ‫-‬

                                          ‫تغيير ‪(Modify) Update‬‬         ‫-‬
‫الز مه هر چ هار ع مل (الز مه کار با داده ها) د ستيابي به داده‬
                                ‫هاي ذخيره شده است. )‪(Access‬‬

‫هر ‪ DBMS‬از تعدادي ‪ Module‬يا واحد تشکيل شده است و هرر واحرد‬
                                  ‫وظيفه خاص خود را دارد.‬
                            ‫3- کاربر (استفاده کننده پايگاه داده) )‪: (User‬‬

                                           ‫کاربر از نظر اسلوب عملياتي :‬

                   ‫‪ ‬کاربر ‪ : Online‬در تماس مستقيم با سيستم‬

‫‪ ‬کاربر ‪ : Batch‬برنامه هايش معموال بطور دسته اي و با‬
                               ‫تاخير اجرا مي شود.‬

                                                  ‫کاربر از نظر نقش )‪: (Role‬‬
‫‪ ‬مديريتي: از طر يي برنا مه سازي اي جاد، پ ياده‬
‫سازي، نگهداري، بهره برداري، توسعه و رشد پايگاه‬
                             ‫را تحت کنترل دارد.‬
‫‪ ‬استفاده کننده: خدمات الزم را از پايگاه مي گيرد.‬
                                                 ‫تماس‬     ‫کاربر از نظر مهار‬
            ‫‪ ‬کاربر برنامه ساز (با مهارت برنامه سازي)‬
                               ‫‪ ‬کاربر غير برنامه ساز‬
                                                           ‫کاربر برنامه ساز‬
                                                        ‫در عمل سه سطح دارد:‬
‫‪ ‬برنا مه سازان طرا حي کن نده و اي جاد کن نده سي ستم‬
                             ‫پايگاه داده (تيم ‪)DBA‬‬

     ‫)‪(Application Developers‬‬   ‫‪ AP ‬نويسها )‪(Application programmers‬‬

‫‪ ‬خود ‪( dBA‬فردي با تخصص باال سرپرسرت تريم ‪ DBA‬کره دو‬
‫جنبه 1- فني 2- مديريتي در کرار خرود دارد. (اداره‬
                             ‫کننده پايگاه داده ها)‬
‫نکته ! : ‪ Database‬نهايتا براي جلب رضايت کاربران غير برنامه‬
‫ساز ا ست يا بع بارتي پاي گاه اسا سا براي خدمت ر ساني و ج لب‬
                             ‫رضايت اين دسته ازکاربران است.‬

‫41‬
                                             ‫کاربر غير برنامه ساز :‬

‫‪ ‬هدايت شرده از طريري ‪( map, menu, form‬احتمراال برر اسراس‬
    ‫ر‬     ‫ر‬        ‫ر‬          ‫ر‬                        ‫ر‬
‫اس رتفاده از ‪ Mouse‬و ‪ icon‬ه را) و در م رواردي ب را تع ردادي‬
                                              ‫فرامين ساده.‬
                                           ‫‪- Menu driven, Form driven ‬‬
                                                   ‫‪- Command based ‬‬

‫* براي کاربران غير برنامه ساز بايد سراده تررين ‪ interface‬برا‬
                       ‫ساده ترين دستورات و فرمانها ايجاد کرد.‬
     ‫4- داده (داده هاي ذخيرره شرده در پايگراه) (داده هراي عمليراتي‬
                                                     ‫‪)Operational data‬‬

‫داده هاي عمل ياتي با داده هاي ورودي و داده هاي خرو جي فرق‬
‫دارد. هر چند که ممکن است داده هاي ورودي به داده هاي ذخيره‬
‫شده ت بديل شود. و هر چ ند که داده هاي خر.و جي به نوعي از‬
                          ‫داده هاي عملياتي استخراج مي شود.‬
                                                    ‫داده هاي عملياتي‬
‫ع بارت ا ست از داده هايي که کاربران در يک م حيط عمل ياتي‬
‫روزا نه با آن سر و کار دار ند که به آن ها داد هاي پا يدار‬
  ‫)‪ (Persistent Data‬نيز مي گويند .هر چند که واقعا پايدار نيستند.‬
                               ‫داده هاي عملياتي درباره چه هستند؟‬

‫درباره انواع موجوديتهاي عملياتيٍ ٍ ‪ Entity Types‬و ارتباطات بين‬
                                      ‫آنها ( ‪(Relationship‬مي باشد .‬

                                              ‫‪Entity Type‬‬   ‫نوع موجوديت‬

‫مفهوم کلي – شي – پديده – فرد و هر آنچره کره مري خرواهيم در‬
                                   ‫مورد اطالع داشته باشيم.‬
‫موجوديتها‬      ‫نکته ! : در هر محيط عملياتي مجموعه اي از انواع‬
                                                    ‫وجود دارد‬
             ‫که نيازهاي اطالعاتي کاربران محيط ناظر بر آنها است.‬
                                ‫قدمهاي طراحي پايگاه داده ها )‪(Database‬‬

                     ‫مطالعه و تجزيه و تحليل محيط عملياتي‬             ‫‪‬‬

                  ‫بازشناسي انواع موجوديتهاي محيط ) ‪( Entity Set‬‬      ‫‪‬‬

          ‫براي هر نوع موجوديت تعيين صفات خاصه )‪(Attribute Set‬‬        ‫‪‬‬


‫51‬
     ‫از اين ديدگاه پايگاه داده ها يا ‪ Database‬عبارت است از :‬
‫داد هاي ذخ يره شده در مورد موجوديت ها وارتبا طات بين آن ها که‬
                                             ‫بايد در کادر يک‬

         ‫‪ Data Structure‬مشخص تعريف شوند و به سيستم داده مي شود.‬


                                                                 ‫مثال :‬
                                          ‫محيط عملياتي دانشکده :‬
     ‫- استاد‬                                          ‫دانشجو‬         ‫-‬
               ‫- برنامه‬                                   ‫کالس‬       ‫-‬
        ‫- کتاب‬                                      ‫- درس‬
‫دار ند به ن حوي‬     ‫* ا نواع موجوديت هاي م حيط با ي کديگر ارتبا طا‬
                       ‫که عملي يا کنشي روي يکديگر انجام مي دهند‬




‫ارت باط مع موال يک ع بارت فع لي ا ست (داراي ف عل ) که باي ستي به‬
                                    ‫نحوي در پايگاه ذخيره شود.‬
‫موجوديت ها و ارتبا طات م يان آن ها را با يک ن مودار ن مايش‬
                    ‫مي دهيم که به آن نمودار ‪ ER‬گفته مي شود.‬

                                             ‫‪Entity Relationship Diagram‬‬

                                                      ‫نمودار ‪: ER‬‬
‫پاي گاه دارد و ام کاني ا ست‬     ‫او لين بردا شتي ا ست که طراح از‬
                                   ‫براي مدلسازي معنايي داده ها‬

‫)‪ (Semantic Data Modeling‬و نهايتا به ما مي گويد که دادهاي ما در‬
                         ‫مورد چه هستند و چه ارتباطي دارند.‬

           ‫‪ DS‬مشخص نگاشته مي شود.‬      ‫همين نمودار ‪ER‬در کادر يک‬

‫ممکن است بين 2 نوع موجوديت بيش از يرک ارتبراط وجرود داشرته‬
‫با شد که ا گر در حي طه نياز هاي اطال عاتي ما با شد با يد آن ها را‬
        ‫بازشناسي نمود ( هر ارتباط با معنا و ‪ Semantic‬خود ).‬

‫61‬
                                                                ‫مثال :‬

     ‫• 0‪(Query Q0): Q‬مشخصات دانشجويي )‪ St(i‬را بدهيد.‬

     ‫1‪ :Q‬دانشجوي ‪X‬چه دروسي را انتخاب کرده است؟‬         ‫•‬

        ‫• 2‪ : Q‬دانشجوي )‪St (i‬چه دروسي را حذف مي کند؟‬

‫توجه : ‪ DB‬قبلي به اين ‪ Query‬پاسخ نميدهد چون ارتبراط حرذف‬
                         ‫کردن را درسيستم معرفي نکرده بوديم‬




                             ‫قدم سوم در طراحي پايگاه داده ها:‬

‫‪Semantic‬‬   ‫3- بازشناسي ارتباطات بين انواع موجوديتهرا وتشرخيص‬
                                ‫هر يک از آنها و رسم نمودار ‪ER‬‬

                           ‫(طبيعت – ‪)Nature – Degree‬‬       ‫درجه ارتباط‬
‫هر ارت باط داراي طبي عت ا ست که ا ين طبي عت ه مان چ گونگي ت ناظر‬
‫بين 2مجموعه نمونه هاي آن موجوديتها اسرت و ايرن درجره ممکرن‬
‫است.1:1 باشد يا ‪ 1:n‬يکسويه يا ‪ 1:n‬دو سويه (که به آن ‪ n:m‬نيز‬
                                               ‫مي گويند ) باشد.‬




‫ا ين ا مر با يد تو سط طراح سي ستم شنا سايي شود چرا که در کم يت‬
                                       ‫سيستم تاثير مي گذارد‬


‫مثال : يک درس مي تواند توسط چند دانشجو حذف شود ولي دانشجو‬
‫ف قط يک درس را مي توا ند حذف ک ند يا راب طه پدري و فرز ندي و‬
                                                        ‫...‬



‫71‬
     ‫نکته : ماهيت يا درجه ارتبراط برين موجوديتهرا : از قواعرد‬
                     ‫‪Semantic‬ناظر بر محيط عملياتي بدست مي آيد.‬
‫ارت باط مم کن ا ست بين يک نوع موجود يت و خود با شد و يا به‬
‫عبارت ديگر موجوديتهاي دو طرف ارتباط لزوما از نررر ‪ Type‬يرا‬
                                        ‫نوع متفاوت نيستند.‬


                 ‫م ثال :ارت باط يک درس با درس دي گراز ن رر پيش‬
                                                  ‫نياز بودن ؟‬




                                  ‫3‪ :Q‬پيشنيازهاي درس3‪C‬کدامند؟‬
‫ا گر ا ين ارت باط در م حيط تو سط طراح شناخته شده و در سي ستم‬
‫ذخيره شده باشد سيستم مي تواند به اين ‪Query‬پاسخ دهد و الغير.‬




‫81‬
                                                   ‫مثال كامل از كتاب ‪DATE‬‬
       ‫محيط عملياتي : محيطي است كه در آن انواع موجوديتهاي زير را‬
                                                         ‫داريم :‬

       ‫‪Part‬‬           ‫قطعه‬                       ‫‪Supplier‬‬           ‫تهيه كننده‬


                         ‫‪City‬‬             ‫شهر‬          ‫‪Project‬‬           ‫پروژه‬

                          ‫‪Employee‬‬      ‫كارمند‬          ‫‪Warehouse‬‬        ‫انبار‬

           ‫ارتباطات بر اساس‬
            ‫نيازهاي اطالعاتي‬
         ‫بازشناسي مي شوند و‬
         ‫نيازهاي اطالعاتي بر‬
       ‫اساس ‪ Query‬ها مشخص مي‬
                      ‫شوند .‬




‫ساکن‬

‫است‬




       ‫‪ : SPJ‬يك ارتباط سه موجوديتي اسرت برا ايرن ‪ Semantic‬كره تهيره‬
       ‫كننده 1‪ S‬قطعه 1‪ P‬را براي استفاده در پروژه 1‪ J‬تهيه کرده است‬
       ‫و چنين اطالعاتي که حاصل ارتباط سه موجوديتي است لزوما هميشه‬
                                      ‫از اين سه اطالع حاصل نمي شود.‬
                                                                    ‫فرض كنيد :‬

                                      ‫1‪ S1 : I‬قطعه 1‪ P‬را تهيه كرده است .‬

                                        ‫2‪ P1 : I‬در پروژه 1‪ J‬استفاده شود .‬

                                     ‫3‪ S1 : I‬براي 1‪ J‬قطعه تهيه كرده است .‬

       ‫اگر چنين استدالل شود مي گوييم طراح در دام پيونردي ‪(Connection‬‬
                                                  ‫)‪ Trap‬افتاده است .‬
       ‫سه‬     ‫دام پيو ندي : ا ستنتاج يك ا طالع ناظر به ارت باط م يان‬
                            ‫موجوديت از روي اطالع در مورد دوبدوي آنها .‬

       ‫91‬
‫ت مرين : يك م حيط عمل ياتي (ترجي حا يك م حيط واق عي انت خاب‬
‫نموده ) حداقل 6 نوع موجوديت در آن شناسايي نماييرد . مراحرل‬
‫اوليه طراحي را تا مرحله نممرودار ‪ ER‬انحرام دهيرد و مجموعره‬
                                  ‫‪ Query‬ها را ليست نماييد .‬
                                     ‫معماري سيستم پايگاه داده :‬

‫در اوا يل تکنو لوژي پاي گاه داده ها مع ماري ا ستانداردي و جود‬
               ‫راري اسر‬
‫رتاندارد ‪ ANSI‬را‬                   ‫رت .‪ ANSI‬در اواير سر‬
                       ‫رل رال 1151 معمر‬                 ‫نداشر‬
                                               ‫پيشنهاد کرد .‬

 ‫معماري ‪ ANSI‬را ‪ Support‬نمايد .‬   ‫نکته ! : هر ‪ DBMS‬واقعي بايد‬

 ‫اين اساسي ترين ضابطه در تشخيص نرم افزارهاست کره آيرا ‪DBMS‬‬
                    ‫واقعي است يا شبه ‪ DBMS‬است يا ‪ DMS‬است .‬

                            ‫اين اولين محک براي ‪ Package‬هاست .‬

            ‫به نکات اين چنيني‪ D-logy‬يعني شناخت ‪ DBMS‬گويند .‬




‫يک معماري سه سطحي يا چهار سطحي است که عناصر آن عبارتند از‬
                                                        ‫:‬

‫02‬
‫کررررررررررررررررررررررررررررررررررررررررررررررررررررراربر‬
                                                       ‫‪User‬‬
                                              ‫رران‬‫رران ميزبر‬  ‫زبر‬
                                                 ‫)‪Host language (HL‬‬
                            ‫رررررررررررررررررررران فرعر‬
‫رررررررررررررررررررري داده اي‬                              ‫زبر‬
                                         ‫)‪Data sublanguage (DSL‬‬
                           ‫خر‬
‫ررررررررررررررررررررررررد ررررررررررررررررررررررررارجي‬  ‫دير‬
                                               ‫‪External view‬‬
‫ديررررررررررررررررررررررررد ادارکرررررررررررررررررررررررري‬
                                               ‫‪Conceptual view‬‬
                        ‫ررررررررررررررررررررررررطح داخلر‬
‫رررررررررررررررررررررررري‬                                   ‫سر‬
                                                 ‫‪Internal level‬‬
                      ‫رررررررررررررررررررررراه فيزيکر‬
‫رررررررررررررررررررررري‬                                ‫پايگر‬
                                             ‫‪Physical Database‬‬
‫نگاشرررررررررت و تبرررررررررديالت برررررررررين سرررررررررطوح‬
                                                      ‫‪Mapping‬‬
                          ‫رررررررررررررررررررررررررم افر‬
‫ررررررررررررررررررررررررزار‬                            ‫نر‬
                                                     ‫‪DBMS‬‬
        ‫رررررررده پايگر‬
‫ررررررراه‬                               ‫ررررررريم تخصصر‬
                      ‫ررررررري اداره کننر‬              ‫تر‬
                                                      ‫‪DBA‬‬

‫‪Abstractive‬‬                  ‫سطح انتزاعي(محيطي مستقل از ‪)Filing‬‬

 ‫تحت مديريت ‪ DBA‬است و تمام سطوح تحت کنتررل ‪DBMS‬‬        ‫تمام سطوح‬
                                                           ‫است .‬
                                             ‫شرح عناصر معماري :‬

‫د يد ادرا کي : د يد طراح ا ست از کل داده هاي ذخ يره شدني در‬
‫محيط عملياتي. اين ديد جامع تمام نياز هاي کاربران محيط است‬
             ‫. اين ديد بايد در کادر يک ‪ DS‬مشخص طراحي شود .‬

‫اين ديد بايد به کمک احکامي از ‪ )Data sublanguage (DSL‬تعريف شرود‬
                                                              ‫.‬

‫شماي اداراکي : (‪ )conceptual scheme‬به تعريف ديرد ادراکري شرماي‬
                                            ‫ادراکي مي گويند .‬
‫شماي ادرا کي نوعي برنا مه ا ست که طراح مي نوي سد و تو سط‬
‫‪ Compiler‬سيستم ‪ Object‬مي شود (يعني ‪ Compile‬شده و تبديل به ‪Object‬‬

‫12‬
‫مي شود ). در کتابخا نه مخصو صي نو شته مي شود و نگ هداري مي‬
    ‫شود که گاه موسوم به کاتالوگ سيستم يا ‪ Data Dictionary‬است .‬




‫نکته ! : اين نمودار ‪ ER‬بايد در يک ‪ DS‬مشخص نگاشرته ‪ Map‬شرود‬
            ‫هر ‪ DBMS‬يک ‪ DS‬خاص را تامين يا ‪ Support‬مي نمايد.‬




‫رابطه اي باشد به آن ‪ DBMS‬رابطه اي گويند‬       ‫اگر ‪ DBMS‬اي ‪ DS‬ا‬
                                                             ‫.‬
       ‫به اين دو‬
‫سلسرله مراتبري باشرد بره آن ‪ DBMS‬سلسرله‬
       ‫‪Prerelational‬‬                         ‫اگر ‪ DBMS‬اي ‪ DS‬ا‬
                                               ‫مراتبي گويند .‬
   ‫گويند.يعني نسل‬
 ‫اگر ‪ DBMS‬اي ‪ DS‬ا شبکه اي باشد به آن ‪ DBMS‬قديمي تري نسبت .‬
    ‫شبکه اي گويند‬
‫به ‪ Relational‬هستند‬
   ‫بعد از سيستمهاي رابطه اي سيستمهاي ‪ Post relational‬به وجود آمد‬
                  ‫.‬



                   ‫معرفي مقدماتي ‪ DS‬رابطه اي براي ادامه مثال‬




                         ‫رابطه (‪ : )relation‬يک مفهوم رياضي است‬
‫22‬
‫از د يد کاربر راب طه نماي شي جدولي دارد ( يک جور جدول ا ست) هر‬
               ‫جدول دو خصوصيت مهم دارد : يکي ستون و يکي سطر‬

‫براي مدل کردن سطح ادراکي پايگراه داده توسرط ‪ DS‬رابطره اي :‬
‫براي هر نوع موجود يت يک جدول ته يه مي ک نيم که هر ستونش‬
              ‫بيانگر يک ‪( Attribute‬صفت خاصه) آن موجوديت است .‬

                                               ‫اگر اين جدول را به گونه اي‬
                                              ‫براي کامپيوتر تعريف کنيم ،‬
                                              ‫فقط نوع موجوديت )‪ (Entity Type‬را‬
                                             ‫معرفي کرده ايم که هر سطر يک‬
                                              ‫نمونه از موجوديت خواهد بود.‬

                                                               ‫‪Entity Occurrence‬‬

                                                                 ‫‪Entity instance‬‬




‫براي ‪ Modeling‬ارتباط ‪ 1:n‬دو سويه بين اين دو موجوديرت جردولي‬
                                       ‫ديگر طراحي مي کنيم .‬




                                   ‫حال شماي ادراکي را طراحي مي کنيم‬

      ‫)‪(natural language‬‬   ‫نمونه ساده شده شماي ادراکي به زبان طبيعي‬
                                                         ‫اسم جدول ‪ S‬است‬

                                                          ‫ستونها شامل:‬

                                                           ‫#‪ S‬کاراکتر 6‬

                                                     ‫‪ Sname‬کاراکتر 12‬

                                                        ‫‪ Status‬عدد صحيح‬
           ‫اسم جدول ‪ SP‬است‬                             ‫‪ City‬کاراکتر 21‬
‫32‬           ‫ستونها شامل :‬

 ‫#‪ S‬همان #‪ S‬که در ‪ S‬است‬

     ‫#‪ P‬همان #‪ P‬که در‪ P‬است‬
                                      ‫شناسه هر سطر #‪ S‬است (‪)identifier‬‬
                                                         ‫اسم جدول ‪ P‬است‬

                                                          ‫ستونها شامل:‬

                                                           ‫#‪ P‬کاراکتر 1‬

                                                       ‫‪ Pname‬کاراکتر 41‬

                                                        ‫‪ Color‬کاراکتر 11‬

                                                            ‫‪ Weight‬عددي‬

                                                        ‫‪ City‬کاراکتر 21‬

                     ‫‪SQL : Structured Query Language‬‬

     ‫‪ DSL : SQL‬استاندارد سيستمهاي رابطه اي است . (زبان تعريف و‬
                                              ‫کار با داده ها)‬




‫اين شماي ادراکي است در ‪ DBMS‬رابطه اي به نحوي که ‪SQL ، DBMS‬‬
                                       ‫را ‪ Support‬مي نمايد .‬




     ‫کاربران هرچه ببينند از همين ديد ادراکي و از همين ‪ Table‬ها‬
     ‫خواهند ديد زيرا طراح اين سطح را به طور جامع طراحي مي کند‬
                    ‫و يک سطح بين کاربران و سطوح پائين تر است .‬

‫42‬
                                         ‫ديد خارجي ‪: External view‬‬

‫1 – ديد کاربر خاص است نسبت به داده هاي ذخيره شده در پايگاه‬
                            ‫(در محدوده نيازهاي اطالعاتي ا )‬

                        ‫2 – هر کاربر ديد هاي خاص خود را دارد‬

      ‫3 – چند کاربر مي توانند در يک ديد مشترک باشند . همين‬
                          ‫اشتراک در ديد است که تامين کننده‬

         ‫‪( Data sharing‬اشتراک داده ها) در محيط انتزاعي مي باشد‬

               ‫(الزمه وجود محيط انتزاعي يک ‪ Data Structure‬است .)‬

 ‫4 – ديد هر کاربر تحت نر ٍِ ‪ dBA‬تعريف مي شود (‪ dBA‬سرپرست تيم‬
                                  ‫رِ‬
                                            ‫‪ DBA‬مي باشد ) ..‬

    ‫محيط انتزاعي : محيط منفک و مجزا از ‪ . filing‬ديد خارجي روي‬
 ‫ديد ادراکي تعريف مي شود . (يعني ديد ادراکي بايد ايجاد شده‬
    ‫و در ‪ Catalog‬باشد تا کاربر بتواند روي اين ديد ادراکي ديد‬
                              ‫خارجي مخصوص خود را ايجاد کند ).‬

‫چون ديد ادراکي روي يک ‪ DS‬مشخص ايجاد مي شود پس ديد خارجي هم‬
          ‫مثل ديد ادراکي در کادر يک ‪ DS‬مشخص تعريف مي شود .‬

 ‫5 – به تعريف ديد خارجي شماي خارجي گفته مي شود ‪External Schema‬‬
      ‫مي گويند . نوعي برنامه است که ‪ Compile‬مي شود و در ‪Catalog‬‬
     ‫سيستم يا در کتابخانه ديدهاي خارجي ذخيره مي شود تا موقع‬
                          ‫استفاده از پايگاه به کار گرفته شود .‬

     ‫ديدهاي زير مي تواند در سطح خارجي روي جداول ‪. S‬و ‪ P‬و ‪SP‬‬
                                           ‫تعريف شده باشد .‬




‫52‬
          ‫اين ديد مي گويد : نام من 1‪ U1S‬است روي ‪ S‬تعريف شده و‬
                                    ‫ستونهايش #‪ S‬و ‪ Sname‬است .‬

      ‫ستونهايش ‪ SN‬و ‪ STA‬از‬   ‫اين ديد مي گويد : نام من 2‪ U1S‬است‬
                                        ‫تهيه کنندگان ساکن 2‪. C‬‬

   ‫پس ‪ Database‬از ديد 1‪ User‬تنها دو جدول 1‪ u1s‬و 2‪ u1s‬است . اگر‬
‫1‪ user‬بخواهد کاري روي ‪ DB‬انجام دهد فقط مي تواند روي همين دو‬
                                  ‫تا جدول انجام دهد والغير .‬




              ‫شماره تهيه کننده و قطعاتي که در يک شهر هستند .‬




 ‫تا بحال ديد ها از نرر سطح خارجي بودند . حال مي خواهيم ديد‬
      ‫ها را از نرر سطح که داخلي هستند را بررسي کنيم و مثال‬
                                                    ‫بزنيم.‬

     ‫در ‪ Oracle‬به ازاي هر تعداد جدول که داشته باشيم يک فايل به‬
                                     ‫نام ‪ *.ora‬ساخته مي شود .‬




‫62‬
 ‫اينکه چند فايل بکار رفته و چه ‪ Pointer‬هايي استفاده شده باشد‬
     ‫و غيره بستگي به نوع ‪ Mapping‬از سطح ادراکي به سطح داخلي‬
                                                      ‫دارد .‬

      ‫خصوصيت سيستم ‪ : DBMS‬وحدت ذخيره سازي در کثرت (تعدد) ديد‬
                                                   ‫هاي خارجي.‬

                      ‫ترکيب يک ‪ OS‬با ‪ Hardware‬را ‪ Platform‬گويند .‬

                                         ‫تعريف 2‪ u1s‬در شبه ‪: SQL‬‬

                                           ‫)‪CREATE VIEW U1S2 (SN,STA‬‬

                                                     ‫)‪ON S(S#,STATUS‬‬
                                                                   ‫.‬

                                                                   ‫.‬

                                                                   ‫.‬
                                                 ‫’2‪WHERE S.CITY = ‘C‬‬

              ‫بعد از ‪ WHERE‬شرط يا شرايط مورد نرر را مي آوريم‬
     ‫وقتي سطح ادراکي شما جدولي است و مبتني بر سطها و ستونهايي‬
        ‫است ديدها نيز بخشي از جدواول يا بخشي از سطرها و ستونها‬
                                                       ‫هستند .‬
                                                      ‫سطح داخلي :‬

     ‫در واقع سطح ‪ file definition‬است درون خود سيستم توسط خود ‪DBMS‬‬
       ‫در اين سطح با پايگاه برخورد منطقي دارد . اما به مسائل‬
                                  ‫فيزيکي پايگاه نمي پردازد .‬

      ‫(مسائل فيزيکي پايگاه بر عهده ‪( Access Method‬شيوه دستيابي)‬
                                                           ‫است)‬
‫72‬
                                                   ‫‪ DBMS‬مي داند :‬

                                     ‫1-چه فايلهايي وجود دارد .‬

     ‫چگونه است ؟‬   ‫2-استراتهي دستيابي به هر فايل چيست و ساختار‬

                                     ‫ا3-اندازه فايل چقدر است .‬

                                 ‫4-کليد يا کليدها را مي شناسد.‬

                            ‫5-ترتيب منطقي رکوردها را مي داند .‬

‫6-نحوه نگاشت ساختارهاي ادراکري در فايلهرا را . (چره فرايلي‬
                                  ‫مربوط به چه جدولي است ).‬
                                                    ‫چند نکته ! :‬

‫‪ : D-logy‬هر چند به مسائل مربوط به سرطح داخلري پايگراه توسرط‬
‫‪ DBMS‬پرداخته مي شود اما ‪ DBA‬و تيمش اختياراتي در طراحي اين‬
‫سطح دارند . مثال مي تواند درخواست ايجاد شاخص نمايرد )‪. (Index‬‬
‫يا اينکه انواع کليد را معرفي کند اما ميرزان دخالرت ‪ DBA‬در‬
‫ايجاد سطح داخلي و نهايتا فيزيکي پايگاه در ‪ DBMS‬هاي مختلرف‬
‫فرق مي کند . در ‪ DBMS‬هاي قديمي تر اين دخالت بيشرتر اسرت .‬
‫ررا‬‫رر زير‬ ‫ردها کمتر‬‫را در جدير‬‫رت) امر‬‫رتر اسر‬‫(در ‪ Pre relational‬بيشر‬
                           ‫اتوماتيسم ‪ DBMS‬ضعيف تر بوده است .‬

‫‪ : D-logy‬معموال يک ‪ DBMS‬قوي بيش از يک ساختار ‪ File‬را اجازه مري‬
‫دهد و اين که چندين ‪ Access Method‬وجود خواهد داشرت . يرک ‪DBMS‬‬
‫کالسيک حداقل دو رو دستيابي را ارائره مري دهرد . امرا ‪DBMS‬‬
‫هايي هم هستند که شش و يا پنج رو دستيابي را ارائه مي دهند‬
                                                             ‫.‬
‫82‬
                                                          ‫فصل سوم‬

                 ‫مفاهيم مبنايي ‪ DM‬رابطه اي ( ‪ Data Model‬رابطه اي)‬

                                                 ‫- تعريف رابطه‬
                                               ‫- خصوصيات رابطه‬
                                        ‫- مفهوم ميدان (دامنه)‬

                                       ‫- کليد در ‪ DM‬رابطه اي‬

                                           ‫در‬
                               ‫- قواعد جامعيت ِ ‪ DM‬رابطه اي‬
                               ‫- مشخصات کلي يک سيستم رابطه اي‬
                                         ‫- عمليات در رابطه ها‬
                                                    ‫تعريف رابطه :‬

                                                  ‫تعريف مقدماتي :‬

‫فرض مي کنيم کره : ‪ n ، D1, D2 , …, Dn‬ميردان از مقرادير باشرند‬
‫>‪<di1,di2,….,din‬‬ ‫.رابطه مجموعه ايست که هر عنصرر آن بره صرورت‬
                                                           ‫است‬

‫‪N-Tuple‬‬         ‫( ‪ n‬تايي )‬

 ‫‪i =1,2,3,…,m‬‬

‫به نحوي که 1‪di1 € D‬‬

‫‪dij € Dj‬‬




     ‫تعريف کامل تر) از ‪ : (DATE‬با فرض داشتن ‪ n‬ميدان ‪D1,D2,….,Dn‬‬
                             ‫رابطه از دو مجموعه تشکيل شده است :‬
‫92‬
                      ‫: ‪ Heading‬يا سررابطه‬      ‫‪ ‬مجموعه عنوان‬
                  ‫: ‪ Body‬يا پيکر رابطه‬           ‫‪ ‬مجموعه بدنه‬

                    ‫مجموعه اسامي صفات خاصه )‪ (Attribute names‬است .‬

 ‫بنحوي که اين صفات خاصه از ميدانهايي که صفات خاصه روي آنها‬
                              ‫تعريف مي شود ، مقدار مي گيرد.‬

     ‫هر رابطه داراي يک نام است و با داشتن نام و مجموعه عنوان‬
                                 ‫رابطه جوهر رابطه معلوم است.‬




      ‫منطقا بايد ميدانهاي زيرين نيز به نحوي به سيستم معرفي شوند.‬

                                               ‫مجموعه بدنه )‪: ( Body‬‬

                                                      ‫}>‪{<ai1 ,ai2 ,…. , ain‬‬

                                       ‫مقادير صفت خاصه )1‪ai1 € D1 (A‬‬

                                       ‫مقادير صفت خاصه ) ‪aij € Dj (Aj‬‬

                                                  ‫به مجموعه ‪: Body‬‬

‫بسط يا گستره رابطه : ) ‪ Extension‬رابطه( گفته مي شود و تعرداد ‪Tuple‬‬
                                ‫هاي رابطه را ‪ Cardinality‬مي گويند .‬
     ‫کارديناليتي رابطه : تعداد عناصر مجموعه بدنه . (تعداد سطرها)‬
                   ‫کارديناليتي رابطه : تعداد تاپلهاي بسط رابطه .‬
                                                       ‫درجه رابطه :‬

      ‫کارديناليتي مجموعه عنوان ، يعني تعداد صفات خاصه عنوان‬
                                       ‫رابطه (تعداد ستونها)‬

 ‫مثال : ‪ s‬از درجه 4 است. ‪ SP‬از درجه 3 است. ‪ P‬از درجه 5 است.‬




‫03‬
                                              ‫خصوصيات رابطه :‬

‫1- تاپل تکراري ندارد ← چون بدنه مجموعه است و مجموعه عنصر‬
                              ‫تکراري نمي تواند داشته باشد.‬

‫2- صفات خاصه فاقد نرم هستند← چون عنوان مجموعره اسرت نره ‪n‬‬
                                                ‫تايي مرتب‬

             ‫3- تاپلها فاقد نرم هستند← چون بدنه مجموعه است‬
‫در سي ستمهاي مو جود هر دو نوع ن رم ارا ئه شده ا ست . يع ني هم‬
‫مي توان راب طه اي دا شت منرم شده بر مب ناي سطرها يا ستونها‬
‫بسته به تقاضاي طراح و هم براي صفات خاصه مجموعه عنوان قائل‬
‫به موقعيت ‪ Position‬شد . مي توان گفرت سرتون اول ، سرتون دوم ،‬
‫ستون سوم يع ني ترت يب قا ئل شويم براي صفات خا صه راب طه در‬
                                               ‫نمايش جدولي .‬

‫4- مقادير تمام صرفات خاصره اتوميرک (‪ : Atomic‬تجزيره نشردني)‬
                                                    ‫هستند .‬


‫13‬
‫در تقاطع هر سطر و ستون جدول يک داده ساده داريم که از لحاظ‬
                              ‫مفهومي غير قابل تجزيه است .‬
                     ‫ادامه بحث مفاهيم مبنايي مدل رابطه اي :‬
‫م قدار اتوم يک يا تجز يه ن شدني : م قداري ا ست که ا گر آ نرا به‬
‫اجزا تجزيه کنيم اجزاي بدست آمده فاقد ‪( Semantic‬معني) باشرد‬
‫. از اين نرر مقدار اتوميک را واحد ‪ Semantic‬داده مي گوينرد .‬
‫(‪( )Semantic Unit Of Data‬از ديد کاربر در معنراي عرام : از جملره‬
                                             ‫طراح ، ‪ dba‬و ...)‬
                                      ‫مثال : مقدار صفت خاصه رن‬
                     ‫غير قابل تجزيه از لحاظ سمنتيک‬         ‫آبي‬
       ‫سر‬    ‫ررره از لحر‬
‫ررراظ رررمنتيک‬                  ‫رررر قابر‬
                       ‫رررل تجزير‬        ‫غير‬          ‫سر‬
                                                 ‫رررياه‬
                              ‫مقدار ساده يا اتوميک است .‬
                                                        ‫آب + ي‬
                                                       ‫سي + آه‬
‫ا ين ا جزاي حا صله از تجز يه در مقو له شناخت م قادير ر ن ا شيا‬
‫فاقد معنا هستند . در صورتيکه اين تجزيه در مقوله زبانشناسي‬
                                 ‫ممکن است داراي معني باشد .‬

‫مثال : تاريخ ‪ : yy mm dd‬مرکب ، هم از نرر ‪ Syntax‬و هم از نررر‬
‫‪ . Semantic‬اين مقدار يک مقدار اتوميک نيست زيرا تجزيه مي شود‬
                                   ‫به سه مقدار داراي معنا .‬
‫نک ته : يک م قدار مر کب يا تجز يه شدني لزو ما نبا يد تجز يه شود‬
‫، ب ستگي دارد به د يد طراح . ه مين تاريخ را در يک د يد مم کن‬
‫ا ست اتوم يک ببي نيم و در د يد دي گر ب سته به کاربرد مم کن ا ست‬
                                                   ‫تجزيه شود .‬

‫از نررر رياضري يرک رابطره لزومري‬      ‫نکته : خاصيت 4 (اتوميک):‬
‫باشد ولي اين نرر آقراي ‪ Codd‬اسرت .‬     ‫ندارد داراي خاصيت چهارم‬
‫مي بي نيم . (از ل حاظ ريا ضي لزو مي‬    ‫د ليلش را در ادا مه ب حث‬
‫طه روي آن ها تعر يف مي شود اتوم يک‬    ‫ندارد م يدانهايي که راب‬
                                                        ‫باشد) .‬




‫23‬
‫تمرين :دو مثال ديگر در همين مورد قيد کنيد .(اول محيطش (‪)ER‬‬
               ‫را نشان دهيد و بعد مقادير را طراحي کنيد .)‬

‫ميدانهايي که يک رابطه روي آن تعريف مي شود بخشري از ‪Metadata‬‬
‫پاي گاه داده ه ستند و با يد در شماي ادرا کي پاي گاه به ک مک‬
           ‫احکام خاص (که مي دانيم احکام ‪ DDL‬است ) تعريف شود‬
                    ‫به عنوان تمرين اين مثال را تکميل کنيد .‬

‫‪ SQL‬هاي موجود در بازار فاقد تعريف ميردان هسرتند . در 29 ‪SQL‬‬
‫اين کمبود رفع شده است تا اوال آنچه بطور عملي ايجاد شده با‬
                                   ‫تئوري تطبيي داشته باشد .‬




                                           ‫مفهوم رابطه نرمال :‬

‫راب طه اي ا ست که در آن ت مام م قادير ت مام صفات خا صه اتوم يک‬
                                                       ‫باشد .‬

‫مثال : رابطه ‪ BEFORE‬يک رابطه از درجه 2 است . ميدان ‪ PQTY‬يرک‬
    ‫ميدان مرکب است که از دو ميدان #‪ P‬و ‪ QTY‬تشکيل شده است .‬

‫33‬
                          ‫رابطه است .‬    ‫يکي از ميدانها ، مقادير‬

‫‪(Not‬‬   ‫از لحاظ رياضي اين يرک ‪ Nested Relation‬اسرت . گراهي بره آن‬
                                          ‫)‪ Normal Relation‬ميگويند .‬

‫‪ Codd‬ميگويد رابطه ها در مدل رابطه اي تعريف شده توسط ايشران‬
                                         ‫بايد نرمال باشند.‬




‫دليل اينکه چرا رابطه ها بايد نرمال باشند ( چرا مقادير خاصه‬
                                     ‫بايد اتوميک باشند . )‬

                                     ‫‪ DATE‬با تاکيد گفته است که :‬
‫دل يل ا صلي نر مال بودن راب طه ها در مدل راب طه اي ، تامين‬
                                       ‫سادگي است . ‪Simplicity‬‬

                                                   ‫1 – سادگي ظاهري‬

                            ‫2 – سادگي انجام عمليات در ‪. Database‬‬

                         ‫3 – ساده تر شدن احکام ‪ DSL‬مخصوصا ‪. DML‬‬
‫43‬
                                                               ‫مثال :‬

                                       ‫>06 , 1‪: <S4 , P‬‬     ‫1‪Q‬درج کن‬

                                     ‫>05 , 3‪<S2 ,P‬‬        ‫2‪ : Q‬درج کن‬

‫انجام 1‪ I‬در هر دو پايگاه ‪ BEFORE‬و ‪ AFTER‬به سادگي قابل انجرام‬
                                                       ‫است .‬

                                                 ‫‪INSERT INTO BEFORE‬‬
                                                      ‫>06,1‪TUPLE<S4,P‬‬
                                                     ‫‪INSERT INTO AFTER‬‬
                                                      ‫>06,1‪TUPLE<S4,P‬‬

‫اما اجراي درخواست 2‪ I‬در ‪ AFTER‬به سادگي انجام پذير است . اما‬
                                              ‫در ‪ BEFORE‬نه .‬

                                                     ‫‪INSERT INTO AFTER‬‬
                                                      ‫>05,3‪TUPLE<S2,P‬‬
                                             ‫اما نمي توان نوشت‬

                                                 ‫‪INSERT INTO BEFORE‬‬

                                                      ‫>05,3‪TUPLE<S2,P‬‬

             ‫زيرا قبال تاپلي با 2‪ S# = S‬در اين جدول وجود دارد‬

                          ‫اين ‪ Tuple‬اي از جدول ‪ BEFORE‬نيست .‬

‫بايد اپراتور ديگري بجز ‪ INSERT‬در زبان وجود داشرته باشرد کره‬
                         ‫مقداري را به يک مجموعه اضافه کند.‬
                                                                ‫مثال :‬

                                                      ‫‪ADD TO PQTYSET‬‬
                                                          ‫>05,3‪VALUE <P‬‬
                                                       ‫;’2‪WHERE S# = ‘S‬‬

‫يعني يک اپراتوري براي ‪ INSERT‬هنگامي که ‪ Tuple‬مقدار عادي دارد‬
‫الزم داريم و يک اپراتوري به نام ‪ ADD‬يا ‪ APPEND‬براي حالتي که‬
                                     ‫‪ Tuple‬مقدار عادي ندارد .‬

‫اين براي سيستم ‪ Overhead‬ايجاد مي کنرد و سرادگي زبراني را از‬
                                                ‫بين مي برد.‬
‫53‬
                                           ‫کليد در مدل رابطه اي :‬

              ‫با اصطالح عام کليد کانديد )‪ (Candidate Key‬مطرح است .‬

‫… ‪Ai Aj‬‬   ‫تعريف : هر زير مجموعه از مجموعه عنوان رابطه به صورت‬
                                                           ‫‪Ak‬‬
                  ‫که داراي دوخاصيت زير باشد کليد کانديد است :‬

‫1 – يکتايي مقدار داشته باشد در طرول حيرات رابطره )‪Uniqueness‬‬
‫(يعني در هيچ دو ‪ Tuple‬اي از رابطه ايرن ترکيرب مقردار يکسران‬
                                               ‫نداشته باشد .‬

‫2 – کاهش ناپذيري ‪ Irreducibility‬يا ‪( Minimality‬ايجراز يرا کهينگري)‬
‫دا شته با شد . يع ني ا گر هر يک از ا جزاي ت شکيل ده نده ا ين‬
   ‫ترکيب را از بگيريم خاصيت يکتايي مقدار آن از بين برود .‬




 ‫نکته : اگر خاصيت دوم برقرار نباشد ، يعني زير مجموعه اي از‬
  ‫مجموعه ‪ Heading‬وجود داشته باشد که يکتايي مقدار داشته باشد‬
    ‫ولي کاهش ناپذيري نداشته باشد ، به آن ‪ Supper Key‬مي گويند‬
    ‫(يعني درون خود حد اقل يک کليد کانديد دارد ) اما ‪، Codd‬‬
  ‫‪ Supper Key‬را به عنوان يک مفهوم اساسي در مدل رابطه اي مطرح‬
                                                   ‫نمي کند .‬
          ‫آيا وجود حد اقل يک کليد کانديد در رابطه محرز است ؟‬
 ‫بله . هر رابطه کليد کانديد دارد . زيرا در بدترين حالت خود‬
  ‫مجموعه عنوان مي تواند کليد کانديد باشد ، زيرا مجموعه ‪Body‬‬
                        ‫، ‪ Tuple‬تکراري نمي تواند داشته باشد‬




 ‫به رابطه اي که مجموعه عنوانش کليد کانديد باشد رابطه تمام‬
       ‫کليد ‪ All-Key‬مي گويند . (سيستم مطلوبي نيست زيرا حداقل‬
                        ‫‪ Overhead‬ايجاد ‪ Index‬زياد مي شود . )‬

‫63‬
     ‫کليد ‪ Identifier‬تشخيص ‪ Tuple‬ها است و هرچه کليد طوالني تر باشد‬
                 ‫براي يافتن ‪ Tuple‬بايد مسير پيچيده تري را رفت.‬

                                                       ‫‪:Primary Key‬‬
           ‫کليد کانديدي است که طراح انتخاب مي کند بنابر مالحرات‬
                            ‫محيطي (يعني يکي از کليد هاي کانديد )‬

      ‫مثال : رابطه ‪ S‬داراي کليدهاي کانديد #‪ S‬و ‪ SNAME‬است ، اما‬
        ‫طراح ممکن است #‪ S‬را به عنوان کليد اصلي در نرر بگيرد .‬

     ‫آن کليد کانديدي که توسط آن ‪ Access‬بيشتري به ‪ Data‬انجام مي‬
     ‫شود به عنوان کليد اصلي مطرح مي شود که بستگي به نرر طراح‬
                                                        ‫دارد .‬
   ‫کليد اصلي :شناسه تاپل است در رابطه ، امکان آدرس دهي به‬
 ‫تاپل در رابطه است در محيط انتزاعي (الزاما صرف معرفي کليد‬
‫اصلي ايجاب نمي کند حتما سيستم روي کليد اصلي ‪ Index‬بزند بلکه‬
     ‫بايد درخواست کنيد .) اگر ‪ Tuple Level Operation‬بخواهيد داشته‬
                    ‫باشيد حتما بايد کليد اصلي داشته باشيد .‬
     ‫*کليد اصلي حتما در تعريف رابطه بايد قيد شود . يعني جزئي‬
                                   ‫از شماي اصلي پايگاه است .‬
‫‪CREATE RELATION S‬‬

‫‪(S# DOMAIN SNUM‬‬
‫.‬

‫)‪CITY DOMAIN CITY‬‬

‫;#‪PRIMARY KEY S‬‬
                                    ‫در سيستمهاي رابطه اي فعلي :‬

‫‪CREATES TABLE S‬‬
‫. . )6( ‪(S# CHAR‬‬
‫. . . . ‪SNAME‬‬
‫) . . . ‪CITY‬‬

‫; #‪PRIMARY KEY S‬‬
                                                  ‫(کليد خارجي) :‬

‫تعريف : ‪ Ai‬در 2‪ R‬کليد خارجي است اگر در رابطه اي مثال 1‪ R‬کليد‬
                                                ‫اصلي باشد .‬
‫73‬
  ‫مي توان گفت ‪ Ai‬در 2‪ R‬کليد خارجي است اگر از يک ميدان اصلي‬
 ‫مقدار بگيرد . (1‪ R‬و 2‪ R‬لزوما مجزا نيستند ) يعني کليد اصلي‬
                                       ‫کليد خارجي هم است .‬

     ‫مثال : صفت خاصه #‪ S‬در ‪ SP‬کليد خارجي است زيرا #‪ S‬در ‪ S‬کليد‬
                                                     ‫اصلي است.‬

     ‫مثال : #‪ P‬در ‪ SP‬کليد خارجي است زيرا #‪ P‬در ‪ P‬کليد اصلي است‬
                                                             ‫.‬

       ‫نکات : در تعريف کليد خارجي 1‪ R‬و 2‪ R‬لزوما مجزا نيستند‬




 ‫#‪ EMP‬کليد اصلي است .# ‪ EMGR‬در همين رابطه کليد خارجي است .‬

     ‫نکته : يک رابطه ‪ 1:N‬يکسويه توسط کليد خارجي پياده سازي مي‬
                                                        ‫شود .‬

     ‫نکته : لزومي ندارد کليد خارجي يک رابطه جزئي از کليد اصلي‬
                          ‫رابطه باشد . هرچند در ‪ SP‬چنين است .‬




       ‫در مدلين ارتباط ‪( 1:N‬يک به ‪ )n‬دوسويه از کليد خارجي‬
  ‫استفاده مي شود و رابطه اي براي بيان ارتباط آن دو موجوديت‬
 ‫طراحي مي شود که کليد اصلي ا تشکيل شده از کليدهاي اصلي دو‬
                                               ‫رابطه است .‬
                               ‫نکته : فايده کليد خارجي چيست ؟‬
         ‫امکاني است براي نشان دادن ارتباط بين موجوديتها . مثل‬
        ‫اينکه در رابطه ‪ SP‬از طريي کليد خارجي #‪ S‬و #‪ P‬ارتباط دو‬
         ‫موجوديت ‪ S‬و ‪ P‬را نشان مي دهيم . و نيز امکان ارجاع به‬
                                                 ‫موجوديتهاست .‬


‫83‬
        ‫به عنوان مثال وجود 1‪ S‬در رابطه ‪ SP‬ارجاعي است به نمونه‬
                                      ‫موجوديت 1‪ S‬در رابطه ‪. S‬‬
     ‫آيا تنها امکان نشان دادن ارتباط بين موجوديتها کليد خارجي‬
                                                        ‫است ؟‬
  ‫خير . در حالت کلي وجود هر صفت خاصه مشترک در مجموعه عنوان‬
 ‫دو رابطه نشاندهنده نوعي ارتباط بين دو نوع موجوديتي است که‬
                          ‫آن دو رابطه نمايشگر آنها هستند .‬
                                                               ‫مثال :‬
                                      ‫#‪CITY) , STATUS , SNAME , S(S‬‬

                                            ‫#‪CITY) ,………………….., P(P‬‬

 ‫‪ CITY‬در دو رابطه نوعي ارتباط را نشان مي دهد مثال "در يک شهر‬
   ‫بودن" "در يک شهر نبودن" و ‪ CITY‬در هيچيک از دو رابطه کليد‬
                  ‫خارجي نيست . زيرا هيچ جا کليد اصلي نيست .‬
           ‫براي نمايش ارتباط بين دو موجوديت : دو راه داريم :‬

                          ‫1 – استفاده از مفهوم کليد خارجي‬

                         ‫2- استفاده از يک صفت خاصه مشترک‬
 ‫کليد خارجي بيانگر يک ارتباط محوري و اساسي مي باشد اما صفت‬
                                    ‫خاصه مشترک چنين نيست .‬
                                                               ‫مثال :‬

                                                ‫)‪S(S#,SNAME, . . . ,CITY‬‬
                                                  ‫)‪P(P#,……………..,CITY‬‬
                                                      ‫)‪J(J#,JNAME,CITY‬‬
                                                ‫)‪SPJ(S#,P#,J#, . . . ,CITY‬‬

         ‫‪ CITY‬بيانگر نوعي ارتباط است ولي #‪ J‬و #‪ P‬و #‪ S‬بيانگر يک‬
                                ‫ارتباط محوري و اساسي مي باشد .‬
                                     ‫قواعد جامعيت )‪(INTEGRITY RULES‬‬

‫مجمو عه قوا عدي که به ک مک آن ها سي ستم صحت و د قت داده هاي‬
‫ذخيره شده در پايگاه و نيز ارتباطات بين انواع موجوديتها را‬
‫کنترل مي کند .( ‪ Tuple‬هم موجوديتهرا را نشران مري دهرد و هرم‬
                       ‫ارتباطات بين آنها را (ديد جدولي) ).‬
                                                       ‫قواعد جامعيت‬

‫93‬
‫‪ ‬کاربري (خاص) : تعريف شده توسط کاربر (منررور شرخص ‪)DBA‬‬
 ‫ر‬         ‫ر‬
‫خ رارجي باي رد‬                                      ‫ر‬     ‫ر‬
                                              ‫اس رت .ک راربران‬
        ‫درخواست خود را به ‪ DBA‬بدهند.(‪)UDR=User Defined Rules‬‬
‫‪ ‬عام (متا قاعرده ‪ : ) Meta-Rule‬مسرتقل از ‪ Data‬هراي خراص‬
‫‪ Independent‬از ‪Data‬‬                                 ‫مطرحند ،‬
                                              ‫هاي محيط خاص.‬
                                        ‫قواعد جامعيت کاربري (خاص)‬

                   ‫ميداني : قاعده اي است ناظر به مقادير يک ميدان‬
‫ستوني : عالوه بر قوا عد م يداني که بر روي مجمو عه م قادير‬
‫م يدان ا ست ، قوا عد جامع يت ستوني ا خص از م حدوديت م يداني ا ست‬
‫، يعني براي صفات خاصه بخصوصري در رابطره بخصوصري محردوديتي‬
                                                   ‫قايل بشويم.‬
     ‫مثال ميداني : شماره تهيه کنندگان حتما به اين صورت است :‬

‫‪R1 = sdddd‬‬

‫8888<‪R2 = 1111<dddd‬‬
‫}5‪R3 = City In { C1,C2,C3,C4,C‬‬
‫ستوني : عالوه بر قوا عد م يداني که بر روي مجمو عه م قادير‬
‫ميدان ناظر است ، قواعد جامعيت ستوني اخص از محدوديت ميداني‬
‫است ، يعني براي صفات خاصه بخصوصي در رابطه بخصوصي محدوديتي‬
                                             ‫قايل بشويم .‬
                                                           ‫:‬   ‫مثال‬

                                                   ‫001 < ‪R4 = 0< QTY‬‬

‫‪ QTY‬براي تهيه کنندگان سراکن 1‪ C‬و 2‪ C‬کره قطعرات 1‪ P‬و 2‪ P‬را‬
              ‫تهيه مي کنند نمي تواند بيشتر از 15 = 5‪ R‬باشد.‬

‫(*) يک ‪ DBMS‬واقعي بايد امکان بدهد ترا ‪ DBA‬انرواع قواعرد‬
‫قوا عد را‬  ‫جامع يت را ب يان و اي جاد ک ند و سي ستم با يد ا ين‬
                                           ‫پياده و عمل کند .‬
‫(*) شماي ادرا کي ف قط از تعر يف راب طه ت شکيل ن مي شود بل که‬
  ‫قواعد جامعيت مربوط به آن رابطه جزيي از شماي ادراکي است.‬

‫‪ DBMS‬مربروط بره ايرن قواعرد‬        ‫(*) بخش عمرده ‪ Overhead‬عمليرات‬
                                                     ‫جامعيت است .‬
                                              ‫:‬   ‫قواعد جامعيت عام‬

‫‪ : C1 ‬قاعده جامعيرت موجروديتي ‪ Entity Integrity Rule‬نراظر بره‬
                                             ‫کليد اصلي است .‬
‫04‬
‫ناظر بره‬     ‫‪Refrential Integrity Rule‬‬    ‫‪ : C2 ‬قاعده جامعيت ارجاعي‬
                                                    ‫کليد خارجي است‬
‫با يد در تعر يف راب طه‬        ‫نک ته : کل يد خارجي هم م ثل کل يد ا صلي‬
                                                           ‫آورده شود.‬

‫قاعده 1‪ : C‬مي گويد : هيچ جز تشرکيل دهنرده کليرد اصرلي نمري‬
         ‫باشد).‬   ‫تواند ‪ Null‬باشد ( هيچ مقدار ‪ Null Value‬داشته‬

                                                              ‫‪: Null Value‬‬

‫مرثال ‪ STATUS‬تهيره کننرده اي‬             ‫‪: Unknown‬‬   ‫1- مقدار ناشناخته :‬
                                                            ‫مشخص نباشد .‬

‫2- مقدار غير قابل اعمال : ‪ Inapplicable‬مرثال شرماره شناسرنامه‬
                     ‫همسربراي شخص مجرد غير قابل اعمال است .‬

‫‪ Null Value‬با صفر يا ‪ Blank‬فرق مي کند زيرا آنها مقدارند . هر‬
‫چند سيستم بايد امکاني براي بازنمايي ‪ Null-Value‬داشته باشد. (‬
                  ‫درکتابها ‪ Null-Value‬را با ؟ نمايش مي دهند ).‬

‫* بايد به عنوان يک مقدار،يک مجموعه عملياتي مشخص ناظر بررآن‬
            ‫وجود داشته باشد ( محاسباتي منطقي مقايسه اي ).‬

           ‫به عنوان مثال در مقايسه دو ‪ null value‬جه مي توان گفت ؟‬
                                                  ‫‪Null ( < = > ) Null‬‬




‫پذير کفايت نمي کند .‬          ‫منطي دو ارزشي براي عمليات منطقي ‪Null‬‬
                                 ‫‪ Codd‬منطي سه ارزشي را بيان مي کند.‬

‫نرر ‪ : Date‬مفهوم ‪ Null‬مخرب مدل رابطه است .بلکه مفهوم ديگرري‬
     ‫به نام ‪ Missing Information‬بايد مطرح شود که ساده تر است .‬

                   ‫پس ‪ Overhead ، Null‬و گرفتاريها ي خود را دارد.‬

‫دليل قاعده 1‪ : C‬زيرا کليد اصلي شناسه ‪ Tuple‬است .شناسه يک‬
‫نمو نه م شخص از يک نمو نه موجود يت به مع ناي عام و مت مايز از‬
‫هر نمو نه دي گر ، و کل يد ا صلي عا مل تم يز يک نمو نه با نمو نه‬
          ‫ديگر است و عامل تميز خود نمي تواند ناشناخته باشد.‬

‫بايد در تعريف رابطه ، ‪ Null-Value‬پذيري يا ناپذيري صرفت خاصره‬
               ‫را بيان کرد ( ‪ DBMS‬بايد اين امکان را بدهد)‬

‫14‬
‫‪Create Table s‬‬

‫, )6(‪(S# char‬‬
‫, ‪Sname char(20) NOT NULL‬‬
‫.…‬
‫; #‪City Char (12) ) PRIMARY KEY S‬‬

‫يعني در طول حيات ايرن رابطره ‪ Sname‬نمري توانرد ‪ Null‬باشرد و‬
                         ‫‪ Sname‬بايد مقدار مشخصي داشته باشد.‬
                                                       ‫قواعد جامعيت :‬

                                    ‫قواعد خاص : تعريف شده توسط کاربر‬
                                                         ‫قواعد عام :‬

                                 ‫‪ : C1 ‬قاعده جامعيت موجوديتي‬
                ‫‪ :C2 ‬قاعده جامعيت ارجاعي : ناظر به کليد خارجي‬

‫کليد خارجي باشد (يعني ‪ Ai‬در رابطه 1‪ R‬کليد‬            ‫2‪ :c‬اگر ‪ Ai‬در 2‪R‬‬
                                                          ‫اصلي است )‬

                                                               ‫‪:R2.Ai‬‬

‫‪ ‬مي تواند ‪ null‬باشد اگر جزء تشکيل دهنرده کليرد اصرلي در‬
 ‫2‪ R‬نباشد در غير اينصورت ( يعني در صورتيکه ‪ null‬نباشد).‬
       ‫‪ ‬بايد حتما مقداري داشته باشد که در 1‪ R‬وجود دارد.‬




‫24‬
     ‫اين رابطه بر طبي بحث قبلي چون !1‪ R‬و 2‪ R‬برابرند. بنابراين‬
                                     ‫آنرا ‪ Self Referencing‬گوييم.‬




‫34‬
     ‫تمرين : دو مثال قيد کنيد که در آن حلقه ارجاع با 2=‪ n‬و دو‬
                               ‫مثال ديگر 3=‪ n‬وجود داشته باشد.‬

         ‫سئوال: دو قاعده 1‪ c‬و 2‪ c‬چگونه بايد به ‪ DBMS‬داده شود و‬
                                             ‫چگونه رعايت شوند؟‬

         ‫نکته : قواعد 1‪ C‬و 2‪ C‬بايد به نحوي به ‪ DBMS‬داده شوند.‬

                                   ‫نکته : بايد توسط ‪ DBMS‬رعايت شوند.‬

        ‫قاعده 1‪ C‬از طريي معرفي کليد اصلي در تعريف رابطه و نيز‬
                                     ‫استفاده از گزينه ‪.NOT Null‬‬
‫‪CREATE RELATION S‬‬

‫,‪( S# ……………… NOT NULL‬‬

‫…‬     ‫تعريف و رعايت مي گردد1‪ C‬بدين طريي‬

‫..…‬
‫.……‬

‫) )21( ‪City CHAR‬‬
‫; #‪PRIMARY KEY S‬‬

      ‫براي معرفي قاعده 2‪ :c‬در تعريف رابطه کليد خارجي( در صورت‬
                                        ‫وجود ) بايد مشخص شود.‬

‫‪CREATE‬‬    ‫‪TABLE SP‬‬
‫, ‪( S# …………. NOT NULL‬‬
‫,‪P# …………. NOT NULL‬‬
‫) ‪QTY …………. Integer‬‬
‫)#‪PRIMARY KEY (S# , p‬‬
‫)#‪FOREIGEN KEY S# reference S ( referenced Table : S )(s‬‬
‫‪DELETE CASCADE‬‬
‫44‬
FOREIGN KEY P# REFERENCE P(p#)

DELETE CASCADE;

                                             : Oracle ‫ در‬sp ‫ايجاد جدول‬

                                                   CREATE TABLE SP 
                                                 (snum character(3) , 
                                                pnum character(3) ,   

                                                       ,qty integer   
                  CONSTRAINT pk_snumpnum PRIMARY KEY (snum,pnum),     
                                               CONSTRAINT fk_snum     
                                         FOREIGN KEY (snum)           

                                         REFERENCES s(snum)           

                                              ,ON DELETE CASCADE      

                                              CONSTRAINT fk_pnum      
                                         FOREIGN KEY (pnum)           
                                         REFERENCES p(pnum)           

                                         ON DELETE CASCADE)           

                                   : ‫ را رعايت کنيم‬C2 ‫چگونه قاعده‬

                             : ‫ متصور است‬C2 ‫سه مکانيسم براي رعايت‬

‫پايگاه رعايت شود‬       ‫ بايد در جميع عمليات روي‬C2         ‫نکته : قاعده‬
                                                                     .

     ‫‘ وجود ندارد‬S1’ ‫ تهيه کننده‬S ‫مثال : فرض مي کنيم در رابطه‬

‫ شود‬Reject ‫ مي گويد اين عمل بايد‬C2 ‫قاعده‬
INSERT INTO SP

VALUES (S7,P1,60) ;
                                                           ‫درج يک تاپل‬

         : ‫ را داريم‬S3 ‫ موجوديت‬S ‫مثال : فرض مي کنيم در رابطه‬
                                                           DELETE FROM S

45
                                                         ‫; ’3‪WHERE S#=‘S‬‬

     ‫آيا بايد اجرا شود ؟ اگر بله با تاپلهاي ‪ Referencing‬چه بايد‬
                                            ‫کرد ؟؟ و اگر نه ...‬
                                    ‫سه مکانيسم براي رعايت قاعده 2‪: C‬‬

                                   ‫در عمل ‪ ( Delete‬به عنوان مثال) :‬

    ‫1. رو ‪ : Cascade‬انتشار عمليات به رابطه ‪ Referencing‬وقتي‬
      ‫که عمل در رابطه ‪ Referenced‬انجام شود .مثال : با حذف‬
     ‫تاپلهاي 3‪ S‬از ‪ ، S‬تمام تاپلهاي رجوع کننده به 3‪ S‬در‬
                          ‫رابطه هاي ديگر نيز بايد حذف گردد.‬
‫’3‪1- DELETE FROM S WHERE S#=‘S‬‬
‫;’3‪2- DELETE FROM SP WHERE S#=‘S‬‬

‫در بعضي از‬  ‫نوعي ‪ Propagating Update‬است . اين رو‬    ‫اين رو‬
                              ‫سيستمهاي موجود وجود دارد.‬
                    ‫2. رو ‪ : Restricted‬انجام عمل بطور مشروط‬
 ‫در اين رو تاپل مرجع )‪ (Referenced‬حذف نمي شود و بعبارتي‬
  ‫ديگر تا زمانيکه تاپل مرجع تاپل رجوع کننده اي دارد ،‬
                                 ‫عمل حذف انجام نمي شود .‬
                         ‫3. رو هيچمقدارگذاري : )‪( Nullifying‬‬
 ‫در اين رو با حذف تاپل مرجع مقدار کليد خارجي در تاپل‬
  ‫رجوع کننده ‪ Null‬مي شود و زماني امکانپذير است که کليد‬
                            ‫خارجي جزء کليد اصلي نباشد.‬
                                   ‫اول است .‬    ‫: رو‬    ‫متداولترين رو‬

‫نکته : در سيستمهاي پيش رابطه اي قواعد جايمعيت نرير 1‪ C‬و 2‪C‬‬
     ‫وجود دارد و بويهه قاعده 2‪ C‬در ‪ DS‬ذاتي اين سيستها وجود‬
     ‫‪ Cascade‬در سيستمهاي پيش رابطه اي‬   ‫دارد . يعني ايده رو‬
   ‫(مثال در سلسله مراتبي با حذف نمونه پدر ، نمونه فرزند نيز‬
   ‫حذف مي شود يا مثال شبکه اي با حذف نمونه مالک و... ) چيز‬
 ‫جديدي نيست و نياز به تصريح ندارد ولي در سيستمهاي رابطه اي‬
  ‫بايد تصريح شود زيرا رابطه ها حسب ظاهر منفک از يکديگرند و‬
   ‫ارتباط بين رابطه ها عليرغم مجزا بودن دو رابطه به يکي از‬
                                  ‫روشهاي زير انجام مي گيرد.‬
                                               ‫از طريي مکانيسم ارجاع.‬

       ‫از طريي صفت خاصه مشترک که در ‪ Heading‬دو رابطه در سيستم‬
                                     ‫رابطه اي بايد تصريح شود.‬

                ‫وعمل ‪ Cascade‬در سيستم رابطه اي بايد تصريح شود.‬


‫64‬
     ‫نرر ‪ : Date‬بهتر است ‪ DBMS‬قبل از انجام عمل ‪ Warning‬دهد و‬
                                      ‫بعد از کاربر سوال کند .‬

                  ‫تمرين : امکانات ‪ DDL‬را در 29‪ SQL‬مطالعه کنيد‬

     ‫( مخصوصا روي احکام ‪)CREATE DOMIAN , DROP DOMAIN , ALTER DOMAIN‬‬

                    ‫‪ DB2/:SQL:DML‬چهار تا حکم دارد .‬     ‫سطح ادراکي‬


                      ‫حکم واحد ‪SELECT‬‬    ‫بازيابي : ‪‬‬       ‫احکام‬

‫‪(INSERT‬‬       ‫احکام برا ‪Syntax‬‬    ‫ذخيره سازي :‬
                                                    ‫) ‪,DELETE , UPDATE‬‬
‫امکا نات ج بر راب طه اي و محا سبات راب طه اي تقري با ب طور کا مل‬
                               ‫‪ SELECT‬استفاده مي شود .‬   ‫در حکم‬




           ‫مثال : مشخصات تهيه کنندگان ساکن شهر 2‪ C‬را بدهيد ؟‬




     ‫وقتي تمام ستونهاي جدول را بخواهيد نيازي به ذکر نام صفات‬
                  ‫خاصه نيست ، بلکه يک * بجاي آنها کافي است .‬

      ‫که‬   ‫* ‪ SELECT‬تمامي مشخصات را مي آورد و مخصوصا در مواردي‬
                         ‫تعداد صفات خاصه زياد است مفيد است .‬

      ‫‪ SELECT SQL‬وقتي سطر کامل استخراج مي کنيم شبيه سازي ‪SELECT‬‬
     ‫جبري است که تاپلهايي از جدولها به ما مي دهد. * ‪ SELECT‬را‬
          ‫اگر شرط بدهيم و يا تدهيم بازهم‪ SELECT‬جبري خواهد بود.‬
                                                               ‫مثال:‬

‫74‬
‫‪SELECT S#, City‬‬

‫; ‪FROM S‬‬
                  ‫دو ستون از جدول را مي دهد.‬




‫84‬

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:14
posted:11/22/2012
language:Unknown
pages:48