数据库技术及应用(第3版)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-04-08 09:06:49

点击下载

作者:唐好魁

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数据库技术及应用(第3版)

数据库技术及应用(第3版)试读:

前言

在信息化社会,数据库技术的发展是伴随着计算机软硬件技术的发展而发展的,已经广泛地应用于社会、政治、经济活动中,如办公自动化系统、决策支持系统、电子商务系统、证券交易系统、物流管理系统、教学管理系统等。在当前阶段,数据库技术与数据仓库、数据挖掘技术、通信技术紧密地联系在一起,随着云计算、物联网和移动计算的快速发展,分布式数据库也越来越受到人们的关注。

随着人们受教育程度的提高,人们的信息技术素养也发展到一个新的阶段,已经由原来计算机操作的需求转变为如何利用计算机解决其他专业和学科的实际问题。对于非计算机专业的学生,不能按照计算机专业的教学要求来组织教学活动,而是培养学生用计算机技术解决专业问题的意识,也就是培养学生的计算思维素质。从数据库技术的角度来说,当遇到实际问题时,能想到用数据库技术处理实际问题,并知道处理问题的方法和步骤。

数据库系统的设计过程包括需求分析、概念结构设计、逻辑结构设计、物理设计、数据库的实施和维护。整个设计过程都需要行业人员的参与,这些非计算机专业的人员在设计过程中有时起到非常关键的作用,甚至决定了数据库系统的成败。而数据库系统的人员组成主要由数据库管理员、系统分析员、数据库设计人员、应用程序员和用户负责维护和使用,其中部分工作通常由非计算机专业人员承担。考察一下在推广或应用中失败的案例,不难发现,其失败的原因不全是由于数据库系统本身存在问题或者其他计算机专业方面产生的问题。需求分析的偏差导致数据库设计方面的缺陷,进一步造成了系统功能的缺陷,常常成为诸多系统失败的主要原因。

本书的第1版和第2版采用了研究型教学模式组织教材,第3版在沿袭前两版教材的基础上,加入计算思维的元素,从认识数据库,理解数据库,到应用数据库的顺序重新组织教材。以培养学生计算思维为目标,结合网络化教学平台,精讲多练,以学生在课题研究中探索式学习为主,以网站答疑讨论为辅,以试题库在线测验为补充的研究型教学模式,配合本书的配套实验教程进行学习。作者希望通过本书、实验教程、网络教学平台和研究型教学模式的结合,使学生更好地掌握数据库技术。

本书根据难易程度和研究型教学模式的需要,对每节的内容进行了划分:表示内容比较简单,以自主学习为主;表示精讲多练,是重点内容;表示读者可以根据自己的兴趣和需要进一步探讨、研究和学习。

本书根据教育部对高等学校非计算机专业计算机基础系列课程的教学基本要求编写,从实用性和先进性出发,全面介绍了有关数据库的基础知识和应用技术。本书分为理论和实验两部分。理论部分共7章,第1章和第2章介绍了数据库技术的基础理论和基本概念,第3章介绍数据库设计的方法和步骤,第4章介绍了SQL Server 2008数据库管理系统的安装及使用,第5章对SQL语言进行了重点讲解,第6章介绍了数据库安全性和完整性知识,第7章通过数据库新技术和国产数据库的介绍,开阔了读者的视野。实验部分共设计了9个实验,便于读者根据课程教学的进度开展设计操作和上机实践操作。附录为读者进行管理信息系统的开发提供了备查资料。

与前两版相比,第3版在章节安排上也做了调整,将数据库的设计方法和步骤调整到SQL Server 2008及SQL语言之前,并将数据库理论融入到数据库设计的步骤中,更好地将关系数据理论和具体数据库设计相结合。对规范化理论部分的讲解,怎样能够让非计算机专业学生听懂,一直是数据库理论教学的难点之一。作者根据多年的教学实践,总结出采用函数依赖图和二维表直观展示精心设计的实例的方法来讲解规范化理论,收到了良好的效果,非计算机专业的学生学习起来比较轻松。

同样,第2章对关系和关系运算的介绍,也把重点偏向学生对二维表的感性认识上,使学生能够感觉到关系模型既亲切又熟悉。

通过本教材的学习,你可以:

● 学习数据库技术的基础知识;

● 设计一个符合规范化要求的简单的关系数据库;

● 掌握SQL Server 2008数据库管理系统的安装及使用;

● 熟练掌握SQL语言对数据库进行查询操作,以及数据定义和数据更新操作;

● 形成利用数据库技术解决行业问题的思维方式。

本书可作为高等学校非计算机专业数据库技术及应用课程的教材,也可作为高职高专计算机相关专业的教材,还可供从事数据库开发的读者和计算机技术爱好者学习参考。

