جزئیات  
عنوان معیارهای انتخاب یک بانک اطلاعاتی غیررابطه ای(2)
نوع منبع مقاله
گروه NoSQL
تاریخ انتشار 1395/6/5
خلاصه فناوری بانک های اطلاعاتی تاکنون دستخوش سه انقلاب عظیم شده است . اولین تحول به دوران قبل از بانک های اطلاعاتی رابطه ای برمی گردد و بطور اختصاصی بر روی سیستم های کامپیوتری مین فریم اجراء می گردید . در تحول دوم ، بانک های اطلاعاتی رابطه ای ایجاد شده اند با یک فونداسیون قوی جهت مدیریت آنها و تبعیت از یک سری الزامات حاکمیتی در سطح فرآیندها خصوصا مدل تراکنشی . در تحول سوم ، بانک های اطلاعاتی غیر رابطه ای متولد شدند که باعث شکل گیری نسل جدیدی از بانک های اطلاعاتی موسوم به NoSQL گردید . برای انتخاب یک بانک اطلاعاتی غیررابطه ای چه ملاحظاتی را می بایست در نظر گرفت و از چه شاخص ها و یا معیارهایی می توان جهت ارزیابی این گونه بانک های اطلاعاتی استفاده کرد . در این مطلب به بررسی سه معیارکلیدی دیگر جهت بررسی بانک های اطلاعاتی غیررابطه ای خواهیم پرداخت .

فناوری بانک های اطلاعاتی از گذشته تاکنون دستخوش تغییر و تحولات گسترده ای شده است که می توان ماحصل تمامی این تحولات را در سه نسل مختلف گروه بندی کرد.  نسل اول که به دوران قبل از بانک های اطلاعاتی رابطه ای اشاره دارد ، با ظهور کامپیوتر و استفاده از آن  در دنیای کسب و کار آن دوران  آغاز گردید . ISAM  (برگرفته شده از Index Sequential Access Method )  و ساختارهای ایندکسینگ مشابه ،  قدرت نمایی اولین بانک های اطلاعاتی الکترونیکی را به دنبال داشت . تمامی  کارها تحت کنترل و سیطره برنامه بود چراکه در عمل ما شاهد استفاده از سیستم های مدیریت بانک اطلاعاتی (DBMS ) در این نسل از بانک های اطلاعاتی نبودیم . در نسل دوم که از آن با نام عصر بانک های اطلاعاتی رابطه ای یاد می شود مجموعه ای از بانک های اطلاعاتی رابطه ای با امکانات متنوع و گسترده توسط تولیدکنندگان مطرح جهانی ارایه گردید . مهمترین ویژگی این نسل از بانک های اطلاعاتی ایجاد یک فونداسیون قوی برای مدیریت بانک های اطلاعاتی ، تمرکز بر نحوه ارایه داده به کاربر در مقابل شیوه ذخیره سازی ، تبعیت از تئوری رابطه ای  و مدل تراکنشی بود . نسل سوم که از آن با نام عصر بانک های اطلاعاتی غیر رابطه ای یاد می شود ، خانواده جدید و بزرگی از بانک های اطلاعاتی موسوم به NoSQL متولد گردید. ظهور انفجاری این گونه بانک های اطلاعاتی غیررابطه ای پاسخی بود به نیاز روزافزون به برنامه های پیشرفته ای که لازم بود در ابعاد جهانی سرویس ها و خدمات خود را در اختیار مخاطبان قرار دهند و دردسترس بودن مستمر آنها یک جنبه حیاتی برای کسب و کار است . شکل 1 ، مهمترین تحولات سه انقلاب بزرگ در حوزه فناوری بانک های اطلاعاتی را نشان می دهد .
 
تحولات مهم بانک های اطلاعاتی
شکل 1 : تحولات مهم فناوری بانک های اطلاعاتی

پس از گذشت بیش از 20 سال استفاده از کامپیوتر در ابعاد بسیار گسترده ، مجموعه وسیعی از بانک های اطلاعاتی قدرتمند و پیچیده قدم به عرصه وجود گذاشته اند . پس از تعریف مدل رابطه ای در 1970 ، تقریبا هر سیستم بانک اطلاعاتی از یک معماری مشترک استفاده می کرد که مدل رابطه ای ، تراکنش های ACID (  برگرفته شده از چهار واژه Atomic, Consistent, Isolated, Durable  ) و زبان SQL  سه ستون اصلی آن را تشکیل می دادند . در اواسط سال 2008  شاهد یک تحول بزرگ در عرضه سیستم های جدید بانک های اطلاعاتی  بودیم که هیچ یک از آنها پایبند به مدل رابطه ای سنتی نبودند . به این خانواده بزرگ بانک های اطلاعاتی غیررابطه ای ، NoSQL گفته می شود .
در بخش اول با تمرکز بر روی ماهیت بانک های اطلاعاتی غیررابطه ای و بررسی تفاوت عمده آنها با بانک های اطلاعاتی رابطه ای ، به دنبال این موضوع بودیم که نشان دهیم چگونه و با لحاظ کردن چه شاخص هایی می توان یک بانک اطلاعاتی غیر رابطه ای را انتخاب کرد . در این راستا پنج  معیار کلیدی  مدل داده ، مدل پرس و جو ، مدل سازگاری ، اینترفیس های برنامه نویسی یا همان API و   پشتیبانی  تجاری و قدرت انجمن های علمی معرفی گردید. در بخش اول به دو معیار مدل داده و مدل پرس و جو اشاره گردید . در این بخش به بررسی سه معیار دیگر خواهیم پرداخت .

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

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

 معیار چهارم : اینترفیس های برنامه نویسی (API)
اینترفیس های برنامه نویسی سیستم های غیررابطه ای تابع استاندارد خاصی نمی باشند و هر سیستم امکانات و قابلیت های مختص به خود را در اختیار تیم پیاده ساز قرار می دهد. سطح بلوغ API دارای تاثیر مستقیم بر روی زمان و هزینه ایجاد و نگهداری برنامه و بانک اطلاعاتی است . برای هر زبان برنامه نویسی درایورهای مختص آن زبان جهت کار با بانک های اطلاعاتی غیررابطه ای طراحی شده است ( با توجه به رویکرد بانک اطلاعاتی غیررابطه ای )  تا با توجه به سیاست های تدوین شده بتوان با داده و سرویس ها کار کرد. به این نوع درایورها اصطلاحا Idiomatic Drivers گفته می شود . بدیهی است کار با این نوع درایورها از بطن زبان های برنامه نویسی که پیاده کنندگان با آنها به خوبی آشنا می باشند ، راحت تر می باشد  و می تواند دستاورهای مثبت و مفیدی را هم از بعد زمانی و هم از بعد  هزینه به دنبال داشته باشد .  به عنوان نمونه بانک اطلاعاتی MongoDB  از این نوع درایورها در  بیش از ده زبان برنامه نویسی  سی شارپ ، جاوا ، دات نت ،  پایتون ، php ، perl ، جاوا اسکریپت، Ruby ، اسکالا ، Node.js و C حمایت می نماید .
برخی بانک های اطلاعاتی غیررابطه ای تلاش کرده اند تا یک لایه دستیابی مشابه SQL را به بانک اطلاعاتی اضافه نمایند.  این کار باعث کاهش منحنی یادگیری برای آن دسته از پیاده کنندگانی و مدیران بانک اطلاعاتی می گردد که دارای مهارت لازم جهت کار با SQL می باشند . بررسی توانمندی واقعی نسخه های پیاده سازی شده این نوع لایه های دستیابی قبل از شروع کار الزامی است . چرا که در بسیاری از نسخه های پیاده سازی شده هدف ارایه امکانات لازم برای عملیات خواندن است و در سایر موارد نظیر نوشتن همچنان می بایست از امکانات همراه با بانک اطلاعاتی غیررابطه ای ( امکانات ذاتی ) استفاده کرد . اعمال یک مدل رابطه ای بر روی هر نوع بانک اطلاعاتی غیررابطه ای ، می تواند عواقب فاجعه باری را در ارتباط با عملکرد و نگهداری برنامه به دنبال داشته باشد .

جمع بندی معیار چهارم : API
  • سطح بلوغ و قابلیت های API در محصولات غیر رابطه ای متفاوت است .
  •  بانک اطلاعاتی غیررابطه ای MongoDB با ارایه درایورهای Idiomatic باعث صرفه جویی زمانی و هزینه ای در ایجاد و توسعه برنامه ها شده است .
  • تمامی نسخه های SQL که امروزه برای راحتی کار با بانک های اطلاعاتی غیررابطه ای ایجاد شده است ، معادل نمی باشند و می بایست با دقت این نوع اینترفیس های مشابه SQL را بررسی کرد تا این اطمینان حاصل شود که قادر به تامین نیاز برنامه ها و خواسته پیاده کنندگان می باشند . 

معیار پنجم : پشتیبانی تجاری و قدرت انجمن های علمی 

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

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

منابع  :