گراف دیتابیس ها(graph database) این امکان را برای ما فراهم می کنند که ما داده ها و رابطه ها رو در قالب ساختار گراف ذخیره کنیم .
در پایگاه داده های رابطه ای بستگی به نوع سناریو که داریم بعضی اوقات نیاز هست که برای پیاده سازی روابط خیلی پیچیده ، داده ها را در قالب جداول متعدد ذخیره کنیم .. این جا ما مجبور به نوشتن Query ها و Join های زیادی بودیم که بتوانیم خروجی و گزارش دلخواه مان را بسازیم . هرچقدر کوئری های ما بزرگ و پیچیده بشود و روابط بین جداول زیاد (Join) ، هزینه اجرای دستور ما (Cost of Query) بالا میرود و سرعت اجرای دستورات پایین و پایین تر …
با استفاده از امکانات گراف دیتابیس می توانیم این پیچیدگی ها را ساده کنیم .
Neo4j, OrientDB , Amazon Neptune از معروف ترین پایگاه داده های مبتنی بر گراف هستند
مفاهیم اصلی Graph Database ها :
- گرهها یا node ← نشان دهنده موجودیت یا entitiy های ما هستند .. مثل مردم، کسب و کار ، حسابهای کاربری …
- یالها یا edge ← و بهطور کلی یالها وظیفه نمایش روابط را در دیتابیس بر عهده دارند. همچنین بسیاری از اطلاعات مهم در یالها ذخیره میشوند.
چه موقع از ساختار گراف بهتره استفاده کرد ؟
- مواقعی که برنامه شما دارای داده ها با ساختار سلسله مراتبی است (hierarchy) .. مثل چارت سازمانی
- موجودیت های شما دارای روابط پیچیده چند به چند باشد
به عنوان مثال ، یک گره جدول (node table) Personهمه نود های Person متعلق به یک گراف را در خود نگه می دارد. به طور مشابه ، یال جدول (edge table) مجموعه ای از نوع مشابه لبه ها(یال ها) است. به عنوان مثال ، یک یال جدول Friends تمام یال هایی را که یک شخص را به شخص دیگری متصل می کند ، نگه می دارد. از آنجا که گره ها و یال ها در جداول ذخیره می شوند ، بیشتر عملیات پشتیبانی شده روی جداول معمولی بر روی جدول های گره یا یال پشتیبانی می شوند.
Views: 0
طراح و توسعه دهنده نرم افزار، با سوابق مختلف در زمینه زیر ساخت و SQL Server