Neo4j. Neo4j's Cypher. Samstag, 27. April 13

Size: px
Start display at page:

Download "Neo4j. Neo4j's Cypher. Samstag, 27. April 13"

Transcription

1 Neo4j Neo4j's Cypher 1

2 (Michael)-[:WORKS_ON]-> (Neo4j) console Cypher Community Michael Server Neo4j.org Spring Cloud 2

3 3

4 is a 4

5 NOSQL 5

6 Graph Database 6

7 Some Ways to Learn Cypher 7

8 Focus on this for an hour 8

9 START WHERE Aggregation DELETE BINDS FILTERS RESTRUCTURES REMOVE_FROM Identifier Result BOUND_TO USED_IN BUILDS_UP PAGINATES SKIP/LIMIT Graph FOUND_IN Pattern ADD_TO CREATES DESCRIBES FIX CREATE COMPLETES MATCH RELATE 9

10 The Neo4j Manual docs.neo4j.org 10

11 11

12 The Cypher Reference Card 12

13 Printout at booth 13

14 The Graph Databases Book 14

15 Free Download 15

16 The Neo4j Console 16

17 The Neo4j Console You can share Graphs: 17

18 The interactive Cypher Session 18

19 19

20 A Training Berlin, Frankfurt, Munich, Zurich, Vienna, Hamburg 20

21 Listen carefully during 1st half of this talk 21

22 A project of your own Class-Graph 22

23 Cypher a humane, pattern-matching query language for graphs 23

24 Why Cypher? Not only scale of size is hard Scale of complexity is pretty hard as well 24

25 Cypher attributes #1 Declarative You tell Cypher what you want, not how to get it 25

26 Cypher attributes #2 Expressive Optimize syntax for reading MATCH (a:actor)-[r:acts_in]->(m:movie) RETURN a.name, r.role, m.title 26

27 Cypher attributes #3 Pattern Matching Patterns are easy for your brain 27

28 Cypher attributes #4 Idempotent State change should be expressed idempotently 28

29 Cypher Clauses Some Syntax 29

30 30

31 Cypher: START + RETURN START <lookup> RETURN <expressions> START binds terms using simple look-up directly using known ids or based on indexed Property RETURN expressions specify result set 30

32 Cypher: START + RETURN START <lookup> RETURN <expressions> START binds terms using simple look-up directly using known ids or based on indexed Property RETURN expressions specify result set // lookup node id 0, return that node start n=node(0) return n // lookup node in Index, return that node start n=node:person(name="andreas") return n // lookup all nodes, return all name properties start n=node(*) return n.name 30

33 31

34 Cypher: MATCH START <lookup> MATCH <pattern> RETURN <expr> MATCH describes a pattern of nodes+relationships node terms in optional parenthesis lines with arrows for relationships 31

35 Cypher: MATCH START <lookup> MATCH <pattern> RETURN <expr> MATCH describes a pattern of nodes+relationships node terms in optional parenthesis lines with arrows for relationships // lookup 'n', traverse any relationship to some 'm' start n=node(0) match (n)--(m) return n,m // any outgoing relationship from 'n' to 'm' start n=node(0) match n-->m return n,m // only 'KNOWS' relationships from 'n' to 'm' start n=node(0) match n-[:knows]->m return n,m // from 'n' to 'm' and capture the relationship as 'r' start n=node(0) match n-[r]->m return n,r,m // from 'n' outgoing to 'm', then incoming from 'o' start n=node(0) match n-->m<--o return n,m,o 31

36 32

37 Cypher: WHERE START <lookup> [MATCH <pattern>] WHERE <condition> RETURN <expr> WHERE filters nodes or relationships uses expressions to constrain elements 32

38 Cypher: WHERE START <lookup> [MATCH <pattern>] WHERE <condition> RETURN <expr> WHERE filters nodes or relationships uses expressions to constrain elements // lookup all nodes as 'n', constrained to name 'Andreas' start n=node(*) where n.name='andreas' return n // filter nodes where age is less than 30 start n=node(*) where n.age<30 return n // filter using a regular expression start n=node(*) where n.name =~ /Tob.*/ return n // filter for a property exists start n=node(*) where has(n.name) return n 32

39 33

40 Cypher: CREATE CREATE <node>[,node or relationship] RETURN <expr> create nodes with optional properties create relationship (must have a type) 33

41 Cypher: CREATE CREATE <node>[,node or relationship] RETURN <expr> create nodes with optional properties create relationship (must have a type) // create an anonymous node create n // create node with a property, returning it create n={name:'andreas'} return n // lookup 2 nodes, then create a relationship and return it start n=node(0),m=node(1) create n-[r:knows]-m return r // lookup nodes, then create a relationship with properties start n=node(1),m=node(2) create n-[r:knows {since:2008}]->m 33

42 34

43 Cypher: SET SET [<node property>] [<relationship property>] update a property on a node or relationship must follow a START 34

44 Cypher: SET SET [<node property>] [<relationship property>] update a property on a node or relationship must follow a START // update the name property start n=node(0) set n.name='peter' // update many nodes, using a calculation start n=node(*) set n.size=n.size+1 // match & capture a relationship, update a property start n=node(1) match n-[r]-m set r.times=10 34

