数据库系统原理及应用教程 第4版(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-20 11:24:00

点击下载

作者:刘瑞新

出版社:机械工业出版社

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

数据库系统原理及应用教程 第4版

数据库系统原理及应用教程 第4版试读:

前言

本书为“十二五”普通高等教育本科国家级规划教材、普通高等教育“十一五”国家级规划教材。

本书与同类教科书相比,具有两大特色:一是把数据库系统设计和SQL Server 2008关系数据库系统的内容尽可能地安排在前面章节中,比较合理地使其内容沿数据库的设计、定义、操作和控制的方向平滑伸展,符合“理论——实践——提高”这一认识和理解问题的自然规律,使学生容易掌握、教师容易讲解,并有利于尽早地安排上机实验;二是以SQL Server 2008关系数据库系统为案例,介绍数据库使用技术和相关的理论概念。例如,通过它讲述有关数据库建立、查询和维护方法,T-SQL语句特征及表示方法,数据库安全保护及完整性保护等实用技术,使原本较抽象的内容变得生动和形象起来,对提高学生的动手能力非常有利。

本书以满足学生对实用技术和新技术的求知需要为目的,服从创新教育和素质教育的教学理念。本书有两条主线:一条是数据库的基础理论,包括第1章的数据库基础知识、第4章关系数据库、第7章关系数据库理论、第9章新型数据库及数据库技术的发展;另一条是数据库实用技术,包括第2章数据模型与概念模型、第3章数据库系统的设计方法、第5章SQL Server数据库管理系统、第6章数据库的建立与管理、第8章数据库保护技术等。这两条主线相互呼应,相互渗透,理论与技术密切结合。

为使学生更好地理解教材中所讲概念,掌握相关技术,比较容易地切入数据库的深层次问题,书中例题具有典型性和代表性。例题后有解题说明及例题分析,指出该例解题的方法、易错之处和易混概念,起到了对正文概念的解释和补充的作用。其次,书中的例题具有整体性和示范性,在上机实验的操作中,例题可被直接引用、变形引用或参考引用。

本书最后一章是教学标准、实验标准及实验方案,它包括了9个实验,这些实验从第3章起就可以开始进行。本书的课程实验软件是SQL Server 2008 DBMS,该系统是一个功能完备的关系数据库管理系统,应用非常广泛。本书中的实验部分包括了实验目的、实验内容、实验步骤和实验题目等,还提供了实验数据、T-SQL语句和结果,供教学参考。

教材第4版保持了前面版本的总体风格,主要做了三方面的改动:一是改用目前流行的SQL Server 2008为RDBMS,介绍数据库管理新方法和应用新技术;二是将数据库操作语言T-SQL和SSMS(SQL Server 2008的集成管理平台)融为一体,介绍数据库的建立、维护、查询及管理方法,突出了各自功能特色和应用特色;三是重新修订了教学标准、实验标准及实验方案,突出了实验教学环节,更方便教学和自学。

本书适合作为高等院校学生学习数据库的教材,也可作为从事计算机专业的科研人员、工程人员的技术参考书。

本书主要由苗雪兰、刘瑞新、邓宇乔、宋歌编著,参加编写的还有宋会群、邢英俊、卢振标、翁润钡、黄富平、蔡泽锋、全珍林、曹军、胡桂武、谢文亮、刘克纯、徐云林和缪丽丽。本书作者虽然拥有丰富的教学、科研经验,但由于数据库技术发展飞速,所以难免顾此失彼。对于书中存在的疏漏和不妥之处,敬请学界同仁批评指正。编者第1章 数据库系统概述

数据库技术是计算机学科中的一个重要分支,它的应用非常广泛,几乎涉及所有的应用领域。要想掌握好数据库系统技术,必须弄清数据、数据管理、数据库、数据模型和概念模型等专业术语,了解数据库的发展过程和数据库应用系统的特点,分清数据库、数据库管理系统和数据库应用系统三者之间的关系。1.1 数据库系统基本概念

数据库是数据管理的新手段和新技术。使用数据库管理数据,可以保证数据的共享性、安全性和完整性。本节介绍数据库中数据的特点,介绍有关信息、数据、数据管理、数据库、数据管理系统和数据库应用系统等基本概念。1.1.1 信息与数据

对我们每个人来说,“信息”和“数据”是两种非常重要的东西。“信息”可以告诉我们有用的事实和知识,“数据”可以更有效地表示、存储和抽取信息。

1.信息、信息特征及作用

在日常生活中,经常可以听到“信息(Information)”这个名词。什么是信息呢?简单地说,信息就是新的、有用的事实和知识。信息具有实效性、有用性和知识性的特性,它是客观世界的反映。信息具有以下4个基本特征。(1)信息的内容是关于客观事物或思想方面的知识

信息的内容能反映已存在的客观事实,能预测未发生事物的状态,能用于指挥控制事物发展的决策。(2)信息是有用的

信息是人们活动的必需知识,利用信息能够克服工作中的盲目性,增加主动性和科学性,可以把事情办得更好。(3)信息能够在空间和时间上传递

在空间上传递信息称为信息通信,在时间上传递信息称为信息存储。(4)信息需要一定的形式表示

信息与其表现符号不可分离。信息对于人类社会的发展有重要意义。它可以提高人们对事物的认识,减少人们活动的盲目性;信息是社会机体进行活动的纽带,社会的各个组织通过信息网相互了解并协同工作,使整个社会协调发展;社会越发展,信息的作用就越突出;信息又是管理活动的核心,要想管理好事物,就需要掌握更多的信息,并利用信息进行工作。

2.数据、数据与信息的关系及数据的特征

数据(Data)是用于承载信息的物理符号。就是说,数据是信息的一种表现形式,数据通过能书写的编码表示信息。尽管信息有多种表现形式,它可以通过手势、眼神、声音或图形等方式表达,但数据是信息的最佳表现形式。由于数据能够书写,因而它能够被记录、存储和处理,从中挖掘出更深层的信息。

必须指出的是,在许多不严格的情况下,会把“数据”和“信息”两个概念混为一谈,称“数据”为“信息”。其实,数据不等于信息,数据只是信息表达方式中的一种;正确的数据可表达信息,而虚假、错误的数据所表达的是谬误,不是信息。

数据有以下4个特征。(1)数据有“型”和“值”之分

数据的型是指数据的结构,而数据的值是指数据的具体取值。数据的结构指数据的内部构成和对外联系。例如:学生的数据由“学号”“姓名”“年龄”“性别”“所在系”等属性构成,其中“学生”为数据名,“学号”“姓名”等为属性名(或称数据项名);课程也是数据,它由“课程编号”“课程名称”“课时数”等数据项构成;“学生”和“课程”之间有“选课”的联系。“学生”和“课程”数据的内部构成及其相互联系就是学生课程数据的类型,而一个具体取值,如“08936,张三,23,男,计算机系”,就是一个学生数据值。(2)数据受数据类型和取值范围的约束

数据类型是针对不同的应用场合设计的数据约束。根据数据类型不同,数据的表示形式、存储方式及能进行的操作运算各不相同。在使用计算机处理信息时,我们应当对数据类型特别重视,为数据选择合适的类型,千万马虎不得。常见的数据类型有数值型、字符串型、日期型和逻辑型等,它们具有不同的特点和用途。数值型数据就是我们通常所说的算术数据,它能够进行加、减、乘、除等算术运算;字符串型数据是最常用的数据,它可以表示姓名、地址、邮政编码及电话号码等类数据,字符串型数据能够进行查找子串、取子串和连接子串的运算操作;日期型数据适合表达日期和时间信息;逻辑型数据能够表达“真”和“假”、“是”和“否”等逻辑信息。

数据的取值范围亦称数据的值域,例如学生性别的值域是{“男”,“女”}。为数据设置值域是保证数据的有效性、避免数据输入或修改时出现错误的重要措施。(3)数据有定性表示和定量表示之分

我们在表示职工的年龄时,可以用“老”“中”“青”定性表示,也可以用具体岁数定量表示。由于数据的定性表示是带有模糊因素的粗略表示方式,而数据的定量表示是描述事物的精确表示方式,所以在计算机软件设计中,应尽可能采用数据的定量表示方式。(4)数据应具有载体和多种表现形式

数据是客体(即客观物体或概念)属性的记录,它必须有一定的物理载体。当数据记录在纸上时,纸张是数据的载体;当数据记录在计算机的外存上时,保存数据的硬盘、软盘或磁带就是数据的载体。数据具有多种表现形式,它可以用报表、图形、语音及不同的语言符号表示。1.1.2 数据管理与数据库

数据管理是数据处理的基础工作,数据库是数据管理的技术和手段。数据库中的数据具有整体性和共享性。

1.数据处理及分类

围绕着数据所做的工作均称为数据处理(Data Processing)。数据处理是指对数据的收集、组织、整理、加工、存储和传播等工作。数据处理工作分为3类。(1)数据管理

数据管理的主要任务是收集信息,将信息用数据表示并按类别组织保存。数据管理的目的是为各种数据处理快速、正确地提供必要的数据。(2)数据加工

数据加工的主要任务是对数据进行变换、抽取和运算。通过数据加工会得到更有用的数据,以指导或控制人的行为或事物的变化趋势。(3)数据传播

通过数据传播,信息在空间或时间上以各种形式传递。数据传播过程中,数据的结构、性质和内容不改变。数据传播会使更多的人得到信息并且更加理解信息的意义,从而使信息的作用充分发挥出来。

2.数据管理及内容

在数据处理中,最基本的工作是数据管理(Data Management)工作。数据管理是其他数据处理的核心和基础。具体地讲,数据管理工作应包括3项内容。(1)组织和保存数据

数据管理工作要将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期保存。(2)进行数据维护

数据管理工作要根据需要随时进行插入新数据、修改原数据和删除失效数据的操作。(3)提供数据查询和数据统计功能

数据管理工作要提供数据查询和数据统计功能,以便快速地得到需要的正确数据,满足各种使用要求。

数据管理在实际工作中的地位很重要。我们周围有许多人从事各种行政管理工作,这些管人、管财、管物或管事(人、财、物和事统称为事务)的工作实际上就是数据管理工作。在事务管理中,事务(人、财、物和事)以数据的形式被记录和保存。例如在财务管理中,财务科通过对各种账本的记账、对账或查账等实现对财务数据的管理。传统的数据管理方法是人工管理方式,即通过手工记账、算账和保管账的方法实现对各种事务的管理。计算机的发展为科学地进行数据管理提供了先进的技术和手段,目前许多数据管理工作采用计算机方法进行,而数据管理(即信息或事务管理)也成了计算机应用的一个重要分支。

3.数据库及数据库中数据的性质

数据库(Database,DB)是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际上包括两层意思:一方面,数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事物数据,“数据”和“库”两个概念结合成为“数据库”;另一方面,数据库是数据管理的新方法和技术,它能够更合理地组织数据、更方便地维护数据、更严密地控制数据和更有效地利用数据。

在数据库技术出现之前,人们采用“数据文件”方法进行数据管理。数据库方法与文件方法相比,具有以下两个明显的优点。(1)数据库中的数据具有数据整体性

数据库中的数据保持了自身完整的数据结构,该数据结构是从全局观点出发建立的;而文件中的数据一般是不完整的,其数据结构是根据某个局部要求或功能需要建立的。从设计系统的思想方法讲,数据库方法是面向对象的方法,而文件方法是面向过程的方法。数据库要保持数据(即事务)自身的结构完整,强调站在全组织的角度设计数据结构,并以数据库为基础进行功能设计;文件系统(用文件方法建立的数据管理系统)则是站在具体要实现的功能角度上考虑数据结构,按各个具体功能需要分别组织数据,数据完全依附于功能需要。让我们通过下面的简单例子来说明数据库的数据整体性特征的意义。

如果按数据库方法设计一个“职工”的数据,应深入到所有使用“职工”数据的部门进行了解,并将得到的信息综合后,才能得出“职工”的数据结构。例如,要到人事处、财务处、校医院、科研处等每个与“职工”数据相关的地方,了解包括职工的一般情况、工资情况、身体情况及科研情况的综合内容,这种综合内容是“职工”数据的内部组成,它可以用下面结构表示:

职工(职工编号,姓名,性别,出生日期,家庭住址,职务,职称,政治面貌,基本工资,附加工资,身体状况,病史情况,业务特长,主要科研成果)。

如果是按文件方法设计一个“职工”的数据,则需要为人事处、财务处、校医院、科研处等建立不同的“职工”数据文件(职工1,职工2,职工3,职工4),以满足各部门对于“职工”数据的要求。设这些“职工”数据文件的记录结构为:

职工1(职工编号,姓名,性别,出生日期,家庭住址,职务,职称,政治面貌)

职工2(职工编号,姓名,性别,基本工资,附加工资)

职工3(职工编号,姓名,性别,出生日期,身体状况,病史情况)

职工4(职工编号,姓名,性别,出生日期,职务,职称,业务特长,主要科研成果)

从以上例子可以看出,在数据库中使用的“职工”数据全面反映了职工的各个特征,消除了大量的数据冗余;而文件系统中的“职工”数据则是从不同的侧面反映职工的某些特征,尽管它使用了4个不同的数据文件表示“职工”,但无论哪个数据文件都不能完整地表示职工情况。(2)数据库中的数据具有数据共享性

文件系统的数据文件是为满足某一个功能模块的使用要求而建立的,数据与功能程序是一一对应的关系。文件系统中的数据与功能程序之间存在着非常紧密的相互依赖关系,即数据离开相关的功能程序就失去了它存在的价值,功能程序如果没有数据支持就无法工作。数据库中的数据是为众多用户共享其信息而建立的,它已经摆脱了具体程序的限制和制约。数据库的数据共享性表现在两个方面:

1)不同的用户可以按各自的用法使用数据库中的数据。数据库能为用户提供不同的数据视图,以满足个别用户对数据结构、数据命名或约束条件的特殊要求。

2)多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。

数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间的信息通信要求。在上述例子中,数据库中的“职工”数据是为人事处、财务处、校医院、科研处等部门共同使用的,其中人事处可以按“职工1”、财务处可以按“职工2”、校医院可以按“职工3”、科研处可以按“职工4”的结构形式使用数据,它们使用共同的“职工”数据源。“职工”数据不仅能为现有的各个应用功能提供数据,而且由于其自身结构是完整的,它还可以为今后需要实现的功能或别的应用系统提供相应的信息。1.1.3 数据库管理系统与数据库应用系统

数据库管理系统是提供数据库管理的计算机系统软件,数据库应用系统是实现某种具体信息管理功能的计算机应用软件。数据库管理系统为数据库应用系统提供了数据库的定义、存储和查询方法,数据库应用系统通过数据库管理系统管理其数据库。一般来说:数据库应用系统安装在客户端,由专门的开发系统或语言设计;数据库管理系统及其数据库安装在服务器端;它们之间通过数据访问技术进行数据通信。

1.数据库管理系统的功能及作用

数据库管理系统(Database Management System,DBMS)是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。

在数据库管理系统的操作功能中:数据定义功能是指为说明库中的数据情况而进行的建立数据库结构的操作,通过数据定义可以建立起数据库的框架;数据库建立功能是指将大批数据录入到数据库的操作,它使得库中含有需要保存的数据记录;数据库维护功能是指对数据的插入、删除和修改操作,这种操作能满足库中信息变化或更新的需求;数据查询和统计功能是指通过对数据库的访问,为实际应用提供需要的数据。

数据库管理系统不仅要为数据管理提供数据操作功能,还要为数据库提供必要的数据控制功能。数据库管理系统的数据控制主要指对数据安全性和完整性的控制。数据安全性控制是为了保证数据库的数据安全可靠,防止不合法的使用造成数据泄漏和破坏,即避免数据被人偷看、篡改或破坏;数据完整性控制是为了保证数据库中数据的正确、有效和相容,以防止不合语义的错误数据被输入或输出。

数据库管理系统的目标是让用户能够更方便、更有效、更可靠地建立数据库和使用数据库中的信息资源。数据库管理系统不是应用软件,它不能直接用于诸如工资管理、人事管理或资料管理等事务管理工作,但数据库管理系统能够为事务管理提供技术和方法、应用系统的设计平台和设计工具,使相关的事务管理软件很容易设计。也就是说,数据库管理系统是为设计数据管理应用项目提供的计算机软件,利用数据库管理系统设计事务管理系统可以达到事半功倍的效果。我们周围有关的数据库管理系统软件有很多,其中比较著名的系统有Oracle、In-formix、Sybase等,本书后面介绍的SQL Server 2008也是一种著名的数据库管理系统。

2.数据库应用系统

凡使用数据库技术管理数据(信息)的系统都称为数据库应用系统(Database Applica-tion System)。一个数据库应用系统应携带有较大的数据量,否则它就不需要数据库管理。数据库应用系统按其实现的功能可以划分为三部分:数据传递系统、数据处理系统和管理信息系统。数据传递系统只具有信息交换功能,系统工作中不改变信息的结构和状态,例如电话、程控交换系统就是数据传递系统。数据处理系统通过对输入的数据进行转换、加工和提取等一系列操作,从而得出更有价值的新数据,其输出的数据在结构和内容方面与输入的源数据相比有较大的改变。管理信息系统是具有数据的保存、维护和检索等功能的系统,其作用主要是数据管理,我们通常所说的事务管理系统就是典型的管理信息系统。

一个实际的数据库应用系统往往不受这三部分的限制,它会同时具有数据传递、数据管理和数据处理的多种功能,这使我们无法严格地区别它是数据处理系统,还是管理信息系统。对于一个数据库应用系统,由于它拥有巨大的数据量,就必须具有管理信息系统的功能,因而,管理信息系统应该是数据库应用系统的核心。

数据库应用系统的应用非常广泛,它可以用于事务管理、计算机辅助设计、计算机图形分析和处理及人工智能等系统中,即所有数据量大、数据成分复杂的地方,都可以使用数据库技术进行数据管理工作。

3.管理信息系统及特点

管理信息系统(Management Information System,MIS)是计算机应用领域的一个重要分支。管理信息系统帮助人们完成原来需要手工处理的复杂工作,它不仅能明显地提高工作效率,降低劳动强度,而且能提高信息管理的质量和管理水平。因而,管理信息系统不是简单地模拟手工劳动,它要更合理地组织数据,更科学地管理数据,为事务发展提供控制信息,为事务变化提供发展趋势信息和变化规律信息。

管理信息系统有以下两个突出特点。(1)管理信息系统是以数据库技术为基础的

管理信息系统的核心是数据库。管理信息系统的数据存放在数据库中,数据库技术为管理信息系统提供了数据管理的手段,数据库管理系统(DBMS)为管理信息系统提供了系统设计的方法、工具和环境。我们学习数据库及数据库管理系统的基本理论和设计方法,其目的就是要掌握设计数据库的技术,学会设计、开发管理信息系统的方法,以便能够胜任数据库应用系统的设计、管理和应用工作。(2)管理信息系统一般采用功能选单方式控制程序

绝大多数管理信息系统是采用功能选单方式进行程序控制的。在这种程序控制方式中,系统功能按层次结构组织成系统功能选单,用户通过选择功能选项表达需要执行功能的意愿,系统根据用户的选择调用相应的功能模块。选单方式是一种典型的人-机对话程序控制方式,具体工作流程如图1-1所示。图1-1 管理信息系统的系统控制方法示意图

4.管理信息系统的主要功能

尽管管理信息系统是多种多样的,它们所管理的事务对象和操作方法各不相同,但信息管理系统所具有的数据操作功能是非常相似的。一般的信息管理系统都有输入数据、修改数据、删除数据、查询数据、统计数据及打印数据报表功能,其功能结构如图1-2所示。图1-2 管理信息系统的功能模块结构图

5.数据库系统

一个数据库系统应由计算机硬件、数据库、数据库管理系统、数据库应用系统和数据库管理员5部分构成。1.2 数据库系统及发展

数据管理技术经历了手工管理、文件管理和数据库技术3个发展阶段。数据库技术是20世纪60年代末期发展起来的数据管理技术。数据库技术的出现改变了传统的信息管理模式,扩大了信息管理的规模,提高了信息的利用和多重利用能力,缩短了信息传播的过程,实现了世界信息一体化的管理目标。目前,数据库技术仍在日新月异地发展,数据库技术的应用在继续深入。1.2.1 手工管理数据阶段

20世纪50年代以前,计算机主要用于科学计算。从硬件看,外存只有纸带、卡片、磁带,没有直接存取的储存设备;从软件看,那时还没有操作系统,没有管理数据的软件;数据处理方式是批处理。

数据管理在手工管理阶段具有以下4个特点。(1)手工管理阶段不保存大量的数据

在手工管理阶段,由于数据管理的应用刚刚起步,一切都是从头开始,其管理数据系统还是仿照科学计算的模式进行设计。由于数据管理规模小,加上当时的计算机软硬件条件比较差,数据管理中涉及的数据基本不需要、也不允许长期保存。当时的处理方法是在需要时将数据输入,用完就撤走。(2)手工管理阶段没有软件系统对数据进行管理

在手工管理阶段,由于没有专门的软件管理数据,程序员不仅要规定数据的逻辑结构,还要在程序中设计物理结构,即要设计数据的存储结构、存取方法和输入输出方法等。这就造成程序中存取数据的子程序随着数据存储机制的改变而改变的问题,使数据与程序之间不具有相对独立性,给程序的设计和维护都带来了一定的麻烦。(3)手工管理阶段基本上没有“文件”概念

由于手工管理阶段还没有“文件”的概念,所以更谈不上使用“文件”功能。数据管理所涉及的数据组成和数据存储过程必须由程序员自行设计,它给程序设计带来了极大的困难。(4)手工管理阶段是一组数据对应一个程序

手工管理阶段的数据是面向应用的,即使两个应用程序涉及某些相同的数据,也必须各自定义,无法互相利用、互相参照。所以程序与程序之间有大量重复数据。1.2.2 文件系统数据管理的特点和缺陷

从20世纪50年代后期到60年代中期,计算机应用领域拓宽,不仅用于科学计算,还大量用于数据管理。这一阶段的数据管理水平进入到文件系统阶段。在文件系统阶段中,计算机外储存器有了磁盘、磁鼓等直接存取的存储设备;计算机软件的操作系统中已经有了专门的管理数据软件,即所谓的文件系统。文件系统的处理方式不仅有文件批处理,而且还能够联机实时处理。在这种背景下,数据管理的系统规模、管理技术和水平都有了较大幅度的发展。尽管文件管理阶段比手工管理阶段在数据管理手段和管理方法上有很大的改进,但文件管理方法仍然存在着许多缺点。

1.文件管理阶段的数据管理特点

文件管理阶段的数据管理有以下4个特点。(1)管理的数据以文件的形式长久保存在计算机的外存中

在文件管理阶段,由于计算机大量用于数据处理,仅采用临时性或一次性地输入数据根本无法满足使用要求,数据必须长期保留在外存上。在文件系统中,通过数据文件使管理的数据能够长久地保存,并通过对数据文件的存取实现对文件进行查询、修改、插入和删除等常见的数据操作。(2)文件系统有专门的数据管理软件提供有关数据存取、查询及维护功能

