نو اس کیو ال | No SQL

نو اسکیو ال | No SQL


 

چکیده

در دهه های گذشته، ذخیر ه سازی موثر و بدون تناقض داده ها جنبه مهم مدیریت داده بوده است. امروزه مساله ذخیره سازی داده ها سهم کمتری در میان مساله مدیریت داده ها دارد. مدیریت داده ها و استفاده از آن ها حتی نسبت به ده سال قبل، شکل دیگری به خود گرفته است. شبکه های اجتماعی، سیستم های امنیتی و هوشمند، میزبان های رسانه دوربین های مدار بسته، سیستم های مدیریت نقشه ها، شبکه های سنسوری و هر یک به نوعی خاص نیازمند  استفاده  و مدیریت داده ها هستند. به عبارتی هر جنبه کیفی استفاده از داده ها مانند امنیت و سرعت دسترسی، امکان تغییر و توسعه داده ها به شکل های گوناگون و باعث شدند مدل های ذخیره سازی متفاوتی برای داده ها به وجود آید. علاوه بر این موارد، حجم عظیم داد ه های مبادله شده باعث ایجاد مساله ای تازه به نام داده های بزرگ شده است. بنابراین حوز هی مطالعاتی در زمینه ی داده ها بسیار وسیع است. در این بخش سعی شده که به معرفی اجمالی از چند مدل ذخیره سازی داده ها و سیستم های مدیریت مربوط به آن مدل ها پرداخته شود. از آنجا که مدل داده ای یک پایگاه داده ها، رابطه مستقیمی با سیستم مدیریت آن پایگاه داده دارد، البته به جز نوع بدون قالب آن، دراین نوشته گاهی اوقات از واژه «مدل» و «پایگاه داده ها» به جای «سیستم مدیریت پایگاه داده ها»  استفاده  شده است. هرچند که هر کدام مفاهیمی جدا هستند.

 

معرفی سیستم های مدیریت پایگاه داده های NoSQL و مخازن داده

 

گرچه مدل رابط های بسیار قدرتمند و انعطا ف پذیراست، اما کارکردن با این مدل داده م هارت خاص خود را می طلبد. جدای از این، خیلی از کاربران، مشکلات و نیازمندی هایی دارند که راهکار پایگا ه داده های رابط های و حتی شئ-رابط های برایشان مناسب نیست. در دهه اخیر سیستم هایی موسوم به NoSQL و برنامه های مربوط به آن ها بسیار پرطرفدار و فراگیر شده اند، با این شعار که در کنارمعرفی کارکرد های جدید، بسیار زیاد دشواری های کارکردن با مدل رابطه ای را نیز برطرف کنند. در واقع هدف این است که با ریش هکن کردن محدودیت های سختگیرانه ای که قبلا در سیستم رابطه ای معرفی شده بود، بتوان به راحتی و انعطاف بالا در نگهداری، پرسجو و  استفاده  از داده ها رسید. پایگاه داده هایNoSQL  با  استفاده  از شیوه های ساخت نایافته یا ساخت یافته در زمان عمل  به حذف محدودیت های رابطه ها کمک می کند و راه های متعدد و مختلفی را جهت موارد  استفاده  ی خاصی هم چون ذخیره تمام متن اسناد ارائه می کند. بر خلاف آنچه که در مقدمه آورده شده، در سیستم های پایگاه داده های NoSQL هیچ مدل داده ای همانند سیستم های پایگاه داده های رابطه ای، مورد  استفاده  یا نیاز نیست. هر سیستم مدیریت پایگاه داده های NoSQL ، به منظور های خاص و هر یک به شیوه خاص، این منطق را پیاده سازی کرده اند. این پیاده سازی ها و راهکار های بدون قالب هم اجازه ی پشتیبانی از انواع نامتناهی از فرم های داده ای را فراهم می آورد و هم این  که به طور ساده و بسیار موثری، از قالب «کلید-مقدار »ی که در مدل رابطه ای بود، پشتیبانی می کنند. پشتیبانی از قالب کلید-مقدار، بیشتر برای تعداد داده های کوچک و معمولا به منظور cache کردن داده ها به کار می رود که در بخش مقایسه سیستم های NoSQL به آن پرداخته می شود. بر خلاف پایگاه داده های رابطه ای، قادر خواهیم بود تا کلکسیونی از داده ها را درون یک سیستم پایگاه داده های NoSQL همانند MongoDB داشته باشیم. این پایگاه داده های یا به عبارت دیگر این «مخازن اسناد» هر داده را در کنار سایر داده ها، تحت عنوان یک کلکسیون یا همان سنددر پایگاه داده های نگهداری می کند. این اسناد می توانند تحت عنوان اشیاء داده مستقل مانند قالب JSON به نمایش درآیند و همچنین بر اساس صفت هایش پرسجو شوند.سیستم های پایگاه داده های NoSQL بر خلاف سیستم رابطه ای که از زبان SQL  استفاده  می کرد، روش های مشترکی را برای پرسجو از داده ها ارائه نمی کنند و هر سیستم NoSQL راهکار پرسجو یا دسترسی خاص خود به داده ها را دارا است.

 

مقایسه سیستم های مدیریت پایگاه های داده مبتنی بر  رابطه و NoSQL

 

جهت ساده سازی در ارائه ی مفهوم، سعی میگردد تا تفاوت های این دو سیستم بررسی گردد ساختار و نوع داده نگهداری شونده: در سیستم رابطه ای، نیازمند یک ساختار از صفات برای نگهداری از داده ها هستیم، بر خلاف NoSQL  که معمولا اجباری را تحمیل نمی کند. پرسجو: همه  پایگاه داده های رابطه ای استانداردSQL  را تا حدودی پیاده سازی کرده اند و میتوانند از طریق SQL مورد پرسوجو قرار گیرند. در NoSQL شرایط عکس است. همان طور که گفته شد، هر پیاده سازی، روش خودش را برای کار با داده ها دارد. بسطپذیری: هر دو این راهکار ها قابل رشد به

صورت عمودی هستند.)مثلا افزایش منابع سیستم. هرچند با پیشرفت و ساده تر شدن برنامه ها، راهکار هایNoSQL ابزار های راحت تری را در جهت رشد افقی ارائه میکنند مثلا ساختن یک cluster از چندین ماشین قابلیت اتکا: هنگامی که مساله ی قابلیت اطمینان در داده ها و تضمین تراکن ش های انجام شده مطرحباشد، همچنان بهتر است بر روی پایگاه های داده های رابطه ای شرط ببندید! پشتیبانی: پایگاه داده های رابطه ای، قدمتی طولانی دارند. همان طور که گفته شد، بسیار پرطرفدار هستند و پیدا کردن پشتیبانی برای آن ها چه به صورت رایگان و هزینه  ای به راحتی امکا نپذیر است. طبیعی است که حل مشکلات نیز در سیستم سنتی بسیار سریعتر از سیستم های تازه به ظهور رسیده مانند MongoDB که گفته می شود ذاتا پیچیده است، خواهد بود. داده های پیچیده و نیاز به نگهداری و پرسجو: به طور ذاتی، پایگاه داده های رابطه ای از منطق go toجهت پرسجوه ای پیچیده و برآورده نمودن نیاز نگهداری از داده ها  استفاده  میکنند که در این حوزه پیشرو بوده و بسیار موثرترند. گرچه در ادامه به جزئیات بیشتری از سیستم هایNoSQL  پرداخته میشود، لیکن موارد  استفاده  یا عدم  استفاده  از این سیستم ها را میتوان به طور کلی به این شکل عنوان کرد:

 اندازه کار: اگر با دسته های عظیم از داده ها سروکار دارید، بسط دادن این داده ها توسط خانواده پایگاه داده های NoSQL راحت تر صورت میگیرد.

سرعت: پایگاه داده های NoSQL معمولا سریعترند،و بعضی وقت ها در زمان عملیات نوشتن به شدت سریعترند! عملیات خواندن هم بسته به نوع پایگاه دادهNoSQL  و داده های مورد پرسجو میتواند بسیار سریع صورت بگیرد. طراحی بدون

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

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

 

سیستم های مدیریت پایگاه داده هایNoSQL و مدل های آن ها

 

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

مبتنی بر مقدار-کلید

مبتنی بر ستون