45 35

46 Cypher: DELETE DELETE [<node> <relationship> <property>] delete a node, relationship or property must follow a START to delete a node, all relationships must be deleted first 35

47 Cypher: DELETE DELETE [<node> <relationship> <property>] delete a node, relationship or property must follow a START to delete a node, all relationships must be deleted first // delete a node start n=node(5) delete n // remove a node and all relationships start n=node(3) match n-[r]-() delete n, r // remove a property start n=node(3) delete n.age 35

48 Neo4j - the Graph Database 36

49 37

50 (Neo4j) -[:IS_A]-> (Graph Database) Open Source 1 M/s TRA VER SALS Master/Slave HIG H_A VA IL. O ES_T _A S SC AL.net LI CE NS ED _L IK E N _O Clojure JS S E T RA EG T IN PROVIDES NS RU Ruby Index RUN S_A S RU NS Server Lucene ACID TX MySQL Mongo embedded 34bn Nodes Heroku 38

51 Whiteboard --> Data 39

52 Whiteboard --> Data Andreas Peter Allison Emil 39

53 Whiteboard --> Data Andreas knows Peter knows Emil knows knows Allison 39

54 Whiteboard --> Data Andreas knows Peter knows Emil knows knows Allison 39

55 Whiteboard --> Data Andreas knows Peter knows Emil knows knows Allison // Cypher query - friend of a friend start n=node(0) match (n)--()--(foaf) return foaf 39

56 You can use Cypher from all drivers REST:// JDBC 40

57 How to get started? Documentation docs.neo4j.org - tutorials+reference free e-book: Graph Databases Neo4j in Action Spring Data, Good Relationships Get Neo4j Participate a session like this one ;) 41

58 Google "neo4j" [docs.]neo4j.org [news.]neotechnology.com github.com/neo4j neo4j.meetup.com graphconnect.com 42

59 Cypher in Action Software Metrics 43

60 Graphs in Software Technology UML / ER Diagrams are graphs dependencies between classes, packages, modules etc are graphs Software Metrics use dependency analysis Visualizations Cyclomatic Complexity, Fan-in (afferent-coupling) / Fan-out (efferent coupling) etc. 44

61 Code City 45

62 Class Diagram is a Graph 46

63 SonarJ 47

64 But there is more Visualize & Query Method, Field dependencies Collaborative filtering (co-usage) Ranking, God classes Paths between classes Architectural constraints Project dependencies 48

65 Recent project - Software Analytics & Graphs GraphLR - Antlr store - Pavlo Baron NeoMVN - Rickard Öberg Software-Metrics with Neo4j - Raoul Urma Architektur-Constraints - Dirk Mahler Class-Graph - Michael Hunger 49

66 Welcome to Class-Graph take a JAR put it through ASM scan it quickly pull everything into Neo4j add categories, indexes Have Fun 50

67 Welcome to Class-Graph :TYPE ALL_TYPES :ALL_TYPES :ALL_PACKAGES ROOT java.lang. Object :SUPER_TYPE :IN_PACKAGE :SUPER_TYPE :TYPE java.lang. Number :IN_PACKAGE java.lang java.lang. Comparable :lang java :PACKAGE_TREE java.lang. String :SUPER_TYPE :INTERFACE_TYPE :java :PARAM_TYPE java.lang. Integer PKG_TREE valueof :METHOD_OF :FIELD_OF value :RETURN_TYPE :FIELD_TYPE :THROWS int java.lang. NFE 51

68 Task: Find java.lang.number and return it 52

69 Task: Find java.lang.number and return it START o=node:types(name="java.lang.number") RETURN o; 52

70 Task: Subclasses of Number? Return just the name Order them alphabetically 53

71 Task: Subclasses of Number? START n=node:types(name="java.lang.number") MATCH n<-[:super_type]-s RETURN s.name ORDER BY s.name; Return just the name Order them alphabetically 53

72 Task: Which Methods does it have / how many Find the top 5 classes with the most members 54

73 Task: Which Methods does it have / how many START n=node:types(name="java.lang.number") MATCH n-[:method_of FIELD_OF]->m RETURN m; Find the top 5 classes with the most members 54

74 Task: Calculate the fan-out of java.lang.stringbuilder Calculate fan-in Which class has the highest fan-out What about package-level? 55

75 Task: Calculate the fan-out of java.lang.stringbuilder START o=node:types(name="j.l.stringbuilder") MATCH o-[:field_of]->f-[:field_type]->tf, o-[:method_of]->m-[:param_type]->tp, m-[:return_type]->tr RETURN o,count(distinct tf) + count(distinct tp) + count(distinct tr) AS fan_out; Calculate fan-in Which class has the highest fan-out What about package-level? 55

76 Task: Find longest Inheritance Path 56

77 Task: Find longest Inheritance Path START c=node:types(name="java.lang.object") MATCH path=p<-[:super_type*]-c RETURN extract(n in nodes(path) : n.name), length(path) AS len ORDER BY len DESC LIMIT 5; 56

78 Task: Find the class that used IOException most often 57

