neo4j(一).初识图数据库neo4j

neo4j是图数据库

neo4j(一).初识图数据库neo4j_第1张图片
初识neo4j,首先我们要知道neo4j是图数据库。我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢?

1.什么是图数据库

简单来说:
图形数据库(图形数据库也称为图形数据库管理系统GDBMS

图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。它的数据模型主要是以节点关系(边)来体现,也可处理键值对。它的优点是快速解决复杂的关系问题。

数据结构:
在一个图中主要包含两种数据类型:Nodes(节点)和Relationships(关系)。他们各自内部又包含key-value形式的属性,然后节点之间通过关系相连,形成了关系型的网状结构
neo4j(一).初识图数据库neo4j_第2张图片

图数据库的应用

金融行业应用

反欺诈多维关联分析场景
通过图分析可以清楚地知道洗钱网络及相关嫌疑,例如对用户所使用的帐号、发生交易时的IP地址、MAC地址、手机IMEI号等进行关联分析。

neo4j(一).初识图数据库neo4j_第3张图片

反欺诈多维关联分析场景
反欺诈已经是金融行业一个核心应用,通过图数据库可以对不同的个体、团体做关联分析,从人物在指定时间内的行为,例如去过地方的IP地址、曾经使用过的MAC地址(包括手机端、PC端、WIFI等)、社交网络的关联度分析,同一时间点是否曾经在同一地理位置附近出现过,银行账号之间是否有历史交易信息等。
neo4j(一).初识图数据库neo4j_第4张图片

社交网络图谱
在社交网络中,公司、员工、技能的信息,这些都是节点,它们之间的关系和朋友之间的关系都是边,在这里面图数据库可以做一些非常复杂的公司之间关系的查询。比如说公司到员工、员工到其他公司,从中找类似的公司、相似的公司,都可以在这个系统内完成。
neo4j(一).初识图数据库neo4j_第5张图片

企业关系图谱
图数据库可以对各种企业进行信息图谱的建立,包括最基本的工商信息,包括何时注册、谁注册、注册资本、在何处办公、经营范围、高管架构。围绕企业的经营范围,继续细化去查询企业究竟有哪些产品或服务,例如通过企业名称查询到企业的自媒体,从而给予其更多关注和了解。另外也包括对企业的产品和服务的数据关联,查看该企业有没有令人信服的自主知识产权和相关资质来支撑业务的开展。

企业在日常经营中,与客户、合作伙伴、渠道方、投资者都会打交道,这也决定了企业对社会各个领域都广有涉猎,呈现面错综复杂,因此可以通过企业数据图谱来查询,层层挖掘信息。基于图数据的企业信息查询可以真正了解企业的方方面面,而不再是传统单一的工商信息查询。
neo4j(一).初识图数据库neo4j_第6张图片

2.什么是neo4j

Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。
它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。
Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中。但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。

Neo4j的特点
  • SQL就像简单的查询语言Neo4j CQL
  • 它遵循属性图数据模型
  • 它通过使用Apache Lucence支持索引
  • 它支持UNIQUE约束
  • 它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
  • 它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
  • 它采用原生图形库与本地GPE(图形处理引擎)
  • 它支持查询的数据导出到JSON和XLS格式
  • 它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
  • 它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
  • 它支持两种Java API:Cypher API和Native Java API来开发Java应用程序
Neo4j的优点
  • 它很容易表示连接的数据
  • 检索/遍历/导航更多的连接数据是非常容易和快速的
  • 它非常容易地表示半结构化数据
  • Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
  • 它使用简单而强大的数据模型
  • 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
Neo4j的缺点或限制
  • Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。
  • 它不支持Sharding。
下载地址

http://www.neo4j.org/download 根据操作系统和位数进行下载

基本使用

由于临时需要neo4j数据库,neo4j的安装和环境配置,以及过多的cql的语法就不去给大家说明了,大家可以参考w3cschool的教程
https://www.w3cschool.cn/neo4j
大家可以在本地安装一个neo4j,然后在自带的浏览器中去执行一些简单的操作命令
neo4j(一).初识图数据库neo4j_第7张图片

总结

这里我们初识了图数据库,知道了图数据库的关系模型,以及了解了neo4j的概念,优缺点,大家有时间可以多去练习neo4j的语法,把它练得和sql一样熟练
下节我们针对通话记录分析这一业务去进行neo4j的使用:
我们通过导入的方式将通话记录的csv文件导入到neo4j中去,并且用springboot的后台去访问这些节点和他们之间的关系,再通过d3去展示出来。

下一节:neo4j(二).使用neo4j-import导入数据及关系

你可能感兴趣的:(java,数据库)