Heim > Datenbank > MySQL-Tutorial > Hauptteil

五大主流数据库模型

WBOY
Freigeben: 2016-06-07 15:41:47
Original
1642 Leute haben es durchsucht

导读: 无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。 什么是数据模型? 访问数据库中的数据取决于数据库实现的数据模型。数据

导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。

五大主流数据库模型

什么是数据模型?

访问数据库中的数据取决于数据库实现的数据模型。数据模型会影响客户端通过API对数据的操作。不同的数据模型可能会提供或多或少的功能。一般而言,数据模型不会直接提供过多的功能,许多功能必须由客户端自行实现。

数据模型决定了客户端如何对数据进行编码存储。应用程序需要某种域模型与存储技术支持的特性进行映射。

迄今为止,主导的数据模型仍然是关系模型。在这里,我们主要想为大家介绍一下非关系模型,作为对比,本文也会简要介绍一下关系模型。

五大主流数据库模型

数据模型概述

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”。

列式存储支持行检索,但这需要从每个列获取匹配的列值,并重新组成行。

(列式数据库InfoBright 数据仓库性能很不错)

5.图形数据库

图形数据库存储顶点和边的信息,有的支持添加注释。

图形数据库可用于对事物建模,如社交图谱、真实世界的各种对象。IMDB(Internet Movie Database)站点的内容就组成了一幅复杂的图像,演员与电影彼此交织在一起。

图形数据库的查询语言一般用于查找图形中断点的路径,或端点之间路径的属性。Neo4j是一个典型的图形数据库。

选择哪一种数据模型?

数据模型有着各自的优缺点,它们适用于不同的领域。不管是选择关系模型,还是非关系模型,都要根据实际应用的场景做出选择。也许你会发现单一的数据模型不能满足你的解决方案,许多大型应用可能需要集成多种数据模型。(张志平/编译)


五个值得关注的图形数据库

图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见的一个例子,就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。

Google的图形计算系统名为Pregel,下面让我们来为您介绍几个流行的图形数据库。

1. Neo4j

五大主流数据库模型

Neo4j是一个流行的图形数据库,它是开源的。

2. FlockDB

五大主流数据库模型

FlockDB是Twitter为进行关系数据分析而构建的。FlockDB迄今为止还没有稳定的版本,对于它是否是一个真正的图形数据库,尚有争议。

3. AllegroGraph

五大主流数据库模型

AllegroGraph是一个基于W3c标准的为资源描述框架构建的图形数据库。它为处理链接数据和Web语义而设计,支持SPARQL、RDFS++和Prolog。

4. GraphDB

五大主流数据库模型

GraphDB是德国sones公司在.NET基础上构建的。GraphDB托管在Windows Azure平台上。

5. InfiniteGraph

五大主流数据库模型

InfiniteGraph基于Java实现,它的目标是构建“分布式的图形数据库”,已被美国国防部和美国中央情报局所采用。

下一代Hadoop战略——数据即平台

五大主流数据库模型

在上周的Strata大会上,与会者透露出有关下代Hadoop的消息。包括对6000节点的支持、配备高可用性的HDFS以及下一代MapReduce的特性等。而未来Hadoop替代操作系统的大胆想法也让我们充满无限遐想。

在Strata会议上Hortonworks创始人和Apache Hadoop项目VP Arun Murthy透露新版Hadoop的相关特性。下一代的Hadoop将支持6000节点,同时配备高可用性的HDFS(Hadoop Distributed File System)。

而下一代MapReduce框架则被命名为YARN或MRv2(MapReduce version 2)。新框架已经不再是传统的MapReduce框架,甚至与MapReduce无关,YARN可被看做是通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。经过改良的MapReduce将分离HDFS中块和命名空间的管理,提高数据的可伸缩性。最重要的是改良后的MapReduce将对非MapReduce应用进行支持,这使得更多类型应用将具备在MapReduce工作的能力。

谷歌算法揭秘:一次搜索请求平均往返2400公里

五大主流数据库模型

谷歌搜索演进

作为全球使用最广泛的搜索引擎,谷歌算法一直有一层神秘面纱。近日谷歌工程总监斯科特·霍夫曼向腾讯科技讲述谷歌算法幕后故事,称2011年有520多项改进,自2003年到现在,Google搜索已解决4500亿个搜索请求。

斯科特还透露,谷歌一个搜索请求平均往返于电脑和数据中心单程距离是750英里,这也意味着一次搜索请求平均往返需要1500英里,约合2400公里。

RavenDB:基于Windows/.NET平台的NoSQL数据库

五大主流数据库模型

众所周知,NoSQL运动旨在成为大数据时代传统关系数据库管理系统的替代品。如今Microsoft对开源的态度有所转变,RavenDB就是很好的例子。Microsoft对RavenDB(NoSQL数据库)的认可令很多人感到惊讶。RavenDB可以轻易的替代关系数据库管理系统并兼容以往的.NET应用。

RavenDB是针对Windows/.NET平台而设计的文档数据库。RavenDB的出现将.NET应用与非关系数据库连接到一起。数据以Shcema-less方式存储,并直接通过HTTP、RESTful API或更方便的.NET客户端API连接。.NET客户端API使用LINQ操作RavenDB数据库文档存储。

云计算:亚马逊第一 第二把交椅何人坐?

五大主流数据库模型

亚马逊对用户推出的Web服务,使它成为迄今为止最大的云服务提供商。就像大多数的大型云供应商一样,亚马逊并没有就当前或计划中的数据中心透露太多。

埃森哲分析师Huan Liu的最新研究结果显示,亚马逊的Elastic Compute Cloud(EC2)在高达45万台服务器上运行。亚马逊没有公布AWS的营收,但有人表示它可能已经是一项10亿美元的业务。

本文预计Rackspace、Google、微软、IBM、惠普、VMware、Facebook这七家公司将成为亚马逊的云对手。

新密钥技术简化云端数据加密

由于在云环境中,IT团队缺乏对数据安全的直接控制,所以数据迁移到云环境将会给IT团队带来新的复杂的安全问题。此外,云供应商认为数据安全是需要共同承担责任,即服务供应商保证物理安全,用户必须保护其服务器和数据的安全。这将需要新的加密策略和密钥管理策略,将密钥存储在云环境外部,而不是云环境中。

初创安全公司Porticor刚刚推出了一个解决方案,专门解决云环境中静态数据安全问题。Porticor公司提供了一种分离密钥加密解决方案,云客户是唯一知道主密钥的人。另外,Porticor公司解决了所有与加密数据有关的复杂问题,客户几乎不要去想这些问题。这种独特的密钥管理解决方案既提供了安全性,也提供了便利性。

微软下调Azure云服务价格 与亚马逊竞争

微软上周下调了其Azure云存储服务和Windows Azure Extra Small计算服务的价格。此举是微软在亚马逊下调其Web服务价格几天之后采取的行动。

这一切意味着什么?对于IT买主来说,云计算价格正在迅速下降并且已经与电费水平一样。考虑到电费受天然气价格、季节和其它可变因素的影响,云计算的价格可能更便宜。


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage