تبليغاتX
مقالات فناوری اطلاعات

اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط ميباشد

آرم وبلاگ
سلام دوست عزيز . من مرضيه دانشجوي مقطع كارشناسي فناوري اطلاعات هستم . اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط با اون هست .
به اميد اينكه مطالب مفيد واقع بشه . با ارائه نظرات سازنده ي خودتون من رو در هرچه پربارتر كردن اين وب ياري كنيد .
متشكرم

پیوندها
جستجوگر

طراح قالب

Powered By
BLOGFA.COM
لینک RSS
بانك اطلاعات چيست ؟

آيا به نظر شما بانك اطلاعات سيستمي است براي ذخيره‌ي داده‌ها و ايندكس گذاري روي ركوردها كه جستجو را تسهيل مي‌كند ؟ آيا بانك اطلاعات صرفاٌ به داده‌هايي گفته مي‌شود كه بصورت منطقي در كنار هم و با ارتباطي خاص قرار گرفته‌اند ؟ اگر پاسخ شما به اين سؤالات مثبت باشد يا اگر مواردي از اين قبيل را به عنوان وظايف اصلي يك سيستم مديريت بانك اطلاعات (DBMS) در نظر مي‌گيريد ، در اشتباه هستيد .

تا قبل از سال 1970 كه دهه‌ي انقلابي به نام انقلاب بانك اطلاعات بود ، سيستم‌هايي توسعه يافته بودند كه كارهاي بالا را به خوبي انجام مي‌دادند . مانند بسته‌‌ي محبوب btrieve كه يك سيستم فايلينگ قوي در سيستم عامل unix يا novell بود . اما كجاي كار مشكل داشت و اين سيستم‌ها چه امكاناتي را پشتيباني نمي‌كردند كه باعث شد ناكار‌آمد جلوه كنند و موجودي به نام بانك اطلاعات پا به عرصه‌ي وجود بگذارد .

در سيستم‌هاي فايلينگ هر كاربر مي‌توانست روي كل پرونده مسلّط شود و از اطلاعات آن استفاده كند . اين مسأله دو مشكل بزرگ را به همراه داشت : اول اينكه در سيستم‌هاي چند كاربره ، كاربران ديگري كه با يك پرونده كار داشتند بايست منتظر مي‌ماندند تا كاربر اول كار خود را تمام كند و پرونده را آزاد كند و اين بازده و سرعت را پايين مي‌‌‌‌‌‌‌‌‌‌آورد . از طرف ديگر تسلّط كاربر بر كل پرونده يعني قرباني شدن امنيت . اين مشكلات و مشكلات ديگري مانند افزونگي بيش از حد داده‌ها باعث شدند تا سيستم‌هاي مديريت بانك اطلاعات (DBMS)ها و مفاهيم بانك اطلاعات به موازات آن رشد پيدا كنند . در واقع DBMS برنامه‌اي است كه همه‌ي پرونده‌ها را در اختيار خود مي‌گيرد و همه‌ي كاربران بدون استثناء مي‌بايست براي دسترسي به داده‌ها درخواستهاي خود را از طريق DBMS بدهند و ايشان اگر صلاح ديدند به درخواستها پاسخ مثبت مي‌دهند .

به اين ترتيب بسياري از مشكلات حل شد . امنيت به سطح قابل قبولي رسيد . زيرا DBMS مفت به كسي اطلاعات نمي‌دهد !!! تا كاربر اجازه‌ي دسترسي به يك جدول را نداشته باشد حصاري بلند به نام DBMS به او اجازه نمي‌دهد كه از داده‌ها استفاده كند . از طرفي ديگر كاربران متعددي مي‌توانند روي داده‌ها بطور همزمان كار كنند و DBMS يكپارچگي و صحت داده‌ها را در بانك اطلاعات تضمين خواهد كرد .

با ظهور DBMS بسياري از وظايف از دوش برنامه‌نويس برداشته شد . به عنوان مثال كنترل ورود صحيح اطلاعات حفظ يكپارچگي و البته كليه‌ي عمليات مربوط به دستكاري داده‌ها بر دوش DBMS گذاشته شده است . زبان‌هاي برنامه‌نويسي امروزي نيز با قرار دادن كامپوننتهاي مختص بانك اطلاعاتي به اين امر كمك كرده‌اند . بطوريكه با چند خط برنامه‌نويسي در محيط Delphi مي‌توان يك پروژه‌ي بانك اطلاعاتي را توسعه داد .

DBMS از كجا مي‌داند كه به چه كسي بايد چقدر اطلاعات بدهد و به چه كسي اطلاعات ندهد ؟ يا اصلاٌ بانك اطلاعات چگونه روي DBMS قرار مي‌گيرد ؟ اينجاست كه با نيروي انساني درگير هستيم :

مدير بانك اطلاعات (DBA) : مسئول طراحي و تصميم‌گيري براي كليه‌ي موارد بالا ، مدير بانك اطلاعات است . در بانك‌هاي توزيع شده (بانك‌هايي كه از لحاظ فيزيكي در يك محل قرار ندارند) ممكن است يك تيم مسئول مديريت بانك اطلاعات باشد .

برنامه‌ساز بانك اطلاعات (DBP) : اين گروه افراد مسئول ساختن برنامه‌هايي هستند كه از يك طرف به بانك اطلاعات متصل است و از طرف ديگر به كاربر نهايي يا همان اپراتور . در واقع اين افراد تصميمات مدير را پياده‌سازي مي‌كنند . كاربران كساني هستند كه از طريق اين برنامه‌ها داده‌ها را در حيطه‌ي نظارت DBMS دستكاري مي‌نمايند .

معماري بانك اطلاعات :

بعد از سال‌ها بحث پيرامون اينكه بانك اطلاعات چه هست و چه نيست ، سرانجام كميته‌ي ANSI/SPARC معماري سه لايه را ارائه داد كه بعدها يك لايه به آن افزودند و ما معماري چهار لايه را بررسي مي‌كنيم . اين معماري قابل تطبيق با اكثر مدل‌هاي بانك اطلاعات مي‌باشد .

لايه‌ي اول لايه‌ي تصوير خارجي است . تصوير خارجي مربوط به ديد كاربران است . يعني اينكه هر كاربر چه قسمت‌هايي از بانك اطلاعات را اجازه دارد ببيند و چه كارهايي روي آن قسمت‌ها مي‌تواند انجام دهد .

اصل اول بانك اطلاعات : اين اصل مي‌گويد به هر كس همان مقدار اطلاعات بده كه لازم دارد نه بيشتر . در زندگي روزمره هم رعايت اين اصل بسيار مفيد است . هميشه اطلاعات زيادي به كسي دادن باعث دردسر است . بنابراين در اين لايه قسمت‌هايي از بانك اطلاعات كه هر كاربر مي‌بيند مورد نظر است .

لايه‌ي دوم لايه‌ي تصوير ادراكي عام است . تصوير ادراكي عام يعني طراحي بانك اطلاعات بدون وابستگي به مدل خاص و پياده‌سازي فيزيكي خاص . اين لايه را كاربر نهايي نمي‌بيند .

فقط مدير بانك و برنامه‌نويس هستند كه اين لايه به دردشان مي‌خورد .

لايه‌ي سوم لايه‌ي ادراكي خاص  يا همان مدل منطقي است . يعني اينكه داده‌ها به صورت منطقي چگونه كنار هم قرار مي‌گيرند . مدل‌هاي مرسوم جدول ، درخت گراف و مانند اينهاست .

لايه‌ي چهارم لايه‌ي تصوير فيزيكي است . يعني اينكه داده‌هاي بصورت فيزيكي چگونه روي ديسك يا هر رسانه ذخيره و بازيابي ديگري قرار مي‌گيرند .

انواع مدل‌هاي منطقي :

1)   مدل‌هاي قديمي : شامل مدل شبكه‌اي و مدل سلسله مراتبي است . مدل شبكه‌اي داده‌ها را بصورت ركوردهايي مي‌بيند كه با هم تشكيل يك گراف مي‌دهند و مدل سلسله مراتبي داده‌ها را ركوردهاي تشكيل دهنده‌ي يك درخت مي‌بيند .

2)      مدل رابطه‌اي : داده‌ها را بصورت ركوردهايي مي‌بيند كه تشكيل يك جدول يا رابطه مي‌دهند .

3)   مدل‌هاي جديد : مدل‌هايي مانند شيء‌گرا ، شيء‌رابطه‌اي و منطقي و استنتاجي كه براي پوشش دادن ضعف‌هاي مدل قدرتمند رابطه‌اي عرضه شده‌اند . از عمده‌ترين اين ضعف‌ها مي‌توان به بحث ذخيره و بازيابي multimedia يا چند رسانه‌اي اشاره كرد .

