Henning Rauch                                   Henning@RauchEntwicklung.biz         Introduction to graph databasesKickof...
Agenda●   Introduction●   Graph databases●   Pros●   Cons●   Use cases●   Sones GraphDB                           2
Introduction – /me●   Studied computer science at TU-Ilmenau●   02/2009 – 11/2010 sones core developer of the    sones Gra...
Introduction – Current situation●   Data-intensive, complex and distributed applications    ●   Semantic web    ●   Recomm...
Introduction – Examplehttp://www.facebook.com/press/info.php?statistics                                                   ...
Introduction – Challenges●   Recursive connected information as a new design    goal●   Simple management of structured, s...
Graph databases – Data model●   Graph G(V,E)    ●   V – Vertices    ●   E – Edges         Vertex                  Vertex  ...
Graph databases – Data model                  Stuttgart              m               63                                 3 ...
Graph databases – Property graph●   Extension of the graph data model    ●   Additional properties on vertices and edges  ...
Graph databases – Property graphName: TU                                                                                  ...
Graph databases – Definition  A graph database is a database that uses graph  structures with nodes, edges, and properties...
Pros – Data model●   Explicit data model●   Direct mapping of real world network    structures                            ...
Pros – Efficient graph traversal●   The most important operation of graph    databases●   Recursive search for vertices/ed...
Pros – Index-free adjacency●   Relations (edges) are directly modeled on the    vertex → no need for an additional mapping...
Cons●   In general the import is slower than in    RDBMS●   Relatively new technology●   Lack of standards                ...
Use cases●   Rating of websites in search engines –    Page rank●   Who knows-who in social networks –    Shortest path●  ...
Sones GraphDB – Overview●   http://www.sones.com●   Object-oriented graph database●   Property-Hypergraph data model●   Wr...
Sones GraphDB – Architecture                           18
Sones GraphDB – Architecture                           19
Sones GraphDB – GraphQL// define Vertex TypeCREATE VERTEX User ADD ATTRIBUTES (String Name, SET<User> Friends) INDICES (Na...
Sones GraphDB – HowTo run it●   Windows: Install Visual Studio (professional    and higher) or MonoDevelop●   Linux: Insta...
Sones GraphDB – Documentation●   Blog: http://developers.sones.de/●   Wiki: http://developers.sones.de/wiki/doku.php●   Fo...
Graph visualization●   http://gephi.org/screenshots/●   http://mbostock.github.com/d3/●   http://www.fluidops.net/informat...
Upcoming SlideShare
Loading in …5
×

Kickoff research project TU Ilmenau

1,051 views

Published on

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

Kickoff research project TU Ilmenau

  1. 1. Henning Rauch Henning@RauchEntwicklung.biz Introduction to graph databasesKickoff research projectTU-Ilmenau 11/2011 1
  2. 2. Agenda● Introduction● Graph databases● Pros● Cons● Use cases● Sones GraphDB 2
  3. 3. Introduction – /me● Studied computer science at TU-Ilmenau● 02/2009 – 11/2010 sones core developer of the sones GraphDB ● GraphQL ● Type-Management● 11/2010 – 11/2011 sones Head of R&D ● Design of v2 ● Refactoring of v1 → v2 (de-facto rewrite)● 11/2011 – now NoSQL freelancer & visiting lecturer 3
  4. 4. Introduction – Current situation● Data-intensive, complex and distributed applications ● Semantic web ● Recommendation systems ● Social networks● Similarities ● Strong connected data in large amounts ● Complex structures ● Continuous growth in data volume ● Mix of structured and non-structured (schema-less) data 4
  5. 5. Introduction – Examplehttp://www.facebook.com/press/info.php?statistics 5
  6. 6. Introduction – Challenges● Recursive connected information as a new design goal● Simple management of structured, semi- structured and unstructured data● Replication● Versioning● Efficient partitioning of data● Graph oriented operations 6
  7. 7. Graph databases – Data model● Graph G(V,E) ● V – Vertices ● E – Edges Vertex Vertex 0 1 7
  8. 8. Graph databases – Data model Stuttgart m 63 3 3k km 38 260 kmJena Berlin 8
  9. 9. Graph databases – Property graph● Extension of the graph data model ● Additional properties on vertices and edges ● The properties are key/value pairs (Age:23) ● Keys are specified by the schema of the vertex type Name: Alice Name: Bob ID: 0 CommunicatesWith ID: 1 Age: 23 Encrypted : true Age: 42 Method : RSA 9
  10. 10. Graph databases – Property graphName: TU Name: Uni Ilmenau StudiesIn Stuttgart Name: Carol Since: 20 07 ID: 3 Age: 18 Stu ce: 20 Co Sin 0 En mm Since: 201 StudiesIn die f ter cr eO S i s yp uni sIn 4 tiv : te c a la ree d: t fa e s W 0 Re eg ls e D it h Name: Alice Name: Bob CommunicatesWith ID: 0 ID: 1 Encrypted: true Age: 23 Age: 42 Method: RSA 10
  11. 11. Graph databases – Definition A graph database is a database that uses graph structures with nodes, edges, and properties to represent and store information. General graphdatabases that can store any graph are distinct from specialized graph databases such as triplestores and network databases. http://en.wikipedia.org/wiki/Graph_database 11
  12. 12. Pros – Data model● Explicit data model● Direct mapping of real world network structures 12
  13. 13. Pros – Efficient graph traversal● The most important operation of graph databases● Recursive search for vertices/edges with certain properties● Finding paths in graphs● GraphDB is able to do ~80M vertex- traversals per second 13
  14. 14. Pros – Index-free adjacency● Relations (edges) are directly modeled on the vertex → no need for an additional mapping● No need for a global index for relations● Data locality → adjacent vertices can be persisted "close together" (efficient storage)● → The vertex-traversal performance is independent from the size of the graph 14
  15. 15. Cons● In general the import is slower than in RDBMS● Relatively new technology● Lack of standards 15
  16. 16. Use cases● Rating of websites in search engines – Page rank● Who knows-who in social networks – Shortest path● Recommendation systems – Bipartite matching● ... 16
  17. 17. Sones GraphDB – Overview● http://www.sones.com● Object-oriented graph database● Property-Hypergraph data model● Written in C# (97%)● C# embedded/remote API● GraphQL● Non-persistent OSE and proprietary persistent GraphFS 17
  18. 18. Sones GraphDB – Architecture 18
  19. 19. Sones GraphDB – Architecture 19
  20. 20. Sones GraphDB – GraphQL// define Vertex TypeCREATE VERTEX User ADD ATTRIBUTES (String Name, SET<User> Friends) INDICES (Name)// add vertices Alice and Bob INSERT INTO User VALUES (Name = "Alice", Age = 23) INSERT INTO User VALUES (Name = "Bob", Age = 42)// add edges between Alice and Bob LINK User(Name = ‘Alice) VIA Friends TO User(Name = ‘Bob) LINK User(Name = ‘Bob) VIA Friends TO User(Name = ‘Alice‘) 20
  21. 21. Sones GraphDB – HowTo run it● Windows: Install Visual Studio (professional and higher) or MonoDevelop● Linux: Install mono-complete and MonoDevelop● Download the source from https://github.com/cosh/sones● Open the „CoreDeveloper.sln“● Have phun 21
  22. 22. Sones GraphDB – Documentation● Blog: http://developers.sones.de/● Wiki: http://developers.sones.de/wiki/doku.php● Forum: http://forum.sones.de/● BugTracking: http://jira.sones.de/● The fastest way to information: /me :) 22
  23. 23. Graph visualization● http://gephi.org/screenshots/● http://mbostock.github.com/d3/● http://www.fluidops.net/information-workbench/ 23

×