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


发布时间:2021-08-03 08:15:46

点击下载

作者:齐晖,潘惠勇

出版社:中国铁道出版社有限公司

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

数据库技术及应用

数据库技术及应用试读:

前言

由于数据库技术在国民经济、科技文化和国防建设等诸多领域的广泛应用,基于数据库技术和数据库管理系统的应用软件的研发和使用已经成为各专业领域和管理人员必备的基础。因此,“数据库技术及应用”课程已经成为高等院校理工、经管、文科三大类学生的计算机基础教学核心课程和必修课程。

Access是Microsoft Office系列应用软件之一,是一个功能强大且易于实现和使用的关系型数据库管理系统,既具有典型的Windows应用程序风格,也具备可视化及面向对象程序设计的特点。Access能有效地组织、管理和共享数据库的数据信息,把数据库和网络结合起来,为用户在网络中共享信息奠定了基础。Access可以直接开发一个小型的数据库管理系统,也可以作为一个中小型管理信息系统的数据库部分,还可以作为一个商务网站的后台数据库部分,Access有着相当广泛的用户群。目前已有大量的基于Access数据库的应用在Internet上发布,并且其数量呈快速上升之势。同时,Access概念清晰、简单易用、功能完备,尤其适合数据库技术的初学者。

本书是根据教育部高等学校计算机基础课程教学指导委员会制定的《高等学校计算机基本教学发展战略研究暨计算机基础课程教学基本要求》(2009版)、新的《全国计算机等级考试(NCRE)二级Access数据库程序设计考试大纲》的要求精心组织编写而成的。

本书考虑到学生计算机实际的操作技能和学习特点,以应用为目的,以案例为引导,通过对大量实例的分析和讲解,采用图文并茂、通俗易懂的形式,以Access 2010为背景,循序渐进地介绍数据库系统的基本知识;Access数据库的建立、使用、维护和管理等;结构化查询语言SQL的使用;VBA数据库编程基础;一个小型数据库应用系统开发实例等内容。在本书编写和组织上力求避免术语、概念的枯燥讲解和操作的简单堆砌,学生只要参照书中提供的实例进行系统学习,并配合一定的上机实际操作,就能很快掌握Access数据库管理系统的基本功能和操作,掌握面向应用开发的系统知识,并能够学以致用地完成简单实用的小型数据库管理系统的开发。

本书注重理论联系实际,条理清晰,概念明确,注重实际操作技能的训练。理论部分的讲解以“学籍管理”的设计为案例展开,全书的最后以“学籍管理”系统的开发为例,详细地介绍了如何构建一个小型数据库应用系统。书中配有大量的习题,包括选择题、判断题、填空题、简答题以及上机操作题等,供学生复习和上机练习使用。在上机练习时,可以举一反三,以达到熟练操作的目的。

本书共分11章,从各个方面介绍Access 2010的功能。

第1章主要介绍数据库技术的发展、数据库的基本概念、关系数据库系统、数据库设计基础等内容,通过这些内容使读者掌握数据库的基本概念、理论和设计方法。

第2章介绍Access 2010的特点、界面;Access的6种对象,数据库的创建和基本操作。使读者对Access 2010从宏观上有一定的了解。

第3章、第4章、第5章、第6章、第7章重点介绍Access数据表的建立,创建和使用查询,窗体、报表的建立,宏等内容,这些是Access中最基本的内容。

第8章通过典型的实例介绍Access的编程语言VBA,内容主要有模块的概念、模块的建立、VBA程序设计的基本方法、过程的建立、调用与参数传递、事件驱动的程序设计方法、DoCmd对象以及VBA程序调试和错误处理方法等。这部分是本书的难点,也是开发应用程序的基础。

第9章介绍如何使用Access 2010提供的安全功能来实现数据库的安全操作和数据库的导入/导出功能,以及利用SharePoint和Access 2010对数据库进行发布和协作管理数据库。

第10章主要介绍VBA数据库编程,内容包括VBA提供的3种数据库访问接口;DAO的引用方法、DAO的模型层次结构和访问数据库的步骤;ADO的引用方法、ADO的模型层次结构和主要ADO对象的使用。

第11章介绍数据库管理系统开发的一般流程,并以“学籍管理”系统的建立,介绍如何将数据库的各个对象有机地联系起来,构建一个小型数据库应用系统。

本书参考学时不得低于60学时,其中32学时理论教学,28学时上机实践。本书可作为高等学校Access数据库技术及应用课程的教材,也可作为Access数据库应用系统开发人员的参考书或者自学者的自学教材。

本书由中原工学院计算机学院基础教学部的9位教师集体写作完成,他们是杨要科、吴婷、金秋、马宗梅、郭飞、齐晖、王琳、程传鹏、潘惠勇。齐晖、潘惠勇任主编,吴婷、王琳、郭飞任副主编。全书由齐晖、潘惠勇审阅并统稿。

本书中所有的例题和实例均在Access 2010中运行通过。为了便于教师使用本书和学生学习,本书配有电子教案、MOOC网站,以及本书案例中的素材,有需要者请登录http://mooc1.zut.edu.cn/course/87180281.html下载(课程资源下载如有问题,请联系我们:qihui63@126.com)。

由于编者学识水平所限,书中难免有不妥之处,望读者不吝指正。编者2017年11月第1章数据库基础概述

自1946年计算机诞生以来,其主要应用是科学计算,自20世纪60年代以来,数据库技术也作为计算机数据处理的一门新技术发展了起来,它是计算机科学技术中发展最快的领域之一,经过50多年的发展形成了较为完整的理论体系,已被广泛应用于教学管理、科学研究、企业管理和社会服务等各个领域,是最先进的数据管理技术。本章主要介绍数据库中的基本概念、关系数据库、数据库设计等内容。

教学目标

● 了解数据管理的相关概念和含义、数据模型的主要类型与数据库的关系。

● 熟悉数据、数据库及数据库管理系统的含义和数据库设计的原则、步骤及过程。

● 掌握关系数据库及相关的概念、关系运算和关系的完整性。1.1数据库基本概念

自从计算机被发明之后,人类社会就进入了高速发展阶段,大量的信息堆积在人们面前。此时,如何组织存放这些信息,如何在需要时快速检索出信息,以及如何让所有用户共享这些信息就成为一个大问题。数据库技术就是在这种背景下诞生的,这也是使用数据库的原因。当今,世界上每一个人的生活几乎都离不开数据库。如果没有数据库,很多事情几乎无法解决。例如,没有学校的图书管理系统,借书会是一个很麻烦的事情,更不用说网上查询图书信息了;没有教务管理系统,学生要查询自己的成绩也不是很方便;没有计费系统,人们也就不能随心所欲地拨打手机;没有数据库的支持,网络搜索引擎就无法继续工作,网上购物就更不用想了。可见,数据库应用已经遍布了人们生活的各个角落。1.1.1 计算机数据管理的发展

现代意义上的数据库系统出现于20世纪60年代后期,伴随着计算机硬件系统的飞速发展、价格的逐步下降、操作系统性能的日益提高以及1970年前后关系型数据模型的出现,数据库技术正广泛应用于各个领域,可以说我们已经无法离开数据库系统。

1.数据和信息

在数据处理中,最常用到的基本概念就是数据和信息。

数据是指描述事物的符号记录。数据不仅仅是指传统意义的由0~9组成的数字,而是所有可以输入到计算机中并能被计算机处理的符号的总称。

在计算机中可表示数据的种类很多,除了数字以外,文字、图形、图像、声音都是数据。例如学生的基本情况、超市商品的价格、员工的照片、人的指纹、播音员朗诵的佳作、气象卫星云图等都可以是数据。

信息是指以数据为载体的对客观世界实际存在的事物、事件和概念的抽象反映。具体说是一种被加工为特定形式的数据,是通过人的感官(眼、耳、鼻、舌、身)或各种仪器仪表和传感器等感知出来并经过加工而形成的反映现实世界中事物的数据。

例如,在学生档案中,记录了学生的姓名、性别、年龄、出生日期、籍贯、所在系别、入学时间,那么下面的描述:(李军,男,21,1993,四川,外语系,2012)就是数据。对于这条学生记录,所表述的信息为:

李军是个大学生,1993年出生,男,四川人,2012年考入外语系。

数据是数据库的基本组成内容,是对客观世界所存在的事物的一种表征,人们总是尽可能地收集各种各样的数据,然后对其进行加工处理,从中抽取并推导出有价值的信息,作为指导日常工作和辅助决策的依据。

数据和信息是两个互相联系、互相依赖但又互相区别的概念。数据是用来记录信息的可识别的符号,是信息的具体表现形式。数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。只有经过提炼和抽象之后,具有使用价值的数据才能成为信息。

2.数据处理和数据管理

数据要经过处理才能变为信息,这种将数据转换成信息的过程称为数据处理。数据处理具体是指对信息进行收集、整理、存储、加工及传播等一系列活动的总和。数据处理的目的是从大量的、杂乱无章的甚至是难于理解的原始数据中,提炼、抽取出人们所需要的有价值、有意义的数据(信息),作为科学决策的依据。

可用“信息=数据+数据处理”简单地表示信息、数据与数据处理的关系。

数据是原料,是输入,而信息是产出,是输出结果。数据处理的真正含义是为了产生信息而处理数据。数据、数据处理、信息的关系如图1.1所示。图1.1 数据、数据处理、信息的关系

数据的组织、存储、检查和维护等工作是数据处理的基本环节,这些工作一般统称为数据管理。数据处理的核心是数据管理。数据处理与数据管理是相互联系的,数据管理技术的优劣,将直接影响数据处理的效率。

3.计算机数据管理的发展阶段

计算机在数据管理方面经历了从低级到高级的发展过程,到目前为止,数据管理大致经历了人工管理、文件系统、数据库系统三个阶段。

1)人工管理阶段

这一阶段(20世纪50年代中期以前)计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带,软件只有汇编语言,还没有数据管理方面的软件。数据处理的方式基本上是批处理。这个时期数据管理具有以下几个特点。(1)数据不保存。因为当时计算机主要用于科学计算,对于数据保存的需求尚不迫切。需要时把数据输入内存,运算后将结果输出。数据并不保存在计算机中。(2)没有专用的软件对数据进行管理。在应用程序中,不仅要管理数据的逻辑结构,还要设计其物理结构、存取方法、输入/输出方法等。当存储改变时,应用程序中存取数据的子程序就需随之改变。(3)数据不具有独立性。数据的独立性是指逻辑独立性和物理独立性。当数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化时,必须对应用程序做出相应的修改。(4)数据是面向程序的。一组数据只对应于一个应用程序。即使两个应用程序都涉及某些相同数据,也必须各自定义,无法相互利用。因此,在程序之间有大量的冗余数据。这时期数据与程序的关系如图1.2所示。图1.2 人工管理阶段数据与程序的关系

2)文件系统阶段

这一阶段(20世纪50年代后期到60年代中期)计算机不仅用于科学计算,还用于信息管理。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备;软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门的数据管理软件。这时可以把相关的数据组成一个文件存放在计算机中,在需要时只要提供文件名,计算机就能从文件系统中找出所要的文件,把文件中存储的数据提供给用户进行处理。这个时期数据管理具有以下几个特点。(1)数据以“文件”形式可长期保存在外部存储器的磁盘上。应用程序可对文件进行大量的检索、修改、插入和删除等操作。(2)文件组织已多样化。有索引文件、顺序存取文件和直接存取文件等。因而对文件中的记录可顺序访问,也可随机访问,便于存储和查找数据。(3)数据与程序间有一定的独立性。数据由专门的软件即文件系统进行管理,程序和数据间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行。(4)对数据的操作以记录为单位。这是由于文件中只存储数据,不存储文件记录的结构描述信息。文件的建立、存取、查询、插入、删除、修改等所有操作,都要用程序来实现。

在文件系统阶段,仍有很多缺点。主要表现在以下几个方面。(1)数据冗余度大。由于各数据文件之间缺乏有机的联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储,数据不能共享。(2)数据独立性低。数据和程序相互依赖,一旦改变数据的逻辑结构,必须修改相应的应用程序。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也需修改数据结构。(3)数据一致性差。由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致。

这样,文件系统仍然是一个不具有弹性的无结构的数据集合。文件之间是孤立的、不能反映现实世界中事物之间的内在联系。这时期数据与程序的关系如图1.3所示。图1.3 文件系统阶段数据与程序的关系

3)数据库系统阶段

数据管理技术进入数据库系统阶段是在20世纪60年代末。由于计算机应用于管理的规模更加庞大,数据量急剧增加;硬件方面出现了大容量磁盘,使计算机联机存取大量数据成为可能;硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加。文件系统的数据管理方法已无法适应开发应用系统的需要。为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统。这使利用数据库技术管理数据变成了现实。这时期数据管理的特点有以下几方面。(1)数据共享性高、冗余度低。这是数据库系统阶段的最大改进,数据不再面向某个应用程序而是面向整个系统,当前所有用户可同时访问数据库中的数据。这样就减少了不必要的数据冗余,节约了存储空间,同时也避免了数据之间的不相容性与不一致性。(2)数据结构化。即按照某种数据模型,将应用的各种数据组织到一个结构化的数据库中。在数据库中数据的结构化,不仅要考虑某个应用的数据结构,还要考虑整个系统的数据结构,并且还要能够表示出数据之间的有机关联。(3)数据独立性高。数据的独立性是指逻辑独立性和物理独立性。数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。数据的物理独立性是指当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。(4)有统一的数据控制功能。数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。

①数据的安全性控制:防止不合法使用数据造成数据的泄露和破坏,保证数据的安全和机密。例如,系统提供口令检查或其他手段来验证用户身份,防止非法用户使用系统;也可以对数据的存取权限进行限制,只有通过检查后才能执行相应的操作。

②数据的完整性控制:系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。正确性是指数据的合法性,如年龄属于数值型数据,只能包含0,1,…,9,不能包含字母或特殊符号。有效性是指数据是否在其定义的有效范围内,如月份只能用1~12之间的正整数表示。相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别。

③并发控制:防止多用户同时存取或修改数据库时,因相互干扰而提供给用户不正确的数据,并使数据库受到破坏。

④数据恢复:当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

这时期数据与程序之间的关系如图1.4所示。

4.数据库系统的新技术

随着科学技术和数据库系统的发展,从20世纪80年代开始数据库研究又出现了许多新的领域,相继研究出了分布式数据库系统、面向对象数据库系统和网络数据库系统。

1)分布式数据库系统

20世纪80年代,随着数据库技术的广泛应用,并与迅速发展的网络技术相结合,产生了分布式数据库系统。分布式数据库是一个物理上分布在计算机网络的不同结点,但在逻辑上又同属于一个系统的数据集合。在分布式数据库系统中,数据库存储在几台计算机中,这几台计算机之间通过高速网络相互通信,计算机之间没有共享公共的内存或磁盘,系统中每一台计算机称为一个结点。其一般结构如图1.5所示。图1.4 数据库系统阶段数据与程序的关系图1.5 分布式数据库系统

在分布式数据库系统中,应用分为局部应用和全局应用两种。局部应用是指仅操作本地结点上数据库的应用;而全局应用是指需要操作两个或两个以上结点中的数据库的应用。例如,一个银行系统中,有多个分支机构分布在不同的城市,每个分支机构有自己的服务器(结点),用来维护该分支机构的所有账户的数据库。同时有若干客户机,用来完成本地客户的存、取款业务等(局部应用)。分支机构的客户机也可以完成某些全局应用,如不同分支机构中账户之间的转账,就需要同时访问和更新两个结点上的数据库中的数据。不支持全局应用的系统不能称为分布式数据库系统。同时,分布式数据库系统不仅要求数据的物理分布,而且要求这种分布是面向处理、面向应用的。

分布式数据库系统是物理上分散,逻辑上集中的数据库系统,系统中的数据分别存放在计算机网络的不同结点上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用,每个结点也可以通过网络通信子系统执行全局应用。

分布式数据库系统主要有如下几个特点。(1)数据的物理分布性。数据库中的数据分布在计算机网络的不同结点上,而不是集中在一个结点上。因此它不同于通过计算机网络共享的集中式数据库系统。(2)数据的逻辑整体性。分布在计算机网络不同结点上的数据在逻辑上属于同一个系统,因此,它们在逻辑上是相互联系的整体。(3)结点的自主性。每个结点有自己的计算机、数据库(即局部数据库,简称LDB)、数据库管理系统(LDBMS),因而能独立地管理局部数据库。局部数据库中的数据可以供本结点的用户存取(局部应用),也可以供其他结点上的用户存取以供全局应用。

2)面向对象数据库系统

20世纪90年代,许多从事数据库研究的学者把数据库技术和面向对象技术相结合,研究出一种新的数据库系统——面向对象数据库系统(Object Oriented DataBase System,OODBS),以满足新的应用需要。面向对象数据库系统的研究有两种观点,一种是在面向对象程序设计语言中引入数据库技术,另一种是从关系数据库系统自然地引入面向对象技术而进化到具有新功能的结果。现在一般把前一类数据库系统称为面向对象数据库系统(OODBS),后一类称为对象关系数据库系统(Object Relation DataBase System,ORDBS),这两类统称为对象数据库系统。本书主要介绍对象关系数据库系统。

目前,各个关系数据库厂商都在不同程度上扩展了关系模型,推出了符合面向对象数据模型的数据库系统。面向对象的数据模型吸收了面向对象程序设计方法的核心概念和基本思想,用面向对象的观点来描述现实世界的实体。

对象关系数据库系统可定义为在关系数据模型的基础上,提供元组、数组、集合等丰富的数据类型以及处理新的数据类型的能力,并且具有继承性和对象标识等面向对象特点,这样形成的数据模型称为对象关系数据模型。基于对象关系模型的数据库系统称为对象关系数据库系统。所以对象关系数据库系统除了具有原来关系数据库的各种特点外,还具有以下特点。(1)扩充数据类型。以关系数据库和SQL为基础,扩展关系数据模型,增加面向对象的数据类型和特性。新的数据类型可定义为原有类型的子类或超类。新的数据类型定义之后,存放在数据库管理系统中,如同基本数据类型一样,可供所有用户共享。(2)支持复杂对象。OODBS中的基本结构是对象而不是记录,一个对象不仅包括描述它的数据,还包括对它操作的方法。它不仅支持简单的对象,还支持由多种基本数据类型或用户自定义的数据类型构成的复杂对象,支持子类、超类和继承的概念,因而能对现实世界的实体进行自然而直接的模拟,可表示诸如某个对象由“哪些对象组成”,有“什么性质”,处在“什么状态”,具有丰富的语义信息,这是传统数据库所不能比拟的。(3)提供通用的规则系统。规则在数据库管理系统(DataBase Management System,DBMS)及其应用中是十分重要的,在传统的关系数据库管理系统(Relation DataBase Management System,RDBMS)中用触发器来保证数据库的完整性。触发器可以看成规则的一种形式。OODBS支持的规则系统将更加通用,更加灵活。例如,规则中的事件和动作可以是任何的SQL语句,可以使用用户自定义的函数,规则还能够被继承。这就大大增强了OODBS功能,使之具有主动数据库的特性。

面向对象数据库系统的功能要求:①在数据模型方面,引入面向对象的概念,包括对象、类、对象标识、封装、继承、多态性、类层次结构等;②在数据库管理方面,提供与扩展对持久对象、长事务的处理能力以及并发控制、完整性约束等能力;③在数据库界面方面,支持消息传递,提供计算能力完备的数据库语言,解决数据库语言与宿主语言的失配问题,并且数据库语言应具有类似SQL的非过程化的查询功能。

除此之外,还要求兼顾对传统的关系数据的管理能力。

面向对象数据库系统主要研究的问题有对象数据模型、高效的查询语言、并发的事务处理技术、对象的存储管理以及版本管理等。

3)网络数据库系统

随着客户机/服务器结构的出现,使得人们可以最有效地利用计算机资源。在客户机/服务器结构中的服务器又称数据库服务器,主要用于放置数据库管理系统以及存储数据,而客户机则负责应用逻辑与用户界面。它们通过网络互连,当客户机需要访问数据时,向服务器提出某种数据或服务请求,服务器将响应这些请求并把结果或状态信息返回给客户机。通过网络将地理位置分散的、各自具备自主功能的若干台计算机和数据库系统有机地连接起来的,并且采用通信手段实现资源共享的系统称为网络数据库系统。

但是在网络环境中,为了使一个应用程序能访问不同的数据库系统,需要在应用系统和不同的数据库管理系统之间加一层中间件。所谓中间件是网络环境中保证不同的操作系统、通信协议和数据库管理系统之间进行对话、互操作的软件系统。其中涉及数据访问的中间件,就是20世纪90年代提出的开放的数据库连接(Open DataBase Connectivity,ODBC)技术和Java数据库连接(Java DataBase Connectivity,JDBC)技术。使用ODBC和JDBC技术来进行数据库应用程序的设计,可以使应用系统移植性更好,并且能访问不同的数据库系统,共享数据资源。1.1.2 数据库系统

数据库系统(DataBase System,DBS)是指引进数据库技术后的计算机系统,主要包括相应的数据库、数据库管理系统、数据库应用系统、计算机硬件系统、软件系统和用户。

1.数据库

关于数据库(DataBase)的定义,一般认为数据库是长期存储在计算机内、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,可为各种用户共享,并且还具有完善的自我保护能力和数据恢复能力。

数据库是用来存储数据的。数据库中的数据包括两大类,一类是用户数据,如学生数据库中每个学生的信息。另一类是系统数据,如系统中用户的权限、各种统计信息等。

2.数据库管理系统

数据库管理系统(DBMS)位于用户与操作系统之间,是可借助操作系统完成对硬件的访问,并负责数据库存取、维护和管理的系统软件。它是数据库系统的核心组成部分,用户在数据库中的一切操作,包括定义、查询、更新以及各种控制都是通过DBMS进行的。