استقلال داده‌ها :

همانطور كه مشاهده كرديد ، مدل‌هاي منطقي گوناگوني براي ذخيره‌سازي داده‌ها وجود دارد . بعنوان مثال در مدل رابطه‌اي داده‌ها مستقل از چه نوعي باشند در جداول ذخيره مي‌شوند . بديهي است كه ذخيره‌سازي فيزيكي داده‌ها روي ديسك يا هر رسانه‌ي ديگر به شكل جدول نخواهد بود و استقرار فيزيكي داده‌ها از ديد كاربر مخفي است . هر تغييري كه در نوع ذخيره‌سازي داده‌ها به وجود آيد مثلاٌ اگر بجاي ديسك از نوار استفاده شود ، كاربر اين تغيير را احساس نخواهد كرد چون مثل قبل او فقط جداول را مي‌بيند . اين نوع استقلال ، استقلال فيزيكي داده‌هاست . در مقابل همانطور كه قبلاٌ هم اشاره شد ، تصوير ادراكي عام از ديد كاربر مخفي است . بعنوان مثال اگر به جدولي ستوني اضافه شود يا به Schema يك جدول اضافه شود برنامه‌هاي قبلي باز هم به درستي كار خواهند كرد و نيازي به دستكاري ندارند . حتي ديدهاي سابق (View) به كار قبلي خود ادامه مي‌دهند . اين استقلال استقلال منطقي داده‌ها ناميده مي‌شود .

دو ابزار مهم در بانك اطلاعات :

از جمله ابزارهايي كه در سيستم‌هاي فايلينگ وجود ندارد اما بانك اطلاعات آن‌ها را پشتيباني مي‌كند ، لغت‌نامه داده و كاتالوگ سيستم است .

لغت‌نامه داده : در يك سيستم بانك اطلاعات اسامي زيادي مورد استفاده قرار مي‌گيرد . از آنجا كه افراد زيادي درگير با بانك اطلاعات هستند ، به خصوص اگر بانك اطلاعات بصورت توزيع شده در نقاط مختلف باشد ، براي ايجاد يكنواختي و هماهنگي مرجعي به نام لغت‌نامه داده (data dictionary) پديد آمده است . اين لغت‌نامه مانند يك لغت‌نامه‌ي معمولي شامل تمامي اسامي و معاني آن‌ها در بانك است . نرم‌افزارهاي بسيار پيشرفته‌اي نيز وجود دارند كه از استفاده اسامي مختلف براي يك معنا و نيز معاني مختلف براي يك اسم جلوگيري مي‌‌‌‌كنند . فرض كنيد در يك جدول از Account-number بعنوان نام فيلد شماره حساب استفاده شده است . نرم‌‌‌‌‌‌‌‌‌‌‌‌افزار اجازه نمي‌دهد درجاي ديگري از اين سيستم از نام #Account براي شماره حساب استفاده شود .

كاتالوگ سيستم : اضافه بر آنچه گفته شد ، اندازه‌ي جداول ، سايز فايلها ، لايه‌ي خارجي بانك ، زمان و تاريخ ايجاد هر يك از جداول ، نام ايجاد كننده و ... همه در كاتالوگ سيستم ذخيره مي‌شود .

تراكنش (Transaction) :

يكي از ويژگي‌هاي فوق‌العاده مهم بانك اطلاعات است كه سيستم‌هاي فايلينگ مثل btrieve فاقد آن هستند .

Transaction=Query+Update

اين ساده‌ترين تعريف براي تراكنش است . فرق اساسي تراكنش با ساير برنامه‌ها اين است كه اجراي تراكنش بر گردن DBMS گذاشته مي‌شود و DBMS مسئول اجرا يا ساقط كردن و يا به تعويق انداختن تراكنش است . سؤالي كه اينجا مطرح مي‌شود اين است كه چرا مجموعه دستورات كاربر بايد به تعويق انداخته شود ‌؟ پاسخ اين است كه همه‌ي اين وضعيت‌ها براي اين اتفاق مي‌افتد كه جامعيت و صحت داده‌ها حفظ شود .