在文件系统中,有专门的计算机软件提供数据存取、查询、修改和管理功能,它能够为程序和数据提供存取方法,为数据文件的逻辑结构与存储结构提供转换的方法。这样,程序员在设计程序时可以把精力集中到算法上,而不必过多地考虑细节,同时数据在存储上的改变不一定反映在程序上,使程序的设计和维护工作量大大地减小。(3)文件系统中的数据文件已经具有多样化

由于在文件系统阶段已有了直接存取存储设备,使得许多先进的数据结构能够在文件系统中实现。文件系统中的数据文件不仅有索引文件、链接文件、直接存储文件等多种形式,而且还可以使用倒排文件进行多码检索。(4)文件系统的数据存取是以记录为单位的

文件系统是以文件、记录和数据项的结构组织数据的。文件系统的基本数据存取单位是记录,即文件系统按记录进行读写操作。在文件系统中,只有通过对整条记录的读取操作,才能获得其中数据项的信息,不能直接对记录中的数据项进行数据存取操作。

2.文件系统在数据管理上的主要缺点

文件系统在数据管理上的缺点主要表现在以下两个方面。(1)文件系统的数据冗余度大

由于文件系统采用面向应用的设计思想,系统中的数据文件都是与应用程序相对应的。这样,当不同的应用程序所需要的数据有部分相同时,也必须建立各自的文件,而不能共享相同的数据,因此就造成了数据冗余度(Redundancy)大、浪费存储空间的问题。由于文件系统中相同数据需要重复存储和各自管理,就给数据的修改和维护带来了麻烦和困难,还特别容易造成数据不一致的恶果。(2)文件系统中缺乏数据与程序间的独立性

在文件系统中,由于数据文件之间是孤立的,不能反映现实世界中事物之间的相互联系,使数据间的对外联系无法表达。同时,由于数据文件与应用程序之间缺乏独立性,使得应用系统不容易扩充。

文件系统的这种缺点反映在以下3方面。

1)文件系统中的数据文件是为某一特定应用服务的,数据文件的可重复利用率非常低。因而,要对现有的数据文件增加新的应用,是件非常困难的事情。系统要增加应用就必须增加相应的数据。

2)当数据的逻辑结构改变时,必须修改它的应用程序,同时也要修改文件结构的定义。

3)应用程序的改变,如应用程序所使用的高级语言的变化等,也将影响到文件数据结构的改变。1.2.3 数据库技术的发展历程和研究方向

数据库系统阶段是从20世纪60年代开始的。这一阶段的背景是:计算机用于管理的规模更为庞大,应用越来越广泛,数据量也急剧增加,数据共享的要求也越来越强;出现了内存大、运行速度快的主机和大容量的硬盘;计算机软件价格在上升,硬件价格在下降,为编制和维护计算机软件所需的成本相对增加。对研制数据库系统来说,这种背景既反映了迫切的市场需求,又提供了有利的开发环境。

1.数据库技术的发展历程

数据库技术从20世纪60年代中期开始萌芽,至20世纪60年代末和70年代初,出现了此领域的三大事件。这三件大事标志着数据库技术已发展到成熟阶段,并有了坚实的理论基础。

第一件大事是1969年IBM公司研制、开发了数据库管理系统的商品化软件Information Management System,即IMS系统。IMS系统的数据模型是层次结构的,它是一个层次数据库管理系统,是首例成功的数据库管理系统的商品软件。

第二件大事是美国数据系统语言协会(Conference On Data System Language,CODASYL)下属的数据库任务组(Data Base Task Group,DBTG)对数据库方法进行系统的研究和讨论后,于20世纪60年代末到70年代初提出了若干报告。DBTG报告确定并建立了数据库系统的许多概念、方法和技术。DBTG所提议的方法是基于网状结构的,它是数据库网状模型的基础和典型代表。

第三件大事是1970年IBM公司San Jose研究实验室的研究员E.F.Codd发表了题为《大型共享数据库数据的关系模型》的论文。文中提出了数据库的关系模型,从而开创了数据库关系方法和关系数据理论的研究领域,为关系数据库技术奠定了理论基础。

进入20世纪70年代后,数据库技术又有了很大的发展。其发展表现在以下3方面。(1)出现了许多商品化的数据库管理系统

这些计算机软件大都是基于网状模型和层次模型的数据库方法,DBTG方法及思想对各种数据库系统影响很大。(2)数据库技术成为实现和优化信息系统的基本技术

商用的数据库管理系统的推出和运行使数据库技术日益广泛地应用到企业管理、交通运输、情报检索、军事指挥、政府管理和辅助决策等各个方面,深入到人类生产和生活的各个领域。(3)关系方法的理论研究和软件系统的研制取得了很大成果

1974~1979年间,IBM公司San Jose研究实验室在IBM370系列机上研究关系数据库实验系统System R获得了成功,1981年IBM公司又宣布了具有System R特征的新型数据库软件产品SQL/DS问世。与此同时,美国加州大学柏克利分校也研制了Ingres关系数据库实验系统,并紧跟着推出了商用Ingres系统。这些成果,使关系方法从实验室走向了社会。

在计算机领域中,有人把20世纪70~80年代称为数据库时代。20世纪80年代,几乎所有新开发的系统均是关系系统。同时,微型机的关系数据库管理系统也越来越丰富,性能越来越好,功能越来越强,它的应用遍及各个领域。

2.当代数据库研究的范围和方向

数据库学科的研究范围十分广泛,概括起来,其研究内容大致可以分为下列3方面。(1)数据库管理系统软件的研制

数据库管理系统是数据库应用系统的基础。研制数据库管理系统的基本目标是扩大数据库的功能、提高其性能和可用性,从而提高用户开发数据库应用系统的效率。研制以DBMS(数据库管理系统)为核心的一组相互联系的软件系统已成为当前数据库软件产品的方向,这些软件系统有:数据通信软件、电子表格软件、数据字典和图形系统等。

由于数据库应用领域的不断扩大,数据库技术不仅广泛地应用于事务管理系统,而且已开始应用到工程项目设计、多媒体数据处理、工业自动控制和计算机辅助设计等新的应用领域中。这些新应用领域所处理的数据和管理领域中的数据相比,在数据格式上有极大的区别,在处理方法上也有许多不同之处。因而,研究这些新应用领域中的数据库设计方法是一个新课题,它涉及应用系统的设计方法,还涉及数据库系统的模型实现技术等问题。面向对象数据库系统、扩展数据库系统、多媒体数据库等研究方向,就是基于这些新应用要求而兴起的。(2)数据库设计技术的开发

数据库设计的主要目的是:在数据库管理系统的支持下,按照应用要求为某一部门或组织设计一个良好的、使用方便的、效率较高的数据库及其应用系统。在数据库设计领域中,主要开展的课题是研究数据库系统的设计方法和设计工具,其中包括对数据库的设计方法、设计工具和理论的研究;对数据模型和数据建模方法的研究;对计算机辅助设计数据库的设计方法及其软件系统的研究;对数据库设计规范的研究等。(3)数据库理论的研究

数据库理论的研究主要涉及关系的设计、优化、查询以及系统的安全性和完整性等关系数据理论的内容。近年来,随着计算机网络和人工智能技术的发展,分布式数据库、并行数据库、数据仓库、演绎数据库和知识数据库系统的研制都已成为新的研究方向。1.2.4 数据库系统管理数据的特点

事实上,数据是对现实世界中的各种事物量化、抽象和概括的结果,各种事物之间存在的内在联系决定了其被抽象的数据也存在着联系。当数据库系统具有对数据及其联系的统一管理能力后,数据资源就应当为多种应用需要服务,并为多个用户所共享。数据库系统不仅实现了多用户共享同一数据的功能,并解决了由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。数据库系统要克服文件系统中存在的数据冗余大和数据独立性差等缺陷,使数据冗余度最小,并实现数据与程序之间的独立。

数据库技术是在文件系统的基础上发展起来的新技术,它克服了文件系统的弱点,为用户提供了一种使用方便、功能强大的数据管理手段。数据库技术不仅可以实现对数据集中统一的管理,而且可以使数据的存储和维护不受任何用户的影响。随着数据库技术的发展,它已成为计算机科学领域内的一个独立的学科分支。

数据库系统和文件系统相比具有以下主要特点。

1.数据库系统以数据模型为基础

数据库设计的基础是数据模型。在进行数据库设计时,要站在全局需要的角度抽象和组织数据;要完整地、准确地描述数据自身和数据之间联系的情况;要建立适合整体需要的数据模型。数据库系统是以数据库为基础的,各种应用程序应建立在数据库之上。数据库系统的这种特点决定了它的设计方法,即系统设计时应先设计数据库,再设计功能程序,而不能像文件系统那样,先设计程序,再考虑程序需要的数据。

2.数据库系统的数据冗余度小、数据共享度高

数据冗余度小是指重复的数据少。减少冗余数据可以带来以下优点。

1)数据量小可以节约存储空间,使数据的存储、管理和查询都容易实现。

2)数据冗余度小可以使数据统一,避免产生数据的不一致问题。

3)数据冗余度小便于数据维护,避免数据统计错误。

由于数据库系统是从整体角度上看待和描述数据的,数据不再是面向某个应用,而是面向整个系统,所以数据库中同样的数据不会多次重复出现。这就使得数据库中的数据冗余度小,从而避免了由于数据冗余度大带来的数据冲突问题,也避免了由此产生的数据维护麻烦和数据统计错误问题。

数据库系统通过数据模型和数据控制机制提高数据的共享性。数据共享度高会提高数据的利用率,它使得数据更有价值和更容易、方便地被使用。数据共享度高使得数据库系统具有以下3方面的优点。

1)系统现有用户或程序可以共同享用数据库中的数据。

2)当系统需要扩充时,再开发的新用户或新程序还可以共享原有的数据资源。

3)多用户或多程序可以在同一时刻共同使用同一数据。

3.数据库系统的数据和程序之间具有较高的独立性

由于数据库中的数据定义功能(即描述数据结构和存储方式的功能)和数据管理功能(即实现数据查询、统计和增删改的功能)是由DBMS提供的,所以数据对应用程序的依赖程度大大降低,数据和程序之间具有较高的独立性。数据和程序相互之间的依赖程度低、独立程度大的特性称为数据独立性高。数据独立性高使得程序中不需要有关数据结构和存储方式的描述,从而减轻了程序设计的负担。当数据及结构变化时,如果数据独立性高,程序的维护也会比较容易。

数据库中的数据独立性可以分为两级。(1)数据的物理独立性

数据的物理独立性(Physical Data Independence)是指应用程序对数据存储结构(也称物理结构)的依赖程度。数据物理独立性高是指当数据的物理结构发生变化时(例如当数据文件的组织方式被改变或数据存储位置发生变化时),应用程序不需要修改也可以正常工作。

数据库系统之所以具有数据物理独立性高的特点,是因为数据库管理系统能够提供数据的物理结构与逻辑结构之间的映像(Mapping)或转换功能。正因为数据库系统具有这种数据映像功能,才使得应用程序可以根据数据的逻辑结构进行设计,并且一旦数据的存储结构发生变化,系统可以通过修改其映像来适应其变化。所以数据物理结构的变化不会影响到应用程序的正确执行。(2)数据的逻辑独立性

数据库中的数据逻辑结构分全局逻辑结构和局部逻辑结构两种:数据全局逻辑结构指全系统总体的数据逻辑结构,它是按全系统使用的数据、数据的属性及数据联系来组织的。数据局部逻辑结构是指具体一个用户或程序使用的数据逻辑结构,它是根据用户自己对数据的需求进行组织的。局部逻辑结构中仅涉及与该用户(或程序)相关的数据结构。数据局部逻辑结构与全局逻辑结构之间是不完全统一的,两者间可能会有较大的差异。

数据的逻辑独立性(Logical Data Independence)是指应用程序对数据全局逻辑结构的依赖程度。数据逻辑独立性高是指当数据库系统的数据全局逻辑结构改变时,它们对应的应用程序不需要改变仍可以正常运行。例如当新增加一些数据和联系时,不影响某些局部逻辑结构的性质。

