工业数据纷繁复杂、数量庞大,需要将其放入数据库里,从而可以对其进行组织、存储和管理。数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理、存取和使用大量的数据资源。目前常用的数据库有两类:关系数据库(SQL)和NoSQL数据库。
1.关系数据库
关系数据库是指建立在关系模型基础上的数据库。关系模型由IBM公司的埃德加·科德(Edgar F.Codd)于1970年在题为“大型共享数据库的关系模型”的论文中首先提出,其后他又提出了指导创建关系数据库的科德十二原则。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。最常用的关系模型为实体关系模型(E-R Model)。它运用真实世界中事物与关系的概念来构造数据库中抽象的数据结构。关系操作包括对数据的添加、删除、修改和更新。数据查询包括选择、投影、连接、并、交、差和除等操作。关系完整性约束包括实体完整性、用户自定义完整性和参照完整性。
关系数据库中的数据被归纳为一组拥有正式描述性的表格。每个表格(关系)包含用列表示的一个或更多的数据种类。每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库时,需要定义数据列的数据类型、可能值的范围和可能应用于哪个数据值的关系约束。
关系数据库遵循ACID原则。ACID指数据库事务正确执行的四个基本要素的缩写,包含原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性指整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性指一个事务可以封装状态改变。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。也就是说,如果事务是多个并发,系统也必须如同串行事务一样操作。其主要特征是保护性和不变性。隔离性指隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务运行在相同的时间内,执行相同的功能,则事务的隔离性将确保每一事务在系统中被认为只有该事务在使用系统,这种属性有时称为串行化,为了防止事务操作间的混淆,必须进行串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。持久性指在事务完成以后,该事务对数据库所做的更改可持久地保存在数据库中,并不会被回滚。通过实行ACID原则,关系数据库可以保持严密的数据一致性。
关系数据库使用结构化查询语言SQL作为标准的操作语言,进行数据查询和更新操作。SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同的底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使它具有极大的灵活性和强大的功能。在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一条SQL语句就可以达到目的。
目前最常用的关系数据库有:Oracle公司的Oracle数据库、IBM的DB2、微软的SQL Server,以及免费的MySQL等。
2.NoSQL数据库
随着物体感知技术的发展,大量的数据被采集。数据的井喷式增长给传统的关系型数据库带来了巨大的挑战,以NoSQL为代表的非关系型数据库,由于具有高可扩展性、高并发性等优势而得到了迅速发展。
NoSQL也称为Not only SQL,是对不同于传统关系数据库的数据库系统的通称,它具有非关系型、分布式、不提供ACID等特点。NoSQL数据库可分为四大类。
(1)键值(Key-Value)存储数据库
这一类数据库主要会用到一个散列表,这个表中有一个特定的键和一个指针指向特定的数据。Key-Value模型简单、易部署,优点是查找速度快。这类数据库通常被用于处理大量数据的高访问负荷,也用于一些日志系统等。它们中比较知名的包括BigTable、Dynamo、Oracle和BDB。(www.daowen.com)
(2)列存储数据库
这一类数据库通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列,这些列是由列家族来安排的。这类数据库的特点是查找速度快,可扩展性强,更容易进行分布式扩展,通常被用于分布式的文件系统。它们中比较知名的包括Cassandra、HBase和Riak。
(3)文档型数据库
这一类型数据库的数据模型是版本化的文档,半结构化的文档以特定的格式存储,如JSON。文档型数据库可以看作键值数据库的升级版,数据库能够了解Value的内容,允许之间嵌套键值。与键值数据库相比,文档型数据库的查询效率更高。这类数据库的特点是数据结构要求不严格,表结构可变,不像关系型数据库那样需要预先定义表结构,它们中比较知名的包括CouchDB、MongoDb、SimpleDB和SequoiaDB。
(4)图形(Graph)数据库
图形结构的数据库与其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。这类数据库的优点是可以利用图结构相关算法,如最短路径寻址和N度关系查找,通常用于社交网络、推荐系统等需要构建关系图谱的应用。它们中比较知名的包括Neo4J、InfoGrid和Infinite Graph。
目前数据的产生速度超出了人们的想象。传统的基于单机系统的数据库在存储的可扩展性和处理高并发的访问数据的要求等方面,已经无法满足需要。数据库技术开始向分布式架构发展,通过利用计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库,称为分布式数据库。分布式数据库将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储结点上,以获取更大的存储容量和更高的并发访问数据处理能力。NoSQL类型数据库都属于分布式数据库。
与传统集中式数据库相比,分布式数据库具有以下优点。
1)更高的数据访问速度。用户可以从多个备份服务器同时读取数据,从而可以提高数据访问速度。
2)更强的可扩展性。分布式数据库可以通过增加存储结点来实现存储容量的无限扩展,而集中式数据库只能通过在主机上增加磁盘的方法来扩展,其扩展性有限,成本也比较高。
3)更高的并发访问处理能力。分布式数据库由于采用多台主机组成存储集群,因此可以提供更高的用户并发访问处理能力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。