تراكنش يا بطور كامل انجام مي‌شود و يا ساقط مي‌شود و اصلاٌ انجام نمي‌شود . مثال معروف براي تراكنش اين است كه يك تراكنش مي‌خواهد از حسابي پولي برداشت كند و همان پول را به حساب ديگري واريز كند . يك برنامه معمولي اين كار را در 2 مرحله مجزا انجام مي‌دهد يعني ابتدا عمل برداشت را انجام مي‌دهد و سپس به حساب ديگر واريز مي‌كند . فرض كنيد كه در اثناي اين كار يعني درست بعد از اينكه از حساب اول پول برداشت شده ، مشكلي در سيستم رخ بدهد و برنامه از ادامه كار خود باز بماند چه اتفاقي مي‌افتد ؟ مبلغي پول از حسابي برداشت شده و گم شده است . مفهوم تراكنش مي‌گويد يا هر 2 عمل برداشت و واريز انجام شود و يا هيچ كدام انجام نشود . بنابراين اگر در حين انجام كار به دليلي مثل قطع برق يا خرابي ديسك و ... تراكنش به مرحله انجام نرسد ، كليه‌ي اعمال انجام شده تا آن لحظه به حالت قبل از انجام تراكنش برميگردد و تراكنش بار ديگر از نو انجام خواهد شد . آنقدر اين حلقه تكرار مي‌شود تا تراكنش با موفقيت به انجام برسد .

نكته : در تئوري بانك اطلاعات اصالت با داده است نه برنامه . بدين مفهوم كه برنامه‌ها مي‌آيند و مي‌روند . اما مهم اين است كه داده‌ها صحيح باشند و كليه‌ي بحث‌هاي مربوط به تراكنش مثل همروندي و بازگرد (دو واحد مهم در DBMS) ناشي از همين اصل مهم است . به همين خاطر است كه در بانك اطلاعات داده را مانا (Persistant) مي‌گويند .

ثابت مي‌شود كه چهار كنترل ACID براي تضمين صحت و جامعيت اطلاعات كفايت مي‌كند كه هر يك را جداگانه شرح مي‌دهيم :

يكپارچگي (Atomicity) : بدين مفهوم است كه امكان ندارد بخشي از دستورات اجرا شود و بخش ديگر باقي بماند . يا همه‌ي دستورات يك تراكنش اجرا مي‌شود و يا هيچكدام از دستورات اجرا نمي‌شود . بهترين مثال همان مثال برداشت از يك حساب و واريز به حساب ديگر است .

همخواني (Consistency) : بدين مفهوم است كه در دستورات تراكنش بايد قوانين جامعيت رعايت شود و نتيجه‌ي هر تراكنش صحيح باشد .

مثال : تراكنش زير مربوط به 50000 تومان از يك حساب و واريز آن به حساب ديگر است . خاصيت همخواني در اين مثال به اين مفهوم است كه جمع مبلغ برداشتي و واريزي صفر باشد . يا به عبارت ديگر مجموع موجودي حسابهاي A و B بايد ثابت باشد . البته همانطور كه مشاهده مي‌شود اين كنترل بيشتر به عهده‌ي طراح تراكنش است تا DBMS .

T: Read(A)

A:=A-50000

Write(A)

Read(B)

B:=B+50000

Write(B)

انزوا (Isolation) : به اين معناست كه هر تراكنشي از تراكنشهاي ديگر مستقل است و اجراي تراكنش‌هاي مختلف نبايد روي هم اثري داشته باشد . به عبارت ديگر هر تراكنش طوري اجرا مي‌شود كه انگار بقيه‌ي تراكنش‌ها اصلاٌ وجود ندارند .

پايايي (Durability) : اين خاصيت باعث مي‌شود كه اگر تراكنش تا مرحله‌ي انجام يا Commit رسيد ،كاربر مطمئن باشد كه همه‌ي تغييرات اعمال شده و هيچ نقصاني مانند قطع برق يا مشكل سخت‌افزاري باعث از بين رفتن اطلاعات نخواهد شد . در واقع در اين مرحله تغييرات در جايي ثبت شده واگر پايان تراكنش با موفقيت اعلام نشود ، اطلاعات كاربر در جايي ثبت شده است .   

 منبع : مؤسسه‌ي آموزش عالي آزاد پارسه

نوشته شده توسط: مرضيه در چهارشنبه سی ام مرداد 1387|+|
منوي اصلی
آرشیو
آمار وبلاگ
» تعداد بازدیدها:
» مرورگر:
امکانات اضافي

© All Rights Reserved by mrz-it2.Blogfa.com ©