DBMS的基本功能如下:(1)数据定义功能。在关系数据库管理系统中就是创建数据库、创建表、创建视图和创建索引,定义数据的安全性和数据的完整性约束等。(2)数据操纵功能。实现对数据库的基本操作,包括数据的查询处理,数据的更新(增加、删除、修改)等。(3)数据库的运行管理。主要完成对数据库的控制,包括数据的安全性控制、数据的完整性控制、多用户环境下的并发控制和数据库的恢复,以确保数据正确有效和数据库系统的正常运行。(4)数据库的建立和维护功能。包括数据库的初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。(5)数据通信。DBMS提供与其他软件系统进行通信的功能。它实现用户程序与DBMS之间的通信,通常与操作系统协调完成。

3.数据库应用系统

数据库应用系统(DBAS)是指利用数据库系统资源开发的面向实际应用的软件系统。一个数据库应用系统通常由数据库和应用程序组成。它们都是在数据库管理系统支持下设计和开发出来的。

4.用户

用户是指使用和管理数据库的人,他们可以对数据库进行存储、维护和检索等操作。数据库系统中用户可分为三类。(1)终端用户。终端用户主要是指使用数据库的各级管理人员、工程技术人员等,一般来说,他们是非计算机专业人员。(2)应用程序员。应用程序员负责为终端用户设计和编制应用程序,以便终端用户对数据库进行操作。(3)数据库管理员。数据库管理员(DBA)是指对数据库进行设计、维护和管理的专门人员。

数据库系统的组成结构如图1.6所示。图1.6 数据库系统组成结构图1.1.3 数据模型

模型是对现实世界特征的模拟和抽象。如一组建筑设计沙盘,一架精致的航模飞机等都是具体的模型。数据模型是模型的一种,它是现实世界数据特征的抽象。现实世界中的具体事务必须用数据模型这个工具来抽象和表示,计算机才能够处理。

1.概述

数据模型通常由数据结构、数据操作和数据约束三部分组成。数据结构是所研究的对象类型的集合。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据约束是一组完整规则的集合。通过数据结构、数据操作和数据约束可以完整描述数据模型。

根据模型应用的层次不同,可以将这些模型划分为3类。

第1类模型是概念数据模型,又称概念模型或信息模型,它是按用户的观点来对数据和信息建模,是用户和数据库设计人员之间进行交流的工具,这一类模型中最著名的就是实体关系模型。实体关系模型直接从现实世界中抽象出实体类型以及实体之间的关系,然后用实体关系图(E-R图)表示数据模型。E-R图有下面四个基本成分。(1)矩形框,表示实体类型(问题的对象);(2)菱形框,表示关系类型(实体之间的联系);(3)椭圆形框,表示实体类型的属性;(4)连线。实体与属性之间,关系与属性之间用直线连接;关系类型与其涉及的实体类型之间也以直线相连,并在直线端部标注关系的类型(1:1、1:n或m:n)。

如图1.7所示是一个E-R图的示例。图1.7 E-R图

第2类模型是逻辑数据模型,又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库管理系统一级的实现。概念模型只有转化为数据模型后才能在数据库中得以实现。其主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

第3类模型是物理数据模型,又称物理模型,它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。

数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型;然后再把概念模型转换为计算机上某一DBMS支持的数据模型,这一过程如图1.8所示。图1.8 现实世界中客观对象的抽象过程

2.相关概念

建立数据模型需要掌握以下几个概念。

1)实体

客观存在,并可相互区别的事物称为实体(Entity)。实体可以是实实在在的客观存在,例如学生、教师、商店、医院;也可以是一些抽象的概念或地理名词,如地震、北京市。

2)属性

实体所具有的特征称为属性(Attribute)。实体本身并不能被装进数据库,要保存客观世界的信息,必须将描述事物外在特征的属性保存在数据库中。属性的差异能使我们区分同类实体,如一个人可以具备姓名、年龄、性别、身高、肤色、发型、衣着等属性,根据这些属性可以在熙熙攘攘的人群中一眼认出所熟悉的人。

3)实体集和实体型

具有共性的实体组成的一个集合称为实体集(Entity Set)。一个实体所有属性的集合称为实体型。例如,要管理学生信息,可以存储每一位学生的学号、姓名、性别、出生年月、出生地、家庭住址、各科成绩等,其中学号是人为添加的一个属性,用于区分两个或多个因巧合而属性完全相同的学生。在数据库理论中,这些学生属性的集合就是一个实体集,这些学生所具有的所有的属性就是一个实体型,在数据库应用中,实体集以数据表的形式呈现,实体型以字段名称的形式呈现。

4)联系客观事物往往不是孤立存在的,相关事物之间保持着各种形式的联系方式。在数据库理论中,实体(集)之间同样也保持着联系,这些联系同时也制约着实体属性的取值方式与范围。这种实体集之间的对应关系称为联系。

实体的联系方式通常有3种,一对多、多对多和一对一。(1)一对多。“一对多”联系类型是关系型数据库系统中最基本的联系形式,例如“系”表与“教师”表这两个实体的联系方式就属于“一对多”关系,即一个系可以有多名教师,但一名教师只能属于一个系。(2)多对多。“多对多”联系类型是客观世界中事物间联系的最普遍形式,例如在一个学期中,一名学生要学若干门课程,而一门课程要让若干名学生来修;一名顾客要逛若干家商店才能买到称心的商品,而一家商店必须有许多顾客光顾才得以维持等。上述的学生与课程之间、顾客与商店之间的关系均为“多对多”联系。(3)一对一。“一对一”情况较为少见,它表示某实体集中的一个实体对应另一个实体集中的一个实体。例如为补充系的信息,添加一个“系办”表,表示每个系的系部办公室地点。从常识得知,一个系只有一个系部办公室,反之一个系部办公室只为一个系所有,这两个实体的联系方式就属于“一对一”关系。

3.常用模型

