第 1 章 数据库基础和 Access 概述
l 数据、信息、数据库系统的概念 l 关系数据库的概念及数学基础 l 数据库的设计基础 l Access 的发展简史及特点 l Access 的界面组成及特点 随着社会信息化进程的加快,以数据库系统为核心的信息系统、信息管理系统、决策支 持系统等得到广泛的应用。在信息社会里,信息都是储存在计算机系统中的,它们的组织形式 多为数据库。 故学习数据库, 就是学习信息的组织方法, 就是学习利用信息为自己的工作服务。 这就是学习数据库的必要性。 数据库是 20 世纪 60 年代后期发展起来的一项重要技术,70 年代以来数据库技术得到迅 猛发展,已经成为计算机科学与技术的一个重要分支。经过 30 多年的发展,现已经形成相当 规模的理论体系和应用技术,不仅应用于事务处理,并且进一步应用到人工智能、情报检索、 计算机辅助设计等各个领域。本章主要介绍数据库的基本概念和基本理论,并结合 MS Access 讲解与关系数据库相关的基本概念。1.1 数据库基本概念
1.1.1 数据处理 一、数据与数据处理 数据(Data) 是对客观事物的某些特征及相互联系的表述,由型和值组成,是一种抽象化、 符号化的表示。具体地说,数据是指存储在某一种介质上能够被识别的物理符号。例如:姓名 张三,出生 1968 年 9 月,身高 1.78m,体重 62kg,性别男,部门代码 A01,职称副教授,其 中张三、1968 年 9 月、1.78m、62kg、男、A01、副教授等都是数据,它们描述了该人的某些 特征。 从上述可知,数据不仅包括文字(本)、日期、数值、其他特殊的符号组成,还可包括图 形(像)和声音等多媒体的数据。即数据是数值、字符、文字、声音、图形图像等客观存在的 东西。 信息是经过加工处理的有用数据。数据只有经过提炼和抽象变成有用的数据后才能成为 信息。信息仍以数据的形式表示。 现实世界中的数据往往是原始的、非规范的,通过对这些数据的收集、记录、分类、排序、存储、计算/加工、传输、制表和递交等操作,以得到人们所需的信息(数据),我们把这 一处理过程叫数据处理。即数据处理就是对数据的查找、统计、分类、修改、变换等处理过程。 二、数据管理技术的发展 计算机处理的中心问题就是数据管理。经过处理的数据应该是精炼的数据,它能反映事 物或现象的本质、特征和内在联系。人类社会在处理数据的发展过程可以分为如下三个阶段。 (1)手工处理阶段:使用简单的手工工具,如算盘、纸笔等。处理数据数据量少,效率 低,可靠性差。 (2)机械处理阶段:利用机械中的齿轮、卡片制表机处理。数据量、效率、可靠性都比 手工有所提高。 (3)电子处理阶段:利用类似电子计算机进行数据处理,具有速度快、容量大、输入/ 出灵活、可靠,且把人的手工操作降低到最小程度等许多潜在的优点。数据库的应用就是电子 处理方法之一。 使用计算机进行数据处理又可分如下几个阶段: (1)人工管理阶段:程序完全依赖于数据,且成一一对应的关系,这是计算机早期的批 处理方式。 (2)文件管理阶段:数据与程序在存储位置上完全分开,程序设计仍受数据存储格式和 方法的影响,即程序不完全独立于数据。这是计算机操作系统的文件管理方式,文件之间相互 独立,但缺乏联系。 (3)数据库系统管理阶段:其特点是数据具有数据结构化、数据共享、数据独立性、数 据粒度小(记录、数据项)、独立的数据操作界面;且由 DBMS 对数据的安全性控制、一致性 控制、并发性控制、数据库恢复等进行统一的管理等。 (4)面向对象第三代数据库管理阶段:其包括了分布式数据库、主动数据库、多媒体数 据库等。 通过计算机网络及通信线路把分布在不同地域的局部数据库系统连接和统一起来。 具 有可靠性高、地域范围广、数据量大、客户多、一定智能等新的特点。 从本质上说,Access 仍然是传统的关系型数据库系统,但它在用户界面、程序设计等方 面进行了很好地扩充,提供了面向对象程序设计的强大功能。 1.1.2 数据模型 现实世界中客观存在并且相互区别的事物称为实体。实体可以是具体的人、事、物 (如,一个学生、一个班级或一本书等),也可以是抽象的概念或事件(如,上一门课、 借一杂志等)。 同类型实体的集合称实体集。如学校全部学生构成学校的学生实体集,学校全部教师构 成学校的老师实体集,学校给学生授课构成学校的上课实体集等。 实体的特征称属性,属性是实体之间相互区别的标志,一个实体可以由若干属性来表征。 如学生实体可用学生编号、姓名、班级、性别、出生日期等属性来描述。 1.实体联系 实体之间的对应关系称为联系,它反映了现实世界各个事物之间相互关系。实体之间的 联系有以下三种。 (1)一对一联系(1:1,onetoone relationship) :如果对于实体集 A 中的每一个实体,在 实体集 B 中至多有一个(可没有)实体与之联系,反之亦然,则称实体 A 与实体集 B 具有一
对一联系,记为 1:1。 如一个部门只有一个正职负责人,而一个正职负责人只在一个部门任职,则部门与正职 负责人之间具有一对一联系,联系名可设定为“领导” 。又如一个订单与一个货主等。一对一 联系在数据库中较少讨论。 (2)一对多联系(1:N,onetomany relationship):如果对于实体集 A 中的每一个实体, 在实体集 B 中有 N 个实体与之联系,反之,对于实体集 B 中每一个实体,在实体集 A 中至多 只有一个实体与之联系,则称实体集 A 与实体集 B 具有一对多联系,记为 1:N。如“类别” 与“产品”等。 如一个部门有若干名职员,而每个职员只在一个部门任职,则部门与职员之间具有一对 多联系,联系名可设定为“任职” 。一对多联系在数据库中较多地讨论与应用。 (3) 多对多联系 (M:N, manytomany relationship): 如果对于实体集 A 中的每一个实体, 在实体集 B 中有 N 个实体与之联系,反之,对于实体集 B 中每一个实体,在实体集 A 中也有 M 个实体与之联系,则称实体集 A 与实体集 B 具有多对多联系,记为 M:N。如“订单表”与 “产品表”就是多对多关系,中间表是“订单明细表” 。 如一项工作同时有若干名职员参与,而一个职员可以同时参与多项工作,则工作与职员 之间具有多对多联系,联系名设定为“参与” 。又如产品与客户实体之间等。 实际上,一对一联系是一对多联系的特例,而一对多联系是多对多联系的特例。可以用 E -R 图(实体-关系模型)来表示两个实体集之间的这三类联系,如图 1.1 所示。在数据库中 多对多联系应当转变为一对多联系使用。 1 1 1 N M N 图 1.1 两个实体的三类联系 2.数据模型 模型:现实世界特征的模拟和抽象。 数据模型(Data Model):数据模型是现实世界中的数据特征,包括事物之间联系的一种 抽象表示。在数据库中用于表示实体和表示实体与实体之间的联系形式。 数据模型应满足三方面要求: l 能比较真实地模拟现实世界; l 容易为人所理解; 实体 E1 实体 E2 实体 E1 实体 E1 联系 R 联系 R 联系 R 实体 E2 实体 E2
l 便于在计算机上实现。 数据模型分为两类,属于两个不同的层次: l 概念模型(信息模型):按用户的观点来对数据和信息建模,主要用于数据库设计。 l 数据模型:按计算机系统的观点对数据建模,主要用于 DBMS 的实现。数据库领域 中常用的数据模型主要有层次、网状和关系模型三种。 (1)层次模型 满足下面两个条件的基本层次联系的集合称为层次模型。 l 有且只有一个结点没有双亲结点,这个结点称为根结点; l 根以外的其他结点有且只有一个双亲结点。 在层次模型中,每个结点表示一个实体集,实体集之间的联系用结点之间的连线(有向 边)表示,这种联系是父子之间的一对多的联系。层次模型只能处理一对多的实体联系,如图 1.2 所示。 (2)网状模型 满足以下两个条件的基本层次联系的集合称为网状模型。 l 允许一个以上的结点无双亲; l 一个结点可以有多于一个的双亲。 网状模型去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许一个结点有多 个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系),如图 1.3 所示。 图 1.2 层次模型 图 1.3 网状模型 (3)关系模型 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。表 1.1 产品 表是其实例。有关术语意义详见 1.2.1 节关系数据结构定义中“关系术语” 。 表 1.1 产品表
产品 ID 产品名称 供应商 ID 类别 ID 单位数量 单价 库存量
1 苹果汁 1 1 每箱 24 瓶 ¥18.00 39 2 牛奶 1 1 每箱 24 瓶 ¥19.00 17 3 蕃茄酱 1 2 每箱 12 瓶 ¥10.00 13 4 盐 2 2 每箱 12 瓶 ¥22.00 53 5 麻油 2 2 每箱 12 瓶 ¥21.35 0 6 酱油 3 2 每箱 12 瓶 ¥25.00 120 简单地说,关系模型就是数据表,就是一个规范二维表(关系),其列是字段(数据项、 A B C XYZ A1 A2 C1 C2 A C XYZ A1 A2 C1 C2 B
或属性),行是记录(元组)。 关系模型的特点:数据结构单一、采用集合运算、数据完全独立、数学理论支持。故操 作运行简洁快捷。 1.1.3 数据库系统 一、数据库系统组成 1.数据库系统(DataBase System,DBS):将引进数据库技术的计算机系统称为数据库系统。 2.数据库系统由以下几部分组成,如图 1.4 所示。 图 1.4 数据库系统(DBS) (1)计算机硬件系统:用来运行操作系统、数据库管理系统、应用程序以及存储数据库 的本地计算机系统和网络硬件环境。 (2)数据库集合:存储在本地计算机外存设备或网络存储设备上的若干个设计合理、满 足应用需要的数据库;数据库包括有数据表、视图等相关的信息。 (3)数据库管理系统:数据库管理系统是数据库系统的核心,用于协助用户创建、维护 和使用数据库的系统软件。 (4)相关软件:包括操作系统、编译系统、应用开发工具软件和计算机网络软件等。 (5)人员:包括数据库管理员和用户。数据库管理员负责数据库系统的建立、维护和管 理。用户可分为专业用户和最终用户。 数据库系统由硬件-OS-DBMS-应用开发工具-应用系统-人等组成。 二、数据库系统特点 1.数据库系统的层次结构如图 1.5 所示,其主要特点如下: (1)数据结构化:同一数据库中的数据文件是有联系的,且在整体上服从一定的结构 形式。 (2)数据共享:数据库中的数据不仅可为同一企业或结构之内的各个部门所共享,也可 为不同单位、地域甚至不同国家的用户所共享。 (3)数据独立:数据库系统力求减少这种依赖,实现数据的独立性。 (4)冗余度可控:在数据库系统中实现共享后,不必要的重复将删除,但为了提高查询 应用程序员 用户 用户 用户 数据库应用系统 应用开发工具 数据库管理员 数据库应用系统 数据库
效率,有时也保留少量重复数据,其冗余度可由设计人员控制。 图 1.5 数据库系统层次示意图 (5)数据统一控制:为保证多个用户能同时正确地使用同一个数据库,数据库系统提供 以下数据控制功能: l 安全性控制: 保证只有合法用户才能进行指定权限的操作, 防止非法使用所造成的数 据泄密和破坏; l 完整性控制:数据库系统提供必要措施来保证数据的正确性、有效性和相容性; l 并发控制:保证多个用户的操作不相互干扰。 2.数据库管理系统功能 数据库管理系统 DBMS 是位于用户与操作系统之间的数据管理软件。它的主要功能包括 以下几个方面: (1)数据定义功能:DBMS 提供数据定义语言(Data Definition Language,DDL),用户 通过它可以方便地对数据库中的数据对象进行定义。
(2)数据操纵功能:DBMS 提供数据操纵语言(Data Manipulation Language,DML), 用户可以使用 DML 操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。 (3)数据库的运行管理功能:数据库在建立、运用和维护时由 DBMS 统一管理、统一控 制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 (4)数据库的建立和维护功能:包括数据库初始数据的输入、转换功能,数据库的转储、 恢复功能,数据库的重组织功能和性能监视、分析功能等。 3.用户 (1)用户分类: l 第一类用户——终端用户(End User)。他们使用软件,是非计算机人员,主要利用 已编制好的应用程序接口使用数据库; l 第二类用户——应用程序员(Application Programmer)。他们为终端用户设计编制应 用程序,并进行调试和安装; l 第三类用户——数据库管理员(DataBase Administrator,DBA)。他们负责设计、建 立、管理和维护数据库以及协调用户对数据库要求的个人或工作团队。DBA 应熟悉 计算机软硬件系统, 具有较全面的数据处理知识, 熟悉本单位的业务、 数据及其流程。 (2)从最终用户角度来看数据库的结构分类: 从最终用户角度来看数据库的结构分类为:单用户结构、主从结构、分布式结构、客户/ 服务器(C/S)、浏览/服务器(B/S)。 最终用户 专业用户 数据库 管理员 数据库应用系统 数据库管理系统 操作系统 硬件
1.2 关系数据库
用关系数据模型建立的数据库就是关系数据库(Relational DataBase,RDB)。它是目前 应用最广泛、最重要、最流行的数据库。关系模型的数据结构非常简单,只包含单一的数据 结构—关系(二维表)。在关系模型中,无论是实体,还是实体之间的联系均由单一的结 构类型即关系来表示。 1.2.1 关系数据结构定义 关系数据模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这种用二维 表的形式表示实体和实体间联系的数据模型称为关系数据模型。 一、关系术语 在 Access 中,一个“表”就是一个关系。图 1.6 给出了一张供应商表,图 1.7 给出了一张 产品表,这是两个关系。这两个表中都有唯一和共同的标识——供应商 ID。产品表和供应商 表的属性都有“供应商 ID” ,根据“供应商 ID”通过一定的关系运算可以将两个关系联系起 来。我们在这里把这种联系称为“关联” 。 图 1.6 供应商 图 1.7 产品 1. 关系(Relation,表) 一个关系就是一张二维表。在 Access 中,一个关系存储为一个表,具有一个表名。 对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其格式为:关系名(属性名 1,属性名 2,……,属性名 n) 在 Access 中,表示为表结构: 表名(字段名 1,字段名 2,……,字段名 n)。 2. 元组(Tuple,行) 二维表(关系)中的每一行,对应于表中的记录。例如,供应商表和产品表两个关系各 包括多条记录(或多个元组)。 3. 属性(Attribute,列) 二维表中的每一列,对应于表中的字段。例如,产品表中的产品 ID、产品名称、供应商 ID、类别 ID、单位、数量、单价、库存量等就是属性,在数据库中又把它称为表的字段或数 据项,是表的结构,通俗地说是表首行列标题。属性由名称、类型、长度构成其特征。 4. 域(Domain) 属性的取值范围称为域,也称为值域。例如,产品名称的域是 1~8 个字符,性别只能取 “男”或“女”等。 分量:元组(行)对应的列的属性值,即记录中的一个属性值。 5. 关键字(Primary Key) 关键字是属性或属性的集合,关键字的值能够唯一地标识一个元组,也称为关键码或主 码。例如,产品表中的产品 ID。在 Access 中,主关键字和候选关键字就起唯一标识一个元组 的作用。 6. 外部关键字(Foreign Key) 如果表中的一个字段不是本表的主关键字,而是另外一个表的主关键字和候选关键字, 这个字段(属性)就称为外关键字。产品表中的供应商 ID 就是产品表的外部关键字。 7. 关联 为了有效管理数据库中的表,表与表之间建立了联系,这种联系称为“关联” 。如“供 应商表”与“产品表”以“供应商 ID”字段建立关联,供应商表中“供应商 ID”是唯一的, 是主关键字,其表称“主表” ; “供应商 ID”在产品表中是外部关键字,其所在的产品表称 为“子表” 。 在 Access 中,将相互之间存在联系的表放在一个数据库中统一管理。例如,在“罗斯文” 数据库中可以加入产品表、供应商表、订单表、雇员表、订单明细表、类别表、客户表和运货 商表等。 l 关系模式:是对关系的描述,一般表示为,关系名(属性 1,属性 2,…,属性 n)。 关系模式是关系模型的“型” ,是关系的框架结构。如产品表(产品 ID、产品名称、 供应商 ID、类别 ID、单位、数量、单价、库存量…);在关系模型中,实体是用关 系来表示的,实体间的联系也是用关系来表示的; l 关系实例:关系实例是关系模式的“值” ,是关系的数据,相当于二维表中的数据。 简单地说,数据表就是一个规范二维表(关系),其列是字段(数据项或属性),行是记 录(元组)。 二、关系的特点 在关系模型中对关系有一定的要求,关系必须具有以下特点: 1. 关系必须规范化。关系模型中的每一个关系模式都必须满足一定的要求。最基本的要 求是每个属性必须是不可分割的数据单元,即表中不能再包含表。
2. 属性名必须唯一,即一个关系中不能出现相同的属性名(但可有相同属性)。 3. 关系中不允许有完全相同的元组(即冗余)。 4. 在一个关系中元组和属性的顺序都是无关紧要的。 “关系”数据结构单一、采用集合运算、数据完全独立、有数学理论支持。故操作运行 简洁快捷。 1.2.2 关系运算 对于关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的 关系运算。关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门 的关系运算(选择、投影、联接),有些查询需要几个基本运算的组合。 一、传统的集合运算 进行并、差、交集合运算的两个关系必须具有相同的关系模式,即元组具有相同结构。 1. 并(Union) 两个相同结构关系的并是由属于这两个关系的元组组成的集合。 例如,设有两个结构相同的学生关系 R1 和 R2,分别存放两个班的学生,将第二个班的 学生记录追加到第一个班的学生记录后面就是两个关系的并集。 2. 差(Difference) 设有两个相同的结构 R 和 S,R 差 S 的结构是由属于 R 但不属于 S 的元组组成的集合, 即差运算的结果是从 R 中去掉 S 中也有的元组。 例如,设有选修计算机基础的学生关系 R,选修 C 语言程序设计的学生关系 S。求选修了 计算机基础,但没有选修 C 语言程序设计的学生,就应当进行差运算。 3. 交(Intersection) 两个具有相同结构的关系 R 和 S,他们的交是由既属于 R 又属于 S 的元组组成的集合。 交运算的结果是 R 和 S 中的共同元组。 例如,设有选修计算机基础的学生关系 R,选修 C 语言程序设计的学生关系 S。求既选修 了计算机基础又选修了 C 语言程序设计的学生,就应当进行交运算。 二、专门的关系运算 关系数据库管理系统能完成选择、投影和联接 3 种关系操作。 1. 选择(Select) 从关系中找出满足给定条件的元组的操作称为选择。选择的条件以逻辑表达式给出,使 得逻辑表达式的值为真的元组将被选取,以构成一个新关系的运算。例如,要从教师表中找 出职称为“教授”的教师。SELECT 关系名 WHERE 条件,所进行的查询操作就属于选择 运算。 2. 投影(Project) 从关系模式中指定若干属性(字段)组成新的关系称为投影。 PROJECT 关系名(字段名 1,字段名 2,…,字段名 n) 投影是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算可以得到一 个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。投影 运算提供了垂直调整关系的手段,体现出关系中列的次序无关紧要这一特点。例如,要从产品 关系中查询产品的“产品名称”和“单价” ,所进行的查询操作就属于投影运算。
3. 联接(Join)
连接运算是选取若干个指定关系中的字段满足给定条件的元组从左至右连接,从而构成 一个新关系的运算,其表现形式为: JOIN 关系名 1 AND 关系名 2 …AND 关系名 n WHERE 条件。 联接是关系的横向结合。联接运算将两个关系模式拼接成一个更宽的关系模式,生成的 新关系中包含满足联接条件的元组。 联接过程是通过联接条件来控制的,联接条件中将出现两个表中的公共属性名,或者具 有相同的语义、可比的属性。联接结果是满足条件的所有记录。 选择和投影运算的操作对象只是一个表,相当于对一个二维表进行切割。联接运算需要 两个表作为操作对象。如果需要联接两个以上的表,应当两两进行联接。 4.自然联接(Natural Join) 在联接运算中,按照字段值对应相等为条件进行的联接操作称为等值联接。自然联接是 去掉重复属性的等值联接。自然联接是最常用的联接运算。 总之,在对关系数据库的查询中,利用关系的投影、选择和联接运算可以方便地分解或 构成新的关系。 三、关系的完整性 1. 实体完整性(Entity Integrity) 实体完整性规则要求关系中记录的关键字字段不能为空;不同记录的关键字、字段值也 不能相同,否则,关键字就失去了唯一标识记录的作用。 如产品表将产品 ID 字段作为主关键字,那么,该列不得有空值,否则无法对应某个具体 的产品,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。 2.参照完整性(Referential Integrity) 参照完整性是一个规则系统,能确保相关表的记录之间关系的有效性,并且确保不会在 无意中删除或更改相关数据。 当实施参照完整性时,必须遵守以下规则: l 当主表中没有相关记录时,则不能将记录添加到相关表中,否则会创建孤立记录; l 当相关表中存在匹配的记录时,则不能删除主表中的记录。但在操作中,可以通过选 中“级联删除相关记录”复选框,删除主表的记录及所有相关记录; l 当相关表中有相关的记录时,则不能更改主表中主键的值,否则会创建孤立记录。但 在操作中,可以通过选中“级联更新相关记录”复选框,更新主表的记录及所有相关 记录。 实施了参照完整性后,对表中主键字段进行操作时,系统会自动检查主键字段,查看该 字段是否添、删、改。如果主键的修改违背了参照完整性的要求,那么系统会自动强制执行参 照完整性,这样有助于数据的完整。 参照完整性规则要求关系中 “不引用不存在的实体” , 定义了外键与主键之间的引用规则。 如产品表中的“产品 ID”字段是该表的主键,但在供应商表中是外键,则在供应商表中该字 段的值只能取“空”或取产品表中产品 ID 的其中值之一。 3. 用户定义完整性(Definition Integrity) 实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字 和外部关键字取值必须有效而做出的约束。 用户定义完整性则是根据应用环境的要求和实际的
需要, 对某一具体应用所涉及的数据提出约束性条件。 这一约束机制一般不应由应用程序提供, 而应由关系模型提供定义并检验。用户定义完整性主要包括字段有效性约束和记录有效性约 束。如对订单明细表中的“折扣”字段的取值范围规定,只能取 0~100 之间的值。 4.域完整性约束:关系模式规定属性值应是域中的值。一个属性能否取空值,由其语义 来确定。这是域完整性约束的主要内容。 1.2.3 关系数据库 在关系数据库中,关系模式是型,关系是值。一个关系需要描述以下两方面: (1)必须指出这个元组集合的结构, 即字段,即它由哪些属性构成,这些属性来自哪些 域,以及属性与域之间的映象关系; (2)赋予关系的元组语义。即记录。 元组语义实质上是一个 N 目谓词(N 是属性集中属性的个数),凡使该 N 目谓词为真的笛 卡尔积中的元素的全体就构成了该关系模式的一个关系。 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。 l 关系数据库的型:其也称为关系数据库模式,是对关系数据库的描述。即关系的 结构; l 关系数据库的值: 是这些关系模式在某一时刻对应的关系的集合, 通常就称为关系数 据库。 关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是 该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,因此关系模式必须指出 这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映 射关系。 关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不 断更新着数据库中表的数据。
1.3 数据库设计基础
本节将通俗地介绍在 Access 中设计关系数据库的方法,任何软件产品的开发过程都必须 遵循一定的开发步骤。在创建数据库之前,应先对数据库进行设计。Access 2010 数据库文件 的扩展名为.accdb(早期是.mdb)。在建立一个数据库管理系统之前,合理的设计数据库的结 构是保障系统高效、准确完成任务的前提。 1.3.1 数据库设计步骤 一、需求分析 设计数据库的第 1 个步骤是确定新建数据库所需要完成任务的目的。 用户需要明确希望 从数据库中得到什么信息,需要解决什么问题,并说明需要生成什么样的报表,要充分与用 户交流,并收集当前使用的各种记录数据的表格与数据。 二、确定所需要的表 要根据需求和输出的信息确定要创建的表,每个表应该只包含一个主题的信息,而且各个表不应该包含重复的信息。 三、确定所需要的字段 一个表包含一个主题的信息,表中的各个字段都是该主题的各个组成部分。具体来说, 每个字段应满足以下要求: 1. 每个字段应直接与表的主题相关,例如,产品表的各个字段可以是“产品 ID” 、 “产品 名称” 、 “供应商 ID” 、 “库存量”和“单价”等。 2. 字段不是推导或计算出的数据,例如,若已经存在“生日”字段,就不应该有“年龄” 字段,因为年龄可以从“生日”推导出来。 3. 应该包含所需要的所有信息。 4. 字段是不可分割的数据单位,如“姓名” 、 “性别” 。 四、定义主关键字 为了连接保存在不同表中的数据,唯一地确定一条记录,需要为每个表定义一个主关键 字,如无主关键字,可以增加一个自动编号字段。 五、确定表之间的联系 将数据按不同主题保存在不同的表中,并确定了主关键字后,要通过外部关键字将相关 的数据重新结合起来,也就是要定义表与表之间的联系(又称关联)。这样可以充分组合实际 数据库的数据资源,大大降低数据库中的数据冗余。 六、优化设计 在初步设计数据库的表、字段及表的关系后,还需要对所做的设计进一步分析,检查可 能存在的缺陷和需要改进的地方,使得设计更合理、更符合用户的需要、更符合输出信息的需 要,同时使设计方案尽可能地提高系统的性能,以及便于数据的使用和维护。 1.3.2 数据库设计原则 为了合理地利用属性组织数据,数据库的设计应遵循以下原则: (1)一个关系模式描述一个实体或实体间的一种联系。 (2)避免在表之间出现重复字段。 (3)表中的字段必须是原始数据和基本数据元素。 (4)用外部关键字保证有关联的表之间的联系。 1.3.3 数据库设计过程 下面将遵循上一小节给出的设计原则和步骤,以“罗斯文”数据库的设计为例,具体介 绍在 Access 中设计数据库的过程。在本书后续章节中,也将采用这个数据库示例。 一、需求分析 对“罗斯文”进行业务分析后,列出“罗斯文”信息系统所要包括的基本功能:需要管 理产品、供应商、运货商和雇员的基本信息;需要管理订单;需要管理订单明细,包括订单的 录入、修改、查询、删除等功能;在使用过程中有时需要打印报表,所以还得有打印的功能; 如果该系统规定专人负责,还需要规定用户名和登录密码,体现保密性等等,基本功能框架如 图 1.8 所示。
图 1.8 “罗斯文”功能框架图 二、确定所需要的表 确定数据库中的表是数据库设计过程中技巧性最强的一步。一般情况下,设计者不要急 于在 Access 中建立表,而应先在纸上进行设计。根据“罗斯文”系统的需求,不难发现数据 库中包含了 4 类信息:一是产品基本信息,如产品 ID、名称等;二是供应商、运货商、客户 和雇员基本信息,如供应商 ID、公司名等;三是订单信息,如订单 ID、订货日期、到货日期、 发货日期等;四是产品类别信息,如产品类别名称、说明等。如果将这些信息放在一个表中, 必然出现大量的重复,不符合信息分类的原则。因此,根据已确定的“罗斯文”数据库应完成 的任务以及信息分类原则,初步拟定该数据库应包含 8 个数据表,即产品表、供应商表、订单 表、雇员表、订单明细表、类别表、客户表和运货商表等。 三、确定所需要的字段 对于上面已经确定的每一个表,还要设计它的结构,即要确定每个表应包含哪些字段。 为了使保存在不同表中的数据产生联系, 数据库中的每个表必须有一个字段能唯一标识每条记 录,这个字段就是主关键字。主关键字可以是一个字段,也可以是一组字段。 Access 利用主关键字迅速关联多个表中的数据,不允许在主关键字字段中有重复值或空 值。常使用唯一的标识作为这样的字段,例如,在“罗斯文”数据库中,可以将产品 ID、订 单 ID、雇员 ID、订单 ID、客户 ID、类别 ID、运货商 ID 和供应商 ID 分别作为产品表、订单 表、雇员表、订单明细表、客户表、类别表、运货商表和供应商表的主关键字字段。 根据以上分析,按照字段的命名规则,可以为“罗斯文”数据库的各个表设置表结构, 如表 1.2 所示。 四、确定表之间的关联(关系) 在 Access 中,每个表不是完全孤立的部分,表与表之间有可能存在着相互的联系。例如, 前面创建的“罗斯文”数据库中有 8 个表,仔细分析这 8 个表,不难发现,不同表中有相同的 字段名,如产品表中有“供应商 ID” ,供应商表中也有“供应商 ID” ,通过这个字段,就可以 建立起这两个表之间的关联(关系)。 产品销售合同管理系统 系 统 管 理 界 面 管 理 退 出 系 统 输 入 数 据 修 改 数 据 删 除 数 据 信 息 输 出 管 理 输 出 一 般 数 据 输 出 统 计 数 据 基 本 信 息 管 理
表 1.2 “罗斯文”数据库中的表结构
产品 订单 雇员 订单明细 客户 类别 运货商 供应商
产品 ID 订单 ID 雇员 ID 订单 ID 客户 ID 类别 ID 运货商 ID 供应商 ID 产品名称 客户 ID 姓氏 产品 ID 公司名称 类别名称 公司名称 公司名称 供应商 ID 雇员 ID 名字 单价 联系人姓名 说明 电话 联系人姓名 类别 ID 订购日期 职务 数量 联系人职务 图片 联系人职务 单位数量 到货日期 尊称 折扣 地址 地址 单价 发货日期 出生日期 城市 城市 库存量 运货商 ID 雇用日期 地区 地区 订购量 运货费 地址 邮政编码 邮政编码 再订购量 货主名称 城市 国家 国家 中止 货主地址 地区 电话 电话 货主城市 邮政编码 传真 传真 货主地区 国家 主页 货主邮码 家庭电话 货主国家 分机 照片 备注 上级 确定联系的目的是使表的结构合理,不仅存储了所需要的实体信息,并且反映出实体之 间客观存在的关联。 前面各个步骤已经把数据分配到了各个表中。 因为有些输出需要从几个表 中得到信息,为了使 Access 能够将这些表中的内容重新组合,得到有意义的信息,就需要确 定外部关键字。例如,在“罗斯文”数据库中,产品 ID 是产品表中的主关键字,也是订单明 细表中的一个字段。在数据库术语中,订单明细表中的产品 ID 字段称为“外部关键字” ,因 为它是另外一个表的主关键字。 如果表中没有可作为主关键字的字段,可以在表中增加一个字段,该字段的值为序列号, 以此来标识不同记录。 主键是用于将表联系到其他表的外部关键字上, 从而使不同表中的信息 发生联系。 在“罗斯文”数据库中,供应商表和产品表之间就是一对多的关系,因为一个供应商可 以供应多个产品。 而在多对多联系中,应将多对多关系分解成两个一对多关系,其方法就是在具有多对多 关系的两个表之间创建第 3 个表,即纽带表。纽带表不一定需要自己的主关键字,如果需要, 可以将它所联系的两个表的主关键字作为组合关键字指定为主关键字。 在“罗斯文”数据库中,(产品)类别表和供应商表之间就是多对多的关系。一个产品类 别可以有多个供应商供给,同样一个供应商也可以供应多个产品类别。而产品表就是(产品) 类别表和供应商表之间的纽带表,通过产品表把(产品)类别表和供应商表联系起来。例如, 通过产品表和供应商表,可以查出某个产品的供应商,而通过产品表和类别表,可以查出某类 别都有哪些产品及其说明等信息。
如果考虑到一个订单可能不止订一个产品,而同一个产品也可能有几个订单同时被订的 情况,那么产品表和订单表也是多对多的关系。因此,也应该设置一个纽带表,以把产品表和 订单表分解成两个一对多关系。 基于以上考虑,在“罗斯文”数据库中再增加一个表——订单明细表,该表作为订单表 和产品表之间的纽带表,应将订单表的主关键字“订单 ID”和产品表的主关键字“产品 ID” 放入其中。 新增加的订单明细表的表结构可以描述为订单明细表(订单 ID、产品 ID、单价、数量、 折扣)。 根据上述考虑,在“罗斯文”数据库中共有 8 个表:产品、订单、雇员、订单明细、客 户、类别、运货商和供应商。这 8 个表之间的关系如图 1.9 所示。 图 1.9 “罗斯文”数据库 8 个表间的关系 五、完善数据库 在设计数据库时,信息复杂和情况变化会造成考虑不周,如有些表没有包含属于自己主 题的全部字段,或者包含了不属于自己的主题字段。此外,在设计数据库时经常忘记定义表与 表之间的关系,或者定义的关系不确定。因此,在初步确定了数据库需要包含哪些表、每个表 包含哪些字段以及各个表之间的关系以后, 还要重新研究一下设计方案, 检查可能存在的缺陷, 并进行相应的修改。只有通过反复修改,才能设计出一个完善的数据库系统。
1.4 Access 2010 简介
作为 MS Office 套件之一的 Access 是一种运行于 Windows 平台上的关系数据库管理系统, 它直观、易用,且功能强大,是目前最受欢迎的 PC 数据库软件。 它提供了表、查询、窗体、报表、宏、模块等 6 种用来建立数据库系统的对象;提供了 多种向导、生成器和模板把数据存储、数据查询、界面设计、报表生成等操作的规范化实现过 程;为建立功能完善的数据库管理系统提供了方便,使得普通用户不必编写代码,就可以完成 大部分数据管理的任务。 Access 与其他数据库开发系统之间相当显著的区别是:可以在很短的时间里开发出一个 功能强大而且相当专业的数据库应用程序, 并且这一过程是完全可视的, 如果能给它加上一些 简短的 VBA 代码,那么开发出的程序决不比专业的程序员开发的程序差。
1.4.1 Access 的安装、启动和退出 一、Access 的安装 与常规软件安装类似,操作步骤如下: 启动安装程序/选择安装方式/安装系统组件/安装 MSDN 组件(Access 的帮助文档)/重新 启动系统/完成 Access 安装。 二、Access 启动与退出 与常规的 Windows 程序一样,有多种方法。 1. Access 启动 启动 Access 有多种方法,通常采用以下多种方式之一:
从“开始”菜单启动: “开始|所有程序钮|MS Office|MS Office Access 2010” 即可启动
Access 运行; 以快捷方式启动: 按 Windows 操作系统在桌面建立 Access 快捷方式 (图标), 双击 Access 2010 图标启动; 以现有的 Access 程序启动:在资源管理器或我的电脑文件夹中找到相应的 Access 2010 应用程序,双击以“.accdb”为后缀的数据库文件,也可打开 Access 2010。 2. 退出 Access 退出 Access 系统可以使用以下几种方法之一: 在 Access 主菜单:打开“文件|退出” ; 在 Access 系统环境窗口:单击标题栏右上角“关闭”钮 / 或双击标题栏左上角“控制菜 单”/或单击标题栏左上角的“控制菜单|退出”按钮/或 Alt+F4 键。 1.4.2 Access 的特点 Access 2010 除了具备关系数据库管理系统所共有的功能之外,拥有很多现代数据管理任 务的独特功能,它具有以下特点: 1. 存储方式简单 Access 创建的数据库中的各种对象 (表、 查询、 窗体、 报表、 宏和模块) 都存储在一个.accdb 文件中,这样有利于整个数据库系统的迁移和维护;而象传统的 VFP 按文件扩展名, 有.dbc/dbf/cdx/scx/frx/lbxt…等 40 多类文件。 2. 广泛支持各种数据类型 除了 Access 与 MS Office 中的 Excel 共享基本数据类型外,Access 2010 还支持 OLE 数据 和 XML 数据,从而大大提高了可管理的数据类型。 3. 方便快捷的图形化工具、向导和强大的帮助信息 采用了 Office 2010 统一用户界面,共享组件的集成,并提供了许多图形化的工具和向导, 从而使用户不用编写代码便可轻松地创建和管理数据库系统。易学、易理解、易操作。 4. 提供大量的内置函数与宏 Access 2010 提供大量的内置函数与宏,从而使数据库开发人员甚至不编写程序就可以快 速地以一种无代码的方式实现各种复杂的数据操作与任务管理。 5. 增强的数据库网络功能与较强的安全性 Access 提供了创建数据访问页的功能,这是一种可以发布到网络上的 Web 页面,用户通
过数据访问页可以直接查询和处理数据库中的数据。 6. 提供强大的开发工具 VBA 和 MS SQL Server 7. Access 的缺点:Access 是小型数据库,既然是小型就有他根本的局限性,以下几种情 况下数据库基本上会吃不消: (1)数据库过大,一般 Access 数据库达到 50M 左右的时候性能会急剧下降。 (2)网站访问频繁,经常达到 100 人左右的在线。 (3)记录数过多,一般记录数达到 10 万条左右的时候性能就会急剧下降。 1.4.3 Access 2010 的主界面 Access 2010 的主界面是打开数据库窗口创建数据库对象、显示查询结果以及显示报表的 地方,它提供了完成数据库各种任务的工作界面。Access 2010 的主界面是典型的 Windows 窗 口,包括标题栏、功能区(菜单栏、工具栏)以及状态栏。首次打开主窗口时会同时打开“新 建文件”任务窗格。下面就 Access 2010 的主界面给以介绍。 1.4.3.1 Backstage 视图 Backstage 视图占据功能区上的“文件”选项卡,并包含很多以前出现在 Access 早期版 本的“文件”菜单中的命令。Backstage 视图还包含适用于整个数据库文件的其他命令。
单击“文件”选项卡后,会看到 Microsoft Office Backstage 视图。如图 1.10 启动时的 Backstage 视图。在 1.4.5.5 节再给以介绍。 图 1.10 Access 启动时的 Backstage 视图 1.4.3.2 功能区 功能区是菜单和工具栏的主要替代部分,并提供了 Access 2010 中主要的命令界面。功能 区的主要优势之一是,它将通常需要使用菜单、工具栏、任务窗格和其他用户界面组件才能显 示的任务或入口点集中在一个地方,这样一来,用户只需在一个位置查找命令,而不用四处查 找命令, 这样用户使用起来更加方便。 Access 2010 版默认的功能区包含 “文件” 、 “开始” 、 “创 建” 、 “外部数据”和“数据库工具”五个选项(卡),其功能区如图 1.11 所示。
(a)开始功能区 (b)创建功能区 (c)外部数据功能区 (d)数据库工具功能区 图 1.11 Access 2010 各功能区示意图 每个选项卡都包含多组相关命令,这些命令组展现了其他一些新的 UI 元素(例如样式 库,它是一种新的控件类型,能够以可视方式表示选择)。 功能区上提供的命令还反映了当前活动对象。例如,如果用户已在数据表视图中打开了 一个表,并单击“创建”选项卡上的“窗体” ,那么在“窗体”组中,Access 将根据活动表创 建窗体。 除系统默认的功能区外,用户还可以对功能区进行个性化设置,用户可以创建自定义选 项卡和自定义组来包含自己所常用的命令。打开“自定义功能区”的方法为:单击“文件”选 项卡,在“帮助”下,单击“选项” ,单击“自定义功能区”得到图 1.12,用户可以根据选项 设置属于自己的个性化功能区。 图 1.12 自定义功能区
1.4.3.3 快速访问工具栏 快速访问工具栏是一个可自定义的工具栏,它包含一组独立于当前显示的功能区选项卡 上的命令。快速访问工具栏默认位置在 Microsoft Office 程序图标旁的左上角(如图 1.13(a) 所示), 也可以通过自定义快速访问工具栏将其设置在功能区的正文下方 (如图 1.13 (b) 所示)。 用户可以从上面两个可能的位置之一移动快速访问工具栏, 并且可以向快速访问工具栏中添加 代表命令的按钮。 (a) (b) 图 1.13 快速访问工具栏 1.4.3.4 导航窗格 在打开数据库或创建新数据库时,数据库对象的名称将显示在导航窗格中。数据库对象 包括表、窗体、报表、页、宏和模块。导航窗格取代了早期版本的 Access 中所用的数据库窗 口 (如果在以前版本中使用数据库窗口执行任务, 那么现在可以使用导航窗格来执行同样的任 务)。例如,如果要在数据表视图中将行添加到表,则可以从导航窗格中打开该表,如图 1.14 所示。 图 1.14 导航窗格 1.4.3.5 对象选项卡式文档 启动 Office Access 2010 后,可以用对象选项卡式文档代替重叠窗口来显示数据库对象。 为便于日常的交互使用,用户可能更愿意采用选项卡式文档界面。通过设置 Access 选项可以 启用或禁用选项卡式文档。不过,如果要更改选项卡式文档设置,则必须先关闭,然后重新打 开数据库,新设置才能生效,如图 1.15 所示。
图 1.15 对象选项卡 1.4.3.6 状态栏 与早期版本 Access 一样,Access 2010 中也会在窗口底部显示状态栏。继续保留此状态 是为了查找状态消息、属性提示、进度指示等。在 Access 2010 中,状态栏也具有两项标准 功能,与在其他 Office 2010 程序中看到的状态栏相同:视图/窗口切换和缩放。 用户可以使用状态栏上的可用控件,在可用视图之间快速切换活动窗口。如果要查看支 持可变缩放的对象, 则可以使用状态栏上的滑块, 调整缩放比例以放大或缩小对象。 在 “Access 选项”对话框中,可以启用或禁用状态栏。 1.4.3.7 浮动工具栏 在 Access 2007 之前的 Access 版本中,设置文本格式通常需要使用菜单或显示“设置格 式”工具栏。使用 Access 2010 时,可以使用浮动工具栏更加轻松地设置文本格式。选择要设 置格式的文本后, 浮动工具栏会自动出现在所选文本的上方。 如果将鼠标指针靠近浮动工具栏, 则浮动工具栏会渐渐淡入,而且可以用它来应用加粗、倾斜、字号、颜色等等。如果将指针移 开浮动工具栏, 则该工具栏会慢慢淡出。 如果不想使用浮动工具栏将文本格式应用于选择的内 容,只需将指针移开一段距离,浮动工具栏即会消失。 1.4.4 Access 2010 数据库的系统结构-数据库对象 Access 将数据库定义为一个扩展名为.accdb 文件,里面主要包含有 6 种不同的对象,他们 是表、查询、窗体、报表、宏、和模块等。其中每个对象又可以包含多个具体的实例。这些对 象将在后面各章中逐一介绍。 1.4.5 Access 2010 新增功能简介 Access 2010 在以前版本的基础上对部分功能进行了改进,同时增加了许多功能。所有的 改进和新增功能都是为了使用更加方便。 使用预建的模板帮助用户开始使用数据库, 使用强大 的工具满足用户的数据增长需要。Access 2010 让用户能充分利用各种的信息,并且让学习和 使用的代价更小、成本更低。此外,通过与各种数据源的无缝连接以及各种数据集工具,可以 自然地进行协作。Access 2010 使数据变得更容易管理,更容易分析,更容易与他人共享,从 而放大了数据的力量。使用新的 Web 数据库和 SharePoint Server 2010,用户与数据的距离永 远只有一个 Web 浏览器而已。下面是 Access 2010 新增功能简介。 1.4.5.1 新的宏生成器 Access 2010 包含一个新的宏生成器,使用宏生成器不仅可以更轻松地创建、编辑和数据 库逻辑自动化,还可以更高效地工作、减少编码错误,并轻松地整合更复杂的逻辑以创建功能
强大的应用程序,如图 1.16 所示。 图 1.16 宏设计工具 数据宏:在数据表视图中查看表时,可从“表”选项卡管理数据宏(如图 1.17 所示) ,数 据宏不显示在导航窗格的“宏”下。数据宏的类型主要有两种:一种是由表事件触发的数据宏 (也称“事件驱动的”数据宏),一种是为响应按名称调用而运行的数据宏(也称“已命名的” 数据宏)。 图 1.17 表的数据宏 (1)事件驱动的数据宏:每当在表中添加、更新或删除数据时,都会发生表事件。用户 可以编写一个数据宏程序, 使其在发生这三种事件中的任一种事件之后, 或发生删除或更改事 件之前立即运行。 (2)已命名的数据宏:已命名的或“独立的”数据宏与特定表有关,但不是与特定事件 相关。用户可以从任何其他数据宏或标准宏调用已命名的数据宏。 1.4.5.2 专业的数据库模板 Access 2010 包括一套经过专业化设计的数据库模板,可用来跟踪联系人、任务、事件、 学生和资产及其他类型的数据。用户可以立即使用它们,也可以对其进行增强和调整,以完全 按照所需的方式跟踪信息。
模板是一个完整的跟踪应用程序,其中包含预定义表、窗体、报表、查询、宏和关系。 这些模板被设计为可立即使用,这样用户就可以快速开始工作。下面介绍模板使用窗口,打开 Access 2010,就可以看到“样本模板” ,在 Access 2010 已经内置了很多款模板供用户选择, 用户可根据需要选择合适的模板使用,如图 1.18 所示。 图 1.18 Access 模板 1.4.5.3 应用程序部件 应用程序部件是 Access 2010 中的新增功能,它是一个模板,构成数据库的一部分(如预 设格式的表或者具有关联窗体和报表的表) 。例如,如果向数据库中添加“任务”应用程序部 件,用户将获得“任务”表、 “任务”窗体以及用于将“任务”表与数据库中的其他表相关联 的选项。窗体应用程序部件如图 1.19 所示。 图 1.19 窗体应用程序部件 1.4.5.4 改进的数据表视图 在 Access 2010 中用户可无须提前定义字段即可创建表及开始使用表,用户只需单击“创 建”选项卡上的“表”按钮,然后在出现的新数据表中输入数据即可。Access 2010 会自动确 定适合每个字段的最佳数据类型,这样,用户便能立刻开始工作。 “单击以添加”列显示添加 新字段的位置。 如果需要更改新字段或现有字段的数据类型或显示格式, 可以通过使用功能区 上“字段”选项卡下的命令进行更改,如图 1.20 所示。
图 1.20 数据表视图 除此之外,它还可以将 Microsoft Excel 表中的数据粘贴到新的数据表中,Access 2010 会 自动创建所有字段并识别数据类型。 1.4.5.5 Backstage 视图 在 Office 2010 应用程序中,用 Backstage 视图取代了传统的“文件”菜单。在 Access 2010 中用户可通过全新的 Microsoft Office Backstage™视图管理自己的数据库,并更快更直接地找 到所需数据库工具,从而为管理数据库和自定义 Access 体验提供了一个集中的有序空间。 通过这个位置,用户可以创建新数据库、打开现有数据库、执行很多文件和数据库维护 任务,通过 SharePoint Server 将数据库发布到 Web,可以检查数据库的 Web 兼容性,定义表 格关系并设置密码打开数据库等。用户还可以查找共享选项,比如新添加的功能,将数据库保 存为模板或者备份数据库等。 1.4.5.6 新增的计算字段 Access 2010 中新增的计算字段允许存储计算结果。 可以创建一个字段,以显示根据同一表中的其他数据计算而来的值。可以使用表达式生 成器来创建计算,以便利用智能感知功能轻松访问有关表达式值的帮助。 但请注意,其他表中的数据不能用作计算数据的源,有些计算字段不支持某些表达式。 1.4.5.7 合并与分割单元格 Access 2010 中引入的布局是可作为一个单元移动和调整大小的控件组。在 Access 2010 中,对布局进行了增强,允许更加灵活地在窗体和报表上放置控件。可以水平或垂直拆分或合 并单元格,从而能够轻松地重排字段、列或行。 1.4.5.8 条件格式功能 Access 2010 新增了设置条件格式的功能, 使用户能够实现一些与 Excel 中提供的相同的 格式样式。 使用条件格式, 可根据值本身或包含其他值的计算来对报表中的各个值应用不同的 格式,这种方式可帮助用户了解以其他方式可能难以发现的数据模式和关系。 1.4.5.9 增强的安全性
Access 2010 利用增强的安全功能及与 Windows SharePoint Services 的高度集成,可以更
有效地管理数据, 并能使信息跟踪应用程序比以往更加安全。 通过将跟踪应用程序数据存储在
Windows SharePoint Services 上的列表中,可以审核修订历史记录、恢复已删除的信息及配置 数据访问权限。
本章小结
关概念、数据库系统和数据库管理系统的组成和功能,介绍了关系模型的特点和关系运算,并 对数据库设计方法作了较全面的描述,最后介绍了 Access 2010 关系型数据库管理系统的操作 界面及其对象。 本章要点归纳如下: 1.数据库中的数据可以是数字、字符、汉字、声音、图形、图像等。 2.数据处理是指对数据的收集、整理、存储、分类、排序、检索、计算和加工、传输等 操作。数据处理的目的就是从原始数据中得到有用的信息。即数据是信息的载体,信息是数据 处理的结果。 3.数据处理技术发展经历了人工管理、文件系统、数据库系统、分布式系统。 4.数据库系统的特点,结构化、减少数据冗余、数据共享、数据完整性、安全性和并发 控制等。 5.数据模型,数据联系(实体、属性、关键字、域、联系类型);概念模型(ER 图描述)、 逻辑模型(层次、网状、关系、面向对象)。 6.数据库管理系统的功能有:定义、操纵、控制、维护、数据字典等。 7.数据库系统的组成,从硬件到数据库终端用户可划分七个层次:硬件、操作系统、数 据库、数据库管理系统、数据库应用开发工具、数据库应用系统和数据库终端用户; 数据库管理系统是负责数据库存取、维护、管理的系统软件。 使用数据库系统的用户分为四种类型:数据库管理员(DataBase Administrator,DBA)、 数据库设计员(系统分析员 System Analyst,SA)、应用程序员(Application Programmer,AP) 和数据库终端用户(End User)。 8.关系数据库与相关的数学理论 (1)关系数据结构 域、笛卡儿积、关系、关键字(主关键字、候选关键字、外关键字)、 关系模式。 (2)关系完整性 实体完整性、参照完整性、用户定义的完整性。 (3)关系代数 传统的集合运算(并、交、差、广义笛卡儿积)。 (4)专门的关系运算(选择、投影、连接、等值连接、自然连接)。
习题 1
一、选择题 1.用二维表来表示实体及实体之间联系的数据模型是( ) 。 A.实体-联系模型 B.层次模型 C.网状模型 D.关系模型 2.从关系中找出满足给定条件的元组的操作称为( ) 。 A.选择 B.投影 C.联接 D.自然联接 3.Access 的数据库类型是( ) 。 A.层次数据库 B.网状数据库 C.关系数据库 D.面向对象数据库 4.数据库技术是从 20 世纪( )年代中期开始发展的。A.60 B.70 C.80 D.90 5.数据模型反映的是( ) 。 A.事物本身的数据和相关事物之间的联系 B.事物本身所包含的数据 C.记录中所包含的全部数据 D.记录本身的数据和相互关系 6.二维表由行和列组成,每一行表示关系的一个( ) 。 A.属性 B.字段 C.集合 D.记录 7.为了合理组织数据,应遵从的设计原则是( ) 。 A. “一事一地”原则,即一个表描述一个实体或实体间的一种关系 B.表中的字段必须是原始数据和基本数据元素,并避免在之间出现重复字段 C.用外部关键字保证有关联的表之间的联系 D.以上各条原则都包括 8.关系数据库是以( )为基本结构而形成的数据集合。 A.数据表 B.关系模型 C.数据模型 D.关系代数 9.关系数据库中的数据表( ) 。 A.完全独立,相互没有关系 B.相互联系,不能单独存在 C.既相对独立,又相互联系 D.以数据表名来表现其相互间的联系 10.以下叙述中,正确的是( ) 。 A.Access 只能使用菜单或任务窗格创建数据库应用系统 B.Access 不具备程序设计能力 C.Access 只具备了模块化程序设计能力 D.Access 具有面向对象的程序设计能力,并能创建复杂的数据库应用系统 11.数据库系统的核心是( ) 。 A.数据模型 B.数据库管理系统 C.数据库 D.数据库管理员 12.下列实体的联系中,属于多对多联系的是( ) 。 A.学生与课程 B.学生与校长 C.住院的病人与病床 D.职工与工资 13.在关系运算中,投影运算的含义是( ) 。 A.在基本表中选择满足条件的记录组成一个新的关系 B.在基本表中选择需要的字段(属性)组成一个新的关系 C.在基本表中选择满足条件的记录和属性组成一个新的关系 D.上述说法均是正确的 14.在教师表中,如果要找出职称为“教授”的教师,所采用的关系运算是( ) 。 A.选择 B.投影 C.连接 D.自然连接 15.常见的数据模型有 3 种,它们是( ) 。 A.网状、关系和语义 B.层次、关系和网状 C.环状、层次和关系 D.字段名、字段类型和记录
16.新版本的 Access 2010 的默认数据库格式是( ) 。
A.MDB B.ACCDB C.ACCDE D.MDE
17.Access 中表和数据库之间的关系是( )。 A.一个数据库可以包含多个表 B.数据库就是数据表 C.一个表可以包含多个数据库 D.一个表只能包含两个数据库 (以下是多项选择题) 18.在 Access 数据库的六大对象中,用于存储数据的数据库对象是( ) ,用于和用户 进行交互的数据库对象是( )。 A.表 B.查询 C.窗体 D.报表 19.在 Access 2010 中,随着打开数据库对象的不同而不同的操作区域称为( ) 。 A.命令选项卡 B.上下文命令选项卡 C.导航窗格 D.工具栏 二、填空题 1.计算机数据管理的发展分________、________、________、________等几个阶段。 2.在关系数据库的基本操作中,从表中取出满足条件的元组的操作称为________;把两 个关系中相同属性值的元组联接到一起形成新的二维表的操作称为________; 从表中抽取属性 值满足条件列的操作称为________。 3.一个关系表的行称为________。 4.Access 2010 数据库的文件扩展名是________。 5.在关系数据库中,将数据表示为二维表的形式,每一个二维表称为________。 6.实体之间的对应关系称为联系,有如下 3 种类型:________、________和________。 7.任何一个数据库管理系统都基于某种数据模型的。数据库管理系统所支持的数据模型 有 3 种:________、________和________。 8.两个结构相同的关系 R 和 S,R________S 的结构是由属于 R 但不属于 S 的元组组成 的集合。 9.目前常用的数据库管理系统软件有________、________和________等。 10.Access 2010 数据库由数据库对象组成,其中对象分为 6 种:________、________、 ________、________、________和________。 三、简答题 1.什么是数据?什么是数据处理? 2.实体之间联系有哪 3 种类型?举例说明。 3.共有哪 3 种数据模型?各有什么特点? 4.数据库系统由哪几部分组成?DBS 和 DBMS 什么关系? 5.简述数据库管理系统的主要功能。 6.Access 2010 界面由哪几部分组成? 7.简述下列工具的作用: (1)向导; (2)设计器; (3)生成器 8.关系规范化的意义是什么? 9.数据库的用户可分为哪几类?
10.关系、元组、属性指的是什么? 11.Access 的主要特点是什么? 12.Access 2010 版有哪些新功能? 13.如何将 Excel 表导入到 Access 2010 中? 14.简述 Access 数据库的六大对象的基本特点。 15.请自已分析下面关系中的关键字: R1 学生(学号,姓名,性别,年龄,身份证号,专业,班级) R2 班级(班级号,班级名,班主任) R3 课程(课程号,课程名,学分) R4 选课(学号,课程号,成绩) 16.实例分析: 假设一个关系为 R(A,B,C,D,E),它的最小函数依赖集为 FD{A>B,C>D,C>E},则该关 系的候选关键字为什么?该关系属于第几范式, 请简要地说明理由, 若要规范化到高一级的范 式,则将得到什么样的关系。 解答:该关系的候选关键字是(A,C)。因为该关系中存在有非主属性对候选关键字的部分 函数数据依赖,即 A>B,C>D,C>E,其中 B,D 和 E 只依赖于候选关键字的部分 A 和 C, 所以该关系只属于第一范式。 若要规范化到高一级的范式,则需要将关系 R 根据属性对候选关键字的部分依赖拆分成 三个关系,它们分别为:R1(A,B)和 R2(C,D,E),R3(A,C),这三个关系达到了 BC 范式要求。