امروزه تمامی اطلاعات افراد بهصورت دیجیتالی ذخیره میشود؛ از تصاویر و ویدئو های شخصی یا آدرس محل زندگی گرفته تا اطلاعات مربوط به مسافرتی که با تاکسیهای اینترنتی رفتهاند و یا دادههای مربوط به درمانگاهی که مراجعه کردهاند همه بهصورت دیجیتالی در بستر اینترنت قرار دارند. باتوجهبه حجم عظیمدادهها و یکسان نبودن نوع آنها، میبایست روشها و ترفندهای متفاوتی را استفاده کنیم تا هم بتوانیم بهصورت کارآمد و بهینه به ذخیره دادهها بپردازیم و هم دسترسی به دادهها در کوتاهترین زمان ممکن امکانپذیر باشد. به همین علت و خیلی از دلایل دیگر، انواع مدلهای پایگاه داده ای به وجود آمده است که موضوع اصلی مقاله ما بر سر همین مسئله است.
پایگاه داده چیست؟
قبل از هر چیز ابتدا باید مفهوم پایگاه دادهپایگاه داده چیست؟ – انواع، مفاهیم و کاربردهاپایگاه داده چیست؟ این مقاله به بررسی این موضوع و همچنین انواع پایگاه داده، کاربردهای پایگاه داده، محبوب ترین پایگاه های داده و اجزای اصلی پایگاه داده پرداخته (Database) را بدانیم. بهطورکلی پایگاه داده یک بانک اطلاعاتی است که قادر است تا اطلاعات را بهصورت ساختاریافته یا بدون ساختار در قالب خاصی ذخیره کند. در واقع پایگاه داده را همانند حافظه یک کامپیوتر در نظر بگیرید با این تفاوت که دادهها در نظمهای خاصی ذخیره میشوند تا دسترسی به آنها آسانتر باشد.
انواع مدلهای پایگاه داده
تاکنون مدلهای بسیار زیادی برای پایگاه داده و ساختار آن طراحی شده است که بعضی از آنها در حد نوشتن مقاله بوده است و استفاده خاصی از آنها نمیشود، بعضی از آنها در حد استفادههای شرکتی است و مابقی آنها به طور گسترده مورداستفاده واقع میشوند. در این قسمت میخواهیم به معروفترین و محبوبترین انواع پایگاه داده ها بپردازیم.
پایگاه داده رابطهای
میتوان گفت یکی از قدیمیترین، محبوبترین و پرکاربردترین نوع پایگاه داده، پایگاه داده رابطه ای (Relational Database) است. در پایگاه داده رابطه ای، ابتدا جدولها با ساختار های مشخصی در قالب ستونها (Columns) تعریف میشوند و سپس دادهها در قالب رکوردها یا سطرها (Rows) به این جدول اضافه میشوند. از خصوصیات بارز این جدولها میتوان به داشتن کلید منحصربهفرد با نام Primary key برای هر رکورد اشاره کرد. بهوسیله این کلید میتوان بین رکوردهای مختلف تمایز قائل شد و یا بین جدولهای مختلف ارتباط برقرار کرد. زمانی که کلید اصلی یک رکورد از جدول اصلی داخل جدولی دیگری استفاده شود، به آن کلید خارجی (Foreign key) گفته میشود. بهعنوانمثال در تصویر زیر، یک رابطه از جدول مشتری (Client) با جدولمحصول (Product) که توسط جدول جداگانهای با نام مشتری - محصول (Client-Product)به هم پیوند خورده است را مشاهده میکنید:
برای مدیریت پایگاه داده های رابطه ای از سیستم مدیریت پایگاه داده رابطه ای یا RDBMS استفاده میشود. همچنین برای تعامل با پایگاه داده مانند انجام عملیات درج، حذف، ایجاد و بهروزرسانی دادهها، از زبان پرسوجوی ساختاریافته یا SQL استفاده میشود. پایگاه داده هایی مانند MySQLmysql چیست؟ بررسی تفاوت مای اس کی یو ال با اس کی یو ال-sqlاین مقاله عالی به معرفی mysql میپردازد، همچنین ویژگی های MySQL، تفاوت MySQL با SQL و سازگاری این پایگاه داده به سایر سرویس ها را مورد بررسی قرار میدهد، Oracle، Microsoft SQL، PostgreSQL و Microsoft Access از این نوع مدل پایگاهداده هستند.
پایگاه داده NoSQL
از دیگر مدلهای محبوب پایگاه داده میتوان به پایگاه داده های غیررابطه ای یا غیرساختاریافته (Not only SQL) اشاره کرد. در پایگاه داده های غیررابطهای، بهجای جدول از اسناد یا Document برای دستهبندی دادهها استفاده میشود. در این نوع پایگاه داده ها برخلاف پایگاه داده های رابطه ای نیاز به ایجاد یک ساختار دقیق و منظم قبل از افزودن دادهها به پایگاه داده وجود ندارد. دادهها همانند فایلهای JSON ذخیره میشوند و هر رکورد میتواند حتی اطلاعات اضافی داشته باشد. بهعنوانمثال یک رکورد از سند دانشجو در پایگاه داده دانشگاه میتواند شماره موبایل داشته باشد و یا یک رکورد اصلاً دارای این خصوصیت نباشد. همچنین در حین اجرای پایگاه داده نیز میتوان تغییرات در آن ایجاد کرد بدون اینکه کوچکترین خللی در کار برنامه ایجاد شود.
باتوجهبه این خصوصیات پایگاه داده های غیررابطه ای، این نوع پایگاهداده از ویژگیهای زیادی مانند انعطافپذیری، مقیاسپذیری، سرعت بالاتر و محدودیت کمتر برخورد است که باعث شده در نرمافزارها و وبسایتهای امروزه بهوفور از این نوع مدل پایگاه داده ای استفاده شود. از محبوبترین انواع پایگاه داده های غیررابطهای NoSQL میتوان به MongoDB، Cassandra، Redis و Neo4j اشاره کرد.
پایگاه داده گراف
پایگاه داده گرافیکی از انواع پایگاه داده های NoSQL است که طراحی در آن بهگونهای صورتگرفته است که مدیریت دادهها باتوجهبه ارتباط بین آنها راحتتر صورت بپذیرد. این نوع پایگاه داده بسیار مناسب دادههایی است که ارتباط بین آنها پیچیده است. بهعنوانمثال ارتباط بین افراد در شبکههای اجتماعی همانند توییتر و اینستاگرام. یا ارتباط بین حسابهای بانکی مختلف.
باتوجهبه ویژگیهای پایگاه داده گراف، این نوع پایگاه داده در علوم مختلف مورداستفاده قرار میگیرید. بهعنوانمثال مهندسی شبکههای اجتماعی (Social Networks)، تشخیص کلاه برداری، گراف دانش و... باتوجهبه اینکه ساختمان دادهآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیرهسازی و مدیریت دادهها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن دادهها را برای یکسری از الگوریتمها و کاربردها فراهم میکند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است گراف از گره (Node) و لبه (Edge) تشکیل شده است، در نتیجه پایگاه داده های گراف نیز بهصورت گره و لبه ذخیره میشوند.
- گره: گرهها در واقع نماینده یک عنصر یا یک آبجکت داخل دیتابیس هستند. بهعنوانمثال در شبکههای اجتماعی، گرهها میتوانند همان کاربران باشند و یا در سیستمهای حملونقل، گرهها توقفگاهها و مکانها هستند.
- لبه: لبهها گرهها را به یکدیگر متصل میکنند. این اتصالات میتوانند دربرگیرنده معانی مختلفی باشند. بهعنوانمثال در شبکههای مجازی، لبه بین دو گره، نماینده دوستی بین دو کاربر است.
از پایگاه داده های معروف گرافی میتوان به Neo4j، OrientDB و Amazon Naptune اشاره کرد.
پایگاه داده شی گرا
پایگاه داده های شی گرا (Object-Oriented)برنامه نویسی شی گرا چیست؟ شی گرایی چیست؟این صفحه عالی به معرفی برنامه نویسی شی گرا پرداخته و توضیح داده شی گرایی یا همان object oriented یا OPP چیست؟ همچنین مزایای برنامه نویسی شی گرا را بیان کرده یکی از مدلهای خلاقانه پایگاه داده است که در آن ساختارپایگاه داده همانند کلاسها و روابط آنها در برنامه نویسی ایجاد شده است. دادهها در این نوع پایگاه داده همانند آبجکتهابه یکدیگر وابسته هستند.پایگاه داده های شی گرا یا Object-Oriented Database بسیار با انواع زبان های برنامه نویسی شی گرا مانند زبانهایجاواجاوا چیست؟ تعریف، معنی و ویژگی های جاوا (java) از 0تا100جاوا یک زبان برنامه نویسی همه منظوره، مبتنی بر کلاس و شی گرا است که برای داشتن وابستگی های پیاده سازی کمتر طراحی شده است، زبان برنامه نویسی جاوا شبیه ++C است و سی پلاس پلاسبرنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده سازگار هست بهراحتی میتوان بهصورت کد نویسی با آنها تعامل داشت. این پایگاه داده ها توسط سیستم مدیریت بانک اطلاعاتی شی گرا یا OODBMS مدیریت میشوند. از معروفترین پایگاه داده های شی گرا میتوان به ObjectStore، Wakanda و Versant اشاره کرد. در تصویر زیر تفاوت پایگاه داده شی گرا با پایگاه داده رابطه ای را مشاهده میکنید:
پایگاه داده ابری
باتوجهبه سخت بودن نگهداری و تعمیر پایگاه دادههای عادی و همچنین تغییر دائمی مقیاس آن، پایگاه داده های ابری (Cloud Database) ایجاد شدهاند تا این مشکلات را رفع کنند. پایگاه داده های ابری از سیستمهای مدیریت پایگاه داده هایی استفاده میکند که توسط ارائهدهندگان سرویس ابری میزبانی (Host) شدهاند. همچنین این پایگاه داده ها در محیطهای پردازش ابری کارمیکنند که دارای مزایای مختلفی هستند. بعضی از مهمترین این مزایا را در لیست زیر مشاهده میکنید:
- مقیاسپذیری: باتوجهبه نیازهای درخواستکننده، این پایگاه داده ها بهراحتی مقیاسشان کموزیاد میشود.
- ارائه سرویسهای مدیریتی: سرویسهای متعددی برای پایگاه داده های ابری تعبیه شده است. مانند پشتیبانگیری، تنظیمات مختلف، امنیت و...
- مقرونبهصرفه بودن: پایگاه داده های ابری به این صورت هستند که هرچقدر از آن استفاده کردید، همان قدر پول میپردازید.
- امنیت: ارائهدهندگان ابری بهشدت بر روی امنیت پایگاه داده های خود و سرویسهای ارائه شده کار میکنند؛ بنابراین دیگر نیازی نیست نگران امنیت پایگاه داده تان باشید.
- مدیریت پشتیبانگیری: سیستمهای پایگاه داده ابری معمولاً بهصورت خودکار پشتیبانگیری و ریکاوری میکند تا دادهای از دست نرود.
بانک اطلاعاتی کلید - مقدار
پایگاه داده کلید مقدار، یکی از انواع پایگاه داده های NoSQL است که دادهها بهصورت کلکسیونی از زوجهای کلید - مقدار ذخیره و یا برگردانده میشوند. کلیدها بهصورت منحصربهفرد هستند و مقدارها میتوانند نوعهای مختلفی باشند. از یکرشته و یا یک عدد ساده گرفته تا ساختارهای پیچیدهتر مانند JSON، XML و اسناد دیگر. باتوجهبه سادگی پایگاه داده های کلید - مقدار، استفاده این نوع پایگاه داده ها بسیار آسان بوده و همچنین این پایگاه داده ها از سرعت بالایی برخوردارند. بهعنوانمثال در تکنیکهای کشینگ و مدیریت نشستها (Session Management) از این نوع پایگاه داده استفاده میشود. همچنین آنالیز و تحلیل دادههای Real-Time نیز از دیگر کاربردهای این مدل پایگاه داده ای هستند. پایگاهدادههای Redis و DynamoDB از محبوبترین پایگاه داده های Key-Value در حال حاضر هستند.
پایگاه داده سلسله مراتبی
یکی از قدیمیترین مدلهای پایگاه داده ای، مدل پایگاه داده ای سلسله مراتبی یا Hierarchial است. این نوع مدل ذخیرهسازی ابتدا در سال 1950 توسط کمپانی IBM ایجاد شد. ساختمان داده مدل سلسه مراتبی در واقع مدل Tree-Like یا درختی است که ارتباط دادهها در آن بهصورت والد فرزند یا Parent-Child است و دادهها بهصورت لایهها ذخیره میشوند. هرکدام از عناصر موجود در این پایگاهداده، دارای یک والد است اما میتواند دارای فرزندان مختلفی باشد. برای نمونه میتوانید به ارتباط فایلها و دایرکتوریهای گوشی یا کامپیوتر خود نگاه کنید. بهعنوانمثال در سیستمعامل ویندوز، دایرکتوری ریشه، درایو C نام دارد. سپس این دایرکتوری از فرزندان مختلف مانند Program File و Windows تشکیل شده است که هرکدام به نوبه خود دارای فرزندان دیگری هستند.
پایگاه داده متمرکز
پایگاه داده متمرکز در واقع بهنوعی از معماری پایگا هداده گفته میشود که تنها در یک مکان یا یک سرور قرار دارد. تمامی عملیات مربوط به پایگاه داده شامل مدیریت، ذخیره داده و... تنها در همان یک مکان انجام میشود. اتصال اپلیکیشنها و کاربران به پایگاه داده های متمرکز تنها توسط سروری صورت میپذیرد که مسئول تمامی عملیات است. باتوجهبه محدودیتهایی که این نوع پایگاه داده ها دارند، ممکن است برای سیستمها و اپهای جدید مناسب نباشند، در عوض میتوان از معماری دیگری استفاده کرد که به آن پایگاه داده توزیع شده میگویند.
پایگاه داده توزیع شده
برخلاف پایگاه دادههای متمرکز، پایگاه داده های توزیع شده در مکانهای مختلفی از یک سازمان قرار دارند و بهوسیله لینکهایی به هم مرتبط میشوند. دادهها میتوانند در هر کدام از پایگاه دادهها ذخیره شوند و از مکان دیگر مورداستفاده قرار گیرند. یکپارچهسازی و سازگاری در این نوع پایگاه داده ها از خصایص حساسی هستند که باید بهدرستی پیاده شوند؛ بنابراین کاربر بیرونی کل سیستم را بهصورت یکپارچه میبیند؛ اما در هسته سیستم پایگاه داده ای، سیستم بهصورت متمرکز ایجاد نشده است؛ بلکه در مکانهای مختلفی قرار گرفته است. مقیاسپذیری در این پایگاه داده ها نیز به نسبت پایگاه داده های متمرکز بسیار بهینهتر و کمهزینهتر صورت میپذیرد. از محبوبترین پایگاه داده ها با معماری توزیع شده میتوان به Apache Cassandra، HBase و Ignite اشاره کرد.
جمعبندی
ما درعصر دادههای دیجیتال زندگی میکنیم. روزانه دهها میلیارد رکورد جدید به دادهها اضافه میشود درحالیکه دادههای پیشین پاک نمیشوند؛ بنابراین هر روز حجم دادهها افزایش پیدا میکند و نگهداری و همچنین تحلیل آنها سختتر و سختتر میشود. بهخصوص اگر در ابتدای کار ازپایگاه داده مناسب یا ساختار مناسبی استفاده نکرده باشید، در آینده ممکن است با انبوهی از دادههای غیرقابلکنترل مواجه شوید که کار را برای شما سخت کند. در این مقاله به انواع مدلهای مختلف پایگاه داده اشاره شد و تعریف کلی از این پایگاه داده ها ارائه کردیم و ویژگیهای هرکدام را نیز بیان کردیم.
انواع مختلف پایگاه داده کداماند؟
تعداد مدلهای پایگاه داده بسیار زیاد است؛ اما بهصورت کلی محبوبترین نوعهای پایگاه داده در لیست زیر ذکر شده است: پایگاه داده رابطها ی، پایگاهداده NoSQL، پایگاه داده گراف ، پایگاهداده شی گرا، پایگاهداده ابری، پایگاهداده کلید - مقدار، پایگاهداده سلسلهمراتبی، پایگاهداده متمرکز، پایگاهداده توزیع شده
فرق اصلی انواع پایگاه داده ها با یکدیگر چیست؟
پایگاه داده ها از جنبههای مختلفی با یکدیگر تفاوت دارند. بهعنوانمثال در یک پایگاه داده ساختار دقیق و منظم بسیار مهم است؛ اما در یک معماری دیگر ساختار حرف دوم را میزند و سرعت اهمیت بیشتری دارد. در یک پایگاه داده امنیت بسیار مهمتر است و ممکن است سیستم پایگاه داده بسیار سنگین شود؛ اما فرضاً در یک سیستم تعبیه شده ممکن است حجم سیستم در اولویت باشد نه امنیت؛ بنابراین هیچ پایگاه دادهای برتر از دیگری نیست و بسته به نوع استفاده و انتظاراتتان باید یکی از آنها را انتخاب کنید.