DataBase Management System (سیستم مدیریت پایگاه داده) یا به اختصار DBMS نرمافزاری برای مدیریت و پردازش دادههای یک اپلیکیشن است. در واقع، DBMS برای ذخیرهسازی دادهها از یکی از دیتا مُدلهای رایج استفاده میکند که برای کسب اطلاعات بیشتر در این زمینه میتوانید به آموزش پایگاه داده چیست؟ مراجعه نمایید (به طور کلی، از جملهٔ محبوبترین سیستمهای مدیریت پایگاه دادهٔ تجاری میتوان به MySQL و Oracle اشاره کرد.)
آشنایی با کاربردهای DBMS
به طوری کلی، یک سیستم مدیریت پایگاه داده (DBMS) به دولوپرها اجازهٔ انجام کارهای زیر را میدهد:
- ایجاد، تغییر و حذف قوانینی که نحوهٔ سازماندهی دادهها در دیتابیس را تعیین میکنند.
- ذخیره، بازیابی، اصلاح و حذف دادهها در دیتابیس.
- مدیریت کاربران، حفظ امنیت و یکپارچگی دادهها، نظارت بر کارایی دیتابیس، کنترل کانکارنسی و ریکاوری اطلاعاتی که در اثر کِرش (توقف عملکرد مطلوب سیستم به دلایل مختلف) کردن سیستم از بین میروند.
دلایل مهاجرت از File System به DBMS
در فایل سیستم، دیتا در قالب فایلهایی مدیریت میشدند که در هارددیسک ذخیره شده بودند به طوری که هر کاربر مطابق با نیاز خود میتوانست فایلها را ایجاد، اصلاح و حذف کند که در همین راستا توصیه میکنیم به مقالات زیر مراجعه نمایید:
- File System چیست؟
- آشنایی با تفاوت میان فایلسیستمهای NTFS ،FAT32 و exFAT
- نگاهی عمیقتر به فایل سیستم لینوکس
به عنوان مثال، یک سیستم مدیریت اطلاعات مربوط به دانشگاهی که مبتنی بر فایل سیستم است را در نظر بگیرید که در این سیستم دیتای مربوط به دانشجویان در بخشهای مختلفی منجمله آموزش، ادارهٔ امور خوابگاهها و حسابداری در دسترس است به طوری که برخی از این اطلاعات مانند شمارهٔ دانشجویی، نام، نام پدر، آدرس و شماره تلفن به طور مشترک در همهٔ بخشها و برخی نیز مانند شمارهٔ خوابگاه دانشجو در یک بخش خاص (مثلاً ادارهٔ امور خوابگاهها) در دسترس خواهند بود. حال با توجه به این سیستم باید موارد زیر را در نظر گرفت:
- افزونگی دادهها: در صورتی که دادههای یکسانی در قسمتهای مختلف یک سیستم اطلاعاتی ذخیره شوند، به اصطلاح Redundancy (افزونگی) شکل گرفته است. به عنوان مثال، یک دانشجو اگر بخواهد شمارهٔ تلفن خود را تغییر دهد، باید تمامی بخشهایی از سیستم اطلاعاتی دانشگاه مانند بخش آموزش، حسابداری و ادارهٔ امور خوابگاهها که شامل شمارهٔ تلفن دانشجو میباشند را بهروزرسانی کند که این امر در اپلیکیشنهایی با حجم اطلاعات زیاد باعث عملکرد نامطلوب سیستم و کاهش پرفورمنس میشود.
- ناسازگاری دادهها: اگر دادههای یکسانی که در چندین قسمت از یک فایل سیستم ذخیره شدهاند دارای مقادیر یکسانی نباشند، به اصطلاح Inconsistentcy (ناسازگاری) به وجود آمده است. به عنوان مثال، اگر شمارهٔ تلفن یک دانشجو در بخش آموزش دانشگاه با شمارهٔ تلفن همان دانشجو در بخش حسابداری یکسان نباشد، اصطلاحاً ناسازگاری دادهها رخ داده است که این امر میتواند ناشی از اشتباه تایپی و یا عدم بهروزرسانی دادههای یکسانی باشد که در قسمتهای مختلف یک فایل سیستم وجود دارند.
- سختی در دسترسی به اطلاعات: در پروسهٔ استفاده از فایل سیستم، فرایند دسترسی به دادهها میتواند بسیار دشوار و خستهکننده باشد. به عنوان مثال، اگر کاربری بخواهد شمارهٔ خوابگاه یک دانشجو را از میان ۱۰۰۰۰ رکورد نامرتب جستجو کند، باید زمان قابلتوجهی را صرف انجام این کار کند.
- دسترسیهای غیرمجاز: در فایل سیستم احتمال ایجاد دسترسیهای غیرمجاز افزایش پیدا میکند بدین صورت که اگر به یک دانشجو دسترسی به فایلی حاوی نمراتش داده شود، آن دانشجو ممکن است بتواند به صورتی غیرمجاز در آن فایل تغییراتی ایجاد کند و یا به چیزهایی که نباید دست یابد (البته راهکارهایی برای ممانعت از این موضوع وجود دارد اما آنها هم منجر به پیچیدهتر شدن اپلیکیشن میشوند.)
- عدم دسترسی به اصطلاح کانکارنت به اطلاعات: دسترسی به دادههای یکسان توسط چند کاربر در یک زمان را به اصطلاح Concurrency (هَمروندی) میگویند و این در صورتی است در حین استفاده از فایل سیستم، در آنِ واحد فقط یک کاربر میتواند به دادهها دسترسی داشته باشد که این یک نقطه ضعف بزرگ محسوب میگردد.
عدم توانایی در بکاپ و ریکاوری اطلاعات: اگر یک فایل بنا به دلایل مختلفی از دست برود، فایل سیستم هیچگونه سولوشنی برای Backup (پشتیبان) و Recovery (بازیابی) اطلاعات پیش روی شما نمیگذارد.
تمامی مواردی که در بالا ذکر شد و به نوعی از معایب استفاده از فایل سیستمها بود، با استفاده از DBMS به راحتی قابلحل هستند. در واقع، از مزایای استفاده از یک سیستم مدیریت پایگاه داده در مقابل فایل سیستم میتوان به موارد زیر اشاره کرد:
- به حداقل رساندن افزونگی و حفظ سازگاری دادهها: DBMS با استفاده از اَشکال مختلف Normalization (نرمالسازی) باعث به حداقل رساندن Redundancy (افزونگی) و حفظ Consistency (سازگاری) دادهها میشود بدین صورت که اطلاعات مثلاً دانشجویان در یک جدول خاص در DBMS نگهداری میشوند و توسط کاربران مختلف در دسترس خواهند بودند.
- دسترسی آسان به دادهها: بر خلاف فایل سیستم که برای دسترسی به دادهها نیاز به محل دقیق فایل بود، در DBMS کاربر فقط به نام رابطه نیاز دارد (در دیتا مُدل Relational یا «رابطهای» منظور از رابطه همان جدول است.)
- ایجاد چندین نمای مختلف از دادهها: در DBMS میتوان چندین به اصلاح View (نَما) مختلف از دادهها ایجاد کرد و با آن نیاز کاربران مختلف را برطرف نمود. برای مثال، اطلاعات مربوط به حقوق اساتید میتواند از ویو دانشجویان پنهان ولی در ویو مدیران نمایش داده شود.
- افزایش امنیت اطلاعات: فقط کاربرانی که مجاز هستند میتوانند به دادههای DBMS دسترسی پیدا کنند. همچنین نیاز به توضیح است که برای امنیت بیشتر، دادهها در یک سیستم مدیریت پایگاه داده میتوانند رمزگذاری شوند.
- دسترسی به دادهها به صورت کانکارنت: نیاز به توضیح نیست که یکی از مزایای بسیار مهم سیستمهای مدیریت پایگاه داده همچون MySQL امکان دستیابی کاربران به دیتای مختلف به صورت کانکارنت است.
- راهکارهایی جهت بکاپ و ریکاوری از اطلاعات: DBMS جهت جلوگیری از به اصطلاح Data Loss و Data Inconsistentcy، راهکارهای بهینهای برای بکاپگیری و بازیابی اطلاعات دارا است.
درآمدی بر معماری DBMS
DBMS دارای نوعی معماری حاوی سه لایه است بدین صورت که یک سیستم را به سطوح مرتبط ولی در عین حال مستقل از یکدیگر تقسیم میکند که این سطوح عبارتند از:
- Physical Level (سطح فیزیکی): در این سطح، اطلاعاتی در مورد محل قرارگیری آبجکتهای دیتابیس که در Data Store نگهداری میشوند وجود دارد که این اطلاعات از دید کاربران پنهان است.
- Conceptual Level (سطح ادراکی): در این سطح، اطلاعات در قالبهای مختلفی منجمله جداول نمایش داده میشوند. به عنوان مثال، دیتابیسی بهنام University
ممکن است شامل جداولی مانند Students
و Courses
باشد که کاربر میتواند آنها را مشاهده کند ولی نیازی نیست تا از نحوهٔ ذخیرهسازی جداول در DBMS اطلاعی داشته باشد.
- External Level (سطح خارجی): در این سطح، یک View (نَما) از دادهها برای جداولی که در Conceptual Level طراحی شدهاند مشخص میشود تا بدین وسیله نیاز طیف خاصی از کاربران برطرف شود. به عنوان مثال، دانشجویان میتوانند جزئیات مربوط به درسها را مشاهده کنند و یا بخش آموزش دانشگاه میتواند به جزئیات اطلاعات مربوط به دانشجویان دسترسی داشته باشد.
جمعبندی
به طور کلی، یک سیستم مدیریت پایگاه داده یا به اصطلاح DBMS یک رابط کاربری بین دولوپر و محل ذخیرهسازی دادهها بر روی سرور میباشد به طوری که وی با استفاده از ابزاری خاص که در دیتابیسهای رابطهای این ابزار خاص زبان SQL است دستوراتی مبنی بر ذخیره، بازیابی، اصلاح و حذف دادهها را به DBMS میدهد و این سیستم مدیریت پایگاه داده است که رکوردها را ایجاد و کنترل میکند و دولوپر را از شَر سروکله زدن با مسائل پیچیده خلاص میکند.