GraphGists

Neo4J 交付 - 信息库

简介

我们是 Marcos Álvarez García (UO251182)、Tomás Argüelles Di Renzo (UO253628) 和 Daniel Villanueva Pérez (UO251399),这是我们为信息库课程开发的 Neo4J 项目。

应用领域

数据库表示一家银行实体。其领导层由 CEO 领导,CEO 通过各组负责人向员工组(DevOps 工程师、实习生、经理和实习生)分配工作。关于员工,可以了解他们的姓名、身份证号、出生年份、薪水、工作组、是否被安插到职位上、是否为负责人、学历以及参加的额外课程。

然而,由于不能忽视员工的人性化一面,因此图中也反映了哪些员工帮助、欣赏或讨厌他们的同事。

银行的客户在不同的账户类型(活期、储蓄或工资)中存入资金。经理被分配给客户的账户,负责解决其所有者的疑问或问题。

U4iWdXu

数据库图形表示

lmWalaK

为了方便查看,已从实例中删除了一些节点。

CEO 将工作分配给节点 1(欣赏 CEO)、7、11(被 CEO 讨厌)和 15,分别对应经理、实习生、工程师和助理负责人。

经理 1 将工作分配给其他经理(4、5、6)。其中,4 管理账户 64(1)、67(4)和 69(6)、70(1)。经理 5 不管理任何账户。

客户 25 和 29 是账户 67 和 70 的主要所有者,而 22(讨厌经理 1)和 28(欣赏 CEO)是账户 64 和 69 的次要所有者。

实习生(7)将工作分配给其他实习生(8 和 9)。9 欣赏工程师 11。

工程师 11(得到经理 5 的帮助)将工作分配给工程师 12。

助理负责人 15 将工作分配给其他助理负责人(16 和 19)。16 帮助经理 1,虽然 19 受 CEO 欣赏,但他讨厌 CEO。

设置:创建员工、客户和账户

1-CEO 信息

目标:从数据库中检索 CEO 的信息。

match(n) where n:ceo return n

2-数据库中存储的客户数量

目标:检索数据库中存储的客户数量。

match(n) where n:Cliente return count(n)

3-被讨厌的员工

目标:了解客户讨厌的员工,以便研究他们的案例,并在必要时进行纪律处分。

match (n)-[:ODIA]->(m)
where n:Cliente AND not m:Cliente
return m

4-可退休员工

目标:了解开始老龄化的员工,以便在他们退休时进行补充(CEO 不可补充)。

match (n)
where n.nacido<=1975 and not (n:Cliente or n:ceo)
return n

5-最不受欢迎的员工

目标:找到团队中最不受欢迎的员工。这样,就可以与他交谈并尝试解决同事之间可能出现的冲突。

match()-[o:ODIA]->(m)
where not m:Cliente
with m, count(o) as odio
order by odio DESC
return m
limit 1

6-最短路径

目标:找到助理负责人 19 和工程师 14 之间的最短路径。

MATCH path=shortestPath((p:Pasador {nombre:'Emerson Bridges'})-[*0..10]-(c:Ingeniero {nombre:'Jannat Mckinney'}))
RETURN path