13
Grafowa baza danych i integracja z Symfony Adam Szaraniec Software Developer - XSolve

Grafowa baza danych i integracja z symfony

Embed Size (px)

Citation preview

Page 1: Grafowa baza danych  i integracja z symfony

Grafowa baza danych i integracja z Symfony

Adam Szaraniec

Software Developer - XSolve

Page 2: Grafowa baza danych  i integracja z symfony

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

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

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

SQL wayPrzeszukiwanie w szerz.

Znajomi posiadający 100 znajomych: 100^4 = 100 000 000

Page 6: Grafowa baza danych  i integracja z symfony
Page 7: Grafowa baza danych  i integracja z symfony

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

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

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

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
Page 12: Grafowa baza danych  i integracja z symfony

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

Pytania?