پایگاهدادههای گرافی یا رابطهای؟ از کدام استفاده شود؟ چه موقع؟
دادگانهای (پایگاهدادههای) رابطهای سنتی که از دهه ۸۰ بهمثابه نیروگاه برنامههای کاربردی نرمافزاری بودهاند، وقتیکه دادهها پیشبینیپذیرند و بهراحتی با جداول و ستونها و ردیفها منطبق میشوند و اتصالات در پرسمانها (queries) زیاد نیست، کارکرد مناسبی دارند.
اما قابلیت نرمافزارهای رابطهای برای کار با حوزههای پرمحتوا با دادههای مرتبط باهم، کافی نیست.
در سامانههای مدیریتی دادگان رابطهای (RDBMS)، دادهها فقط بهصورت مجموعهای از جدولها و ستونها مدل میشوند و وقتی دادگانها ارتباط داخلی بیشتری پیدا میکنند، اتصالها (joins) و خوداتصالهای (self-joints) بیشتری به وجود میآیند. جستجو در این دادگانها ازلحاظ فنی پیچیده و اجرای آن پرهزینه است. بهعلاوه بلادرنگ کردن دادگانهای رابطهای آسان نیست، زیرا به دلیل افزایش حجم کلی این دادگانها اجرا متوقف میشود و کاربران انتهایی منتظر میمانند.
این مشکلات موجب ظهور نوع دیگری دادگان برای بهینهسازی دادههای مرتبط باهم شد: «دادگان (پایگاه دادههای) گرافی». توجه به دادگان گرافی ازآنجهت افزایش یافت که شرکتها با این دادگان میتوانستند با حجم انبوه دادههای مرتبط باهم، که امروزه موردنیاز شرکتها است، کار کنند.
عبورکردن، نه متصلکردن
دادگانهای گرافی نهتنها با نقاط مجزای اطلاعاتی، بلکه با شبکههای درحالتکاملِ ارتباطات بهخوبی منطبق میشوند. این دادگانها خصوصاً وقتی کارکرد مناسبی دارند که روابط درونی بین دادهها اهمیت دارد و برای پرسمانها به جستجو و استخراج این دادهها نیاز است؛ زیرا دادگانهای گرافی، اطلاعات روابط را بهعنوان موجودیتِ (entity) کلاساول ذخیره میکنند.
بهعلاوه به دلیل انعطافپذیری مدل دادگان گرافی میتوان بدون تغییر شبکه فعلی یا انتقال دادهها، گرهها (نودها) و روابط جدیدی را افزود. ازآنجهت که روابط دادهها در مرکز است، عملکرد دادگان گرافی در پرسمان، حتی پرسمانهای پیچیده و عمیق بازدهی بیشتری دارد.
از بزرگترین تفاوتهای دادگانهای گرافی و دادههای رابطهای، نحوه مستقیم اتصال گرهها است که به موجب آن، برای ارتباط دادهها کافی است اتصالات را دنبال کرد. تعیین اتصالات در زمان درج، مانع بروز مشکلات مربوط به رجوع [1] به نمایه اتصالی [2] میشود، بنابراین بهجای محاسبه گراف دادهها در زمان پرسمان، از گراف دادهها عبور میشود.
این ویژگی که فقط مختص دادگانهای گرافی محلی [3] است، «مجاورت مستقل از فهرست [4]» نامیده میشود. با این ویژگی در پرسمانها در هر ثانیه از میلیونها گره عبور میشود و زمانهای پاسخگویی چندین برابر سریعتر از دادگانهای رابطهای در پرسمانها مرتبط باهم است (بهطور مثال، دوستِ یک دوست FOAF- کوتاهترین مسیر).
مدلکردن، ذخیرهکردن، و جستجو کردن دادههای پیچیده مشتری
آیا منطقی است که مدیران ارشد فناوری از هردوی دادگانهای رابطهای و گرافی استفاده کنند؟ یا آیا باید یکی از آنها را استاندارد کل شرکت کنند؟ امروز ازلحاظ عَملی استفاده از هر دو منطقی است. هر مدل مزایا و معایب خود را دارد، چراکه کاربران فناوری اطلاعات شرکتها معمولاً مشکلات متعددی دارند که نیاز به حل آنهاست، پس هیچ دادگان یا مدل دادگانی وجود ندارد که برای هر شرایطی مناسب باشد.
تشخیص دادگان مناسب کار، مهارت مهمی شده است. رایجترین کاربردهای فعلی دادگانهای گرافی عبارتاند از کشف تقلب [5]، موتورهای پیشنهاد بلادرنگ [6]، مدیریت دادههای مرجع [7]، عملیات IT و شبکه، و مدیریت دسترسی و هویت [8]. بااینحال برای کسب بیشترین بازدهی دادههای مرتبط باهم، استفاده از دادگان گرافی در تمام سازمانها منطقی است.
نحوه انتخاب
رویکرد دقیقی برای انتخاب مناسبترین دادگان وجود ندارد. چطور میتوان فهمید چه موقع و در چه صورت دادگان گرافی بر دادگان رابطهای ارجح است؟ با رسم دامنه (domain) بر تختهسفید شروع کنید. اگر موجودیتهای دامنه با موجودیتهای دیگر «روابط» دارند، و پرسمانها بسته به جستجوی آن روابط است، در این صورت قطعاً دادگان گرافی مناسب است.
«آزمون تختهسفید»، به دلیل انطباقپذیریاش، در بین توسعهدهندگان محبوب است. تطبیقپذیری این آزمون خصوصاً وقتی مفید است که اطلاعات جدیدی در دامنه شناخته میشود یا تغییرات نیازمندیها موجب تغییر مدل میشود.
البته دادگانهای گرافی برای شیوههای فعلی استقرار (دادهها) نیز گزینه مناسبی هستند، زیرا با دادگانهای گرافی قطعاً میتوان مشکلات عملکردی و مقیاسگذاری ناشی از اتصالات را حل کرد یا کاهش داد. علاوه بر اینکه با دادگانهای گرافی میتوان دادههای تراکنشی [9] را با حفظ ACID [10] پشتیبانی کرد، میتوان با دادگانهای گرافی، سامانههای انبار دادهها [11] و کاربارهای تحلیلی آفلاین را نیز به محیطهای بلادرنگ منتقل کرد.
مشکلات بالقوه
بزرگترین معایب دادگان گرافی چیست؟ رشد تعداد دادگانهای گرافی خبر خوبی برای توسعهدهندگان است؛ اما این فناوری نسبت به نرمافزارهای رابطهای که بهاندازه یک نسل عمر دارند، تقریباً نوین است. همچنین ایجاد بازار ثابت برای دادگان گرافی صرفنظر از مدل دادهها زمانبر است.
اگر کارکرد دادگان گرافی طبق انتظار نباشد یا بدتر از انتظار باشد، قطعاً تراکنشها، بازیابی و پایایی تحتالشعاع قرار میگیرند. ازآنجهت که دادگانها گرافی فعلی هنوز جوان هستند، شاید بهتر باشد قبل از بهکارگیری، انطباق ویژگیهای اصلی آن با ویژگیهای وعدهشده بررسی شود.
شایانذکر است که برخی از دادگانهای گرافی، فقط مدلشان گرافی است اما پیادهسازی آنها با دادگانهای سنتی رابطهای یا دیگر انواع دادگانهای NoSQL پشتیبانی میشود؛ درنتیجه به دلیل برگردان پرسمانها به اتصالات، عملکرد زمان اجرا (runtime) تحتالشعاع قرار میگیرد. برای انتخاب هر دادگان، نتایج ممکن را در نظر بگیرید.
نتیجهگیری
ضرورت کسب مهارتهای لازم برای انتخاب روش توسعه
دانستن مهارتهای توسعه اهمیت دارد زیرا تیم باید بین دادگان گرافی و دادگان رابطهای انتخاب کند. امسال شاهد تقاضای بیشتری برای دادگان گرافی و بهبود بازار آن خواهیم بود. با گذر زمان بعید نیست که دادگان گرافی از دادگانهای رابطهای امروز رواج بیشتری بیابند.
با رواج یافتن این دادگانها، زبانهای پرسمان دادههای گرافی مانند سایفر [12]، که اخیراً openCypher آن را در دسترس عموم قرار داده، افزایش یافتهاند. اکثر گرافکارها، انتظار استاندارد شدن زبان سایفر را دارند. با این زبان جستجو در دادگانهای گرافی صرفنظر از محصول، امکانپذیر است، ازاینرو موجب رشد سریع و رونق کل بازار مرتبط میشود.
پیشنهاد میشود با گرافهای آزمایشی (trial) شروع کنید، زیرا علیرغم کاهش هزینه تشخیص دادگان گرافی مناسب برای سازمان، میتوان به نرخ بازگشت سرمایه (ROI) بالایی دست یافت.
[1] lookup
[2] Join index
[3] native graph database
[4] index-free adjacency
[5] fraud detection
[6] real-time recommendation engines
[7] master data management
[8] identity and access management
[9] transactional data
[10] تجزیهناپذیری، همخوانی، انزوا و پایایی (Atomicity, Consistency, Isolation, Durability)
[11] Warehouse systems
[12] Cypher