NoSQL: Graph Databases. Databases Why NoSQL Databases?

Slides:



Advertisements
Similar presentations
Leveraging Commercial Graph DB Technologies in Open Source and Polyglot Application Environments Brian Clark, VP Product Management Objectivity, Inc.
Advertisements

No SQL is not about SQL No SQL is a Zoo.. Key-Value Stores Wide Column Stores Document Stores Graph Databases.
2 Proprietary & Confidential What is Sharding Benefits of Sharding Alternatives of Sharding When to start Sharding Agenda.
Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or.
Jennifer Widom NoSQL Systems Overview (as of November 2011 )
Relational Database Alternatives NoSQL. Choosing A Data Model Relational database underpin legacy applications and meet business needs However, companies.
Reporter: Haiping Wang WAMDM Cloud Group
Regions of Interest.  What’s in a ROI?  Use cases  Requirements  Current Storage System  Problems  Alternative Storage.
NoSQL and NewSQL Justin DeBrabant CIS Advanced Systems - Fall 2013.
Graph databases …the other end of the NoSQL spectrum. Material taken from NoSQL Distilled and Seven Databases in Seven Weeks.
Neo4j Adam Foust.
NoSQL Database.
CS 405G: Introduction to Database Systems 24 NoSQL Reuse some slides of Jennifer Widom Chen Qian University of Kentucky.
Massively Parallel Cloud Data Storage Systems S. Sudarshan IIT Bombay.
Survey of Graph Database Models Byoung Ju Yang IDS Lab., Seoul National University.
1 Yasin N. Silva Arizona State University This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Distributed Data Stores and No SQL Databases S. Sudarshan IIT Bombay.
AN INTRODUCTION TO NOSQL DATABASES Karol Rástočný, Eduard Kuric.
SQL vs NOSQL Discussion
Systems analysis and design, 6th edition Dennis, wixom, and roth
Distributed Data Stores and No SQL Databases S. Sudarshan Perry Hoekstra (Perficient) with slides pinched from various sources such as Perry Hoekstra (Perficient)
Getting Biologists off ACID Ryan Verdon 3/13/12. Outline Thesis Idea Specific database Effects of losing ACID What is a NoSQL database Types of NoSQL.
Goodbye rows and tables, hello documents and collections.
Modern Databases NoSQL and NewSQL Willem Visser RW334.
NoSQL Databases NoSQL Concepts SoftUni Team Technical Trainers Software University
Changwon Nati Univ. ISIE 2001 CSCI5708 NoSQL looks to become the database of the Internet By Lawrence Latif Wed Dec Nhu Nguyen and Phai Hoang CSCI.
Cloud Computing Clase 8 - NoSQL Miguel Johnny Matias
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
Methodological Foundations of Biomedical Informatics (BMSC-GA 4449) Himanshu Grover.
Analytics: SQL or NoSQL? Richard Taylor Chair Business Intelligence SIG.
NOSQL Implementation and examples Maciej Matuszewski.
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
NoSQL Or Peles. What is NoSQL A collection of various technologies meant to work around RDBMS limitations (mostly performance) Not much of a definition...
NoSQL Systems Motivation. NoSQL: The Name  “SQL” = Traditional relational DBMS  Recognition over past decade or so: Not every data management/analysis.
NOSQL DATABASE Not Only SQL DATABASE
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT IT Monitoring WG Technology for Storage/Analysis 28 November 2011.
Introduction to MongoDB. Database compared.
Data and Information Systems Laboratory University of Illinois Urbana-Champaign Data Mining Meeting Mar, From SQL to NoSQL Xiao Yu Mar 2012.
CPT-S Advanced Databases 11 Yinghui Wu EME 49.
NoSQL databases A brief introduction NoSQL databases1.
@jrobinson954
CMPE 226 Database Systems May 3 Class Meeting Department of Computer Engineering San Jose State University Spring 2016 Instructor: Ron Mak
Content Analytics - Gaining Insight from Your Content with NOSQL.
Context Aware RBAC Model For Wearable Devices And NoSQL Databases Amit Bansal Siddharth Pathak Vijendra Rana Vishal Shah Guided By: Dr. Csilla Farkas Associate.
Department of Computer Science, Johns Hopkins University EN Instructor: Randal Burns 24 September 2013 NoSQL Data Models and Systems.
Data Tier Options NWEN304 Advanced Network Applications.
Group members: Phạm Hoàng Long Nguyễn Huy Hùng Lê Minh Hiếu Phan Thị Thanh Thảo Nguyễn Đức Trí 1 BIG DATA & NoSQL Topic 1:
1 Analysis on the performance of graph query languages: Comparative study of Cypher, Gremlin and native access in Neo4j Athiq Ahamed, ITIS, TU-Braunschweig.
Dive into NoSQL with Azure Niels Naglé Hylke Peek.
NoSQL: Graph Databases
Neo4j: GRAPH DATABASE 27 March, 2017
Database Systems: Design, Implementation, and Management Tenth Edition
CS 405G: Introduction to Database Systems
NO SQL for SQL DBA Dilip Nayak & Dan Hess.
NoSQL: Graph Databases
and Big Data Storage Systems
CS122B: Projects in Databases and Web Applications Winter 2017
Based on: NoSQL Databases Based on:
NoSQL Database and Application
Modern Databases NoSQL and NewSQL
NOSQL.
NOSQL databases and Big Data Storage Systems
NoSQL Systems Overview (as of November 2011).
Massively Parallel Cloud Data Storage Systems
NoSQL Databases Antonino Virgillito.
NoSQL Not Only SQL University of Kurdistan Faculty of Engineering
A gentle introduction to graph databases
April 13th – Semi-structured data
Introduction to NoSQL Database Systems
NoSQL databases An introduction and comparison between Mongodb and Mysql document store.
Presentation transcript:

NoSQL: Graph Databases

Databases Why NoSQL Databases?

Trends in Data

Data is getting bigger: “Every 2 days we create as much information as we did up to 2003” – Eric Schmidt, Google

Data is more connected: Text HyperText RSS Blogs Tagging RDF

Trend 2: Connectedness Information connectivity Text Documents Hypertext Feeds Blogs Wikis UGC Tagging Folksonomies RDFa Onotologies GGG

Data is more Semi-Structured: If you tried to collect all the data of every movie ever made, how would you model it? Actors, Characters, Locations, Dates, Costs, Ratings, Showings, Ticket Sales, etc.

Architecture Changes Over Time DB Application 1980’s: Single Application

Architecture Changes Over Time DB Application 1990’s: Integration Database Antipattern Application

Architecture Changes Over Time 2000’s: SOA DB Application DB Application DB Application RESTful, hypermedia, composite apps

Side note: RDBMS performance Salary list Most Web apps Social Network Location-based services

NOSQL Not Only SQL

Less than 10% of the NOSQL Vendors

Four NOSQL Categories

Key Value Stores Most Based on Dynamo: Amazon Highly Available Key-Value Store Data Model: – Global key-value mapping – Big scalable HashMap – Highly fault tolerant (typically) Examples: – Redis, Riak, Voldemort

Key Value Stores: Pros and Cons Pros: – Simple data model – Scalable Cons – Create your own “foreign keys” – Poor for complex data

Column Family Most Based on BigTable: Google’s Distributed Storage System for Structured Data Data Model: – A big table, with column families – Map Reduce for querying/processing Examples: – HBase, HyperTable, Cassandra

Column Family: Pros and Cons Pros: – Supports Simi-Structured Data – Naturally Indexed (columns) – Scalable Cons – Poor for interconnected data

Document Databases Data Model: – A collection of documents – A document is a key value collection – Index-centric, lots of map-reduce Examples: – CouchDB, MongoDB

Document Databases: Pros and Cons Pros: – Simple, powerful data model – Scalable Cons – Poor for interconnected data – Query model limited to keys and indexes – Map reduce for larger queries

Graph Databases Data Model: – Nodes and Relationships Examples: – Neo4j, OrientDB, InfiniteGraph, AllegroGraph

Graph Databases: Pros and Cons Pros: – Powerful data model, as general as RDBMS – Connected data locally indexed – Easy to query Cons – Sharding ( lots of people working on this) Scales UP reasonably well – Requires rewiring your brain

What are graphs good for? Recommendations Business intelligence Social computing Geospatial Systems management Web of things Genealogy Time series data Product catalogue Web analytics Scientific computing (especially bioinformatics) Indexing your slow RDBMS And much more!

What is a Graph?

An abstract representation of a set of objects where some pairs are connected by links. Object (Vertex, Node) Link (Edge, Arc, Relationship)

Different Kinds of Graphs Undirected Graph Directed Graph Pseudo Graph Multi Graph Hyper Graph

More Kinds of Graphs Weighted Graph Labeled Graph Property Graph

What is a Graph Database? A database with an explicit graph structure Each node knows its adjacent nodes As the number of nodes increases, the cost of a local step (or hop) remains the same Plus an Index for lookups

Relational Databases

Graph Databases

Neo4j Tips Each entity table is represented by a label on nodes Each row in a entity table is a node Columns on those tables become node properties. Remove technical primary keys, keep business primary keys Add unique constraints for business primary keys, add indexes for frequent lookup attributes

Neo4j Tips Replace foreign keys with relationships to the other table, remove them afterwards Remove data with default values, no need to store those Data in tables that is denormalized and duplicated might have to be pulled out into separate nodes to get a cleaner model. Indexed column names, might indicate an array property (like 1, 2, 3) Join tables are transformed into relationships, columns on those tables become relationship properties

Node in Neo4j

Relationships in Neo4j Relationships between nodes are a key part of Neo4j.

Relationships in Neo4j

Twitter and relationships

Properties Both nodes and relationships can have properties. Properties are key-value pairs where the key is a string. Property values can be either a primitive or an array of one primitive type. For example String, int and int[] values are valid for properties.

Properties

Paths in Neo4j A path is one or more nodes with connecting relationships, typically retrieved as a query or traversal result.

Traversals in Neo4j Traversing a graph means visiting its nodes, following relationships according to some rules. In most cases only a subgraph is visited, as you already know where in the graph the interesting nodes and relationships are found. Traversal API Depth first and Breadth first.

Starting and Stopping

Preparing the database

Wrap mutating operations in a transaction.

Creating a small graph

Print the data

Remove the data

The Matrix Graph Database

Traversing the Graph