دفتر

راهنمای عملی کار با داده‌های گراف

یادداشتی درباره کتاب The Practitioner's Guide to Graph Data و اینکه مدل گراف چطور روابط بین داده‌ها را برای مسئله‌هایی مثل پیشنهاد، کشف تقلب و تحلیل شبکه روشن‌تر می‌کند.

نویسنده Ali Zemani۲ دقیقه مطالعه
راهنمای عملی کار با داده‌های گراف

یادداشت خواندن

The Practitioner's Guide to Graph Data از یک تغییر ساده شروع می‌کند: بعضی مسئله‌ها را نمی‌شود فقط با جدول خوب دید.

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

تغییر نگاه

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

این تفاوت ساده به نظر می‌رسد، اما روی طراحی query، storage و حتی زبان محصول اثر می‌گذارد. اگر سؤال اصلی این باشد که «این چیزها چطور به هم وصل‌اند؟»، گراف می‌تواند مدل طبیعی‌تری باشد.

چه چیزی از کتاب می‌ماند

کتاب از مفاهیم پایه شروع می‌کند و به کاربردهای عملی نزدیک می‌شود: گره، یال، traversal، الگوریتم‌های مسیر، recommendation، تحلیل شبکه و طراحی query.

برای من نکته‌ی مهم این است که گراف فقط ابزار database نیست. یک روش فکرکردن درباره‌ی مسئله است. گاهی بعد از این مدل‌سازی، شاید هنوز implementation با relational database کافی باشد. اما وقتی رابطه‌ها زیاد، عمیق یا queryمحور می‌شوند، استفاده از graph database منطقی‌تر می‌شود.

trade-off

گراف راه‌حل جادویی نیست. اگر داده‌ی اصلی ساده و transactionمحور است، اضافه‌کردن graph database ممکن است فقط operational cost بسازد. ارزشش وقتی دیده می‌شود که رابطه‌ها هسته‌ی مسئله باشند، نه تزئین مدل داده.

برای همین، سؤال خوبی که کتاب یادآوری می‌کند این است:

آیا مسئله واقعاً رابطه‌محور است؟

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

منابع

اشتراک‌گذاری