作者为使用本书作为教材的教师提供教学用多媒体电子课件、实例数据库和习题参考答案,请登录华信教育资源网(http://www.hxedu.com.cn)注册下载。为使读者更系统地掌握数据库技术,本书配备了实验教程,作为教材内容的延伸和扩充,并配套网络教学平台(http://cc.ujn.edu.cn)、题库和在线MOOC课程,请与本书策划编辑联系索取(请发邮件至wyj@phei.com.cn)。

本书由唐好魁主持修订并统稿。第1章、第2章和第7章由唐好魁修订,第3章由董立凯修订,第4章、第6章和实验部分由蒋彦修订,第5章由李崇威修订。

很多老师对这次教材的修订给予了很大帮助,尤其是前两版的作者马涛老师、闫明霞老师和朱连江老师,他们对本教材的再版出谋划策,提出了很多建设性的意见和建议。刘明军教授为本教材和其他计算思维系列教材的编写付出了很多努力。承担本课程教学工作的闫明霞、史桂娴、崔忠玲、杜韬、王钦、李英俊、张晓丽等老师就教材的使用给出了很好的建议。另外,奚越、徐龙玺、韩玫瑰、孙志胜、邢静波、杨雪梅、张苏青、王信堂、郭庆北、王亚琦、董梅、马莉、范玉玲、张芊茜、张琎等老师也给予了我们很多帮助和很好的建议,在此一并表示感谢。

北京工业大学的蒋宗礼教授曾倾注了大量心血对本教材的历次版本进行了审阅。山东建筑大学的李盛恩教授也曾对本书进行了全面、认真的修改,并提出了许多宝贵意见。临沂大学的杨波教授、济南大学的曲守宁教授和董吉文教授参与了本书的编写组织与管理工作,并在技术上给予大力支持,在内容上给予诸多指导。郑艳伟博士提出了诸多有价值的建议。在此一并表示衷心的感谢!

本书在编写过程中,参考了大量近年来出版的相关技术资料,吸取了许多同仁和专家的宝贵经验,在此深表谢意!

站在非计算机专业学生的角度,编写一本能够使他们感兴趣且容易学习的教材一直是我们的愿望。但由于编写时间仓促,水平有限,书中难免出现错误或不妥之处,我们诚恳地希望读者和同行批评指正。

作 者第1章 绪论

本章主要介绍与数据库技术有关的基本概念与术语。通过学习,读者可以初步掌握数据库的基本概念、数据模型及其三要素等知识。通过对数据库系统三级模式和两级映像功能的理解,对数据库的系统结构将会有个总体上的认识,进而对数据库有一个宏观的理解和把握。通过对数据库的概念及其系统组成的学习,有助于读者准确定位自己在将来工作中应担任的角色,有利于开展有目的的自主学习。

本章列出的一些管理信息系统的课题是读者进行自主学习的驱动目标,便于在对其中某课题的探索中主动地理解和掌握数据库的知识与技能。

本章导读:

● 数据库与计算思维

● 数据库的基本概念和术语

● 数据库系统概述

● 数据模型及其三要素

● 数据库系统结构与组成1.1 数据库与计算思维1.1.1 计算思维

1.计算思维的定义

2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M.Wing)教授在美国计算机权威期刊Communications of the ACM杂志上首先提出计算思维(Computational Thinking)的定义,认为计算思维是运用计算机科学的基本概念进行问题求解、系统设计、人类行为理解等涵盖计算机科学之广度的一系列思维活动。

为了更容易理解计算思维的含义,又将它进一步解释为:

● 问题转化的思维:通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个已知的问题解决方法;

● 计算方法的思维:是一种并行的、递归的思维,它是既能把代码译成数据又能把数据译成代码的思维,是一种多角度分析问题的思维方式;

● 关注分离的思维:是一种采用抽象和分解把庞杂的任务或巨大复杂的系统进行细化、分解、解决的方法,是基于关注分离的方法(SoC方法);

● 描述方法的思维:是一种选择合适的方式去描述一个问题,或对一个问题的相关方面建模使其

易于处理的思维方法;

● 容错的思维:是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的思维方法;

● 推理的思维:是利用启发式推理寻求解答,即在不确定情况下的规划、学习和调度的思维方法;

● 折中的思维:是利用海量数据来加快计算,在时间和空间之间、处理能力和存储容量之间进行折中的思维方法。

计算思维的本质是抽象(Abstraction)和自动化(Automation)。

计算思维中的抽象完全超越物理的时空观,并完全用符号来表示。其中,数字抽象只是一类特例。与数学和物理科学相比,计算思维中的抽象更为丰富和复杂。数学和物理抽象的最大特点是抛开现实事物的物理、化学和生物学等特性,而仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。

计算思维的自动化是运用计算机科学的方法处理问题,它涵盖计算机科学的一系列思维活动。当我们必须求解一个特定的问题时,首先会问:解决这个问题的难度如何?最佳的解决方法是什么?从计算机科学的理论角度来说,解决问题的难度就是所选择的工具的基本功能,必须考虑的因素包括机器的指令系统、资源约束和操作环境等。

2.计算思维的特性

① 概念化,不是程序化:计算机科学不是计算机编程。像计算机科学家那样去思维意味着远不止能为计算机编程,还要求能够在抽象的多个层次上思维。

② 根本的,不是刻板的技能:根本技能是每一个人为了在现代社会中发挥职能所必须掌握的。刻板技能意味着机械的重复。具有讽刺意味的是:当计算机像人类一样思考之后,思维可就真的变成机械的了。

③ 是人的,不是计算机的思维方式:计算思维是人类求解问题的一条途径,但绝非要使人类像计算机那样思考。计算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情。配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的问题,实现“只有想不到,没有做不到”的境界。

④ 数学和工程思维的互补与融合:计算机科学在本质上源自数学思维,因为像所有的科学一样,其形式化基础建筑于数学之上。计算机科学从本质上又源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机科学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够设计超越物理世界的各种系统。

⑤ 是思想,不是人造物:不只是我们生产的软件硬件等人造物将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动的计算概念,而且面向所有的人和所有地方。

⑥ 面向所有的人,所有地方:当计算思维真正融入人类活动的整体以至不再表现为一种显示哲学时,它就将称为现实。就教学而言,计算思维作为一个问题解决的有效工具,应当在所有地方、所有学校的课堂教学中都得到应用。1.1.2 大学与计算思维

将计算机科学等同于计算机编程是对计算机科学的片面理解。许多人认为计算机科学的基础研究已经完成,剩下的只是工程问题。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要抓住尚未进入大学之前的听众,包括老师、父母和学生,向他们传送下面两个主要信息:

智力上的挑战和引人入胜的科学问题依旧亟待理解和解决。这些问题和解答仅仅受限于我们自己的好奇心和创造力;同时一个人可以主修计算机科学而从事任何行业。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样,一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。

计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课程,面向所有专业,而不仅仅是计算机科学专业的学生。我们应当使进入大学之前的学生接触计算的方法和模型。我们应当设法激发公众对计算机领域科学探索的兴趣。所以,我们应当传播计算机科学的快乐、崇高和力量,致力于使计算思维成为常识。

国外著名高校已经对计算思维的培养有了充分的认识和行动。斯坦福大学在“下个十年计算机课程开设情况”方案中提出了新的核心课程体系,包括计算机数学基础、计算机科学中的概率论、数据结构和算法的理论核心课程,以及包括抽象思维和编程方法、计算机系统与组成、计算机系统和网络原理在内的系统核心课程。强调将计算理论和计算思维的培养纳入课程全过程。卡内基·梅隆大学的计算机科学学院也正在计划对其入门课程系列进行大的修订,这不仅会影响计算机专业学生,也会影响到全校范围内选修计算机科学相关课程的其他学生。修订包括:为计算机专业和非计算机专业开设的入门课程要推广计算思维的原理;针对软件的高可靠性加强高可信软件开发及方法的学习;考虑到未来程序主要利用并行计算实现高性能,着力培养学生这方面的能力。

计算机教学应当培养学生的3种能力:(1)计算机使用能力(ComputerLiteracy)

即使用计算机和应用程序的基本的能力,例如使用Word编辑器、读写文件以及使用浏览器等。现在高中阶段计算机基础教学普及率逐渐提高,这类教学内容大多数学生在高中阶段早已经熟悉,如果在大学阶段再安排这类课程的重复教学,既浪费宝贵的教学资源又影响学生的学习兴趣。对于之前没有接受过计算机教育的大学新生,完全可以利用学校的教学资源自学相关操作。故笔者认为,计算机使用能力的培养应该从大学计算机教学体系中压缩甚至移除。(2)计算机系统认知能力(ComputerFluency)

这是一种较高水平的理解和应用计算机的能力,主要包含在深入了解计算机系统知识和原理的课程中,如计算机网络原理、操作系统、数据库等。这类课程位于计算机教学体系的较高层次,不宜作为计算机基础教学的内容来讲授。(3)计算思维能力(ComputationalThinking)

计算思维反映了计算机学科本质的特征和核心的解决问题的方法。计算思维旨在提高学生的信息素养,培养学生发明和创新的能力及处理计算机问题时应有的思维方法、表达形式和行为习惯。信息素养要求学生能够对获取的各种信息通过自己的思维进行深层次的加工和处理,从而产生新信息。因此,在大学里推进“计算思维”这一基本理念的教育和传播工作是十分必要的,计算思维在一定程度上像是教学生“怎么像计算机科学家一样思维”,这应当作为计算机基础教学的主要任务。1.1.3 数据库与计算思维

1.抽象和自动化

抽象是精确表达问题和建模的方法,也是计算思维的一个重要本质。数据库中的很多概念和方法都体现了抽象的思想,例如数据模型、规范化理论、事务管理等。数据模型是数据库中最基本的概念之一,其本身就表达了对现实世界的抽象,并且这种抽象是分层次、逐步抽象的过程。当利用数据模型去抽象、表达现实世界时,先从人的认识出发,形成信息世界,建立概念模型;再逐步进入计算机系统,形成数据世界。在数据世界中又进一步分层,先从程序员和用户的角度抽象,建立数据的逻辑模型;再从计算机实现的角度抽象,建立数据的物理模型。目前作为数据库课程讲授的主要内容的关系数据库就采用关系抽象表达了现实世界中的事物以及事物之间的各种联系。关系可以进一步抽象为集合论中的集合,形式化描述为笛卡儿乘积的子集。再如,在数据库设计阶段,概念设计首先就是进行数据抽象,经常采用的是聚集和概括的数据抽象方法。在教学过程中,启发学生体会抽象的思想和方法,学习运用抽象表达需求并建模,发现问题的本质和其中蕴含的规律,并逐渐掌握抽象这个工具。以上抽象思维的结果需要在计算机上实现,从而体现了自动化这个本质,也是将理论成果应用于技术实践的过程。

自动化隐含着需要某类计算机(可以是机器或人,或两者的组合)去解释抽象。数据库标准语言SQL可解决各种数据库数据操作在计算机上的实现问题;在用SQL实现用户要求时,结合计算思维的约简、嵌入、转化等方法,把复杂的问题转换为易于解决的问题加以实现。例如,在讲解带有全称量词的查询中,重点说明将全称量词转化为对存在量词的否定之否定,以及用多层嵌套查询来实现的思路和方法。此外,对抽象的关系模型的自动化采用了简单的表结构去表达同一类事物,用对表中数据上定义的增、删、改、查等操作实现对数据的访问。由于现实世界中事物客观存在并满足一定的条件,为了保证自动化的正确性,通过完整性约束限制数据的取值,并进一步把表的建立和完整性约束,以及对数据的操作通过SQL语言建立程序并由计算机执行,从而建立真实的物理数据库。在讲解数据模型这个概念时,从现实世界出发,阐述分层次的抽象方法形成各级数据模型,再到采用关系模型,并通过SQL语言自动化实现这一完整的剖析过程,既清楚地说明了数据模型的概念及其作用,又逐步引导学生学习体会了抽象和自动化的方法,从而领会计算思维的本质。

2.关注点分离