79 Task: Find the class that used IOException most often START ex=node:types(name="java.io.ioexception" MATCH ex<-[:throws]-m<-[:method_of]-c RETURN c, count(*) ORDER BY count(*) LIMIT 5; 57

80 Task: Which other classes did classes that threw IOException use most often? What could be a source of IOExceptions 58

81 Task: Which other classes did classes that threw IOException use most often? START ex=node:types(name="java.io.ioexception") MATCH ex<-[:throws]-m<-[:method_of]-c, mbr<-[:method_of FIELD_OF]-c, mbr-[:field_type PARAM_TYPE RETURN_TYPE THROWS]->other_type WHERE other_type.name =~ /.+[.].+/ RETURN other_type.name, count(*) ORDER BY count(*) desc LIMIT 10; What could be a source of IOExceptions 58

82 Task: Find a class you like and add a field with your name and some type 59

83 Task: Find a class you like and add a field with your name and some type START c=node:types(name="void"), t=node:types(name="java.lang.reflect.proxy") CREATE c-[:field_of]->(field {name: Michael }) -[:FIELD_TYPE]->t; 59

84 Task: Delete the most annoying class and all its methods, fields and their relationships 60

85 Task: Delete the most annoying class and all its methods, fields and their relationships START c=node:types(name="java.awt.list"), MATCH c-[r1:field_of METHOD_OF]->mbr-[r2]-() c-[r]-() DELETE c,mbr,r1,r2,r; 60

86 Rehash 61

87 START designates the start points 62

88 MATCH describes the pattern 63

89 WHERE filters the result set 64

90 CREATE creates nodes and relationships 65

91 CREATE UNIQUE creates unique patterns 66

92 RETURN projects the results 67

93 WITH chains queries, carries over 68

94 Thanks! Questions? we trade (good) questions for t-shirts 69

95 Visit our booth to chat with us or ask more questions learn more about Neo4j exchange your Q&A-shirt to the right size talk to Philip about the Neo4j Roadmap 70

Data Modeling with Neo4j. Stefan Armbruster, Neo Technology (slides from Michael Hunger)

Data Modeling with Neo4j. Stefan Armbruster, Neo Technology (slides from Michael Hunger) Data Modeling with Neo4j Stefan Armbruster, Neo Technology (slides from Michael Hunger) 1 1 33 is a 44 NOSQL 55 Graph Database 66 A graph database... NO: not for charts & diagrams, or vector artwork YES:

More information

Introducing A Graph Database - Neo4j Modeling Software Structures As A Graph Exploring An Application Using Queries Live Demo #1 Structures, Rules

Introducing A Graph Database - Neo4j Modeling Software Structures As A Graph Exploring An Application Using Queries Live Demo #1 Structures, Rules Introducing A Graph Database - Neo4j Modeling Software Structures As A Graph Exploring An Application Using Queries Live Demo #1 Structures, Rules and Erosion Validation Of Conventions And Constraints

More information

Introduction in Graph Databases and Neo4j

Introduction in Graph Databases and Neo4j Introduction in Graph Databases and Neo4j most slides from: Stefan Armbruster Michael Hunger @darthvader42 stefan.armbruster@neotechnology.com 11 The Path Forward 1.No.. NO.. NOSQL 2.Why graphs? 3.What's

More information

Neo4J: Graph Database

Neo4J: Graph Database February 24, 2013 Basics is a data storage and query system designed for storing graphs. Data as a series of relationships, modelled as a directed graph. Recall, a graph is a pair of sets: G(V, E) vertices

More information

Big Data, Complex Data

Big Data, Complex Data Big Data, Complex Data Managing Data and Complexity in Graph Databases Peter Neubauer Neo Technology #neo4j @peterneubauer peter@neotechnology.com Data size NOSQL data models Key-value stores Bigtable

More information

The Neo4j Developer Manual v3.0

The Neo4j Developer Manual v3.0 The Neo4j Developer Manual v3.0 Table of Contents Introduction.............................................................................. 1 1. Neo4j highlights......................................................................

More information

NOSQL Databases and Neo4j

NOSQL Databases and Neo4j NOSQL Databases and Neo4j Database and DBMS Database - Organized collection of data The term database is correctly applied to the data and their supporting data structures. DBMS - Database Management System:

More information

Unified Modeling Language (UML) Class Diagram

Unified Modeling Language (UML) Class Diagram 1 / 10 Unified Modeling Language (UML) Class Diagram Miaoqing Huang University of Arkansas Spring 2010 2 / 10 Outline 1 2 3 / 10 Class Diagram Class diagrams show the static structure of the classes that

More information

The Neo4j Developer Manual v3.3

The Neo4j Developer Manual v3.3 The Neo4j Developer Manual v3.3 Table of Contents Introduction.............................................................................. 1 1. Neo4j highlights......................................................................

More information

Contents. Getting Set Up Contents 2

Contents. Getting Set Up Contents 2 Getting Set Up Contents 2 Contents Getting Set Up... 3 Best Practices...3 Installing the JAR File... 3 Configuring Community Manager Reports...4 Configure the Analytics Database...4 Enable the Analytics

More information

Neo4j. Spatial. Peter Neubauer Neo Technology. GIS for the rest of us.

Neo4j. Spatial. Peter Neubauer Neo Technology. GIS for the rest of us. Neo4j Spatial GIS for the rest of us Peter Neubauer Neo Technology #neo4j @peterneubauer peter@neotechnology.com Data size NOSQL data models Key-value stores Bigtable clones Document databases Graph databases

More information

Neo4j.rb. Graph Database. The Natural Way to Persist Data? Andreas Kollegge. Andreas Ronge

Neo4j.rb. Graph Database. The Natural Way to Persist Data? Andreas Kollegge. Andreas Ronge Neo4j.rb Graph Database The Natural Way to Persist Data? Andreas Kollegge Andreas Ronge NOSQL The problem with SQL: not designed for Accelerating growth of data Huge clustered environments Complex and

More information

The Neo4j Developer Manual v3.0

The Neo4j Developer Manual v3.0 The Neo4j Developer Manual v3.0 (index.html) Table of Contents Introduction 1. Neo4j highlights 2. Graph Database Concepts Get started 3. Install Neo4j 4. Get started with Cypher Cypher Language 5. Introduction

More information

Graph Analytics. Modeling Chat Data using a Graph Data Model. Creation of the Graph Database for Chats

Graph Analytics. Modeling Chat Data using a Graph Data Model. Creation of the Graph Database for Chats Graph Analytics Modeling Chat Data using a Graph Data Model This we will be using a graph analytics approach to chat data from the Catch the Pink Flamingo game. Currently this chat data is purely numeric,

More information

Index A, B. bi-directional relationships, 58 Brewer s Theorem, 3

Index A, B. bi-directional relationships, 58 Brewer s Theorem, 3 Index A, B bi-directional relationships, 58 Brewer s Theorem, 3 C Caching systems file buffer cache, 21 high-performance cache, 22 object cache, 22 CAP Theorem, 3 collect function, 56 Constraints, 46 47

More information

NETWORK FAILURES AND ROOT CAUSE ANALYSIS: AN APPROACH USING GRAPH DATABASES

NETWORK FAILURES AND ROOT CAUSE ANALYSIS: AN APPROACH USING GRAPH DATABASES NETWORK FAILURES AND ROOT CAUSE ANALYSIS: AN APPROACH USING GRAPH DATABASES 1 A. VIJAY KUMAR, 2 G. ANJAN BABU Department of Computer Science, S V University, Tirupati, India Abstract - Detecting the origin

More information

Object-Oriented Databases Graph Databases. April 26, 2017 Alexandre de Spindler Department of Computer Science

Object-Oriented Databases Graph Databases. April 26, 2017 Alexandre de Spindler Department of Computer Science Object-Oriented Databases Graph Databases 1 Graph Databases Meta model Graph containing vertices and edges In some cases, vertices and edges may have properties (key-value) API Support the management (CRUD)

More information

Recap: Functions as first-class values

Recap: Functions as first-class values Recap: Functions as first-class values Arguments, return values, bindings What are the benefits? Parameterized, similar functions (e.g. Testers) Creating, (Returning) Functions Iterator, Accumul, Reuse

More information

Functional programming in C#

Functional programming in C# Functional programming in C# A quick approach to another paradigm Nacho Iborra IES San Vicente This work is licensed under the Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International License.

More information

PGQL 0.9 Specification

PGQL 0.9 Specification PGQL 0.9 Specification Table of Contents Table of Contents Introduction Basic Query Structure Clause Topology Constraint Repeated Variables in Multiple Topology Constraints Syntactic Sugars for Topology

More information

Traversing Graph Databases with Gremlin. Marko A. Rodriguez Graph Systems Architect.

Traversing Graph Databases with Gremlin. Marko A. Rodriguez Graph Systems Architect. Traversing Graph Databases with Gremlin Marko A. Rodriguez Graph Systems Architect http://markorodriguez.com NoSQL New York City Meetup May 16, 2011 Gremlin G =(V, E) May 10, 2011 Thank You Sponsors Short

More information

Introduction to Graph Databases

Introduction to Graph Databases Introduction to Graph Databases David Montag @dmontag #neo4j 1 Agenda NOSQL overview Graph Database 101 A look at Neo4j The red pill 2 Why you should listen Forrester says: The market for graph databases

More information

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE Metric Attitude Pag. 0 CONTENTS CONTENTS... 1 INTRODUCTION... 2 ECLIPSE... 2 1. INSTALLING ECLIPS FOR WINDOWS SYSTEM... 3 2. INSTALLING METRIC ATTITUDE...

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

RECODER - The Architecture of a Refactoring System

RECODER - The Architecture of a Refactoring System RECODER - The Architecture of a Refactoring System Andreas Ludwig Prof. U. Aßmann http://recoder.sf.net Overview ➊Programming in the Large Problems, Concepts, The Approach ➋The Architecture of RECODER

More information

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN CSSE 220 Day 19 Object-Oriented Design Files & Exceptions Check out FilesAndExceptions from SVN A practical technique OBJECT-ORIENTED DESIGN Object-Oriented Design We won t use full-scale, formal methodologies

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

JavaLand Dirk Mahler

JavaLand Dirk Mahler by JavaLand 2015 Dirk Mahler Black Boxes Called Artifacts Software As A Graph jqassistant Let s Explore Libraries! 2 Yes We Scan Software Analysis Using jqassistant 3 Artifact Result of a build/integration

More information

I) write schema of the six files.

I) write schema of the six files. Graph Analytics Modeling Chat Data using a Graph Data Model (Describe the graph model for chats in a few sentences. Try to be clear and complete.) Creation of the Graph Database for Chats Describe the

More information

JUG Saxony Day Dirk Mahler

JUG Saxony Day Dirk Mahler by JUG Saxony Day 2017 Dirk Mahler Motivation jqassistant The Git Graph Demo Q&A 2 Shadows Of The Past Analysis Of Git Repositories 3 + http://codescene.io Adam Tornhill https://pragprog.com/book/atcrime/your-code-as-a-crime-scene

More information

A Little Graph Theory for the Busy Developer. Dr. Jim Webber Chief Scientist, Neo

A Little Graph Theory for the Busy Developer. Dr. Jim Webber Chief Scientist, Neo A Little Graph Theory for the Busy Developer Dr. Jim Webber Chief Scientist, Neo Technology @jimwebber Roadmap Imprisoned data Graph models Graph theory Local properties, global behaviours Predictive techniques

More information

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN CSSE 220 Day 19 Object-Oriented Design Files & Exceptions Check out FilesAndExceptions from SVN A practical technique OBJECT-ORIENTED DESIGN Object-Oriented Design We won t use full-scale, formal methodologies

More information

Graph Database, think different!

Graph Database, think different! Graph Database, think different! Written by Roni Licher Winter 2014-2015 236363 - Database Systems - Technion Nodes Edges (directed or not) Properties Neo4j and Cypher 4j Graph database (Like SQL server

More information

MIDTERM EXAMINATION - CS130 - Spring 2003

MIDTERM EXAMINATION - CS130 - Spring 2003 MIDTERM EXAMINATION - CS130 - Spring 2003 Your full name: Your UCSD ID number: This exam is closed book and closed notes Total number of points in this exam: 120 + 10 extra credit This exam counts for

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

Informatics 1: Data & Analysis

Informatics 1: Data & Analysis Informatics 1: Data & Analysis Lecture 3: The Relational Model Ian Stark School of Informatics The University of Edinburgh Tuesday 24 January 2017 Semester 2 Week 2 https://blog.inf.ed.ac.uk/da17 Lecture

More information

CIP Multiple Graphs. Presentation at ocig 8 on April 11, Stefan Plantikow, Andrés Taylor, Petra Selmer (Neo4j)

CIP Multiple Graphs. Presentation at ocig 8 on April 11, Stefan Plantikow, Andrés Taylor, Petra Selmer (Neo4j) CIP2017-06-18 Multiple Graphs Presentation at ocig 8 on April 11, 2018 Stefan Plantikow, Andrés Taylor, Petra Selmer (Neo4j) History Started working on multiple graphs early 2017 Parallel work in LDBC

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques () Lecture 6 January 24, 2018 Binary Search Trees (Lecture notes Chapter 7) Announcements Homework 2: Computing Human Evolution due Tuesday, September 19 th Reading:

More information

NEO4J: GRAPH DATA MODEL

NEO4J: GRAPH DATA MODEL Graph Data Many types of data can be represented with nodes and edges Variations Edges can be directed or undirected Nodes and edges can have types or labels Nodes and edges can have attributes Data Management

More information

How to Use NoSQL in Enterprise Java Applications

How to Use NoSQL in Enterprise Java Applications How to Use NoSQL in Enterprise Java Applications Patrick Baumgartner NoSQL Roadshow Basel 30.08.2012 Agenda Speaker Profile New Demands on Data Access New Types of Data Stores Integrating NoSQL Data Stores

More information

Object-oriented metrics 1

Object-oriented metrics 1 Advanced Object-Oriented Design Lecture 4 Object-oriented metrics Bartosz Walter 1. Motivation and goals 2. omplexity metrics 3. Metrics for Object-Oriented Design (MOOD suite)

More information

More on Objects in JAVA TM

More on Objects in JAVA TM More on Objects in JAVA TM Inheritance : Definition: A subclass is a class that extends another class. A subclass inherits state and behavior from all of its ancestors. The term superclass refers to a

More information

Graph Databases. Big Data Course. Antonio Maccioni. 24 April Rome. locatedin

Graph Databases. Big Data Course. Antonio Maccioni. 24 April Rome. locatedin ic p o t heldby wher e Big Data Course y email locatedin af fili at ed B offered Antonio Maccioni maccioni@dia.uniroma3.it Rome Of re tu 24 April 2014 lec wh en Graph Databases Graph Databases are an odd

More information

Analyzing a social network using Big Data Spatial and Graph Property Graph

Analyzing a social network using Big Data Spatial and Graph Property Graph Analyzing a social network using Big Data Spatial and Graph Property Graph Oskar van Rest Principal Member of Technical Staff Gabriela Montiel-Moreno Principal Member of Technical Staff Safe Harbor Statement

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

Full Text Search with Sphinx

Full Text Search with Sphinx OSCON 2009 Peter Zaitsev, Percona Inc Andrew Aksyonoff, Sphinx Technologies Inc. Sphinx in a nutshell Free, open-source full-text search engine Fast indexing and searching Scales well Lots of other (unique)

More information

About this exam review

About this exam review Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review

More information

CS112 Lecture: Exceptions. Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions

CS112 Lecture: Exceptions. Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions CS112 Lecture: Exceptions Objectives: 1. Introduce the concepts of program robustness and reliability 2. Introduce exceptions Materials: 1. Online Java documentation to project 2. ExceptionDemo.java to

More information

Who we are: Database Research - Provenance, Integration, and more hot stuff. Boris Glavic. Department of Computer Science

Who we are: Database Research - Provenance, Integration, and more hot stuff. Boris Glavic. Department of Computer Science Who we are: Database Research - Provenance, Integration, and more hot stuff Boris Glavic Department of Computer Science September 24, 2013 Hi, I am Boris Glavic, Assistant Professor Hi, I am Boris Glavic,

More information

COSC 304 Introduction to Database Systems Enhanced Entity-Relationship (EER) Modeling

COSC 304 Introduction to Database Systems Enhanced Entity-Relationship (EER) Modeling COSC 304 Introduction to Database Systems Enhanced Entity-Relationship (EER) Modeling Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Enhanced Entity-Relationship Modeling

More information

3. Advanced E/R Concepts

3. Advanced E/R Concepts What you will learn about in this section Subclasses & connection to OO 3. Advanced E/R Concepts Constraints Weak entity sets 75 76 Modeling Subclasses Modeling Subclasses Some objects in a class may be

More information

An Introduction to Subtyping

An Introduction to Subtyping An Introduction to Subtyping Type systems are to me the most interesting aspect of modern programming languages. Subtyping is an important notion that is helpful for describing and reasoning about type

More information

Multiple Graphs Updatable views & Choices

Multiple Graphs Updatable views & Choices CIP2017-06-18 and related Multiple Graphs Updatable views & Choices Presentation at ocim 4 on May 22-24, 2018 Stefan Plantikow, Andrés Taylor, Petra Selmer (Neo4j) History Started working on multiple graphs

More information

opencypher.org

opencypher.org Person Person Director name: Ed Jones age: 37 favcolor: blue FRIENDS since: 2003-05-12 qualified: good name: Peter Fry nick: Lil Pete bio:... MATCH (me:person)-[:friend]->(friend) WHERE me.name = "Frank

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

What s new in Grails 2.0?

What s new in Grails 2.0? What s new in Grails 2.0? About me Jeff Brown Grails Core Developer SpringSource/VMware Engineer jbrown@vmware.com @jeffscottbrown 2 The Year in Grails 3 The Year in Grails Grails 1.3 Plugins in Dependency

More information

Programming in C# with Microsoft Visual Studio 2010

Programming in C# with Microsoft Visual Studio 2010 Programming in C# with Microsoft Visual Studio 2010 Course 10266; 5 Days, Instructor-led Course Description: The course focuses on C# program structure, language syntax, and implementation details with.net

More information

ALGORITHMS EXAMINATION Department of Computer Science New York University December 17, 2007

ALGORITHMS EXAMINATION Department of Computer Science New York University December 17, 2007 ALGORITHMS EXAMINATION Department of Computer Science New York University December 17, 2007 This examination is a three hour exam. All questions carry the same weight. Answer all of the following six questions.

More information

SAS 9.4 Foundation Services: Administrator s Guide

SAS 9.4 Foundation Services: Administrator s Guide SAS 9.4 Foundation Services: Administrator s Guide SAS Documentation July 18, 2017 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS 9.4 Foundation Services:

More information

The world's leading graph DB. Georgios Eleftheriadis Software/Database Engineer

The world's leading graph DB. Georgios Eleftheriadis Software/Database Engineer The world's leading graph DB Georgios Eleftheriadis Software/Database Engineer What is NOSQL? It s not No to SQL It s not Never SQL It s Not Only SQL as they may support SQL-like query languages NOSQL

More information

Graph Analytics. Modeling Chat Data using a Graph Data Model. Creation of the Graph Database for Chats

Graph Analytics. Modeling Chat Data using a Graph Data Model. Creation of the Graph Database for Chats Graph Analytics Modeling Chat Data using a Graph Data Model The Pink Flamingo graph model includes users, teams, chat sessions, and chat item nodes with relationships or edges of a) creating sessions,

More information

Chapter 18: Persistence

Chapter 18: Persistence Chapter 18: Persistence This chapter introduces persistent data and methods for storing information in a file and database. You'll learn the basics of SQL and how App Engine lets you use objects to store

More information

Powerful and Efficient Bulk Shortest-Path Queries: Cypher language extension & Giraph implementation

Powerful and Efficient Bulk Shortest-Path Queries: Cypher language extension & Giraph implementation Powerful and Efficient Bulk Shortest-Path Queries: Cypher language extension & Giraph implementation Peter Rutgers, Claudio Martella, Spyros Voulgaris, Peter Boncz VU University Amsterdam Spyros Voulgaris

More information

Graph database Introduc1on

Graph database Introduc1on Graph database Introduc1on Agenda What is NoSQL? What is a Graph, Anyway? What is a Graph Database? Neo4J Graph Database What is NoSQL? Stands for Not Only SQL Class of non- relaaonal data storage systems

More information

YOUR GUIDE TO. Skype for Business

YOUR GUIDE TO. Skype for Business YOUR GUIDE TO Skype for Business Welcome to Skype for Business This is the Skype for Business app Your profile picture, status & location (you can change these) Your options Your contacts and groups (you

More information

3. Advanced E/R Concepts

3. Advanced E/R Concepts 3. Advanced E/R Concepts 75 What you will learn about in this section Subclasses & connection to OO Constraints Weak entity sets 76 Modeling Subclasses Some objects in a class may be special, i.e. worthy

More information

Functions & First Class Function Values

Functions & First Class Function Values Functions & First Class Function Values PLAI 1st ed Chapter 4, PLAI 2ed Chapter 5 The concept of a function is itself very close to substitution, and to our with form. Consider the following morph 1 {

More information

Technical Metrics for OO Systems

Technical Metrics for OO Systems Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer

More information

clojure & cfml sitting in a tree sean corfield world singles

clojure & cfml sitting in a tree sean corfield world singles clojure & cfml sitting in a tree sean corfield world singles 1 how to go faster (with (parentheses)) sean corfield world singles 2 world singles 3 world singles founded in 2001 internet dating platform

More information

ER Model Overview. The Entity-Relationship Model. Database Design Process. ER Model Basics

ER Model Overview. The Entity-Relationship Model. Database Design Process. ER Model Basics ER Model Overview The Entity-Relationship Model Davood Rafiei Developed by Peter Chen in the mid 70 s Used for the design of conceptual schema. The world is described in terms of entities relationships

More information

INTERMEDIATE SQL GOING BEYOND THE SELECT. Created by Brian Duffey

INTERMEDIATE SQL GOING BEYOND THE SELECT. Created by Brian Duffey INTERMEDIATE SQL GOING BEYOND THE SELECT Created by Brian Duffey WHO I AM Brian Duffey 3 years consultant at michaels, ross, and cole 9+ years SQL user What have I used SQL for? ROADMAP Introduction 1.

More information

CSEP 514 Midterm. Tuesday, Feb. 7, 2017, 5-6:20pm. Question Points Score Total: 150

CSEP 514 Midterm. Tuesday, Feb. 7, 2017, 5-6:20pm. Question Points Score Total: 150 CSEP 514 Midterm Tuesday, Feb. 7, 2017, 5-6:20pm Name: Question Points Score 1 50 2 25 3 50 4 25 Total: 150 This exam is CLOSED book and CLOSED devices. You are allowed ONE letter-size page with notes

More information

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT g/sync-adapters/index.

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT   g/sync-adapters/index. CS371m - Mobile Computing Persistence - Web Based Storage CHECK OUT https://developer.android.com/trainin g/sync-adapters/index.html The Cloud. 2 Backend No clear definition of backend front end - user

More information

Lecture 4. Lecture 4: The E/R Model

Lecture 4. Lecture 4: The E/R Model Lecture 4 Lecture 4: The E/R Model Lecture 4 Today s Lecture 1. E/R Basics: Entities & Relations ACTIVITY: Crayon time! 2. E/R Design considerations ACTIVITY: Crayon time pt. II 3. Advanced E/R Concepts

More information

ADVANCED DATABASES CIS 6930 Dr. Markus Schneider. Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta

ADVANCED DATABASES CIS 6930 Dr. Markus Schneider. Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta ADVANCED DATABASES CIS 6930 Dr. Markus Schneider Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta WHAT IS ELASTIC SEARCH? Elastic Search Elasticsearch is a search engine based on Lucene.

More information

Algorithms and Data Structures Spring 2008

Algorithms and Data Structures Spring 2008 Algorithms and Data Structures Spring 2008 Instructors: Professor Joe Fuller Dr. Sarita Bassil Office: 205B Gullickson Hall 207 Gullickson Hall Phone: 696-6204 696-5444 Email: fullerj@marshall.edu bassil@marshall.edu

More information

The Neo4j REST API documentation v3.0

The Neo4j REST API documentation v3.0 The Neo4j REST API documentation v3.0 Table of Contents Service root.............................................................................. 2 Legacy Cypher HTTP endpoint..............................................................

More information

Murach s Beginning Java with Eclipse

Murach s Beginning Java with Eclipse Murach s Beginning Java with Eclipse Introduction xv Section 1 Get started right Chapter 1 An introduction to Java programming 3 Chapter 2 How to start writing Java code 33 Chapter 3 How to use classes

More information

millions of SQL Server users worldwide, this feature broadens enormously concepts behind the model; how relationships are handled and what are the

millions of SQL Server users worldwide, this feature broadens enormously concepts behind the model; how relationships are handled and what are the SQL Server 2017 introduced the extension for graph databases. As there are millions of SQL Server users worldwide, this feature broadens enormously the audience of potential users. But, what to expect

More information

High-Level Database Models (ii)

High-Level Database Models (ii) ICS 321 Spring 2011 High-Level Database Models (ii) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 1 Logical DB Design: ER to Relational Entity sets to

More information

CMPT 354 Database Systems I

CMPT 354 Database Systems I CMPT 354 Database Systems I Chapter 2 Entity Relationship Data Modeling Data models A data model is the specifications for designing data organization in a system. Specify database schema using a data

More information

CSE 344 Midterm. Wednesday, February 19, 2014, 14:30-15:20. Question Points Score Total: 100

CSE 344 Midterm. Wednesday, February 19, 2014, 14:30-15:20. Question Points Score Total: 100 CSE 344 Midterm Wednesday, February 19, 2014, 14:30-15:20 Name: Question Points Score 1 30 2 50 3 12 4 8 Total: 100 This exam is open book and open notes but NO laptops or other portable devices. You have

More information

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM)

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM) DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR 2018-19 (ODD SEM) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB: OBJECT ORIENTED PROGRAMMING SEM/YEAR: III SEM/ II YEAR

More information

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable

More information

Reflection/RMI 4/28/2009

Reflection/RMI 4/28/2009 Reflection/RMI 4/28/2009 1 Opening Discussion Solutions to the interclass problem. Do you have any questions about the assignment? Minute Essays Why are heap operations always O(log n)? Java programs connecting

More information

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks

More information

c) And last but not least, there are javadoc comments. See Weiss.

c) And last but not least, there are javadoc comments. See Weiss. CSCI 151 Spring 2010 Java Bootcamp The following notes are meant to be a quick refresher on Java. It is not meant to be a means on its own to learn Java. For that you would need a lot more detail (for

More information

Schema Concepts In Oracle 11g Using Express Edition

Schema Concepts In Oracle 11g Using Express Edition Schema Concepts In Oracle 11g Using Express Edition When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory Oracle 11g Express Edition, released by Oracle Corporation

More information

Declarations and Access Control SCJP tips

Declarations and Access Control  SCJP tips Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for

More information

Self-referential Structures and Linked List. Programming and Data Structure 1

Self-referential Structures and Linked List. Programming and Data Structure 1 Self-referential Structures and Linked List Programming and Data Structure 1 Linked List :: Basic Concepts A list refers to a set of items organized sequentially. An array is an example of a list. The

More information

Failed To Read Schema Document Springsecurity-3.0.xsd

Failed To Read Schema Document Springsecurity-3.0.xsd Failed To Read Schema Document Springsecurity-3.0.xsd When loading my app spring context, I am getting the following error (only on Linux machine, 2) th document could not be read, 3) the root element

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