数据库领域常用的数据模型经常是按照数据的组织形式划分为,包括层次模型、网状模型、关系模型和面向对象模型4种。

1)层次模型

在层次模型中,实体间的关系形同一棵根在上的倒挂树,上一层实体与下一层实体间的联系形式为一对多。现实世界中的组织机构设置、行政区划关系等都是层次结构应用的实例。基于层次模型的数据库系统存在天生的缺陷,它访问过程复杂,软件设计的工作量较大,现已较少使用。

层次模型具有以下特点。(1)有且仅有一个结点无父结点,它位于最高层次,称为根结点。(2)根结点以外的其他结点有且仅有一个父结点,如图1.9所示。

2)网状模型

网状数据模型又称网络数据模型,它较容易实现普遍存在的“多对多”关系,数据存取方式要优于层次模型,但网状结构过于复杂,难以实现数据结构的独立,即数据结构的描述保存在程序中,改变结构就要改变程序,因此目前已不再是流行的数据模型。

网状模型具有以下特点。(1)允许一个以上的结点无双亲结点。(2)一个结点可以有多于一个双亲结点,如图1.10所示。图1.9 层次模型图1.10 网状模型

3)关系模型

关系模型是以二维表的形式表示实体和实体之间联系的数据模型,即关系模型数据库中的数据均以表格的形式存在,其中表完全是一个逻辑结构,用户和程序员不必了解一个表的物理细节和存储方式;表的结构由数据库管理系统(DBMS)自动管理,表结构的改变一般不涉及应用程序,在数据库技术中称为数据独立性。

关系模型具有以下特点。(1)每一列中的值具有相同的数据类型。(2)列的顺序可以是任意的。(3)行的顺序可以是任意的。(4)表中的值是不可分割的最小数据项。(5)表中的任意两行不能完全相同。

基于关系数据模型的数据库系统称为关系数据库系统,所有的数据分散保存在若干个独立存储的表中,表与表之间通过公共属性实现“松散”的联系,当部分表的存储位置、数据内容发生变化时,表间的关系并不改变。这种联系方式可以将数据冗余(即数据的重复)降到最低。

4)面向对象模型

面向对象模型是一种新兴的数据模型,它采用面向对象的方法来设计数据库。面向对象模型的数据库存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。Computer Associates的Jasmine就是面向对象模型的数据库系统。1.2关系数据库

关系数据库是IBM公司的E.F.Codd在20世纪70年代提出的数据库模型,自20世纪80年代以来,新推出的数据库管理系统几乎都支持关系数据模型。目前流行的关系数据库DBMS产品包括Access、SQL erver、FoxPro、Oracle等。1.2.1 关系数据模型

关系数据库是当今主流的数据库管理系统,关系模型对用户来说很简单,一个关系就是一个二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系模型。

要了解关系数据库,首先需对其基本关系术语进行认识。

1.关系术语

1)关系

一个关系就是一个二维表,每个关系有一个关系名称。对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其表示格式如下:

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

在Access中则表示如下:

表名(字段名1,字段名2,…,字段名n)

如图1.11所示显示了Access中的一个班级表,该表保存了班级的班级名称、班级人数、院系号等信息。该关系在Access中可表示为:

班级(班级名称,班级人数,院系号)

值得说明的是,在表示概念模型的E-R图转换为关系模型时,实体和实体之间的联系都要转换为一个关系,即一张二维表。图1.11 “班级”表

2)元组

在一个关系(二维表)中,每行为一个元组。一个关系可以包含若干个元组,但不允许有完全相同的元组。

在Access中,一个元组称为一条记录。例如,班级表就包含了10条记录。

3)属性

关系中的列称为属性。每一列都有一个属性名,在同一个关系中不允许有重复的属性名。

在Access中,属性称为字段,一个记录可以包含多个字段。例如,班级表就包含了3个字段。

4)域

域指属性的取值范围。如班级表的“班级人数”字段为2位数字,“院系号”字段为41开头的4位数字。

5)关键字

关键字又称键,由一个或多个属性组成,用于唯一标识一条记录。例如,班级表中的“班级名称”字段可以区别表中的各个记录,所以“班级名称”字段可作为关键字使用。一个关系中可能存在多个关键字,用于标识记录的关键字称为主关键字。

在Access中,关键字由一个或多个字段组成。表中的主关键字或候选关键字都可以唯一标识一条记录。

6)外部关键字

如果关系中的一个属性不是关系的主关键字,但它是另外一个关系的主关键字或候选关键字,则该属性称为外部关键字,又称外键。

关系模型就是一个二维表,关系必须规范化,所谓规范化是指一个关系的每个属性必须是不可再分的,即不允许有分量,如图1.12所示的表格中,工资又分为基本和绩效两项。这是一个复合表,不是二维表,因而不能用于表示关系。

2.关系模型

在关系模型中,信息被组织成若干张二维表,每张二维表称为一个二元关系。Access数据库往往包含多个表,各个表通过相同字段名构建联系。

在“学籍管理”数据库中“学生”“班级”“院系”表之间的关系如图1.13所示。“学生”表和“班级”表通过相同的字段“bjmc”(班级名称)相联系,“班级”表和“院系”表通过相同的字段“yxh”(院系号)相联系,构建了3个表的关系模型。该数据库中的3个表如图1.14所示,由3个表相联系得到的一个“学生信息”查询如图1.15所示。图1.12 复合表图1.13 学生-班级-院系关系模型图1.14 3个数据表图1.15 “学生信息”查询1.2.2 关系运算

