Neo4J. Warsztat z grafowej bazy danych Neo4J. Laboratorium I: do zdobycia 40 pkt. Praca domowa: do zdobycia 10 pkt.

Podobne dokumenty
Neo4J. Warsztat z grafowej bazy danych Neo4J. Warsztaty: do zdobycia 20 pkt.

SQL i podstawy technologii relacyjnych baz danych Zadania dodatkowe

Język SQL, zajęcia nr 1

Grupowanie i funkcje agregujące

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Przestrzenne bazy danych Podstawy języka SQL

Autor: Joanna Karwowska

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

Pola wielowartościowe Edytowanie relacji Wprowadzanie przykładowych danych

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Przykładowe rozwiązania

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Zadania z SQLa (MS SQL Server)

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Autor: Joanna Karwowska

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

Leszek Stasiak Zastosowanie technologii LINQ w

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Modelowanie wielowymiarowe hurtowni danych

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Akcja Filmowa MRÓWKOJADY NA TROPIE

Politechnika Częstochowska. Projektowanie systemów użytkowych II

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Jerzy Nawrocki, Wprowadzenie do informatyki

SQL :: Data Definition Language

Technologie baz danych

BAZY DANYCH laboratorium 2 tworzenie bazy danych, podstawy języka SQL

Instrukcja funkcjonalności Indeks Elektroniczny

Klucz podstawowy dla tabeli można zdefiniować tylko jeden klucz podstawowy. pozostawiając pole A dres puste.

INSTRUKCJA LABORATORIUM Automatyzacja procesów przemysłowych.

Praca z widokami i nawigacja w pokazie

Platforma zaopatrzeniowa b2b24.pl Podręcznik użytkownika. Fundusze Europejskie dla rozwoju innowacyjnej gospodarki. b2b24.pl

Przygotowanie formularza do wypożyczenia filmu:

Aplikacje bazodanowe. Laboratorium 4. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, / 13

Wysokość drzewa Głębokość węzła

Wykład 05 Bazy danych

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

1. Instalacja Programu

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Wykład 8. SQL praca z tabelami 5

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

ACCESS 2007 Tworzymy bazę danych plik: filmoteka.accdb

Technologie baz danych

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Konkursy w województwie podkarpackim w roku szkolnym 2016/2017

Oracle PL/SQL. Paweł Rajba.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy technologii WWW

Jak publikować na MiMamo.pl

SQL (ang. Structured Query Language)

Bazy danych i usługi sieciowe

Pakiety podprogramów Dynamiczny SQL

Technologie baz danych

Programowanie w języku Java

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Optymalizacja poleceń SQL Metody dostępu do danych

Sieci Bayesa mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Sosnowiec, 2011

1. Zarządzanie informacją w programie Access

konspekt pojedynczy slajd sortowanie slajdów strona notatek 1. Widok normalny/konspekt 2. Widok sortowania slajdów 3.

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Rejestracja studentów na zajęcia w systemie USOSweb.

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Programowanie i struktury danych

PODSTAWOWE INFORMACJE NA TEMAT KONSOLI W SYSTEMIE WINDOWS

Ćwiczenie 3 funkcje agregujące

Grafowe języki zapytań. Anna Kosieradzka

Zaproszenie. Dyrekcja Zespołu Szkolno-Przedszkolnego nr 3 oraz nauczyciel języka angielskiego zapraszają uczniów klas 4-6 do udziału w

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Office 365 w ujęciu federacyjnym

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Struktura bazy danych

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Autor: Joanna Karwowska

Film to życie, z którego wymazano plamy nudy (A. Hitchcock) rodzaje i gatunki filmowe

Języki programowania imperatywnego

Modelowanie obiektowe - Ćw. 1.

Relacyjne bazy danych. Podstawy SQL

Niezwykłe chmury. Animowany świat. Błysk i lśnienie. Instrukcję, jak ze zdjęć zrobić film, oraz dodatkowe wskazówki znajdziesz na kolejnych stronach

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Instalacja MySQL.

1. LOGOWANIE DO SYSTEMU

Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6

Zapraszamy do zapoznania się z Instrukcja obsługi

Małgorzata Garkowska Ambasador programu etwinning

SysML Tworzenie diagramu aktywności SysML005

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Język UML w modelowaniu systemów informatycznych

Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

Język SQL, zajęcia nr 2

Transkrypt:

Neo4J Warsztat z grafowej bazy danych Neo4J Laboratorium I: do zdobycia 40 pkt. Praca domowa: do zdobycia 10 pkt.

Grafy są wszędzie ludzie reprezentują informację w postaci grafów Na tablicy przykład grafu (studenci uczęszczają na zajęcia)

PropertyGraphModel (modelujemy graf) węzły: Każdy węzeł może mieć etykietę Każdy węzeł może mieć właściwości (więcej niż jedną) Pomiędzy dwoma węzłami istnieje nazwany związek: Posiada kierunek Węzeł początkowy Węzeł końcowy Ma właściwości No broken links : związek musi mieć zawsze węzeł początkowy i końcowy. Jeżeli istnieje związek pomiędzy dwoma węzłami to nie można usunąć węzła bez usunięcia związku.

Neo4J przykład grafu

Neo4J cechy

Edycje Community edition Enterprise edition http://neo4j.com/editions/ Pracujemy na koncie systemu Windows: login:.\dblab, hasło:lab_db Hasło neo4j zmieniamy na nbd

Instalacja Baza danych filmów zapytania z tutoriala Gwiazdka, examplegraph, moviegraph, klikamy prawą strzałkę i ładujemy dane 1x

Zapytanie 1 Zwróć wszystkie węzły MATCH (n) RETURN n;

Zapytanie 2 Usuń wszystkie węzły MATCH (n) DELETE n Udało się? Dlaczego?

Zapytanie 2 Usuń wszystkie węzły MATCH (n) DETACH DELETE n

Zapytanie 3 Zwróć wszystkie węzły powiązane z innym węzłem MATCH (n)-->(m) RETURN n, m;

Zapytanie 4 Nie wszystko potrzebuje nazwy MATCH (n)-->( ) RETURN n

Zapytanie 5 Zwróć własność o danej nazwie MATCH (person)-->() RETURN person.name;

Zapytanie 6 Wykorzystanie nazwy związku MATCH (node)-[rel]-> () RETURN node, rel.roles;

Zapytanie 7 Zwróć węzły wraz z typami związków od nich wychodzących MATCH (person)-[rel]->(movie) RETURN person, type(rel) Co zwróci pytanie? MATCH (movie)-[rel]->(person) RETURN movie, type(rel) Dlaczego?

Zapytanie 8 Aktorzy i filmy, w których grali MATCH (actor)-[:acted_in]->(movie) RETURN actor.name, movie.title;

Zapytanie 9 Aktorzy i filmy i role, które odgrywali MATCH (actor)-[role:acted_in]->(movie) RETURN actor.name, role.roles, movie.title;

Zapytanie 10 Węzeł źródłowy musi być osobą MATCH (actor:person)-[:acted_in]->(movie) RETURN actor.name, movie.title;

Zapytanie 11 Wybór jednego węzła MATCH (tom:person) WHERE tom.name = "Tom Hanks RETURN tom; MATCH (tom:person {name:"tom Hanks"}) RETURN tom;

Zapytanie 12 Podaj aktora, film w którym grał oraz reżysera tego filmu MATCH (actor)-[:acted_in]->(movie)<-[:directed]-(director) RETURN actor.name, movie.title, director.name; MATCH (actor)-[:acted_in]->(movie), (movie)<-[:directed]-(director) RETURN actor.name, movie.title, director.name;

Zapytanie 13 Nazwanie ścieżki MATCH p=(a)-[:acted_in]->(m)<-[:directed]-(d) RETURN nodes(p);

Zapytanie 14 Zwracamy tylko węzły ze ścieżki MATCH p=(a)-[:acted_in]->(m)<-[:directed]-(d) RETURN nodes(p);

Zapytanie 15 Zwracamy tylko związki MATCH p=(a)-[:acted_in]->(m)<-[:directed]-(d) RETURN rels(p);

Zapytanie 16 Zwraca dwie ścieżki MATCH p1=(a)-[:acted_in]->(m), p2=(d)-[:directed]->(m) RETURN p1, p2;

Zapytanie 17 5 pkt. do zdobycia 1. Podaj imiona i nazwiska aktorów, tytuły filmów, w których grali, wraz z nazwiskiem reżysera, który wyreżyserował ten film 2. Przekształć zapytanie, w taki sposób, aby zwracało tylko aktorów grających w filmach przez siebie reżyserowanych.

Zapytanie 17 1. MATCH (a)-[:acted_in]->(m)<-[:directed]-(d) RETURN a.name, m.title, d.name;

Zapytanie 17 2. MATCH (a)-[:acted_in]->(m)<-[:directed]-(d) where a.name = d.name RETURN a.name, m.title, d.name ALE LEPIEJ: MATCH (a)-[:acted_in]->(m)<-[:directed]-(a) RETURN a.name, m.title

Zapytanie 18 Sortowanie MATCH (a:person)-[:acted_in]->() RETURN a.name, a.born ORDER BY a.born

Zapytanie 19 Ograniczenie liczby wyników MATCH (p:person) RETURN p.name ORDER BY p.born LIMIT 5;

Zapytanie 20 Opuszczenie pierwszych wyników MATCH (a)-[:acted_in]->(m) RETURN a.name, m.title SKIP 10 LIMIT 10;

Zapytanie 21 Wyniki niepowtarzające się MATCH (a)-[:acted_in]->() RETURN DISTINCT a ORDER BY a.born LIMIT 5

Zapytanie 22 5 pkt. do zdobycia 1. Wyświetl wszystkie unikalne rodzaje związków dla osób zapisanych w bazie.

Zapytanie 22 MATCH (p:person)-[r]->() RETURN DISTINCT type(r)

Zapytanie 23 5 pkt. do zdobycia 1. Znajdź wszystkie tytuły filmów, w których grał Tom Hanks 2. Znajdź wszystkie tytuły filmów, w których grał Tom Hanks, dla filmów powstałych po roku 2000. Jest odpowiednie property.

Zapytanie 23 1. MATCH (tom:person)-[:acted_in]->(movie) WHERE tom.name="tom Hanks RETURN movie.title; 2. MATCH (tom:person)-[:acted_in]->(movie) WHERE tom.name="tom Hanks AND movie.released > 2000 RETURN movie.title;

Zapytanie 24 5 pkt. do zdobycia 1. Znajdź wszystkie tytuły filmów, w których grał Keanu Reeves. 2. A teraz te, w których grał rolę Neo. Wskazówki: - Potrzebny jest identyfikator związku - Związek ACTED_IN posiada własność roles, która jest tablicą - Aby sprawdzić, czy element należy do tablicy należy wykonać: element IN r.roles

Zapytanie 24 1. MATCH (keanu:person)-[:acted_in]->(movie) WHERE keanu.name = "Keanu Reeves RETURN movie.title; 2. MATCH (keanu:person)-[r:acted_in]->(movie) WHERE keanu.name="keanu Reeves AND "Neo" IN r.roles RETURN movie.title;

Zapytanie 25 5 pkt. do zdobycia 1. Znajdź wszystkich aktorów, którzy grali z Tomem Hanksem i są starsi od niego. 2. A teraz podaj jeszcze o ile starsi od niego. Wskazówka: Należy w zdaniu RETURN użyć wartości wyliczanej zdefiniowanej jako pewna zmienna (AS var)

Zapytanie 25 1. MATCH (tom:person)-[:acted_in]->()<-[:acted_in]-(a:person) WHERE tom.name="tom Hanks AND a.born < tom.born RETURN a.name; 2. MATCH (tom:person {name:"tom Hanks"})-[:ACTED_IN]->(movie), (movie)<-[:acted_in]-(a:person) WHERE a.born < tom.born RETURN DISTINCT a.name, (tom.born - a.born) AS diff;

Zapytanie 26 5 pkt. do zdobycia 1. Znajdź wszystkich, którzy pracowali z Genem Hackmanem 2. Znajdź wszystkich, którzy pracowali z Genem Hackmanem i również reżyserowali swój własny film. Pracowali to grali lub reżyserowali ten sam film: ACTED_IN DIRECTED

Zapytanie 26 1. MATCH (gene:person)-[:acted_in]->()<-[:acted_in]-(other) WHERE gene.name="gene Hackman RETURN DISTINCT other; 2. MATCH (gene:person)-[:acted_in]->(m), (other)-[:acted_in]->(m) WHERE gene.name="gene Hackman AND (other)-[:directed]->() RETURN DISTINCT other;

Zapytanie 28 5 pkt. do zdobycia Znajdź wszystkich bohaterów Matrixa.

Zapytanie 28 MATCH ()-[r:acted_in]->(movie:movie {title:"the Matrix"}) RETURN r.roles

Zapytanie 27 5 pkt. do zdobycia Znajdź aktorów, którzy pracowali z Genem Hackmanem, ale nie wtedy, gdy on pracował z Robinem Williamsem. Wskazówka: Należy wykorzystać WHERE NOT()

Zapytanie 27 MATCH (gene:person {name:"gene Hackman"})-[:ACTED_IN]->(movie), (other)-[:acted_in]->(movie), (robin:person {name:"robin Williams"}) WHERE NOT (robin)-[:acted_in]->(movie) RETURN DISTINCT other;

Zapytanie 29 Zliczanie Wyświetl aktorów i liczbę filmów, w których grali. MATCH (a:person)-[:acted_in]->(m) RETURN a.name, count(m);

Zapytanie 30 Wyświetl 10 aktorów, którzy grali w największej liczbie filmów i podaj w ilu filmach grali. MATCH (a:person)-[:acted_in]->(m) RETURN a.name, count(m) ORDER BY count(m) DESCLIMIT 10;

Zapytanie 31 Dla każdej pary aktor, reżyser podaj liczbę filmów, w których razem pracowali. MATCH (a:person)-[:acted_in]->(m)<-[:directed]-(d) RETURN a.name, d.name, count(m);

Zapytanie 32 10 pkt. do zdobycia PRACA DOMOWA Zaproponuj 3 aktorów, z którymi mógłby zagrać Keanu Reaves, ale z którymi dotąd nie grał. Są to ci, którzy grali w największej liczbie filmów razem z aktorami, z którymi grał Keanu Reaves.