数据库存储模型
关系数据库存储模式是以关系模型为基础的数据库存储方式,它通过关系数据库管理系统(RDBMS)进行数据的管理。关系模型是目前商用数据库领域最流行的一种数据模型,其基本思想是用二维表表示实体及其联系。二维表中的每一列对应实体的一个属性,并给出相应的属性值,每一行形成一个有多种属性组成的多元组,或称元组(TUPPLE),与一个特定实体相对应。
采用关系数据库存储方式,其主要特点是:
(1)关系结构灵活,可满足所有用布尔逻辑运算和数学运算规则形成的查询要求。
(2)关系数据还能搜索、组合和比较不同类型的数据,加入和删除数据都很方便。
(3)其缺点是由于许多操作都要求在文件中顺序查找满足条件特定关系的数据,如果数据库较大,这一查找过程要花费很多时间。
在早期的土地信息系统的建设中,一般采用关系型数据库来存储管理属性数据,而空间数据的管理多采用文件的方式来组织管理。主要原因一是因为关系型数据库对地理空间数据的表达能力不足;二是因为地理信息系统软件中一些数据模型和数据文件的结合很紧密。
随着数据库技术的发展和地理信息系统技术的广泛应用,基于关系对象数据库的空间数据管理技术日渐成熟,出现了商用的统一存储空间数据和属性数据的软件系统,如Oracle数据库系统产品Oracle Spatial支持对空间数据的存储与管理,使用Esri的Arc SDE可用关系型数据库(RDBMS)管理空间数据。
② 数据库常见的数据模型有哪三种
1、层次模型:
①有且只有一个结点没有双亲结点(这个结点叫根结点)。
②除根结点外的其他结点有且只有一个双亲结点。
层次模型中的记录只能组织成树的集合而不能是任意图的集合。在层次模型中,记录的组织不再是一张杂乱无章的图,而是一棵"倒长"的树。
2、网状模型 :
①允许一个以上的结点没有双亲结点。
②一个结点可以有多个双亲结点。
网状模型中的数据用记录的集合来表示,数据间的联系用链接(可看作指针)来表示。数据库中的记录可被组织成任意图的集合。
3、关系模型:
关系模型用表的集合来表示数据和数据间的联系。
每个表有多个列,每列有唯一的列名。
③ 当前主流的数据库系统通常采用哪几种模型
目前最主流的sql server、oracle、mysql、db2都是关系型数据库。随着社交网站、视频网站等互联网新业务模式的兴起,各种非关系数据库模型也在不断涌现。
以下是的:
数据模型概述
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-rece的实现Hadoop的流数据处理效率非常高,列式存储的优点体现的淋漓极致。因此,HBase和Hypertable通常作为非关系型数据仓库,为Map-rece进行数据分析提供支持。
关系类型的列标对数据分析效果不好,因此,用户经常将更复杂的数据存储在列式数据库中。这直接体现在Cassandra中,它引入的“column family”可以被认为是一个“super-column”。
列式存储支持行检索,但这需要从每个列获取匹配的列值,并重新组成行。
5.图形数据库
图形数据库存储顶点和边的信息,有的支持添加注释。
图形数据库可用于对事物建模,如社交图谱、真实世界的各种对象。IMDB(Internet Movie Database)站点的内容就组成了一幅复杂的图像,演员与电影彼此交织在一起。
图形数据库的查询语言一般用于查找图形中断点的路径,或端点之间路径的属性。Neo4j是一个典型的图形数据库。
选择哪一种数据模型?
数据模型有着各自的优缺点,它们适用于不同的领域。不管是选择关系模型,还是非关系模型,都要根据实际应用的场景做出选择。也许你会发现单一的数据模型不能满足你的解决方案,许多大型应用可能需要集成多种数据模型。
④ 数据库中的数据是按照一定的结构(数据模型)来组织、描述和存储的。请简述: (1) 四种常用的数据模型。
问题1:
数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。
1、概念数据模型(Conceptual Data Model):简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
2、逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。
3、物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。
在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。在逻辑数据类型中最常用的是层次模型、网状模型、关系模型。
数据库领域采用的数据模型有层次模型、网状模型和关系模型,其中应用最广泛的是关系模型。
层次模型:它的特点是将数据组织成一对多关系的结构。
层次结构采用关键字来访问其中每一层次的每一部分。
优点:
存取方便且速度快
结构清晰,容易理解
数据修改和数据库扩展容易实现
检索关键属性十分方便
缺陷:
结构呆板,缺乏灵活性
同一属性数据要存储多次,数据冗余大(如公共边)
不适合于拓扑空间数据的组织 网状模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式 优点:
能明确而方便地表示数据间的复杂关系
数据冗余小
缺陷:
网状结构的复杂,增加了用户查询和定位的困难。
需要存储数据间联系的指针,使得数据量增大
数据的修改不方便(指针必须修改)
关系数据库模型是以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法
优点:
结构特别灵活,满足所有布尔逻辑运算和数学运算规则形成的查询要求
能搜索、组合和比较不同类型的数据
增加和删除数据非常方便
缺陷:
数据库大时,查找满足特定关系的数据费时
对空间关系无法满足
问题2:
删除“学生”表性别为“男”的记录。
查询学生表(列姓名,总分),条件是总分大于85分的记录