
Understanding Graph Databases in NoSQL World
Explore the diverse applications and benefits of graph databases within the NoSQL landscape, with insights from Christopher Thielen, a Lead Application Developer at DSS IT. Delve into the efficient handling of relationships as data join tables, the linear growth of complexity in graph concepts, and the comparison between Cypher and SQL queries in schema creation, data insertion, student enrollment, class rosters, and recommendations. Witness the transition from SQL to NoSQL paradigm through a comprehensive demo.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Graph Databases Christopher Thielen, Lead Application Developer, DSS IT
Relationships Are Data Join Table as a hack.
Graph Concepts Nodes Edges Properties Relationship complexity grows linearly, not exponentially
Cypher vs SQL: Schema creation CREATE TABLE `students` ( `id` int(11) NOT NULL, `name` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) Not needed.
Cypher vs SQL: Insert data INSERT INTO students (`name`) values ('Christopher'); CREATE (n:Student {name: 'Christopher'})
Cypher vs SQL: Query all students SELECT * FROM students; MATCH (n:Student) RETURN n
Cypher vs SQL: Enroll a student INSERT INTO enrollments (`student_id`, `class_id`) values (1, 5); MATCH (s:Student),(c:Class) WHERE s.name = 'Christopher' AND c.name = 'From SQL to NoSQL' CREATE (s)-[r:ENROLLED_IN]->(c) RETURN type(r)
Cypher vs SQL: Class roster SELECT * FROM students LEFT JOIN enrollments ON students.id = enrollments.student_id LEFT JOIN classes ON classes.id = enrollments.class_id WHERE classes.title = 'From SQL to NoSQL'; MATCH (s:Student)-[:ENROLLED_IN]->(c:Class{name:'From SQL to NoSQL'}) RETURN s, c
Cypher vs SQL: Recommendations ??? (Yes, it is possible.) MATCH (Class{name:'From SQL to NoSQL'})<-[:ENROLLED_IN]- (Student)-[:ENROLLED_IN]->(c) RETURN c, count(c)