NoSQL یا SQL
1397/03/29
رایج ترین دیتابیس های امروزه بر مبنای SQL میباشند که به آنها دیتا بیس های ارتباطی یا relation گفته می شود. در مدل NoSQL بنا به شیوههای مختلف، دیگر نیاز به طراحی و زمان طولانی برای طراحی پایگاه دادهها پیچیده نمیباشد، که قابلیت مدیریت کردن و کار با حجم بسیار عظیمی از داده ها را داراست که به صورت رابطه ایRelational پیاده سازی نشده است
مخفف not only sql به معنای (نه تنها زبان پرس جوی ساخت یافته) می باشد، رایج ترین دیتابیس های امروزه بر مبنای SQL میباشند که به آنها دیتا بیس های ارتباطی یا relation گفته می شود. در مدل NoSQL بنا به شیوههای مختلف، دیگر نیاز به طراحی و زمان طولانی برای طراحی پایگاه دادهها پیچیده نمیباشد، که قابلیت مدیریت کردن و کار با حجم بسیار عظیمی از داده ها را داراست که به صورت رابطه ایRelational پیاده سازی نشده است.
در برخی از سرویسهای NoSQL الگوریتمهایی به کار رفتهاست که دیگر نیازی به طراحی پایگاه داده نمیباشد و بر اساس ورودیهای برنامهنویس و کاربر و تعیین نوع نیازمندیها و پلتفرم و شرایط محیطی دیگر، نوع ذخیرهسازی و مدیریت دادهها پیادهسازی میشود.
SQL :
دیتابیس های SQL نحوه عملکرد سازمان یافته و سفت و سخت تری در ذخیره سازی و دریافت اطلاعات دارند. در این زبان که از نوع Relational Database است دادهها در جدولهایی با ویژگیهای مشخص ذخیره میشوند که بین این جداول Relation برقرار میشود که میتوان عملیات select، insert و... را انجام داد که تمامی این ارتباطات و ساختارهای داده ای مرتبط با هم در پشت صحنه توسط دیتابیس به واسطه ساختاری به نام Schema ذخیره میشوند.
محدودیتهای SQL:
- مقیاسپذیری (Scalability) : کاربر در سیستم SQL مجبور است دادههای خود را فقط به صورت Relational در قالب کلاسیک و گفته شده ذخیره کند و این برای هر نوع خواستهای از طرف کاربر قابل مقیاس بندی نیست.
- پیچیدگی (Complexity) : این پیچیدگی طراحی پایگاه دادههای SQL بقدری بالا میباشد که افراد متخصص دیتابیس را لازم دارد تا بر اساس دادههای موجود بهترین نوع چیدمان جداول را طراحی نمایند که برای نیازهای مورد نظر قابل قبول باشد.
مزایای استفاده از NoSQL :
- عدم طراحی Schema (الگو) خاص، برای داده در این سیستم دادههای ورودی میتواند هر موقع تغییر نوع پیدا کرده و سیستم باید خودش را با آن مطابق کند.
- قابلیت چند بخشی شدن خودکار، تشخیص هوشمند یکپارچگی که در SQL طراح باید چند سرور بودن را در طراحی خود حتماً لحاظ میکرد و بر طبق آن شمای پایگاه داده را پیادهسازی میکرد ولی در سیستم NoSQL چند سرور بودن بخاطر هوشمندی و بالا بودن سطح سیستم هیچ مانعی برای ادامه کار ندارد.
- وجود Cache، برای افزایش سرعت بازیابی اطلاعات میباشد که همانند پردازنده در مواجه شدن با منابع مشابه و یکسان که آنها را در Cache نگهداری میکرد در سیستم NoSQL هم دادههای پراستفاده در Cache نگهداری میشوند
- توسعه پذیری Scalability : سیستمی که بتواند خواسته های در حال افزایش را پاسخ دهد.
- کارایی Performance : در بعضی از مسائل، کارایی(برای مثال سرعت پاسخ به درخواست ها) در پایگاه داده های NoSQL نسبت به SQL بهتر است.
- دسترسی بالا Hight Availability : به این معنی که داده ها در پایگاه داده، در اکثر اوقات در دسترس باشند. برای مثال بعضی از پایگاه داده های NoSQL توزیع شده میتوانند با از کار افتادن چندین Node(گره) باز هم قابل دسترس باشند.
نویسنده : کورش دلفانی