AccueilđŸ‡«đŸ‡·Chercher

Cypher (langage)

Cypher est un langage informatique de requĂȘte orientĂ© graphe utilisĂ© par Neo4j.

Cypher Query Language
graph query language, langage de programmation déclaratif
Plateformemachine virtuelle Java Modifier
Langage de programmationJava Modifier
DĂ©pĂŽt du code sourcehttps://github.com/neo4j/neo4j/tree/3.1/community/cypher Modifier
DĂ©crit Ă  l'URLhttps://neo4j.com/docs/cypher-manual/current/ Modifier
Licencelicence publique générale GNU version 3 Modifier
Statut des droits d'auteursous copyright Modifier
Tag Stack Exchangehttps://stackoverflow.com/tags/cypher Modifier

Le langage se veut simple et efficace dans la formulation des requĂȘtes d'interrogation et de mise Ă  jour des bases de donnĂ©es orientĂ©es graphe. Cypher est relativement simple dans sa construction syntaxique mais reste nĂ©anmoins un langage efficace. Les concepteurs ont voulu permettre aux utilisateurs de rester concentrĂ©s dans leur domaine d'expertise au lieu de se perdre dans les formulations de requĂȘtes en bases de donnĂ©es[1].

Syntaxe

Cypher dĂ©finit un ensemble de fonctions. Parmi les plus courantes on trouve MATCH et WHERE. Ces fonctions sont quelque peu diffĂ©rentes des mĂȘmes fonctions en SQL. MATCH est utilisĂ© pour dĂ©crire le modĂšle de recherche. Il est principalement basĂ© sur les relations. WHERE est utilisĂ© pour l'ajout de contraintes aux modĂšles. Par exemple[2] :

    MATCH (charlie:Person { name:'Charlie Sheen' })-[:ACTED_IN]-(movie:Movie)
    RETURN movie

Cypher dĂ©finit Ă©galement des fonctions d'Ă©criture, de mise Ă  jour et de suppression des donnĂ©es. CREATE et DELETE sont utilisĂ©es pour crĂ©er et supprimer les nƓuds et les relations. SET et REMOVE sont utilisĂ©es pour dĂ©finir les valeurs des propriĂ©tĂ©s et affecter des labels aux nƓuds. Les nƓuds peuvent uniquement ĂȘtre supprimĂ©s lorsqu'ils n'ont plus de relations vers des nƓuds maintenus. On ignore cependant la rĂ©elle utilitĂ© de MATCH, certains disent qu'il s'agit d'Ă©conomiser des ressources d'ordinateur, mais si on a besoin d'appliquer un Ă©lĂ©ment dans un graphe, notamment pour les nƓuds, on fait appel Ă  ça. On peut dire la mĂȘme chose pour OPTIONAL, l'idĂ©e est d'en profiter pour Ă©viter des problĂšmes technologiques en cas de deux MATCH dans le code. Par exemple[2] :

    MATCH (start:Content)-[:RELATED_CONTENT]->(content:Content)
    WHERE content.source = 'user'
    OPTIONAL MATCH (content)-[r]-()
    DELETE r, content

Voir aussi

Article connexe

  • SPARQL, un autre langage dĂ©claratif pour les requĂȘtes sur des donnĂ©es orientĂ©es graphe
  • GraphQL, un langage dĂ©claratif fortement typĂ© pour effectuer des requĂȘtes sur des graphes Ă©ventuellement distribuĂ©s.

Lien externe

  • OpenCypher, une initiative de Neo4j et d'autres contributeurs visant Ă  Ă©tendre l'emploi de Cypher Ă  d'autres base de donnĂ©es orientĂ©es graphe[3]

Références

  1. « Cypher Introduction » (consulté le )
  2. « 10.1. Match - - The Neo4j Manual v2.1.2 » (consulté le )
  3. (en) « Meet openCypher : The SQL for Graphs - Neo4j Graph Database Platform », sur Neo4j Graph Database Platform, (consulté le ).
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.