工程数据库、数据仓库与大数据探讨

2015-02-10 02:35钱立国安徽建筑大学数理学院安徽合肥230011
安徽建筑 2015年6期
关键词:关系数据库数据库系统数据仓库

钱立国(安徽建筑大学数理学院,安徽 合肥 230011)

1 概述

数据是信息的载体,是知识的载体。广义上说,一切可以用文字或符号记录下来的东西,都可以叫数据,所以数据包括文档、图形、符号、视频、图片、数值。将人的活动记录下来,就是数据本身,就是最原始的数据。但从狭义上说,数据就是数据值,我们通常研究的数据就是数值。但是,在计算机和网络应用成熟起来后,我们的数据也包括文档、视频、图片。

当用计算机来处理数据的时候,数据就需要存储和管理了。早期的数据,就是用一个文件来实现的,即是文件系统。随着处理的数据量增大,发展到用数据库来管理和存储数据了。

数据库包括多媒体数据库、对象关系数据库和关系数据库。关系数据库管理系统,已经成为了事实上通用的数据库系统,因为它以关系表格式存储数据,并以简单明了的SQL标准的格式对数据进行存取。

随着数据量的增多,人们开始寻找各种数据之间的关系,研究面向某一主题的数据,于是数据仓库问世了。数据仓库是历史的、主题的、集成的大量数据,以多维的角度分层次分析数据之间的关系,提供数据挖掘功能,寻找数据间的知识,为决策支持提供服务。

但互联网的发展,使得数据的生产成几何级数增长,不管以数据库还是数据仓库,都无法囊括如此海量数据时,大数据应运而生。大数据和云服务,是孪生兄弟。大数据,就是分布式数据库系统,但此时的各个点上的数据,不再局限于数据库系统,而是包括文件系数据库系统等各种方式存储的数据。就是说,将数据分散在互联网中无限个点,并且实现分布式处理,而获得处理结果。云服务,可以为这种分布式文件系统提供落地的服务设施。本文分别介绍各种数据系统。

2 数据库系统

数据库是按照一定的数据结构来组织、存储和管理数据的系统。数据库管理系统多种管理类型,包括多媒体数据库管理系统、对象数据库管理系统、关系数据库管理系统等。数据库按存储数据的时效性,可分为实时数据库管理系统、内存数据库管理系统、持久化的传统关系数据库管理系统。

本节主要介绍关系数据库系统,这是最普通最常用的数据库管理系统,也是市场上成熟产品最多的数据库管理系统。

2.1 数据库系统构成

2.1.1 数据

数据是描述事物的符号记录,这是对事物的抽象。抽象的结果,是形式,但不能完整地表达数据的意义。这时必须要对数据进行解释,即语义。而数据库中存储的就是这种抽象形式的记录。如,张三、1992、安徽省、计算机系。这是一条记录,是存储在数据库系统中的数据,但需要语义的解释,即:张三,1992年出生,籍贯为安徽省,在计算机系。

2.1.2 数据库

数据库是存放数据的仓库。这个仓库是通过计算机系统来管理并存储的。而且这些数据,是有一定格式的。数据库中的数据按一定的数据模型组织、描述和存储。在关系数据库中,数据是按二维表的形式组织和存储,按一定的模型,将数据组织在不同的二维表中。

2.1.3 数据库管理系统(DBMS)

数据库管理系统,是对数据库进行数据定义(DDL)、数据操纵(DML)、数据库的运行管理、数据库的建立和维护等一系列管理与维护的系统,是建立在操作系统之上,由用户或应用程序使用。

2.1.4 数据库系统(DBS)

数据库系统,包括数据库DB、数据库管理系统DBMS、应用程序AP、数据库管理员DBA、和用户USERS。通常说的数据库,就是指数据库系统。企业级的数据库系统,必须包括这些内容,才有现实的意义。

2.2 关系数据库的基础模型

2.2.1 模型要求

数据库的模型,要求真实地反应现实世界,即是对现实世界的抽象;也要求容易理解与沟通,这就是谁都能看的懂模型;最后,模型还要求计算机容易实现,即计算机也能看的懂。这些目前是理想的要求,在实际的抽象中,可能不能同时满足这三个要求,但我们在抽象时,可能用不同的模型来描述。

2.2.2 模型层次及分类

按照不同的要求,模型分为不同的层次,即概念模型和数据模型。

概念模型是对现实世界的抽象,站在用户的角度看待数据和信息,一般用E-R图表示,即实体关系图,它包括实体、属性、联系。概念模型用于表示信息世界,是从现实世界到信息世界的抽象。

数据模型包括网状模型、层次模型、关系模型。这里介绍关系模型。

关系模型包括数据结构、关系数据模型操纵、完整性约束、存储结构。这些内容是从数据存储在计算机系统中的存储组织形式描述的。数据结构包括关系表、元组、属性、主码、域、分量、关系模式。关系数据模型操纵包括查询、插入、删除、修改。完整性约束包括实体完整性、参照完整性、用户自定义完整性。存储结构为表。存储结构为表。

2.3 关系数据库查询语言

2.3.1 SQL标准及其特点

美国国家标准学会(American National Standards Institute,ANSI)负责维护SQL的标准。现在,SQL标准由ANSI和国际标准化组织(International Standards Organization,ISO)作为ISO/IEC 9075标准维护。

ANSI到目前为止发布的SQL的标准有:ANSISQL-86、ANSISQL-89、ANSISQL-92、ANSISQL-99、ANSISQL-2008。

SQL的特点是以单一的表为操作对象、一体化解决DD/DM/DC、高度非过程化、同一种语法,两种使用,即自主和嵌入,简单,易用。

2.3.2 数据查询/定义/操纵/控制功能

数据定义包括创建、修改和删除表、视图和索引。如表1所示。创建使用CREATE关键字,分别创建表、视图和索引。删除使用DROP关键字,修改使用ALTER关键字。修改只能修改表,不能修改视图和索引。视图是虚拟的表,仅仅是定义。索引是表中记录的查询的快捷方式。

数据定义操作 表1

2.3.3 数据查询

数据查询是用SQL语言对数据库表进行查询。查询使用SELECT关键字,由SELECT语句。SELECT语句的格式如下:

SELECT[ALL|DISTINCT]<目标列表达式>

[,<目标列表达式>]…

FROM<表名或视图名>[,<表名或视图名>]…

[WHERE<条件表达式>]

[GROUPBY<列名1>[HAVING<条件表达式>]]

[ORDERBY< 列名 2>[ASC|DESC]];

单表查询是对一单独的一个表进行查询,可以查询表中几列或几个元组,还可以对查询的结果进行分组和排序。查询可以有查询条件,如表2所示。

查询条件 表2

连接查询就是对2个及2个以上的表进行组合查询,查询的过程中,需要将多个表连接在一起。连接的种类丰富,包括如下几种。等值与非等值查询使用逻辑操作符=、>、<、>=、<=、!=实现,自身连接是表自己和自己进行连接,外连接包括左外连接、右外连接、全连接,复合条件查询包括嵌套查询、集合查询、复杂查询。

2.4 数据库的当前发展

数据库系统目前发展非常活跃,出现了各种使用环境的数据库系统。

面向对象的数据库系统不再以关系表建模,而是以对象建模,存储和使用的逻辑单元是对旬,是以面向对象的数据模型为基础。分布式数据库系统是物理上分布在网络中,但逻辑上是一个整体,当前的大数据系统,就是分布式的数据系统,但主要以文件存储为主。并行数据库系统在并行机上运行,且并行处理。Web数据库系统更是一种以访问形式来定义的,其内部的数据库系统,可以是传统的关系数据库系统。

多媒体数据库系统是将多媒体引入数据库系统,对存储、管理、使用和表现,进行重新设计和组织,并提供用户方便使用。

2.5 数据库产品

关系数据管理系统,目前非常成熟,有商业产品的很多,如Oracle、DB 2、MSSQL Server、Sybase、MySQL、PostgreSQL 等等。国产的数据库有人大金仓的Kingbase、武汉达梦的DM数据库、东大阿尔派的数据库管理系统等。

除了传统的关系型数据库管理系统外,实时数据库管理系统、内存数据库管理系统产品也比较多。

3 数据仓库与OLAP分析

3.1 数据库与数据仓库

3.1.1 数据库特征

数据库的数据是操作性的业务数据。数据库用于事务处理,即联机事务处理系统OLTP,数据库的数据是描述实体、实体联系、概念。

3.1.2 数据仓库特征

数据仓库用于联机分析处理,即OLAP,为用户提供决策支持,即决策支持系统DSS,最常见的应用是商业智能BI。

数据仓库是面向主题的,以数据立方体Cube为模型基础。数据Cube是抽象概念,是用户关心点的主题,一个主题通常与多个操作型信息系统相关。

数据仓库也是集成的、历史的,反映历史变化的。

3.2 数据仓库数据模型

3.2.1 维度模型

数据仓库的基本模型是数据立方体,面向的是主题的、综合的业务领域,如分析销售这一主题。数据立方体的模型,决定了数据仓库与关系数据库完全不一样的建模方式,因为关系数据库是以表为基础,是二维的平面的模型。

但在实际上,通常用关系表来表达数据立方体,这就出来了如何用二维表来表达多维的数据立方体。

3.2.2 维表

维,就是分析分析问题的角度,也是度量数据有实际意义的所在。比如,我们说销售额500万元,谁能明白?当我们说某公司某品牌某型号的产品,2015年1月在某地方的销售额500万元时,才会实际上的意义。那这里的产品、时间和地区,就是3个角度,也就是3个维度。我们可以用3张二维表来存储这样的信息,就是维表。

在维里,我们可以看到,维是分层次的,如2015年1月,两个层次,年和月。我们可以有月的数据,然后可以向年聚合,同时,有年的数据,可以向月下钻。这就是多维分析中的上钻和下钻的功能。

维度表里可以存储其它不构成层次的属性,也可以关联其它的维度。维度中的层次,根据业务需要可以有多个。

3.2.3 事实表

数据仓库研究的是主题数据,是面向主题的,这就是度量,也就是一个或多个同一主题下的数据值,如上述的销售额。这个销售额就是度量,就是主题数据。存储这个度量的表,就叫事实表。

事实表是数据仓库结构中的中央表,它不仅存储联系事实与维度表的数字度量值,更重要的还存储着键,这键就是事实表与维表之前的外键关联关系。

3.2.4 模型结构

事实表和维度表之间的存储结构,根据业务模型简单和复杂性,以及建模的需要,可以分为星型结构、雪花型结构。

3.2.5 星形结构

维度表利用维度关键字通过事实表中的外键约束于事实表中的某一行,实现与事实表的关联。这种结构就使得用户能够很容易的从维度表中的数据分析开始,获得维度的关键字,以便连接到中心的事实表,进行查询,这样就减少了在事实表中扫描的数据量,以提高查询性能。这是数据仓库模型的最简单的形式。

3.2.6 雪花型结构

维度表除了具有星形模式中的维度表的功能之外,还连接对事实表进行详细描述的详细类别表,详细类别表通过对事实表在有关维度上的详细描述达到了缩小事实表和提高查询的目的。这是在星形模型基础上更加复杂的形式。

3.2.7 数据粒度

在数据仓库中,数据存储在事实表中,事实表中的数据通过外键关联到维度表。但这个关联,决定着数据的粒度。如2015年1月的销售额。那这里的必须关联到1月,而不是2015年。这里的1月就是数据的最小粒度,多维分析时,这是下钻的最底层了。最小粒度存储的是真正的实际的数据,其它粒度的数据,都是通过最小粒度的数据按一定的聚合规则进行聚合后的数据,并不实际存储。

3.3 数据仓库与数据集市

数据集市就是企业级数据仓库的一个子集,他面向部门级业务,并且只面向某个特定的主题。为了解决灵活性与性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。

3.4 OLAP分析

OLAP分析,是联机分析处理,相应于关系数据库的事务处理OLTP。OLAP是面向主题的分析,而OLTP是面向业务的日常事务的数据处理。OLAP的目标是分析,而OLTP的目标是日常事务。OLAP分析的架构如图3所示。

OLAP分析是基于数据立方体,即多维模型。其分析方法有以下几种。

3.4.1 数据切片(Slicing)

固定一个维的层次上的值,也就是固定该维的操作粒度,这样就可以对维中特定的值进行分析,如只选择电子产品的销售数据,或者2010年第二季度的数据。

3.4.2 数据切块(Dicing)

固定一个维的层次上的一个区间范围,在该区间的数据或者某批特定值进行分析,比如选择2010年第一季度到2010年第二季度的销售数据,或者是某产品的销售数据。

3.4.3 钻取

数据下钻(Drilling-down),维是有层次的,最小层次的数据粒度最小,其它层次的数据都是从最小层次聚合生成的,所以从上层往下查看更细节的数据,这就是下钻。比如通过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度4、5、6 每个月的消费数据。

即数据上钻(Drilling-up)或数据上卷(Rolling-up),钻取的逆操作,如果从最小层向上层进行聚合,获取更粗粒度的数据,这就是上钻或上卷。上钻和下钻正好相反。

3.4.4 数据旋转(Pivoting/Rotating)

在多维分析时,各个维度所处的位置不同,对维的位置互换,就像是二维表的行列转换,这就是旋转。

4 大数据

4.1 大数据概念

大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据强调的是处理,强调的数据量多、来源复杂、增长快。

在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》[2]中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。大数据的4V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。

4.2 大数据分析

大数据的分析,最终都需要可视化展现。但展现的是什么数据、知识或信息?这些知识和信息是怎么来的,如果仅仅是获取的数据的展现,那是没有意义的,更何况是不现实的,因为大数据量是TB级的,无法正常展现。

研究和应用大数据,都是为了数据的分析。分析海量分布在各地的大数据之间潜在的逻辑关系,预测未来的趋势,也就是潜在的知识和信息。所以,对大数据的分析,根本上是对数据的数据挖掘,再次是抽取、聚合和分类。这也是大数据技术所在。

传统的应用统计的统计方法是非常成熟的,被广泛应用于大数据的数据挖掘分析。大数据的分析,基于海量高质量的数据,同时,依赖于分布式处理,将处理分散化后,处理的容量就可以无限增大。

4.3 大数据技术

4.3.1 数据采集

数据要集的工具ETL,负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

传统的ETL是针对数据仓库的,为数据仓库抽取数据。但大数据出现后,将ETL进行扩展,所有采集数据的功能都叫ETL。大数据的ETL就是从分布式的海量的数据中运用各种算法,采集和抽取到应用分析所需要的知识和信息。

数据存取:采集到的数据,一般用传统的关系数据库存储,也可以用基于NOSQL的非关系型数据库,还可以用数据仓库存储。根据分析的业务需要,选择合适的存储方式。

4.3.2 基础架构

大数据与虚拟化服务是分不开的,既然是分布式,那没有谁知道,大数据体系中的其它地方的数据是如何存储,如何提供服务。这一切,都是依赖虚拟化服务提供统一的接口和服务。所以大数据的基础架构为云存储、分布式文件存储等。

4.3.3 数据处理

数据处理,是大数据的核所在。从严格意义上来讲,大数据是没有数据的,它的强大在于它的大数据处理平台。正因为大数据是没有数据的,所以它就可以包容一切地方的一切数据,能如此包容的,就是这个数据处理平台了。所以大数据采用的是分布式并行处理模式,采用的处理算法,丰富多样,包括自然语言处理方法、统计分析方法等。

4.3.4 统计分析

运用于大数据的统计分析技术有:假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。

4.3.5 数据挖掘

获取大数据中潜在的知识和信息,就需要运用数据挖掘技术了。数据挖掘技术包括分类(Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(Affinity grouping or association rules)、聚类(Clustering)、描述和可视化、Description and Visualization)、复杂数据类型挖掘(Text,Web,图形图像,视频,音频等)。

4.3.6 模型预测

大数据的模型有预测模型、机器学习、建模仿真,基于这些模型,可以获取需要的知识。

4.3.7 结果呈现

云计算、标签云、关系图等。

4.4 大数据产品

近年来,传统的数据厂商,都不同程度地冠上大数据的标签,但有些厂商也开发相应有使用意义的大数据厂品。如Teradata、IBM、Oracle、SAP 等。

下面介绍流行的两款大数据产品:

①Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的核心是:HDFS和MapReduce。HDFS为海量的数据进行存储管理,使得使用者不需要了解底层的数据存储结构和存储地方。MapReduce为海量的数据提供了处理,此处理是分布式的、并行的。

Hadoop还包括数据仓库工具Hive和分布式数据库Hbase。

②Spark

是UCBerkeley AMP lab所开发的类Hadoop MapReduce的通用并行框架,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是,支持内存分布数据集,这就提高了由于需要频繁读写HDFS而降低的性能。

Spark是以Scala语言为最佳实现环境,当然java可以实现,实际上scala就是基于java的。与Hadoop不同,Spark和Scala无缝集成,Scala可以像操作本地集合对象一样轻松地操作分布式数据集。

Spark以内存管理系统支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoo文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。

5 结 语

随着互联网的快速发展,互联网+的大规划应用,工程数据量以几何级数增长,如何处理这些大量的结构化和非结构化的数据,显得越来越重要。工程数据库、数据仓库、大数据,是互补的,谁也替代不了谁,他们将会协同发展,相互协作为应用服务。

数据库存储的是事务型的日常处理的数据,解决工程施工、设计、咨询等各方面的需要。数据仓库是面向主题的分析,为人们提供决策支持需要。大数据,是海量数据的采取、抽取、统计、分析等等,最后形成可以使用的数据。

猜你喜欢
关系数据库数据库系统数据仓库
基于数据仓库的数据倾斜解决方案研究
Oracle数据库系统的性能优化研究
对分布式数据库系统的安全分析
基于单表结构的Web动态树设计与实现
探讨关系数据库设计中范式理论的教学方法
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现
数据库系统在信息管理中的使用
数据库系统在计算机体系结构中的应用
数据复用在存储数据仓库中的运用