Access数据库基础与应用(第2版)
第1章 数据库基础知识 本章要点 数据库技术的产生背景与发展概况。 数据库系统的组成与特点。 数据模型的概念及关系模型的基本知识。 第1章 数据库基础知识 本章要点 数据库技术的产生背景与发展概况。 数据库系统的组成与特点。 数据模型的概念及关系模型的基本知识。 数据库的设计方法。
1.1 数据库技术的产生与发展 1.1.1 数据与数据处理 1.数据和信息 数据是人们用于记录事物情况的物理符号。 1.1 数据库技术的产生与发展 1.1.1 数据与数据处理 1.数据和信息 数据是人们用于记录事物情况的物理符号。 信息是数据中所包含的意义。信息是经过加工处理并对人类社会实践和生产活动产生决策影响的数据。 数据是用来表示信息的,但并非任何数据都能表示信息;信息是加工处理后的数据,是数据所表达的内容。信息不随表示它的数据形式而改变,它是反映客观现实世界的知识;而数据则具有任意性,用不同的数据形式可以表示同样的信息。
2.数据处理 数据处理是指将数据转换成信息的过程,它包括对数据的收集、存储、分类、计算、加工、检索和传输等一系列活动。 计算机是一个具有程序执行能力的数据处理工具,如图所示。
1.1.2 数据库技术的发展过程 1.人工管理阶段 20世纪50年代中期以前,数据管理是以人工管理方式进行的。数据管理的特点如下。 (1)数据不保存 (2)由应用程序管理数据 (3)数据有冗余,无法实现共享 (4)数据对应用程序不具有独立性
2.文件管理阶段 20世纪50年代后期至60年代后期,计算机开始大量用于数据管理。 数据处理应用程序利用操作系统的文件管理功能,将相关数据按一定的规则构成文件,通过文件系统对文件中的数据进行存取和管理,实现数据的文件管理方式。其特点可概括为如下两点。 数据可以长期保存 数据对应用程序有一定的独立性
当数据量增加、使用数据的用户越来越多时,文件管理便不能适应更有效地使用数据的需要了,其症结表现在3个方面。 (1)数据的共享性差、冗余度大,容易造成数据不一致 (2)数据独立性差 (3)数据之间缺乏有机的联系,缺乏对数据的统一控制和管理
3.数据库管理阶段 20世纪60年代后期,数据管理技术在文件管理的基础上发展到数据库管理。 数据库(Database,DB)是按一定的组织方式存储起来的、相互关联的数据集合。在数据库管理阶段,由一种叫做数据库管理系统(Database Management System,DBMS)的系统软件来对数据进行统一的控制和管理。 在应用程序和数据库之间保持较高的独立性,数据具有完整性、一致性和安全性高等特点,并且具有充分的共享性,有效地减少了数据冗余。
4.新型数据库系统 数据库技术的发展先后经历了层次数据库、网状数据库和关系数据库。层次数据库和网状数据库可以看作第1代数据库系统,关系数据库可以看作第2代数据库系统。实际应用中涌现出的许多问题,促使数据库技术不断向前发展,出现了许多不同类型的新型数据库系统。 (1)分布式数据库系统 (2)面向对象数据库系统 (3)多媒体数据库系统 (4)数据仓库技术
1.2 数据库系统 1.2.1 数据库系统的组成 数据库系统是由计算机系统、数据库及其描述机构、数据库管理系统和有关人员组成的具有高度组织性的整体。 1.计算机硬件 计算机硬件是数据库系统的物质基础,是存储数据库及运行数据库管理系统的硬件资源,主要包括计算机主机、存储设备、输入输出设备及计算机网络环境。
2.计算机软件 数据库系统中的软件包括操作系统、数据库管理系统及数据库应用系统等。 数据库管理系统是数据库系统的核心软件之一,它提供数据定义、数据操纵、数据库管理、数据库建立和维护及通信等功能。数据库管理系统必须运行在相应的系统平台上,有操作系统和相关系统软件的支持。 数据库应用系统是指系统开发人员利用数据库系统资源开发出来的、面向某一类实际应用的应用软件系统。
3.数据库 数据库是指数据库系统中按照一定的方式组织的、存储在外部存储设备上的、能为多个用户共享的、与应用程序相互独立的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。 4.数据库系统的有关人员 数据库系统的有关人员主要有3类:最终用户、数据库应用系统开发人员和数据库管理员(Database Administrator,DBA)。
1.2.2 数据库的结构体系 数据库领域公认的标准结构是三级模式结构及二级映射,三级模式包括外模式、概念模式和内模式,二级映射则分别是概念模式/内模式的映射及外模式/概念模式的映射。这种三级模式与二级映射构成了数据库的结构体系,如图所示。
1.数据库的三级模式 (1)概念模式 概念模式又称逻辑模式,或简称为模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。 (2)外模式 外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从概念模式导出的一个子集,包含概念模式中允许特定用户使用的那部分数据。
(3)内模式 内模式又称存储模式或物理模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。
2.三级模式间的二级映射 为了实现这3个抽象级别的联系和转换,数据库管理系统在三级模式之间提供了二级映射,正是这二级映射保证了数据库中的数据具有较高的物理独立性和逻辑独立性。 (1)概念模式/内模式的映射 (2)外模式/概念模式的映射
1.2.3 数据库系统的特点 1.数据结构化 在数据库系统中,每一个数据库都是为某一应用领域服务的,这些应用彼此之间都有着密切的联系。因此,在数据库系统中不仅要考虑某个应用的数据结构,还要考虑整个组织(多个应用)的数据结构。这种数据组织方式使数据结构化了,这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。
2.数据共享性高、冗余度低 数据共享是指多个用户或应用程序可以访问同一个数据库中的数据,而且数据库管理系统提供并发和协调机制,保证在多个应用程序同时访问、存取和操作数据库数据时,不产生任何冲突,从而保证数据不遭到破坏。 数据冗余既浪费存储空间,又容易产生数据不一致等问题。
3.具有较高的数据独立性 数据独立性是指应用程序与数据库的数据结构之间相互独立。在数据库系统中,因为采用了数据库的三级模式结构,保证了数据库中数据的独立性。在数据存储结构改变时,不影响数据的全局逻辑结构,这样保证了数据的物理独立性。在全局逻辑结构改变时,不影响用户的局部逻辑结构及应用程序,这样就保证了数据的逻辑独立性。
4.有统一的数据控制功能 数据库管理系统提供了一套有效的数据控制手段,包括数据安全性控制、数据完整性控制、数据库的并发控制和数据库的恢复等,增强了多用户环境下数据的安全性和一致性保护。
1.3 数据模型 1.3.1 数据模型的组成要素 在数据库技术中,用数据模型(Data Model)来对现实世界中的数据进行抽象和表示。 1.3 数据模型 在数据库技术中,用数据模型(Data Model)来对现实世界中的数据进行抽象和表示。 1.3.1 数据模型的组成要素 数据结构、数据操作及数据的完整性约束也被称为数据模型的3个组成要素。 1.数据结构 数据结构研究数据之间的组织形式(数据的逻辑结构)、数据的存储形式(数据的物理结构)及数据对象的类型等。存储在数据库中的对象类型的集合是数据库的组成部分。 在数据库系统中,通常按照其数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。
2.数据操作 数据操作用于描述系统的动态特性,是指对数据库中的各种数据所允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有查询和更新(包括插入、删除和修改等)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)及实现操作的语言。 3.数据的完整性约束 数据的完整性约束是一组完整性规则的集合。数据模型应该反映和规定数据必须遵守的、基本的、通用的完整性约束。此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体所涉及的数据必须遵守的、特定的语义约束条件。
1.3.2 数据抽象的过程 数据模型是对现实世界进行抽象和转换的结果,这一过程如图所示。
1.对现实世界的抽象 计算机处理的对象是现实世界中的客观事物,在对其实施处理的过程中,首先应了解和熟悉现实世界,从对现实世界的调查和观察中抽象出大量描述客观事物的事实,再对这些事实进行整理、分类和规范,进而将规范化的事实数据化,最终实现由数据库系统存储和处理。 2.观念世界中的概念模型 概念模型的特征是按用户需求观点对数据进行建模,表达了数据的全局逻辑结构,是系统用户对整个应用项目涉及的数据的全面描述。概念模型主要用于数据库设计,它独立于实现时的数据库管理系统。 概念模型的表示方法很多,目前较常用的是E-R模型。
3.机器世界中的逻辑模型和物理模型 在选定数据库管理系统后,就要将E-R图表示的概念模型转换为具体的数据库管理系统支持的逻辑模型。通常,也把数据的逻辑模型直接称为数据模型。数据库系统中主要的逻辑模型有层次模型、网状模型和关系模型。 物理模型是对数据最底层的抽象,用以描述数据在物理存储介质上的组织结构,与具体的数据库管理系统、操作系统和硬件有关。
1.3.3 概念模型 1.实体与实体集 实体(Entity)是现实世界中任何可以相互区分和识别的事物,它可以是能触及的客观对象,还可以是抽象的事件。 性质相同的同类实体的集合称为实体集(Entity Set)。 2.属性 每个实体都具有一定的特征或性质,这样才能区分一个个实体。实体的特征称为属性(Attribute),一个实体可用若干属性来刻画。 能唯一标识实体的属性或属性集称为实体标识符。
3.类型与值 属性和实体都有类型(Type)和值(Value)之分。属性类型就是属性名及其取值类型,属性值就是属性所取的具体值。属性类型是个变量,属性值是变量所取的值,而值域是变量的取值范围。 实体类型就是实体的结构描述,通常是实体名和属性名的集合。具有相同属性的实体,有相同的实体类型。实体值是一个具体的实体,是属性值的集合。
4.实体间的联系 (1)一对一联系 如果对于实体集A中的每一个实体,实体集B中至多只有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1。 (2)一对多联系 如果对于实体集A中的每一个实体,实体集B中可以有多个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1∶n。 (3)多对多联系 如果对于实体集A中的每一个实体,实体集B中可以有多个实体与之联系,而对于实体集B中的每一个实体,实体集A中也可以有多个实体与之联系,则称实体集A与实体集B之间有多对多联系,记为m∶n。
5.E-R图 E-R图是用一种直观的图形方式建立现实世界中实体及其联系模型的工具,也是数据库设计的一种基本工具。 E-R图用矩形框表示现实世界中的实体,用菱形框表示实体间的联系,用椭圆形框表示实体和联系的属性。下图用来表示读者实体和图书实体的多对多联系模型。
1.3.4 逻辑模型 1.层次模型 层次模型(Hierarchical Model)用树形结构来表示实体及其之间的联系。根据树形结构的特点,建立数据的层次模型需要满足如下两个条件。 ①有一个结点没有父结点,这个结点即根结点。 ②其他结点有且仅有一个父结点。 2.网状模型 网状模型(Network Model)用以实体类型为结点的有向图来表示各实体及其之间的联系。其特点如下。 ①可以有一个以上的结点无父结点。 ②至少有一个结点有多于一个的父结点。
3.关系模型 关系模型(Relational Model)用二维表格来表示实体及其相互之间的联系。在关系模型中,把实体集看成一个二维表,每一个二维表称为一个关系。每个关系均有一个名字,称为关系名。 关系模型是由若干个关系模式(Relational Schema)组成的集合,关系模式就相当于前面提到的实体类型,它的实例称为关系(Relation)。
1.4 关 系 模 型 1.4.1 关系模型的基本概念 1.关系 通常将一个没有重复行、重复列,并且每个行列的交叉点只有一个基本数据的二维表格看成一个关系。二维表格包括表头和表中的内容,相应地,关系包括关系模式和记录的值,表包括表结构(记录类型)和表的记录,而满足一定条件的规范化关系的集合,就构成了关系模型。
关系是一种规范化了的二维表格。在关系模型中,对关系作了种种规范性限制,关系具有以下6条性质。 ①关系必须规范化,每一个属性都必须是不可再分的数据项。 ②每一列中的分量是同一类型的数据,来自同一个域。 ③在同一关系中不允许出现相同的属性名。 ④关系中不允许有完全相同的元组。 ⑤在同一关系中元组的次序无关紧要。 ⑥在同一关系中属性的次序无关紧要。
2.元组 二维表格的每一行在关系中称为元组(Tuple),相当于表的一条记录(Record)。二维表格的一行描述了现实世界中的一个实体。在关系数据库中,行是不能重复的,即不允许两行的全部元素完全对应相同。
3.属性 二维表格的每一列在关系中称为属性(Attribute),相当于记录中的一个字段(Field)或数据项。每个属性有一个属性名,一个属性在其每个元组上的值称为属性值,因此,一个属性包括多个属性值,只有在指定元组的情况下,属性值才是确定的。同时,每个属性有一定的取值范围,称为该属性的值域。同样,在关系数据库中,列是不能重复的,即关系的属性不允许重复。属性必须是不可再分的,即属性是一个基本的数据项,不能是几个数据的组合项。
4.关键字 关系中能唯一区分、确定不同元组的单个属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”,因为“空值”无法唯一地区分、确定元组。所谓“空值”,就是“不知道”或“不确定”的值。 关系中能够作为关键字的属性或属性组合可能不是唯一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字(Candidate Key)。 在候选关键字中选定一个作为关键字,称为该关系的主关键字或主键(Primary Key)。关系中主关键字是唯一的。
5.外部关键字 如果关系中某个属性或属性组合并非本关系的关键字,但却是另一个关系的关键字,则称这样的属性或属性组合为本关系的外部关键字或外键(Foreign Key)。在关系数据库中,用外部关键字表示两个表之间的联系。
1.4.2 关系运算 将关系与二维表进行比较可以看出两者存在简单的对应关系,关系模式对应一个二维表的表头,而关系的一个元组就是二维表的一行。在很多时候,甚至不加区别地使用这两个概念。例如,职工关系R={(E1,张一,女),(E2,王二,男),(E3,李三,男),(E3,成四,女)},相应的二维表格表示形式如表所示。 职工关系R 编号 姓名 性别 E1 张一 女 E2 王二 男 E3 李三 E4 成四
1.传统的关系运算 (1)并(Union) 设R和S同为n元关系,且相应的属性取自同一个域,则R和S的并也是一个n元关系,记作R∪S。R∪S包含了所有分属于R和S或同属于R和S的元组。因为集合中不允许有重复元素,因此,同时属于R和S的元组在R∪S中只出现一次。 (2)差(Difference) 设R和S同为n元关系,且相应的属性取自同一个域,则R和S的差也是一个n元关系,记作R-S。R-S包含了所有属于R但不属于S的元组。
(3)交(Intersection) 设R和S同为n元关系,且相应的属性取自同一个域,则R和S的交也是一个n元关系,记作R∩S。R∩S包含了所有同属于R和S的元组。 实际上,交运算可以通过差运算的组合来实现,如A∩B=A-(A-B)或B-(B-A)。 (4)广义笛卡尔积 设R是一个包含m个元组的j元关系,S是一个包含n个元组的k元关系,则R和S的广义笛卡尔积是一个包含m×n个元组的j+k元关系,记作R×S,并定义 R×S={(r1,r2,…,rj,s1,s2,…,sk)|(r1,r2,…,rj)∈R且{s1,s2,…,sk}∈S} 即R×S的每个元组的前j个分量是R中的一个元组,而后k个分量是S中的一个元组。
例1-1 设R={(a1,b1,c1),(a1,b2,c2),(a2,b2,c1)},S={(a1,b2,c2),(a1,b3,c2),(a2,b2,c1)},求R∪S,R-S,R∩S,R×S。 根据运算规则,有如下结果。 R∪S={(a1,b1,c1),(a1,b2,c2),(a2,b2,c1),(a1,b3,c2)} R-S={(a1,b1,c1)} R∩S={(a1,b2,c2),(a2,b2,c1)} R×S={(a1,b1,c1,a1,b2,c2),(a1,b1,c1,a1,b3,c2),(a1,b1,c1,a2,b2,c1),(a1,b2,c2,a1,b2,c2),(a1,b2,c2,a1,b3,c2),(a1,b2,c2,a2,b2,c1),(a2,b2,c1,a1,b2,c2),(a2,b2,c1,a1,b3,c2),(a2,b2,c1,a2,b2,c1)} R×S是一个包含9个元组的6元关系。
2.专门的关系运算 (1)选择(Selection) 设R={(a1,a2,…,an)}是一个n元关系,F是关于(a1,a2,…,an)的一个条件,R中所有满足F条件的元组组成的子关系称为R的一个选择,记作σF(R),并定义 σF(R)={(a1,a2,…,an)|(a1,a2,…,an)∈R且(a1,a2,…,an)满足条件F} 简言之,对R关系按一定规则筛选一个子集的过程就是对R施加了一次选择运算。
(2)投影(Projection) 设R=R(A1,A2,…,An)是一个n元关系,{i1,i2,…,im}是{1,2,…,n}的一个子集,并且i1<i2<…<im,定义 即π(R)是R中只保留属性 的新的关系,称π(R)是R在 属性上的一个投影,通常记作 通俗地讲,关系R上的投影是从R中选择出若干属性列组成新的关系。
(3)连接(Join) 连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作 R S 其中A和B分别为R和S上维数相等且可比的属性组,θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。
连接运算中有两种最为重要也最为常用的连接,一种是等值连接,另一种是自然连接。θ为“=”的连接运算称为等值连接,它是从关系R与S的笛卡尔积中选取A和B属性值相等的那些元组。自然连接是一种特殊的等值连接,它要求在结果中把重复的属性去掉。一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
例1-2 一个关系数据库由职工关系E和工资关系W组成,关系模式如下。 写出实现以下功能的关系运算表达式。 ①查询全体男职工的信息。 ②查询全体男职工的编号和姓名。 ③查询全体职工的基本工资、标准津贴和业绩津贴。
1.4.3 关系的完整性约束 在关系模型中,数据完整性包括实体完整性(Entity Integrity)、参照完整性(Referential Integrity)及用户自定义完整性(User defined Integrity)3种。 1.实体完整性 现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主关键字作为唯一性标识。 实体完整性就是指关系的主属性不能取“空值”,并且不允许两个元组的关键字值相同。也就是一个二维表中没有两个完全相同的行,因此实体完整性也称为行完整性。
2.参照完整性 设F是关系R的一个或一组属性,但不是关系R的关键字,如果F与关系S的主关键字Ks相对应,则称F是关系R的外部关键字,并称关系R为参照关系(Referencing Relation),关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。 参照完整性规则就是定义外部关键字与主关键字之间的引用规则,即对于R中每个元组在F上的值必须取“空值”或等于S中某个元组的主关键字值。
3.用户自定义完整性 实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户自定义完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求,如规定关系中某一属性的取值范围。
1.5 数据库的设计方法 1.5.1 数据库设计的基本步骤 考虑数据库及其应用系统开发全过程,可以将数据库设计分为6个阶段:需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行和维护。 1.需求分析阶段 需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、行业等),充分了解用户单位目前的工作状况,明确用户的各种需求,然后在此基础上确定新系统的功能。
2.概念设计阶段 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念设计,它是整个数据库设计的关键。 在需求分析阶段所得到的应用需求应该首先抽象为概念模型,以便更好、更准确地用某一数据库管理系统实现这些需求。 概念模型是各种逻辑模型的共同基础,它比逻辑模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R图。
3.逻辑设计阶段 数据库逻辑设计是将概念模型转换为逻辑模型,也就是被某个数据库管理系统所支持的数据模型,并对转换结果进行规范化处理。关系数据库的逻辑结构由一组关系模式组成,因而,从概念模型结构到关系数据库逻辑结构的转换就是将E-R图转化为关系模型的过程。
4.物理设计阶段 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
5.数据库实施阶段 完成数据库的物理设计之后,就要用数据库管理系统提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格地描述出来,成为数据库管理系统可以接收的源代码,再经过调试产生目标代码,然后就可以组织数据入库了,这就是数据库实施阶段。 数据库实施阶段包括两项重要的工作,一是数据的载入,二是应用程序的编码和调试。
6.数据库运行和维护阶段 数据库系统经过试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。在数据库系统的运行过程中,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。 在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的,它包括数据库的转储和恢复、数据库的安全性与完整性控制、数据库性能的分析和改造、数据库的重组织与重构造。
1.5.2 E-R模型到关系模型的转化 (1)1∶1联系的转化
(2)1∶n联系的转化
(3)m∶n联系的转化
1.5.3 数据库设计实例 某大学教学管理系统的E-R图如图所示。
将5个实体及2个m∶n联系转化成7个关系模式,具体结构如下。 学生(学号,姓名,性别,出生年月,专业名称) 课程(课程编号,课程名称,课程类别,学分) 选课(学号,课程编号,成绩) 教师(教师号,姓名,性别,职称,学院名称) 授课(教师号,课程编号,上课教室) 学院(学院名称,网址,教师人数) 专业(专业名称,成立年份,专业简介)