关系运算是对关系数据库的数据操纵,主要是从关系中查询需要的数据。关系的基本运算分为两类,一类是传统的集合运算,包括并、交、差等;另一类是专门的关系运算,包括选择、投影、连接等。关系运算的操作对象是关系,关系运算的结果仍然是关系。

1.传统的集合运算

传统的集合运算要求两个关系的结构相同,执行集合运算后,得到一个结构相同的新关系。

对于任意关系R和关系S,它们具有相同的结构即关系模式相同,而且相应的属性取自同一个域。那么,传统的集合运算定义如下。

1)并

R并S,R或S两者中所有元组的集合。一个元组在并集中只出现一次,即使它在R和S中都存在。

例如,把学生关系R和S分别存放2个班的学生,把一个班的学生记录追加到另一个班的学生记录后边,进行的是并运算。

2)交

R交S,R和S中共有的元组的集合。

例如,有参加计算机兴趣小组的学生关系R和参加象棋兴趣小组的学生关系S,求既参加计算机兴趣小组又参加象棋兴趣小组的学生,就要进行交运算。

3)差

R差S,在R中而不在S中的元组的集合。注意R差S不同于S差R,后者是在S中而不在R中的元素的集合。

例如,有参加计算机兴趣小组的学生关系R和参加象棋兴趣小组的学生关系S,求参加了计算机兴趣小组但没有参加象棋兴趣小组的学生,就要进行差运算。

2.专门的关系运算

1)选择

从关系中找出满足条件元组的操作称为选择。选择是从行的角度进行运算的,在二维表中抽出满足条件的行。例如,在学生成绩的关系1中找出“一班”的学生成绩,并生成新的关系2,就应当进行选择运算,如图1.16所示。

2)投影

从关系中选取若干个属性构成新关系的操作称为投影。投影是从列的角度进行运算的,选择某些列的同时丢弃了某些列。例如,在学生成绩的关系1中去除掉成绩列,并生成新的关系2,就应当进行投影运算,如图1.17所示。图1.16 选择运算图1.17 投影运算

3)连接

连接指将多个关系的属性组合构成一个新的关系。连接是关系的横向结合,生成的新关系中包含满足条件的元组。例如关系1和关系2进行连接运算,得到关系3,如图1.18所示。在连接运算中,按字段值相等执行的连接称为等值连接,新关系中重复字段只出现一次的连接称为自然连接,如图1.19所示。自然连接是一种特殊的等值连接,是去掉重复字段的连接,是构造新关系的有效方法,是最常用的连接运算。图1.18 连接运算图1.19 自然连接运算1.2.3 关系的完整性

关系完整性指关系数据库中数据的正确性和可靠性,关系数据库管理系统的一个重要功能就是保证关系的完整性。关系完整性包括实体完整性、值域完整性、参照完整性和用户自定义完整性。

1.实体完整性

实体完整性指数据表中记录的唯一性,即同一个表中不允许出现重复的记录。设置数据表的关键字可便于保证数据的实体完整性。例如学生表中的“学号”字段作为关键字,就可以保证实体完整性,若编辑“学号”字段时出现相同的学号,数据库管理系统就会提示用户,并拒绝修改字段。

2.值域完整性

值域完整性指数据表中记录的每个字段的值应在允许范围内。例如可规定“学号”字段必须由数字组成。

3.参照完整性

参照完整性指相关数据表中的数据必须保持一致。例如学生表中的“学号”字段和成绩表中的“学号”字段应保持一致。若修改了学生表中的“学号”字段,则应同时修改成绩表中的“学号”字段,否则会导致参照完整性错误。

4.用户自定义完整性

用户自定义完整性指用户根据实际需要而定义的数据完整性。例如可规定“性别”字段值为“男”或“女”,“成绩”字段值必须是0~100范围内的整数。1.3数据库设计基础

数据库应用系统与其他计算机应用系统相比,一般具有数据量庞大、数据保存时间长、数据关联比较复杂、用户要求多样化等特点。设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。在Access中具体实施时表现为数据库和表的结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。1.3.1 数据库设计原则

为了合理组织数据,应遵从以下基本设计原则。

1.关系数据库的设计应遵从概念单一化“一事一地”的原则

一个表描述一个实体或实体间的一种联系。避免设计大而杂的表,首先分离那些需要作为单个主题而独立保存的信息,然后通过Access确定这些主题之间有何联系,以便在需要时将正确的信息组合在一起。通过将不同的信息分散在不同的表中,可以使数据的组织工作和维护工作更简单,同时也可以保证建立的应用程序具有较高的性能。

例如,将有关教师基本情况的数据,包括姓名、性别、工作时间等,保存到教师表中。将工资单的信息应该保存到工资表中,而不是将这些数据统统放到一起。同样的道理,应当把学生信息保存到学生表中,把有关课程的成绩保存在选课表中。

2.避免在表之间出现重复字段

除了保证表中有反映与其他表之间存在联系的外部关键字之外,应尽量避免在表之间出现重复字段。这样做的目的是使数据冗余尽量小,防止在插入、删除和更新时造成数据的不一致。

例如,在课程表中有了“课程名”字段,在选课表中就不应该有“课程名”字段。需要时可以通过两个表的连接找到所选课程对应的课程名称。

3.表中的字段必须是原始数据和基本数据元素

表中不应包括通过计算可以得到的“二次数据”或多项数据的组合。能够通过计算从其他字段推导出来的字段也应尽量避免。

例如,在职工表中应当包括“出生日期”字段,而不应包括“年龄”字段。当需要査询年龄的时候,可以通过简单计算得到准确年龄。

在特殊情况下可以保留计算字段,但是必须保证数据的同步更新。例如,在工资表中出现的“实发工资”字段,其值是通过“基本工资+津贴-水电费”计算出来的。每次更改其他字段值时,都必须重新计算。