مبتنی بر سند

مبتنی بر گراف

 

مبتنی بر کلید-مقدار:

 

این مدل می تواند به عنوان ساده ترین مدل در بین سایر مد ل های این دسته و نیز زیرساخت مفهومNoSQL   شناخته شود. این نوع از پایگاه داده های با تطابق کلید ها و مقادیر کار می کنند، چیزی شبیه دیکشنری هیچ چیزی به عنوان ساختار یا رابطه وجود ندارد. پس از اتصال به پایگاه داده یک برنامه می تواند یک کلید را عنوان کند مانندthe_answer_to_life   و یک مقدار متناسب مثلا ۴۲ را دریافت کند. سیستم های مدیریت پایگاه داده های

مبتنی بر مقدار-کلید بطور معمول برای ذخیره ی سریع داده های اولیه به کار می روند. آن ها بسیار کارا، موثر و معمولا بسط پذیرند.

 نکته: وقتی صحبت از دیکشنری در دنیای کامپیوتر می شود، منظور دسته ای خاص از اشیاء داده است که از آرایه ای از کلکسیو ن ها با کلید های مجزا تشکیل شده اند و هر کلید، با یک مقدار تطابق دارد.

برای سیستم های مدیریت پایگاه داده های  NoSQLمبتنی بر کلید-مقدار می توان موارد زیر را معرفی نمود:

Redis درون حافظه اصلی قرار می گیرد و امکان ماندگار بودن در حافظه را نیز دارد. Riak قابلیت بسط پذیری بالا، و قابلیت چند نسخه سازی Memcached / MemcacheDB قابلیت بسط پذیری موارد مناسب جهت استفاده caching سرعت ذخیره بالا، و گاهی تکراری داده ها و با هدف استفاده در آینده نزدیکدر صف قرار دادن: برخی از سیستم ها مانند  Redisاز لیست ها، دسته ها و ص ف ها و پشتیبانی می کنند. توزیع عملیات و اطلاعات: می توانند جهت پیاده سازی الگوی معماری Publish-Subscribe موثرباشند. نگهداری از اطلاعات زنده: برنامه هایی که نیازمند نگهداری از  حالت هستند، می توانند از این سیستم ها  استفاده  کنند.

 

مبتنی بر ستون:

 

سیستم های مدیریت پایگاه های داده مبتنی بر ستون، بر اساس قدرتمندسازی همان طبیعت کلید-مقدارشکل گرفته اند. بر خلاف آن تصور عامه در اینترنت که گفته می شود یادگیری این پایگاه داده ها مشکل است، این نوع پایگاه داده ها به طور خیلی ساده و بر اساس ساخت کلکسو ن هایی از یک یا چند جفت کلید-مقدارکار می کنند که با یک رکورد مطابقت دارد. بر خلاف تعاریف قدیمی از قالب در سیستم های رابطه ای، یک سیستم مبتنی بر ستون نیازمند جدولی از پیش تعیین شده جهت کار کردن با داده ها در آن نیست. هر رکورد با یک یا چند ستون که دربردارنده اطلاعات هستند، ارائه می شود و هر ستون از هر رکورد می تواند متفاوت باشد. به طور ساده، این نوع پایگاه داده ها، آرایه هایی دو بعدی هستند که به موجب آن، هر کلید در اینجا: معادل سطر یا رکورد(، یک یا چند جفت کلید-مقدار را به همراه دارند که به آن ها متصل هستند. این سیستم، اجازه  استفاده  و نگهداری حجم عظیمی از داده های ساخت نایافته را می دهد. )مثلا یک رکورد با مقادیر عظیمی از اطلاعات این سیستم معمولا زمانی  استفاده  می شود که جفت های کلید-مقدار کافی نیستند و ذخیره تعداد بسیار زیاد از رکورد ها با تعداد اطلاعات بسیار بزرگ، یک ضرورت محسوب می شود. این سیستم قابلیت بسط پذیری بسیار خوب و بالایی را دارد. برای سیستم های مدیریت پایگاه داده های مبتنی بر ستون می توان موارد زیر را معرفی نمود:

 Cassandraمخزن داده مبتنی بر BigTable ،DynamoDB وHBase مخزن داده سکوی Apache Hadoop ، مبتنی بر ایده یBigTable موارد مناسب جهت استفاده و نگهداری از داده های ساخت نایافته و اطلاعات غیرفرار اگر دسته ای عظیم از مقادیر و صفات نیازمند به نگهداری برای مدت طولانی باشند، این سیستم بسیار کاربردی است.

 بسط دهی: این سیستم ها به طور ذاتی قابلیت بسط پذیری بسیار بالایی دارند و می توانند با مقادیر بسیار زیادی از اطلاعات سروکار داشته باشند.

 

