Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠΌ Π·Π°ΠΏΡΠΎΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL, ΠΈ ΡΠΎΡ ΠΆΠ΅ Π·Π°ΠΏΡΠΎΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CYPHER – ΡΠ·ΡΠΊΠ° Neo4j. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΡΡΠ·ΡΡ ΠΌΠΎΠΈΡ Π΄ΡΡΠ·Π΅ΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΠΈΠΌΠΈ Π²ΡΠ°Π³Π°ΠΌΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ ΠΈΠ· Π°Π½ΠΈΠΌΠ΅ “ΠΠ°ΡΡΡΠΎ”.
- Neo4j
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
- SQL
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
- SQL – ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
- Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
- SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
- SQL – ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
CREATE (:Ninja {name: 'Naruto Uzumaki'})
CREATE (:Ninja {name: 'Sasuke Uchiha'})
CREATE (:Ninja {name: 'Sakura Haruno'})
CREATE (:Ninja {name: 'Gaara'})
CREATE (:Ninja {name: 'Rock Lee'})
CREATE (:Ninja {name: 'Orochimaru'})
Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
ΠΡΡΠ·ΡΡ ΠΠ°ΡΡΡΠΎ
MATCH (naruto :Ninja),(sakura :Ninja)
WHERE naruto.name = 'Naruto Uzumaki' AND sakura.name = 'Sakura Haruno'
CREATE (naruto)-[:FRIEND_OF]->(sakura)
RETURN naruto, sakura
MATCH (naruto :Ninja),(rock :Ninja)
WHERE naruto.name = 'Naruto Uzumaki' AND rock.name = 'Rock Lee'
CREATE (naruto)-[:FRIEND_OF]->(rock)
RETURN naruto, rock
MATCH (naruto :Ninja),(gaara :Ninja)
WHERE naruto.name = 'Naruto Uzumaki' AND gaara.name = 'Gaara'
CREATE (naruto)-[:FRIEND_OF]->(gaara)
RETURN naruto, gaara
MATCH (n) RETURN n
ΠΡΡΠ·ΡΡ Π‘Π°ΠΊΡΡΡ
MATCH (sakura :Ninja),(sasuke :Ninja)
WHERE sakura.name = 'Sakura Haruno' AND sasuke.name = 'Sasuke Uchiha'
CREATE (sakura)-[:FRIEND_OF]->(sasuke)
RETURN sakura, sasuke
MATCH (sakura :Ninja),(rock :Ninja)
WHERE sakura.name = 'Sakura Haruno' AND rock.name = 'Rock Lee'
CREATE (sakura)-[:FRIEND_OF]->(rock)
RETURN sakura, rock
MATCH (n) RETURN n
Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
ΠΡΠ°Π³ΠΈ ΠΠ°ΡΡΡΠΎ
MATCH (naruto :Ninja),(sasuke :Ninja)
WHERE naruto.name = 'Naruto Uzumaki' AND sasuke.name = 'Sasuke Uchiha'
CREATE (naruto)-[:ENEMY_OF]->(sasuke)
RETURN naruto, sasuke
MATCH (naruto :Ninja),(orochimaru :Ninja)
WHERE naruto.name = 'Naruto Uzumaki' AND orochimaru.name = 'Orochimaru'
CREATE (naruto)-[:ENEMY_OF]->(orochimaru)
RETURN naruto, orochimaru
MATCH (n) RETURN n
Neo4j – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
ΠΡΡΠ·ΡΡ ΠΠ°ΡΡΡΠΎ
MATCH (naruto :Ninja {name:'Naruto Uzumaki'})-[:FRIEND_OF]->(friends)
RETURN friends
ΠΡΡΠ·ΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΠ°ΡΡΡΠΎ:
MATCH (naruto :Ninja {name:'Naruto Uzumaki'})-[:FRIEND_OF]->(friends)
MATCH (friends)-[:FRIEND_OF]->(friends_of_friends)
RETURN friends_of_friends
ΠΡΡΠ·ΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΠ°ΡΡΡΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ°Π³Π°ΠΌΠΈ ΠΠ°ΡΡΡΠΎ:
MATCH (naruto :Ninja {name:'Naruto Uzumaki'})-[:FRIEND_OF]->(friends)
MATCH (friends)-[:FRIEND_OF]->(friends_of_friends)
MATCH (naruto)-[:ENEMY_OF]->(friends_of_friends)
RETURN naruto,friends_of_friends
SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
CREATE TABLE ninjas(
id SERIAL PRIMARY KEY,
name VARCHAR(255)
);
INSERT INTO
ninjas (name)
VALUES
('Naruto Uzumaki'),
('Sasuke Uchiha'),
('Sakura Haruno'),
('Gaara'),
('Rock Lee'),
('Orochimaru');
SELECT * FROM ninjas;
SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ
CREATE TABLE friends(
id SERIAL PRIMARY KEY,
ninja_1 INTEGER,
ninja_2 INTEGER,
FOREIGN KEY (ninja_1) REFERENCES ninjas (id),
FOREIGN KEY (ninja_2) REFERENCES ninjas (id),
UNIQUE(ninja_1, ninja_2)
);
-- Amigos do Naruto:
INSERT INTO
friends (ninja_1, ninja_2)
VALUES
(1, 3),
(1, 4),
(1, 5);
-- Amigos da Sakura:
INSERT INTO
friends (ninja_1, ninja_2)
VALUES
(3, 2),
(3, 5);
SELECT * FROM friends;
SQL – Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°ΠΆΠ΄Ρ
CREATE TABLE enemies(
id SERIAL PRIMARY KEY,
ninja_1 INTEGER,
ninja_2 INTEGER,
FOREIGN KEY (ninja_1) REFERENCES ninjas (id),
FOREIGN KEY (ninja_2) REFERENCES ninjas (id),
UNIQUE(ninja_1, ninja_2)
);
-- Inimigos do Naruto:
INSERT INTO
enemies (ninja_1, ninja_2)
VALUES
(1, 2),
(1, 6);
SELECT * FROM enemies;
SQL – ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
ΠΡΡΠ·ΡΡ ΠΠ°ΡΡΡΠΎ
SELECT DISTINCT
f.ninja_2,
(SELECT name FROM ninjas WHERE id = f.ninja_2)
FROM
ninjas n,
friends f
WHERE
f.ninja_1 = 1;
ΠΡΡΠ·ΡΡ Π‘Π°ΠΊΡΡΡ:
SELECT DISTINCT
f.ninja_2,
(SELECT name FROM ninjas WHERE id = f.ninja_2)
FROM
ninjas n,
friends f
WHERE
f.ninja_1 = 3;
ΠΡΡΠ·ΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΠ°ΡΡΡΠΎ:
SELECT DISTINCT
f.ninja_2,
(SELECT name FROM ninjas WHERE id = f.ninja_2)
FROM
ninjas n,
friends f
WHERE
f.ninja_1
IN
(
SELECT DISTINCT
f.ninja_2
FROM
ninjas n,
friends f
WHERE
f.ninja_1 = 1
);
ΠΡΡΠ·ΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΠ°ΡΡΡΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ°Π³Π°ΠΌΠΈ ΠΠ°ΡΡΡΠΎ:
SELECT
e.ninja_2,
(SELECT name FROM ninjas WHERE id = e.ninja_2)
FROM
enemies e
WHERE
ninja_2
IN
(
SELECT DISTINCT
f.ninja_2
FROM
ninjas n,
friends f
WHERE
f.ninja_1
IN
(
SELECT DISTINCT
f.ninja_2
FROM
ninjas n,
friends f
WHERE
f.ninja_1 = 1
)
);
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° Cypher. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΎΡΠΎΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Neo4j. ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ π