/Introduction to Graph Database

Introduction to Graph Database

بالتأكيد سبق لك وأن بحثت في جوجل عن فيلم ما أو شخصية هامة ولعلك لاحظت إختلاف ظهور نتائج البحث حينها عن نتائج البحث عن شئ أقل شهرة أو يحظى باهتمام أقل بين الناس. نعم ، فذلك الجزء على يمينك هو ما أقصده.


1

لا يكتفي جوجل بإظهار بعض الروابط المتعلقة بما تبحث عنه فقط ولكنه يمنحك المزيد من المعلومات المتعلقة بهذا الموضوع وأيضاً يزودك بما قد يكون على علاقة بموضوعك بشكل أو بآخر. كل هذا نتاج ما أعلنت عنه جوجل منذ 3 سنوات تقريباً وهو ما يسمى بالـ Knowledge Graph.

دوائر كثيرة مرتبطة ببعضها بعلاقات…

كل دائرة تحتوي على بيانات عن نفسها..

العلاقات أيضاً تحتوي على بيانات عن طبيعتها وتفاصيل أخرى ..

بيانات ، معلومات ، علاقات … مهلاً ، هل هذه قاعدة بيانات ؟ مبارك عليك ، لقد استنتجت ما نحن بصدد أن نتحدث عنه اليوم.

Graph Database :

أو قاعدة البيانات المرسومة -من الصعب إيجاد ترجمة حرفية لها – هي نوع من أهم أنواع الـ NoSQL Database ، وعلى عكس ما نعهده من جداول أو سطور في تمثيل البيانات ، تستطيع هنا أن تمثل البيانات على شكل رسم بياني مرن جداً ، دوائر وعلاقات تربط بينها هذا كل ما في الأمر.

وبالرغم من هذه البساطة في تكوين هذا النوع من قواعد البيانات إلا انها تحظى بشعبية واستخدام كبيرين جدا ، نظراً لسهولة استخراج البيانات منها مهما كانت معقدة ، وآدائها المميز فيما يخص البيانات التي ترتبط ببعضها البعض ، كما كان واضحاً في الفيديو السابق أو كما اعتمد عليها موقع مثل Facebook مثلاً لأنها بالضبط تمثل بيانات هذا الموقع بدقة شديدة ، فكل شئ هناك مرتبط بأشياء أخرى كثيرة بطريقة أو بأخرى وهو ما أطلقت بشأنه أيضا ما يسمى بـ Social Graph.

عناصر الـ Graph :
يتكون من Nodes و Relationships تربط بينها ، وكلاهما قد يحتوي على ما يسمى بالـ Properties.

كل Relationship لها اتجاه ، نوع ، بداية ، ونهاية. قد تحوي بعض الـ Properties مثل أن توضح مدى قوة هذه العلاقة أو طبيعتها ، مثل أن تكون : (ممثل -مثّل في-> فيلم) ، فـ”مثّل في” هنا تعتبر Property لهذه العلاقة ، أما عن اسم هذا الـ”ممثل” وسنّه مثلا وأين يسكن فكل هذه Properties للـ Node الخاصة بهذا الشخص. كذلك اسم هذا الـ “فيلم” وتاريخ عرضه ومدته فهي Properties أخرى لهذه الـ Node الخاصة بالفيلم. 

أيضاً يوجد ما يسمى بالـ Labels وتستخدم مع الـ Nodes ، وتستخدم للتعبير عن طبيعة الـ Nodes كما هو في الرسم التالي مثلا : Person – Book – …. إلخ ، وتعتبر أهم مزاياها انها تصنع من الـ Nodes مجموعات مصنفة حيث يمكنك بعد ذلك استخراج جميع الأشخاص مثلا أو جميع الكتب وهكذا.

property_graph_model

أشهر الـ Graph Databases :

Neo4j وهي أشهرهم وهي أيضاً ما سنتعمق من خلالها في هذا الموضوع في مقال قادم بإذن الله خاص بها وحدها ، أيضاً يوجد FlockDB , AllegroGraph, GraphDB, InfiniteGraph وغيرهم الكثير ، حيث لكل منها مميزاتها الخاصة واسباباً لاستخدامها.

كانت هذه مقدمة صغيرة ومختصرة عن الـ Graph Database ، تابعوا المقال القادم إن شاء الله للمزيد والمزيد .. دمتم بخير

Faculty of Engineering, Computer and Control Systems Department, Mansoura University - 2014