最常用的数据模型是概念数据模型和结构数据模型:
①概念数据模型(信息模型):面向用户的,按照用户的观点进行建模,典型代表:E-R图
②结构数据模型:面向计算机系统的,用于DBMS的实现,典型代表有:层次模型,网状模型、关系模型,面向 对象模型
数据结构:主要描述数据的类型、内容、性质以及数据间的联系等,是目标类型的集合。目标类型是数据库的组成成分,一般可分为两类:数据类型、数据类型之间的联系。数据类型如DBTG(数据库任务组)网状模型中的记录型、数据项,关系模型中的关系、域等。
联系部分有DBTG网状模型中的系型等。数据结构是数据模型的基础,数据 *** 作和约束都基本建立在数据结构上。不同的数据结构具有不同的 *** 作和约束。
数据 *** 作:数据模型中数据 *** 作主要描述在相应的数据结构上的 *** 作类型和 *** 作方式。它是 *** 作算符的集合,包括若干 *** 作和推理规则,用以对目标类型的有效实例所组成的数据库进行 *** 作。
数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。它是完整性规则的集合,用以限定符合数据模型的数据库状态,以及状态的变化。
约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束;静态约束和动态约束;实体约束和实体间的参照约束等。
层次模型
网状模型
关系模型
对象关系模型
对象模型
还有这些数据库模型:
数据联合模型
面向概念模型
实体-属性-值模型
多位数据库模型
半结构化模型
最常用的逻辑数据模型有五种,它们是:
(1)层次模型(hierarchical model);
(2)网状模型(network model) ;
(3)关系模型(relational model);
(4)面向对象模型(object oriented model);
(5)对象关系模OJ (object relational model)
其中,前两类模型称为非关系模型。非关系模型的数据库系统在20世纪70-80年代初非常流行,在数据库系统产品中占据主导地位,在数据库系统的初期起了重要作用二在关系模型得到发展后,非关系模型迅速衰退。在我国,早就不见非关系模型了。但在美国等一些国家,由于早期开发的应用系统实际使用层次数据库或网状数据库系统,因此目前仍有层次数据库和网状数据库系统在使用。
目前最常用的三种数据模型为层次模型、网状模型和关系模型。其相关介绍如下:
1、层次模型:层次模型将数据组织成一对多关系的结构,层次结构采用关键字来访问其中每一层次的每一部分。层次模型发展最早,它以树结构为基本结构,典型代表是IMS模型。优点是存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。
2、网状模型:网状模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式。网状数据模型通过网状结构表示数据间联系,开发较早且有一定优点,目前使用仍较多,典型代表是DBTG模型。优点是能明确而方便地表示数据间的复杂关系。
3、关系模型:关系模型以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。优点在于结构特别灵活,概念单一,满足所有布尔逻辑运算和数学运算规则形成的查询要求;能搜索、组合和比较不同类型的数据;增加和删除数据非常方便。
两大类数据模型:数据模型分为2类(分属2个不同的层次,在开发和使用数据库中使用不同的模型)。
概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
逻辑模型和物理模型,逻辑模型主要包括:网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
物理模型,是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
概念模型:信息世界中的基本概念。
用途:数据库设计人员和用户之间进行交流的语言。但要考E-R图!
最常用的数据模型:非关系模型,有层次模型和网状模型;关系模型;面向对象模型、对象关系模型。
目前最主流的sql server、oracle、mysql、db2都是关系型数据库。随着社交网站、视频网站等互联网新业务模式的兴起,各种非关系数据库模型也在不断涌现。
以下是copy的:
数据模型概述
1关系模型
关系模型使用记录(由元组组成)进行存储,记录存储在表中,表由架构界定。表中的每个列都有名称和类型,表中的所有记录都要符合表的定义。SQL是专门的查询语言,提供相应的语法查找符合条件的记录,如表联接(Join)。表联接可以基于表之间的关系在多表之间查询记录。
表中的记录可以被创建和删除,记录中的字段也可以单独更新。
关系模型数据库通常提供事务处理机制,这为涉及多条记录的自动化处理提供了解决方案。
对不同的编程语言而言,表可以被看成数组、记录列表或者结构。表可以使用B树和哈希表进行索引,以应对高性能访问。
2键值存储
键值存储提供了基于键对值的访问方式。
键值对可以被创建或删除,与键相关联的值可以被更新。
键值存储一般不提供事务处理机制。
对不同的编程语言而言,键值存储类似于哈希表。对此,不同的编程语言有不同的名字(如,Java称之为“HashMap”,Perl称之为“hash”,Python称之为“dict”,PHP称之为“associative array”),C++则称之为“boost::unordered_map<>”。
键值存储支持键上自有的隐式索引。
键值存储看起来好像不太有用,但却可以在“值”上存储大量信息。“值”可以是一个XML文档,一个JSON对象,或者其它任何序列化形式。
重要的是,键值存储引擎并不在意“值”的内部结构,它依赖客户端对“值”进行解释和管理。
3文档存储
文档存储支持对结构化数据的访问,不同于关系模型的是,文档存储没有强制的架构。
事实上,文档存储以封包键值对的方式进行存储。在这种情况下,应用对要检索的封包采取一些约定,或者利用存储引擎的能力将不同的文档划分成不同的集合,以管理数据。
与关系模型不同的是,文档存储模型支持嵌套结构。例如,文档存储模型支持XML和JSON文档,字段的“值”又可以嵌套存储其它文档。文档存储模型也支持数组和列值键。
与键值存储不同的是,文档存储关心文档的内部结构。这使得存储引擎可以直接支持二级索引,从而允许对任意字段进行高效查询。支持文档嵌套存储的能力,使得查询语言具有搜索嵌套对象的能力,XQuery就是一个例子。MongoDB通过支持在查询中指定JSON字段路径实现类似的功能。
4列式存储
如果翻转数据,列式存储与关系存储将会非常相似。与关系模型存储记录不同,列式存储以流的方式在列中存储所有的数据。对于任何记录,索引都可以快速地获取列上的数据。
Map-reduce的实现Hadoop的流数据处理效率非常高,列式存储的优点体现的淋漓极致。因此,HBase和Hypertable通常作为非关系型数据仓库,为Map-reduce进行数据分析提供支持。
关系类型的列标对数据分析效果不好,因此,用户经常将更复杂的数据存储在列式数据库中。这直接体现在Cassandra中,它引入的“column family”可以被认为是一个“super-column”。
列式存储支持行检索,但这需要从每个列获取匹配的列值,并重新组成行。
5图形数据库
图形数据库存储顶点和边的信息,有的支持添加注释。
图形数据库可用于对事物建模,如社交图谱、真实世界的各种对象。IMDB(Internet Movie Database)站点的内容就组成了一幅复杂的图像,演员与**彼此交织在一起。
图形数据库的查询语言一般用于查找图形中断点的路径,或端点之间路径的属性。Neo4j是一个典型的图形数据库。
选择哪一种数据模型?
数据模型有着各自的优缺点,它们适用于不同的领域。不管是选择关系模型,还是非关系模型,都要根据实际应用的场景做出选择。也许你会发现单一的数据模型不能满足你的解决方案,许多大型应用可能需要集成多种数据模型。
一、概念模型,分三种:
1、场模型:用于描述空间中连续分布的现象;
2、对象模型:用于描述各种空间地物;
3、网路模型:可以模拟现实世界中的各种网络;
二、逻辑数据模型,常用的分:矢量数据模型,栅格数据模型和面向对象数据模型等;
三、物理数据模型,物理数据模型是指概念数据模型在计算机内部具体的存储形式和 *** 作机制,即在物理磁盘上如何存放和存取,是系统抽象的最底层。
1、层次模型:
①有且只有一个结点没有双亲结点(这个结点叫根结点)。
②除根结点外的其他结点有且只有一个双亲结点。
层次模型中的记录只能组织成树的集合而不能是任意图的集合。在层次模型中,记录的组织不再是一张杂乱无章的图,而是一棵"倒长"的树。
2、网状模型
:
①允许一个以上的结点没有双亲结点。
②一个结点可以有多个双亲结点。
网状模型中的数据用记录的集合来表示,数据间的联系用链接(可看作指针)来表示。数据库中的记录可被组织成任意图的集合。
3、关系模型:
关系模型用表的集合来表示数据和数据间的联系。
每个表有多个列,每列有唯一的列名。
在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型
以上就是关于什么是数据模型,包含哪几种类型 (数据库)全部的内容,包括:什么是数据模型,包含哪几种类型 (数据库)、数据库主要有哪几种数据模型、数据库中所支持的数据模型有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)