Grafowa baza danych i integracja z symfony
-
Upload
xsolve-software-house -
Category
Software
-
view
425 -
download
0
Transcript of Grafowa baza danych i integracja z symfony
![Page 1: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/1.jpg)
Grafowa baza danych i integracja z Symfony
Adam Szaraniec
Software Developer - XSolve
![Page 2: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/2.jpg)
Agenda● Wstęp i opis
● SQL way
● Demo
● Przykłady użycia w innych aplikacjach
● Integracja z SF
● Pytania?
![Page 3: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/3.jpg)
Grafowa baza danychGrafowa baza danych -wykorzystuje struktury grafów z węzłami, krawędziami i
własnościami do przedstawiania i przechowywania danych.
● ACID - wszystkie operacje na strukturze bazy są wykonywane w ramach
atomowych transakcji.
● możliwość obsługi dużej ilości danych -dziesiątki miliardów węzłów oraz
krawędzi.
● wydajność - prędkość podążania po grafie jest stała, niezależna od ilości danych w
bazie.
● skalowalność - możliwość konfiguracji w klastrze w trybie master-slave.
![Page 4: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/4.jpg)
Neo4jWęzeł w to struktura danych (Encja). Węzeł może opisywać osobę, przedmiot, jakaś rzecz. Cokolwiek co przeważnie określamy rzeczownikami.
Węzły mają trzy ważne cechy:
1. Identyfikator 2. Etykietę, która mówi nam czym jest dany węzeł3. Zestaw właściwości w postaci klucz-wartość.
Relacja to po prostu powiązanie między dwoma węzłami.
1. Typ relacji. Podobnie jak etykieta węzła.2. Zestaw właściwości, zupełnie jak w węzłach
![Page 5: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/5.jpg)
SQL wayPrzeszukiwanie w szerz.
Znajomi posiadający 100 znajomych: 100^4 = 100 000 000
![Page 6: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/6.jpg)
![Page 7: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/7.jpg)
Demo http://graph.db:7474
Język zapytań:
● Gremlin
g.v(:osoby).out(osoba).filter{:osoba.contains(it.lastName)}
● Cypher
MATCH (osoba {lastName: "Adam"}) RETURN osoba
MATCH (Contacts:Contact)-[:TAGGED]->(tags) RETURN Contacts,tags
![Page 8: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/8.jpg)
Demo 1● Jak połączeni są dwa kontakty: kontakt -> miasto -> przychodnia -> szpital ->
kontakt.
● Kontakt, który zobaczył najwięcej prezentacji -> jakie kategorie go interesują.● Wyszukiwanie relacji. Kontakt -> przychodnia -> najbardziej znany kontakt.
![Page 9: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/9.jpg)
Demo 2● Podobne produkty, które są często sprzedawane do hurtowni z tego samego
miasta co konkurencyjna hurtownia.
● W których hurtowniach klient robi zakupy, rozróżnienie na kategorie produktu.
● Wspólne produkty danych hurtownii.
![Page 10: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/10.jpg)
Demo 3● Jakie produkty zostały sprzedane z Cuttlery item# 2 - tworzenie bundla.
● Klient który kupił dany produkt, kupił również.● Co łączy ciebie z innym klientem (Produkt -> kategoria, -> adres )
![Page 11: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/11.jpg)
![Page 12: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/12.jpg)
Integracja z SFlphuberdeau/Neo4j-PHP-OGM
● Doctrine Entity Manager
● Brak implementacji interface’u (Object Manager)
● Brak Query Builder’a
● Brak form type
● Ostatnia aktualizacja 8 miesięcy temu
![Page 13: Grafowa baza danych i integracja z symfony](https://reader031.fdocuments.pl/reader031/viewer/2022022419/589ffe091a28abd40b8b45ef/html5/thumbnails/13.jpg)
Pytania?