دیتابیس های (Not Only SQL) NoSQL برعکس نوع SQL از ساختارهای Schema غیرثابت یا Dynamic Schema استفاده میکنند. این باعث میشود که برنامهنویسان احتیاجی به تشکیل ساختارهای سختگیرانه مشخص، پیش از ایجاد دیتابیسهای را نداشته باشند. این دیتابیسهای میتوانند انواع مختلفی داشته باشند و برعکس SQL برای ذخیرهسازی دادهها از XML یا JSON استفاده میکنند. در ادامه انواع مختلفی از دیتابیسهای NoSQL را به شما معرفی میکنیم:
دیتابیسهای کلید – مقدار یا Key-Value Database
در این نوع از دیتابیس اطلاعات در قالب جفتهای کلید – مقدار یا Key-Value ذخیره میشود. کلیدها نقش شناسه هر داده را بازی میکند. یعنی میتوانیم با استفاده از آنها مقادیر مختلف داده را ذخیره یا پیدا کنیم. دیتابیسهای کلید – مقدار به دلیل ساده بودن در کارکرد، پرکاربردترین نوع دیتابیسهای NoSQL هستند.
دیتابیسهای ستونی یا Wide-Column Database
شاید تصور کنید دیتابیسهای ستونی همان دیتابیسهای رابطه ای هستند. اما این فقط ظاهر این گونه دیتابیسهای است که شبیه به نوع رابطه ای است. گفتیم که در دیتابیسهای رابطه ای لازم است که تعداد و نوع ویژگیهای هر موجودیت و مقادیر داخل آن مشخص و ثابت باشد. این در حالی است که در دیتابیسهای ستونی، هر ستون در رکوردهای مختلف میتواند شامل دادههایی با ساختار و نوع متفاوت باشد.
دیتابیسهای سندی یا Document Database
در این گونه دیتابیسهای برای ذخیره سازی دادهها از اسناد JSON یا XML استفاده میکنیم. دیتابیسهای سندی معمولاً برای ذخیره سازی و استفاده از دادههای پراکنده و بی ساختار استفاده میشوند.
دیتابیسهای گرافی یا Graph Database
در این نوع از دیتابیسهای برای ذخیره سازی موجودیتها و روابط بین آنها از گراف استفاده میکنیم. دیتابیسهای گرافی برای مواردی که در آنها به ایجاد ارتباطهای متعدد بین جداول احتیاج داریم بسیار مناسب هستند.
دیتابیسهای چند مدله یا Multimodel Database
دیتابیسهای چند مدله ترکیبی از انواع دیگر دیتابیس هستند. در این نوع دیتابیسهای میتوانیم دادهها را به روشهای مختلفی ذخیره، و از آنها استفاده کنیم.
مزیتهای استفاده از NoSQL
دیتابیسهای NoSQL مزیتهای بسیار زیادی دارند که آنها را برای سیستمهای بزرگ و توزیع شده تبدیل به بهترین گزینه میکند. به طور کلی میتوان این مزیتها را به این شکل خلاصه کرد:
مقیاس پذیری بالا (Scalability)
دیتابیسهای NoSQL میتوانند به راحتی با روش مقیاس پذیری افقی یا Horizontal Scaling گسترش پیدا کنند. این ویژگی باعث کم شدن پیچیدگی و هزینه مقیاس دادن به نرم افزار یا Scale کردن آن میشود.
کارایی بالا (Performance)
در سیستمهای توزیع شده NoSQL با تکثیر خودکار دادههای NoSQL در سرورهای متعدد در سراسر دنیا، تاخیر در ارسال پاسخ از طرف سرور به پایینترین حد ممکن میرسد.
دسترسی بالا (Availability)
در سیستمهای توزیع شده NoSQL به دلیل کپی شدن خودکار دادهها در سرورهای مختلف، با از دسترس خارج شدن یک یا چند سرور، دیتابیس همچنان قابل دسترس و پاسخگو است.
نتیجه گیری
دیدیم که دیتابیسهای رابطه ای و مبتنی بر SQL گرچه از مزیت ساختار یافتگی و قانونمندی برخوردارند، اما برای سیستمهای بی ساختار یا تحلیل دادههای بزرگ مناسب نیستند. این به آن معنی است که مزیت آنها در بسیاری از سیستمهای بزرگ مثل موتورهای جستجو، تبدیل به بزرگترین نقطه ضعف میشود. برای حل این مشکل، دیتابیسهای NoSQL مثل MongoDB، پابه عرصه گذاشتند. دیتابیسهای NoSQL به راحتی در سیستمهای توزیع شده مورد استفاده قرار میگیرند، و باعث بهبود عملکرد آنها میشوند.