پایگاه داده (Database) و سیستمهای مرتبط با آن به یک جز حیاتی در زندگی بشر تبدیل شدهاند. بسیاری از فعالیتهای روزمرهی ما با دیتابیس درگیر است از جمله اکثر کارهای بانکی، روال تهیه بلیط هواپیما و غیره که بخش مهمی از کارهای روزانه ما را تشکیل میدهند.
پایگاه داده انواع مختلفی دارد، به پایگاه دادههایی که فقط با دادههای عددی و متنی سروکار دارند در اصطلاح پایگاه داه سنتی یا Traditional گفته میشود؛ در حالیکه نوع دیگری از دیتابیسها مانند MMDB که پایگاه داده مختص دادههای چند رسانهای است و یا GIS که دیتابیس مختص نگهداری اطلاعات جغرافیایی است و… قابلیت ذخیرهسازی عکس، ویدئو، صدا، نقشه منطقه، لوکیشن و هر چیز دیگری را دارند. برای شناخت بهتر پایگاه داده بهتر است از نوع سنتی شروع کنید.
پایگاه داده چیست؟
تعریف کلی پایگاه داده این است که پایگاه داده مجموعهای از دادههای مرتبط است و به طور خاص، بانک اطلاعاتی یک سیستم الکترونیکی است که امکان دسترسی آسان، دستکاری و به روز رسانی دادهها را فراهم میکند. به عبارت دیگر، یک دیتابیس توسط یک سازمان به عنوان روشی برای ذخیره، مدیریت و بازیابی اطلاعات استفاده میشود. یک دیتابیس نماد مفاهیمی در دنیای واقعیت است، به همین خاطر به آن Mini-world یا دنیای کوچک نیز گفته میشود.
تشریح کلمهی پایگاه داده (Database)
Data یا داده، کلمهای است که به صورت جمع و مفرد به کار میرود اما در حقیقت یک کلمه جمع به معنی دادهها است، مفرد این کلمه Datum است، دیتا Fact یا حقایقی مانند: نام، آدرس، شماره تلفن و غیره است که میتواند ثبت شود. Base نیز به معنای پایه یا پایگاه است.
تعریف تخصصی دیتابیس
مجموعهای از دادههای پایدار به صورت مجتمع، فیزیکی و منطقی ذخیره شده که به هم مرتبط هستند و با حداقل افزونگی تحت کنترل مدیریت متمرکز مورد استفاده یک یا چند کاربر به صورت اشتراکی قرار میگیرند.
اصطلاحات تخصصی | |
تعریف مجتمع | مجتمع بودن یعنی مبتنی بریک ساختار یعنی کل دادههای محیط عملیاتی در یک ساختار مشخص به صورت یکجا ذخیره شده باشد. لازمهی هر تجمعی وجود یک ساختار است. |
تعریف افزونگی | افزونگی تکرار بیرویه دادههاست. اشکال آن افزایش مصرف حافظه، کاهش سرعت و به روز رسانی مشکلتر است. |
داده های پایدار | دادههای پایدار یا مانا به دادههایی که روی رسانهی ذخیرهسازی به صورت دائمی ذخیره میشوند و موقتی و گذرا نباشند گفته میشود. |
حال که با مفاهیم اصلی موجود در دیتابیسها آشنا شدیم، بد نیست نگاهی کوتاه به تاریخچه و نحوهی شکلگیری پایگاههای داده آشنا شویم.
تاریخچه پایگاه داده
دیتابیسهای اولیه در سالهای ۱۹۶۰-۱۹۸۰ معرفی شدند. این پایگاه دادهها معایبی همچون وجود دادههای مشابه زیاد (افزونگی)، عدم انعطاف پذیری در ایجاد پرس و جوها و همچنین عدم وجود سیستم مدیریت دیتابیس یا همان DBMS بود. در سال ۱۹۸۰ دیتابیسهای رابطهای معرفی شدند، این پایگاه دادهها از زبانهای پرسوجو (Query) سطح بالا که مختص همین کار طراحی شده بودند بهره میبردند. این Databaseها به مرور پیشرفت کردند تا به پایگاه دادههای پیچیده امروزی مبدل شدند.
سیستم مدیریت پایگاه داده یا DBMS چیست؟
DBMS مخفف Database Management System است، یک DBMS مجموعهای از برنامهها است که به کاربر امکان ایجاد، تغییر، مدیریت و دسترسی به پایگاه داده الکترونیکی را میدهد.
فواید استفاده از DBMS در پایگاه داده
استفاده از این سیستم امکان مدیریت دسترسیها، کنترل افزونگی و تکرار دادهها، بکاپگیری و ذخیرهی نسخهی پشتیبان، بازگردانی اطلاعات (Recovery)، استفادهی همزمان چندین کاربر از پایگاه داده و حفظ یکپارچگی سیستم را فراهم میکند. در یک جمله میتوان گفت که امنیت و صحت عملکرد پایگاه داده وابسته به DBMS است.
چه کسانی با پایگاه داده کار میکنند
افراد مختلفی در سطوح و دسترسیهای متفاوت به پایگاه داده دسترسی دارند، این افراد میتوانند به طور مستقیم یا غیر مستقیم با این سیستم در ارتباط هستند.
مدیر پایگاه داده
مدیر پایگاه داده (DBA) وظیفه نظارت و مدیریت دو منبع اصلی سیستم یعنی DB و DBMS را دارد. ادمین پایگاه داده وظیفه مدیریت دسترسی کاربران سطوح مختلف به دیتابیس، مانیتور کردن و نظارت لحظه به لحظه کارکرد پایگاه داده، تهیه و نصب نرم افزارها و سخت افزارهای مورد نیاز و تامین امنیت سیستم را بر عهده دارد.
طراحان پایگاه داده
طراح دیتابیس (Database Designers) وظیفهی طراحی دقیق بانک اطلاعاتی از جمله جداول، ایندکسها، نحوه ذخیرهسازی و نمایش دادهها، محدودیتها، محرکها و تمامی موارد مربوط به روش کار پایگاه داده که برای کار با دادهها (ذخیره، بازیابی و حذف) مورد نیاز است را بر عهده دارد.
تمام این اطلاعات در Data Model نگهداری میشود، در حقیقت طراحان پایگاه داده با نوشتن کد، طراحی و نگهداری از پایگاه دادهها و ایجاد فرمهای آنلاین، دادهها را جمع آوری، محافظت و تجزیه و تحلیل میکنند.
کاربران نهایی
کاربران نهایی (End Users) کسانی هستند که کارهایی ثبت کوئری یا درج و بهروزرسانی را در این سیستم بر عهده دارند، این کاربران در آخرین لایه از دیتابیس، با آن کار میکنند.
انواع سیستم ذخیره و بازیابی دادهها در پایگاه داده
ذخیره و بازیابی دادهها به دو صورت None-DBMS Approach یا رویکرد فایلینگ و DBMS Approach یا رویکرد پایگاه دادهای انجام میشود. رویکرد یا سیستم فایلینگ یک روش سنتی برای ذخیره دادهها است و رویکرد پایگاه دادهای یک سیستم کاربردی در دنیای امروز است. در ادامه به بررسی مزایا و معایب این دو رویکرد خواهیم پرداخت.
مزایای رویکرد پایگاه دادهای در مقابل معایب رویکرد فایلینگ
تصور کنید اداره امور دانشجویی در یک دانشگاه به اطلاعات دانشجویان نیاز داشته باشد، در رویکرد فایلینگ نام، نام خانوادگی و شماره دانشجویی و کلیه اطلاعات مربوط به دانشجویان در این بخش در فایلی ذخیره میشود. از طرفی بخش امور مالی نیز که برای محاسبه شهریه دانشجویان، وام و غیره به اطلاعاتی مثل نام، آدرس و بسیاری اطلاعات دیگر نیاز دارد که همین اطلاعات نیز در یک فایل مجزا در بخش امور مالی ذخیره میشود.
این امر موجب ذخیره دادههای تکراری خواهد شد ولی در طراحی پایگاه داده از این امر جلوگیری میشود. در این مثال متوجه میشوید که بدون حضور سیستم پایگاه دادهای بسیاری از اطلاعات به صورت تکراری در فایلهای مختلف ذخیره میشوند که هدر رفتن فضای حافظه را در پی خواهد داشت.به این مشکل در اصطلاح افزونگی داده گفته میشود.
برای به روز کردن یک سری اطلاعات باید چندین فایل مختلف ویرایش شود. مثال بالا را در نظر بگیرید. اگر دانشجویان ثبت نامی جدید به لیست اضافه شوند چه مشکلی پیش خواهد آمد؟ درست است هر دو فایل نیاز به به روز رسانی دارند! اگر همه واحدها لیستی اینچنینی داشته باشند چه؟ در طراحی پایگاه داده؛ اطلاعات جدید تنها یک بار درج یا ویرایش میشوند.
در سیستم فایلینگ ممکن است برای هر فایل یک برنامه کاربردی مخصوص به آن نیاز باشد، در نتیجه سیستمهای کاربردی پراکندهای خواهیم داشت. برای مثال یکی از کاربران از Word برای ذخیره سازی لیست استفاده کند و دیگری از Google Docs و این نیازمند بسترهای مختلفی برای دسترسی به دادهها است.
مثال لیست مشخصات دانشجویان در بخشهای مختلف دانشگاه را در نظر بگیرید. فرض کنید یکی از دانشجویان جدید انصراف دهد. در واحد امور مالی اسم و مشخصات دانشجو از لیست مربوط به این بخش حذف شود اما در واحد امور دانشجویی نام دانشجو هنوز در لیست مربوطه قرار داشته باشد. این دانشجو مشغول به تحصیل هست یا نه؟ چرا شهریهای او پرداخت نشده؟ چرا به دانشگاه مراجعه نمیکند؟ باید با او تماس گرفت؟ این یعنی خطر ناسازگاری داده!
هر واحد لیست مربوط به خود را دارد که در همان واحد و همان سیستم قرار دارد. اگر هم از طریق روشهایی به اشتراک گذاشته شود نمیتوان از آن استفاده بهینه داشت و باید اطلاعاتی از آن به فایل بخش مربوطه انتقال داده شود، اصطلاحا به این مشکل عدم امکان اشتراک داده، گفته میشود.
عدم امکان اعمال ضوابط امنیتی روی کل دادههای سازمان، نیز یکی دیگر از مشکلات سیستم فایلینگ است، شاید یک کارمند از بخش امور مالی به بخش امور دانشجویی دسترسی نداشته باشد اما اگر کارمندی در همان بخش به اشتباه فایل مشخصات را حذف کند چه اتفاقی خواهد افتاد؟
در کل میتوان گفت که معایب رویکرد فایلینگ در مجموعهها و دادههای بزرگ بسیار چشمگیر است، بنابراین رویکرد پایگاه دادهای جایگزین این روش شده است.
انواع معماری توزیع داده در پایگاه داده
پایگاههای داده بر اساس نیاز معماری متفاوتی دارند. اکثر شبکههای بزرگ توزیع شده هستند یعنی اطلاعات یک جا قرار ندارند و هرکدام نقش مدیر خود را دارند. (مانند اینترنت) بانکهای اطلاعاتی را میتوان در یک شبکه مورد استفاده قرار داد که خود دو نوع میباشد.
بانکهای اطلاعاتی با دادههای توزیع شده
در این سیستم خود مدیریت بانک اطلاعاتی به صورت توزیع شده در چند کامپیوتر جای دارد. یعنی پردازشها ممکن است در کامپیوترهای مختلف صورت گیرد و دادهها نیز در شبکه پخش میباشد. این نوع بانک در سیستم عاملهای توزیع شده مثل یونیکس UNIX و ویندوز NT قابل پیاده سازی است.
معماری سرویس دهنده و سرویس گیرنده برای دسترسی به داده در دیتابیس
در این نوع از معماری یک کامپیوتر به عنوان کامپیوتر اصلی است که هدایت کل شبکه و مدیریت بانک اطلاعاتی را بر عهده دارد و دادهها از طریق سیستم سرویس دهنده در دسترس هستند.
ساختار سیستم پایگاه داده ANSI/Sparc
برای درک بهتر پایگاه داده بعد از سالها بحث پیرامون اینکه ساختار بانک اطلاعاتی چیست، سرانجام کمیته ANSI/SPARS معماری ۳ لایهای را ارائه داد که بعدها یک لایه به آن افزودند که با عنوان معماری ۴ لایه شناخته شد. این معماری یک مدل نظری از بانک اطلاعاتی ست و به همین جهت قابل تطبیق روی انواع مدلهای بانک اطلاعاتی است.
بالاترین لایه (تصویر خارجی)
این دید مربوط به هر گروه از کاربران است و دیدهای مختلف کاربران را در بر میگیرد. یعنی هر کاربر اجازه دارد چه قسمتهایی از بانک اطلاعات را ببیند و چه کارهایی میتواند روی آن قسمتها انجام دهد. روال کار تمامی سیستمها برای حفظ امنیت به این گونه است که هر کاربر که نیاز به کار با بخشی از سیستم را دارد و فقط اجازه دستیابی به همان بخش از سیستم به او داده میشود.
تصویر ادراکی عام
فقط در مرحله طراحی بانک اطلاعاتی مطرح میشود. پس از طرح نهایی و کامل پایگاه داده و انتخاب یک مدل برای پیاده سازی آن این لایه به تصویر ادراکی تبدیل میشود. به عبارتی تصویر ادراکی عام فقط در مستندات وجود دارد و آن چه پیاده سازی میشود و مورد استفاده قرار میگیرد همان تصویر ادراکی خاص است. معروفترین مدلهایی که در تصویر ادراکی عام مقبولیت یافتهاند. UML ،ER ،EER هستند.
مدل تصویر ادراکی خاص
تصویر ادراکی خاص یا همان مدل منطقی است. یعنی اینکه دادهها به صورت منطقی چگونه کنار هم قرار میگیرند. مدلهای مرسوم جدول، درخت، گراف و مانند اینهاست. در سطح ادراکی ارتباط موجودیتها، امنیت و جامعیت دادهها مطرح میگردد. طراحی این لایه به عهده مدیر بانک میباشد. فقط مدیر بانک و برنامه نویس هستند که این لایه برای آنها قابل استفاده است.
تصویر فیزیکی
در لایه تصویر فیزیکی تمامی اطلاعات به کمک دستورات سیستم عامل در حافظه ذخیره می شود.
عوامل مهم و تاثیرگذار در پایگاه داده
از عوامل مهم و تاثیر گذار در پایگاه داده میتوان به پیشگیری از افزونگی، پرهیز از ناسازگاری، استفاده الگوریتمهایی برای افزایش امنیت، اشتراک گذاری راحت دادهها، حفظ جامعیت دادهها و ایجاد تعادل بین درخواستهای تداخلی اشاره کرد.
مهمترین نیاز پایگاه داده در انجام دستورالعملها و تراکنشها
تراکنشها و دستورالعملها در سیستم پایگاه دادهای باید خاصیت ACID داشته باشند. یعنی یکپارچگی (Atomicity)، سازگاری (Consistency)، انزوا (Isolation) و پایایی (Durability) را پوشش دهد. این مشخصات به انجام یک تراکنش بدون خطا و در صحت کامل کمک میکنند. در ادامه این چهار ویژگی را مورد بررسی قرار میدهیم.
یکپارچگی (Atomicity)
این خاصیت به همه یا هیچ موسوم است. منظور این است یا تمامی دستورالعملهای یک تراکنش در پایگاه داده اجرا میشود یا هیچکدام از آن ها، مثلا وقتی فردی پول از حساب خود برداشت و به حساب دیگری واریز میکند اگر در حین کار برق برود موجودی باید به حساب شخص اول برگردد.
سازگاری (Consistency)
هر تراکنش اگر به تنهایی اجرا شود باید پایگاه داده را از حالتی صحیح، به حالتی صحیح دیگر منتقل کند. این خاصیت میگوید که هر تراکنش باید تمام قوانین جامعیت را رعایت کند. مثلا در برنامه انتقال پول مبلغ برداشت شده با مبلغ واریز شده به حساب دیگر برابر باشد.
انزوا (Isolation)
یعنی اثر تراکنشهای هم روند روی یکدیگر چنان باشد که گویا هرکدام در انزوا انجام میشود (اثر مخرب روی هم نداشته باشند)
پایایی (Durability)
در این مرحله تراکنش اثرش ماندنی میشود و هرگز به طور تصادفی از بین نمیرود.
همانطور که تا اینجا متوجه شدهاید، دیتابیسها نقش بهسزایی در ذخیرهسازی دادههای ما ایفا میکنند، شما چه تجربهای در استفاده از دیتابیسها دارید؟ نظرات و دیدگاههای ارزشمند خود را با ما و سایر کاربران همیار آیتی به اشتراک بگذارید.