Gráfadatbázisok Rácz Gábor.

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Backend: Gyors és olcsó(?) ÁRVAI ZOLTÁN KITCHEN BUDAPEST.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Active Directory.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
SQL Server 2005 Reporting Services a gyakorlatban
Adatbázis alapú rendszerek
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
megismerése, mintaadatbázis létrehozása
Szárnyas Gábor október 11.
HADOOP Korszerű Adatbázisok Elérés, Belépés Elérés: eszakigrid109.inf.elte.hu Belépés: felhasználó/jelszó: neptun-kód Manager oldalak:
SQL – DQL (Data Query Language ) adat lekérdezések
Virtuális Obszervatórium Korszerű adatbázisok 2014.
Neo4j bevezető Rácz Gábor
Hadoop Gyakorlat 1 Korszerű adatbázisok Parancsok Listázás – hadoop fs –ls Kiírja egy fájl tartalmát – hadoop fs –cat Betöltés – hadoop fs –put.
Gráf Szélességi bejárás
(MY)SQL MEGJEGYZÉSEK. MYISAM VS. INNODB  A MySQL-ben többféle tárolási motor is használatos: MyISAM, InnoDB  A régebbi verziókban a MyISAM alapértelmezett,
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
SQL Server 2005 relációs adattárház technológiák
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Korszerű adatbázisok 1. előadás Bevezetés 1. előadás.
Hadoop Gyakorlat 2 Korszerű adatbázisok Parancsok Listázás – hadoop fs –ls Kiírja egy fájl tartalmát – hadoop fs –cat Betöltés – hadoop fs –put.
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
Nézettáblák létrehozása, módosítása és törlése
XML támogatás adatbázis-kezelő rendszerekben
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
2012. tavaszi félév Véső Tamás. Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét és a részlegében dolgozók legkisebb és legnagyobb jövedelmét,
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
Készítette: Lipp Marcell
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Gráf-adatbázis építése twitter adatokból
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Adatbázisok gyakorlat
Kulcsok meghatározása a táblákban
Webprogramozó tanfolyam
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Szélességi bejárás. Kezdőcsúcs felvétele Innen haladunk egy szinttel lejebb, itt felvesszük az összes olyan csúcsot, amit elérünk Ha elfogytak, akkor.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
SQL Server 7 installálása. A szükséges hardver és szoftver Processzor Memória Háttértár OS Hálózat Kliensek.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Szélességi bejárás Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Hadoop Gyakorlat 1 Korszerű adatbázisok.
Adatbázisszintű adatmodellek
Programozás III JPA.
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Pinczel Balázs, ELTE IK, április Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények:
Készítette: Kiss András
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
A Robotok miért nem értik az internetet?
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Előadás másolata:

Gráfadatbázisok Rácz Gábor

NoSQL Kulcs-érték Gráfadatbázis Dokumentum tárolók Oszlopcsaládok, (BigTable) Huge quantity of data => Distributed systems => expensive joins => New fields, new demands (graphs) => Different data strucutres: Simplier or more specific

Gráfadatbázisok

Gráfok mindenhol Ökológiai hálózat Közösségi hálózat Biológiai hálózat Kémiai hálózat Program folyam Web gráf

Gráf Objektumok halmaza, ahol az objektumokat élekkel köthetjük össze. 𝐺=(𝑉,𝐸), ahol 𝑉 a csúcsok halmaza és 𝐸⊆𝑉×𝑉 az élek halmaza Típusai: Irányított / irányítatlan Súlyozott / súlyozatlan Egyszerű / multi Címkézett / címkézetlen Tulajdonsággráf Szemantikus gráf Körmentes / kört tartalmazó Hipergráf

Tulajdonsággráfok A gráfadatbázisok jellemzően tulajdonsággráfokat (property graph) tárolnak. Csúcsok Élek Egyedi azonosító Kimenő élek Forrás csúcs Bemenő élek Cél csúcs Tulajdonságok: kulcs-érték párok Típuscímke

Gráf keretrendszerek vs. Gráfadatbázisok Gráfokkal kapcsolatos algoritmusok implementációit tartalmazzák A gráfokat általában Temporálisan hozzák létre, és Memóriában tárolják Gráfadatbázisok Az adatokat általában diszken tárolják Explicit módon: a csúcsok mutatókat tárolnak a szomszédokra Adatbázisokhoz tartozó funkciók: Felhasználók kezelése Tranzakciók futtatása Konzisztencia biztosítása

