20世纪50年代末到60年代中期,随着科学技术的进步,计算机技术有了很大提高,计算机的应用范围也不断扩大,不仅用于科学计算,还大量用于管理。这时的计算机硬件已经有了磁盘等直接存取的外存设备,软件则有了操作系统,操作系统的文件系统就是专门用于数据管理的软件,处理方式不仅有批处理,还增加量联机实时处理。文件系统阶段的特点是:
①数据可以长期保存在磁盘上,用户可以反复对文件进行查询、修改、插入和删除等操作。
②文件系统提供了数据与程序之间的存取方法。应用程序和数据有了一定的独立性。数据物理结构的改变也不一定反映在程序上,大大减轻了程序员的负担。
③数据冗余量大。文件系统中,文件仍然是面向应用的,一个文件基本上对应于一个应用程序。即使多个程序使用了一部分相同的数据,也必须建立各自的文件,不能对数据项进行共享,因此数据冗余大,存储空间浪费。由于数据可能有多个副本,对其中之一进行修改时还容易造成数据的不一致性。
④文件之间缺乏联系,相互孤立,仍然不能反映现实世界各种事物之间错综复杂的联系。
(3)数据库系统阶段
20世纪60年代末以来,计算机的应用更为广泛,用于数据管理的规模也更为庞大,由此带来数据量的急剧膨胀。计算机磁盘技术有了很大的发展,出现了大容量的磁盘。在处理方式上,联机实时处理的要求也越来越多。种种变化都促进了数据管理手段的进步,数据库技术应运而生。
相对于前述两个阶段,数据库系统的特点是:
①数据的结构化
在文件系统阶段,只考虑了同一文件记录内部数据项之间的联系,而不同文件的记录之间是没有联系的,也就是说,从整体上看数据是无结构的。如上一节所述,这样的文件是有局限性的,不能反映现实世界各种事物之间错综复杂的联系。在数据库系统中,实现了整体数据的结构化,把文件系统中简单的记录结构变成了记录和记录之间的联系所构成的结构化数据。在描述数据的时候,不仅要描述数据本身,还要描述数据之间的联系。数据之间的联系通过存取路径来实现,把相关的数据有机地组织在一起。
②数据共享性好
对各个应用程序所需的不同数据,在数据库中只在一处存放,在存取时,根据不同应用程序的不同需要进行相关数据项的组合抽取,从而既满足了各个应用程序的不同需要,同时使存储的数据项基本上没有重复,数据的冗余量为最小。
③数据独立性好
数据库系统有三层结构:用户(局部)数据的逻辑结构、整体数据的逻辑结构和数据的物理结构。在这三层结构之间数据库系统提供了两层映像功能。首先是用户数据逻辑结构和整体数据逻辑结构之间的映像,这一映像保证了数据的逻辑独立性:即当数据库的整体逻辑结构发生变化时,通过修改这层映像可使局部的逻辑结构不受影响,因此不必修改应用程序。另外一层映像是整体逻辑结构和数据物理结构之间的映像,它保证了数据的物理独立性:当数据的存储结构发生变化时,通过修改这层映像可使数据的逻辑结构不受影响,从而应用程序同样不必修改。通过三层结构两层映像,实现了数据和程序的分离,从根本上解决了程序修改时必须修改数据格式或结构的结症,同样数据更新同样实现程序的零修改,大大提高了系统兼容性及更新的工作效率。
④数据存取粒度小
文件系统中,数据存取的最小单位是记录;而在数据库系统中,数据存取的最小单位可以小到记录中的某个数据项。因此,数据库中数据存取的方式非常灵活,便于对数据的管理。
⑤数据库管理系统(DBMS)
DBMS能够实现数据的统一管理和控制,不仅有最基本的添加、删除、插入等数据管理功能,还有如下的数据控制功能:
·数据的完整性:保证数据的正确性,要求数据在一定的取值范围内或相互之间满足一定的关系。例如考试成绩限制在0分到100分之间,性别限制为男、女。
·数据的安全性:通过权限设置,让每个用户根据自身的权限在被指定的数据访问范围内访问数据,防止不合法地使用数据,造成数据破坏和丢失的不良后果。例如学生用户对于课程的成绩操作,只能查询自己的成绩而不能查询别人的成绩,同时只能查看而不许修改。
·并发控制:对多用户的并发操作加以协调和控制,防止多个进程同时存取、修改数据库中的数据时发生冲突、造成错误。比如在学生选课系统中,某门课只剩下最后一个名额,但有两个学生在两台选课终端上同时发出了选这门课的请求,必须采取某种措施,确保两名学生不能同时拥有这最后的一个名额。
·数据库的恢复:当数据库系统出现硬件软件的故障或者遇上误操作时,DBMS应该有能力把数据库恢复到最近某个时刻的正确状态上来。
⑥为用户提供了友好的接口
用户可以使用交互式的命令语言,如SQL(structured query language,结构化查询语言)语言,对数据库进行操作;也可以把普通的高级语言(如C++语言等)和SQL语言结合起来,从而把对数据库的访问和对数据的处理有机地结合在一起。总而言之,用户可以很方便地对数据进行管理。
2.数据库技术相关术语
·数据:在计算机领域内,数据(data)这个概念已经不局限于普通意义上的数字,还包括文字、图形、图像、声音等等。凡是计算机中用来描述事物的记录,都可以统称为数据。
·数据库技术:研究数据库的结构、存储、设计、管理和使用的一门软件学科。
·数据库(DB):是存储在一起的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的程序与数据的独立性。
·数据库管理系统(DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS可分为层次型、网状型、关系型、面向对象型。
数据库系统(DBS):即是采用了数据库技术的计算机系统,是实现有组织地、动态存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源而组成的系统。
·分布式数据库系统(DDBMS):分布式数据库系统,就是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位(通常是集中式数据库系统)连按起来,共同组成一个统一的数据库系统。因此,分布式数据库系统可以看成是计算机网络与数据库系统的有机结合。在分布式数据库系统中,被计算机网络连接的每个逻辑单位是能够独立工作的计算机,这些计算机称为站点〔Site)或场地。也称为结点(node)所谓地理位置上分散是指各站点分散在不同的地方,大可以到不同国家,小可以仅指同一建筑物中的不同位置。听谓逻辑上集中是指各站点之间不是互不相关的,它们是一个逻辑整体,并由一个统一的数据库管理系统进行管理。
·数据仓库(Data Warehouse):数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
主题,是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。集成的,是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。相对稳定的,是指一旦某个数据进入数据仓库以后,一般很少进行修改,更多的是对信息进行查询操作。反映历史变化的,是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
数据仓库的重点与要求是能够准确、安全、可靠地从数据库中取出数据,经过加工转换成有规律信息之后,再供管理人员进行分析使用。数据仓库主要是应用于决策支持系统,其主要目的是“提取”信息并加以扩展,用来进行处理基于数据仓库的决策支持系统(DSS)的应用。
·决策支持系统(decision support system,DSS):是辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。它是管理信息系统向更高一级发展而产生的先进信息管理系统。它为决策者提供分析问题、建立模型、模拟决策过程和方案的环境,调用各种信息资源和分析工具,帮助决策者提高决策水平和质量。基于数据仓库的决策支持系统(DSS)由三个部件组成:数据仓库技术(Data warehousing),联机分析处理技术(OLAP,On—Line Analytical Processing),数据挖掘技术(Data Mining)。下面解释并区分相关的两个概念:
OLTP(On-Line Transaction Processing):即联机事务处理,也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。主要是执行基本的、日常的事务处理,比如在银行存取一笔款,就是一个事务交易。
OLAP(On-Line Analytical Processing):即联机分析处理。使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或多维环境特定的查询和报表需求。
·数据挖掘技术(Data Mining):数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。数据挖掘可以看成是一种数据搜寻过程,它不必预先假设或提出问题,但是仍能找到那些非预期的却令人关注的信息,这些信息表示了数据元素的关系和模式。它能挖掘出数据键潜在的模式(pattern),找出最有价值的信息和知识(knowledge)。指导商业行为或辅助科学研究。研究对象是大规模和超大规模的数据集合。
3.数据模型
数据模型:为了用计算机处理现实世界中的具体事物,往往要对客观事物加以抽象,提取主要特征,归纳形成一个简单清晰的轮廓,从而使复杂的问题变得易于处理,这就是“建模”——建立模型的概念。数据模型就是一种对客观事物抽象化的表现形式。数据模型是严格定义的概念的集合,数据库的数据模型应包括数据结构(指对实体类型和实体之间联系的表达和实现)、数据操作(指对数据库的检索和更新两大类操作)和完整性约束(给出数据及其所具有的制约合依赖规则)3个部分。
数据模型的种类很多。目前广泛使用的数据模型可分为两种:概念数据模型和结构数据模型。
(1)概念数据模型
这是一种独立于任何计算机系统的模型,完全不涉及信息在计算机系统中的表示,用于建立信息世界的数据模型,是现实世界的第一层抽象,是用户和数据库设计人员进行交流的工具,其中最著名的模型是“实体联系模型”(ER模型)。ER模型直接从现实世界中抽取出实体类型及实体间联系图(ER图)表示数据模型。一般遇到实际问题时,总是先设计一个ER模型,然后再把ER模型转换成与DBMS关联的数据模型。
(2)结构数据模型
结构数据模型是直接面向数据库的逻辑数据结构,通常有一组严格定义了语法和语义的数据库语言,用来定义、操纵数据库中的数据。其主要有层次、网状、关系模型三种。
·层次模型:用树型(层次)结构表示实体类型及实体之间联系的数据模型称为层次模型。层次结构是一棵树,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型的联系是1:M联系。
·网状模型:用从结构(网络结构)表示实体类型及实体间联系的数据模型称为网状模型。记录之间的联系通过指针实现,M:N联系容易实现(一个M:N联系可拆成两个1:M联系),查询效率高。
·关系模型:用规范化了的二维表格结构表示实体集,用键表示实体间联系。通常是若干个关系模型组成的集合。
其中层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代至80年代初非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家里,由于早期开发的应用系统都是基于层次数据库或网状数据库系统的,因此目前仍有不少层次数据库或网状数据库系统在继续使用。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进数据库中面向对象数据模型的研究和发展。本书主要介绍基于关系模型的关系数据库系统。
【2】关系数据库系统
1970年,美国IBM公司的TedCodd发表了一篇著名的论文,文中首次提出了关系数据库的概念。在此以前,先后出现过层次数据库系统和网状数据库系统,这两种数据库目前仍有少量应用,但关系数据库早已占据了主导地位。
1.关系的概念
所谓关系,就是一张表。表的各列以属性开始,属性是列的入口。例下表是一个名为“学生信息登记表”的关系,记录的是学生的相关信息,包括学生的学号、姓名、性别、年龄、所属院系、年级。
【学生信息登记表】
学号:96001,姓名:王鹏,性别:男,年龄:18,系名:计算机,年级:96;
学号:96005,姓名:张志芳,性别:女,年龄:18,系名:国际金融,年级:96;
学号:96053,姓名:刘丽,性别:女,年龄:19,系名:经济学,年级:96;
学号:94034,姓名:张勇,性别:男,年龄:21,系名:行政管理,年级:94。