farhoud mojahedzadeh
farhoud mojahedzadeh
خواندن ۲ دقیقه·۵ سال پیش

گراف دیتابیس Neo4j (نمای کلی قسمت اول)

قسمت ها:


گراف تشکیل شده یکسری راس و یکسری یال که یال‌ها راس های مارو به هم وصل می‌کنن. بار اینکه دیتا مون رو مدل کنیم اون رو باید به شکل گراف مدلش کنیم (مدل کردن رو بیشتر توضیح خواهم داد ولی فعلا با من پیش بیاید تا یه نمای کلی از گراف و neo4j نشونتون بدم و بعدا در تمامی مفاهیم عمیق تر میشیم) مثل وقتی بخوایم یه گراف واسه فیلم و بازیگرها و کارگردانها داشته باشیم میتونیم اونو به این صورت نشون بدیم.

گراف ۱ـ۱
گراف ۱ـ۱

در Neo4j به راس، node و به یال‌، relation میگن (من هم قصد ندارم از اینجا به بعد ترجمشون کنم). node و relation هر دو داری

  • یک یا چند label هستند که با : شروع میشن مثل :Actor, :Person
  • و یکسری ویژگی property به صورت key: value مثل name: Jonathan, birthday: datetime("2019-01-01T00:00:00")

و relation به صورت خاص دارای جهت می‌باشد.

با این توضیحات من مدل گراف رو کاملتر می‌کنم:


خوب الان که دیگه Neo4j میخوایم. اگه قسمت قبل رو خوندید من لینک دانلود و راه اندازی رو گذاشتم حالا اگه نخوندید:

به صفحه دانلودش Neo4j برید و دانلودش کنید.

بعد نصبش کنید.

حالا داخل مرورگرتون http://127.0.0.1:7474 را باز کنید.

یوزر و پسورد پیشفرض noe4j هستش.

از اینجا به این محیط دشبورد میگیم.


زبانی که ما با Neo4j حرف میزنیم cypher هستش و بیشتر شبیه ascii-art میمونه تا زبان. (البته دسته کم نگیریدش غولیه واسه خودش)

می‌خوایم گراف بالا را در neo4j بسازیم برای اینکار وارد دشبورد بشید و متن زیر را در command line input وارد کنید:

CREATE (TheMatrix :Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'}) RETURN TheMatrix

این صحنه رو اصولا باید ببیند:

در cypher یک Node به صورت زیر بیان میشه :

(variable :label {key:value})

عبارت CREATE برای ایجاد node جدید استفاده میشه که گراف بعد از خودش رو سعی میکنه بسازه.

پس در خط اول ما با استفاده از cypher از neo4j میخوایم که:

  • یک node جدید بسازد
  • با label ی :Movie
  • با property های 'title: 'The Matrix و ...
  • و node ساخته شده رو در متغیر TheMatrix بریزد.
همونطور که میبنید neo4j چیزی به اسم schema ندارد و شما آزادید هر جور دلتون می‌خواد هرچی می‌خواین بسازین. همینجا فقط اشاره می‌کنم که property ها در neo4j داری type هستند که ما تا الان با یک Number برای release و دوتا String برای title و tagline روبه رو شدیم که cypher خودش تشخیص میده. (type های بیشتری وجود داره و در آینده میگم براتون.)

عبارت RETURN هرچی سمت راستش باشه رو برمی‌گردونه. که در خط دوم تو دشبورد باعث نمایش محتوایات متغیر TheMatrix که یه نود توشه میشه!

در قسمت بعد سعی می‌کنیم نودی که برای فیلم The Matrix ساختیم رو پیدا کنیم و بازیگر‌هاشو بسازیم و بهش وصل کنیم.



neo4joverviewgraph data modelingcypherبرنامه نویسی
شاید از این پست‌ها خوشتان بیاید