مبتنی بر سند:

 

سیستم مدیریت پایگاه داده های مبتنی بر سند را می توان آخرین دیوانه بازی دانست که توانسته سیل عظیمی از مردم را به  استفاده  از خود جوگیر کند! این سیستم همانند سیستم مبتنی بر ستون عمل می کند، گرچه امکان رسیدن به تودرتوسازی بیشتری را می دهد:

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

برای سیستم های مدیریت پایگاه های داده مبتنی بر سند می توان موارد زیر را معرفی نمود:

 MongoDB پایگاه داده بسیار پرطرفدار و بسیار کاراCouchDB یک مخزن داده ی پیشرو و سنت شکنCouchbase مبتنی بر JSON ، قابلیت ذخیره در حافظه اصلی موارد مناسب جهت استفاده:

اطلاعات تودرتو: این سیستم ها اجازه کار با داده های بسیار پیچیده و تودرتو را می دهد.

کار با جاوا اسکریپت: یکی از حیات یترین کارکرد های این نوع سیستم ها، روشی است که در آن با برنامه های جاوا اسکریپتی روبرو می شوند، مثلا  استفاده  از قالبJSON  مناسب برای جاوا اسکریپت!

 

 

مبتنی بر گراف:

 

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

 

انواع پایگاه داده های NoSQL پرکاربرد

 

MongoDB

مونگود یبی یک پایگاه داد ه مستقل از بستر است که بر خلاف پایگاه داده  های معمول که بر پایه جدول و پایگاه داده ای رابط های پیاد هسازیمی شوند، مبتنی بر سند پیاد هسازی شده و با  استفاده  از یک قالب پویای شبیه JSON به ی کپارچ هسازی داده ها می پرداز د. مونگود یبی این قالب را BSON می خواند که در انواع خاصی از کاربر دها، سری عتر از پایگاه داده  های رابط های معمول عملمی کند. لازم به ذکر است که مونگو دی بی جزو پایگاه داده  های NoSQL دسته بندی می شود. مونگو دی بی نخستین بار در ۲۰۰۷ توسط شرکتMongoDB inc  ساخته و توسعه داده شد. این شرکت از سال 2009 به مدل توسعه آزاد روی آورد و از طریق پشتیبانی خدمات خود برای شرکت ها، کسب درآمدمی کند. مونگود یبی با  استفاده  از زبا نهای برنام هنویسی سی،س یپلا سپلاس و جاوااسکریپت نوشته شده است. تاکنون مونگود یبی توسط مراکز و شرکت های بزرگی چون لینکدن، سور سفورج، ا ی بی، فوراسکوئر، نیویورک تایمز و به خدمت گرفته شده است. به علاوه مونگو دی بی معرو فترین پایگاه داده ها NoSQL  محسوب می شود. تفاوتا صلی مونگو دی بی با پایگاه داده  های معمول درن وع نگه داری داده ها و رابطه میان آ نهاست. مونگو دی بی بهجای این که از جدول ها برای نگه داری داده های خود  استفاده  کند، از چندین سند ساده برای این کار  استفاده   که اطلاعات نویسنده و عنوان و قیمت را درجدول های متمایز مربوط به هم نگه داری کنیم، در مونگود یبی همه اطلاعات در یک سند نگه داریمی شود.  همچنین مونگو قابلیت بالایی در مجموعه های تکراری دارد، مجموعه تکراری مجموع های است که شامل بیش از دو نسخه از یک داده باشد. معمولا از این قابلیت به این صورت  استفاده می شود که یک عضو اصلی، تمامی اعمال مربوط به خواندن و نوشتن را انجاممی دهد و عضوهای دیگر، از عضو اصلی رونوشت تهیهمی کنند. درصورتی که عضو اصلی در انجام کار خود ناکام بماند، دیگر عضوها طی یک فرآیند رأ یگیری، یکی از عضوها را به عنوان عضو اصلی انتخابمی کنند تا عملیات عضو اصلی را انجام دهد. مونگو از سیستم sharding برای پخش کردن بار پردازشی سامانه  استفاده می کند که موجبمی شود هنگام بروز خطای سخت افزاری، سامانه با مشکل مواجه نشده و به کار خود ادامه دهد. از دیگر ویژگ یهای مونگومی توان به مجموعه های پوش اشاره کرد. این مجموعه ها اندازه های ثابتی دارند و زمانی که مجموعه به اندازه مورد نظر رسید، مانند یک فهرست دایر های عملمی کند.  مونگو همچنین از کاهش نگاشت پشتیبانیمی کند.  مزایای  استفاده  از مونگو رامی توان در موارد زیر خلاصه کرد:

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

 

