周苏教授QQ:81505050ZS@mail.hz.zj.cn第10章数据库、数据仓库和数据挖掘•根据工作环境的不同,“数据文件”可能有不同的含义。例如,可以把数据文件当作是包含任何类型数据的文件,例如文本、数字、图形、声音,甚至是软件模块等;同样,也可以把数据文件当作任何不可执行或者不是程序的文件,这些定义都是有效的。当然,数据文件也可能指的是某个结构化文件或者数据库,比如电子邮件地址簿,其中包含了按照固定格式组织的信息。第10章数据库、数据仓库和数据挖掘•由于数据文件有多种定义,因此,当阅读计算机专业杂志或者文档时,也许应该根据文本的上下文来决定该术语的具体含义是什么。例如,在这一章中,“数据文件”指的是以统一格式组织信息的文件,这种数据文件可以保存简单地址簿、库存列表、学生花名册、航班时刻表等信息。与维护和访问数据文件中数据相关的任务称为数据管理。第10章数据库、数据仓库和数据挖掘•数据库基础•数据库管理系统•数据库检索•数据仓库•数据挖掘10.110.210.310.410.5第10章数据库、数据仓库和数据挖掘•10.1数据库基础–10.1.1数据库的基本结构–10.1.2数据库的特点–10.1.3数据模型–10.1.4数据库的发展第10章数据库、数据仓库和数据挖掘•10.1数据库基础–数据库(DB,database)是依照某种数据模型组织并存储的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一的软件进行管理和控制等。第10章数据库、数据仓库和数据挖掘•从发展历史看,数据管理技术大致经历了三个阶段:–1)自由管理阶段:用户以文件形式将数据组织起来,并附属在各自的应用程序下。–2)文件管理阶段:操作系统中的文件系统给出了统一的文件结构和共同存取的方法,用户可以把数据和信息作为文件长期地保存在计算机系统中,并可以方便地进行查询和处理。–3)数据库管理阶段:为了适应大量数据的集中存储,并提供给多个用户共享的要求,使数据与程序完全独立,最大限度地减少数据的冗余度,出现了数据库管理系统(DBMS)。第10章数据库、数据仓库和数据挖掘•10.1.1数据库的基本结构–在数据文件中,字段是有意义数据的最小单元,称为数据文件的基本组成模块。字段有字段名,用来描述字段中的内容。例如,字段Name可能描述了一组职工姓名数据。字段可以设置为可变长度或者固定长度。第10章数据库、数据仓库和数据挖掘–输入在字段中的数据依赖于字段的数据类型。从技术上讲,数据类型定义了数据在磁盘和内存中表示的方式;从用户的角度来说,数据类型决定了操作数据的方式。文件中的每个字段都分配有数据类型,最常用的数据类型是字符和数字。数值类型的字段可以进行数学运算;字符类型的字段包含了那些不需要进行数学操作的数据,例如名字、描述、城市、缩写、电话号码和学号等。还有一些其他数据类型,如日期、逻辑和备注类型等。–实体是人、地方、物品或事件等用来存储数据的对象,而记录包括了描述实体的字段。第10章数据库、数据仓库和数据挖掘–记录长度表示记录可以存储的最大字节数,计算文件的记录长度是很重要的,因为它有助于确定存储需求。一般情况下,创建数据文件中文件结构的人定义了它所应该包含的字段,这类似于设计手工记录系统或卡片文件的空白格式。记录中字段的个数和字段名依赖于记录所包含的数据,不同的数据需要不同的记录类型,商业或组织机构通常需要许多不同的记录类型来存储数据。第10章数据库、数据仓库和数据挖掘•数据库的基本结构分三个层次,反映了观察数据库的三种不同角度(视图):–1)物理数据层。是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。第10章数据库、数据仓库和数据挖掘–2)概念数据层。是数据库的中间层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而非物理情况,是数据库管理员(DBA)概念下的数据库。–3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。第10章数据库、数据仓库和数据挖掘•10.1.2数据库的特点–数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点:–1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。–2)减少数据的冗余度。由于数据库实现了数据共享,从而避免了用户各自建立应用文件,减少了大量重复数据,减少了数据冗余,维护了数据的一致性。第10章数据库、数据仓库和数据挖掘–3)数据的独立性。包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。–4)数据实现集中控制。利用数据库可以对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。–5)数据一致性和可维护性,以确保数据的安全性和可靠性。包括:•安全性控制:以防止数据丢失、错误更新和越权使用;•完整性控制:保证数据的正确性、有效性和相容性;•并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;•故障的发现和恢复:由DBMS提供一套方法,可及时发现和修复故障,从而防止数据被破坏。第10章数据库、数据仓库和数据挖掘•10.1.3数据模型–数据模型用来描述数据库中数据存储的方式。当使用有效的数据模型创建数据库时,就可以按照能够为公司或者组织机构提供有用信息的方式来输入、定位和操作数据。设计数据库结构时,数据模型可以帮助理解实体之间的关系,创建最有效的结构来存储数据。第10章数据库、数据仓库和数据挖掘•(1)实体关系–记录代表着一个实体,并且由一系列字段组成,关系是实体之间的联系关系。数据模型用来描述实体之间的关系,并且在创建数据库结构时把这些定义作为记录类型之间的关系。–数据库设计者使用如实体关系表等技术来图形化表示数据模型。例如,图10-1中的图表表示了职工和考勤卡之间的关系。第10章数据库、数据仓库和数据挖掘图10-1实体-关系图表示EmployeeTimecardhasa第10章数据库、数据仓库和数据挖掘•数据图表可用来显示基数,即两个记录类型之间存在的对应关系。有三种可能的基数:一对一、一对多和多对多。第10章数据库、数据仓库和数据挖掘图10-2表示基数图表示EmployeeSocialSecurityCardEmployeeTimecardDepartmentJob一对一关系用单线连接表示记录类型的方框一对多关系用一端加“凤爪”的单线连接表示具有多个出现的记录类型多对多关系用两端加“凤爪”的线连接两个表示具有多个出现的记录类型第10章数据库、数据仓库和数据挖掘•一对多关系意味着一个特定记录类型中的一个记录可以和另外一个记录类型中的多个记录相关联。例如,一个职工可以有多个考勤卡,一个工作需要多个员工等。多对多关系意味着一个特定记录类型中的多个记录可以和另外一个记录类型中的多个记录相关联,反之亦然。例如,一个部门可以提供许多不同的工作,如护士、技术人员等,但同时,某个特定的工作也可能出现在多个部门中,例如,急救中心和门诊都需要护士。第10章数据库、数据仓库和数据挖掘•数据模型可以帮助数据库设计者为数据库创建最高效的结构,并且可以决定哪一种数据模型能提供最高效的数据库环境。有四种主要的数据库模型,即层次、网状、关系和面向对象数据库模型,它们采用不同的方式末表示实体之间的关系。对于理解所有的模型来说,记录类型、字段和关系等概念都是很重要的。第10章数据库、数据仓库和数据挖掘•(2)关系数据库模型–过去,大型机数据库通常使用层次或网状数据库。20世纪80年代中,关系数据库逐渐流行,在微机上使用的数据库大多是关系模型,并且,面向对象模型也越来越流行。–对于关系数据库的用户来说,关系数据库就像一个表的集合,它大致上等价于记录类型集合。表的一行被称作一个元组(记录),表的列被称作属性(字段)。第10章数据库、数据仓库和数据挖掘–在关系模型中,记录是通过字段之间的关系而关联的。关系数据库模型的价值在于表实际上看起来是独立的,但是却可以多种灵活的方式相关联。而且,因为表只是一个概念性的东西,用户不需要处理数据的物理存储方案。第10章数据库、数据仓库和数据挖掘•(3)面向对象数据库模型–面向对象数据库(OODB)可以替代层次、网状和关系模型。面向对象数据库模型把实体看作根据属性定义的对象,其中属性等价于数据字段。对象可以用方法进行操作,具有类似属性的对象可以分组为类。可以使用类比来解释类、对象、属性和方法的含义。第10章数据库、数据仓库和数据挖掘–假设有一个类称为“固定某物的装置”(或称为扣件、紧固件)的东西,包括螺钉和钉子等对象。每个对象都有属性,钉子有一个尖尖的点,并且有一个平平的头;螺钉也有一个尖尖的点,还有一个有凹槽的头,并且有螺纹。有什么方法可以应用到钉子上呢?可以用锤子敲打。又有什么方法可以应用到螺钉上呢?可以用螺丝刀拧。–面向对象数据库提供了定义复杂数据关系的结构能力,同时它也提供了灵活创建单个数据类型的变种的能力。第10章数据库、数据仓库和数据挖掘•10.1.4数据库的发展–数据库技术是计算机科学中发展最快的领域之一。第10章数据库、数据仓库和数据挖掘•(1)分布式数据库系统–随着20世纪70年代后期分布计算机系统的发展,相应地研究成功了分布式数据库系统。分布式数据库系统结构复杂,是一个在逻辑上完整,而物理上分散在若干台互相连接的结点机上的数据库系统,它既具有分布性又具有数据库的综合性,是数据库系统发展的一个重要方向。第10章数据库、数据仓库和数据挖掘•(2)数据库机器–所谓“数据库机器”是一种新的计算机系统的体系结构,它把由中央处理器包办的数据库操作分散给一些局部的部件来执行,或转移到一个与主计算机相连的专用计算机去执行,以提高并行性。数据库机器的发展,包括了智能控制器和存储器,专用处理机和数据库计算机。第10章数据库、数据仓库和数据挖掘•(3)数据库语义模型–一般数据库的数据模型基本上属于语法模型,语义体现很不完备,不能明显地含有现实世界的意义。因此,用户只能按照DBMS所提供的数据操纵语言访问数据库。而语义数据模型能准确描述现实世界中某个部门的信息集合及其意义,使用户能基于对现实世界的认识或用类似于自然语言的形式来访问数据库。这方面的研究已发展为数据语义学。第10章数据库、数据仓库和数据挖掘•(4)数据库智能检索–数据库技术和人工智能相结合,根据数据库中的事实和知识进行推理,演绎出正确答案,这就是数据库的智能检索。这涉及到自然语言用户接口、逻辑演绎功能和数据库语义模型等问题,例如20世纪70年代末开始的知识库管理系统和演绎数据库的研究等。•(5)办公室自动化系统中的数据库–研究在办公室自动化系统中数据库技术的应用,其中主要研究对各种非格式化数据如图像、声音、正文的处理,以及面向端点用户的高级语言接口等。第10章数据库、数据仓库和数据挖掘•10.2数据库管理系统–10.2.1数据库管理系统功能–10.2.2面向对象数据库–10.2.3基于Web的数据库工具–10.2.4主流的数据库管理系统第10章数据库、数据仓库和数据挖掘•10.2数据库管理系统–数据库管理系统(DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,以适应信息化社会对数据管理技术的需求,是十多年来迅速发展起来的一门学科。DBMS对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。DBMS提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。第10章数据库、数据仓库和数据挖掘•10.2