DBMS: درآمدی بر سیستم‌های مدیریت پایگاه‌داده

DBMS: درآمدی بر سیستم‌های مدیریت پایگاه‌داده

DataBase Management System (سیستم مدیریت پایگاه‌داده) یا به اختصار DBMS نرم‌افزاری برای مدیریت و پردازش داده‌های دیتابیس است. در واقع، DBMS‌ برای ذخیره‌سازی داده‌ها از یکی دیتا مُدل‌هایی رایج استفاده می‌کنند که برای کسب اطلاعات بیشتر در این زمینه، می‌توانید به مقالهٔ درآمدی بر مفهوم Database و انواع Data Model مراجعه نمایید. به طور کلی، از جملهٔ محبوب‌ترین سیستم‌های مدیریت پایگاه داده تجاری می‌توان به MySQL و Oracle اشاره کرد.

آشنایی با کاربردهای DBMS
به طوری کلی، یک DataBase Management System به دولوپرها اجازهٔ انجام کارهای زیر را می‌دهد: 

- ایجاد، تغییر و حذف قوانینی که نحوه‌ٔ سازمان‌دهی داده‌ها در دیتابیس را تعیین می‌کنند.
- ذخیره، بازیابی، اصلاح و حذف داده‌ها در دیتابیس.
- مدیریت کاربران، حفظ امنیت و یکپارچگی داده‌ها، نظارت بر کارایی دیتابیس، کنترل کانکارنسی و ریکاوری اطلاعاتی که در اثر کِرش (توقف عملکرد مطلوب سیستم به دلایل مختلف) کردن سیستم از بین می‌روند.

دلایل مهاجرت از File System به DBMS
در فایل‌سیستم‌ها، دیتا در قالب فایل‌هایی مدیریت می‌شدند که در هارددیسک ذخیره شده بودند به طوری که هر کاربر مطابق با نیاز خود می‌توانست فایل‌ها را ایجاد، اصلاح و حذف کند. به‌ عنوان مثال، یک سیستم مدیریت اطلاعات مربوط به دانشگاهی که مبتنی بر فایل‌سیستم است را در نظر بگیرید که در این سیستم دیتای مربوط به دانشجویان در بخش‌های مختلفی من‌جمله آموزش، ادارهٔ امور خوابگاه‌ها و حسابداری در دسترس است به طوری که برخی از این اطلاعات مانند شمارهٔ دانشجویی، نام، نام پدر، آدرس و شماره تلفن به طور مشترک در همهٔ بخش‌ها و برخی نیز مانند شماره خوابگاه دانشجو در یک بخش خاص (مثلاً ادارهٔ امور خوابگاه‌ها) در دسترس خواهند بود. حال با توجه به این سیستم باید موارد زیر را در نظر گرفت:

- افزونگی داده‌ها: در صورتی که داده‌های یکسانی در قسمت‌های مختلف یک سیستم اطلاعاتی ذخیره شوند، به‌ اصطلاح Redundancy (افزونگی) شکل گرفته است. به‌ عنوان مثال، یک دانشجو اگر بخواهد شمارهٔ تلفن خود را تغییر دهد، باید تمامی بخش‌هایی از سیستم اطلاعاتی دانشگاه مانند بخش آموزش، حسابداری و ادارهٔ امور خوابگاه‌ها که شامل شمارهٔ تلفن دانشجو می‌باشند را به‌روزرسانی کند که این امر در سیستم‌هایی با حجم اطلاعات زیاد باعث عملکرد نامطلوب سیستم و کاهش پرفورمنس می‌شود.

- ناسازگاری داده‌ها: اگر داده‌های یکسانی که در چندین قسمت از یک سیستم اطلاعاتی ذخیره شده‌اند دارای مقادیر یکسانی نباشند، به‌ اصطلاح Inconsistentcy (ناسازگاری) به وجود آمده است. به‌ عنوان مثال، اگر شمارهٔ تلفن یک دانشجو در بخش آموزش دانشگاه با شمارهٔ تلفن همان دانشجو در بخش حسابداری یکسان نباشد، اصطلاحاً ناسازگاری داده‌ها رخ داده است که این امر می‌تواند ناشی از اشتباه تایپی و یا عدم به‌روزرسانی داده‌های یکسانی باشد که در قسمت‌های مختلف یک سیستم اطلاعاتی وجود دارند.

- سختی در دسترسی به اطلاعات: در پروسهٔ استفاده از فایل‌سیستم، فرایند دسترسی به داده‌ها می‌تواند بسیار سخت و خسته‌کننده باشد. به‌ عنوان مثال، اگر کاربری بخواهد شمارهٔ خوابگاه یک دانشجو را از میان ۱۰۰۰۰ رکورد نامرتب جستجو کند، باید زمان بسیار زیادی را صرف انجام این کار کند.

- دسترسی‌های غیرمجاز: در روش فایل‌سیستم احتمال دسترسی‌های غیرمجاز افزایش پیدا می‌کند بدین صورت که اگر به یک دانشجو دسترسی به فایل حاوی نمراتش داده شود، آن دانشجو می‌تواند به صورتی غیرمجاز در آن فایل تغییراتی ایجاد کند!

- عدم دسترسی به اصطلاح کانکارنت به اطلاعات: دسترسی به داده‌های یکسان توسط چند کاربر در یک زمان را به‌ اصطلاح Concurrency (هَم‌روندی) می‌گویند و این در صورتی است در حین استفاده از فایل‌سیستم، در آنِ واحد فقط یک کاربر می‌تواند به داده‌ها دسترسی داشته باشد که این یک نقطه ضعف بزرگ محسوب می‌گردد.

عدم توانایی در بکاپ و ریکاوری اطلاعات: اگر یک فایل بنا به دلایل مختلفی از دست برود، فایل‌سیستم هیچ‌گونه سولوشنی برای Backup (پشتیبان) و Recovery (بازیابی) اطلاعات پیش روی شما نمی‌گذارد.

تمامی مواردی که در بالا ذکر شد و به نوعی از معایب استفاده از فایل‌سیستم‌ها بود، با استفاده از ‌DBMS به راحتی قابل‌حل هستند. در واقع، از مزایای استفاده از DBMS‌ در مقابل فایل‌سیستم‌ می‌توان به موارد زیر اشاره کرد:

- به حداقل رساندن افزونگی و حفظ سازگاری داده‌ها: DBMS‌ با استفاده از اَشکال مختلف Normalization (نرمال‌سازی) باعث به حداقل رساندن افزونگی (Redundancy) و حفظ سازگاری (Consistency) داده‌ها می‌شود بدین صورت که اطلاعات مثلاً دانشجویان در یک مکان در DBMS‌ نگهداری می‌شوند و توسط کاربران مختلف قابل‌دسترسی خواهند بودند.

- دسترسی آسان به داده‌ها: برخلاف فایل‌سیستم‌ که برای دسترسی به داده‌ها نیاز به محل دقیق فایل بود، در DBMS‌‌ کاربر فقط به نام رابطه نیاز دارد (در دیتا مُدل Relational یا رابطه‌ای منظور از نام رابطه، همان نام جدول است.)

- ایجاد چندین نمای مختلف از داده‌ها: در DBMS‌‌ می‌توان چندین به اصلاح View‌ (نَما) مختلف از داده‌ها ایجاد کرد و با آن نیاز کاربران مختلف را برطرف نمود (برای مثال، اطلاعات مربوط به حقوق اساتید می‌تواند از ویو دانشجویان پنهان ولی در ویو مدیران نمایش داده شود.)

- افزایش امنیت اطلاعات: فقط کاربرانی که مجاز هستند می‌توانند به داده‌های‌‌ DBMS‌‌ دسترسی پیدا کنند. همچنین لازم به ذکر است که برای امنیت بیشتر، داده‌ها در DBMS‌‌ می‌توانند Encrypt (رمزگذاری) شوند.

- دسترسی به داده‌ها به‌ صورت کانکارنت
نیاز به توضیح نیست که یکی از مزایای بسیار مهم سیستم‌های مدیریت پایگاه‌داده همچون 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 می‌دهد و این سیستم مدیریت پایگاه‌داده است که رکوردها را ایجاد و کنترل می‌‌کند و کاربر را از شر سروکله زدن با فایل‌ها خلاص می‌کند.