关注点分离是控制和解决复杂问题的一种思维方法,即先将复杂问题进行合理的分解,再分别研究问题的不同侧面(关注点),最后综合得到整体的解决方案。在计算机科学中的典型表现即是分而治之。在数据库设计、庞杂的数据管理和数据库应用开发中,采用的就是分而治之的思想。数据库设计采用软件工程的思想,自顶向下将设计任务划分为多个阶段,每个阶段有各自相对独立的任务,相邻阶段又互相联系、互相承接,共同完成整个设计任务;面对复杂的数据管理和维护任务,也进一步分解为数据恢复、并发控制、数据完整性和安全性的保护、数据库的运行维护等多个子任务,由不同的子系统负责,并相互协作保护数据在运行过程中的正确性和有效性;在进行基于数据库的应用开发中,模块化是最常用的最有代表性的一个分解方法。这些数据库的知识点都充分体现了计算思维的方法。

3.保护、冗余、容错、纠错和恢复

按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复是计算思维的一个重要方法,这在数据库中有最直接的体现。数据库管理系统就是通过预防、保护、冗余、容错、纠错等方式实现对海量数据的管理和保护。为了预防各种可能的故障造成数据丢失,数据库引入了恢复机制,通过冗余技术建立后备副本和日志或采用远程备份;为了预防泄露和破坏数据,数据库引入安全机制,通过用户身份鉴别、存取控制、审计等一系列机制保护数据的安全性;为了纠正数据库中死锁带来的问题,数据库引入死锁的检测机制以及时发现问题并加以处理;为了提高数据的访问速度,允许用户按需存储必要的冗余数据。数据库管理系统对数据的保护全面体现了计算思维的保护、冗余、容错、纠错和恢复的思想。

4.利用启发式寻求解答

数据查询是数据库及其应用中最常见的操作,也是其他数据操作的基础,其速度直接影响应用的效率。对于一个查询可以有多种执行计划,执行效率差别很大,有时甚至相差几个数量级。因此,数据库管理系统需要对操作进行优化。优化则基于启发式规则形成各种优化算法。在数据库的物理设计中也常使用启发式的规则来指导存取方式和存取路径的选择。在这些内容的教学中引入启发式方法,可启发学生学习利用启发式规则和推理来寻求更好的解答,理解计算思维的思想。

5.折中

数据库在对海量数据进行管理的技术中处处体现了时间和空间之间、处理能力和存储容量之间施行折中的思维方法。例如,为了满足应用的实时性要求,对数据查询时可以通过建立索引来提高数据访问速度;但建立索引需要存储实际数据,占用一定的存储空间,并且索引需要维护。为了解决应用的数据冗余和操作异常问题,常需对数据关系进行规范化。规范化级别越高,数据冗余越小,占用的存储空间越小;但规范化后的表被分解为多个小表,查询时需要多个表之间的连接,会增加数据的查询时间。对数据施加封锁时,封锁的粒度越小,并发性越高,事务的处理速度越快,但系统代价越高;而封锁的粒度越大,系统处理代价越小,但事务之间的并发程度降低,事务的等待时间延长。这些都是典型的折中思想,体现了计算思维的理念。

要牢固地掌握计算思维方法,仅靠课堂教学容易陷入似懂非懂、纸上谈兵的境地。实战是提高实践能力、积累经验、学懂计算思维方式的必需之策。在实践环节,重点锻炼学生对计算思维方法的运用、探索解决实际问题的过程,是培养计算思维方法能力的有效途径。1.2 数据库系统概述

自从第一台计算机面世以来,计算机在生产、生活中的应用发生了很大变化。从20世纪50年代开始,计算机的应用领域由科学计算逐渐扩展到广义的数据处理的各个领域。到20世纪60年代末,数据库技术作为数据处理的一种新手段迅速发展起来,成为应用最广泛的计算机技术之一,也是计算机信息系统和应用系统的核心技术和重要基础。

数据库的概念最初产生于20世纪50年代,当时美国为了战争的需要,把各种情报集中起来存储在计算机中,被称为Information Base 或Database。在20世纪60年代的软件危机中,数据库技术作为软件技术的分支得到了进一步的发展。

1968年IBM公司推出了层次模型的IMS(Information Management System)数据库系统,1969年美国数据系统语言协会的数据库任务小组(DBTG)发表的系列报告提出了网状模型,1970年IBM研究中心的研究人员发表了关于关系模型的著名论文。这些事件奠定了现代数据库技术的基础。

20世纪70年代和80年代是数据库蓬勃发展的时期,不仅推出了一些网状模型数据库系统和层次模型数据库系统,还围绕关系数据模型进行了大量的研究和开发工作,关系数据库理论和关系模型数据库系统日趋完善。因为关系模型数据库本身具有的优点,它逐渐取代了网状模型数据库和层次模型数据库。到目前为止,关系模型数据库系统仍然是最重要的数据库系统。

20世纪90年代,关系模型数据库技术又有了进一步的改进。由于受到计算机应用领域及其他分支学科的影响,数据库技术与面向对象技术、网络技术等相互渗透,产生了面向对象数据库和网络数据库。进入21世纪后,面向对象数据库和网络数据库技术逐渐成熟并得到了广泛的应用。

近40年来,数据库技术已经经历了3次演变,形成了以数据建模和数据库管理系统为核心,具有较完备的理论基础和广泛的应用领域的成熟技术体系,已成为计算机软件领域的一个重要分支。通常,人们把早期的层次模型数据库和网状模型数据库系统称为第一代数据库系统,把当前流行的关系模型数据库称为第二代数据库系统,把当前正在发展的数据库系统称为第三代数据库系统。

