مروری بر بانکهای اطلاعاتی
یکی از مهمترین بخشهای هر برنامه کاربردی اطلاعاتی آن است که با چگونگی ذخیره و بازیابی اطلاعات سروکار دارد. در این فصل مروری بر مفهوم بانک اطلاعاتی و انواع آن خواهیم داشت.
تعریف بانک اطلاعاتی
بانک اطلاعاتی مجموعهای از دادههای پایدار است که توسط برنامههای کاربردی موجود در یک موسسه مورد استفاده قرار میگیرد. منظور از پایداری این است که نوع دادههای بانک اطلاعاتی با دادههای ناپایداری مثل دادههای ورودی دادههای خروجی دستورات کنترلی صفها بلوکهای کنترل نرمافزار نتایج موقت و به طور کلی تمام دادههایی که ماهیت آنها حالت گذرا دارد متفاوت است.
بانکهای اطلاعاتی از نظر فیزیکی فایلهایی هستند که در سیستمهای کامپیوتری برای ذخیره و بازیابی اطلاعات به کار میروند. برنامههای کاربردی مستقیماً نمیتوانند این فایلها را دستکاری کنند بلکه برای پردازش این فایلها فرمانهایی را به سیستمهای مدیریت بانک اطلاعاتی (DBMS) صادر میکنند. بنابراین سیستمهای مدیریت بانک اطلاعاتی واسط میان کاربران و بانکهای اطلاعاتیاند.
به این دلیل میگوییم دادههای بانک اطلاعاتی پایدار است که وقتی دادهها توسط سیستم مدیریت بانک اطلاعاتی برای ورود به بانک اطلاعاتی پذیرفته شدهاند فقط در صورتی میتوانند حذف شوند که درخواستی به این سیستم وارد شده و اجازه حذف به آن داده شود. یعنی با اثرات جانبی ناشی از اجرای برنامه حذف نخواهند شد.
توجه داشته باشید که منظور از موسسه در تعریف بانک اطلاعاتی هر سازمان اقتصادی، علمی ، فنی و غیره است. موسسه ممکن است یک واحد مستقل ، یا یک شرکت بزرگ باشد مانند:
- شرکت تولیدی - دانشگاه - اداره دولتی
- بیمارستان - بانک
هر موسسه دادههایی راجع به عملیات خود نگهداری میکند. این دادهها همان دادههای پایدار هستند.
سیستم بانک اطلاعاتی چیست؟
سیستم بانک اطلاعاتی ، سیستم کامپیوتری نگهداری دادههاست . بانک اطلاعاتی را میتوان بستری برای نگهداری دادهها در نظر گرفت. کاربران سیستم میتوانند عملیات گوناگونی را بر روی این فایلها انجام دهند:
افزودن فایلهای جدید و خالی به بانک اطلاعاتی
افزودن دادهها به فایلهای موجود
بازیابی دادهها از فایلهای موجود
تغییر دادههای فایلهای موجود
حذف دادهها از فایل موجود
حذف فایلهایی از بانک اطلاعاتی
به عبارت سادهتر، سیستم بانک اطلاعاتی یک سیستم کامپیوتری است که هدف آن ذخیره اطلاعات است و کاربران میتوانند اطلاعات آن را بازیابی یا به هنگامسازی کنند.
یک بانک اطلاعاتی ساده از چهار مولفه تشکیل شده است :
- دادهها - نرمافزار
- سخت افزار - کاربران
هر یک از این چهار مولفه را به طور مختصر شرح خواهیم داد:
دادهها
سیستمهای بانک اطلاعاتی در کامپیوترهای شخصی و کامپیوترهای بزرگ (یا سرور) به کار گرفته میشود. بدیهی است که قابلیتهایی که سیستم بانک اطلاعاتی ارائه میکند تا حد زیادی به کامپیوتری که این سیستم بر روی آن نصب است، بستگی دارد. سیستمها بر روی کامپیوترهای بزرگ معمولاً چند کاربره هستند، در حالی که سیستمها بر روی کامپیوترهای شخصی، تک کاربره میباشند به طور کلی، دادهها در بانک اطلاعاتی ، به خصوص در سیستمهای بزرگ، هم به صورت مجتمع و هم به صورت اشتراکی هستند. این دو جنبه، یعنی مجتمع و اشتراکی بودن دادهها در محیطهای بزرگ به عنوان امتیاز سیستمهای بانک اطلاعاتی محسوب میشود و در سیستمهای کوچک نیز ارزشمند است. هر کدام از این دو جنبه را به طور مختصر شرح میدهیم.
- مفهوم مجتمع بودن این است که بانک اطلاعاتی مجموعهای از فایلها است که بخشی از اطلاعات اضافی از آن حذف شدهاند.
- مفهوم مشترک بودناین است که دادههای موجود در بانک اطلاعاتی میتواند بین کابران مختلف به اشتراک گذاشته شود، یعنی هر یک از کاربران میتوانند از یک بخش از دادهها برای اهداف خاصی استفاده کنند.
کاربران مختلف میتوانند به یک بخش از دادهها دستیابی داشته باشند. این شیوه اشتراک و همزمانی از این واقعیت ناشی میشود که بانک اطلاعاتی مجتمع است.
سخت افزار
قطعات سخت افزاری سیستم شامل موارد زیر است :
- حافظههای جانبی ( معمولاً دیسکها) که برای ذخیره دادهها به کار میروند و دستگاههای ورودی ، خروجی ، (مثل درایوها) ، گردانندههای دستگاهها، کانالهای ورودی خروجی و ...
- پردازندههای سختافزار و حافظههای اصلی آنها که برای پشتیبانی از اجرای نرمافزار بانک اطلاعاتی به کار میروند.
نرمافزار
بین بانک اطلاعاتی فیزیکی (مثلاً دادههای ذخیره شده) و کاربران سیستم ، لایهای از نرمافزار وجود دارد که سیستم مدیریت بانک اطلاعاتی نام دارد. امکاناتی مثل حذف و اضافه فایلها، بازیابی دادهها از آنها و به هنگامسازی این فایلها از طریق سیستم مدیریت بانک اطلاعاتی ارائه میشود. یکی از کارهایی که سیستم مدیریت بانک اطلاعاتی انجام میدهد این است که کاربران را از مواجه شدن با جزئیات سختافزاری دور میکند.
کاربران
کاربران اطلاعاتی را میتوان به سه دسته تقسیم کرد:
- دسته اول ، برنامهنویسان کاربردی هستند که برنامههای کاربردی بانک اطلاعاتی را به زبانهای خاصی مینویسند. این برنامهها، درخواست مناسبی را به سیستم مدیریت بانک اطلاعاتی ارسال میکنند تا به بانک اطلاعاتی دستیابی داشته باشند.
- دسته دوم ، کاربران نهایی هستند که از طریق ایستگاههای کاری یا پایانه به سیستم دستیابی دارند. هر کاربر میتواند از طریق برنامههای کاربردی به بانک اطلاعاتی دستیابی داشته باشد.
دسته سوم : مدیر بانک اطلاعاتی است. وظیفه این دسته از کاربران ، مدیریت بر دادههای بانک اطلاعاتی است که مفهوم دادهها را درک میکنند و نیاز موسسه به دادهها را در سطح مدیریت عالی قرار میدهند.
مزایای استفاده از بانک اطلاعاتی
برای این که با مزایای استفاده از بانک اطلاعاتی آشنا شوید، باید بدانید که موسسات معمولاً دادههای خود را به دو شکل ذخیره میکنند:
سیستمهای فایل . در این سیستم ، هر یک از فایلهای مربوط به دادههای موجود در موسسه ، مستقل از دیگری مورد استفاده قرار میگیرد. موسسه برای بهرهبرداری از این سیستم ، به ازای هر فایل ، یک یا چند برنامه کاربردی مینویسد . این برنامههای کاربردی هر کدام مستقیماً به دادههای فایل دستیابی دارند.
در چنین سیستمی ، برقراری ارتباط بین فایلهای مختلف و به دست آوردن اطلاعات جدید دشوار است. علاوه بر این دادههای تکراری در فایلهای مختلف ذخیره میشوند.
سیستم بانک اطلاعاتی : در چنین سیستمی ، دادهها در یک بانک اطلاعاتی قرار دارند که با مفهوم آن در ابتدای بحث آشنا شدید. مزایای سیستم بانک اطلاعاتی عبارتند از:
- جلوگیری از اتلاف حافظه در ذخیره کردن دادهها.
- ایجاد اطمینان نسبت به گزارشهای به دست آمده.
- ساده بودن اخذ گزارشهای جدید.
- بالا بودن سرعت پردازش دادهها.
- استقلال دادهها از سیستم کاربردی.
- تمرکز در مدیریت دادهها.
انواع بانکهای اطلاعاتی
برای سازماندهی دادهها و روابط بین آنها راههای گوناگونی وجود دارد. سه الگوی اصلی ، تشکیل سه نوع بانک اطلاعاتی را میدهند.
بانک اطلاعاتی هرمی
در این الگو، اطلاعات به صورت درختی در اختیار کاربران قرار میگیرد. دادهها در بخشهایی به نام قطعه ذخیره میشوند. قطعه بالای نمودار ریشه نام دارد. ریشه به صورت رابطه پدر – فرزندی به قطعات زیرین وصل میشود. قطع پدر میتواند چندین فرزند داشته باشد، ولی هر فرزند فقط یک پدر دارد.
بانک اطلاعاتی شبکهای
این شکل ، حالت تغییریافته الگوی هرمی است. این دو الگو به آسانی قابل تبدیل به یکدیگر هستند. در الگوی هرمی میتوان یک عامل را به چند عامل پیوند داد، ولی در الگوی شبکهای میتوان چندین عامل را پیوند داد.
بانک اطلاعاتی رابطهای
در سیستم بانک اطلاعاتی رابطهای، هر یک از فایلهای بانک اطلاعاتی را یک جدول مینامند. به عبارت دیگر ، بانک اطلاعاتی مجموعهای از جدول هاست و هر جدول حاوی دادههای مرتبط به هم است. که در هر جدول هر ستون را یک فیلد و هر سطر را یک رکورد گویند. بنابراین ، هر رکورد بانک اطلاعاتی حاوی چند فیلد است که هر فیلد از نوع خاصی است.
نکته دیگری که در مورد جدولها قابل توجه است ، فیلد کلید اولیه است. این ، فیلد مشخصه هر رکورد است و در هیچ دو رکوردی از جدول یکسان نیست.
انواع رابطه
همانطور که از نام بانک اطلاعاتی رابطهای برمیآید. رابطه ، عنصر مهمی در این نوع بانک اطلاعاتی محسوب میشود. به عبارت دیگر، قدرت بانک اطلاعاتی رابطهای ، ناشی از رابطهای است که جدولهای بانک اطلاعاتی میتوانند با یکدیگر داشته باشند. برای این که جدولها با یکدیگر رابطه برقرار کنند، باید دارای فیلد کلید اصلی باشند، زیرا رابطه بر اساس این فیلد صورت میگیرد. جدولهای بانک اطلاعاتی به شکلهای مختلف میتوانند با یکدیگر رابطه داشته باشند که به شرح آنها خواهیم پرداخت.
رایطه یک به یک : در این نوع رابطه ، یک رکورد با یک رکورد از جدول دیگر ارتباط برقرار میکند.
رابطه یک به چند : این رابطه ، متداولترین رابطه در بانک اطلاعاتی است که در آن ، یک رکورد از جدولی با چند رکورد از جدول دیگر مطابقت میکند.
رابطه چند به چند : در این رابطه ، چند رکورد از یک جدول با چند رکورد از جدول دیگر تطبیق میکند. این نوع رابطه معمولاً در بانک اطلاعاتی رخ نمیدهد. ولی برای ایجاد چنین رابطهای ، باید جدول دیگری به نام جدول اتصال ، بین دو جدول دیگر قرار داد , تا رابطه چند به چند را به دو رابطه یک به چند تبدیل کند.
طراحی بانک اطلاعاتی
اطلاعات در سیستم بانک اطلاعاتی رابطهای بین چند جدول توزیع میشود تا ذخیرهسازی اطلاعات و بازیابی اطلاعات بهینه شود. جدولها با فیلدهای مشترکی ارتباط داده میشوند به طوری که اطلاعات میتوانند به شیوههای موثری استخراج و نمایش داده شوند. اگر بانک اطلاعاتی خوب طراحی شده باشد میتواند ابزار مهمی برای مدیریت بر اطلاعات شخصی یا تجاری باشد، ولی اگر طراحی آن خوب صورت نگیرد، ارزشی نخواهد داشت. هر چه وقت بیشتری در طراحی و تحلیل دادهها صورت گیرد، نتیجه بهتری به دست میآید.
وقتی طراحی کامل و مرور شد، به راحتی میتوان بانک اطلاعاتی را ایجاد کرد.
فرآیند طراحی ، با تحلیل کارهایی میشود که برای بانک اطلاعاتی مورد نیاز است. اول باید مشخص کنید که سیستم چه کاری را باید برای کاربر انجام دهد. با کاربران مصاحبه کنید تا به خواستههای آنها پی ببرید. توجه داشته باشید که فرآیند طراحی یک فرآیند تکراری است. وقتی کاربران میخواهند از سیستم جدید استفاده کنند، راجع به ویژگیهای آن فکر میکنند، مثل فرم ورود دادهها، تقاضاهای ویژه و فیلدهای محاسباتی.
از طرفی دیگر ، طراحی باید جایی خاتمه یابد و توسعه بانک اطلاعاتی شروع شود. در این صورت، خواستههای دیگر سیستم را میتوانید در نسخ بعدی سیستم منظور کنید. فرآیند طراحی بانک اطلاعاتی را میتوان در هشت مرحله انجام داد که هر مرحله هدف خاصی را دنبال میکند:
تعیین کنید که کاربران چه انتظاری از بانک اطلاعاتی دارند و چه دادههایی باید در خروجی ظاهر شوند.
توزیع دادهها را برنامهریزی کنید (چه دادههایی در چه جدولهایی قرار گیرند).
فیلدهای هر رکورد را در هر جدول مشخص کنید.
برای هر جدول یک فیلد منحصربه فرد تعریف کنید تا تضمین شود که هیچ دو رکوردی یکسان نیستند.
تعیین کنید که جدولها چگونه باید با یکدیگر ارتباط داشته باشند.
طراحی را با کاربران مرور کنید.
جدولها را ایجاد کرده دادهها را وارد کنید.
کارآیی بانک اطلاعاتی را تحلیل و بهینهسازی کنید.
مقایسه سه نوع بانک اطلاعاتی
همنطور که دیدید، سه نوع بانک اطلاعاتی را میتوان ایجاد کرد که عبارتند از هرمی ، شبکهای و رابطهای که اکنون به بررسی نقاط ضعف و قوت هر کدام میپردازیم. توانمندی اصل یالوهای هرمی و شبکهای در کارآیی آنها است. به عنوان مثال ، از الگوی هرمی میتوان در سیستم هواپیمایی استفاده کرد که میلیونها جا را ذخیره میکند.
عیب روشهای هرمی و شبکهای این است که همه راههای دستیبابی ، مسیرها و فهرستها باید از قبل مشخص باشد. پس از این که تعریف شدند به راحتی قابل تعریف نیستند. لذا، انعطافپذیری آنها بسیار کم است. نیاز به برنامهنویسی زیادی دارند، وقت گیر بوده نصب و نوسازی آنها دشوار است.
قدرت الگوی رابطهای، انعطافپذیری آن در پذیرش خواستههای جدید، ترکیب اطلاعات از منابع مختلف ، سهولت طراحی و نگهداری ، و افزودن اطلاعات بدون تاثثرگذاری در دادهها و برنامههای موجود است. عیب عمده آن ، کندی نسبی آن است ، زیرا باید حجم زیادی از دادهها را که بر روی دیسک ذخیره شدهاند بازیابی کند، رابطه بین آنها را تشخیص دهد و اطلاعات مناسب را در اختیار قرار دهد.
کاربردهای شبکه های کامپیوتری
قبل از پرداختن به جزئیات فنی ، بهتر است کمی درباره اینکه چرا مردم به شبکه های کامپیوتری اهمیت می دهند و چرا از آنها استفاده می کنند، صحبت کنیم، چرا که اگر کسی به شبکه اهمیت نمی داد اصلا شبکه ای ساخته نمی شد. ابتدا از کاربرد های سنتی شروع می کنیم و سپس به کاربردهای جدیدتر خواهیم پرداخت .
کاربرد های تجاری:
اکثر شرکت ها تعداد زیادی کامپیوتر برای کارهای مختلف دارند. شاید در ابتدا این کامپیوتر ها از یکدیگر جدا باشند، ولی در مرحله ای از کار برای یکپارچه کردن اطلاعات کل شرکت، مدیریت تصمیم می گیرد تا آنها را به هم متصل کند .
به بیان کلی تر، اشتراک منابع به ما اجازه می دهد تا برنامه ها، تجهیزات و به خصوص داده ها را صرفنظر از موقعیت فیزیکی افراد ومنابع در اختیار همه آنهایی که به این شبکه متصلند، قرار دهیم. ساده ترین مثال آن چاپگریست که برای تمام کارکنان یک دفتر به اشتراک گذاشته شده است .
پیداست که تک تک این افراد به یک چاپگر اختصاصی نیاز ندارند، و علاوه بر آن یک چاپگر شبکه اغلب ارزانتر، سریعتر و کم هزینه تر از تعداد زیادی چاپگرهای پراکنده است .
با این حال اشتراک اطلاعات بسیار مهمتر از اشتراک تجهیزات فیزیکی است. امروزه تمام شرکت های بزرگ و متوسط به شدت به اطلاعات کامپیوتری خود وابسته اند. بانکی که تمام کامپیوترهای آن از کار افتاده باشند، پنج دقیقه هم نمی تواند دوام بیاورد. حتی شرکت های کوچکی مانند آژانس های مسافرتی و دفاتر خدمات حقوقی نیز به شدت به اطلاعات کامپیوتری خود متکی هستند. در یک شرکت کوچک تمام کامپیوترها به احتمال زیاد در یک دفتر قرار دارند، در حالیکه کامپیوترهای یک شرکت بزرگ می تواند در یک یا چند پایگاه داده متمرکز باشد، و کارمندان شرکت بایستی بتوانند از راه دور به آنها دسترسی داشته باشند. در این مدل، اطلاعات در کامپیوترهای پر قدرتی به نام سرویس دهنده که اغلب در یک مرکز و تحت کنترل سرپرست سیستم قرار دارند نگهداری می شوند. کارمندان نیز که در اینجا به آنها مشتری گفته می شود از راه دور و از پای کامپیوترهای معمولی خود به اطلاعات دسترسی پیدا می کنند. اتصال کامپیوترهای مشتری و سرویس دهنده از طریق شبکه صورت می گیرد.
برای آرایش مدل مشتری سرویس دهنده گفته می شود، و در بسیاری از شبکه های کوچک و بزرگ کاربرد دارند چون مستقل از فاصله است. وب نیز بر مبنای همین مدل ساخته شده است، وقتی یک صفحه وب را باز می کنید، در واقع آنرا از سرویس دهنده وب دریافت کرده، و در کامپیوتر خود نمایش می دهید. در اکثر مواقع یک سرویس دهنده می تواند به تعداد زیادی مشتری سرویس بدهد .