Neo4j

نئوفورجی یک پایگاه داده گرافی است که توسط جاوا پیاد هسازی شده است. نئوفورجی از زبان توسع هدهندگان خود آن چنین نامیدهمی شود: یک پایگاه داده توکار دیسک-محور و یک موتور مبادلاتی ماندگار جاوا، که داده ها را به جای این که به شیوه معمول در جدول های رابط همند ذخیره کند، در گراف ذخیرهمی کند. نئوفورجبی با دو پروانها رائه می شود:ن گارش جامع همحور آن با GPLv3 ارائه شده و تعدادی از مولفه های اضافی آن با Affero GPL یا AGPL منتشرمی شوند. همچنین نگارش تجاری آن نیز موجود است. نگارش ۱.۰ نئوفورجی در ۲۰۱۰ انتشار یافت و نگارش ۲.۰ آن نیز در 2013 منتشر شد. این پایگاه داده که به عنوان محبو بترین پایگاه داده گرافی شناختهمی شود، در شرکت Neo Technology inc واقع در سانفرانسیسکوی ایالات متحده و مالموی سوئد ساخته و توسعه داده شده است. در نئوفورجی همه داده ها به صورت یک یال، یک رأس یا یک مشخصه ذخیرهمی شود. هر رأس و یالمی توانند به تعداد د لخواه مشخصه داشته باشند. هم یا لها و هم رأ سهامی توانند برچسب بخورند. برچسبها می توانند برای محدود کردن جستجوها به کار روند.

 

از مزایای نئوفورجیمی توان به این موارد اشاره کرد:

 

یک ابزار خوب برای نشان دادن ارتباط میان داده ها است و با توجه به گراف محور بودن پایگاه داده، این کار بسیار ساده و قابل فهم انجاممی شود. این پایگاه داده برای انجام پیمای شهای مختلف روی داده های مرتبط به هم، بسیار ساده و سریع عمل می کند. از مدل داده های بسیار ساده ای بهرهمی برد. در باب معایب این پایگاه داده هممی توان به وجود برخی محدودیت ها در رأ سهای گراف اشاره کرد و این که نئوفورجی از سامانه sharding پشتیبانی نمی کند.

به صورت خلاصه از سامانه sharding برای پخش کردن بار پردازشی سامانه در فرایندهای حجیم و مقیاس پذیر یا فقی سامانه استفاده می شود.

 

Redis

 

ردیس یک پایگاه داده درون حافظه ای است. این پایگاه داده ها از حافظه اصلی کارساز برای ذخیره داده ها

استفاده می کنند که موجب سرعت بیشتر پایگاه داده و  استفاده  کمتر از توان پردازشی کارسازمی شود، هرچند