我国有关部委、国防、气象和石油等行业开始使用数据库始于20世纪70年代,而数据库技术得到真正的广泛应用是从20世纪80年代初的DBaseII开始的。尽管DBase系列和XBase系列都不能称为一个完备的关系数据库管理系统,但是它们都支持关系数据模型,使用起来也非常方便,加上该系统是在微型计算机上实现的,一般也能满足中、小规模管理信息系统的需要,所以得到了较广泛的应用,为数据库技术的普及奠定了基础。

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性。20世纪80年代后不仅在大型机上,而且在大多数微型机上也配置了数据库管理系统,使数据库技术得到了更加广泛的应用与普及。无论是小型事务处理、信息处理系统、联机事务处理和联机分析处理,还是一般企业管理和计算机辅助设计和制造(CAD/CAM)及管理信息系统,都应用了数据库技术。数据库技术的应用程度已经成为衡量企业信息化程度的重要标志之一。1.2.1 信息与社会

计算机所处理的数据在计算机中的存储方式与在现实生活中人们所面对的事物是有区别的。人们在现实生活中所面对的所有事物都是能够看得见的、真实存在的,如何把现实中能够“看得见”、“摸得着”的事物变成计算机能够处理的数据,这中间需要一个复杂的转换过程。比如,如何认识、理解、整理、描述和加工现实生活中的这些事物。从数据转化的顺序来说,数据从现实世界进入到数据库需要经历3个阶段,即现实世界阶段、信息世界阶段和机器世界阶段。

现实世界就是人们所生活的客观世界,客观世界存在着形形色色的事物。

虽然现实世界的事物不能被改变,但仍然可以利用这些事物为人类的生活或生产服务,也就是说,可以在掌握和理解这些事物的基础上抽象出一些特殊的、有意义的信息。这些信息与现实世界的客观事物的根本区别就在于它们是经人类抽象和概念化了的、反映在人们心目中的信息,其中只包含人们关心的那部分信息。这些信息就构成了信息世界。

尽管信息世界的信息是经过抽象和概念化了的,但它们仍然是计算机无法识别的,所以要对这些信息重新进行加工和转换,使它们能够被计算机所识别,成为计算机能够处理和操作的符号。这些符号又叫作数据。这些数据构成了机器世界(或称为数据世界)。

对信息社会而言,事物、信息、数据分别对应着现实世界、信息世界和机器世界,它们之间的对应关系如图1-1所示。图1-1 3个世界之间的对应关系

1.现实世界

在现实世界中客观存在着各种运动着的事物,各种事物及事物之间也存在着复杂的联系。不同事物之间存在着不同的特征,这些特征包括静态的和动态的。所有的这些特征就是区别于不同事物的标志。在这些特征中可以抽取出一些有意义的特征来描述不同的事物个体。比如,常选择图书编号、书名、作者、出版社、单价等特征来描述一本书,而描述一名读者的信息常选择读者编号、姓名、班级等特征。利用这些特征,就可以在表征各类不同事物的同时将不同的事物区别开。

世界上的各种事物虽然千差万别,看起来相互独立,但实际上它们之间是互相联系的。因为事物的多样性,事物之间的联系也是多方面的。在应用中,人们只选择那些有意义或感兴趣的联系,而没有必要选择所有的联系。例如,在图书借阅系统中,读者与图书之间可以仅选择“借阅”这种有意义的联系。有时又称这种联系为关联。

2.信息世界

现实世界中的事物及其联系由人们的感观所感知,经过大脑的分析、归纳、抽象形成信息。对这些信息进行记录、整理、归纳和格式化后就构成了信息世界。为了正确直观地反映客观事物及其联系,有必要对所研究的信息世界建立一个抽象的模型,称为信息模型(概念模型)。

在信息世界中,数据库技术涉及以下概念。(1)实体(Entity)

在现实世界客观存在并可以相互区别的事物被抽象为实体。一个实体对应了现实世界中的一个事物。实体可以是具体的人、事、物,如一本书、一件衣服、一次借书、一次服装展示等,可包含很多我们感兴趣的信息,也可以是抽象的概念或联系,如读者与图书的关系(即某位读者借阅某本图书)也可以被抽象为一个实体。(2)实体集(Entity Set)

性质相同的同类实体组成的集合称为实体集。在现实世界中的事物有很多,有一些事物具有被关注的一些共同的特征和性质,它们可以有类似的描述,可以被放在一起进行研究和处理。例如,图书馆的所有图书,当利用图书管理系统进行管理时,这些图书的编号、书名、作者、出版社、单价等就是要关注的特征或性质,把这些图书的上述性质一起研究和处理,则这些图书就构成一个实体集。(3)属性(Attribute)

客观存在的不同的事物具有不同的特性。从客观世界抽象出来的不同实体,也具有其各自不同的特性。

实体所具有的某些特性称为属性。

可以用若干个属性来刻画一个实体。例如,图书具有很多特性,如图书编号、书名、作者、单价、出版社、出版日期等,这些属性组合起来共同表征了一本具体的图书。

也就是说,在信息世界里,人们对某个实体的认识和理解是通过属性来实现的。所以,要正确、全面地描述或者刻画某一个实体,就必须根据不同事物的特征,合理、全面地抽象出不同事物的属性,使人们通过这些属性,就能够对某个事物有一个全面的理解和把握。而且最重要的是,能够通过其中某一个或一些属性把握不同个体之间的本质区别。

3.机器世界

用计算机管理信息,必须对信息进行数字化,即将信息用字符和数字来表示。数字化后的信息称为数据,数据是能够被计算机识别并处理的。

当前多媒体技术的发展使计算机能够识别和处理图形、图像、声音等数据。数字化是信息世界到机器世界转换的关键,为数据管理打下了基础。信息世界的信息在机器世界中以数据形式存储。

机器世界对数据的描述常用到如下4个概念。

① 字段(Field):又叫数据项,它是可以命名的最小信息单位。字段的定义包括字段名(字段的名称)、字段类型(描述该字段的数据类型)、字段长度(限定该字段值的长度)等。