RDBMS vs. Gráfadatbázisok Relációs adatbázisok Kapcsolatok a táblák elemei között: foreign-keys Kötött séma Az összekapcsolások a lekérdezéskor számítódnak ki Több-a-többhöz kapcsolatok: kapcsoló táblák Gráfadatbázisok Minden csúcs explicit össze van kapcsolva a szomszédaival Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/ Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/

RDBMS vs. Gráfadatbázisok Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/ Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/

RDBMS vs. Gráfadatbázisok Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/ Forrás: http://neo4j.com/developer/graph-db-vs-rdbms/

Neo4j Gráfadatbázis Manuál: http://neo4j.com/docs/2.1.7/ Sémafüggetlen ACID tranzakciós modell Skálázható Java, beágyazható Magas rendelkezésre állás (commercial) Deklaratív lekérdezőnyelv REST API Manuál: http://neo4j.com/docs/2.1.7/ Gráfadatbázis: olyan adatbázis, amely gráf struktúrát használ, azaz csúcsokkal, élekkel és ezekhez rendelt tulajdonságokkal reprezentálja az adatot. Minden elem közvetlen pointert tartalmaz a szomszédos elemekre.

Csúcsok

Élek

Tulajdonságok

MySQL vs Neo4j SELECT a.inV FROM graph as a WHERE a.outV=? SELECT b.inV FROM graph as a, graph as b WHERE a.inV=b.outV and a.outV=? Forrás: http://java.dzone.com/articles/mysql-vs-neo4j-large-scale Forrás: http://java.dzone.com/articles/mysql-vs-neo4j-large-scale

Cypher Deklaratív lekérdezőnyelv a Neo4j gráfadatbázishoz MATCH – WHERE – RETURN alakú lekérdezések A lekérdezések mintailleszésen alapulnak

Cypher cheat sheet http://neo4j.com/docs/2.1/cypher-refcard/

Cypher cheat sheet Használni fogjuk: Read Query Structure Collections Match Collection functions Where Path function With Predicates Return Aggregation Operators Collection predicates Patterns

Telepítés 1. Download Neo4j community edition http://neo4j.com/download/ (neo4j-community_windows_2_1_7.exe) 2. Install (-> "c:/tmp/Neo4j Community" = neo) 3. Copy twitter Database http://raczg.web.elte.hu/korszeru/twitter.zip (-> neo/data/twitter) 4. Start Server neo/bin/neo4j-community.exe database location: neo/data/twitter start 5. localhost:7474

Példa gráf Csúcsok Élek Tweet url Tag User tweet - "LINKS" - url id: tweet id short: a short text text: a tweet link: hivatkozás a tweet-re date: long-ként? (pl. 1319555680) url url: tweet-en belüli link Tag name: (pl. "springone") User twid: azonosító (pl. "mikewitters") Élek tweet - "LINKS" - url user - "TWEETED" - tweet user - "KNOWS" - user tweet - "MENTIONS" - user user - "USED" - tag tweet - "TAGGED" - tag

Példa gráf

Feladatok (jeff {twid: "jeffgortatowsky"}) (star {twid:"starbuxman"}) 1. Milyen tageket használt jeff? 2. Hányat tweetelt jeff? 3. Mikor tweetelt először jeff? 4. Mely tweetekben szerepel a "neo4j" hashtag, jeff tweetjei közül? 5. Milyen tageket használt jeff és star közösen? 6.a. Kik említették egymást a tweetjeikben? 6.b. Páronként csak egyszer írjuk ki! 6.c. Csak azokat írjuk ki, akik nem ismerik egymást.

Feladatok (jeff {twid: "jeffgortatowsky"}) (star {twid:"starbuxman"}) 7. Adjuk meg a 10 legtöbbször előforduló hashtaget az előfordulások számával! 8.a. Írjuk ki a jeff által küldött tweetek szövegét, a benne szereplő hashtageket tweetenként csoportosítva! (a hashtageket listaként kell megadni) 8.b. Csak azok a tweetek jelenjenek meg, melyekben legalább két hashtag van! 9.a. Melyik a legrövidebb út jeff és star között a KNOWS típusú élek mentén? 9.b. Hány csúcsból áll?

Feladatok (jeff {twid: "jeffgortatowsky"}) (star {twid:"starbuxman"}) 10.a. Hány 5 vagy 6 hosszú út van jeff és star között a KNOWS típusú élek mentén? 10.b. Ezek közül melyik utakon szerepel jeff csak kezdőcsúcsként? 10.c. Ezek közül melyik út körmentes?

Egyebek Gremlin Java