نواس‌کیوال

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

نواس‌کیوال مخفف not only sql به معنای نه تنها اس‌کیوال نامی است فراگیر برای رده ی گسترده ای از سامانه مدیریت پایگاه داده هایی که با نوع سنتی پایگاه داده های رابطه ای تفاوت های آشکار دارند . روشن ترین این تفاوت ها استفاده نکردن از اس‌کیوال به عنوان زبان پرسش نخستین است . نمونه اش پایگاه داده‌های اکس‌ام‌ال و پایگاه داده‌های سند-گرا است . یکی از پیاده سازی های شناخته شده این نوع پایگاه داده ها کاوچ‌دی‌بی ساخت بنیاد نرم‌افزار آپاچی است .[۱]


شرکتهای بزرگ اینترنت، از جمله گوگل (BigTable)، آمازون (Dynamo )، لینکدین (Project Voldemort)، فیس بوک (Cassandra و HBase) سورس فورژ (MongoDB)، اوبونتو (CouchDB) طراحی و راه اندازی گروه پایگاه داده NoSQL را بر عهده دارند. بخش قابل توجهی از این پروژه ها متن باز و آزاد است.


تفاوت های فنی میان NoSQL و SQL[ویرایش]

SQL و کاربرد آن چیست؟[ویرایش]

به زبان ساده تر باید گفت که SQL مخفف Structured Query Language می باشد؛ یعنی زبان پرس جوی ساخت یافته. در این زبان که از نوع Rational Database است داده ها همانند تعریف Rational در جدول هایی با ویژگی های مشخص ذخیره می شود، در بین آنها روابطی (Relation) برقرار می شود و ما می توانیم عملیاتی مانند انتخاب (Select) ، درج (Insert) ، به روز رسانی (Update) و حذف (Delete) به همراه سایر ابزارهای مورد نیاز برای مدیریت پایگاه داده ها را در کنار هم داشته باشیم. پس سیستمی برای ذخیره اطلاعات و پیوند بین آنها و عملیات بر روی آنها از مشخصات SQL تا به اینجای بحث می تواند تعریفی ابتدایی برای آن باشد که برای مثال تمامی مطالب در این سایت در پایگاه داده ها و در جدول هایی مشخص به همراه مشخصات دقیق مانند نام نویسنده، تاریخ، متن، عتوان و … ذخیره شده و زمانی که شما صفحه را در مرورگر خودتان باز می کنید این اطلاعات از پایگاه داده های سرور سایت دریافت شده و برای شما نمایش داده می شود. پس وجود پایگاه داده های SQL مهم می باشد. در انتهای این پاراگراف باید یادآور شد که SQL انواع مختلفی دارد، مانند چند مورد که در ویندوز (SQL Server)، در گوشی های همراه هوشمند (SQLite) و در اینترنت (MySQL) را می توان به عنوان مثال بیان کرد که همگی پیرو قوانین اصلی Rational برای ذخیره و بازیابی اطلاعات می باشند و هر جدول دارای یک کلید اصلی برای مشخص نمودن تفاوت میان سطرها می باشد.

محدودیت های SQL در چیست؟[ویرایش]

بدلیل رشد علم و فناوری با سرعت بالا و قدیمی بودن SQL شاید در گذشته بهترین سیستم برای مدیریت اطلاعات به شمار می رفت ولی بدلیل دو محدودیت بزرگ مجبوریم این روزها آن را با سیستمی نوین (مانند NoSQL) عوض کنیم. این دو محدودیت عبارتند از:

  • مقیاس پذیری یا Scalability: کابر در سیستم SQL مجبور است داده های خود را فقط بصورت Rational در قالب کلاسیک و گفته شده در بالا ذخیره کند و این برای هر نوع خواسته ای از طرف کاربر قابل مقیاس بندی شدن نیست و در مواردی تجربتا دیده شده مجبور به ایجاد داده های بی مورد یا موارد مشابه از طرف برنامه نویس شده یا برای قالب بندی کردن و طراحی شمای پایگاه داده مورد نظر مدتها باید توسط کارشناسان طرحهایی پیاده سازی و اجرا گردد که این خود یک محدودیت بزرگ برای دنیای داده های بزرگ امروزیست که تصور کنید با این هزینه سرورهای پرسرعت را بتوانیم پشت سر بگذاریم و برای طراحی داده ها در دو سرور نیازمند طراحی های وقت گیر هم باشیم!
  • پیچیدگی یا Complexity: این پیچیدگی طراحی پایگاه داده های SQL بقدری می باشد که در برنامه نویسی فرد یا افراد جدای برنامه نویس را لازم دارد تا بر اساس داده های موجود بهترین نوع چیدمان جداول را طراحی نمایند که برای نیازهای مورد نظر قابل قبول باشد که توضیح این پیچیدگی در محدودیت قبلی و مقیاس بندی هم توضیح داده شده بود.

حال NoSQL چیست؟[ویرایش]

بدلیل محدودیت های کلاسیک SQL و مدرن شدن دنیای اینترنت و اطلاعات کاربران و مدیران بخش داده ها دست به ایده های جدید با تفکر “یک قالب مطابق با همه” یا “One size fits all” را زده اند که در آن قید و بندهای سیستم قبلی تا حدامکان موجود نباشد. برای توضیح بیشتر به این متن از ویکی پدیا توجه نمایید:

   نواس‌کیوال مخفف Not Only SQL به معنای نه تنها اس‌کیوال نامی است فراگیر برای رده ی گسترده ای از سامانه مدیریت پایگاه داده هایی که با نوع سنتی پایگاه داده های رابطه ای تفاوت های آشکار دارند. روشن ترین این تفاوت ها استفاده نکردن از اس‌کیوال به عنوان زبان پرسش نخستین است. نمونه آن پایگاه داده‌های XML و پایگاه داده‌های سند-گرا(Document-oriented) است. یکی از پیاده سازی های شناخته شده این نوع پایگاه داده ها CouchDB ساخت بنیاد نرم‌افزار آپاچی است.
   شرکتهای بزرگ اینترنت، از جمله گوگل (BigTable)، آمازون (Dynamo )، لینکدین (Project Voldemort)، فیس بوک (Cassandra و HBase) سورس فورژ (MongoDB)، اوبونتو (CouchDB) طراحی و راه اندازی گروه پایگاه داده NoSQL را بر عهده دارند. بخش قابل توجهی از این پروژه ها متن باز و آزاد است.

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

مزایای استفاده از NoSQL بجای SQL چیست؟[ویرایش]

اولین و مهم ترین مزایا عدم طراحی شمای (الگو) خاص برای داده هاست و در این سیستم داده های ورودی می تواند هر موقع تغییر نوع پیدا کرده و سیستم باید خودش را با آن مطابق کند. دومین مزیت قابلیت چند بخشی شدن خودکار و تشخیص هوشمند یکپارچگی بوده که در SQL طراح باید چند سرور بودن را در طراحی خود حتما لحاظ می کرد و بر طبق آن شمای پایگاه داده را پیاده سازی می کرد ولی در سیستم NoSQL چند سرور بودن بخاطر هوشمندی و بالا بودن سطح سیستم هیچ مانعی برای ادامه کار ندارد. سومین مزیت هم که در سیستم قبلی حرفی از آن زده نشده بود وجود Cache برای افزایش سرعت بازیابی اطلاعات می باشد که همانند پردازنده در مواجه شدن با منابع مشابه و یکسان که آنها را در Cache نگهداری می کرد در سیستم NoSQL هم داده های پراستفاده در Cache نگهداری می شوند. پس استفاده از NoSQL باعث افزایش سرعت در طراحی و اجرای پایگاه داده شده و همچنین محدودیت های قالب قدیمی را از میان برمی دارد که بیشتر مورد نیاز دنیای امروز و آینده اطلاعات و داده ها می باشد. [۲]

نمونه[ویرایش]

نمونه NoSQL :

منابع[ویرایش]