4.用外部关键字保证有关联的表之间的联系

表之间的关联依靠外部关键字来维系,使得表结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系,最终设计出满足应用需求的实际关系模型。1.3.2 数据库设计步骤

设计数据库是指对于一个给定的应用环境,构造出最优的关系模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的需求。数据库设计的好坏,对于一个数据库应用系统的效率、性能及功能等起着至关重要的作用。

1.数据库设计的一般步骤

数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。(1)需求分析。全面、准确了解用户的实际要求。对用户的需求进行分析主要包括3方面的内容。

①信息需求。即用户要从数据库获得的信息内容。信息需求定义了数据库应用系统应该提供的所有信息,注意描述清楚系统中数据的数据类型。

②处理要求。即需要对数据完成什么处理功能及处理的方式。处理需求定义了系统的数据处理的操作,应注意操作执行的场合、频率、操作对数据的影响等。

③安全性和完整性要求。在定义信息需求和处理需求的同时必须相应确定安全性、完整性约束。(2)概念结构设计。即设计数据库的概念结构。概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3)逻辑结构设计。逻辑结构设计是将抽象的概念结构转换为所选用的DBMS支持的数据模型,并对其进行优化。(4)数据库物理设计。数据库物理设计是对为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施。在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护。数据库应用系统经过测试、试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

2.用Access设计数据库的步骤

对于关系数据库,可以利用Access来开发数据库应用系统,设计步骤如下:(1)需求分析。在分析过程中,要确定建立数据库的目的,首先要与数据库的使用人员多交流,尽管收集资料阶段的工作非常烦琐,但必须耐心细致地了解现行业务处理流程,收集全部数据资料,如报表、合同、档案、单据、计划等,所有这些信息在后面的设计步骤中都要用到,这有助于确定数据库保存哪些信息。(2)确定需要的表。可以着手将需求信息划分成各个独立的实体,例如教师、学生、选课等。每个实体都可以设计为数据库中的一个表。(3)确定所需字段。确定在每个表中要保存哪些字段,确定关键字,字段中要保存数据的数据类型和数据的长度。通过对这些字段的显示或计算应能够得到所有需求信息。(4)确定联系。对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。必要时可在表中加入一个字段或创建一个新表来明确联系。(5)设计求精。对设计进一步分析,査找其中的错误;创建表,在表中加入几个示例数据记录,考察能否从表中得到想要的结果,需要时可调整设计。

在初始设计时,难免会发生错误或遗漏数据。这只是一个初步方案,以后可以对设计方案进一步完善。完成初步设计后,可以利用示例数据对表单、报表的原型进行测试。Access很容易在创建数据库时对原设计方案进行修改。如果在数据库中载入了大量数据或报表之后,再修改这些表就比较困难了。正因为如此,在开发应用系统之前,应确保设计方案尽量合理。1.3.3 数据库设计过程

创建数据库首先要分析建立数据库的目的,再确定数据库中的表、表的结构、主关键字及表之间的关系。下面将遵循前面给出的设计原则和步骤,以“学籍管理”数据库的设计为例,具体介绍在Access中设计数据库的过程。

例如,某学校学籍管理的主要工作包括教师管理、学生管理和学生选课成绩管理等几项,学生选课成绩信息表如图1.20所示。图1.20 学生选课成绩信息

1.需求分析

对用户的需求进行分析,主要包括3方面的内容:信息需求、处理要求、安全性和完整性要求。针对该例,对学籍管理工作进行了解和分析,可以确定建立“学籍管理”数据库的目的是解决学籍信息的组织和管理问题,主要任务应包括教师信息管理、课程信息管理、学生信息管理和选课成绩情况管理等。

2.确定数据库中的表

表是关系数据库的基本信息结构,确定表往往是数据库设计过程中最难处理的步骤。在设计表时,应该按以下设计原则对信息进行分类。(1)表不应包含重复信息,表间不应有重复信息。如果每条信息只保存在一个表中,只需在一处进行更新,这样效率更高,同时也消除了包含不同信息的重复项的可能性。(2)每个表应该只包含关于一个主题的信息。如果每个表只包含关于一个主题的事件,则可以独立于其他主题维护每个主题的信息。

根据这个原则,可以确定,在“学籍管理”数据库中设计“教师”“课程”“学生”“选课成绩”等表,分别存放教师信息、课程信息、学生信息和学生选课成绩信息。

3.确定表中的字段

每个表中包含同一主题的信息,并且表中的每个字段包含该主题的各个事件。在确定每个表的字段时,应遵循以下原则。(1)每个字段直接与表的主题相关。(2)表中的字段必须是原始数据,即不包含推导或计算的数据。(3)包含所需的所有信息。(4)以最小的逻辑部分保存信息。(5)确定主关键字字段。

根据这个原则,可以确定4个表的字段和主关键字如表1.1所示。表1.1 学籍管理基本表设计续表

主关键字主要用来确定表之间的联系,表示每一条记录。它可以是一个字段,也可以是一组字段,但必须是唯一的、不可重复的。

4.确定表间的关系

为各个表定义了主关键字之后,还要确定表之间的关系,将相关信息结合起来形成一个关系型数据库。表之间的联系有3种类型,即一对一、一对多和多对多联系。图1.21所示为“学籍管理”数据库中表之间的联系。图1.21 表间关系

5.设计求精

通过前面的几个步骤,设计完需要的表、字段和关系后,就应该检查该设计方案并找出任何可能存在的不足,如是否遗忘了字段、是否包含重复信息、是否设计了正确的主关键字等。因为在现在改变数据库的设计要比在以后开发过程中更改已经装满数据的表容易得多。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载