② 记录(Record):字段的有序集合称为记录,一般对应信息世界中一个具体的实体。它是对一个具体对象的描述,如(B002,C程序设计,谭浩强,清华大学出版社,32.5),描述了一本图书编号为B002,书名为C程序设计,作者为谭浩强,清华大学出版社出版,定价为32.5元的图书。

③ 文件(File):同类的记录汇集成文件。文件是描述实体集的。例如,所有图书记录组成了一个图书文件。

④ 关键字(Key):能唯一标识文件中每个记录的字段或字段集。例如,图书的图书编号可以作为图书记录的关键字。如果一个字段不能唯一确定一条记录,则可以用多个字段作为关键字来唯一标识一条记录。例如,读者编号与图书编号可以作为图书借阅记录的关键字。

机器世界和信息世界术语是相互对应的,它们的对应关系见表1-1。

在数据库中,每个概念都有类型(Type,简称型)和值(Value)的区别。例如,“图书”是一个实体的型,而具体的(B003,高等数学,张强壮,高等教育出版社,22.9,2000/10/28)是实体的值。又如,“姓名”是属性的型,而“张三”是属性的值。记录也有记录的型和值。有时在不引起误解的情况下,可以不仔细区别型和值。表1-1 信息世界和机器世界的概念的对应关系

为了理解上的方便,图1-2以图书为例表示了信息在3个世界中的有关概念及其联系。需要特别注意的是,实体与属性、型和值的区别,以及3个世界中各概念的相应关系。图1-2 信息在3个世界中的概念联系1.2.2 数据库的基本概念

1.数据(Data)

数据是在数据库中存储的基本对象,是用来记录现实世界的信息并可以被机器识别的符号。

在计算机领域里,数据这个概念已经不局限于普通意义上的数字了,凡是在计算机中用于描述事物特征的记录都可以称为数据,如文字、图形、图像、声音等。例如,当用书号、书名、单价、作者、出版日期、出版社这几个特征来描述某本书时,(B007,数据结构,严蔚敏,清华大学出版社,28.80,2012/8/1)就是一本书的数据。于是,就可以从这一数据的含义中得到数据库这本书的有关信息。

数据有一定的格式,如规定图书编号一般为长度不超过4位的字符,单价为小数位数为2位的实数。这些格式的规定就是数据的语法,而数据的含义就是数据的语义。通过解释、推理、归纳、分析和综合等,从数据所获得的有意义的内容称为信息。因此,数据是信息存在的一种形式。只有通过解释或处理的数据才能成为有用的信息。

2.数据库(DB,DataBase)

数据库是以一定的组织形式存储在一起的、能为多个用户所共享、相互关联的数据集合。数据库是存储数据的“仓库”,只不过这个仓库存在于计算机的存储设备上。

数据库中的数据是按一定的数据模型来描述、组织和储存的,具有最小冗余度、较高的数据独立性和易扩展性,并可为用户所共享。例如,图书馆可能同时有描述图书的数据(图书编号,书名,单价,作者,出版社,出版日期)和图书借阅数据(读者编号,图书编号,单价,借阅时间,借阅天数)。在这两个数据中,图书编号是重复的,称为冗余数据。在构造数据库时,由于数据可以共享,因此,可以消除数据的冗余,只存储一套数据即可。

3.数据库管理系统(DBMS,Database Management System)

数据库管理系统是以统一的方式管理和维护数据库中数据的一系列软件的集合。

存储在数据库中的数据必须在一定的管理机制下才可以被方便地访问,并能够保证它的完整性、安全性和共享性。这种管理机制的描述加上数据库本身,构成数据库管理系统。数据库管理系统为用户提供了更正式的数据库共享和更高的数据独立性,进一步减少了数据的冗余度,并为用户提供了方便的操作接口。

4.数据库系统(DBS,DataBase System)

数据库系统包括与数据库有关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库的软硬件支撑环境、数据库管理员(DBA)和用户等构成。数据库系统可以用图1-3表示。

DBS是为用户服务的。通常,一个数据库系统有两类用户:程序员和终端用户。程序员用高级语言和数据库语言编写数据库应用程序,应用程序根据需要向DBMS发出数据请求,由DBMS对数据库执行相应的操作。终端用户从终端或客户机上,以交互的方式向系统提出各种操作请求,由DBMS相应执行,访问数据库中的数据。在不引起混淆的情况下,常把数据库系统称为数据库。图1-3 数据库系统1.2.3 数据库系统的特点

自20世纪60年代以来,计算机的应用更加广泛。用于数据管理的规模更为庞大,数据量也急剧膨胀,计算机磁盘技术有了很大的发展,出现了大容量磁盘,在处理方式上,联机实时处理的要求更多。这些变化都促进了数据管理手段的进步,于是,数据库技术应运而生。所以说,数据库技术既以计算机技术的发展为依托,又以数据管理的需求为动力。

数据库系统的一个重要贡献就是应用系统中的所有数据通过将一系列应用需求综合起来,构成一个统一的数据集,独立于应用程序并由DBMS统一管理,实现数据共享。也就是说,数据库的数据不再面向某个应用或某个程序来实现存储与管理,而是面向整个企业或整个应用。这种特点可用图1-4表示。图1-4 数据库系统面向整个应用提供数据服务

数据库技术发展到今天,数据库的技术水平和数据库的应用水平都与过去不可同日而语。但数据库最基本的特征并未改变。概括起来,数据库系统具有如下特点。

1.数据结构化

数据结构化是数据库系统和文件系统的根本区别。

在传统的文件系统中,文件的记录内部是有结构的,但这个结构不为系统所管理。传统文件最简单的形式是等长且同格式的记录集合。例如一个学生人事记录文件,每个记录的格式如图1-5所示。图1-5 学生记录格式实例

