1397-02-03
مطالب آموزشی
بازدید : 1069
تفاوت SQL و NOSQL
SQL و NOSQL چیست و چه تفاوتی دارند
وقتی صبحت از انتخاب پایگاه داده به میان میآید, یکی از اصلی ترین دغدغه ها انتخاب نوع پایگاه داده است. در این مقاله قصد داریم تا پایگاه های دادهای sql و NoSql را مورد برررسی قرار دهیم. در این مقاله MongoDB را به عنوان پایگاه داده NoSql و Mysql را به عنوان پایگاه داده Sql انتخاب میکنیم.
زبان
پایگاه های داده sql از دستورات خود را در یک ساختار منسجم اجرا میکنند که در واقع همان مفهوم Structured Query Language است که به اختصار آنرا sql میگوییم. sql یک زبان بسیار پرقدرت برای query های بسیار پیچده میتواند باشد اما از طرف دیگر میتواند محدود کننده نیز باشد. در زبان sql باید پیش از استفاده از داده ها, ساختار آنها را مشخص کنیم و تمام داده ها باید از ساختار تعریف شده برای آنها پیروی کنند.
اما در پایگاه داده NoSql, الگو استفاده از داده ها کاملا پویا است و داده ها بدون نیاز به تبعیت از ساختار از پیش تعریف شده میتوانند مورد استفاده قرار گیرند. داده ها میتواند به صورت های مختلفی مانند column-oriented, document oriented, graph base و یا به صورت keyValue دخیره شوند.
scalability
یکی از مهم ترین عوامل برای تعیین پایگاه داده, scalable بودن آن است. با استفاده از این خاصیت میتوانیم ابعاد پروژه را گسترده تر کنیم. بنابراین برای یکی از عوامل تعیین کننده در پروژه های بزرگ است. پایگاه های داده sql به اصطلاح veritical scalable هستند. به این معنا که اگر یک server داشته باشیم با افزایش ظرفیت حافظه و قدرت پردازش, میتوانیم سرعت عملکرد پایگاه داده را نیز افزایش دهیم. در مقابل پایگاه های داده NoSql از نوع horizontal scalable هستند. به این معنا که با افزایش تعداد server ها میتوانیم کارایی پایاگاه داده را افزایش دهیم. برای درک بهتر veritical scalable و horizontal scalable میتوانیم به این مثال اشاره کنیم. فرض کنید server ما یک ساختمان است. اگر از پایگاه داده sql استفاده کنیم, برای افزایش کارایی باید تعداد طبقات را افزایش دهیم اما اگر از پایگاه داده NoSql استفاده کنیم, میتوانیم چند ساختمان دیگر در مجاورت این ساختمان ایجاد کنیم.
ساختار
همانطور که اشاره شد, پایگاه های داده sql بر اساس ساختار عمل میکنند که به آنها table-base گفته میشود. به این معنا که ساختار داده ای ما باید از پیش تعیین شده باشد. اما پایگاه های داده NoSql میتوانند فارغ از محدود شدن به table، ذخیره شوند. بنابراین میتوان نتیجه گرفت که پایگاه داده sql برای تراکنش هایی که باید بر روی چند row تاثیر بگذارند مناسب است. برای مثال پروژه های حسابداری از این دست پروژه ها میباشند.
MySql
MySql یک پایگاه داده بزرگ است که در طول سالیان زیادی از آن استفاده شده است. بنابراین دارای یک community گسترده است و در حالتی پایدار قرار دارد. همچنین MySql برای اکثر Platfrom ها موجود است و برای اکثر زبان های برنامه نویسی Connector دارد. این پایگاه داده Open Source و رایگان است. پایگاه داده MySql قابلیت Replicate شدن را دارد. به این معنا که میتواند حجم کار را میان چندین node پخش کند بنابراین load آن میتواند بسیار بهینه تر و scalable تر باشد.
MongoDB
پویا بودن ساختار داده ای یکی از مهم ترین ویژگی های MongoDB است. همانطور که اشاره شد, MongoDB میتواند به صورت horizontal گسترش یابد که هم باعث تقسیم حجم کار میشود و هم scalablity سیستم را افزایش میدهد. این پایگاه داده به مدیریت پایگاه دادهای نیاز ندارد. بنابراین هم برنامه نویسان و هم مدیران سیستم ها میتوانند از آن استفاده کنند. سرعت بالا بر روی در خواست های تکی از دیگر ویژگی های این پایگاه داده است.
انتخاب پایگاه داده
در سیستم هایی که یک تراکنش باید بر روی چندین تراکنش دیگر تاثیر بگذارند, MySql انتخاب بسیار خوبی است. در سمت مقابل, MongoDB برای سیستم هایی که ساختار ثابتی ندارند و به صورت متناوب در حال رشد هستند مناسب است.
خدمات شبکه , نصب و راه اندازی شبکه , سرور , پشتیبانی شبکه , راه اندازی شبکه , اجرای شبکه , فروش تجهیزات شبکه , قرارداد پشتیبانی شبکه , راه اندازی اتاق سرور , راه اندازی سرور روم , اجرای زیرساخت شبکه ,