This commit is contained in:
2025-10-23 07:48:31 +02:00
parent a715e4d602
commit 7432fec180
3 changed files with 81 additions and 64 deletions

5
exercice1.md Normal file
View File

@@ -0,0 +1,5 @@
# postgreSQL
Restaurer la base de données postgreSQL.
Trouver le chemins le plus rapide à l'aide de l'algorith de Dijkstra entre le casino et la falaise

View File

@@ -3,61 +3,22 @@ docker build -t mon-app .
http://localhost:3000 http://localhost:3000
```cypher
LOAD CSV FROM 'file:///artists.csv' AS row ### Réseau routier
MERGE (a:Artist { name: row[1], year: toInteger(row[2]) })
RETURN a.name, a.year
```
```cypher ```cypher
LOAD CSV WITH HEADERS LOAD CSV WITH HEADERS
FROM 'file:///individus.csv' AS row FROM 'file:///points.csv' AS row
FIELDTERMINATOR ';' MERGE (p:Point { id: toInteger(row.id) })
MERGE (i:Individu { id: toInteger(row['id']) }) SET p.nom = row.nom,
SET i.prenom = row['prenom'], p.altitude = toInteger(row.altitude),
i.age = toInteger(row['age']), p.location = point({
i.sexe = row['sexe'], longitude: toFloat(row.longitude),
i.etudes = toInteger(row['etudes']), latitude: toFloat(row.latitude)
i.richesse = toInteger(row['richesse']), });
i.lecture = toFloat(row['lecture']),
i.musique = toFloat(row['musique']),
i.sport = toFloat(row['sport']);
``` ```
```cypher
MATCH (i:Individu) RETURN i LIMIT 25;
``` ```
```cypher
MATCH (i:Individu {id: 58 })
RETURN i;
```
```cypher
LOAD CSV WITH HEADERS
FROM 'file:///edges.csv' AS row
FIELDTERMINATOR ';'
MATCH (a:Individu {id: toInteger(row.source)})
MATCH (b:Individu {id: toInteger(row.target)})
MERGE (a)-[r:AMI]->(b)
MERGE (b)-[r2:AMI]->(a);
```
```cypher
MATCH (i:Individu)
DETACH DELETE i;
```
MATCH path = (a:Individu {id:24})-[:AMI*1..3]->(b:Individu)
RETURN path;
MATCH (a:Individu {id: 22}), (b:Individu {id: 100}),
path = shortestPath((a)-[:AMI*..15]-(b))
RETURN path;
MATCH (a:Point {nom:'Boulangerie'}), (b:Point {nom:'Salle des fêtes'})
RETURN point.distance(a.location, b.location)
LOAD CSV WITH HEADERS FROM 'file:///routes.csv' AS row LOAD CSV WITH HEADERS FROM 'file:///routes.csv' AS row
WITH row WITH row
MATCH (a:Lieu {id: toInteger(row.source)}) MATCH (a:Lieu {id: toInteger(row.source)})
@@ -75,23 +36,13 @@ WITH a, row
MATCH (b:Lieu {id: toInteger(row.target)}) MATCH (b:Lieu {id: toInteger(row.target)})
MERGE (b)-[r:ROUTE {route_id: toInteger(row.route_id) * 1000}]->(a) MERGE (b)-[r:ROUTE {route_id: toInteger(row.route_id) * 1000}]->(a)
SET r.tag = row.tag, r.cout = toFloat(row.cout_inverse); SET r.tag = row.tag, r.cout = toFloat(row.cout_inverse);
### Réseau routier
```cypher
LOAD CSV WITH HEADERS
FROM 'file:///points.csv' AS row
MERGE (p:Point { id: toInteger(row.id) })
SET p.nom = row.nom,
p.altitude = toInteger(row.altitude),
p.location = point({
longitude: toFloat(row.longitude),
latitude: toFloat(row.latitude)
});
``` ```
1. Quelle est la distance entre le casino et la falaise
2. Quel est le plus court chemin entre le casino et la falaise
### Réseau d'amis ### Réseau d'amis
```cypher ```cypher
@@ -113,3 +64,9 @@ CREATE CONSTRAINT individu_id IF NOT EXISTS
FOR (i:Individu) FOR (i:Individu)
REQUIRE i.id IS UNIQUE; REQUIRE i.id IS UNIQUE;
``` ```
1. Quels sont les amis de l'id 58
2. Quels sont les amis des amis de l'id 58
3. Quelle est la chaine de relation entre l'id 58 et 40 ?

55
reponses.md Normal file
View File

@@ -0,0 +1,55 @@
```cypher
LOAD CSV FROM 'file:///artists.csv' AS row
MERGE (a:Artist { name: row[1], year: toInteger(row[2]) })
RETURN a.name, a.year
```
```cypher
LOAD CSV WITH HEADERS
FROM 'file:///individus.csv' AS row
FIELDTERMINATOR ';'
MERGE (i:Individu { id: toInteger(row['id']) })
SET i.prenom = row['prenom'],
i.age = toInteger(row['age']),
i.sexe = row['sexe'],
i.etudes = toInteger(row['etudes']),
i.richesse = toInteger(row['richesse']),
i.lecture = toFloat(row['lecture']),
i.musique = toFloat(row['musique']),
i.sport = toFloat(row['sport']);
```
```cypher
MATCH (i:Individu) RETURN i LIMIT 25;
```
```cypher
MATCH (i:Individu {id: 58 })
RETURN i;
```
```cypher
LOAD CSV WITH HEADERS
FROM 'file:///edges.csv' AS row
FIELDTERMINATOR ';'
MATCH (a:Individu {id: toInteger(row.source)})
MATCH (b:Individu {id: toInteger(row.target)})
MERGE (a)-[r:AMI]->(b)
MERGE (b)-[r2:AMI]->(a);
```
```cypher
MATCH (i:Individu)
DETACH DELETE i;
```
MATCH path = (a:Individu {id:24})-[:AMI*1..3]->(b:Individu)
RETURN path;
MATCH (a:Individu {id: 22}), (b:Individu {id: 100}),
path = shortestPath((a)-[:AMI*..15]-(b))
RETURN path;
MATCH (a:Point {nom:'Boulangerie'}), (b:Point {nom:'Salle des fêtes'})
RETURN point.distance(a.location, b.location)