که طبیعتا پایداری کمتری را نیز به همراهمی آورد. با وجود فناوری سخت افزاری حتی در صورت قطع شدن برق نیز، از داده ها محفاظتمی شود. ردیس از ساختار کلید-مقدار برای ذخیره داده ها بهره برده و کلی دها در آن با پایداری اختیاری ذخیرهمی شوند. به این معنی که تضمینمی شود زمانی که یک تراکنش در پایگاه داده ها ثبت شد، تا مدت مشخص تعیین شده، این تراکنش در سامانه باقی مانده و از بین نمی رود. ردیس نخستین بار در ۲۰۰ ۹ منتشر شد و توسطVMware و Pivotal Software پشتیبانیمی شد، ولی از ۲۰۱۵ توسط آزمایشگاه های ردیس پشتیبانی و حمایتمی شود. از بعُد کارایی و سرعت، در شرایطی که احتیاجی به پایداری داده ها نباشد، ردیس فوق العاده سری عتر از پایگا هداده های معمول که هر تغییری را روی دیسک ذخیرهمی کنند، عملمی کند. ولی در صورت فعال بودن پایداری داده ها، به این دلیل که داده ها به صورت مقطعی، روی دیسک سخت پشتیبان گیریمی شوند، کارایی سامانه مقداری پایینمی آید.  همچنین به ا ین دلیل که ردیس به صورت ت کرشت های و ت کفرایندی عملمی کند، یک اجرا از ردیس، توانایی انجام وظایف موازی را ندارد.  استفاده  از حافظه اصلی در ردیس، با این که موجب سرعت بیشترمی شود، ولی با توجه به هزینه  بالاتر حافظه اصلی نسبت به دیسک سخت، هزینه  بیشترری روی دست کاربران خود می گذارد.

 

 Cassandra

 

کاساندرا یک سامانه مدیریت پایگاه داده توزیع شده است که برای پردازش حجم زیادی از داده روی تعداد زیادی کارساز طراحی شده است. کاساندرا با جاوا توسعه داده شده و دسترسی بسیار بالایی را بدون گلوگاه نرمافزاری ارائه می کند به این معنا که در کاساندرا، هیچ بخشی پیدا نمی شود که درصورت به وجود آمدن مشکلی در آن بخش، تمام سامانه از کاربیفتد. آپاچی کاساندرا در ابتدا به منظور بهبود جستجو در صندو قهای پستی کاربران در فیسبوک ساخته شد و در ۲۰۰۸ به عنوان یک پروژه آزاد روی گوگل کُد منتشر شد، و از 2009 تا کنون، توسط بنیاد آپاچی پشتیبانی می شود. با توجه به کارایی بسیار بالای این پایگاه داده، بسیاری از شرکت های بزرگ فناوری جزو کاربران آن هستند که در این میان، شرکت اپل با ۷۵۰۰۰ گره و ذخیره بیش از ۱۰ پتابایت داده، به عنوان بزرگترین شرکت استفاده  کننده از این پایگاه داده، مطرح می شود.  همچنین در فهرست دیگر  استفاده  کنندگان از کاساندرا، نامه ای معتبری چون ن نقلیکس، ا یبی، گو ددی، گیت هاب، اینستاگرم، سرن و بیش از ۱۵۰۰ شرکت بزرگ دیگر، دیده می شوند. کاساندرا کارایی بسیار بالایی ارائه می دهد. برای مثال در سال ۲۰۱۲، دانشگاه تورنتو طی تحقیقاتی که روی سامانه هایNoSQL انجام داد، در حوزه مقیاس پذیری، کاساندرا را به عنوان برنده بلامنازع در میان دیگر پایگاه داده ها اعلام کرد. در طی آزمایش های آ نها، کاساندرا بیشترین توان عملیاتی را برای بیشترین تعداد گره در تمام آزمایش ها ارائه داد، گرچه این موفقیت با هزینه  زمانی بالای خواندن و نوشتن همراه بود. کاساندرا، از مدل داده ردیف های بخش بندی شده  استفاده  کرده و در آن، ردیف ها در جدول ها دسته بندی می شوند.

فهرست منابع و ماخذ:

  1. nosql-database.org/
  2. en.wikipedia.org/wiki/NoSQL
  3. http://www.enterpriseappstoday.com/data-management/3-limits-of-nosql-data-processing.html
  4. NOSQL Reference Retrieved 2017 cassandra.apache.org
  5. NOSQL Reference Retrieved 2017 neo4j.com
  6. NOSQL Reference Retrieved 2017 redis.io
  7. NOSQL Reference Retrieved 2017 mongodb.com

Your comments