رضا ثقفی
رضا ثقفی
خواندن ۵ دقیقه·۲ سال پیش

NoSQL چیست؟

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


در این مقاله، یاد خواهید گرفت که پایگاه داده NoSQL چیست، چرا (و چه زمانی!) باید از آن استفاده کنید و چگونه شروع کنید.


پایگاه داده NoSQL چیست؟

هنگامی که افراد از اصطلاح "پایگاه داده NoSQL" استفاده می کنند، معمولاً از آن برای اشاره به هر پایگاه داده غیر رابطه ای استفاده می کنند. برخی می گویند که اصطلاح "NoSQL" مخفف "non SQL" است در حالی که برخی دیگر می گویند مخفف "نه تنها SQL". در هر صورت، اکثریت موافقند که پایگاه های داده NoSQL پایگاه هایی هستند که داده ها را در قالبی غیر از جداول رابطه ای ذخیره می کنند.


تاریخچه مختصری از پایگاه های داده NoSQL

پایگاه داده های NoSQL در اواخر دهه 2000 با کاهش چشمگیر هزینه ذخیره سازی پدیدار شدند. روزهایی که نیاز به ایجاد یک مدل داده پیچیده و با مدیریت دشوار برای جلوگیری از تکرار داده ها وجود داشت، گذشته است. توسعه دهندگان (به جای ذخیره سازی) به هزینه اصلی توسعه نرم افزار تبدیل شدند، بنابراین پایگاه های داده NoSQL برای بهره وری توسعه دهندگان بهینه شدند.



با کاهش سریع هزینه های ذخیره سازی، میزان داده هایی که برنامه ها برای ذخیره و پرس و جو نیاز داشتند افزایش یافت. این داده‌ها در همه اشکال و اندازه‌ها - ساختاریافته، نیمه‌ساختارمند و چندشکلی - آمدند و تعریف طرحواره از قبل تقریباً غیرممکن شد. پایگاه های داده NoSQL به توسعه دهندگان اجازه می دهد تا حجم عظیمی از داده های بدون ساختار را ذخیره کنند و انعطاف پذیری زیادی به آنها می دهد.


علاوه بر این، مانیفست چابک در حال افزایش محبوبیت بود و مهندسان نرم افزار در حال تجدید نظر در نحوه توسعه نرم افزار بودند. آنها نیاز به انطباق سریع با نیازهای در حال تغییر را تشخیص می دادند. آنها به توانایی تکرار سریع و ایجاد تغییرات در پشته نرم افزاری خود نیاز داشتند - تا پایگاه داده. پایگاه های داده NoSQL به آنها این انعطاف را می داد.


رایانش ابری نیز محبوبیت خود را افزایش داد و توسعه دهندگان شروع به استفاده از ابرهای عمومی برای میزبانی برنامه ها و داده های خود کردند. آن‌ها می‌خواستند داده‌ها را در چندین سرور و منطقه توزیع کنند تا برنامه‌های کاربردی خود را انعطاف‌پذیر کنند، به جای افزایش مقیاس، کوچک‌تر شوند و داده‌های خود را به‌طور هوشمند در موقعیت جغرافیایی قرار دهند. برخی از پایگاه های داده NoSQL مانند MongoDB این قابلیت ها را ارائه می دهند.


ویژگی های پایگاه داده NoSQL

هر پایگاه داده NoSQL ویژگی های منحصر به فرد خود را دارد. در سطح بالا، بسیاری از پایگاه های داده NoSQL دارای ویژگی های زیر هستند:


طرحواره های انعطاف پذیر

مقیاس بندی افقی

درخواست های سریع به دلیل مدل داده

سهولت استفاده برای توسعه دهندگان

مزایای پایگاه های داده NoSQL چیست؟ برای کسب اطلاعات بیشتر در مورد هر یک از ویژگی های ذکر شده در بالا.


انواع پایگاه داده NoSQL

با گذشت زمان، چهار نوع اصلی از پایگاه‌های داده NoSQL پدیدار شد: پایگاه‌های داده اسناد، پایگاه‌های داده با ارزش کلید، فروشگاه‌های ستون گسترده و پایگاه‌های داده گراف.


پایگاه‌های داده اسناد، داده‌ها را در اسنادی مشابه اشیاء JSON (جاوا اسکریپت Object Notation) ذخیره می‌کنند. هر سند شامل جفت فیلد و مقادیر است. مقادیر معمولاً می توانند انواع مختلفی از جمله مواردی مانند رشته ها، اعداد، بولی ها، آرایه ها یا اشیا باشند.

پایگاه داده های کلید-مقدار نوع ساده تری از پایگاه داده هستند که در آن هر آیتم حاوی کلیدها و مقادیر است.

ستون‌های گسترده داده‌ها را در جداول، ردیف‌ها و ستون‌های پویا ذخیره می‌کنند.

پایگاه داده های گراف داده ها را در گره ها و لبه ها ذخیره می کنند. گره ها معمولاً اطلاعات افراد، مکان ها و چیزها را ذخیره می کنند، در حالی که لبه ها اطلاعات مربوط به روابط بین گره ها را ذخیره می کنند.

برای کسب اطلاعات بیشتر، به آشنایی با انواع مختلف پایگاه های داده NoSQL مراجعه کنید.


تفاوت بین پایگاه داده RDBMS و NoSQL

در حالی که تفاوت‌های مختلفی بین سیستم‌های مدیریت پایگاه‌داده رابطه‌ای (RDBMS) و پایگاه‌های داده NoSQL وجود دارد، یکی از تفاوت‌های کلیدی، نحوه مدل‌سازی داده‌ها در پایگاه داده است. در این بخش، نمونه ای از مدل سازی داده های مشابه در یک پایگاه داده رابطه ای و یک پایگاه داده NoSQL را بررسی خواهیم کرد. سپس، برخی از تفاوت های کلیدی دیگر بین پایگاه های داده رابطه ای و پایگاه های داده NoSQL را برجسته می کنیم.


RDBMS در مقابل NoSQL: مثال مدل سازی داده

بیایید نمونه ای از ذخیره اطلاعات در مورد یک کاربر و سرگرمی های آنها را در نظر بگیریم. ما باید نام، نام خانوادگی، شماره تلفن همراه، شهر و سرگرمی های کاربر را ذخیره کنیم.


در یک پایگاه داده رابطه ای، احتمالاً دو جدول ایجاد می کنیم: یکی برای کاربران و دیگری برای سرگرمی ها.


کار کردن

برای بازیابی همه اطلاعات در مورد یک کاربر و سرگرمی های آنها، اطلاعات جدول کاربران و جدول سرگرمی ها باید به یکدیگر متصل شوند.


مدل داده ای که ما برای پایگاه داده NoSQL طراحی می کنیم به نوع پایگاه داده NoSQL که انتخاب می کنیم بستگی دارد. با سایت نیک آموز همراه شوید تا بیشتر بدانید.

نیک آموز
شاید از این پست‌ها خوشتان بیاید