Top Up Home HTML2PDF

Berliner U-Bahn - Konzeptbild

Berliner U-Bahn - Graph

Berliner U-Bahn - Schema

CALL db.schema.visualization();
  • Knoten Haltestelle: U-Bahn-Stationen
  • Knoten Stop: Halt eines Zuges an einer Haltestelle mit Ankunft- und Abfahrtzeit
  • Beziehung L (Link): verbindet Haltestellen
  • Beziehung N (Next): nächster Stop
  • Beziehung IH: (InHaltestelle): Haltestelle, auf die sich der Stop bezieht

Berliner U-Bahn - Code zum Anlegen der Daten

// ------------------------------------------------------------------------------
// Löschen
// ------------------------------------------------------------------------------
MATCH (x:Haltestelle) DETACH DELETE x;
MATCH (x:Stop) DETACH DELETE x;

// ------------------------------------------------------------------------------
// Knoten: Haltestellen
// ------------------------------------------------------------------------------
CREATE
  (AugsburgerStr:Haltestelle {name: 'AugsburgerStr'}),
  (BayerischerPlatz:Haltestelle {name: 'BayerischerPlatz'}),
  (BerlinerStr:Haltestelle {name: 'BerlinerStr'}),
  (BlisseStr:Haltestelle {name: 'BlisseStr'}),
  (Bundesplatz:Haltestelle {name: 'Bundesplatz'}),
  (FehrbellinerPlatz:Haltestelle {name: 'FehrbellinerPlatz'}), 
  (GüntzelStr:Haltestelle {name: 'GüntzelStr'}),
  (HeidelbergerPlatz:Haltestelle {name: 'HeidelbergerPlatz'}), 
  (Hohenzollernplatz:Haltestelle {name: 'Hohenzollernplatz'}),
  (KonstanzerStr:Haltestelle {name: 'KonstanzerStr'}),
  (Kurfürstendamm:Haltestelle {name: 'Kurfürstendamm'}),
  (SpichernStr:Haltestelle {name: 'SpichernStr'}),
  (Wittenbergplatz:Haltestelle {name: 'Wittenbergplatz'}),
  (ZoologischerGarten:Haltestelle {name: 'ZoologischerGarten'})

// ------------------------------------------------------------------------------
// Beziehungen: L (Link): Haltestelle -> Haltestelle
// ------------------------------------------------------------------------------
CREATE
  (AugsburgerStr)-[:L {distanz: 429}]->(Wittenbergplatz),
  (BerlinerStr)-[:L {distanz: 550}]->(GüntzelStr),
  (Bundesplatz)-[:L {distanz: 1088}]->(BerlinerStr),
  (FehrbellinerPlatz)-[:L {distanz: 763}]->(Hohenzollernplatz),
  (GüntzelStr)-[:L {distanz: 512}]->(SpichernStr),
  (HeidelbergerPlatz)-[:L {distanz: 1211}]->(FehrbellinerPlatz),
  (Hohenzollernplatz)-[:L {distanz: 541}]->(SpichernStr),
  (KonstanzerStr)-[:L {distanz: 481}]->(FehrbellinerPlatz),
  (Kurfürstendamm)-[:L {distanz: 362}]->(ZoologischerGarten),
  (SpichernStr)-[:L {distanz: 609}]->(AugsburgerStr),
  (SpichernStr)-[:L {distanz: 801}]->(Kurfürstendamm),
  (FehrbellinerPlatz)-[:L {distanz: 582}]->(BlisseStr),
  (BlisseStr)-[:L {distanz: 737}]->(BerlinerStr),
  (BerlinerStr)-[:L {distanz: 629}]->(BayerischerPlatz)

