بخشی از مقاله
چکیده
پایگاه داده Nosql برای آندسته از محیط های وبی که دیگر پایگاه داده رابطه ای برای آنها جوابگو نیست، پیاده سازی شده است. در پایگاه داده ی رابطه ای از SQL و خواص ACID برای پیاده سازی استفاده می شود اما Nosql با فدا کردن قابلیت های SQL، قابلیت های دیگری ارائه کرده است. در این پایگاه داده از خواصی به نام BASE استفاده می شود. دیتابیسهای Nosql با دیدگاه امنیت محض طراحی نشده اند و اولویت اصلی آن سرعت دسترسی به دادههای بزرگ با خواص BASE است. بنابراین توسعهدهندگان یا تیمهای امنیتی باید لایههای امنیتی خاص خود را به ابزارهای Nosql سازمانیشان اضافه کنند به صورتی که خواص BASE آن حفظ شود.
کلمات کلیدی: ACID, BASE, NoSQL, CAP, Soft State, NoSql Security
مقدمه
Nosql یک پایگاه داده متن باز1 است. Nosql که مخفف Not Only SQL می باشد در مواردی که نمی توان از پایگاه داده رابطه ای Sql استفاده نمود، بکار می رود. به دلیل متن باز بودن و امکانات بسیار دیگری که Nosql دارد، این پایگاه داده روز به روز در حال توسعه است و بیش از 150 نوع از این پایگاه داده به وجود آمده است. اغلب مشاغل کوچکی که این دیتابیسها را راهاندازی میکنند، از شیوه مدیریت امنیت این گونه جدید اطلاعات کافی ندارند و همین سبب میشود بهطور کلی تهدیدهای امنیتی را نادیده بگیرند و بهصورت پیشفرض سیستم را نصب کنند. این در حالی است که نصب پیشفرض در دیتابیسهای رابطهای سنتی با رعایت بسیاری از نکات امنیتی همراه است.
.1-1 ویژگی های پایگاه داده NoSql
تمرکز Nosql بر روی در دسترس بودن داده ها و عملکرد مناسب آنها می باشد ولی تمرکز در پیاده سازی پایگاه های رابطه ای با خواص سازگاری و جداسازی است. از مواردی که به عنوان خواص اصلی Base مطرح می شود سازگاری داده ها می باشد، در خواص ACID سازگاری بلافاصله بعد از اتمام تراکنش به وقوع می پیوندد، در حالی که در Base این اتفاق نمی افتد و سازگاری موقتی را مطرح می نماییم.ACID ها زمانی که تعداد کاربران و مجموع های داده زیاد نبودند مطرح شدند، گرچه کاربرد آنها در زمان ایجاد بن بست به نوبه خود یک مورد قابل بحث می باشد. اما خواص Base زمانی که بحث توزیع داده ها و سنکرون نمودن آن ها مطرح گردید، یکی از موارد قابل بحث در Base بروز رسانی داد های توزیع شده می باشد.برخی از برنامه ها به خصوص برنامه هایی که در زمینه مالی فعالیت می کنند، نمی توانند از خواص Base استفاده نمایند. برای مثال زمانی که یک کاربر عملیات بانکی برداشت از حساب را انجام می دهد به دلیل عدم بروزسانی آنی در سیستم، پایگاه داده دارای ناسازگاری موقت می شود که در یک سیستم بانکی قابل قبول نیست، لذا این خواص برای چنین مدل هایی کاربرد ندارد.
.2-1 دسته بندی پایگاه داده Nosql
پایگاه های داده ای Nosql به دو دسته تقسیم می شوند:
- 1 تجمع گرا1 - 2 غیر تجمع گرا 2
در حالت تجمع گرا: Nosql مجموعه ایی از اطلاعات را از نود های مختلف موجود در شبکه جمع آوری می نماید. MapReduce می تواند آن ها را مجددا برای جمع آوری در فرمها سازماندهی نماید، این نوع پایگاه داده در زمانی هایی که تجمع داشته باشیم مفید می باشد.غیر تجمع گرا: مانند پایگاه های داده ای گرافی که در این نوع پایگاه داده ها مجموعه ای از خواص مدل های کلید مقدار و ستون گرا و سندگرا را دارا هستند همچنین در آنها رابطه ها نقش مهمی را ایفا می کنند. در مواردی که برنامه دارای سر در گرمی بیشتر می شوند، این نوع پایگاههای تجمع گرا مانند neo4j بیشتر به کار می آیند.
کلید / مقدار: این پایگاه داده ها اساسی ترین نوع پایگاه های داده Nosql هستند. این پایگاه های داده همچون یک دیکشنری عمل می کنند، در این پایگاه های داده نه ساختاری وجود دارد و نه رابطه ای. در این معماری تنها یک کلید داریم - که همچون کلید اصلی در پایگاه های داده رابطه ای عمل می کند - و یک مقدار داریم که مقدار معادل آن کلید را باز می گرداند. معمولاً برای نگهداری اطلاعات ساده استفاده می شود ولی گاهی اوقات ممکن است اطلاعات ذخیره شده بسیار هم پیچیده باشند .[8]
پایگاه های داده ستونی: پایگاه های داده ستونی با کمی توسعه پایگاه های داده کلید - مقدار بوجود آمدند. این سیستم در واقع بجای یک جفت کلید - مقدار، برای هر رکورد در خود چندین جفت کلید - مقدار می تواند داشته باشد. این پایگاه های داده نیازی به ساختار از پیش تعیین شده برای اطلاعات خود ندارند و هر رکورد می تواند چندین ستون مختلف با صفات متفاوت داشته باشد. این معماری را مانند یک آرایه چند بعدی - مکعبی - در نظر بگیرید که برای هر کلید اجازه پیوست کردن هزاران نوع جفت مقدار متفاوت را می دهد. این پایگاه های داده برای ذخیره میزان وسیع و متفاوتی از رکوردها با مقادیر بسیار وسیع از مقادیر در این دیتابیس خیلی خوب جواب می دهد.
پایگاه های داده مبتنی بر سند: معماری این پایگاه داده ها همانند معماری پایگاه داده ستونی است، با این تفاوت که امکان ذخیره با عمق بیشتری - از نظر تودرتو بودن جفت کلیدها - را می دهد. این معماری امکان ذخیره سند در سند را می دهد. هر گونه اطلاعاتی در این معماری می توانند یک سند باشند، از متن ساده گرفته تا یک ایمیل یا عکس و ... . اما با وجود قدرت بسیار بالایی که این نوع پایگاه های داده نسبت به موارد قبلی دارند، اما خواندن و نوشتن در آنها بسیار وقت گیر است. به دلیل اینکه میزان بی شماری سند را می توان درون یکدیگر قرار داد، عمل خواندن باعث می شود تمام این اسناد بازیابی شوند و در هنگام نوشتن هم تمام این توشه دوباره نوشته شود.
پایگاه های داده مبتنی بر گراف: این پایگاه داده از نوع Graph Based است. این نوع معماری به داده ها از دیدی کاملا متفاوت نسبت به مدلهای قبلی نگاه می کند. این مدل، داده ها را مانند یک گراف به هم مرتبط می کند و ساختار یک درخت یا گراف را را به آنها می دهد. در این پایگاه داده، رکوردها هنگام درج در پایگاه داده توسط یک یا چند صفت به هم مرتبط می شوند؛ لذا انجام عملیات ریاضی و استنتاج وقایع از آنها بسیار ساده تر از مدل های دیگر است .این پایگاه های داده مناسب تحقیقات علمی و فنی است.
.3-1 آنالیز خواص Base
دسترسی پذیری:1 سیستم های پایگاه داده همواره در حال کار می باشند. در واقع بر طبق تئوری cap بر این است که سیستم همیشه پا برجا می ماند . پایگاه داده برروی تعداد زیادی از سیستم های ذخیره سازی با قابلیت پخش و تکرار بالا قرار می گیرد که خود باعث ایجاد درجه بالایی از پایداری می شود.