GraphGists

Neo4J 交付 - 信息存储库

引言

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

应用领域

该数据库代表一家银行实体。其领导层由 CEO 负责,CEO 通过各组负责人向员工团队(DevOps 工程师、实习生、经理和学徒)分配工作。可以获取员工的姓名、DNI、出生年份、工资、工作组、是否因关系进入该职位、是否是负责人、拥有的学历以及参加过的额外课程。

然而,由于不能忽视员工的人性一面,图数据库中也反映了哪些员工帮助、欣赏或憎恨他们的同事。

银行客户拥有不同类型的账户(活期、储蓄或工资账户),用于存放他们的资金。经理被分配给客户的账户,负责解决账户持有人的疑问或问题。

U4iWdXu

数据库图形表示

lmWalaK

已移除实例中的节点以方便可视化。

CEO 向节点 1(欣赏 CEO)、7、11(CEO 憎恨)和 15 分派工作,这些节点分别对应于经理、学徒、工程师和 Pasador 的负责人。

经理 1 向其余经理(4、5、6)分派工作。他们中,1 号经理管理账户 64 和 70,4 号经理管理账户 67,6 号经理管理账户 69。5 号经理不管理任何账户。

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

学徒负责人 (7) 向其余学徒(8 和 9)分派工作。9 号学徒欣赏 11 号工程师。

11 号工程师(由 5 号经理协助)向 12 号工程师分派工作。

15 号 Pasador 向其余 Pasador(16 和 19)分派工作。16 号 Pasador 帮助 1 号经理,尽管 19 号 Pasador 受到 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 号 Pasador 和 14 号工程师之间的最短路径

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