مقدمه:

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

بانک اطلاعاتی رابطه ای و مفاهیم اولیه آن

اگر بخواهیم تعریفی ساده برای بانک اطلاعاتی رابطه ای ارائه کنیم باید بگوییم منظور از این بانک اطلاعاتی، مجموعه رابطه ها (Relation) و جداول و ارتباط بین آنها (Relationship) است. توجه داشته باشید که برای هر یک از سیستم های معمولی و خانگی یک بانک اطلاعاتی به صورت مجزا تعریف می شود. اما در سازمان های بزرگ، بین سیستم ها ارتباط وجود دارد. بنابراین در چنین سازمان هایی، بانک های اطلاعاتی با هم تلفیق شده و پس از اجرای فرایند یکپارچه سازی، بانک اطلاعاتی جامع ایجاد می شود.
برای مدیریت بانک اطلاعاتی رابطه ای از سیستم های مختلف استفاده می شود. ویژگی هر یک از این سیستم ها، انحصاری است. ORACLE، MS ACCESS، و SYBASE نمونه ای از این سیستم های اعمال شده در این سامانه هستند. توجه کنید که تمام سیستم های موجود برای مدیریت بانک اطلاعاتی رابطه ای از یک زبان مشترک استفاده می کنند. SQL زبان مشترک همه سیستم های مدیریت بانک اطلاعاتی رابطه ای است.

مفاهیم اصلی در بانک اطلاعاتی رابطه ای

  •  موجودیت (Entity)

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

  • کلید (Key)

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

  • وابستگی تابعی (Functional Dependency)

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

بانک های اطلاعاتی غیر رابطه ای

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

مزایای بانک های اطلاعاتی رابطه‌ای و غیر رابطه ای

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

مقایسه بانک های اطلاعاتی رابطه ‌ای و غیر ‌رابطه‌ ای

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

  •  در بانک اطلاعات بانک های اطلاعاتی غیر‌ رابطه ‌ای نیازی به طراحی الگو برای داده ها نیست. زیرا سامانه از قابلیت تغییر و تطابق با داده ها برخوردار است.
  •  بانک های غیر ‌رابطه‌ ای دارای قابلیت تشخیص هوشمند یکپارچگی و چند بخشی شدن اتومات هستند. در حالی که بانک های رابطه ای برای مدیریت و کنترل داده ها باید چند سروری بودن را در سیستم وارد کرد.
  • در بانک های غیر رابطه‌ ای برای افزایش سرعت بازیابی اطلاعات از Cache استفاده شده است.
  •  سرعت طراحی و پیاده سازی اطلاعات در بانک های غیر رابطه‌ ای بسیار بیشتر از بانک های رابطه ‌ای است.

تفاوت های موجود در بانک های اطلاعاتی رابطه‌ای و غیر‌رابطه‌ای

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

  • نوع و ساختار دیتابیس

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

  • شیوه اجرای محاوره ها

باید اشاره کنیم که نقطه اشتراک همه سیستم ها در بانک های رابطه‌ای استفاده از زبان SQL است. به همین دلیل، در بانک های رابطه ‌ای برای اجرای عملیات های مختلف تنها از زبان SQL استفاده می شود. اما در بانک های غیر رابطه ای، روش هایی منحصر به فرد برای مدیریت و دسترسی به دیتابیس اجرا می شود.

  • گسترش پذیری

روش گسترش پذیری در بانک های غیر رابطه ‌ای و رابطه ‌ای مشترک و مشابه است. هر دو این سامانه ها، گسترش پذیری را به روش عمودی انجام می دهند. اما سامانه غیر رابطه ‌ای سعی کرده برای گسترش پذیری روشی ساده تر انتخاب کند. به عبارت ساده، در بانک های اطلاعاتی غیررابطه‌ ای برای سهولت گسترش پذیری، از چندین کامپیوتر برای ساخت یک کلاستر استفاده می شود.

  • پشتیبانی

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

سخن پایانی

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