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

سامانه‌های مدیریت بانک اطلاعاتی (DBMS) سرنام Database Management Systems به نرم‌افزارهای سطح بالایی اشاره دارند که با رابط‌های برنامه‌نویسی کاربردی (API) کار می‌کنند و مسئولیت ذخیره‌سازی، پردازش و بازیابی داده‌ها را عهده‌دار هستند. بیش از چند دهه است که سامانه‌های مدیریت بانک‌های اطلاعاتی برای کمک به حل انواع مختلفی از مسائل توسعه یافته‌اند. بانک‌های اطلاعاتی رابطه‌ای و غیررابطه‌ای که از طریق واسط‌های کاربردی شبیه به MySQL، PostgreSQL، MongoDB، Redis و نمونه‌های دیگر در دسترس قرار دارند برای پاسخ‌گویی به نیاز روزافزون شرکت‌ها مبنی بر ذخیره‌سازی اطلاعات استفاده می‌شوند. در این مقاله قصد داریم به‌طور اجمالی بانک‌های اطلاعاتی و سامانه‌های مدیریت بانک‌های اطلاعاتی را بررسی کنیم و در ادامه وجه تمایز بانک‌های اطلاعاتی رابطه‌ای و غیررابطه‌ای را بررسی کنیم. 

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

سامانه مدیریت بانک اطلاعاتی (DBMS) سرنام Database Management System، به مجموعه ابزارها، کتابخانه‌های جاسازی شده و روش‌های منحصر به‌فرد مدیریت اطلاعات اشاره دارد. به بیان دیگر، یک نرم‌افزار کامپیوتری است که با هدف مدیریت بانک‌های اطلاعاتی به گونه‌ای طراحی شده تا کاربر درگیر مسائل ذخیره‌سازی، بازیابی و شاخص‌بندی داده‌ها نشود و روی طراحی منطق بانک اطلاعاتی تمرکز کند. DBMS به مدیر یا طراح پایگاه داده اجازه می‌دهد بانک‌های اطلاعاتی را برای کاربردهای مختلف توسعه دهند. برنامه‌های کاربردی می‌توانند به واسطه نرم‌افزارهای DBMS به‌طور هم‌زمان به یک بانک اطلاعاتی دسترسی داشته باشند. سامانه‌های مدیریت بانک‌های اطلاعاتی ممکن است از مدل‌های مختلف بانک‌‌های ‌اطلاعاتی جهت سهولت در توصیف و پشتیبانی از برنامه‌های کاربردی، استفاده کنند (مانند مدل رابطه‌ای یا مبتنی بر شی). نکته مهمی که در رابطه با بانک‌های اطلاعاتی باید به آن دقت کنید زبان اختصاصی بانک اطلاعاتی است که فرآیند ذخیره‌سازی، بازیابی و ارائه اطلاعات را ساده می‌کند. یک سامانه مدیریت بانک‌اطلاعاتی امکان کنترل دسترسی به داده‌ها، اجرای خط‌مشی‌های تمامیت داده‌ها، مدیریت کنترل همزمانی و بازیابی بانک اطلاعاتی پس از شکست و بازگرداندن آن از فایل‌های پشتیبان و حفظ امنیت پایگاه داده را عهده‌دار است. با توجه به این‌که اطلاعات ممکن است اندازه و اشکال مختلفی داشته باشند، انواع مختلفی از DBMS‌ها همراه با برنامه‌های بانک‌های اطلاعاتی توسعه پیدا کرده‌اند تا فرآیند انجام عملیات محاسباتی و برنامه‌نویسی تا حد امکان ساده شود. سامانه‌های مدیریت بانک‌های اطلاعاتی برای انجام هرچه بهتر فعالیت خود از مد‌ل‌ها یا به عبارت دقیق‌تر معماری‌های خاص خود استفاده می‌کنند. مدل‌ها به نوعی ساختار منطقی اشاره دارند که برای مدیریت داده‌ها تعریف شده‌اند. با این‌که در چند دهه اخیر راه‌حل‌های مختلفی در جهت مدیریت هرچه ساده‌تری DBMSها ارائه شده‌اند، اما تنها تعداد محدودی از آن‌ها توانسته‌اند به سرعت محبوب شوند و برای مدت زمان طولانی استفاده شوند. با این‌حال در چند دهه گذشته و به رغم ظهور بانک‌های اطلاعاتی غیررابطه‌ای، بازهم سامانه‌های مدیریت بانک‌های اطلاعاتی رابطه‌ای (RDBMS) انتخاب اول سازمان‌ها به شمار می‌روند. 

مدل‌های مختلف بانک‌های اطلاعاتی

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

مدل رابطه‌ای

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

مدل غیر‌رابطه‌ای (NoSQL)

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

سامانه‌های محبوب مدیریت بانک‌های اطلاعاتی

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

سامانه‌های مدیریت بانک‌های اطلاعاتی رابطه‌ای

‌‌سامانه‌های مدیریت بانک‌های اطلاعاتی رابطه‌ای برای دریافت و قبول داده‌ها به طرحی تعریف شده و روشن نیاز دارند که این طرح/شِماها (Schema) را نباید با تعریف خاص PostgreSQL اشتباه گرفت. قالب‌های تعریف شده از جانب کاربر شیوه جای‌گذاری و استفاده از داده‌ها را مشخص می‌کنند. طرح‌ها شباهت زیادی به جداول حاوی ستون‌ها دارند که تعداد و نوع اطلاعاتی که به هر رکورد تعلق دارد را تعریف می‌کنند. ردیف‌هایی که خود نقطه ورود اطلاعات به بانک اطلاعاتی هستند. از سامانه‌های محبوب مدیریت بانک‌های اطلاعاتی به موارد زیر می‌توان اشاره کرد:

  • SQLite: یک سامانه مدیریت بانک اطلاعاتی رابطه‌ای توکار قدرتمند و پیشرفته است. 
  • MySQL: محبوب‌ترین و پر کاربردترین RDMBS حال حاضر است که طیف گسترده‌ای از وب‌سایت‌ها از آن استفاده می‌کنند. 
  • PostgreSQL: پیشرفته‌ترین سامانه مدیریت بانک‌های اطلاعاتی رابطه‌ای شی‌گرای متن‌باز و سازگار با SQL  است. 
  • سامانه‌های مدیریت بانک‌های اطلاعاتی غیررابطه‌ای (NoSQL/NewSQL)

بسیاری از کاربران زمانی که واژه NoSQL را مشاهده می‌کنند تصور می‌کنند این واژه به معنای نفی اس‌کیو‌ال است و No را به معنای خیر تصور می‌کنند، در حالی که NoSQL به معنای نه فقط اس‌کیو‌ال (Not Only SQL) نامی فراگیر برای گستره‌ی از سامانه‌های مدیریت بانک‌اطلاعاتی است که با نوع سنتی بانک‌های اطلاعاتی رابطه‌ای تفاوت‌های آشکار دارند. مشهودترین تفاوت‌ عدم استفاده از اس‌کیوال به عنوان زبان محاوره ساخت‌یافته است (البته در برخی نمونه‌ها از اس‌کیو‌ال نیز استفاده می‌شود.). نمونه‌ای از این بانک‌های اطلاعاتی، پایگاه داده XML و بانک‌های اطلاعاتی سند-گرا (Document-oriented database) است. یکی از شناخته‌شده‌ترین پیاده‌سازی‌های مرتبط با این مدل سامانه‌ها، بانک‌اطلاعاتی CouchDB است که توسط بنیاد نرم‌افزار آپاچی طراحی شده است. برخلاف بانک‌های اطلاعاتی سنتی قابلیت گروه‌بندی مجموعه‌ای از داده‌ها با یکدیگر در برخی بانک‌های اطلاعاتی NoSQL شبیه به MongoDB وجود دارد. این مخازن ذخیره‌سازی، داده‌های مختلف را کنار یکدیگر و در قالب یک مجموعه منفرد نگه‌داری می‌کنند که ماهیتی شبیه به یک سند دارند. اسناد می‌توانند به شکل اشیا داده‌ای منفرد شبیه به یک فایل JSON باشند، در حالی که بر مبنای برخی ویژگی‌های مختلف امکان اجرای محاوره‌ روی آن‌ها فراهم است. بانک‌های اطلاعاتی NoSQL راهکار مشترکی برای پیاده‌سازی محاوره‌ها روی داده‌ها ارائه نمی‌کنند و هر یک الگوی خاصی برای پیاده‌سازی محاوره‌ها پیشنهاد می‌کنند. 

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

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

ساختار و نوع داده‌های ذخیره شده

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

اجرای محاوره‌ها

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

گسترش‌پذیری

هر دو مدل رابطه‌ای و غیر‌رابطه‌ای به صورت عمودی (Vertically) یا به عبارت دقیق‌تر افزایش منابع سیستمی گسترش‌پذیر هستند. با این‌حال، مدل غیررابطه‌ای راه‌حلی مدرن‌تر و ساده‌تر برای گسترش‌پذیری افقی از طریق ساخت یک کلاستر از چند کامپیوتر ارائه می‌کند (شکل 1). 

پایداری

هر زمان در مورد پایداری داده‌ها و اجرای تراکنش‌ها با رویکرد امنیتی صحبت می‌کنیم بانک‌های اطلاعاتی رابطه‌ای عملکرد بهتری دارند. 

پشتیبانی

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

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