摘要: 数据模型设计是数据建模的第一步,因为Neo4j不需要模式结构定义,所以使用简单框图就可以为一个项目或应用设计数据模型。创建数据模型之后,就可以使用SDN进行数据实体建模和一些数据访问的设计。 本文选自《Neo4j全栈开发》。
开始数据模型设计,一般通过分析业务需求就可以提取出需要建立的节点和关系,然后使用节点和关系画出框图,即可完成数据模型的设计。下面通过两个实例来简要说明数据模型的设计过程。
用户访问控制数据模型
在一个访问控制系统中,它的业务需求可以简单地描述为:怎样控制一个用户的访问权限。即一个用户登录系统后,他对系统的哪些资源具有访问权限。通过分析和结合以往的经验,我们可能需要四个节点,分别是用户、部门、角色和资源;三个关系,分别是隶属、拥有和权限。这样,我们就可以画出下图的用户访问控制数据模型。
图片描述
这个数据模型是否合理、是否符合业务需求?我们可以用这个简单框图模拟一下业务流程,简单地测试一下它的合理性。首先看看从这个框图中能不能读出类似这样的信息:隶属于一个部门的一个用户拥有哪些角色就能对哪些资源具有访问权限。如果可以,就可以说明这个模型设计是可行的。
很明显,这个数据模型设计的业务流程是通顺的。因为对于这个框图,我们可以这样读出它的流程:部门具有一些隶属用户,用户拥有一些角色,角色对一些资源具有访问权限。
有了这个数据模型之后,就可以对节点和关系进行建模了。在建模中再来确定节点和关系的属性,例如,用户节点可能需要用户名、密码、性别、邮箱、创建日期等属性,同时还要确定关系的对等方式,例如,是一对一、一对多还是多对多等。对于这个实例来说,用户与部门的隶属关系是多对一关系,用户与角色的拥有关系和角色与资源的权限关系都是多对多关系。
购物网站数据模型
如果觉得上面的数据模型简单了一点,那么接下来我们使用一个业务需求比较复杂的实例来试一试,比如一个购物网站。购物网站的业务需求大概具有这样的流程:首先商家上架了商品,然后顾客浏览或查找商品,顾客找到自己需要的商品之后,确定购买,接着使用他的账户支付款项,商家收到货款后,将商品快递给顾客,从而完成一笔交易。根据这个业务流程,我们画出下图的数据模型。
图片描述
使用这个数据模型,我们同样也可以先测试一下,即看一看它能不能通顺地读出一个购物网站的基本流程。比如完成一个完整的购物流程,首先是商家的库存要上架商品,然后是顾客购买商品,即商品出售形成订单;接下来是顾客结算订单,使用账户付款,形成支付记录,同时商家账户收到款项,并且订单进入发货状态,同时生成物流记录;这时候,商家的库存办理商品出库,这样商品就通过快递进入送货过程之中;最后顾客从收货地址收到商品,并对订单执行确认收货操作,同时对商品进行评价,至此完成一次购物流程。这就可以说明,这个数据模型所表现的业务流程是通顺的,所以它的设计是合理的。
一般的购物网站还有购物车这一项,以满足顾客一次选购多个商品的需求,所以还必须设计一个购物车,即在上述流程中插入一个挑选商品到购物车的过程。其中购物车只是顾客与商品的一个关联关系。
http://click.aliyun.com/m/23531/
分享到:
相关推荐
1. 图形数据模型:不同于传统的关系型数据库,Neo4j使用节点、边和属性来存储数据,这种模型更适合处理具有关联性、层次结构或复杂网络的数据。 2. Cypher查询语言:Cypher是一种声明式、易于理解的语言,用于查询...
这种数据模型非常适合处理复杂的关联数据,如社交网络、知识图谱、推荐系统等。 Neo4j提供了Cypher查询语言,使得查询和操作图形数据变得直观且高效。 **关系图形与力导向图** 关系图形是一种可视化技术,用于展示...
- 数据建模是使用图形数据库的关键步骤之一,合理的数据模型可以极大地提高数据处理的效率和准确性。 - 本书提供了多个实际场景下的数据建模示例,如社交网络分析、产品推荐系统等。 - 通过这些示例,读者可以...
"基于Neo4j的自然语言处理框架,结合深度学习构建模型" 这个标题揭示了本项目的核心技术栈。首先,Neo4j是一个强大的图形数据库,尤其适用于处理复杂的数据关系。在自然语言处理(NLP)领域,这种能力可以用于构建...
3. **模式与数据模型**:这里会解释如何设计和构建图数据模型。用户会学习到如何定义节点标签、关系类型和属性,以及如何使用模式匹配在查询中表达数据结构。 4. **性能优化**:文档会提供性能调优的策略,包括配置...
3. 数据模型:理解如何构建和设计适合图形数据库的数据模型至关重要。这包括定义节点(代表实体)和关系(连接实体之间的链接),以及它们各自的属性。 4. 存储机制:Neo4j使用事务日志和页缓存来保证数据的一致性...
Neo4j 1.8作为其早期的一个稳定版本,提供了高效且易于使用的图数据模型,支持ACID(原子性、一致性、隔离性、持久性)事务,确保了数据的完整性和一致性。 在NoSql领域,Neo4j因其独特的数据模型和强大的查询语言...
在实际应用中,开发者需要注意数据模型的设计,合理利用图形数据库的优势。例如,通过节点和边的关系来简化复杂查询,或者通过图形算法(如最短路径算法)来解决特定问题。此外,对于大型生产环境,可能需要考虑升级...
这种数据模型特别适合处理具有高度互联性的数据,如社交网络、推荐系统、知识图谱等场景。 Neo4J社区版是免费且开源的,允许个人和组织进行开发和测试。3.5.19是该软件的一个稳定版本,可能包含了一些性能优化和bug...
1. **图数据库基础**:书中会首先介绍图数据库的基本概念,包括节点、关系和属性,解释它们如何构成图数据模型。理解这些基础元素对于后续的学习至关重要。 2. **Neo4j概述**: Neo4j的特点和核心功能将被详尽阐述...
10. **图形建模工具**: Neo4j还提供了一些图形建模工具,如Neo4j Bloom,用于可视化数据模型,帮助用户理解和调整数据结构。 总之,"neo4j-community-4.3.6-windows"是Windows平台上的一个强大工具,适合那些需要...
1. **图形数据库模型**:Neo4j的核心在于其图形数据模型,它将数据表示为节点(代表实体)、关系(连接节点)和属性(描述节点和关系的特性)。这种模型特别适合处理具有复杂关联的数据,如社交网络、推荐系统、地理...
Neo4j是一款强大的图数据库管理系统,它以图形数据模型为核心,提供高效的数据存储和查询功能。在当前的大数据时代,图数据库因其独特的非关系型特性,尤其在处理复杂关系网络时展现出优越性能,因此备受关注。标题...
Neo4j是一种NoSQL数据库,它将数据模型化为节点(代表实体)、关系(连接节点)和属性(描述节点或关系)。这种数据模型非常适合处理社交网络、推荐系统、地理空间分析等领域的数据。Neo4j提供了高性能的ACID事务...
Neo4j是一种高性能的图数据库,具有灵活的数据模型、高效的查询语言和强大的事务处理能力。它支持多种数据存储方式,包括关系型数据、半结构化数据和非结构化数据。 2. 课程体系知识图谱系统的设计与实现 课程体系...
在实际项目中,我们还需要关注性能优化,例如索引的使用、查询计划的分析以及数据模型的设计。 总结来说,这个"neo4j-4.4.0.tar.gz"文件代表了一个完整的Neo4j数据库实例,配合Python的`neo4j`驱动库,可以进行图形...
Neo4j是一款强大的图形数据库系统,专为处理复杂的网络数据模型而设计。在这个"neo4j3.1.2windows.zip"压缩包中,我们找到了Neo4j 3.1.2企业版的Windows安装程序,它适用于在Windows操作系统上搭建和运行图形数据库...
Neo4j是一款强大的图形数据库系统,专为处理复杂的网络数据模型而设计。社区版本是 Neo4j 提供的免费开源版本,适用于个人学习、小型项目和开源软件开发。标题中的"neo4j_community_4.4.2_windows.zip"表明这是针对...
neo4j-movies-template, 这个项目包含一个 Neo4j 电影数据集的node.js 起始模板 自述文件这里 Neo4j-based node/react 网络应用程序以类似于IMDB的方式显示电影和个人数据。 它被设计为用于进一步开发项目的模板。 ...
- **灵活的数据模型**:图数据库可以轻松表示实体间复杂的关系,而无需预先定义复杂的表结构。 - **高性能查询**:由于数据的图形化表示,查询效率通常高于RDBMS,尤其在进行多层关联查询时。 - **易于理解和操作**...