Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
Tereza Gregorova
rik@neotechnology.com
@rvanbruggen
NOT ONLY SQL
Trying to solve some everlasting challenges in relational database systems
Euler conceived Graph Theory in the 18th century
7 Bridges of Konigsberg
start n=node:Student("Student_Name:*") match n-[r:takes]->m<-[k:teaches]-o where (o.Academic_Rating<"70" and r.Grade<"13")
return n.Student_Name,r.Grade, m.Module_Name, o.Academic_name,o.Academic_Rating;
takes
teach
n-[r:takes]->m<-[k:teaches]-o
n.Student_Name, r.Grade, m.Module_Name, o.Academic_name,o.Academic_Rating
start n=node:Student("Student_Name:*") match n-[r:takes]->m<-[k:teaches]-o-[s:has_grant]->p where (o.Academic_Rating<"70" and r.Grade<"13") return n.Student_Name, m.Module_Name, o.Academic_name,o.Academic_Rating,p.Grant_name,p.Grant_Amount_Used,r.Grade;
takes
teach
has_grant
n-[r:takes]->m<-[k:teaches]-o-[s:has_grant]->p
n.Student_Name,r.Grade, m.Module_Name, o.Academic_name,o.Academic_Rating,p.Grant_name,p.Grant_Amount_Used;
start n=node:Student("Student_Name:*")
match j<-[t:borrow]-n-[r:takes]->m<-[k:teaches]-o-[s:has_grant]->p
where o.Academic_Rating<"70" and r.Grade<"13"
return
n.Student_Name, m.Module_Name,r.Grade,count(j.Book_Name), o.Academic_name, o.Academic_Rating,p.Grant_name;
borrow
takes
has_grant
teaches
j<-[t:borrow]-n-[r:takes]->m<-[k:teaches]-o-[s:has_grant]->p
n.Student_Name, m.Module_Name,r.Grade,count(j.Book_Name), o.Academic_name, o.Academic_Rating, p.Grant_name;
Show me all students that take module "Academic Project Planning" and show me also academics who teach this module
Length of Undergraduate Honours Degree
Flexibility in the first 2 years of study
Following different pathways of study
under
admit_into
part of
offer
takes
visit
form
access
differs
teaches
leads_to
has
goes
borrow
store
CUSTOM CONNECT TO "Provider=JDBCConnector.dll;jdbc:neo4j://localhost:7474;";
has_grant
Show me all students that access programme "BSc (Science Faculty)"
SQL START n=node(*)
RETURN ID(n) as NodeID, n.Student_Code? as StudentID, n.Student_Name? as StudentName, n.Module_Name? as ModuleName,
n.Academic_name? as AcademicName, n.Grant_name? as GrantName, n.Department_School_Name? as DepartmentSchoolName,
n.Programme_Name? as ProgrammeName, n.Grant_Funding_Body? as GrantFundingBody, n.Subject_Name? as SubjectName,
n.Grant_Amount? as GrantAmount, n.Pathway_Name? as PathwayName, n.Grant_Amount_Used? as GrantAmountUsed, n.Award_Name? as AwardName,
n.Grant_Used_by? as GrantUsedby, n.Route_Name? as RouteName, n.Grant_date? as GrantDate,n.Institution_Name? as InstitutionName,
n.Faculty_name? as FacultyName;
SQL START r=relationship(*)
RETURN ID(r) as RelID, r.Grade? as RelGrade, r.Semester? as RelSemester, r.Year? as RelYear,r.Property? as RelProperty, type(r) as RelLabel;
COURSE_TO_DPT:
SQL
SELECT
R.ROU_NAME,
R.ROU_CODE,
R.ROU_CODE as CAP_ROUC,
RE.ROE_ROUC,
RE.ROE_PWYC,
P.PSD_PWYC,
P.PSD_SUBC,
P.PSD_PERC,
P.PSD_DPTC,
D.DPT_CODE,
D.DPT_SNAM,
D.DPT_NAME,
D.DPT_TYPE,
S.SUB_CODE,
S.SUB_UDF1,
S.SUB_NAME
FROM
INS_ROU R,
INS_ROE RE,
INS_PSD P,
INS_DPT D,
INS_SUB S
WHERE
R.ROU_CODE=RE.ROE_ROUC (+)
AND RE.ROE_PWYC=P.PSD_PWYC (+)
AND P.PSD_DPTC=D.DPT_CODE(+)
AND P.PSD_SUBC = S.SUB_CODE(+);
SQL START n=node(*)
MATCH n-[r]->m
RETURN ID(r) as RelID, ID(n) as StartNodeID, ID(m) as EndNodeID, type(r) as Label;
Show me all modules that "Becky Blue" teaches, also show me names of all grants that "Becky Blue" has
An open source graph database
Uses the structure of the graph to store, manipulate and represent the complex data
Basic operation is traversal of graph
Uses Cypher to query the graph database
A database with an explicit graph structure using nodes, edges and properties to represent and store data
User works with nodes, edges (relationships) and properties in a flexible graph network
under
admit_into
part of
offer
takes
form
access
differs
teaches
leads_to
has
goes
Graph database Neo4j can be implemented with QlikView
Neo4j can be used in educational institution as an extra layer for mapping relationships between data
Great potential for using graph database in BI for analyzing data
has_grant
Designed for querying complex, interconnected data
Queries for the shortest path
Pattern matching
Modeling, Storing,
Querying, Analysing,
Interacting ...
with a
Start a=node:Student(Student_ID="11002233") Match a-[r:takes]->b Return a, r, b;
takes
takes
Start a=node:Student(Student_ID="11002233") Match a-[r:takes]->b Return a, r, b;
Select STUDENT.STUDENT_ID, FIRST_NAME, SURNAME, MODULE, MODULE_CODE, MOD_NAME
From STUDENT
Join STUDENT_PROGRAME_ROUTE
On STUDENT_PROGRAME_ROUTE.STUDENT_ID=STUDENT.STUDENT_ID
Join STUDENT_MODULE_TAKING
On
STUDENT_MODULE_TAKING.STU_PROG_ROUTE_CODE=STUDENT_PROGRAME_ROUTE.STU_PROG_ROUTE_CODE
Join MODULE
On MODULE.MODULE_CODE=STUDENT_MODULE_TAKING.MODULE_CODE
Where STUDENT.STUDENT_ID=”110002233”
Select STUDENT.STUDENT_ID, FIRST_NAME, SURNAME, MODULE, MODULE_CODE, MOD_NAME
From STUDENT
Join STUDENT_PROGRAME_ROUTE
On STUDENT_PROGRAME_ROUTE.STUDENT_ID=STUDENT.STUDENT_ID
Join STUDENT_MODULE_TAKING
On
STUDENT_MODULE_TAKING.STU_PROG_ROUTE_CODE=
STUDENT_PROGRAME_ROUTE.STU_PROG_ROUTE_CODE
Join MODULE
On MODULE.MODULE_CODE=STUDENT_MODULE_TAKING.MODULE_CODE
Where STUDENT.STUDENT_ID=”110002233”
Tereza Gregorova
Email: tg27@st-andrews.ac.uk