پایگاه داده گراف (Graph Database) چیست؟

مدرس: مسعود کاویانی

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

یک مثال ساده را در نظر بگیرید. فرض کنید، ۳موجودیت (Entity) داریم: نویسنده، کتاب، خریدار

حتماً در ذهن خود، میتوانید این سه موجودیت را به یکدیگر ارتباط دهید. نویسنده یک یا چند کتاب مینویسد، و خریدار یک یا چند کتاب را میخرد. در چنین پایگاه داده ای، ارتباط نقش اساسی و مهمی را دارد. در واقع اطلاعات (در اینجا) کاملاً به ارتباط بین آن ها بستگی دارد. حال فرض کنید، میخواهید از بین میلیون ها کتاب، هزاران نویسنده و چند ۱۰هزار خریدار، پرس و جو (Query)های مختلفی بزنید. مثلاً میخواهید، تمامی خریدارانی که از یک نویسنده خاص، خرید انجام داده اند، را مشاهده کنید. این قبیل پرس و جو ها، در پایگاه داده های رابطه ای، اگر چه سریع است، ولی همیشه به اندازه کافی سرعت لازم را ندارد. مثلا فرض کنید، پایگاه داده شما، بسیار بزرگ شده است و میخواهید پرس و جو های بسیار زیاد، در لحظه (بدون هیچ دیرکردی) پاسخ داده شوند. اینجاست که میتوانید، به جای استفاده از پایگاه داده های رابطه و معمولی، از پایگاه داده های گراف (Graph Databases) استفاده کنید.

تصویر زیر را نگاه کنید:

پایگاه داده گراف

در اینجا، دو نویسنده داریم، که هر کدام یک کتاب نوشته اند. دو خریدار هم داریم که خریدار اولی ۲ کتاب، و خریدار دومی، ۱ کتاب خریده است.

در اینجا، مدل نگاه ما به ساختار داده، به صورت رابطه ای بوده است و همان طور که میدانید، گراف ها نیز، بر اساس رابطه ی بین گره ها (Nodes) تشکیل شده اند. در مثال بالا، هر گره، یک نوع نیز دارد. در این جا سه نوع مختلف داریم: نویسنده، کتاب و خریدار، که در رابطه با یکدیگر در سیستم فعالیت می کنند. همان طور که میبینید، یال ها (Edges) نیز، انواعی دارند. در این جا ۲ نوع یال داریم (نوشتن کتاب، خریدن کتاب)، که به وسیله این یال ها، رابطه های مختلف شناسایی می شوند.

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

پایگاه داده های مبتنی بر گراف، کاربرد فراگیری در زمینه های مختلف، مانند: داده‌کاوی شبکه های اجتماعی، مدل های زنجیره تامین و… دارند.

منابع این بحث و اطلاعات بیشتر

وب سایت Neo4J این قسمت از وب سایت Neo4J وب سایت TechTarget

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

یک دیدگاه دربارهٔ «پایگاه داده گراف (Graph Database) چیست؟»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *