برنامه نویسی

50 سوال ضروری مصاحبه جاوا اسکریپت که باید بدانید

Summarize this content to 400 words in Persian Lang

معرفی

Cypher Query Language (CQL) ابزار قدرتمندی است که برای جستجو در پایگاه‌های داده گراف طراحی شده است. برخلاف پایگاه‌های داده رابطه‌ای سنتی، پایگاه‌های اطلاعاتی گراف در مدیریت داده‌های به‌شدت متصل با روابط نامشخص برتری دارند. CQL نحوی را ارائه می دهد که هم بصری و هم قدرتمند است و ایجاد، خواندن، به روز رسانی و حذف داده های ذخیره شده در پایگاه داده های گراف را آسان تر می کند. در این راهنمای جامع، ویژگی‌ها، محدودیت‌ها، اصطلاحات و دستورات CQL را به همراه مثال‌های عملی برای کمک به شما در استفاده کامل از پتانسیل آن بررسی خواهیم کرد.

فهرست مطالب

ویژگی های Cypher Query Language (CQL)

مناسب برای داده های به شدت متصل

یکی از ویژگی های برجسته CQL مناسب بودن آن برای داده هایی است که به شدت متصل هستند. بر خلاف پایگاه داده های رابطه ای، که در آن روابط اغلب پیچیده و سخت برای مدیریت هستند، پایگاه های داده گراف بر روی اتصالات رشد می کنند. CQL امکان جستجوی شهودی و کارآمد این روابط را فراهم می‌کند و آن را به انتخابی ایده‌آل برای شبکه‌های اجتماعی، موتورهای توصیه و موارد دیگر تبدیل می‌کند.

چندین برچسب برای گره ها

در CQL، یک گره می تواند با چندین برچسب مرتبط شود. این انعطاف پذیری امکان سازماندهی و دسته بندی بهتر داده ها را فراهم می کند. برای مثال، گره‌ای که یک شخص را نشان می‌دهد می‌تواند دارای برچسب‌هایی مانند شخص، کارمند و مشتری باشد که هر کدام جنبه‌های مختلفی از هویت فرد را نشان می‌دهند.

محدودیت های CQL

محدودیت های تکه تکه شدن

در حالی که CQL قدرتمند است، محدودیت هایی دارد. تکه تکه شدن فقط برای دامنه های خاصی امکان پذیر است. این بدان معناست که در برخی موارد، ممکن است برای بازیابی یک پاسخ قطعی، داده ها به طور کامل مورد پیمایش قرار گیرند.

پیمایش کامل نمودار برای پاسخ های قطعی

برای برخی از پرس و جوها، به ویژه آنهایی که شامل روابط پیچیده هستند، ممکن است نیاز به پیمودن کل نمودار باشد تا اطمینان حاصل شود که داده های برگشتی دقیق و کامل هستند. این بسته به اندازه و پیچیدگی نمودار می تواند منابع فشرده و زمان بر باشد.

اصطلاحات در CQL

گره

یک گره نشان دهنده یک موجودیت در گراف است. گره ها می توانند دارای ویژگی هایی باشند که اطلاعات مربوط به موجودیت، مانند نام، سن، یا هر ویژگی مرتبط دیگری را ذخیره می کند.

برچسب

برچسب ها امکان گروه بندی گره ها را فراهم می کنند. آنها جایگزین مفهوم جداول در SQL می شوند. به عنوان مثال، یک گره با یک برچسب Person تمام گره هایی که افراد را نشان می دهند گروه بندی می کند.

رابطه

یک رابطه یک پیوند بین دو گره است. این جایگزین مفهوم روابط در SQL می شود و امکان اتصال مستقیم بین موجودیت ها را فراهم می کند.

ویژگی های

ویژگی ها ویژگی هایی هستند که یک گره یا یک رابطه می تواند داشته باشد. به عنوان مثال، یک گره Person ممکن است ویژگی هایی مانند نام و سن داشته باشد، در حالی که یک رابطه LIKES ممکن است ویژگی هایی مانند since داشته باشد.

دستورات پایه در CQL

ايجاد كردن

دستور CREATE برای ایجاد گره ها و روابط استفاده می شود. این برای ساخت ساختار نمودار اساسی است.

همخوانی داشتن

دستور MATCH برای جستجوی الگوها در نمودار استفاده می شود. این سنگ بنای پرس و جو در CQL است که به شما امکان می دهد گره ها و روابط را بر اساس معیارهای مشخص بازیابی کنید.

ایجاد گره ها

ایجاد گره پایه

ایجاد گره در CQL ساده است. از دستور CREATE و سپس جزئیات گره استفاده کنید.

CREATE (:Person {name:\”John\”, age:30})
CREATE (:Food {name:\”Pizza\”})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد گره با ویژگی ها

گره ها را می توان با خصوصیات ایجاد کرد که جفت های کلید-مقدار هستند که اطلاعات مربوط به گره را ذخیره می کنند.

CREATE (:Person {name:\”Jane\”, age:25, occupation:\”Engineer\”})
CREATE (:Food {name:\”Burger\”, calories:500})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جستجو گره ها

جستجوی پایه گره

دستور MATCH به شما امکان می دهد گره ها را در نمودار جستجو کنید.

MATCH (p:Person) RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جستجوی پیشرفته با بند WHERE

برای جستجوهای خاص تر، از عبارت WHERE برای فیلتر کردن گره ها بر اساس ویژگی های آنها استفاده کنید.

MATCH (p:Person)
WHERE p.age > 20
RETURN p.name, p.age

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد روابط

ایجاد روابط در حین ایجاد گره ها

هنگام ایجاد گره ها می توانید روابط بین گره ها ایجاد کنید.

CREATE (p:Person {name:\”John\”, age:30})-[:LIKES]->(f:Food {name:\”Pizza\”})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد روابط بین گره های موجود

همچنین می توان با استفاده از دستور MATCH روابطی بین گره های موجود ایجاد کرد.

MATCH (p:Person {name:\”John\”})
MATCH (f:Food {name:\”Pizza\”})
CREATE (p)-[r:LIKES]->(f)
RETURN r

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اصلاح گره ها و روابط

افزودن صفات

با استفاده از دستور SET می توان ویژگی ها را به گره های موجود اضافه کرد.

MATCH (p:Person {name:\”John\”})
SET p.occupation = \”Developer\”
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حذف صفات

برای حذف یک ویژگی، مقدار آن را NULL قرار دهید.

MATCH (p:Person {name:\”John\”})
SET p.age = NULL
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اصلاح صفات

ویژگی ها را می توان با تنظیم مقادیر جدید تغییر داد.

MATCH (p:Person {name:\”John\”})
SET p.age = 35
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از توابع جمع در CQL

شمردن

تابع COUNT تعداد گره ها یا روابط را برمی گرداند.

MATCH (n) RETURN count(n)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

AVG

تابع AVG مقدار متوسط ​​یک ویژگی عددی را محاسبه می کند.

MATCH (n) RETURN avg(n.age)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جمع

تابع SUM جمع کل یک ویژگی عددی را محاسبه می کند.

MATCH (n) RETURN sum(n.age)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جوهای پیشرفته در CQL

تعداد روابط بر اساس نوع

برای بدست آوردن تعداد هر نوع رابطه در نمودار، از تابع type استفاده کنید.

MATCH ()-[r]->() RETURN type(r), count(*)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جمع آوری مقادیر در لیست ها

تابع COLLECT لیستی از تمام مقادیر برای یک ویژگی خاص ایجاد می کند.

MATCH (p:Product)-[:BELONGS_TO]->(o:Order)
RETURN id(o) as orderId, collect(p)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نگهداری پایگاه داده در CQL

حذف گره ها و روابط

برای حذف تمام گره ها و روابط، از دستور DELETE استفاده کنید.

MATCH (a)-[r]->(b) DELETE a, r, b

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تجسم طرحواره پایگاه داده

برای درک ساختار نمودار خود، طرح پایگاه داده را تجسم کنید.

CALL db.schema.visualization YIELD nodes, relationships

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ترفندها و نکات کاربردی

یافتن گره های خاص

در اینجا سه ​​راه برای پیدا کردن یک گره به نمایندگی از شخصی به نام Lana Wachowski وجود دارد.

// Solution 1
MATCH (p:Person {name: \”Lana Wachowski\”})
RETURN p

// Solution 2
MATCH (p:Person)
WHERE p.name = \”Lana Wachowski\”
RETURN p

// Solution 3
MATCH (p:Person)
WHERE p.name =~ \”.*Lana Wachowski.*\”
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه های پرس و جو پیچیده

نمایش نام و نقش افراد متولد شده پس از سال 1960 که در فیلم های اکران شده در دهه 1980 بازی کردند.

MATCH (p:Person)-[a:ACTED_IN]->(m:Movie)
WHERE p.born > 1960 AND m.released >= 1980 AND m.released

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برچسب بازیگر را به افرادی که حداقل در یک فیلم بازی کرده اند اضافه کنید.

MATCH (p:Person)-[:ACTED_IN]->(:Movie)
WHERE NOT (p:Actor)
SET p:Actor

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه های کاربردی

موارد استفاده در دنیای واقعی

یک پایگاه داده برای یک فروشگاه آنلاین در نظر بگیرید که در آن باید محصولات، مشتریان، سفارشات و آدرس های حمل و نقل را مدیریت کنید. در اینجا نحوه مدل سازی این مورد در CQL آورده شده است.

پرس و جوهای نمونه

بیایید چند نمونه گره و روابط برای یک سناریوی فروشگاه آنلاین ایجاد کنیم:

CREATE (p1:Product {id: 1, name: \”Laptop\”, price: 1000})
CREATE (p2:Product {id: 2, name: \”Phone\”, price: 500})
CREATE (c:Client {id: 1, name: \”John Doe\”})
CREATE (o:Order {id: 1, date: \”2023-06-01\”})
CREATE (adr:Address {id: 1, street: \”123 Main St\”, city: \”Anytown\”, country: \”USA\”})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا بیایید روابط بین این گره ها را ایجاد کنیم:

CREATE (p1)-[:BELONGS_TO]->(o)
CREATE (p2)-[:BELONGS_TO]->(o)
CREATE (c)-[:MADE]->(o)
CREATE (o)-[:SHIPPED_TO]->(adr)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جو محصولات سفارش داده شده در هر سفارش

برای اطلاع از محصولات سفارش داده شده در هر سفارش، از جمله تعداد و قیمت واحد، از استعلام زیر استفاده کنید:

MATCH (p:Product)-[:BELONGS_TO]->(o:Order)
RETURN id(o) as orderId, collect(p)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جو از مشتریان و آدرس حمل و نقل

برای تعیین اینکه کدام مشتری هر سفارش را انجام داده و هر سفارش کجا ارسال شده است، از این پرس و جو استفاده کنید:

MATCH (c:Client)-[:MADE]->(o:Order)-[:SHIPPED_TO]->(adr:Address)
RETURN c.name as client, id(o) as orderId, adr.street, adr.city, adr.country

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سوالات متداول

زبان پرس و جو سایفر (CQL) چیست؟

Cypher Query Language (CQL) یک زبان پرس و جو قدرتمند است که به طور خاص برای پرس و جو و به روز رسانی پایگاه داده های نمودار طراحی شده است. این به شما امکان می دهد با داده ها به گونه ای تعامل کنید که بر روابط بین نقاط داده تأکید کند.

CQL چه تفاوتی با SQL دارد؟

در حالی که SQL برای جستجو در پایگاه داده های رابطه ای طراحی شده است، CQL برای پایگاه های داده گراف طراحی شده است. این بدان معنی است که CQL در مدیریت داده های پیچیده و بسیار متصل برتری دارد، در حالی که SQL برای ساختارهای داده جدولی مناسب تر است.

آیا می توانم از CQL با هر پایگاه داده استفاده کنم؟

CQL در درجه اول با Neo4j، یک سیستم مدیریت پایگاه داده گراف محبوب استفاده می شود. با این حال، سایر پایگاه های داده گراف ممکن است زبان های پرس و جو خود را با قابلیت های مشابه داشته باشند.

مزایای استفاده از CQL چیست؟

CQL امکان پرس و جوی شهودی از پایگاه های داده گراف را فراهم می کند و مدیریت و تجزیه و تحلیل داده ها را با روابط پیچیده آسان تر می کند. از مجموعه ای غنی از دستورات برای ایجاد، به روز رسانی و حذف گره ها و روابط و همچنین قابلیت های جستجوی قدرتمند پشتیبانی می کند.

آیا یادگیری CQL دشوار است؟

CQL طوری طراحی شده است که کاربر پسند و شهودی باشد. اگر با SQL آشنایی داشته باشید، شباهت های زیادی در CQL خواهید یافت. تفاوت اصلی در نحوه مدیریت روابط داده ها نهفته است.

چگونه می توانم پرس و جوهای CQL خود را بهینه کنم؟

بهینه سازی پرس و جوهای CQL شامل درک ساختار نمودار شما و استفاده از الگوهای پرس و جو کارآمد است. نمایه سازی ویژگی های جستجو شده مکرر و اجتناب از پیمایش کامل نمودار غیرضروری می تواند عملکرد را به طور قابل توجهی بهبود بخشد.

نتیجه

Cypher Query Language (CQL) ابزاری قوی برای مدیریت پایگاه‌های داده گراف است که قابلیت‌های قدرتمندی را برای پرس‌وجو و به‌روزرسانی داده‌های پیچیده و بسیار متصل ارائه می‌دهد. با تسلط بر CQL، می‌توانید از پتانسیل کامل پایگاه‌های داده گراف استفاده کنید و مدیریت روابط پیچیده داده‌ها و انجام تحلیل‌های پیچیده را آسان‌تر کنید.

فهرست مطالب

معرفی

Cypher Query Language (CQL) ابزار قدرتمندی است که برای جستجو در پایگاه‌های داده گراف طراحی شده است. برخلاف پایگاه‌های داده رابطه‌ای سنتی، پایگاه‌های اطلاعاتی گراف در مدیریت داده‌های به‌شدت متصل با روابط نامشخص برتری دارند. CQL نحوی را ارائه می دهد که هم بصری و هم قدرتمند است و ایجاد، خواندن، به روز رسانی و حذف داده های ذخیره شده در پایگاه داده های گراف را آسان تر می کند. در این راهنمای جامع، ویژگی‌ها، محدودیت‌ها، اصطلاحات و دستورات CQL را به همراه مثال‌های عملی برای کمک به شما در استفاده کامل از پتانسیل آن بررسی خواهیم کرد.

فهرست مطالب

ویژگی های Cypher Query Language (CQL)

مناسب برای داده های به شدت متصل

یکی از ویژگی های برجسته CQL مناسب بودن آن برای داده هایی است که به شدت متصل هستند. بر خلاف پایگاه داده های رابطه ای، که در آن روابط اغلب پیچیده و سخت برای مدیریت هستند، پایگاه های داده گراف بر روی اتصالات رشد می کنند. CQL امکان جستجوی شهودی و کارآمد این روابط را فراهم می‌کند و آن را به انتخابی ایده‌آل برای شبکه‌های اجتماعی، موتورهای توصیه و موارد دیگر تبدیل می‌کند.

چندین برچسب برای گره ها

در CQL، یک گره می تواند با چندین برچسب مرتبط شود. این انعطاف پذیری امکان سازماندهی و دسته بندی بهتر داده ها را فراهم می کند. برای مثال، گره‌ای که یک شخص را نشان می‌دهد می‌تواند دارای برچسب‌هایی مانند شخص، کارمند و مشتری باشد که هر کدام جنبه‌های مختلفی از هویت فرد را نشان می‌دهند.

محدودیت های CQL

محدودیت های تکه تکه شدن

در حالی که CQL قدرتمند است، محدودیت هایی دارد. تکه تکه شدن فقط برای دامنه های خاصی امکان پذیر است. این بدان معناست که در برخی موارد، ممکن است برای بازیابی یک پاسخ قطعی، داده ها به طور کامل مورد پیمایش قرار گیرند.

پیمایش کامل نمودار برای پاسخ های قطعی

برای برخی از پرس و جوها، به ویژه آنهایی که شامل روابط پیچیده هستند، ممکن است نیاز به پیمودن کل نمودار باشد تا اطمینان حاصل شود که داده های برگشتی دقیق و کامل هستند. این بسته به اندازه و پیچیدگی نمودار می تواند منابع فشرده و زمان بر باشد.

اصطلاحات در CQL

گره

یک گره نشان دهنده یک موجودیت در گراف است. گره ها می توانند دارای ویژگی هایی باشند که اطلاعات مربوط به موجودیت، مانند نام، سن، یا هر ویژگی مرتبط دیگری را ذخیره می کند.

برچسب

برچسب ها امکان گروه بندی گره ها را فراهم می کنند. آنها جایگزین مفهوم جداول در SQL می شوند. به عنوان مثال، یک گره با یک برچسب Person تمام گره هایی که افراد را نشان می دهند گروه بندی می کند.

رابطه

یک رابطه یک پیوند بین دو گره است. این جایگزین مفهوم روابط در SQL می شود و امکان اتصال مستقیم بین موجودیت ها را فراهم می کند.

ویژگی های

ویژگی ها ویژگی هایی هستند که یک گره یا یک رابطه می تواند داشته باشد. به عنوان مثال، یک گره Person ممکن است ویژگی هایی مانند نام و سن داشته باشد، در حالی که یک رابطه LIKES ممکن است ویژگی هایی مانند since داشته باشد.

دستورات پایه در CQL

ايجاد كردن

دستور CREATE برای ایجاد گره ها و روابط استفاده می شود. این برای ساخت ساختار نمودار اساسی است.

همخوانی داشتن

دستور MATCH برای جستجوی الگوها در نمودار استفاده می شود. این سنگ بنای پرس و جو در CQL است که به شما امکان می دهد گره ها و روابط را بر اساس معیارهای مشخص بازیابی کنید.

ایجاد گره ها

ایجاد گره پایه

ایجاد گره در CQL ساده است. از دستور CREATE و سپس جزئیات گره استفاده کنید.

CREATE (:Person {name:\"John\", age:30})
CREATE (:Food {name:\"Pizza\"})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد گره با ویژگی ها

گره ها را می توان با خصوصیات ایجاد کرد که جفت های کلید-مقدار هستند که اطلاعات مربوط به گره را ذخیره می کنند.

CREATE (:Person {name:\"Jane\", age:25, occupation:\"Engineer\"})
CREATE (:Food {name:\"Burger\", calories:500})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جستجو گره ها

جستجوی پایه گره

دستور MATCH به شما امکان می دهد گره ها را در نمودار جستجو کنید.

MATCH (p:Person) RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جستجوی پیشرفته با بند WHERE

برای جستجوهای خاص تر، از عبارت WHERE برای فیلتر کردن گره ها بر اساس ویژگی های آنها استفاده کنید.

MATCH (p:Person)
WHERE p.age > 20
RETURN p.name, p.age

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد روابط

ایجاد روابط در حین ایجاد گره ها

هنگام ایجاد گره ها می توانید روابط بین گره ها ایجاد کنید.

CREATE (p:Person {name:\"John\", age:30})-[:LIKES]->(f:Food {name:\"Pizza\"})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد روابط بین گره های موجود

همچنین می توان با استفاده از دستور MATCH روابطی بین گره های موجود ایجاد کرد.

MATCH (p:Person {name:\"John\"})
MATCH (f:Food {name:\"Pizza\"})
CREATE (p)-[r:LIKES]->(f)
RETURN r

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اصلاح گره ها و روابط

افزودن صفات

با استفاده از دستور SET می توان ویژگی ها را به گره های موجود اضافه کرد.

MATCH (p:Person {name:\"John\"})
SET p.occupation = \"Developer\"
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حذف صفات

برای حذف یک ویژگی، مقدار آن را NULL قرار دهید.

MATCH (p:Person {name:\"John\"})
SET p.age = NULL
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اصلاح صفات

ویژگی ها را می توان با تنظیم مقادیر جدید تغییر داد.

MATCH (p:Person {name:\"John\"})
SET p.age = 35
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از توابع جمع در CQL

شمردن

تابع COUNT تعداد گره ها یا روابط را برمی گرداند.

MATCH (n) RETURN count(n)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

AVG

تابع AVG مقدار متوسط ​​یک ویژگی عددی را محاسبه می کند.

MATCH (n) RETURN avg(n.age)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جمع

تابع SUM جمع کل یک ویژگی عددی را محاسبه می کند.

MATCH (n) RETURN sum(n.age)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جوهای پیشرفته در CQL

تعداد روابط بر اساس نوع

برای بدست آوردن تعداد هر نوع رابطه در نمودار، از تابع type استفاده کنید.

MATCH ()-[r]->() RETURN type(r), count(*)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جمع آوری مقادیر در لیست ها

تابع COLLECT لیستی از تمام مقادیر برای یک ویژگی خاص ایجاد می کند.

MATCH (p:Product)-[:BELONGS_TO]->(o:Order)
RETURN id(o) as orderId, collect(p)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نگهداری پایگاه داده در CQL

حذف گره ها و روابط

برای حذف تمام گره ها و روابط، از دستور DELETE استفاده کنید.

MATCH (a)-[r]->(b) DELETE a, r, b

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تجسم طرحواره پایگاه داده

برای درک ساختار نمودار خود، طرح پایگاه داده را تجسم کنید.

CALL db.schema.visualization YIELD nodes, relationships

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ترفندها و نکات کاربردی

یافتن گره های خاص

در اینجا سه ​​راه برای پیدا کردن یک گره به نمایندگی از شخصی به نام Lana Wachowski وجود دارد.

// Solution 1
MATCH (p:Person {name: \"Lana Wachowski\"})
RETURN p

// Solution 2
MATCH (p:Person)
WHERE p.name = \"Lana Wachowski\"
RETURN p

// Solution 3
MATCH (p:Person)
WHERE p.name =~ \".*Lana Wachowski.*\"
RETURN p

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه های پرس و جو پیچیده

نمایش نام و نقش افراد متولد شده پس از سال 1960 که در فیلم های اکران شده در دهه 1980 بازی کردند.

MATCH (p:Person)-[a:ACTED_IN]->(m:Movie)
WHERE p.born > 1960 AND m.released >= 1980 AND m.released 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برچسب بازیگر را به افرادی که حداقل در یک فیلم بازی کرده اند اضافه کنید.

MATCH (p:Person)-[:ACTED_IN]->(:Movie)
WHERE NOT (p:Actor)
SET p:Actor

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه های کاربردی

موارد استفاده در دنیای واقعی

یک پایگاه داده برای یک فروشگاه آنلاین در نظر بگیرید که در آن باید محصولات، مشتریان، سفارشات و آدرس های حمل و نقل را مدیریت کنید. در اینجا نحوه مدل سازی این مورد در CQL آورده شده است.

پرس و جوهای نمونه

بیایید چند نمونه گره و روابط برای یک سناریوی فروشگاه آنلاین ایجاد کنیم:

CREATE (p1:Product {id: 1, name: \"Laptop\", price: 1000})
CREATE (p2:Product {id: 2, name: \"Phone\", price: 500})
CREATE (c:Client {id: 1, name: \"John Doe\"})
CREATE (o:Order {id: 1, date: \"2023-06-01\"})
CREATE (adr:Address {id: 1, street: \"123 Main St\", city: \"Anytown\", country: \"USA\"})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا بیایید روابط بین این گره ها را ایجاد کنیم:

CREATE (p1)-[:BELONGS_TO]->(o)
CREATE (p2)-[:BELONGS_TO]->(o)
CREATE (c)-[:MADE]->(o)
CREATE (o)-[:SHIPPED_TO]->(adr)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جو محصولات سفارش داده شده در هر سفارش

برای اطلاع از محصولات سفارش داده شده در هر سفارش، از جمله تعداد و قیمت واحد، از استعلام زیر استفاده کنید:

MATCH (p:Product)-[:BELONGS_TO]->(o:Order)
RETURN id(o) as orderId, collect(p)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرس و جو از مشتریان و آدرس حمل و نقل

برای تعیین اینکه کدام مشتری هر سفارش را انجام داده و هر سفارش کجا ارسال شده است، از این پرس و جو استفاده کنید:

MATCH (c:Client)-[:MADE]->(o:Order)-[:SHIPPED_TO]->(adr:Address)
RETURN c.name as client, id(o) as orderId, adr.street, adr.city, adr.country

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سوالات متداول

زبان پرس و جو سایفر (CQL) چیست؟

Cypher Query Language (CQL) یک زبان پرس و جو قدرتمند است که به طور خاص برای پرس و جو و به روز رسانی پایگاه داده های نمودار طراحی شده است. این به شما امکان می دهد با داده ها به گونه ای تعامل کنید که بر روابط بین نقاط داده تأکید کند.

CQL چه تفاوتی با SQL دارد؟

در حالی که SQL برای جستجو در پایگاه داده های رابطه ای طراحی شده است، CQL برای پایگاه های داده گراف طراحی شده است. این بدان معنی است که CQL در مدیریت داده های پیچیده و بسیار متصل برتری دارد، در حالی که SQL برای ساختارهای داده جدولی مناسب تر است.

آیا می توانم از CQL با هر پایگاه داده استفاده کنم؟

CQL در درجه اول با Neo4j، یک سیستم مدیریت پایگاه داده گراف محبوب استفاده می شود. با این حال، سایر پایگاه های داده گراف ممکن است زبان های پرس و جو خود را با قابلیت های مشابه داشته باشند.

مزایای استفاده از CQL چیست؟

CQL امکان پرس و جوی شهودی از پایگاه های داده گراف را فراهم می کند و مدیریت و تجزیه و تحلیل داده ها را با روابط پیچیده آسان تر می کند. از مجموعه ای غنی از دستورات برای ایجاد، به روز رسانی و حذف گره ها و روابط و همچنین قابلیت های جستجوی قدرتمند پشتیبانی می کند.

آیا یادگیری CQL دشوار است؟

CQL طوری طراحی شده است که کاربر پسند و شهودی باشد. اگر با SQL آشنایی داشته باشید، شباهت های زیادی در CQL خواهید یافت. تفاوت اصلی در نحوه مدیریت روابط داده ها نهفته است.

چگونه می توانم پرس و جوهای CQL خود را بهینه کنم؟

بهینه سازی پرس و جوهای CQL شامل درک ساختار نمودار شما و استفاده از الگوهای پرس و جو کارآمد است. نمایه سازی ویژگی های جستجو شده مکرر و اجتناب از پیمایش کامل نمودار غیرضروری می تواند عملکرد را به طور قابل توجهی بهبود بخشد.

نتیجه

Cypher Query Language (CQL) ابزاری قوی برای مدیریت پایگاه‌های داده گراف است که قابلیت‌های قدرتمندی را برای پرس‌وجو و به‌روزرسانی داده‌های پیچیده و بسیار متصل ارائه می‌دهد. با تسلط بر CQL، می‌توانید از پتانسیل کامل پایگاه‌های داده گراف استفاده کنید و مدیریت روابط پیچیده داده‌ها و انجام تحلیل‌های پیچیده را آسان‌تر کنید.

نوشته های مشابه

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

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

دکمه بازگشت به بالا