数据库系统之所以具有较高的数据逻辑独立性,是由于它能够提供数据的全局逻辑结构和局部逻辑结构之间的映像和转换功能。正因为数据库系统具有这种数据映像功能,使得数据库可以按数据全局逻辑结构设计,而应用程序可以按数据局部逻辑结构进行设计。这样,既保证了数据库中的数据优化性质,又可使用户按自己的意愿或要求组织数据,数据具有整体性、共享性和方便性。同时,当全局逻辑结构中的部分数据结构改变时,即使那些与变化相关的数据局部逻辑结构受到了影响,也可以通过修改与全局逻辑结构的映像而减小其受影响的程度,使数据局部逻辑结构基本上保持不变。由于数据库系统中的程序是按局部数据逻辑结构进行设计的,并且当全局数据逻辑结构变换时可以使局部数据逻辑结构基本保持不变,所以数据库系统的数据逻辑独立性高。

4.数据库系统通过DBMS进行数据安全性和完整性的控制

数据的安全性控制(Security Control)是指保护数据库,以防止不合法的使用造成的数据泄漏、破坏和更改。数据安全性受到威胁是指出现用户看到了不该看到的数据、修改了无权修改的数据、删除了不能删除的数据等现象。数据安全性被破坏有两种情况。

1)用户有超越自身拥有的数据操作权的行为。例如,非法截取信息或蓄意传播计算机病毒使数据库瘫痪。显然,这种破坏数据的行为是有意的。

2)出现了违背用户操作意愿的结果。例如,由于不懂操作规则或出现计算机硬件故障使数据库不能使用。这种破坏数据的行为是用户无意引起的。

数据库系统通过它的数据保护措施能够防止数据库中的数据被破坏。例如使用用户身份鉴别和数据存取控制等方法,即使数据被破坏,系统也可以进行数据恢复,以确保数据的安全性。

数据的完整性控制(Integrity Control)是指为保证数据的正确性、有效性和相容性,防止不符合语义的数据输入或输出所采用的控制机制。一个具体的数据,总会受到一定的条件约束限制,如果数据不满足其条件,它就是不合语义的数据或是不合理的数据。这些约束条件可以是数据值自身的约束,也可以是数据结构的约束。

数据库系统的完整性控制包括两项内容:一是提供进行数据完整性定义的方法,用户要利用其方法定义数据应满足的完整性条件;二是提供进行检验数据完整性的功能,特别是在数据输入和输出时,系统应自动检查其是否符合已定义的完整性条件,以避免错误的数据进入到数据库或从数据库中流出,造成不良的后果。数据完整性的高低是决定数据库中数据的可靠程度和可信程度的重要因素。

数据库的数据控制机制还包括数据的并发控制和数据恢复两项内容。数据的并发控制是指排除由于数据共享,即用户并行使用数据库中的数据时,所造成的数据不完整和系统运行错误问题。数据恢复是通过记录数据库运行的日志文件和定期做数据备份工作,保证数据在受到破坏时,能够及时使数据库恢复到正确状态。

5.数据库中数据的最小存取单位是数据项

在文件系统中,由于数据的最小存取单位是记录,结果给使用及数据操作带来许多不便。数据库系统改善了其不足之处,它的最小数据存取单位是数据项,即使用时可以按数据项或数据项组存取数据,也可以按记录或记录组存取数据。由于数据库中数据的最小存取单位是数据项,使系统在进行查询、统计、修改及数据再组合等操作时,能以数据项为单位进行条件表达和数据存取处理,给系统带来了高效性、灵活性和方便性。1.3 数据库系统的结构

数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统。一个数据库系统应包括计算机硬件、数据库、数据库管理系统、应用程序系统及数据库管理员。本节介绍数据库系统的组成结构、数据库管理系统的功能及数据库的数据模型结构。1.3.1 数据库系统的体系结构

数据库系统由支持系统的计算机硬件设备、数据库及相关的计算机软件系统、开发管理数据库系统的人员三部分组成。简单地说,数据库系统包括硬件、软件和人员。

1.数据库系统需要的硬件资源及对硬件的要求

由于数据库系统建立在计算机硬件基础之上,它在必需的硬件资源支持下才能工作。因而系统的计算机设备配制情况是影响数据库运行的重要因素。支持数据库系统的计算机硬件资源包括计算机(服务器及客户机)、数据通信设备(计算机网络和多用户数据传输设备)及其他外围设备(特殊的数据输入输出设备,比如图形扫描仪、大屏幕的显示器及激光打印机)。

数据库系统数据量大、数据结构复杂、软件内容多,因而要求其硬件设备能够快速处理它的数据。这就需要硬件的数据存储容量大、数据处理速度和数据输入输出速度快。在进行数据库系统的硬件配置时,应注意以下3方面的问题。(1)计算机内存要尽量大

由于数据库系统的软件构成复杂,它包括操作系统、数据库管理系统、应用程序及数据库,工作时它们都需要一定的内存作为程序工作区或数据缓冲区。所以,数据库系统与其他计算机系统相比需要更多的内存支持。计算机内存的大小对数据库系统性能的影响是非常明显的,内存大就可以建立较多较大的程序工作区或数据缓冲区,以管理更多的数据文件和控制更多的程序过程,进行比较复杂的数据管理和更快地进行数据操作。每种数据库系统对计算机内存都有最低要求,如果计算机内存达不到其最低要求,系统将不能正常工作。(2)计算机外存也要尽量大

由于数据库中的数据量大和软件种类多,它必然需要较大的外存空间来存储其数据文件和程序文件。计算机外存主要有软磁盘、磁带和硬盘,其中硬盘是最主要的外存设备。数据库系统要求硬盘的数据容量尽量大些。硬盘大有以下3个优点:①可以为数据文件和数据库软件提供足够的空间,满足数据和程序的存储需要。②可以为系统的临时文件提供存储空间,保证系统能正常运行。③数据搜索时间会缩短,从而加快数据存取速度。(3)计算机的数据传输速度要快

