جزوه پایگاه داده پیشرفته
دانلود جزوه
-1 مقدمه : سيستم بانك اطلاعاتي چيست؟
سيستم بانك اطلاعاتي يا پايگاه داده (Data Base) به طور عمومي يك سيستم كامپيوتري نگهداري ركوردها مي باشد. بانك اطلاعاتي را مي توان به عنوان قفسه بايگاني الكترونيكي در نظر گرفت كه مخزني براي فايل داده كامپيوتري است . كاربران سيستم مي توانند عمليات گوناگوني را بر روي اين فايل ها انجام دهند، مانند:
افزودن فايل هاي جديد به بانك اطلاعاتي
افزودن داده ها به فايل هاي موجود
بازيابي داده ها از فايل هاي موجود
تغيير داده هاي فايل موجود
حذف داده ها از فايل موجود
حذف فايل هايي از بانك اطلاعاتي
همانطور كه گفتيم سيستم بانك اطلاعاتي، يك سيستم كامپيوتري براي نگهداري ركوردها مي باشد بدين معني كه يك سيستم كامپيوتري كه هدف آن ذخيره اطلاعات است و كاربران مي توانند آن اطلاعات را بازيابي يا به هنگام كنند. هر چيزي كه براي يك دانلود جزوه پایگاه داده پیشرفته با يك سازمان با ارزش باشد ،اطلاعات نام دارد. يك سيستم بانك اطلاعاتي از چهار قطعه تشكيل شده است: داده ها، سخت افزار، نرم افزار و كاربران.
داده ها (Data)
هرچيزي كه براي يك فرد يا سازمان با ارزش باشد ، داده در نظر گرفته مي شود.
قابليت هايي كه يك سيستم بانك اطلاعاتي ارائه مي كند، تا حد زيادي به كامپيوتري بستگي دارد كه اين سيستم بر روي آن كار مي كند . سيستم ها بر روي كامپيوترهاي بزرگ، معمولا چندكاربره هستند، در حاليكه سيستم ها در كامپيوترهاي كوچك، تك كاربره هستند. سيستم تك كاربره سيستمي است كه در آن، در آنِ واحد فقط يك نفر مي تواند از بانك اطلاعاتي استفاده كند و سيستم چندكاربره سيستمي است كه در آنِ واحد چند نفر مي توانند از يك بانك اطلاعاتي استفاده كنند.
*هدف اصلي سيستم هاي چندكاربره اين است كه به كاربر اجازه دهند، از آن به عنوان يك سيستم تك كاربره استفاده نمايد.
به طور كل داده ها در بانك اطلاعاتي، بخصوص در سيستم هاي بزرگ، هم به صورت مجتمع و هم به صورت اشتراكي هستند (Integration & Sharing) كه در ادامه توضيح داده مي شوند:
جامعيت (Integration): مفهوم جامعيت يا مجتمع بودن اين است كه بانك اطلاعاتي مجموعه اي از فايل هاست كه بخشي از اطلاعات اضافي از بين آن ها حذف شده است. ازديدگاه هاي ديگر، جامعيت به معناي صحت داده ها، پردازش ها و پيروي از مقررات سيستم مي باشد. هب عنوان مثال، موجودي واقعي حساب هاي بانكي نبايد منفي باشد.
اشتراك (Sharing): مفهوم مشترك بودن اين است كه داده هاي موجود در بانك اطلاعاتي مي تواند بين كاربران م ختلف به اشتراك گذاشته شوند، يعني هر يك از كاربران مي توانند از يك بخش از داده ها براي اهداف خاصي استفاده كنند. دانلود رایگان جزوه پایگاه داده پیشرفته ميتوان گفت كاربران به طور همزمان مي توانند به يك بخش از داده ها دستيابي داشته باشند. هر كاربر فقط بخشي از داده هاي بانك اطلاعاتي را مورد استفاده قرار مي دهد و توسط ديدگاه هاي مختلفي با بانك اطلاعاتي در تعامل است. اگر بانك اطلاعاتي مشترك نباشد، بانك اطلاعاتي شخصي يا كاربر ويژه ناميده مي شود.
(Hardware) سخت افزار
قطعات سخت افزاري سيستم شامل موارد زير است:
حافظه هاي جانبي: كه دانلود جزوه پایگاه داده پیشرفته ديسك ها هستند، براي ذخيره داده ها به كار مي روند و دستگاه هاي ورودي/خروجي مانند گرداننده ها، كنترلگرهاي دستگاه ها و ...
پردازنده هاي سخت افزاري و حافظه هاي اصلي كه براي پشتيباني از اجراي نرم افزار بانك اطلاعاتي به كار مي روند.
(Software)نرم افزار
سه نوع نرم افزار رايج در بانك اطلاعاتي وجود دارد: سيستم مديريت بانك اطلاعاتي (DBMS)، سيستم عامل و برنامه هاي كاربردي. سيستم مديريت بانك اطلاعاتي لايه اي از نرم افزار بين داده هاي فيزيكي ذخيره شده وكاربران سيستم مي باشد كه به آن كارگزار بانك اطلاعاتي (Database Server)گفته مي شود.
كاربران(Users)
كاربران بانك اطلاعاتي را مي توان سه دسته در نظر گرفت:
برنامه نويسان كاربردي كه مسئول نوشتن برنامه هاي كاربردي بانك اطلاعاتي اند.
كاربران نهايي كه از طريق ايستگاه هاي كاري يا پايانه ها به سيستم دسترسي دارند.
اين دسته از كاربران كه ديده نميشود، مدير يا سرپرست بانك اطلاعاتي (DBA) است كه وظيفه سرپرست بانك اطلاعاتي و سرپرست داده هاست.
اجزاي سيستم مديريت پايگاه داده:
وظايف DBMS توسط تعدادي مولفه نرم افزاري انجام مي شود. هر كدام از اين مولفه ها ممكن است مركب از چند واحد كوچكتر باشند. تعدادي از سرويس هاي كه توسط مولفه هاي DBMS داده مي شوند در زير ليست شده است:
(Transaction Processing) پردازش تراكنش
پردازش تراكنش عملياتي كه از منابع مختلف مي رسد را روي پايگاه داده اجرا مي كند به نحوي كه خواص مطلوب تراكنش خدشه دار نشود. سرويس هاي كنترل همروندي و ترميم به اين مولفه براي برقراري خواص ACID كمك مي كنند. به اين ترتيب اجراي همروند تراكنش ها و سازگاري پايگاه داده حتي در صورت وقوع شكستي در سيستم تضمين مي شود.
(Concurrency Control )كنترل همروندي
مديريت اجراي همروند تراكنش ها روي پايگاه داده در حين برقراري سازگاري را به عهده دارد.
(Recovery) ترميم
ترميم تضمين مي كند كه اگر اجراي تراكنش با عدم موفقيت يا سق ط روبرو شد، تاثير نامطلوبي روي پايگاه داده يا تراكنش هاي ديگر نگذارد و حالت پايگاه داده را هميشه سازگار نگه دارد.
(Log Management)مديريت ثبت احوال
هر اتفاقي در سيستم در يك فايل ذخيره مي شود و دانلود جزوه پایگاه داده پیشرفته مديريت ترميم براي حفظ صحت و اعتبار پايگاه داده هنگام خرابي يا سقط سيستم استفاده مي شود.
(Language Interface )واسطه زباني
دستوراتي را براي تعريف داده، كار كردن با آن دراختيار كاربران و برنامه هاي كاربردي قرار مي دهد.
(Fault Tolerance)تحمل پذيري خطا
توانائي ارائه سرويس هاي قابل اطمينان توسط DBMS حتي در صورت بروز نقص را تحمل پذيري خطا مي گويند. انواع خطاهائي كه ممكن است پيش بيايد عبارتند از:
خطاي منطقي: تراكنش موفق نمي شود مثلا به دليل ورودي بد، سرريزي
خطاي سيستمي: تراكنش موفق نمي شود مثلا به دليل بن بست
سقط سيستم: قطع برق، پاك شدن حافظه اصلي، پر شدن ديسك
ناتواني ديسك : خرابي هد، خرابكاري عمدي، آتش سوزي ،
(Data Catalog) كاتالوگ داده
يا ديكشنري داده يك پايگاه داده سيستمي شامل اطلاعاتي درباره داده، ارتباطات و قيدها در پايگاه اصلي است. گاهي به آن متاداده هم گفته مي شود.
(Security) امنيت
امنيت به محافظت داده در مقابل افشاشدن، تغيير و خرابي اشاره دارد. هر كابر و برنامه كاربردي امتياز ويژه اي براي دسترسي به داده دارد. كاربران ممكن است ديدگاه هاي مختلفي نسبت به داده هاي پايگاه داده با توجه امتيازات ويژه خود داشته باشند . سيستم امنيتي همچنين، دانلود جزوه پایگاه داده پیشرفته رويه هاي شناسائي و مجوز، دسترسي به پايگاه داده را محدود مي كند.
(Storage Management) مديريت ذخيره سازي
DBMS مكانيسم هاي خاصي براي ذخيره دائمي داده و دسترسي به منبع فيزيكي و بازيابي داده دارد .مدير ذخيره سازي بين داده ذخيره شده در پايگاه داده و برن امه كاربردي و پرس و جوهاي ارسال شده به سيستم واسطه مي شود.
(Lock Management) مديريت قفل
هنگام استفاده اشتراكي از داده انواع مختلفي از قفل روي داده گذاشته مي شود (مثل Read
.(Write Lock و Lock
(Deadlock Management )مديريت بن بست
بن بست وقتي اتفاق مي افتد كه تراكنش ها براي بدست آوردن منابع در يك دايره بسته قرار گيرند يعني هر يك منبعي در اختيار دارد كه مورد تقاضاي ديگري است و درخواست منبعي را مي كند كه در اختيار تراكنش منتظر منبع است. در پايگاه داده منابع ركوردها هستند. مديريت منبع مسئول رفع اين مشكل هستند.
:ANSI-SPARC معماري
هر بانك اطلاعاتي با تبعيت از يك نوع معماري طراحي مي گردد. طبق اين نوع معماري بانك اطلاعاتي داراي سه سطح است.
سه سطح معماري بانك اطلاعاتي:
3 سطح داخلي: كه سطح فيزيكي ناميده مي شود و به حافظه فيزيكي نزديك است يعني مربوط به ذخيره فيزيكي ميشود.
3 سطح خارجي: كه سطح منطقي كاربر نيز ناميده مي شود و به كاربر نزديك است و با مشاهده داده ها توسط كاربران سروكار دارد.
3 سطح ادراكي: كه سطح منطقي اجتماع است يعني سطح غيرمستقيم بين دو سطحديگر است.
بررسي ديدگاه خارجي :
سطح خارجي، سطح هركاربر ازجمله محصولات خاصSQL مثلOracle است كاربر مي تواند يك برنامه نويس كاربردي يا يك كاربر نهايي با هر درجه اي از تخصص باشد (مدير بانك اطلاعاتي ، فرد خاصي است و بايد به سطوح داخلي و ادراكي علاقه مند باشد).
هركاربر داراي يك زبان است:
براي برنامه نوياسن كاربردي، اين زبان ممكن است يك زبان برنامه نويسي (مثل C++، جاوا يا PL/I ) باشد يا يك زبان اختصاصي با شد كه مربوط به خود آن سيستم است . اين زبان هاي اختصاصي را معمولا زبان هاي نسل چهارم مي گويند. زبان ماشين، زبان اسمبلي و زبان هايي مثل C++ را مي توان جزء زبان هاي سه نسل قبلي دانست. زبان هاي نسل چهارم با تغييراتي بر روي زبان هاي 3 نسل قبلي دانلود جزوه پایگاه داده پیشرفته مي شوند .
زبان كاربر نهايي ، زبان تقاضا يا زبان خاصي مثل منوگرا و فرم گرا است كه خواسته هاي كاربران را برآورده مي كند و توسط برنامه هاي كاربردي آنلاين پشتيباني مي شود .
بخشي از اين زبان ها كه با اشيا و عمليات بانك اطلاعاتي سروكار دارد، مهم است . اين بخش را Data Sub Language يا DSL در زبان ميزبان متناظر تعبيه شده است .زبان ميزبان مسئول تهيه امكانات گوناگون غير بانك اطلاعاتي است، مثل متغيرهاي محلي، اعمال محاسباتي، منطق تصميم گيري و غيره. يك سيستم ممكن است هرتعدادي از زبان هاي ميزبان و تعدادي از DSL را پشتيباني كند . اما يكDSL خاص كه توسط اغلب سيستم هاي فعلي پشتيباني مي شود SQL است. در اغلب اين سيستم ها مي توان از SQL هم به صورت محاوره اي و به عنوان يك زبان مستقل تقاضا استفاده كرد و هم به عنوان زبان تعبيه شده در زبان هايي مثل جاوا استفاده نمود.
هر DSL تركيبي از دو زبان ديگر است: زبان تعريف داده ها (DDL) كه تعريف يا اعلان اشياي بانك اطلاعاتي را پشتيباني مي كند و زبان دستكاري داده ها (DML) كه پردازش اين اشيا را امكان پذير مي سازد .DSL اين كاربر متشكل از ويژگي هايي ازPL/I است كه براي برقراري ارتباط با سيستم مديريت بانك اطلاعاتي به كار مي رود:
بخشDDL حاوي ساختارهاي اعلاني PL/I است كه براي تعريف اشياي بانك اطلاعاتي ضرورياست – دستور DECLARE ( يا DCL )، بعضي از انواع داده PL/I يا توسعه اي از PL/I كه در PL/I فعلي موجود نيست.
بخش DML شامل دستورات اجرايي PL/I است كه اطلاعات را به بانك اطلاعاتي ا تنقال داده، از آن بازيابي مي كند. ممكن است دستورات خاصي گنجانده شوند.
PL/I درحال حاضر فاقد ويژگي هاي بانك اطلاعاتي است . دستوراتDML همان دستور CALL است كه سيستم مديريت بانك اطلاعاتي را فراخواني مي كند (گرچه ممكن است اين دستور فراخواني طوري تغيير كند كه از نظر كاربر قابل قبول و راحت باشد).
تا كنون متوجه شديم كه هر كاربر فقط به بخشي از كل بانك اطلاعاتي علاقمند است . ديدگاه كاربر به آن بخش، در مقايسه با روش ذخيره فيزيكي داده ها، تا حدي انتزاعي است . در اصطلاح ANSI/SPARC، د ديگاه كاربر، ديدگاه خارجي نام دارد. لذا ديدگاه خارجي همان محتويات بانك اطلاعاتي است كه توسط كاربران قابل مشاهده است ( يعني ، از نظر آن كاربر، ديدگاه خارجي ، بانك اطلاعاتي است ). به عنوان مثال ، كاربري از بخش پرسنلي ممكن است بانك اطلاعاتي را مجموعه اي از رويدادهاي ركورد كاركنان و محل كار آنان بداند و از رويدادهاي ركورد قطعات و عرضه كننده ها كه توسط كاربران فروش دستيابي مي شود، بي خبر باشد.
به طور كلي، ديدگاه خارجي شامل رويدادهاي متعددي از هريك از انواع ركورد خارجي است (كه الزاما همان ركورد ذخيره شده نيست). فرض ميكنيم تمام اطلاعاتي كه در سطح خارجي نمايش داده مي شوند به شكل ركوردهاست. در حاليكه در بعضي از سيستم ها ممكن است اطلاعات به شكل ركورد ذخيره نشود. DSL كاربر، براساس ركوردهاي خارجي تعريف شده است: به عنوان مثال، عمل بازيابي مربوط به DML رويدادهاي ركورد خارجي را بازيابي مي كند، نه رويداد ركورد ذخيره شده را.
توجه : مي بينيم كه اصطلاح ركورد منطقي به دانلود جزوه پایگاه داده پیشرفته خارجي اشاره دارد . از اينجا به بعد از اصطلاح ركورد منطقي استفاده نمي كنيم.
هر ديدگاه خارجي به وسيله شماي خارجي تعريف مي شود كه حاوي تعار يف انواع هر يك از ركوردهاي خارجي در آن ديدگاه خارجي است. شماي خارجي با استفاده از بخش DDL مربوط به DSL نوشته مي شود. لذا DDL را گاهي DDL خارجي نيز مي گويند. به عنوان مثال، نوع ركورد خارجي كارمند ممكن است شامل اين فيلدها باشد : شماره كارمندي 6 كاراكتري ، فيلدحقوق 5 رقمي و غيره.
بررسي سطح ادراكي :
ديدگاه ادراكي نمايشي از كل اطلاعات موجود در بانك اطلاعاتي است (همچون ديدگاه خارجي) و در مقايسه با روش ذخيره فيزيكي داده ها، تا حدي انتزاعي است . بطور كلي، با نگرش كاربر به داده ها متفاوت است. در ديدگاه ادراكي، به داده ها به همان شكلي كه هستند نگاه مي شود، نه به شكلي كه كاربران به دليل محدوديت هاي موجود در يك زبان يا سخت افزار، مجبور به ديدن آن ها مي شوند .
ديدگاه ادراكي شامل رويدادهاي متعددي از هريك از انواع ركورد ادراكي است . به عنوان مثال ،ممكن است شامل رويدادهاي ركورد سازمان، به علاوه مجموعه اي از رويدادهاي ركورد كارمند، به علاوه مجموعه اي از رويدادهاي ركورد عرضه كننده، به علاوه مجموعه اي از رويدادهاي ركورد قطعات و غيره باشد. ركورد ادراكي، الزاما با ركورد خارجي يا ركورد ذخيره شده يكسان نيست .
ديدگاه ادراكي به وسيله شماي ادراكي تعريف مي شود كه حاوي تعاريف هريك از انواع مختلف ركورد ادراكي است. شماي ادراكي با استفاده از يك زبان تعريف داده به نام DDL ادراكي نوشته مي شود. اگر استقلال فيزيكي داده ها حفظ شود، اين تعريف DDL ادراكي نبايد شامل ملاحظاتي در خصوص نمايش فيزيكي يا تكنيك هاي دستيابي باشد . فقط بايد محتويات اطلاعات را تعريف كنند. بنابراين، در شماي ادراكي نبايد به نمايش فيلد ذخيره شده، دنباله ركورد ذخيره شده، شاخص ها، روش هاي درهم سازي، اشاره گرها و جزئيات ذخيره سازي و دستيابي، ارجاع شود. اگر شماي ادراكي كاملا مستقل از داده ها ساخته شود، آنگاه شماي خارجي، كه برحسب شماي ادراكي تعريف شده است، مستقل از داده ها خواهد بود.
پس، ديدگاه ادراكي، ديدگاهي نسبت به كل محتويات بانك اطلاعاتي است و شماي ادراكي، آن ديدگاه را تعريف مي كند .نميتوان گفت شماي ادراكي همان تعاريف ركورد در زبان كوبول است.
تعاريف در شماي ادراكي شامل ويژگي هاي متعددي است. بعضي از مؤلفين پيشنهاد مي كنند كه هدف نهايي شماي ادراكي، توصيف كل مؤسسه است – نه فقط خود داده ها، بلكه چگونگي استفاده از داده ها نيز هست: داده ها در مؤسسه، چگونه از نقطه اي به نقطه ديگر مي روند و غيره. يادآوري مي شود كه هيچكدام از سيستم هاي امروزي از شماي ادراكي كه اين درجه از تماميت راشامل شود، پشتيباني نمي كنند. در دانلود جزوه پایگاه داده پیشرفته سيستم هاي موجود ، شماي ادراكي كمي بيشتر از اجتماع تمام شماهاي خارجي، به اضافه قيدهاي امنيتي و جامعيت است . اما سيستم هاي آ نيده ممكن است در استفاده از شماي ادراكي تخصص داشته باشند .
بررسي سطح داخلي :
ديدگاه ادراكي، نمايش سطح پاييني از كل بانك اطلاعاتي است و شامل رويدادهاي متعددي از انواع مختلف ركورد داخلي است . ركورد داخلي اصطلاح ANSI/SPARC براي ساختاري است كه آن را ركورد ذخيره شده ناميديم .ديدگاه داخلي بالاتر از سطح فيزيكي است، زيرا با اصطلاح ركوردهاي فيزيكي كه بلوك ها يا صفحات نيز ناميده مي شوند، سروكار ندارد . همچنين با ملاحظات دستگاه ها مثل اندازه سيلندرها و شيارها نيز سروكار ندارد . بعبارت ديگر، ديدگاه داخلي، فضاي خطي نامحدودي را فرض مي كند، جزئيات چگونگي نگاشت فضاي آدرس به حافظه فيزيكي كاملا وابسته به سيستم است و از معماري كلي حذف شده است.
توجه : بلوك يا صفحه ، واحد I/O است ، يعني ميزان اطلاعاتي كه در يك عمل I/O بين حافظه اصلي و حافظه ثانويه تبادل مي شود. صفحات ممكن است از 1k تا 64k باشند (k=1024 بايت).
ديدگاه داخلي به وسيله شماي داخلي توصيف مي شود كه نه تنها انواع ركورد ذخيره شده را تعريف مي كند بلكه مشخص مي كند چه شاخص هايي وجود دارد، فيلدهاي ذخيره شده چگونه نمايش داده مي شوند، ترتيب ف يزيكي ذخيره ركوردها چگونه است و غيره . شماي داخلي با استفاده از يك زبان تعريف داده ها به نام DDL داخلي نوشته مي شود.
توجه : دراينجا از اصطلاح بانك اطلاعاتي ذخيره شده بجاي ديدگاه داخلي و از اصطلاح تعريف ساختار حافظه به جاي شماي داخلي استفاده مي كنيم .
در حالت هايي، برنامه هاي كاربردي (به خصوص برنامه هاي سودمند )، ممكن است اين امكان را فراهم كنند كه بجاي كاركردن در سطح خارجي، بتوان مستقيما در سطح داخلي كاركرد. اين كار پيشنهاد نمي شود . در اين حالت خطر دانلود جزوه پایگاه داده پیشرفته و خطر جامعيت وجود دارد زيرا محدوديت هاي آنها ناديده گرفته مي شود و برنامه نيز به داده ها وابسته خواهد بود. اما گاهي، اين روش، تنها راه دستيابي به عملكرد كارايي مطلوب است. مثل حالتي كه برنامه نويسان در زبان هاي سطح بالا مجبور مي شوند از زبان اسمبلي استفاده كنند تا كارايي مطلوب را به دست آورند.