// ------------------------------------------------------------------------------
// Knoten: Halte
// ------------------------------------------------------------------------------
CREATE
  // U3
  (SU31HeidelbergerPlatz:Stop {linie: 'U3', ankunft: localtime('10:00:00'), abfahrt: localtime('10:01:00')}),
  (SU31FehrbellinerPlatz:Stop {linie: 'U3', ankunft: localtime('10:03:01'), abfahrt: localtime('10:04:00')}),
  (SU31Hohenzollernplatz:Stop {linie: 'U3', ankunft: localtime('10:05:16'), abfahrt: localtime('10:06:00')}),
  (SU31SpichernStr:Stop {linie: 'U3', ankunft: localtime('10:06:54'), abfahrt: localtime('10:08:00')}),
  (SU31AugsburgerStr:Stop {linie: 'U3', ankunft: localtime('10:09:00'), abfahrt: localtime('10:10:00')}),
  (SU31Wittenbergplatz:Stop {linie: 'U3', ankunft: localtime('10:10:42'), abfahrt: localtime('10:12:00')}),
  // U7
  (SU71KonstanzerStr:Stop {linie: 'U7', ankunft: localtime('09:58:02'), abfahrt: localtime('09:59:00')}),
  (SU71FehrbellinerPlatz:Stop {linie: 'U7', ankunft: localtime('09:59:48'), abfahrt: localtime('10:01:00')}),
  (SU71BlisseStr:Stop {linie: 'U7', ankunft: localtime('10:01:58'), abfahrt: localtime('10:03:00')}),
  (SU71BerlinerStr:Stop {linie: 'U7', ankunft: localtime('10:04:13'), abfahrt: localtime('10:06:00')}),
  (SU71BayerischerPlatz:Stop {linie: 'U7', ankunft: localtime('10:07:02'), abfahrt: localtime('10:08:00')}),
  // U7, 10 Minuten später
  (SU72KonstanzerStr:Stop {linie: 'U7', ankunft: localtime('10:08:02'), abfahrt: localtime('10:09:00')}),
  (SU72FehrbellinerPlatz:Stop {linie: 'U7', ankunft: localtime('10:09:48'), abfahrt: localtime('10:11:00')}),
  (SU72BlisseStr:Stop {linie: 'U7', ankunft: localtime('10:11:58'), abfahrt: localtime('10:13:00')}),
  (SU72BerlinerStr:Stop {linie: 'U7', ankunft: localtime('10:14:13'), abfahrt: localtime('10:16:00')}),
  (SU72BayerischerPlatz:Stop {linie: 'U7', ankunft: localtime('10:17:02'), abfahrt: localtime('10:16:00')}),
  // U9
  (SU91Bundesplatz:Stop {linie: 'U9', ankunft: localtime('10:01:01'), abfahrt: localtime('10:02:00')}),
  (SU91BerlinerStr:Stop {linie: 'U9', ankunft: localtime('10:03:48'), abfahrt: localtime('10:05:00')}),
  (SU91GüntzelStr:Stop {linie: 'U9', ankunft: localtime('10:05:55'), abfahrt: localtime('10:07:00')}),
  (SU91SpichernStr:Stop {linie: 'U9', ankunft: localtime('10:07:51'), abfahrt: localtime('10:09:00')}),
  (SU91Kurfürstendamm:Stop {linie: 'U9', ankunft: localtime('10:10:20'), abfahrt: localtime('10:12:00')}),
  (SU91ZoologischerGarten:Stop {linie: 'U9', ankunft: localtime('10:12:36'), abfahrt: localtime('10:14:00')})

