Sales2 min read442 words

ما هو Neo4j؟ ما هي فوائد Neo4j؟

Burak Kaşıkcı

Burak Kaşıkcı

PlusClouds Author

Cloud & SaaS

ما هو Neo4j؟ ما هي فوائد Neo4j؟

Neo4j ، قاعدة بيانات رسومية تتميز بقدرتها على تخزين ومعالجة البيانات الكبيرة والعلاقات، وسهلة الاستخدام (حتى أن لديها لغة استعلام تشبه كثيرًا SQL تسمى cypher) وتحتل مراتب عالية في تصنيف DB-Engines. وفقًا لما يقولونه، يمكننا تعريفها على أنها "أسرع طريق إلى الرسوم البيانية" . بعد العثور على الإجابة على سؤال ما هو Neo4j؟ دعونا ننتقل إلى بعض المصطلحات المهمة التي نستخدمها عند تحديد هيكلنا.

ما هي العقد؟ وما هي التسميات؟

قبل استخدام قاعدة بيانات Neo4j دعونا نجد إجابات على أسئلة ما هي العقد و ما هي التسميات .

العقد

كل سجل يمثل عقدة بالنسبة لنا. هذه هي سجلاتنا الرئيسية ويمكننا إضافة خصائص داخل هذه السجلات تسمى "الخصائص": مثل id، الاسم، العنوان. باستخدام خاصية التسميات، يمكننا استخدام كل منها بطريقة أكثر تنظيماً.

التسميات

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

لإنشاء عقدة بدون تسمية

Create (n)

بينما يمكننا إنشاء عقدة تحتوي على تسمية 

Create (n:شخص)

بهذه الطريقة.   أو إذا أردنا إضافة هذه العقدة معًا بشكل محدد

Create (n:شخص {id:1, companies: [1,2,3], name: 'Burak'})

في هذا الشكل. بما أنني سأستخدم المعلومات المتعلقة بـ شخص و شركة ، فقد أنشأت عدة سجلات جماعية كما هو موضح أدناه.

Create (q:شخص {id:1, companies: |1,2,3|, name: 'Burak'}),
(w:شخص {id:2, companies: [1], name: 'Uzay'}),
(e:شخص {id:3, companies: [2], name: 'Yaprak'}),
(r:شخص {id:4, companies: [3], name: 'Ali'}),
(t:شخص {id:5, companies: [2,4], name: 'Veli'}),
(y:شركة {id:1, name: 'X Company'}),
(u:شركة {id:2, name: 'Y Company'}),
(o:شركة {id:3, name: 'Z Company'}),
(p:شركة {id:4, name: 'Q Company'})
هنا تم إنشاء 5 سجلات بتسمية شخص و 4 عقد بشركة.


هكذا تم تشكيل عقدنا من نوع شخص;

وعقدنا من شركة كانت كما يلي;


يمكن أن تحتوي العقدة على تسميات متعددة أو قد لا تحتوي على أي تسميات على الإطلاق. لأن جميعها تؤدي فقط إلى عملية التجميع ولا يمكنها الاحتفاظ بخصائص إضافية. جميع الخصائص يمكن أن تحتفظ بمعلومات العقد.

العلاقات

Neo4j أحد أهم ميزاته هي العلاقات التي نسميها العلاقات. وفقًا للاستعلام الذي نكتب هنا، يمكنه إعطاؤنا نتائج رائعة بسرعة أثناء إنشاء العلاقات بين المستويات المختلفة 1-1 بالإضافة إلى 2، 3، وما فوق.

إذا أخذنا المثال أعلاه كمرجع، يمكننا رؤية أن كل شخص مرتبط بشركة واحدة أو أكثر. هنا، يمكننا إنشاء علاقتنا التي سنطلق عليها اسم علاقة الشخص والشركة عن طريق دمجها مع شرط where في SQL، يمكننا إنشاء علاقاتنا كما هو موضح أدناه.

Match (a:شخص), (b:شركة)
where (b.id IN a.companies)
create (a) - [r:شخص-شركة {name:a.name+'<->'+b.name}] -> (b)
return type(r), a,b
بعد إنشاء علاقاتنا، كانت الصورة النهائية داخل Neo4j كما يلي;



لقد قمنا بتقديم مدخل بسيط حول ما هي قاعدة بيانات Neo4j وما الفوائد التي توفرها أثناء الاستخدام. تحسينها واستخدامها حسب الحاجة هو بين يديك.

بالتوفيق! 

Frequently Asked Questions

ما هو Neo4j وما الذي يجعلها قاعدة بيانات رسومية؟

Neo4j هي قاعدة بيانات رسومية تتميز بقدرتها على تخزين ومعالجة البيانات الكبيرة والعلاقات وتُعد سهلة الاستخدام. كما أنها تدعم لغة استعلام تشبه SQL تسمى cypher وتحتل مراتب عالية في تصنيف DB-Engines.

ما المقصود بالعقد في Neo4j؟

العقدة هي سجل رئيسي يمثل كائنًا داخل Neo4j. يمكن إضافة خصائص داخل العقدة مثل id والاسم والعنوان، وتُستخدم التسميات لتنظيم العقد معًا.

ما المقصود بالتسميات في Neo4j؟

التسميات هي الأسماء التي نمنحها لمجموعات العقد، مثل 'شخص' و 'شركة'. وهي تساعد في تنظيم العقد وربطها معًا.

كيف يتم إنشاء عقدة بدون تسمية مقابل عقدة بتسمية؟

يمكن إنشاء عقدة بدون تسمية باستخدام Create (n). يمكن إنشاء عقدة تحتوي على تسمية باستخدام Create (n:شخص).

هل يمكن أن تحتوي العقدة على أكثر من تسمية أم لا تسمية؟

نعم، يمكن أن تحتوي العقدة على تسميات متعددة أو قد لا تحتوي على أي تسميات. التسميات تؤدي فقط إلى التجميع ولا يمكنها الاحتفاظ بخصائص إضافية، بينما يمكن للعقد أن تحتوي على الخصائص التي تحفظ معلومات العقد.

ما هي العلاقات في Neo4j ولماذا تعتبر مهمة؟

العلاقات هي أحد أهم ميزات Neo4j، حيث تسمح بربط العقد ببعضها بسرعة وتدعم ربط مستويات مختلفة من البيانات. يمكن إنشاء العلاقات بين العقد باستخدام استعلامات مثل MATCH وCREATE كما في الأمثلة.

كيف تبدو أمثلة إنشاء العقد والعلاقات كما وردت في النص؟

يُظهر النص أمثلة لإنشاء عقدة بدون تسمية باستخدام Create (n) وعقدة بتسمية باستخدام Create (n:شخص). كما يعرض مثالاً لإنشاء عدة عقد من نوع شخص مع بياناتها وربطها بعقود من نوع شركة كما في الأمثلة.