OpenTouch Conversation One 2.2 Contents

OpenTouch Conversation One 2.2 Contents OpenTouch Conversation One 2.2 Contents OpenTouch Conversation One 2.2... 1 1. Startup of OpenTouch Conversation One... 2 1. Select your call device or forward your calls... 2 2. Set manually your presence

More information

Interview Questions I received in 2017 and 2018

Interview Questions I received in 2017 and 2018 Interview Questions I received in 2017 and 2018 Table of Contents INTERVIEW QUESTIONS I RECEIVED IN 2017 AND 2018... 1 1 OOPS... 3 1. What is the difference between Abstract and Interface in Java8?...

More information

Relational Database Features

Relational Database Features Relational Features s Why has the relational model been so successful? Data independence High level query language - SQL Query optimisation Support for integrity constraints Well-understood database design

More information

Writeup for first project of CMSC 420: Data Structures Section 0102, Summer Theme: Threaded AVL Trees

Writeup for first project of CMSC 420: Data Structures Section 0102, Summer Theme: Threaded AVL Trees Writeup for first project of CMSC 420: Data Structures Section 0102, Summer 2017 Theme: Threaded AVL Trees Handout date: 06-01 On-time deadline: 06-09, 11:59pm Late deadline (30% penalty): 06-11, 11:59pm

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VII Lecture 15, March 17, 2014 Mohammad Hammoud Today Last Session: DBMS Internals- Part VI Algorithms for Relational Operations Today s Session: DBMS

More information

Oracle In-Memory & Data Warehouse: The Perfect Combination?

Oracle In-Memory & Data Warehouse: The Perfect Combination? : The Perfect Combination? UKOUG Tech17, 6 December 2017 Dani Schnider, Trivadis AG @dani_schnider danischnider.wordpress.com BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN

More information

DATABASE SYSTEMS. Introduction to MySQL. Database System Course, 2016

DATABASE SYSTEMS. Introduction to MySQL. Database System Course, 2016 DATABASE SYSTEMS Introduction to MySQL Database System Course, 2016 AGENDA FOR TODAY Administration Database Architecture on the web Database history in a brief Databases today MySQL What is it How to

More information

The Cypher Language 2017

The Cypher Language 2017 DM32.2 2018-00145 Informational Paper The Cypher Language 2017 Presentation to the LDBC Query Language Task Force Neo Technology Cypher Language Group Date of original presentation 3 July 2017 Submitted

More information