خانه / NoSQL / مفاهیم پایه / مقدمه ای بر بانک های اطلاعاتی NoSQL
پیشگامان عصر NOSQL

مقدمه ای بر بانک های اطلاعاتی NoSQL

بخش اصلی اين مطلب از يكي از مقالات ویژه نامه جنبش NoSQL نشريه ماهنامه شبكه در شماره ۱۳۳ با عنوان پیشگامان عصر جدید پایگاه‌های داده اقتباس شده است که با توجه به تغییرات چند سال اخیر در این حوزه، مطالب آن کمی به روزتر شده است .
در چند سال اخیر، دنیای پایگاه‌هاي داده NoSQL با پروژه‌هاي جذاب و هیجان‌انگیز جدیدی به همراه ادعاهای بلندپروازانه و مشاجره‌هاي مختلف پر‌شده است. مبلغان این فناوري‌ها ادعا مي‌کنند که بسته‌هاي نرم‌افزاری NoSQL جدید، با حذف ساختار و مشکلات کنترل ‌سه‌گانه داده‌ها در پایگاه‌هاي داده‌ای سنتی، به سرعت‌هاي خیره‌کننده‌ای دست پیدا‌کرده‌اند. آن‌ها در مقابل ادعای مشکلات ذاتی چنین پایگاه‌هاي داده‌ای در زمینه قابلیت اعتماد، معتقدند که در این بحث بسیار مبالغه شده است و واقعیت چیز دیگری است. برنامه‌نویسان بسیاری هستند که هدف آن‌ها توسعه برنامه‌هایی است که کاربردهای تجاری و صنعتی بزرگی (مانند برنامه‌هاي بانکداری) ندارند و داده‌هایی نظیر اطلاعات قابل فراموش شدن در زندگی انسان‌ها هدف آن‌ها است. پاسخ چنین افرادی در زمینه چرایی عدم استفاده از ساختار جدولی برای داده‌ها نیز چنین است که این ساختار جدولی سنتی بسیار کوته‌نظرانه و محدود‌کننده است. آن‌ها مي‌گویند‌: «اگر تمام این تغییرات رادیکال ساختاری را در نظر بگیرید، مي‌توانید پایگاه‌هاي داده‌ای آزاد‌تر و به شدت سریع‌تر به دست آورید!»
نتیجه این تفکرات و فعالیت‌هاي پایان‌ناپذیر توسط بسیاری از شرکت‌ها و توسعه‌دهندگان، معرفی راهکارهای شایسته‌اي است که یا هم‌اکنون به‌صورت عملی استفاده مي‌شوند یا به زودی شاهد معرفی یک نمونه موفق استفاده عملی از آن‌ها خواهیم بود. نکته جالب توجه درباره پیدایش بيشتر این پایگاه‌هاي داده‌ای، وجود یک نیاز بزرگ و تولد آن‌ها در شرکت‌هايي است که هم اکنون با حجم عظیمی از کاربران و داده‌هاي مرتبط با آن‌ها سروکار دارند. در این مقاله به بحث و بررسی انواع راهکارهای معروف و مهم NoSQL و ارائه توضیحاتی درباره هر کدام پرداخته‌ایم. بدیهی است، راهکارهای دیگری نیز در این مجموعه وجود دارند که به دلیل اهمیت کمتر، از پرداختن به آن‌ها صرف‌نظر شده و تنها به ارائه نام آن‌ها بسنده کرده‌ایم.

فناوری جدید برای چالش های نوین

در دنیای امروز، حرکت به سمت فناوري‌هاي جدید در کاربردهای سازمانی یا Enterprise و تحولات عمیق و کلی به‌سرعت اتفاق نمی‌افتند. مجموعه‌هاي بزرگ و سیستم‌هاي عظیم نرم‌افزاری تنها زمانی آماده پذیرش تحولات بنیادین مي‌شوند که چالش‌هاي جدید و مهمی در برابر آن‌ها وجود داشته باشد. اتفاقی که امروزه در حال بروز است نیز از این دسته اتفاق‌ها به شمار مي‌آيد. توسعه‌دهندگان و مجموعه‌هاي بزرگ نرم‌افزاری، برای مدت مدیدی است که برای ذخیره‌سازی داده از پایگاه‌هاي داده رابطه‌ای استفاده‌مي‌کردند که معماری اولیه آن‌ها به دهه ۱۹۵۰ میلادی بازمی‌گردد. اما با توسعه اینترنت و پیشرفت نیازهای کاربران و به وجود‌آمدن چالش‌هاي جدید، راه‌حل‌هاي مهمی در دنیای پایگاه‌هاي داده معرفی‌شدند که زمینه ساز تحولی بنیادین در این شاخه از صنعت محاسبات خواهد‌بود.

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

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

مزیت این پایگاه‌هاي داده در مقابل رقبای رابطه‌اي خود، تأخیر کم، توزیع پذیری و جایگزیني‌پذیری بالا است که با استفاده از یک API ساده قابل دسترسی است. همه اين پایگاه‌هاي داده، علاوه بر امکان ذخیره‌سازی کلید/مقدار، قابلیت‌ها و کاربردهای پیشرفته‌تر و بيشتري نیز دارند.

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit is exhausted. Please reload CAPTCHA.