ACCESS编程书籍1ch01.docx
《ACCESS编程书籍1ch01.docx》由会员分享,可在线阅读,更多相关《ACCESS编程书籍1ch01.docx(22页珍藏版)》请在冰豆网上搜索。
ACCESS编程书籍1ch01
第1章数据库系统的基础知识
本章学习目标
本章从数据库系统的基础知识入手,对数据库的基本概念、数据模型、数据库体系结构、数据库设计及Access2003数据库进行介绍。
通过本章的学习,读者应该掌握以下内容:
●数据库系统的概念与组成
●数据模型
●数据库体系结构
●数据库设计方法与步骤
●Access2003数据库的特点
1.1数据库系统概述
数据库技术产生于20世纪60年代末,是数据管理的最新技术,计算机科学的重要分支。
在当今信息社会中,信息已成为各个行业、部门的重要财富和资源,信息系统也越来越显示出它的重要性。
数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。
从一般的小型事务处理到大型的信息系统,越来越多的新应用领域开始采用数据库技术存储与处理其信息资源。
数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。
1.1.1数据库系统的组成
数据(Data)是数据库中存储的基本对象。
数据的种类很多,例如文字、图形、图像和声音等都是数据。
数据可定义为描述事物的符号记录。
数据有多种形式,它们均可以经过数字化后储存到计算机中。
在描述事物的过程中,数据与其解释是不可分的。
数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据是按一定的数据模型组织、描述和储存的,具有较小的冗余度、较高的数据独立性和易扩展性,并且可以被多个用户、多个应用程序共享。
数据库管理系统(DatabaseManagementSystem,DBMS)是位于用户与操作系统(OS)之间的一层数据管理软件,是数据库系统的中心枢纽。
数据库管理系统能科学地组织和存储数据、高效地获取和维护数据。
用户对数据库进行的各种操作,如数据库的建立、使用和维护,都是在DBMS的统一管理和控制下进行的。
数据库管理系统的主要功能有以下几个方面:
(1)数据定义功能
提供数据定义语言(DDL),用于定义数据库中的数据对象。
(2)数据操纵功能
提供数据操纵语言(DML),用于操纵数据实现对数据库的基本操作,例如查询、插入、删除和修改等。
(3)数据库的运行管理
保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
(4)数据库的建立和维护功能
提供数据库数据输入、批量装载、数据库转储、介质故障恢复、数据库的重组织及性能监视等功能。
数据库系统(DatabaseSystem,DBS)是指在计算机系统中引入数据库之后组成的系统,是用来组织和存取大量数据的管理系统。
数据库系统是由计算机系统(硬件和基本软件)、数据库、数据库管理系统(及其开发工具)、应用系统和有关人员(数据库管理员、应用设计人员、最终用户)组成的具有高度组织性的总体。
通常情况下,把数据库系统简称为数据库。
数据库系统组件之间的关系如图1.1所示。
图1.1数据库系统组成
数据库技术的核心任务是数据处理。
数据处理是指对各种数据进行收集、存储、加工和传播等一系列活动的总和。
数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。
数据管理技术的发展,与计算机硬件(主要是外部存储器)、系统软件及计算机应用的范围有着密切的联系。
数据管理技术的发展经历了以下几个阶段:
人工管理阶段、文件系统阶段、数据库系统阶段和分布式数据库系统阶段。
20世纪50年代中期以前,计算机主要用于科学计算。
那时的计算机硬件方面,外存只有卡片、纸带及磁带,没有磁盘等可直接存取的存储设备;软件方面,只有汇编语言,没有操作系统和高级语言,更没有管理数据的软件;数据处理的方式是批处理。
这些决定了当时的数据管理只能依赖人工来进行。
人工管理阶段的特点是:
(1)数据不进行保存。
当时的计算机主要用于科学计算,一个程序对应一个数据。
在计算某一问题时,把程序和对应的数据装入,计算完就退出,没有将数据长期保存的必要。
(2)没有专门的数据管理软件。
数据需要由应用程序自己管理,因此应用程序的设计者不仅要考虑数据的逻辑结构,还考虑数据的物理结构,比如存储结构、存取方法、输入输出方式等。
存储结构发生变化,应用程序也要做相应的修改,程序员的负担非常重,数据的独立性也很差。
(3)数据面向应用。
一组数据对应一组程序。
倘若多个程序使用相同的数据,必须各自定义,不能共享。
所以程序之间存在大量的数据冗余。
(4)只有程序的概念,基本上没有文件的概念。
20世纪60年代,计算机技术有了很大提高,计算机的应用范围不断扩大,不仅用于科学计算,还大量用于管理。
这时的计算机硬件已经有了磁盘、磁鼓等直接存取的外存设备;软件则有了操作系统、高级语言,操作系统中的文件系统专门用于数据管理;处理方式不仅有批处理,还增加了联机实时处理。
文件系统阶段的特点如下:
(1)数据可以长期保存在磁盘上。
用户可以反复对文件进行查询、修改、插入和删除等操作。
(2)文件系统提供了数据与程序之间的存取方法。
应用程序和数据有了一定的独立性,数据存储结构的改变也不一定反映在程序上,大大减轻了程序员的负担。
(3)数据冗余量大。
文件系统中,文件仍然是面向应用的,一个文件基本上对应于一个应用程序,不能对数据项进行共享,因此数据冗余大,存储空间浪费。
由于数据可能有多个副本,对其中之一进行修改时还容易造成数据的不一致性。
(4)文件之间缺乏联系,相对孤立,仍然不能反映客观世界各个事物之间错综复杂的联系。
数据库系统阶段的特点如下:
这个阶段基本实现了数据共享,减少了数据冗余,数据库采用特定的数据模型,具有较高的数据独立性,有统一的数据控制和管理功能。
分布式数据库系统阶段的特点如下:
分布式数据库在逻辑上是一个整体,是分布在不同地理位置上的数据集合,它受分布式数据库管理系统的控制和管理。
(1)分布透明性
(2)局部与集中控制相结合
(3)高可靠性和可用性
(4)高效率和灵活性
1.1.2数据库系统的特点
20世纪60年代末以来,计算机的应用更为广泛,用于数据管理的应用系统规模也更为庞大,由此带来数据量的急剧膨胀;计算机磁盘技术有了很大发展,出现了大容量的磁盘;在处理方式上,联机实时处理的要求更多。
这些变化促使了数据管理手段的进步,数据库技术应运而生。
与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:
(1)数据的结构化
在文件系统中,只考虑了同一文件记录内部数据项之间的联系,而不同文件的记录之间是没有联系的,从整体上看数据是无结构的,不能反映客观世界各种事物之间的错综复杂的联系。
在数据库系统中,实现了整体数据的结构化,把文件系统中简单的记录结构变成了记录和记录之间的联系所构成的结构化数据。
在描述数据时,不仅要描述数据本身,还要描述数据之间的联系。
(2)数据共享性好
数据库系统从整体角度看待与描述数据,使数据不再面向某个应用而是面向整个系统,这些数据可以供多个部门使用,实现了数据的共享。
各个部门的数据基本上没有重复的存储,数据的冗余量小。
(3)数据独立性好
数据库系统有三层结构:
用户(局部)数据的逻辑结构、整体数据的逻辑结构和数据的物理结构。
在这三层结构之间,数据库系统提供了两层映像功能。
首先是用户数据逻辑结构和整体数据逻辑结构之间的映像,这一映像保证了数据的逻辑独立性:
当数据库的整体逻辑结构发生变化时,通过修改这层映像可使局部的逻辑结构不受影响,因此不必修改应用程序。
另外一级映像是整体数据逻辑结构和数据物理结构之间的映像,它保证了数据的物理独立性:
当数据的存储结构发生变化时,通过修改这层映像可使数据的逻辑结构不受影响,因此应用程序同样不必修改。
(4)数据存储粒度小
在文件系统中,数据存储的最小单位是记录;而在数据库系统中,数据存储的粒度可以小到记录中的一个数据项。
因此数据库中数据存取的方式非常灵活,便于对数据的管理。
(5)数据管理系统对数据进行统一的管理和控制
DBMS不仅具有基本的数据管理功能,还具有如下的控制功能:
保证数据的完整性
数据的完整性指数据的正确性、有效性和相容性,要求数据在一定的取值范围内或相互之间满足一定的关系。
例如,规定考试的成绩在0分到100分之间,血型只能是A型、B型、AB型、O型中的一种等。
保证数据的安全性
让每个用户只能按指定的权限访问数据,防止不合法地使用数据,造成数据的破坏和丢失。
比如学生对于课程的成绩只能进行查询,不能修改。
并发控制
对多用户的并发操作加以协调和控制,防止多个进程同时存取、修改数据库中的数据时发生冲突、造成错误。
比如在学生选课系统中,某门课只剩下最后一个名额,但有两个学生在两台选课终端上同时发出了选这门课的请求,必须采取某种措施,确保两名学生不能同时拥有这最后的一个名额。
数据库的恢复
当数据库系统出现硬件或软件故障时,DBMS具有把数据库恢复到最近某个时刻的正确状态上来的能力。
(6)为用户提供了友好的接口
用户可以使用交互式的命令语言,如SQL(StructuredQueryLanguage,结构化查询语言),对数据库进行操作;也可以把普通的高级语言(如C++语言等)和SQL结合起来,从而把对数据库的访问和对数据的处理有机地结合在一起。
1.1.3高级数据库阶段
1.分布式数据库系统
20世纪70年代后期之前,数据库系统多数是集中式的。
分布式数据库系统是数据库技术和计算机网络技术相结合的产物,在80年代中期已有商品化产品问世。
分布式数据库是一个逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个结点局部数据库的逻辑集合,同时受分布式数据库管理系统的控制和管理。
分布式数据库在逻辑上像一个集中式数据库系统,实际上数据存储在处于不同地点的计算机网络的各个结点上。
每个结点都有自己的局部数据库管理系统,使每个节点有很高的独立性。
用户可以由分布式数据库管理系统(网络数据库管理系统),通过网络通信相互传输数据。
分布式数据库系统有高度透明性,每台计算机上的用户并不需要了解他所访问的数据究竟在什么地方,就像在使用集中式数据库一样。
其主要优点有:
(1)局部自主
网络上每个结点的数据库系统都具有独立处理本地事物的能力(大量的),而且各局部结点之间也能够互相访问、有效地配合处理更复杂的事物。
因此,分布式数据库系统特别适合各个部门的地理位置分散的组织机构。
例如,银行业务、飞机订票和企业管理等。
(2)可靠性和可用性
分布式系统比集中式系统有更高的可靠性,在个别结点或个别通信链路发生故障的情况下可以继续工作。
一个局部系统发生故障不至于导致整个系统停顿或破坏,只要有一个结点上的数据备份可用,数据就是可用的。
(3)效率和灵活性
分布式系统分散了工作负荷,缓解了单机容量的压力。
数据可以存储在临近的常用结点,如果本结点的数据子集包含了要查询的全部内容,显然会比集中式数据库在全集上查找节省时间。
系统易于实现扩展。
例如,一个单位要增加新的机构,分布式数据库系统能够在对现有系统影响较小的情况下实现扩充。
因此,扩大系统规模比集中式系统更加方便、经济和灵活。
2.数据库的发展方向
目前,数据库技术的发展方向主要有两个:
一是改造和扩充关系数据库,以适应新的应用要求;二是改用新的数据库模型。
目前,这两个方面都取得了很大发展,主要出现了下列新的数据库技术。
(1)并行数据库技术
并行数据库技术包括对数据库的分区管理和并行查询。
它通过将一个数据库任务分割成多个子任务的方法由多个处理机协同完成这个任务,从而极大地提高了事务处理能力,并且通过数据分区可以实现数据的并行I/O操作。
(2)数据仓库和数据采掘技术
所谓数据仓库就是按决策目标将传统的事务型数据库中的数据重新组织划分,由此造成一种面向主题的、集成的、稳定的及随时间发展的数据集合。
数据仓库与传统数据库的区别在于存储的数据容量大、存储的数据时间跨度大、存储的数据来源复杂、可用于企业与组织的决策分析处理等。
所谓数据采掘(DataMining,DM)就是从大型数据库或数据仓库的数据中提取人们感兴趣的、隐含的、事先未知的、潜在的知识。
数据采掘方法的提出使人们有能力从过去若干年时间里积累的海量的、以不同的形式存储的、十分繁杂的数据资料中认识数据的真正价值。
目前,数据采掘的研究已与数据库的研究结合起来。
(3)多媒体数据库
人们通常把能够管理数值、文本、图形、图像和声音等媒体类型的数据库称为多媒体数据库(MultimediaDatabase)。
与传统数据库管理系统(DBMS)一样,多媒体DBMS也要进行数据的处理、查询和事物的管理等,但是多媒体数据库有不同的用户接口和存储构造,在多媒体DBMS中特别强调“媒体独立性”(所谓媒体独立性是指不论管理的多媒体数据的媒体如何变化,都不需改变DBMS)。
(4)模糊数据库
传统的数据库仅允许对精确的数据进行存储和处理,而客观世界中有许多事物是不精确的。
模糊数据库技术的研究和实践就是为了解决模糊数据的表达和处理问题,使得数据库描述的模型更自然、更贴切地反映客观世界。
(5)网络数据库
网络数据库是数据库技术与Web技术相互融合的技术。
此外,还有其他一些新的数据库技术,如:
模糊演绎数据库、主动数据库、集中式工程数据库和面向对象数据库等。
1.2数据模型
模型是现实世界特征的模拟和抽象。
数据模型也是一种模型,只不过它模拟的对象是数据。
根据模型应用的不同层次和目的,可以将模型分为两类,第一类是概念模型,按用户的观点来对数据和信息建模,主要用于数据库设计;另一类数据模型,主要包括网状模型、层次模型和关系模型等,它是按计算机系统的观点对数据建模。
1.2.1数据模型的概念
数据模型是现实世界数据特征的抽象。
数据模型是工具,是用来抽象、表示和处理现实世界中的数据和信息的工具。
在数据库中用数据模型这个工具来抽象、表示和处理现实世界的数据和信息,现有数据库系统均是基于某种数据模型的。
数据模型应满足三个方面的要求:
(1)能够比较真实地模拟现实世界;
(2)容易被人理解;
(3)便于在计算机系统中实现。
1.2.2数据模型的组成要素
数据模型是由数据结构、数据操作和数据的约束条件三部分组成的。
数据结构是所研究对象的集合,这些对象是数据库的组成成分,例如表中的字段、名称等。
数据结构分为两类,一类是与数据类型、内容、性质有关的对象;一类是与数据之间联系有关的对象。
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据库的操作主要有检索和更新两大类。
数据模型必须定义数据操作的确切含义、操作符号、操作规则以及实现操作的语言。
数据的约束条件是一组完整性规则的集合。
完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
数据模型给出了在计算机系统上描述和动态模拟现实数据及其变化的一种抽象方法,数据模型不同,描述和实现方法亦不相同,相应的支持软件,即数据库管理系统也就不同。
严格地讲,一个数据模型应由上述三部分组成,但数据结构是数据模型的本质标志。
1.2.3概念模型
概念模型是现实世界到信息世界的第一层抽象,是现实世界到计算机的一个中间层次。
概念模型是数据库设计的有力工具和数据库设计人员与用户之间进行交流的语言。
它必须具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,且简单、清晰、易于用户理解。
在现实世界中,事物之间的联系是客观存在的。
概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,不是现实世界的简单录像,而是把现实世界中的客观对象抽象为某一种信任结构,这种信任结构不是某一个DBMS支持的数据模型,而是概念级的模型。
建立概念模型涉及以下几个术语:
(1)实体(entity)
客观存在并可相互区别的事物称为实体。
实体可以是实际事物,也可以是抽象事件。
比如,一个职工、一个部门属于实际事物;一次定货、借阅若干本图书、一场演出是比较抽象的事件。
同一类实体的集合称为实体集。
例如,全体学生的集合、全馆图书等。
我们用命名的实体型表示抽象的实体集,实体型“学生”表示全体学生的概念,并不具体指职工甲或学生乙。
(2)属性(attribute)
描述实体的特性称为属性。
例如,学生实体用若干个属性(学号、姓名、性别、出生日期、籍贯等)来描述。
属性的具体取值称为属性值,用以刻画一个具体实体。
(3)关键字
如果某个属性或属性组合能够唯一地标识出实体集中的各个实体,可以选作关键字,也称为码。
(4)联系(relationship)
实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。
联系分为两种,一种是实体内部各属性之间的联系,另一种是实体之间的联系。
(5)E-R图
概念模型的表示方法有很多,常用实体-联系方法(E-R方法或E-R图)来描述现实世界的概念模型,E-R方法也称为E-R模型。
E-R图有3个要素:
实体——用矩形并在框内标注实体名称来表示;
属性——用椭圆形表示,并用连线将其与相应的实体连接起来;
联系——用菱形表示,菱形框内写明联系名,并用连线分别与有关实体连接起来,同时在连线上标上联系的类型(1∶1、1∶n或m∶n)。
图1.2为E-R图的示例。
(实体与属性)(实体与联系)
图1.2E-R图示例
联系有三种类型:
(1)一对一联系
如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1。
(2)一对多联系
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1∶n。
(3)多对多联系(m∶n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m∶n。
1.2.4常用的数据模型
每个数据库管理系统都是基于某种数据模型的。
在目前数据库领域中,常用的数据模型有4种:
层次模型、网状模型、关系模型和面向对象模型。
1.层次模型
层次和网状模型是最早用于数据库系统的数据模型。
层次模型的基本数据结构是层次结构,也称树型结构,树中每个结点表示一个实体类型,这些结点应满足:
(1)有且只有一个结点无双亲结点,这个结点称为根结点;
(2)其他结点有且仅有一个双亲结点。
在层次结构中,每个结点表示一个记录类型(实体),结点之间的连线(有向边)表示实体间的联系。
现实世界中许多实体间存在着自然的层次关系,如组织机构、家庭关系和物品分类等。
图1.3就是一个层次模型的例子。
图1.3层次模型示例
2.网状模型
网状模型的数据结构是一个网络结构。
在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
(1)一个结点可以有多个双亲结点;
(2)多个结点可以无双亲结点。
在网状模型中每个结点表示一个实体类型,结点间的连线表示实体间的联系。
与层次模型不同,网状模型中的任意结点间都可以有联系,适用于表示多对多的联系,因此,与层次模型相比网状模型更具有普遍性。
网状模型虽然可以表示实体间的复杂关系,但它与层次模型没有本质的区别,它们都用连线表示实体间的联系,在物理实现上也有许多相同之处,如都用指针表示实体间的联系。
层次模型是网状模型的特例,它们都称为格式化的数据模型。
图1.4就是一个网状层次模型的例子。
图1.4网状模型示例
3.关系模型
关系模型的数据结构是二维表,由行和列组成。
一张二维表称为一个关系。
图1.5是一个表示学生和教师任课情况的关系模型,图1.5(a)和图1.5(b)分别表示学生关系和教师任课关系。
这两个关系也表示了学生和任课教师间的多对多联系,他们之间的联系是由在两个关系中的同名属性“班级”表示的。
学号
姓名
班级
…
30203301
杜少华
1
…
30203302
张大伟
1
…
30203303
王朋立
1
…
30203322
王小宁
1
…
30203327
林李鸣
1
…
…
…
…
…
(a)学生关系
教师姓名
系别
任课名称
班级
…
吴丰
数学系
离散数学
1
…
赵立伟
外语系
英语
1
…
李健
计算机系
数据库技术
1
…
曲立涛
计算机系
操作系统
2
…
…
…
…
…
…
(b)教师任课关系
图1.5学生与教师任课情况的关系模型
关系模型中的主要概念有:
关系、属性、元组、域和关键字等。
与层次和网状模型相比,关系模型有下列优点:
(1)数据结构单一,不管实体还是实体间的联系都用关系来表示;
(2)建立在严格的数学概念基础上,具有坚实的理论基础;
(3)将数据定义和数据操纵统一在一种语言中,使用方便,易学易用。
4.面向对象模型
面向对象的数据模型中的基本数据结构是对象,一个对象由一组属性和一组方法组成,属性用来描述对象的特征,方法用来描述对象的操作。
一个对象的属性可以是另一个对象,另一个对象的属性还可以用其他对象描述,以此来模拟现实世界中的复杂实体。
在面向对象的数据模型中对象是封装的,对对象的操作通过调用其方法来实现。
面向对象数据模型中的主要概念有:
对象、类、方法、消息、封装、继承和多态等。
面向对象的数据模型有许多优点,主要有:
(1)可以表示复杂对象,精确模拟现实世界中的实体;
(2)模块化的结构,便于管理和维护;
(3)具有定义抽象数据类型的能力。
面向对象的数据模型是新一代数据库系统的基础,是数据库技术发展的方向。
1.2.5数据库的体系结构
数据库系统的体系结构是数据库系统的一个总的框架。
尽管实际的数据库系统的软件产品多种多样(支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上、数据的存储结构也各不相同),但绝大多数的数据库系统在总的体系结构上都具有三级模式结构,即模式、外模式和内模式,如图1.6所示。
图1.6数据库系统的三级模式结构与二级映像
1.数据库系统的三级模式机构
模式是数据库中全体数据的逻辑结构和特征的描述,模式与具体的数据值无关,也与具体的应用程序、高级语言以及开发工具无关,模式是数据库数据在逻辑上的视图。
数据库的模式是唯一的,数据库模式是以数据模型为基础,综合考虑所有用户的需求,并将这些需求有机地结合成一个逻辑整体。
外模式也被称作用户模式,是用户和程序员最后看到并使用的局部数据逻辑结构和特征,一个数据库可以有若干个外模式。
内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的保存方式,例如,数据保存在磁盘、磁带还是其他存储介质上;索引按照什么方式组织;数据是否压缩存储,是否加密等,内模式是物理的存储结构。
2.数据库系统的二级映像功能
在数据库系统中,为实现在三级模式层次上的联系与转换,数据库管理系统在三级模式之间提供了两层映像功能,这两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
(1)外模式/模式映像
模式描述数据的全局逻辑结构,外模式描述数据的局部逻辑结构。
对应于一个模式可以有任意多个外模式。
对应于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了外模式与模式之间的映像对应关系。