// ------------------------------------------------------------------------------
// Beziehungen: IH (in Haltestelle): Stop -> Haltestelle
// ------------------------------------------------------------------------------
CREATE
  (SU31AugsburgerStr)-[:IH]->(AugsburgerStr),
  (SU71BayerischerPlatz)-[:IH]->(BayerischerPlatz),
  (SU72BayerischerPlatz)-[:IH]->(BayerischerPlatz),
  (SU71BerlinerStr)-[:IH]->(BerlinerStr),
  (SU72BerlinerStr)-[:IH]->(BerlinerStr),
  (SU91BerlinerStr)-[:IH]->(BerlinerStr),
  (SU71BlisseStr)-[:IH]->(BlisseStr),
  (SU72BlisseStr)-[:IH]->(BlisseStr),
  (SU91Bundesplatz)-[:IH]->(Bundesplatz),
  (SU31FehrbellinerPlatz)-[:IH]->(FehrbellinerPlatz),
  (SU71FehrbellinerPlatz)-[:IH]->(FehrbellinerPlatz),
  (SU72FehrbellinerPlatz)-[:IH]->(FehrbellinerPlatz),
  (SU91GüntzelStr)-[:IH]->(GüntzelStr),
  (SU31HeidelbergerPlatz)-[:IH]->(HeidelbergerPlatz),
  (SU31Hohenzollernplatz)-[:IH]->(Hohenzollernplatz),
  (SU71KonstanzerStr)-[:IH]->(KonstanzerStr),
  (SU72KonstanzerStr)-[:IH]->(KonstanzerStr),
  (SU91Kurfürstendamm)-[:IH]->(Kurfürstendamm),
  (SU31SpichernStr)-[:IH]->(SpichernStr),
  (SU91SpichernStr)-[:IH]->(SpichernStr),
  (SU31Wittenbergplatz)-[:IH]->(Wittenbergplatz),
  (SU91ZoologischerGarten)-[:IH]->(ZoologischerGarten)

// ------------------------------------------------------------------------------
// Beziehungen: N (nächster Stop): Stop -> Stop
// ------------------------------------------------------------------------------
CREATE
  (SU31HeidelbergerPlatz)-[:N]->(SU31FehrbellinerPlatz),
  (SU31FehrbellinerPlatz)-[:N]->(SU31Hohenzollernplatz),
  (SU31Hohenzollernplatz)-[:N]->(SU31SpichernStr),
  (SU31SpichernStr)-[:N]->(SU31AugsburgerStr),
  (SU31AugsburgerStr)-[:N]->(SU31Wittenbergplatz),
  //
  (SU71KonstanzerStr)-[:N]->(SU71FehrbellinerPlatz),
  (SU71FehrbellinerPlatz)-[:N]->(SU71BlisseStr),
  (SU71BlisseStr)-[:N]->(SU71BerlinerStr),
  (SU71BerlinerStr)-[:N]->(SU71BayerischerPlatz),
  //
  (SU72KonstanzerStr)-[:N]->(SU72FehrbellinerPlatz),
  (SU72FehrbellinerPlatz)-[:N]->(SU72BlisseStr),
  (SU72BlisseStr)-[:N]->(SU72BerlinerStr),
  (SU72BerlinerStr)-[:N]->(SU72BayerischerPlatz),
  //
  (SU91Bundesplatz)-[:N]->(SU91BerlinerStr),
  (SU91BerlinerStr)-[:N]->(SU91GüntzelStr),
  (SU91GüntzelStr)-[:N]->(SU91SpichernStr),
  (SU91SpichernStr)-[:N]->(SU91Kurfürstendamm),
  (SU91Kurfürstendamm)-[:N]->(SU91ZoologischerGarten)
  ;


// ------------------------------------------------------------------------------
// Graph anzeigen
// ------------------------------------------------------------------------------
OPTIONAL MATCH (h1:Haltestelle)-[l:L]-(h2:Haltestelle)
OPTIONAL MATCH (s1:Stop)-[ih:IH]->(h1)
OPTIONAL MATCH (s1)-[n:N]->(s2:Stop)
return h1, l, h2, s1, ih, s2, n;

Bank - Konzeptbild

  • Durchgezogene Linien: Subunternehmen
  • Gestrichelte Linien: Überweisung
  • Banken und Konten fehlen in diesem Bild

Bank - Graph

Bank - Schema

CALL db.schema.visualization();
  • Knoten Bank: Repräsentiert Geldinstitute
  • Knoten Kunde: Kunden der Bank
  • Knoten Privatkunde, Unternehmenskunde: Unterkategorien von Kunden
  • Beziehung KD: verbindet Kunde mit Bank
  • Beziehung KTO: verbindet Konto mit Kunde
  • Beziehung SUB: verbindet Subunternehmen mit übergordnetem Unternehmen
  • Beziehung UEB: verbindet Konten per Überweisung

Bank - Code zum Anlegen der Daten