其中,前8项是每个学生所共有的,基本上是等长的,而后2项则是不定长的,信息量大小变化较大。如果采用等长的记录进行数据存储,为了建立完整的学生档案文件,每个学生记录的长度必须等于信息量最大的记录的长度,因而会浪费大量的存储空间。所以最好是采用变长记录或主记录与详细记录相结合的形式建立文件。也就是将学生人事记录的前8项作为主记录,后2项作为详细记录,则每个记录的记录格式如图1-6所示,学生张三的记录如图1-7所示。图1-6 主记录-详细记录格式示例图1-7 学生张三的记录

这种数据组织形式为各部分的管理提供了必要的记录,使数据结构化了。这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。

在文件系统中,尽管其记录内部已经有了某些结构,但记录之间没有联系。

实现整体数据的结构化是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

如前所述,不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录。

2.数据的共享性高,冗余度低,容易扩充

数据可以被多个用户、多个应用同时使用。虽然文件系统中的数据也可能被共享,但不能被同时使用。

冗余度是指同一数据被重复存储的程度。在数据库系统中由于数据的结构化,使冗余度尽可能降到最低程度。

由于设计时主要考虑数据结构化,即面向系统,而不是面向某个应用,所以容易扩充。数据库系统可能因为某个应用而产生,但设计时不能只考虑被某个应用所专用。

数据共享和减少冗余还能避免数据之间的不相容性和不一致性。

例如,某人先后在两个部门工作,1986—1990年在甲部门,1990—1996年在乙部门,在写档案材料时,甲部门记录为1986—1990年,由于信息不共享,加之工作疏忽,乙部门写成了1989—1996年,即造成了不相容,两部门之间重复了1年。

例如,某学生名为李萍,由于信息不共享,该生所在的学院输入的姓名为“李萍”,但宿舍管理科输入的姓名为“李平”,即造成了数据的不一致。

由于数据面向整个系统,是带结构的数据,不仅可以被多个应用共享,而且容易增加新的应用,这就使得数据库系统易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当需求改变或增加时,只要重新选取不同的子集或添加一部分数据便可以满足新的需求。

3.数据独立性高

数据独立性是数据库领域中的一个常用概念,包括数据的物理独立性和逻辑独立性。

物理独立性是指当数据的存储结构(或物理结构)改变时,通过DBMS的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。也就是说,数据在磁盘等存储介质上怎样存储由DMBS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构。这样当数据的物理存储改变时,应用程序也不用改变。

逻辑独立性是指用户的应用程序和数据库的逻辑结构是相互独立的,在数据库的逻辑结构发生改变时,用户的程序不需要改变。比如,在学生数据库中,原来存储的字段有(学号,姓名,班级,籍贯)信息,在学生考试后,需要增加“成绩1”、“成绩2”、“成绩3”等字段,虽然数据库的逻辑结构由(学号,姓名,班级,籍贯)改变为(学号,姓名,班级,籍贯,成绩1,成绩2,成绩3),但在学生基本情况的查询中不需要改变应用程序,整个系统仍然正常运行。

数据独立性是由DBMS的二级映像功能来保证的(将在1.4节介绍)。数据库与应用程序是相互独立的,把数据的定义从程序中分离出来,数据的存取由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改量。

4.数据由DBMS统一管理和控制

数据库的数据共享是并发的(Concurrency),也就是多个用户可以同时存取数据库中的数据,甚至可以同时读取数据库中的同一个数据。

为此,DBMS提供以下几个方面的数据控制功能。(1)数据的安全性(Security)保护

数据的安全性是指保护数据,防止不合法的使用对数据造成泄露或破坏。每个用户只能按事先约定,对某些数据以某些方式进行使用和处理。(2)数据的完整性检查

数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或要求数据之间满足一定的关系。

● 正确性:如输入成绩时,应该输入数值,而实际输入了字符,即不正确。

● 有效性:如输入年龄时,应该输入0~150之间的数据,而实际输入了-5,即无效。

● 相容性:如统计成绩时,优、良、中、及格、不及格的百分比之和应为100%,而实际输入数

据加起来大于100%,即不相容。(3)并发控制

当多个用户读取和修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作进行控制和协调。(4)数据库恢复

计算机系统的硬件故障、软件故障、操作员的失误及故意破坏也会影响数据库中数据的正确性,甚至造成数据库中部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的功能,这就是数据库的恢复功能。

综上所述,数据库是长期存储在计算机内的有组织的大量共享数据的集合。它可以供多个用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运行和维护时对数据库进行统一的控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

数据库系统的出现,使信息系统从以简单的数据加工为中心,转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,以及决策的可靠性。

目前,数据库已经成为现代信息系统中不可分离的重要组成部分,具有数百万甚至数十亿字节的信息的数据库已经普遍存在于科学技术、工业、农业、商业、服务业和政府部门的信息系统中。1.2.4 数据库管理系统的功能

一般来说,数据库管理系统的功能主要包括以下6个方面。

1.数据定义

数据定义包括定义构成数据库的模式、存储模式和外模式,各个外模式与模式之间的映射,模式与存储模式之间的映射,有关的约束条件等。例如,为保证数据库中数据具有正确性而定义的完整性规则,以及为保证数据库安全而定义的用户口令和存取权限等。

2.数据操纵

数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。

3.数据库运行管理

对数据库的运行管理是DBMS的核心功能,包括对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护(如索引、数据字典的自动维护)等。所有访问数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性、一致性,以及多用户对数据库的并发使用。

4.数据组织、存储和管理

数据库中需要存放多种数据,如数据字典、用户数据、存取路径等,DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,从而提高存储空间的利用率,提高随机查找、顺序查找、增、删、改等操作的时间效率。

5.数据库的建立和维护

建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。

6.数据通信接口

DBMS需要提供与其他软件系统进行通信定义的功能。例如,提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS文件系统所能够接受的格式,或者接收其他DBMS或文件系统的数据。1.3 数据模型

数据模型是数据库系统的核心和基础,在各种型号的计算机上实现的DBMS都是基于某种数据模型的。

在现实生活中,模型的例子随处可见,一张地图、一座楼的设计图都是具体的模型。这些模型都能很容易使人联想到现实生活中的事物。

人们在对数据库的理论和实践进行研究的基础上提出了各种模型。由于计算机不能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。

数据库系统的主要功能是处理和表示对象和对象之间的联系。这种联系用模型表示就是数据模型,它是人们对现实世界的认识和理解,也是对客观现实的近似描述。在不同的数据库管理系统中,应使用不同的数据模型,但不管采用什么样的模型,都要满足以下基本要求:

● 能按照人们的要求真实地表示和模拟现实世界;

● 容易被人们理解;

● 容易在计算机上实现。

数据模型更多地强调数据库的框架和数据结构形式,而不关心具体数据。

不同的数据模型实际上是提供模型化数据和信息的不同工具,根据模型应用的不同目的,可以将这些数据模型划分为两类,它们分别属于不同的层次。

第一类模型是概念模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计。

第二类模型是数据模型,主要包括网状模型、层次模型、关系模型等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。1.3.1 概念模型

如果直接将现实世界按具体数据模型进行组织,则需要考虑很多因素,设计工作非常复杂,并且效果也不理想,因此需要一种方法,对现实世界的信息进行描述。人们需要通过这种方法把现实世界抽象为信息世界,然后再通过相应的DBMS将信息世界转化为机器世界。在把现实世界抽象为信息世界的过程中,只抽取需要的元素及其关联,这时所形成的模型就是概念模型。在抽象出概念模型后,再把概念模型转换为计算机上某一DBMS支持的数据模型。概念模型不涉及数据组织,也不依赖于数据的组织结构,它只是现实世界到机器世界的一个中间描述形式。

目前,描述概念模型最常用的方法是实体-联系方法(即E-R方法),它是P.P.s.chen于1976年提出的。这种方法由于简单、实用,得到了非常普遍的应用。这种方法使用的工具称作E-R图,人们也把这种描述结果称为E-R模型。

1.实体(Entity)

在E-R图中用矩形表示一个实体,给一类实体取一个名字,叫作实体名(如读者)。在E-R图中,实体名写在矩形框内,如图1-8所示,“读者”就是一个实体。

2.属性(Attribute)

E-R图中实体的属性用椭圆框表示(见图1-8),框内是属性名,并用连线连到相应的实体。一个实体可以具有若干个属性。例如,读者可以有编号、姓名、班级、出生日期等属性,不同的属性值可以确定具体的读者。在图1-9中,可以确定读者编号为R003,姓名为刘美丽,班级为网络1302,出生日期为1994/2/16的读者。

与属性相关的概念有以下几个。(1)码(Key)

唯一标识实体的属性集称为码。例如,读者的编号就是一个码(当然也可以是其他的属性或属性集)。对不同的学生实体,码值一定是唯一的,不允许出现多个实体具有相同的码值的情况。图1-9中的读者编号就是读者实体的码。由于存在重名现象,所以通常姓名不被选为码。图1-8 学生作为一个实体图1-9 实体的码(2)域(Domain)

实体属性的取值一般受某个条件的约束,如果取值不满足约束条件,则认为是一种非法的值,这个约束条件确定的取值范围称为该属性的域。

例如,学生性别的域是{“男”,“女”},而成绩的取值范围通常会是{0,1,2,…,100}。(3)实体型(Entity Type)

一类实体的实体名及其属性名集合就构成了实体型。在一个数据库中,同一类实体的实体型是相同的,即它们的实体名及实体的属性名都是一样的。为了方便起见,我们认为这些属性的排列顺序也是一致的。

例如,图书(图书编号,书名,作者,出版社,单价,出版日期)就是表示图书实体的实体型。(4)关系模式(Relation Schema)

对关系的描述称为关系模式,一般表示为:

关系名(属性1,属性2,…,属性n)

例如,图书(图书编号,书名,作者,出版社,单价,出版日期)就是描述图书的关系模式。(5)实体集(Entity Set)

具有相同实体型的实体组成的集合称为实体集。

例如,在一个图书管理系统中,一个图书馆的全部图书具有相同的实体型,这些图书实体的集合就是一个实体集。

3.联系

在现实世界中,事物内部和事物之间是有联系的,这些联系在信息世界中包括实体内部的联系和实体之间的联系。实体内部的联系通常指组成实体的各属性之间的联系,实体之间的联系通常指不同实体集之间的联系。

实体之间的联系可以分为以下3类。(1)一对一联系(1∶1)

如果对于实体集A中的每个实体,实体集B中至多有1个(也可以没有)实体与之相联系,反之亦然,则称实体集A与实体集B之间具有一对一的联系,记为1∶1。

例如,在学校里,一个班只有一个班长,而一个班长只能是一个班的班长,所以班级和班长之间就是一对一的联系。(2)一对多联系(1∶n)

如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每个实体,实体集A中至多有1个实体与之联系,则称实体集A与实体集B有一对多联系,记为1∶n。

例如,班级与学生之间的联系。一个班级有若干名学生,而每个学生只在一个班中学习,则班级与学生之间就是一对多的联系。(3)多对多联系(m∶n)

如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多的联系,记为m∶n。

例如,读者与图书之间的联系就是多对多的联系。一本图书同时

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载