由于数据库的数据量大而操作复杂度不大,数据库工作时需要经常进行内、外存的交换操作,这就要求计算机不仅有较强的通道能力,而且数据存取和数据交换的速度要快。虽然计算机的运行速度由CPU计算速度和数据I/O的传输速度两者决定,但是对于数据库系统来说,加快数据I/O的传输速度是提高运行速度的关键,数据传输速度是数据库系统效率的重要指标。

2.数据库系统的软件组成

数据库系统体系结构中的硬件及软件关系如图1-3所示。

数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言编译系统、数据库应用开发系统及工具、数据库应用系统和数据库,它们的作用如下所述。(1)操作系统图1-3 数据库系统的系统结构

操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。(2)数据库管理系统和主语言系统

数据库管理系统(DBMS)是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言编译系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。由于数据库的应用很广泛,它涉及的领域很多,其功能DBMS不可能全部提供。因而,应用系统的设计与实现,需要DBMS和主语言编译系统配合才能完成。

这样做有3个好处:首先,它使得DBMS只需要考虑如何把有关数据管理和控制的功能做好而不需考虑其他功能,可使其操作便利、功能更好;其次,可使应用系统根据使用要求自由地选择主语言(常用的主语言有C、COBOL、PL/I、FORTRAN等),给用户带来了极大的灵活性;最后,由于DBMS可以与多种语言配合使用,等于使这些主语言都具有了数据库管理功能,或使DBMS具有其主语言的功能,这显然拓宽了数据库及主语言的应用领域,使它们能够发挥更大的作用。(3)数据库应用开发工具软件

数据库应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第4代计算机语言等各种软件工具,如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。(4)数据库应用系统及数据库

数据库应用系统包括为特定应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。数据库应用系统涉及各个方面,例如信息管理系统、人工智能、计算机控制和计算机图形处理等。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。

3.数据库系统的人员组成及数据库管理员的职责

数据库系统的人员由软件开发人员、软件使用人员及软件管理人员组成。软件开发人员包括系统分析员、系统设计员及程序设计员,他们主要负责数据库系统的开发设计工作;软件使用人员即数据库最终用户,他们利用功能选单、表格及图形用户界面等实现数据查询及数据管理工作;软件管理人员称为数据库管理员(Data Base Administrator,DBA),他们负责全面地管理和控制数据库系统。数据库管理员(DBA)的职责如下。(1)数据库管理员应参与数据库和应用系统的设计

数据库管理员只有参与数据库及应用程序的设计,才能对数据库结构及程序设计方法了解得更清楚,为以后的管理工作打下基础。同时,由于数据库管理员是用户,他们对系统应用的现实世界非常了解,能够提出更合理的要求和建议,所以有数据库管理员参与系统及数据库的设计,可以使其设计更合理。(2)数据库管理员应参与决定数据库的存储结构和存取策略的工作

数据库管理员要综合各用户的应用要求,和数据库设计员共同决定数据的存储结构和存取策略,使数据的存储空间利用得更合理,存取效率更高。(3)数据库管理员要负责定义数据的安全性要求和完整性条件

数据库管理员的重要职责是保证数据库的安全性和数据完整性。数据库管理员要负责定义各用户的数据使用权限、数据保密级别和数据完整性的约束条件。(4)数据库管理员负责监视和控制数据库系统的运行,负责系统的维护和数据恢复

数据库管理员要负责监视系统的运行,及时处理系统运行过程中出现的问题,排除系统故障,保证系统能够正常工作。在日常工作中,数据库管理员要负责记录数据库使用的“日志文件”,通过日志文件了解数据库的使用和更改情况。数据库管理员还要定期对数据作“备份”,为以后的数据使用(即处理历史数据)和数据恢复做准备。当系统由于故障而造成数据库破坏时,数据库管理员要根据日志文件和数据备份进行数据恢复工作,使数据库能在最短的时间恢复到正确状态。(5)数据库管理员负责数据库的改进和重组

数据库管理员负责监视和分析系统的性能,使系统的空间利用率和处理效率总是处于较高的水平。当发现系统出现问题或由于长期的数据插入、删除操作造成系统性能降低时,数据库管理员要按一定策略对数据库进行改造或重组工作。当数据库的数据模型发生变化时,系统的改造工作也由数据库管理员负责进行。1.3.2 数据库管理系统的功能结构

数据库管理系统是提供建立、管理、维护和控制数据库功能的一组计算机软件。数据库管理系统的目标是使用户能够科学地组织和存储数据,能够从数据库中高效地获得需要的数据,能够方便地处理数据。数据库管理系统能够提供以下4个方面的主要功能。

1.数据定义功能

数据库管理系统能够提供数据定义语言(Data Description Language,DDL),并提供相应的建库机制。用户利用DDL可以方便地建立数据库。当需要时,用户用DDL描述系统的数据及结构情况,数据库管理系统能够根据其描述执行建库操作。

2.数据操纵功能

实现数据的插入、修改、删除、查询、统计等数据存取操作的功能称为数据操纵功能。数据操纵功能是数据库的基本操作功能,数据库管理系统通过提供数据操纵语言(Data Ma-nipulation Language,DML)实现数据操纵功能。DML有以下两种。(1)宿主型DML

宿主型DML只能嵌入到其他高级语言中使用,不能单独使用。被DML嵌入的计算机语言称为主语言,常用的主语言有C、FORTRAN或COBOL。在由宿主型DML和主语言混合设计的程序中,DML语句只完成有关数据库的数据存取操作功能,而其他功能由主语言的语句完成。(2)自主型DML

既可以嵌入到主语言中使用,也可以单独使用的DML称为自主型DML。自主型DML可以作为交互式命令与用户对话,执行其独立的单条语句功能。自主型DML还为语言的学习提供了方便,使读者能更了解语句的含义及正确的表达方法。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载