// ------------------------------------------------------------------------------
// Löschen
// ------------------------------------------------------------------------------
MATCH (x:Kunde) DETACH DELETE x;
MATCH (x:Konto) DETACH DELETE x;
MATCH (x:Bank) DETACH DELETE x;

// ------------------------------------------------------------------------------
// Knoten: Banken
// ------------------------------------------------------------------------------
CREATE
  (b01:Bank {name: 'Deutsche Bank'}), 
  (b02:Bank {name: 'Commerzbank'}), 
  (b03:Bank {name: 'Volksbank'}), 
  (b04:Bank {name: 'Ing Diba'})

// ------------------------------------------------------------------------------
// Knoten: Kunden
// ------------------------------------------------------------------------------
CREATE
  (pk01:Privatkunde:Kunde {name: 'Klausen'}),
  (pk02:Privatkunde:Kunde {name: 'Franzen'}),
  (pk03:Privatkunde:Kunde {name: 'Vogel'}),
  (pk04:Privatkunde:Kunde {name: 'Bauer'}),

  (uk01:Unternehmenskunde:Kunde {name: 'Baustoff Gruppe'}),
  (uk011:Unternehmenskunde:Kunde {name: 'Feststoff AG'}),
  (uk0111:Unternehmeskunde:Kunde {name: 'Beton GmbH'}),
  (uk0112:Unternehmenskunde:Kunde {name: 'Zement GmbH'}),
  (uk012:Unternehmenskunde:Kunde {name: 'Holz AG'}),

  (uk02:Unternehmenskunde:Kunde {name: 'Fix GmbH'}),
  (uk03:Unternehmenskunde:Kunde {name: 'Happy OHG'})

// ------------------------------------------------------------------------------
// Knoten: Konten
// ------------------------------------------------------------------------------
CREATE
  (kto01:Konto {iban: '#iban01'}), 
  (kto02:Konto {iban: '#iban02'}), 
  (kto03:Konto {iban: '#iban03'}), 
  (kto04:Konto {iban: '#iban04'}), 
  (kto05:Konto {iban: '#iban05'}), 
  (kto06:Konto {iban: '#iban06'}), 
  (kto07:Konto {iban: '#iban07'}), 
  (kto08:Konto {iban: '#iban08'}), 
  (kto09:Konto {iban: '#iban09'}), 
  (kto10:Konto {iban: '#iban10'}), 
  (kto11:Konto {iban: '#iban11'}),
  (kto12:Konto {iban: '#iban12'})

// ------------------------------------------------------------------------------
// Beziehungen: Subuternehmen
// ------------------------------------------------------------------------------
CREATE
  (uk011)-[:SUB]->(uk01),
  (uk0111)-[:SUB]->(uk011),
  (uk0112)-[:SUB]->(uk011),
  (uk012)-[:SUB]->(uk01)


// ------------------------------------------------------------------------------
// Beziehungen: Kunde -> Bank
// ------------------------------------------------------------------------------
CREATE
  (pk01)-[:KD]->(b02),
  (pk02)-[:KD]->(b03),
  (pk03)-[:KD]->(b04),
  (pk04)-[:KD]->(b04),
  (uk01)-[:KD]->(b01),
  (uk011)-[:KD]->(b01),
  (uk0111)-[:KD]->(b01),
  (uk0112)-[:KD]->(b01),
  (uk012)-[:KD]->(b01),
  (uk02)-[:KD]->(b02),
  (uk03)-[:KD]->(b02)

// ------------------------------------------------------------------------------
// Beziehungen: Konto -> Kunde 
// ------------------------------------------------------------------------------
CREATE
  (kto01)-[:KTO]->(pk01), // Klausen
  (kto02)-[:KTO]->(pk02), // Franzen
  (kto03)-[:KTO]->(pk03), // Vogel
  (kto04)-[:KTO]->(pk04), // Bauer
  (kto05)-[:KTO]->(uk01), // Baustoff Gruppe
  (kto06)-[:KTO]->(uk01), // Baustoff Gruppe
  (kto07)-[:KTO]->(uk011), // Feststoff AG
  (kto08)-[:KTO]->(uk0111), // Beton GmbH
  (kto09)-[:KTO]->(uk0112), // Zement GmbH
  (kto10)-[:KTO]->(uk012), // Holz AG
  (kto11)-[:KTO]->(uk02), // Fix GmbH
  (kto12)-[:KTO]->(uk03) // Happy OHG


// ------------------------------------------------------------------------------
// Beziehungen: Überweisungen
// ------------------------------------------------------------------------------
CREATE
  (kto01)-[:UEB {betrag: 100}]->(kto12),
  (kto01)-[:UEB {betrag: 150}]->(kto10),

  (kto02)-[:UEB {betrag: 200}]->(kto09),

  (kto05)-[:UEB {betrag: 1000}]->(kto09),

  (kto07)-[:UEB {betrag: 1000}]->(kto05),

  (kto08)-[:UEB {betrag: 250}]->(kto04),
  (kto08)-[:UEB {betrag: 1000}]->(kto07),

  (kto09)-[:UEB {betrag: 300}]->(kto03),
  (kto09)-[:UEB {betrag: 1000}]->(kto10),
  (kto09)-[:UEB {betrag: 350}]->(kto08),
  (kto09)-[:UEB {betrag: 1000}]->(kto08),

  (kto10)-[:UEB {betrag: 1100}]->(kto05)
  ;

// ------------------------------------------------------------------------------
// Graph anzeigen
// ------------------------------------------------------------------------------
OPTIONAL MATCH (ku1:Kunde)-[kd:KD]->(b:Bank)
OPTIONAL MATCH  (ku1:Kunde)-[sub:SUB]->(ku2:Kunde)
OPTIONAL MATCH  (k:Konto)-[kto:KTO]->(ku1:Kunde)
OPTIONAL MATCH  (kto1:Konto)-[ueb:UEB]->(kto2:Konto)
return ku1, kd, b, ku2, sub, kto1, kto, kto2, ueb;

Kürzeste Pfade - Konzeptbild

Kürzeste Pfade - Graph

Kürzeste Pfade - Schema

CALL db.schema.visualization();
  • Knoten N (Node)
  • Beziehung L (Link): verbindet Knoten

Kürzeste Pfade - Code zum Anlegen der Daten

// ------------------------------------------------------------------------------
// Löschen
// ------------------------------------------------------------------------------
MATCH (x:N) DETACH DELETE x;

// ------------------------------------------------------------------------------
// Knoten
// ------------------------------------------------------------------------------
CREATE 
  (a:N {name:"A"}),
  (b:N {name:"B"}),
  (c:N {name:"C"}),
  (d:N {name:"D"}),
  (e:N {name:"E"}),
  (f:N {name:"F"}),
  (g:N {name:"G"}),
  (h:N {name:"H"}),
  (i:N {name:"I"})

// ------------------------------------------------------------------------------
// Beziehungen
// ------------------------------------------------------------------------------
CREATE 
  (a)-[:E {w: 1}]->(b),
  (a)-[:E {w: 1}]->(i),
  (b)-[:E {w: 1}]->(c),
  (b)-[:E {w: 1}]->(d),
  (c)-[:E {w: 1}]->(e),
  (c)-[:E {w: 1}]->(h),
  (d)-[:E {w: 1}]->(e),
  (e)-[:E {w: 1}]->(f),
  (e)-[:E {w: 1}]->(g),
  (e)-[:E {w: 1}]->(h),
  (g)-[:E {w: 1}]->(f)
  ;

// ------------------------------------------------------------------------------
// Graph anzeigen
// ------------------------------------------------------------------------------
OPTIONAL MATCH (n:N)-[e:E]-(m:N) return n, e, m;

Zug UK - Konzeptbild

Zug UK - Graph

Zug UK - Schema

CALL db.schema.visualization();
  • Knoten Station: Bahn-Stationen
  • Knoten Stop: Halt eines Zuges an einer Haltestelle mit Ankunft- und Abfahrtzeit
  • Beziehung CALLS_AT: Haltestelle, auf die sich der Stop bezieht
  • Beziehung Next: nächster Stop

Zug UK - Code zum Anlegen der Daten

// ------------------------------------------------------------------------------
// Löschen
// ------------------------------------------------------------------------------
MATCH (x:Station) DETACH DELETE x;
MATCH (x:Stop1) DETACH DELETE x;

// ------------------------------------------------------------------------------
// Knoten
// ------------------------------------------------------------------------------
CREATE (hgt:Station {name: 'Harrogate'}), (lds:Station {name: 'Leeds'}),
(sbe:Station {name: 'Starbeck'}), (hbp:Station {name: 'Hornbeam Park'}),
(wet:Station {name: 'Weeton'}), (hrs:Station {name: 'Horsforth'}),
(hdy:Station {name: 'Headingley'}), (buy:Station {name: 'Burley Park'}),
(pnl:Station {name: 'Pannal'}), (hud:Station {name: 'Huddersfield'}),
(s9:Stop1 {arrives: time('11:53')}),
(s8:Stop1 {arrives: time('11:44'), departs: time('11:45')}),
(s7:Stop1 {arrives: time('11:40'), departs: time('11:43')}),
(s6:Stop1 {arrives: time('11:38'), departs: time('11:39')}),
(s5:Stop1 {arrives: time('11:29'), departs: time('11:30')}),
(s4:Stop1 {arrives: time('11:24'), departs: time('11:25')}),
(s3:Stop1 {arrives: time('11:19'), departs: time('11:20')}),
(s2:Stop1 {arrives: time('11:16'), departs: time('11:17')}),
(s1:Stop1 {departs: time('11:11')}), (s21:Stop1 {arrives: time('11:25')}),
(s211:Stop1 {departs: time('11:00')}), (s10:Stop1 {arrives: time('11:45')}),
(s101:Stop1 {departs: time('11:20')}), (s11:Stop1 {arrives: time('12:05')}),
(s111:Stop1 {departs: time('11:40')}), (s12:Stop1 {arrives: time('12:07')}),
(s121:Stop1 {departs: time('11:50')}), (s13:Stop1 {arrives: time('12:37')}),
(s131:Stop1 {departs: time('12:20')}),
(lds)<-[:CALLS_AT]-(s9), 
(buy)<-[:CALLS_AT]-(s8)-[:NEXT]->(s9),
(hdy)<-[:CALLS_AT]-(s7)-[:NEXT]->(s8), 
(hrs)<-[:CALLS_AT]-(s6)-[:NEXT]->(s7),
(wet)<-[:CALLS_AT]-(s5)-[:NEXT]->(s6), 
(pnl)<-[:CALLS_AT]-(s4)-[:NEXT]->(s5),
(hbp)<-[:CALLS_AT]-(s3)-[:NEXT]->(s4), 
(hgt)<-[:CALLS_AT]-(s2)-[:NEXT]->(s3),
(sbe)<-[:CALLS_AT]-(s1)-[:NEXT]->(s2), 
(lds)<-[:CALLS_AT]-(s21), 
(hgt)<-[:CALLS_AT]-(s211)-[:NEXT]->(s21), 
(lds)<-[:CALLS_AT]-(s10), 
(hgt)<-[:CALLS_AT]-(s101)-[:NEXT]->(s10), 
(lds)<-[:CALLS_AT]-(s11), 
(hgt)<-[:CALLS_AT]-(s111)-[:NEXT]->(s11), 
(hud)<-[:CALLS_AT]-(s12), 
(lds)<-[:CALLS_AT]-(s121)-[:NEXT]->(s12), 
(hud)<-[:CALLS_AT]-(s13), 
(lds)<-[:CALLS_AT]-(s131)-[:NEXT]->(s13)
;


// ------------------------------------------------------------------------------
// Graph anzeigen
// ------------------------------------------------------------------------------
OPTIONAL MATCH (s1:Stop1)-[ca:CALLS_AT]->(sta:Station) 
OPTIONAL MATCH (s1:Stop1)-[n:NEXT]->(s2:Stop1) 
return s1, ca, sta, s2, n;