cypher

Cypher: Dotazovací jazyk pro grafové databáze

Cypher je deklarativní dotazovací jazyk určený pro práci s grafovými databázemi, primárně vyvinutý pro Neo4j. Byl navržen tak, aby byl vysoce intuitivní, snadno čitelný a umožňoval efektivně vyjadřovat komplexní dotazy nad propojenými daty bez nutnosti psát složitá spojování tabulek (operace `JOIN`), jak je známe z relacích databází.

Hlavní myšlenka a syntaxe

Unikátní vlastností jazyka Cypher je jeho vizuální povaha – syntaxe využívá ASCII art, kde vzorce dotazů přímo napodobují strukturu grafu (uzly a šipky představující vztahy).

  • Uzly se zapisují do kulatých závorek: `(n:Person)`
  • Vztahy (hrany) se zapisují pomocí hranatých závorek uvnitř pomlček a šipek: `-[r:KAMOŠ]→`

Základní stavební kameny dotazu

Každý dotaz v jazyku Cypher se skládá z klíčových slov (příkazů), z nichž nejčastější jsou:

  • `MATCH`: Určuje vzorec (pattern), který se má v grafu vyhledat.
  • `WHERE`: Slouží k filtrování výsledků na základě vlastností.
  • `CREATE` / `MERGE`: Vytváří nové uzly a vztahy (přičemž `MERGE` navíc zajišťuje, že se data duplicitně nevytvoří, pokud již existují).
  • `RETURN`: Definuje, jaká data mají být vrácena jako výsledek dotazu.

Ukázka praktického dotazu

Následující příklad ukazuje, jak pomocí jazyka Cypher najít všechny přátele uživatele jménem Alice, kteří rovněž sledují stejný film:

MATCH (alice:Person {name: 'Alice'})-[:FRIEND]->(friend:Person)-[:WATCHED]->(movie:Movie)
WHERE movie.genre = 'Sci-Fi'
RETURN friend.name AS Kamarad, movie.title AS Film
ORDER BY Film ASC

Výhody jazyka Cypher

Vlastnost Popis
Vizuální čitelnost Vzorce jako `(a)-[:KUPUJE]→(b)` jsou na první pohled srozumitelné.
Deklarativnost Říkáte *co* chcete najít, nikoliv *jak* to databáze má krok za krokem procházet.
Optimalizace výkonu Databázový engine Neo4j automaticky překládá Cypher dotazy na vysoce efektivní cestovní plány v paměti.
Otevřený standard (OpenCypher) Jazyk byl uvolněn jako open-source, takže jej adoptovaly i jiné technologie a platformy pracující s grafy.

Shrnutí

Cypher představuje přirozený a mocný nástroj pro dotazování nad grafovými strukturami. Umožňuje vývojářům a analytikům efektivně vytěžovat skryté souvislosti a vzorce v datech s minimálním množstvím kódu.

Externí odkazy

cypher.txt · Poslední úprava: autor: admin