با رشد شبکه اینترنت و در دسترس قرار گرفتن آن در سطح جهانی، دادههای زیادی بهصورت روزانه تولید و روی هم انباشته میشود. بهطوریکه نیاز به ذخیرهسازی این حجم از دادهها از مقیاس «اگزابایت» عبور کرده و سطح «زِتا بایت» رسیده است. سیستم مدیریت پایگاه داده (DataBase Management System | DBMS)، بهعنوان ابزاری در این رابطه، مجموعهای از برنامهها را در بر میگیرد که امکان دسترسی به پایگاه داده و امکاناتی از قبیل دستکاری دادهها، گزارشگیری، ارائه دادهها و سایر موارد را برای کاربران خود فراهم میکنند. در این مطلب از مجله تم آف، سعی شده است تا به تشریح پاسخِ این پرسش که «DBMS چیست»، تا حد قابل قبول و بهطور جامع پرداخته شود.
DBMS چیست ؟
قبل از اینکه به تعریف و چیستی DBMS بپردازیم، لازم است تا مروری بر «پایگاه داده» (Database) داشته باشیم. به زبان ساده، میتوانیم بگوییم که «پایگاه داده» محفظهای بزرگ است که دادهها در درون آن و معمولاً در قالبی ساختاریافته ذخیره میشوند.
پایگاه داده، مجموعهای سازمان یافته از دادههایی است که میتوان آنها را اصلاح، بازیابی یا بهروزرسانی کرد. دادهها، DBMS و برنامههای کاربردی مرتبط با آنها، با همدیگر، «مفهومِ پایگاه داده» را تشکیل میدهند. در پایگاه دادههای سنتی، دادهها در قالب سطرها و ستونها (یعنی جداول) ذخیره میشوند. هر اپلیکیشن یا وبسایتی که نیاز به ثبت نام از ما دارد، یا اینکه اطلاعاتی را از کاربر، دریافت و نگهداری میکند، در حقیقت، در حال استفاده از پایگاه داده است. میتوان گفت که بدون پایگاههای داده، اینترنتی نیز وجود نخواهد داشت.
بهعنوان مثال، یک دانشکده باید اطلاعات مربوط به دانشجویان خود، از جمله شماره دانشجویی، نام، سن، گروهِ خونی و موارد این چنینی را نگهداری کند. این دانشکده، همچنین باید جزئیات مربوط به اساتید و زیرساختها را نیز حفظ کند. جزئیاتی که در درون دانشکده وجود دارد را میتوان در پایگاه دادهای به نام «College» ذخیره کرد، یا اگر این اطلاعات، فقط مربوط به دانشجویان باشد، میتوان آن را «Students» نامید و تمام این جزئیات را در قالبی ساختار یافته، مانند جداول و بهصورت ساسله مراتبی ذخیره کرد.
با توجه به مواردی که بیان شد، سیستم مدیریت پایگاه داده (DBMS)، نرمافزاری کاربردی است که برای ایجاد (Create)، دسترسی (Access)، نگهداری (Maintain) و مدیریت (Manage) پایگاههای داده استفاده میشود. ما میتوانیم آن را مانند هر برنامه دیگری روی سیستم نصب کنیم و با استفاده از زبانی مانند «SQL»، هر نوع عملیات ممکن، که مایل باشیم را روی پایگاههای داده انجام دهیم. «DBMS» معمولاً، دادههای دریافتی را از برنامه کاربردی یا از کاربر (که به صورت دستی آن را وارد میکند)، دریافت میکند.
بدون توجه به اینکه DBMS بزرگ است یا کوچک، با کمک آن میتوان دادهها را ذخیره و بازیابی کرد. همچنین میتوانیم هر زمانی که بخواهیم، تغییراتی را روی آن اِعمال کنیم. برخی از دستورات DBMS، از پیش تعریف شدهاند و از آنها میتوان برای «دستکاری» (Manipulate) پایگاه داده استفاده کرد. این دستورات همچنین رابطی بین پایگاه داده و کاربران نهایی، برای برقراری ارتباط، محسوب میشوند.
اصطلاح «DBMS»، مخفف «سیستم مدیریت پایگاه داده» است که آن را میتوانیم بهصورت «پایگاه داده» بهعلاوه «سیستم مدیریتی» تجزیه کنیم. در اینصورت «پایگاه داده»، بیانگر مجموعهای از دادهها است و «سیستم مدیریتی»، مجموعهای از برنامهها برای ذخیره و بازیابی آن دادهها محسوب میشود. بر این اساس میتوانیم سیستم مدیریت پایگاه داده را اینگونه تعریف کنیم. «DBMS، مجموعهای از دادههای مرتبط (Inter-Related) و مجموعهای از برنامهها برای ذخیره و دسترسی آسان و مؤثر به آن دادهها است.
نمونه های سیستم مدیریت پایگاه داده چیست ؟
در ادامه، برخی از نمونههای رایج سیستمهای مدیریت پایگاه داده را فهرست کردهایم.
- اوراکل (Oracle)
- مای اِس کیو اِل (MySQL)
- اِس کیو اِل سرور (SQL Server)
- مونگو دیبی (MongoDB)
- و غیره
سیستم مدیریت پایگاه داده اوراکل چیست ؟
«اوراکل» (Oracle)، سیستم مدیریت پایگاه داده رابطهای است که میتواند عمل ذخیرهسازی را هم بهصورت «در محل» (on-site) و هم در فضای «ابر» انجام دهد.
برخی از مزایای سیستم مدیریت پایگاه داده اوراکل در ادامه، فهرست شده است.
- کاهش هزینههای عملیاتی
- بهکارگیری تنها یک پایگاه داده برای همه انواع دادهها
- ارائه محیط ابری ترکیبیِ (هایبریدی) امن
- ارائه «کنترلهای کاربر» (User Controls) و «مدیریت هویت» بهتر
- پشتیبانگیری و بازیابی سریع
- پشتیبانی از پایگاههای داده متعدد
- مقیاسپذیری مناسب
- دارای فناوری «Flashback»
سیستم مدیریت پایگاه داده مای اِس کیو اِل چیست ؟
«MySQL»، سیستم مدیریت پایگاه داده رابطهای محسوب میشود که بر اساس «زبان پرسوجوی ساختیافته» یا SQL، که زبانی محبوب برای دسترسی و مدیریت رکوردهای موجود در پایگاه داده است، کار میکند. «MySQL»، اوپن سورس، آزاد، و تحت مجوز گنو است. این سیستم توسط شرکت اوراکل پشتیبانی میشودو بهوسیله پلتفرمهایی مانند یوتیوب، توییتر و فیسبوک مورد استفاده قرار گرفته است. MySQL، اغلب با سیستمهای مدیریت محتوای (CMS) اوپن سورس بهکار میرود.
در ادامه، برخی از مزایای استفاده از این سیستم مدیریت پایگاه داده را با هم مرور خواهیم کرد.
- محافظت از دادهها
- مقیاسپذیری در صورت لزوم
- بهرهوری بالا
- کنترل عالی Workflow
- کمتر بودن هزینه کلی مالکیت
سیستم مدیریت پایگاه داده اِس کیو اِل سرور چیست ؟
«SQL Server» هم بهعنوان سیستم مدیریت پایگاه داده رابطهای، بهوسیله مایکروسافت توسعه یافته است. این سیستم برا اساس زبان «SQL» عمل میکند، زبان پرسوجویی که به کاربران در پرسوجوی دادهها و مدیریت پایگاه داده کمک میکند.
سیستم مدیریت پایگاه داده مونگو دیبی چیست ؟
MongoDB، پایگاه دادهای «No SQL»، اوپن سورس، چند پلتفرمی و «سند محور» (Document-Oriented) است که به زبان C++ نوشته شده است.
موارد استفاده از DBMS چیست ؟
از سیستمهای مدیریت پایگاه داده، میتوان در موارد مختلفی از جمله دانشگاهها، فروشگاهها، حوزههای مالی، بانکداری، خطوط هوایی (ایرلاینها)، مدیریت منابع انسانی و ارتباطات از راه دور، اشاره کرد. در جدولی که در ادامه آمده است، توضیحات بیشتری در این مورد بیان شده است.
حوزه | کاربرد |
دانشگاهها | اطلاعات دانشجویی، کلاسها، نمرات و غیره. |
حوزه فروش و معاملات | اطلاعات مشتری، آمار فروش و غیره. |
سرمایهگذاری | اطلاعات سهام، فروش، اوراق قرضه و غیره |
بانکداری | اطلاعاتِ مشتری، حسابها، فعالیتها، سپردهها، وامها و غیره |
ساخت و تولید | اطلاعات تولید، تامینکنندگان، موجودی کالاها و غیره |
خطوط هوایی | اطلاعات مشتری، زمانبندیها، اطلاعات مربوط به رزرو و غیره. |
مدیریت منابع انسانی | اطلاعات کارکنان، حقوق و دستمزد، کسورات، چکهای حقوق و غیره |
مخابرات | سوابق تماس، صورتحسابها، میزان کارکرد و غیره |
مزایای استفاده DBMS چیست ؟
برخی از مزایای استفاده از DBMS را در ادامه، بیان کردیم.
- اَشکال متنوعی از دادهها را میتوان در «Database» ذخیره کرد. همچنین بازیابی دادهها نیز با روشهای متعددی که در «زبان پرسوجوی ساخت یافته» (Structured Query Language) وجود دارد، قابل انجام است.
- با توجه به اینکه بیشترِ پایگاههای داده معمولاً ماهیتی «متمرکز» (Centralized) دارند، با سرعت زیادی قابل دسترسیاند و مدیریت آنها کار پیچیدهای نیست.
- میتوان به کاربران خاص،دسترسیهای گوناگونی داد یعنی کاربران مجاز یتوانند با توجه به جایگاه خود در سازمان، به دادههای مشخصی دسترسی داشته باشند، یا اینکه دادهها را ببیند و به اشتراک بگذارند. این امر، امنیت دادهها را تضمین میکند.
- «DBMS» به کاربران کمک میکند تا با یکپارچه نمودن زبانهای برنامهنویسی (مانند C++، Python و PHP و غیره) با وب اپلیکیشن یا برنامههای شخص ثالث ارتباط برقرار کنند.
- تقریباً هر نرمافزار DBMS، سیستمی به منظور بازیابی (Recovery) خودکار بههمراه دارد. با استفاده از این راهکار، از غیرِ قابلِ دسترس شدنِ دادهها در مواقع سربار (Overload)، جلوگیری میشود. DBMS همچنین، حفاظت از داده و حفظ یکپارچگی آن را با حداقل «افزونگی» (Redundancy) و «دوگانگی» (Duplicity)، فراهم میکند.
مزیتهای بهکارگیری سیستمهای مدیریت پایگاه داده را همچنین میتوان بهصورتی که در ادامه آمده است، بیان کرد.
- بهبود یکپارچگی دادهها: DBMS، یکپارچگی در پایگاه داده را بهوسیله اعتبارسنجی و اِعمال قوانینی در رابطه با نحوه ورود و ذخیره دادهها، تضمین میکند. بهعنوان مثال، DBMS ممکن است خطاهایی از جمله ورودیهای تکراری یا عدم تطابق «نوع داده» را بررسی کند.
- بهبود کنترل دسترسی و امنیت بیشتر داده: DBMS، از دادهها در برابر دسترسی غیرمجاز، دستکاری و سرقت، محافظت میکند. همچنین با توجه به نقش کاربران در سازمان، سطوح دسترسی مختلفی را برای آنها فراهم میکند.
- پشتیبانگیری و بازیابی: DBMS، راه سادهای را برای پشتیبانگیری و بازیابی پایگاه داده، در صورت وقوع خرابی یا از دست دادن آن فراهم میکند. یعنی به ما اطمینان میدهد که هیچ دادهای هنگام نقص سیستم، بهطور دائمی از دست نمیرود.
- مقیاسپذیری: DBMS-ها به گونهای طراحی شدهاند که از رویارویی با حجم زیاد دادهها و تعداد کاربرانی که به مرور بیشتر میشوند، دچار مشکل نشوند. این باعث میشود تا سازمانها بتوانند از مقیاس کوچکتر شروع و در طول زمان آن را افزایش دهند و مجبور نباشند هر دفعه که به اندازه معینی میرسند، زیرساختهای خود را تغییر یا ارتقا دهند.
معایب DBMS چیست ؟
در ادامه، برخی از معیب مربوط به DBMS فهرست شدهاند.
- راهاندازی و «نگهداری» (Maintain) سیستمهای مدیریت پایگاه داده، گاهی اوقات پیچیدگیهایی به دنبال دارد.
- هزینههای مربوط به سختافزار و برنامههای کاربردی DBMS، نسبتاً زیاد است و ممکن است فشارهای مالی زیادی را به سازمانها تحمیل کند.
- برخی از سازمانها، اطلاعاتِ خود را در پایگاه دادهای مشترک نگهداری میکنند.در صورت وقوع مشکلات الکتریکی یا خراب شدن رسانههای ذخیرهسازی (مانند هارد دیسکها)، این اطلاعات ممکن است از بین بروند. در چنین موقعیتهایی، داشتن نسخه پشتیبان از سیستم، راهکار مناسبی است اما هزینههای مربوطه سازمان، در این رابطه را افزایش میدهد.
- بعضی از سیستمهای DBMS، برای اجرای پرسوجوهای پیچیده مناسب نیستند، زیرا باعث کند شدن سایر فرآیندهای در حال اجرا، خواهند شد.
چه زمانی از DBMS استفاده نمی شود؟
با وجود معایبی که در مورد سیستمهای DBMS بیان کردیم، این نوع سیستمها، هنوز هم برای ما مفید هستند.
از آنجاییکه ایجاد زیرساختهای مربوط به DBMS، هزینه قابل توجهی به دنبال دارد، بنابراین، برای پروژههای سازمانی کوچک، که سازمانها توانایی تحمل هزینههای سختافزاری و نرمافزاری و آموزشی را ندارند، احتمالاً گزینه مناسبی نیست. اما این مشکل، تنها زمانی است که بخواهیم سرورهای پایگاه داده خود را راهاندازی کنیم. در غیر اینصورت پایگاه دادههای ابری نسبتاً ارزان و ارزشمندی وجود دارند که علاوهبر مقرون بهصرفه بودن بهراحتی میتوانند توسط افراد و شرکتها بهکار برده شوند.
عملیات موجود در DBMS چیست ؟
سیستم مدیریت پایگاه داده، عملیاتی مانند تعریفِ داده، اصلاح یا تغییر دادهها، بازیابی دادهها، مدیریت کاربران را برای کاربران مجاز فراهم میکند که در ادامه هر کدام را توضیح میدهیم.
- تعریف داده (Data Definition)، شامل مواردی مانند ساخت جداول، ایجاد طرحوارهها (Schema) مربوط به جدول، حذف تعریفِ جدول و غیره را شامل میشود. این مفهوم، اساساً طرحی از جدول و ارتباط آن با سایر جداول در پایگاه داده را بیان و دادهها را بهگونهای مناسب، سازماندهی میکند تا به این ترتیب، وابستگیهای داده به هم در دنیای واقعی را به همان شکل، در یک پایگاه داده منعکس کند.
- DBMS، امکان درج (Insert)، بهروزسانی (Update) و حذف (Delete) داده از جداول را برای کاربران فراهم میکند. هر سطر موجود در این جداول «رکوردی» از دادهها را نشان میدهد، در حالیکه ستونهای جدول، ویژگیهای مربوط به این رکوردها را بیان میکنند. در DBMS، این امکان را داریم تا تعداد زیادی از رکوردها را تنها یک کلیک، بهروز کنیم.
- DBMS، امکان «واکشی» (Fetch) دادهها از پایگاه داده را برای کاربران خود فراهم میکند. فرایند جستجو و «بازیابی» (Retrieval) داده در سیستم مدیریت پایگاه داده، با سرعت بالایی انجام میشود و اندازه پایگاه داده بر روی این فرایند تاثیری ندارد. برخلاف سیستم فایل، که اندازهی دادهها میتواند کارایی عملیات جستجو را بهشدت تحت تاثیر قرار دهد.
- DBMS، امکان مدیریت کاربر، مانند سازماندهی کاربران در «گروههای مختلف»، که هر گروه، «سطوح دسترسی متفاوتی» دارد را فراهم میکند. اعطای دسترسی کاربران به جداول خاصی در پایگاه داده یا لغو دسترسی از برخی کاربران، از جمله موارد دیگری هستند که در بحث مدیریت کاربران میتوان بهان اشاره کرد. این ویژگی، به مدیر پایگاه داده (DBA) اجازه میدهد تا دسترسی به پایگاه داده را به طور مؤثری مدیریت کند و مانع از دسترسیهای غیرمجاز به پایگاه داده شود.
چه مواردی در DBMS نیازمند بهینه سازی هستند؟
سیستمهای پایگاه داده، بهطور کلی برای کار با حجم زیادی از دادهها توسعه یافتهاند. هنگامیکه با حجم عظیمی از دادهها سروکار داریم، ۲ مورد وجود دارد که نیازمند «بهینهسازی» (Optimization) است. این ۲ مورد، «ذخیرهسازی دادهها» (Storage of data) و «بازیابی دادهها» (Retrieval of data) هستند که در ادامه، توضیحات بیشتری را در این باره بیان کردهایم.
ذخیره سازی در DBMS چیست ؟
با توجه به اصول سیستمهای پایگاه داده، حذف دادههای اضافی (Redundant) یا تکراری (Duplicate) قبل از ذخیرهسازی، باعث میشود تا فضای بسیار کمتری برای دادهها اِشغال شود. در ادامه، مثالی ساده را در این باره بیان میکنیم که به درک بهتر موضوع کمک میکند.
در سیستم بانکی، یکی از مشتریان ۲ حساب دارد (یکی برای پساندازی و دیگری برای حقوق). اگر بانک، دادههای مربوط به این ۲ نوع حساب را در مکانهای جداگانهای ذخیره کند، اطلاعات این مشتری از جمله نام، آدرس و غیره، در دو مکان مختلف (۲ بار) ذخیره میشود. مشخص است که در این حالت به علت وقوع (افزونگی و تکراری بودن دادهها)، فضای ذخیرهسازی هدر رفته است. برای اینکه دادهها به روش بهینهتری سازماندهی شوند، بهتر است به جای ذخیره اطلاعات تکراری مشتری (مانند نام و آدرس و غیره) بهطور جداگانه برای هر حساب، این اطلاعات را در یکجا ذخیره کنیم و ۲ حساب را به نحوی با آن مرتبط کنیم. بهطور خلاصه، این کاری است که در سیستم مدیریت پایگاه داده انجام میشود.
بازیابی سریع داده ها در DBMS چیست ؟
علاوهبر ذخیرهسازی دادهها به شیوهای بهینه و اصولی، بازیابی سریع دادهها، زمانی که به آنها نیاز داریم، اهمیت ویژهای دارد. سیستمهای پایگاه داده این اطمینان را به ما میدهند که دادهها در سریعترین زمان ممکن بازیابی شوند.
هدف DBMS چیست ؟
«مدیریت دادهها»، مهمترین هدفی است که سیستمهای پایگاه داده به دنبال آن هستند. براینمونه، دانشگاهی را تصور کنید که دادههای مربوط به دانشجویان، مدرسین، دورههای آموزشی، کتابها و غیره را نگهداری میکند. برای مدیریت این دادهها، ابتدا باید آنها را در مکانی ذخیره کنیم. بهطوریکه دادههای جدید را بتوان به آن اضافه و دادههای بلااستفاده را از آن حذف کرد. همچنین، امکان بهروزرسانی دادههای قدیمی نیز وجود داشته باشد و بتوان دادهها را، از آن بازیابی کرد. برای انجام اقدامات گفته شده، روی دادهها، به سیستم مدیریت پایگاه داده نیاز داریم تا اطلاعات را بهگونهای ذخیره کند که تمامی این اقدامات، بهطرز بهینهای، روی آن قابل انجام باشد.
اجزای DBMS چیست ؟
چندین مولفه اصلی، ازجمله سختافزار، نرمافزار، رویهها، دادهها، کاربران و زبان دسترسی پایگاه داده، در سیستمهای مدیریت پایگاه داده وجود دارند که برای استفاده مؤثر و مدیریت دادهها در کنار هم کار میکنند. عناوین این مؤلفهها و توضیحات مربوطه، در ادامه آمده است که با هم مرور میکنیم.
مؤلفه سخت افزار در DBMS چیست ؟
منظور از سختافزار در DBMS، همان دستگاههای فیزیکی، از جمله کامپیوتر است که برای ذخیره دادهها مورد استفاده قرار میگیرند. در ادامه، چند نمونه از سختافزارهای مورد استفاده در DBMS، بیان شدهاند.
- کامپیوتر
- هارد دیسکها
- دستگاههای ورودی/خروجی
مؤلفه نرم افزار در DBMS چیست ؟
نرمافزار DBMS در واقع، برنامهای کامپیوتری است که به منظور مدیریت پایگاه داده، مورد استفاده قرار میگیرد. این نرمافزارها میتوانند شامل خود DBMS یا نرمافزارهای پشتیبان، مانند درایورها یا همچنین ابزارهای کمکی باشند.
به بیان ساده، نرمافزار، لایهای است که بهوسیله سختافزار پشتیبانی میشود و با ایجاد رابطی بصری برای کاربر، امکان ارتباط و تعامل با پایگاه داده و همچنین کنترل آن را نیز مهیا میکند.
رویه در DBMS چیست ؟
رویههای DBMS، دستورالعملهایی هستند که نحوه راهاندازی پایگاه داده و استفاده از آن را مشخص میکنند. این رویهها همچنین، نحوه دسترسی، اصلاح و بایگانی دادهها را نیز کنترل میکنند. به بیان ساده، «رویهها»، دستورالعملهایی در مورد نحوه استفاده از DBMS هستند.
مؤلفه داده در DBMS چیست ؟
دادههای تولید شده بهوسیله سازمانها و کسب و کارها، اساسیترین مؤلفه در DBMS بهشمار میروند. دادهها در حقیقت، اطلاعاتی هستند که در پایگاه داده ذخیره و نگهداری میشوند.
«متا دِیتا» یا «فراداده» (Metadata)، که اطلاعات مربوط به دادهها را بیان میکند، نیز در DBMS نگهداری میشود. «فراداده» با فراهم آوردن اطلاعاتی زمینهای در مورد دادهها، به حصول اطمینان از نگهداری، ایمنی و دسترسی صحیح آنها کمک میکند. به عنوان مثال، «فراداده» میتواند شامل اطلاعاتی مانند «نوعِ» داده، «اندازه» و «زمان ایجاد» آن باشد.
زبان دسترسی پایگاه داده در DBMS چیست ؟
برای دسترسی به پایگاه داده، کاربران میبایست از زبان پرسوجوی خاصی استفاده کنند که توسط DBMS قابل درک باشد. این زبانها را بهطور کلی میتوان به ۴ دسته تقسیم کرد که در ادامه، آورده شدهاند.
- زبان تعریف داده (Data definition language | DDL)
- زبان دستکاری دادهها (Data manipulation language | DML)
- زبان کنترل دادهها (Data control language | DCL)
- زبان کنترل تراکنش (Transaction control language | TCL)
این زبانها در جستجو، «واکشی» (Fetching)، بهروزرسانی و افزودن دادهها به پایگاه داده نقشی اساسی دارند. بدون استفاده از این زبانها، نمیتوان بهراحتی و از طریق رابطها به پایگاه داده دسترسی داشت. درادامه، برخی از زبانهای رایج پرسوجو را فهرست کردهایم.
- زبان جستجوی ساختاریافته (Structured Query Language | SQL)
- زبان پرسوجوی شی (Object Query Language | OQL)
- اِکسکوئری یا «XQuery»
- گرافکیواِل یا «GraphQL»
مؤلفه کاربران در DBMS چیست ؟
منظور از «کاربران» (Users)، افرادی هستند که به پایگاه داده دسترسی دارند. بسته به «سطحی» (سِمَت یا جایگاه) که کاربران در سازمان دارند، ممکن است به بخشهای مختلفی از پایگاه داده دسترسی داشته باشند و همچنین، از ابزارهای نرمافزاری گوناگونی برای تعامل با دادهها استفاده کنند. در ادامه، چند نمونه از «کاربران» معرفی کردهایم.
- «مدیران پایگاه داده» (Database Administrators | DBAs)، که وظیفه ایجاد پایگاه داده و همچنین تعیین «مجوزهای دسترسی» (Access Permissions) برای کاربرانی که از پایگاه داده استفاده میکنند را بر عهده دارند.
- «تحلیلگران داده» (Data Analysts)، که با تجزیه و تحلیل داده و بینشهای بهدست آمده از آن، کسب و کارها را برای اتخاد تصمیمها یاری میکنند.
- «توسعهدهندگان نرمافزار» (Software Developers) که برنامههایی برای ارتباط و تعامل با پایگاه داده میسازند.
انواع DBMS کدام اند؟
در این قسمت، عناوین مربوط به انواع DBMS را فهرست کردهایم. در ادامه این مطلب از مجله تم آف، هر کدام از انواع DBMS را مورد بررسی قرار میدهیم.
- سیستم مدیریت پایگاه داده رابطهای
- سیستم مدیریت پایگاه داده NoSQL
- سیستم مدیریت پایگاه داده شی گرا
- سیستم مدیریت پایگاه داده سلسله مراتبی
- سیستم مدیریت پایگاه داده شبکهای
سیستم مدیریت پایگاه داده شبکهای در DBMS چیست ؟
یکی از انواع محبوب DBMS، پایگاه داده شبکهای است. در DBMS شبکهای، رکوردهای دادهای، بهصورت گرههایی در شبکه، نشان داده میشوند و هر گره میتواند چندین پیوند به گرههای دیگر داشته باشد. این پیوندها نیز بیانگر روابطی هستند که بین رکوردهای دادهای وجود دارد.
این مدل، به برنامهها امکان جابهجا شدن بین سطوح مختلف رکوردها را میدهد و از روابط پیچیدهای که دادهها میتوانند داشته باشند، پشتیبانی میکند. قابلیتی که مدل شبکهای در مدیریت روابط «چند به چند» (Many-to-Many) ارائه میدهد، نقطه قوت آن محسوب میشود که در برنامههایی مانند شبکههای رسانههای اجتماعی کارکرد بسیار مفیدی دارد.
برخی از نمونه های DBMS شبکهای کدام اند؟
در ادامه، نمونههایی از DBMS شبکهای را بیان کردهایم.
- ذخیرهکننده داده یکپارچه (Integrated Data Store | IDS)
- سیستم مدیریت پایگاه داده یکپارچه (Integrated Database Management System | IDMS)
موارد استفاده از DBMS شبکهای کدام اند؟
برخی از کاربردهای سیستم مدیریت پایگاه داده شبکهای، در ادامه آورد شده است.
- بانکداری: DBMS شبکهای میتواند از خدمات بانکی اصلی مانند برداشتها، سپردهها، انتقالها و مدیریت کاربر، پشتیبانی کند.
- عملیات رزرو در خطوط هوایی: در سیستمهای رزرو خطوط هوایی، DBMS شبکهای میتواند برای ذخیره برنامه پرواز (زمانبندی مربوط به پروازها)، اطلاعات رزرو و اطلاعات مربوط به تخصیص صندلی به مسافر، استفاده شود.
- سازمانهای دولتی: دولتها میتوانند از DBMS شبکهای برای مدیریت ساختارهای دادهای پیچیده خود، از جمله دادههای سرشماری، سوابق املاک و مستغلات و سوابق مالیاتی استفاده کنند.
سیستم مدیریت پایگاه داده سلسله مراتبی در DBMS چیست ؟
DBMS «سلسله مراتبی» (Hierarchical Model)، یکی اولین مدلهای سیستم مدیریت پایگاه داده بود که مورد استفاده قرار گرفت. این نوع DBMS، دادهها را در ساختاری درخت مانند سازماندهی میکند که برای مدیریت دادههایی با رابطه «والد-فرزندی» بسیار مفید است. از مشخصههای بارز این این سیستم، میتوان به «پاسخدهی سریع» و «بازیابی مؤثر و کارآمد دادهها» اشاره کرد.
محدودیت DBMS سلسله مراتبی چیست ؟
محدودیت مدل سلسله مراتبی، این است که نمیتوان آن را در برنامههایی استفاده کرد که روابط دادهای پیچیدهتری نسبت به رابطه ساده «والد-فرزندی» دارد.
برخی از نمونه های DBMS سلسله مراتبی کدام اند؟
در ادامه برخی از نمونههای این نوع DBMS، بیان شده است.
- سیستم مدیریت اطلاعاتی آیبیاِم (IBM’s Information Management System | IMS)
- رجیستری ویندوز
DBMS شبکهای در چه مواردی کاربرد دارد؟
از کاربردهای این نوع DBMS، میتوان به تراکنشهای بانکی، مدیریت موجودی و سیستم سوابق پزشکی اشاره کرد.
سیستم مدیریت پایگاه داده شی گرا در DBMS چیست ؟
سیستم «DBMS شی گرا» (Object-Oriented DBMS | OODBMS)، دادهها را در اشیا (یا Object-هایی) شبیه به متدولوژیهای شی گرا (با قابلیتهای پایگاه داده) ذخیره میکند. این نوع از پایگاههای دادهای، توانایی این را دارند تا ساختارهای دادهای پیچیدهای را ذخیره کنند و برای توسعهدهندگان این امکان را فراهم میکند که بهجای مباحث مربوط به ساختار زیربنایی پایگاه داده، روی «اشیا» تمرکز کنند. به دلیل اینکه این نوع سیستمها، از شکل رابطهای ساختیافتهای پیروی نمیکنند، به «پایگاه داده NoSQL» نیز شناخته میشوند.
لازم است به این نکته توجه شود که «NoSQL»، یک جنبش است و «OODB» یک فناوری محسوب میشود. هیچ تعریف دقیقی از «NoSQL» وجود ندارد، بنابراین تفاوتهای موجود تا حد زیادی معنایی هستند. بهطور کلی، سیستم «پایگاه داده شی گرا»، بهعنوان زیر مجموعه (یا نوعی) از پایگاه داده «NoSQL» در نظر گرفته میشود.
برخی از نمونه های DBMS شی گرا کدام اند؟
در ادامه، مثالهایی از این نوع سیستمها بیان شده است.
- پایگاه داده Versant
- Objectivity/DB
DBMS شی گرا در چه مواردی مورد استفاده قرار میگیرند؟
برخی از کاربردهای این نوع پایگاههای دادهای را در ادامه بیان کردهایم.
- مدیریت «چرخه حیات» (Lifecycle) محصول در فرایند توسعه نرمافزار
- پردازش «بلادرنگ» (Realtime) روابط دادهای در مخابرات
سیستم مدیریت پایگاه داده NoSQL در DBMS چیست ؟
یکی از محبوبترین سیستمهای مدیریت پایگاه داده که بهوسیله شرکتهای زیادی مورد استفاده قرار میگیرد، سیستم مدیریت پایگاه داده «NoSQL» است. «NoSQL» کوتاه شده عبارت «نه تنها SQL» است و این نکته را بیان میکند که از مدل سنتی پایگاه داده رابطهای پیروی نمیکند.
این نوع DBMS، بهطور خاص، برای مدیریت حجم زیادی از دادههای «بدون ساختار» (Unstructured) یا «نیمه ساختیافته» (Semi-structured)، مانند دادههای رسانههای اجتماعی، دادههای دریافتی از «حسگرها» (Sensors) در اینترنت اشیا (IoT) و «اسناد» (Documents)، طراحی شده است. برخلاف پایگاه داده رابطهای، پایگاههای دادهای NoSQL، از ساختارهای جدول مانندِ ثابت، پیروی نمیکنند که این امر، به مقیاسپذیرتر شدن و انعطافپذیری آن، کمک میکند. در ادامه، برخی از این نوع سیستمها را فهرست کردهایم.
- MongoDB
- Cassandra
- Couchbase
انواع پایگاه دادههای NoSQL کدام اند؟
پایگاه دادههای NoSQL را میتوان به چند دسته تقسیم کرد، که ای دستهها در ادامه بیان شده است.
- سَنَد محور (Document-Oriented): در این نوع سیستم، دادهها در قالب اسناد (داکیومنتها یا فایلهای خاصی مانند JSON ،BSON)، ذخیره میشوند. سیستمهای MongoDB ،DynamoDB و CosmosDB از این نوع هستند.
- کلید-مقدار (Key-Value): ذخیره دادهها بهصورت زوج «کلید-مقدار» انجام میشود که هم زمان بازیابی دادهها را سریعتر میکند و هم سَربارِ مربوط به پایگاه دادههای رابطهای را کاهش میدهد. سیستمهای Amazon dynamo ،voldemort ،redis و riak از این نوع هستند.
- Column-Family: ستون خانواده یا ستونِ عریض، ستونی است که میتواند فهرستی از مقادیر را ذخیره کند. این مدل، برای ذخیرهسازی مقادیر زیادی از دادههایی مناسب است که به نیازمند بازیابی سریعتر هستند. سیستم Cassandra از این نوع محسوب میشود.
- مبتنی بر گراف (Graph-Based): پایگاه دادههای «گراف» برای توسعهدهندگان با تجربه و دانشمندان داده طراحی شده است. این نوع سیستم، دادهها را به شکل مؤلفههای گراف، یعنی «گرهها» (Nodes) و «یالها» (Edge) ذخیره میکند، که هر کدام شناسهای یکتا دارند. این سیستم پایگاه دادهای، برای دادههایی که روابط پیچیده یا روابط «چند به چند» (many-to-many)، دارند گزینه مناسبی است. سیستم Neo4j از این نوع محسوب میشود.
کاربردهای سیستم NoSQL چیست ؟
در ادامه، برخی از موراد استفاده این نوع سیستمها بیان شده است.
- در رابطه با گردآوری و تحلیل بلادرنگ کلان داده برای دستگاههای اینترنت اشیا (IoT)
- تجزیه و تحلیل دادههای مکانی در تجارت الکترونیک
سیستم مدیریت پایگاه داده رابطه ای در DBMS چیست ؟
سیستمهای پایگاه داده رابطهای (Relational databases | RDBMS)، رایجترین نوع DBMS محسوب میشوند. این سیستم «دادهها» را در قالب «جداولی مرتبط» ذخیره و از زبان «SQL» برای دسترسی و دستکاری دادهها استفاده میکند.
- سازمانها از «RDBMS»، برای ذخیره حجم زیادی از دادههای «ساختیافته» (Structured Data) مانند «اطلاعات مشتری» یا «موجودی محصول» استفاده میکنند.
- این نوع DBMS به دلیل سهولت در استفاده و انعطافپذیری، بیشترین کاربرد را دارد.
- دادهها در جداول ذخیره و از «کلیدها» (Keys) برای مدیریت روابط بین این جداول استفاده میشود.
نمونه های DBMS رابطه ای کدام اند؟
در ادامه، برخی از نمونههای «RDBMS»، فهرست شدهاند.
- MySQL
- Oracle
- Microsoft SQL Server
سیستمهای RDBMS، برای مدیریت دادههایی که به خوبی سازماندهی شدهاند (ساختار مناسبی دارند)، گزینه مناسبی است.
کاربردهای DBMS رابطه ای چیست؟
ویژگی RDBMS در مدیریت دادههای ساختاری، آن را تبدیل به بهترین گزینه، برای مواردی که در ادامه بیان میشود، کرده است.
- سوابق مربوط به موجودی (بهطور مثال، موجودی انبار)
- فهرست فاکتورها یا صورتحسابها
- موارد مرتبط با ویزیت بیماران در یک درمانگاه
معماری DBMS چیست ؟
معماری سیستمهای مدیریت پایگاه داده، به ما کمک میکند تا اجزای سیستم پایگاه داده و روابط بین آنها را درک کنیم. معماری DBMS همچنین، به سیستم کامپیوتری که، روی آن اجرا میشود، وابسته است. به عنوان مثال، در معماری DBMS «کلاینت-سرور»، سیستمهای پایگاه دادهای روی سرور میتوانند، درخواستهای متعددی که توسط کلاینتها ایجاد شدهاند را اجرا کنند.
معماریهای DBMS را میتوان در ۳ دسته تقسیمبندی کرد. در ادامه عناوین این معماریها آورده شده است و پس از آن، هریک را مورد بررسی قرار دادهایم.
- معماری تک لایه
- معماری ۲ لایه
- معماری ۳ لایه
معماری تک لایه DBMS چیست ؟
در معماری «تک لایه» یا «یک لایه» DBMS، پایگاه داده روی سیستم کلاینت در دسترس است و هر درخواستی که توسط کلاینت صورت گیرد، برای انجام عملیات روی پایگاه داده، نیازی به اتصال به شبکه نخواهد داشت.
به عنوان مثال، فرض کنید میخواهیم رکوردهای مربوط به کارمندی را از پایگاه دادهای که در سیستم کامپیوتریمان موجود است را «واکشی» (Fetch) کنیم. درخواست واکشیِ جزئیات کارمند، و دریافت رکوردها از پایگاه داده، بهوسیله کامپیوتر ما انجام میشود. این نوع سیستم معمولاً به عنوان «سیستم پایگاه داده محلی» (Local DataBase System) نیز شناخته میشود.
ویژگی های معماری تک لایه DBMS چیست ؟
ویژگیهای این نوع معماری را میتوان بهصورتی که در ادامه آمده است، بیان کرد.
- در این معماری، کاربر مستقیماً به پایگاه داده دسترسی دارد. یعنی کاربر میتواند مستقیماً DBMS را مورد استفاده قرار دهد.
- هر تغییری، مستقیماً روی خود پایگاه داده انجام میشود و از این بابت، ابزار مفیدی برای کاربرانِ نهایی فراهم نمیکند.
- معماری «تک لایه»، برای توسعه اپلیکیشنهای محلی مورد استفاده قرار میگیرد و امکان ارتباط و تعامل مستقیم برنامهنویس و پایگاه داده، با هدف دریافت سریعتر پاسخ، وجود دارد.
معماری تک لایه DBMS چه زمانی استفاده میشود؟
در ادامه، برخی از موارد استفاده از معماری تکلایه را فهرست کردهایم.
- زمانی که دادهها، زود به زود (مکرراً) تغییر نمیکنند.
- هنگامیکه تنها یک کاربر از سیستم پایگاه داده استفاده میکند (کاربران متعددی به سیستم پایگاه داده دسترسی ندارند).
- وقتیکه به روشی ساده و آسان برای تغییر یا دسترسی به پایگاه داده، برای توسعه برنامه خود، نیاز داریم.
مثالی از معماری تک لایه DBMS چیست ؟
نمونهای از معماری DBMS تک لایه در ادامه آورده شده است. به منظور یادگیری زبان «پرسوجو ساختیافته» (Structure Query Language | SQL)، سرور SQL و پایگاه دادهای را در سیستم محلی خود، راهاندازی کردیم. این سرور SQL، امکان تعامل مستقیم با پایگاه داده رابطهای را برای ما فراهم میکند. تا از این طریق عملیات مورد نظر را بدون نیاز به اتصال شبکهای، اجرا کنیم.
ویژگی های مهم معماری تک لایه DBMS چیست ؟
برخی از ویژگیهای این نوع معماری را در ادامه، بیان کردهایم.
- سادهترین معماری DBMS محسوب میشود.
- تمامی اجزای DBMS از جمله سرور، پایگاه داده و کلاینت بر روی یک سیستم واحد قرار دارند.
- کاربر میتواند بهطور مستقیم به پایگاه داده دسترسی داشته باشد.
- کابرد آن زمانی است که دادهها زود به زود تغییر نمیکنند.
- گزینه مناسبی برای برنامهنویسان، طراحان پایگاه داده و دسترسیهای «تککاربره» به شمار میرود.
معماری ۲ لایه DBMS چیست ؟
در این نوع معماری، سیستم پایگاه داده، در کامپیوتر سرور و برنامه DBMS، روی کامپیوتر کلاینت قرار دارند. این دو سیستم نیز از طریق شبکهای مطمئن، به یکدیگر متصل هستند.
زمانیکه سیستم کلاینت با استفاده از زبان پرسوجویی مانند «SQL»، درخواستی برای دسترسی به پایگاه داده موجود در سرور ارائه میدهد، سرور درخواست را روی پایگاه داده اجرا میکند و نتیجه را به سمت کلاینت برمیگرداند. برای تعامل بین سرور و کلاینت، «رابط اتصالِ برنامه» (Application Connection Interface) مانند «ODBC» یا «JDBC»، مورد استفاده قرار میگیرد.
ویژگی های معماری ۲ لایه DBMS چیست ؟
در ادامه، برخی از ویژگیهای این نوع معماری را بیان کردهایم.
- معماری ۲ لایه، شبیه سیستم «کلاینت-سرور» است. در این نوع معماری، برنامههای کاربردی موجود در کلاینت میتوانند بهطور مستقیم با پایگاه دادهای که روی سرور است ارتباط برقرار کنند. برای این تعامل، API-هایی مانند «ODBC» و «JDBC» مورد استفاده قرار میگیرند.
- رابطهای کاربری و برنامههای کاربردی، سمتِ کلاینت (Client-Side) اجرا میشوند.
- سمتِ سرور (Server Side)، مسئول ارائه عملیاتی مانند «پردازش پرسوجو» و «مدیریت تراکنش» است.
- برای برقراری ارتباط با DBMS، برنامه «سمتِ کلاینت» با «سمتِ سرور» ارتباط برقرار میکند.
مزایای معماری ۲ لایه نسبت به معماری تک لایه DBMS چیست ؟
در ادامه، مهمترین مزایای معماری ۲ لایهای در مقابل معماری تک لایهای، فهرست شدهاند.
- کاربران متعددی میتوانند بهطور همزمان از آن استفاده کنند. از این رو، این معماری میتواند در سازمانها مورد استفاده قرار بگیرد.
- از آنجاییکه عملکرد پایگاه داده تنها توسط سرور اداره میشود، توانایی پردازش بالایی دارد.
- به دلیل اتصال مستقیم و کارایی بهبود یافته، دسترسی به پایگاه داده، سرعت بیشتری دارد.
- به دلیل وجود دو لایه مستقل از هم، نگهداری آن آسانتر است.
نمونه ای از معماری دو لایه DBMS چیست ؟
در ادامه، مثالی از معماری سیستم مدیریت پایگاه داده ۲ لایه، آورده شده است.
موقعیتی را در نظر بگیرید که برای برداشت مقداری پول نقد به بانک مراجعه کردهاید. پس از ورودِ مبلغ برداشت و جزئیات حساب در فیشِ مورد نظر، بانکدار با استفاده از مجوزی که در اختیار دارد به پایگاه دادهِ سمت سرور متصل میشود (از طریق فراخوانی API، دسترسی پیدا میکند) و بررسی میکند که آیا موجودی حساب کافی است یا خیر. این مدل «کلاینت-سرور»، نمونهای از معماری DBMS دو لایه محسوب میشود.
معایب اصلی معماری ۲ لایه DBMS چیست ؟
از معایب معماری ۲ لایه سیستم مدیریت پایگاه داده، میتوان به مشکل در مقیاس پذیری و امنیت آن اشاره کرد.
- مقیاس پذیری: با افزایش تعداد کلاینتها، بارِ روی سرور نیز افزایش مییابد و در نتیجه عملکرد DBMS و همچنین برنامه سمت کلاینت پایین میآید.
- امنیت: ارتباط مستقیم بین سیستمهای کلاینت و سرور، باعث آسیبپذیری این معماری در برابر حملات میشود.
نکات معماری ۲ لایه DBMS چیست ؟
برخی از مهمترین ویژگیهای معماری ۲ لایه را در ادامه، بیان کردهایم.
- معماری «کلاینت-سروری» دارد.
- دسترسی سریعتر، نگهداری آسانتر و مدیریت همزمان چندین کاربر را فراهم میکند.
- زمانی مورد استفاده قرار میگیرد که بخواهیم از طریق برنامهها و API-ها به DBMS دسترسی داشته باشیم.
- به دلیل ارتباط مستقیم کلاینت و سرور، مشکلات مقیاسپذیری و امنیتی را بهدنبال دارد.
معماری ۳ لایه DBMS چیست ؟
برای درک «معماری ۳ لایه» در سیستم مدیریت پایگاه داده، خصوصیات آن در ادامه، آورده شده است.
- معماری ۳ لایه، شامل لایهای بین کلاینت و سرور است و در این معماری، کلاینت نمیتواند بهطور مستقیم با سرور ارتباط برقرار کند.
- برنامه کلاینت از طریق تعاملهایی که با «برنامه سرور» دارد، با سیستم پایگاه داده ارتباط برقرار میکند.
- کاربر نهایی، از وجود پایگاه داده، بیرون از برنامه سرور، بی اطلاع است. به همین ترتیب، پایگاه داده نیز در مورد کاربری که خارج از برنامه است، آگاهی ندارد.
- یکی از کاربردهای این نوع معماری، در توسعه وباپلیکیشنهای بزرگ است.
مزایای معماری ۳ لایه DBMS چیست ؟
از مهمترین مزایایی که استفاده از معماری «۳ لایه» برای ما فراهم میکند، میتوان به مواردی که در ادامه آمده است، اشاره کرد.
- مقیاس پذیری: از آنجاییکه سرور پایگاه داده، نسبت به کاربر خارج از لایه برنامه، اطلاعی ندارد (عدم آگاهی)، و لایه برنامه، بار را متعادل میکند (توازن بار)، به تعداد دلخواه میتواند کلاینت وجود داشته باشد.
- یکپارچگی داده: به دلیل بررسیهایی که روی درخواستهای کلاینت در لایه برنامه صورت میگیرد، میتوان از خراب شدن دادهها و درخواستهای اشتباه جلوگیری کرد.
- امنیت: عدم وجود ارتباط مستقیم بین «سیستمهای کلاینت» و «سرور»، دسترسی غیرمجاز به پایگاه داده را کاهش میدهد.
عیب معماری ۳ لایه DBMS چیست ؟
نکته کلیدی در معماری ۳ لایه DBMS، وجود لایهای اضافی یا «لایه برنامه» (Application Layer) بین «Client» و «Server» است. این امر، تعداد لایههای موجود بین «DBMS» و کاربران نهایی را افزایش میدهد. در نتیجه، پیادهسازی ساختار «DBMS» را پیچیده و نگهداری آن را دشوار میسازد.
ویژگیهای معماری ۳ لایه DBMS چیست ؟
برخی از مهمترین نکات و ویژگیهای این معماری، در ادامه، آورده شده است.
- پرکاربردترین معماری برای سیستمهای مدیریت پایگاه داده محسوب میشود.
- از معماری «کلاینت-برنامه-سرور» (Client-Application-Server) پیروی میکند.
- امنیت، مقیاسپذیری و یکپارچگی دادهها در این نوع معماری، افزایش (بهبود) یافته است.
- به دلیل داشتن لایههای بیشتر، پیادهسازی آن پیچیدهتر و نگهداری آن سختتر است.
سوالات متداول
در ادامه، برخی از سولات رایج در زمینه سیستمهای مدیریت پایگاه داده آورده شده است.
DBMS های رایج کدام اند؟
از رایجترین سیستمهای مدیریت پایگاه داده، میتوان SQLite ،Oracle ،MySQL ،IBM Db2 ،PostgreSQL ،SQL Server و MariaDB را نام برد.
مهم ترین بخش DBMS چیست ؟
دادهها (Data)، مهمترین بخش DBMS محسوب میشوند.
مهم ترین توانایی های DBMS چیست ؟
از مهمترین تواناییهای سیستم مدیریت پایگاه داده، میتوان به ذخیرهسازی، بازیابی، حذف، بهروزرسانی و امنیت دادهها اشاره کرد.
جمعبندی
DBMS-ها، در حقیقت چیزی فراتر از سیستمی کامپیوتری برای نگهداری دادهها، نیستند و کاربران این سیستمها، امکاناتی را به منظور اجرای برخی عملیات، از جمله مدیریت پایگاه داده، دستکاری دادهها و سایر موارد، در اختیار دارند. در این مطلب از مجله تم آف، سیستمهای مدیریت پایگاه داده را مورد بررسی قرار دادیم.
همچنین، علاوه بر تشریح معماریهای موجود در این نوع سیستم، مزایا، معایب و ویژگیهای هر کدام را نیز بیان کردیم.