《Access数据控制与表间联系.ppt》由会员分享,可在线阅读,更多相关《Access数据控制与表间联系.ppt(41页珍藏版)》请在三一办公上搜索。
1、第4章 数据控制功能和表间关系,4.1 数据控制功能为了对数据库运行进行有效的控制和管理,确保数据库中数据的正确、有效,和数据库有效运行,RDBMS提供了数据控制功能:(1)数据的安全性控制。数据的安全性控制是指采取一定的安全保密措施以确保数据库中的数据不被非法用户存取。例如,RDBMS提供口令检查或其他手段来验证用户身份,合法用户才能进入数据库系统;RDBMS提供用户等级和数据存取权限的定义机制,系统自动检查用户能否执行这些操作,只有检查通过后才能执行允许的操作。(2)数据的完整性控制。数据的完整性控制是指RDBMS提供必要的功能确保数据库数据的正确性、有效性和一致性。(3)数据的并发控制。
2、数据的并发控制是指RDBMS必须对多用户并发进程同时存取、修改数据的操作进行控制和协调,以防止互相干扰而得到错误结果。本章将主要介绍与数据完整性控制有关的内容。,4.2 与数据完整性控制有关的字段属性,在前面,我们已经介绍了字段大小、格式、标题等字段属性。这里,我们将介绍与数据完整性控制有关的字段属性输入掩码、有效性规则和有效性文本。这3个字段属性能够尽可能地确保进入数据库的数据是正确、有效的。,4.2.1 输入掩码,使用输入掩码(Input Mask)字段属性,可以控制在表中字段的数据输入方式。输入掩码使用一些特殊字符来规定输入某些必需的数据。如果学校对学号编码的统一规定是“学号至多由10个
3、字符组成,且每个字符可以是阿拉伯数字,也可以是英文字母,但不可以是其他字符”,则需要将“学号”字段的“输入掩码”属性设置为“aaaaaaaaaa”(10个a)。这样,当输入具体学号时,每个字符或者是阿拉伯数字,或者是英文字母,而不能输入其他字符。输入掩码主要用于文本型字段和日期/时间型字段。,4.2.2 有效性规则和有效性文本,有效性规则(Validation Rule)字段属性用于指定对输入到字段中的数据的要求,当输入的数据违反了有效性规则的设置时,可以使用有效性文本(Validation Text)向用户发送提示消息。对于有效性规则属性,需要输入一个表达式以代表一个条件;而对于有效性文本属
4、性,则输入文本串以文字化提示消息。,4.2.2 有效性规则和有效性文本,【练习4-1(P50)】根据上表设置“花名册”表中相应字段的属性,然后在数据表视图中输入相应的数据并观察相应字段属性的作用。,4.3 关系概念模型E-R模型,存储在数据库中的数据反映了现实的业务情况和状态,而现实的业务问题往往是抽象和复杂的。为了将复杂的现实业务问题抽象、组织和转化为RDBMS支持的关系模型,往往需要首先根据业务问题建立概念模型,然后再在概念模型的基础上建立关系模型。,4.3.1 主要概念,实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人和物(如学生、客户、供应商、产品、运货商)
5、,也可以是抽象的概念(如订单、课程)。属性(Attribute):实体所具有的某一特性或性质。一个实体所具有的特征或性质可以用若干个属性来刻画。如一个产品实体可以用编号、名称、供应商、单位数量、单价、库存量和订购量等属性来刻画。实体集(Entity Set):同类实体的集合。如各种产品实体就构成了一个产品实体集,所有客户就构成了一个客户实体集。实体型(Entity Type):具有相同属性的实体必然具有相同类别的特征和性质。用实体名及其属性名集合来抽象和刻画的同类实体,称为实体型。例如,对于产品实体集,可以用如下实体型表示:产品(编号、名称、供应商、单位数量、单价、库存量、订购量),4.3.1
6、 主要概念,联系(Relationship):是指同一实体型内部实体之间的联系,或者指不同实体型之间通过实体发生的联系。,4.3.2 关系概念模型的表示方法E-R图,概念模型:客观现实在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。关系概念模型(简称关系模型):是关系数据库理论中描述客观事物及其联系的概念模型。实体联系方法(Entity-Relationship Approach,E-R方法):用E-R图描述现实世界的关系概念模型,也称为E-R模型(P.P.S.Chen,1976)。E-R图可以描述实体型、实体型具有的属性、实体型之间的联系一级联系的类型等多种信息。E-R图中使用专门图
7、形符号表示特定的含义:矩形框实体型,在矩形框内标明实体型名称。椭圆形实体的属性,在椭圆形内标明属性名,并用无向边将其与相应的实体矩形框连接起来。菱形联系,在菱形内标明联系名,并用无向边分别与有关的实体矩形框连接起来,表明联系的类型。如果一个联系也具有属性,则这些属性也要用无向边与该联系连接起来。,4.3.2 关系概念模型的表示方法E-R图,设A、B为两个实体集,E-R图中表示实体型之间的三种联系:一对一联系(1:1):若对于A中的每一个实体,在B中至多有一个实体与之联系;反之,对于B中的每一个实体,在A中也至多有一个实体与之联系,则称实体集A与B之间具有一对一联系,记为1:1。一对多联系(1:
8、n):若对于A中的每一个实体,在B中有n个实体(n0)与之联系;反之,对于B中的每一个实体,在A中至多只有一个实体与之联系,则称实体集A与B之间具有一对多联系,记为1:n多对多联系(m:n):如果对于A中的每一个实体,在B中有n个实体(n0)与之联系;反之,对于B中的每一个实体,在A中也有m个实体(m0)与之联系,则称实体集A与B之间具有多对多联系,记为m:n。,4.3.3 根据E-R图设计关系模式,客户,产品,客户ID,产品ID,产品名称,单位数量,单价,类别名称,类别说明,订购,m,n,公司名称,联系人姓名,地址,邮政编码,电话,发货日期,订购日期,到货日期,数量,单价,产品名称,产品ID
9、,单位数量,公司名称,客户ID,产品(产品ID、产品名称、单位数量、单价、类别名称、类别说明),客户(客户ID、公司名称、联系人姓名、地址、邮编、电话),订购(客户ID、公司名称、产品ID、产品名称、单位数量、单价、数量、订购日期、发货日期、到货日期),【练习4-2(P54)】根据如图4-5所示的E-R图设计关系模式。(1)根据实体型及其属性设计关于实体型的关系模式。(2)根据实体型之间的多对多联系设计关系模式。,4.3.3 根据E-R图设计关系模式,将相关实体的某些属性放入同一个二维表中将产生数据冗余(Data Redundancy),即同样的数据在同一张表中重复出现。数据冗余问题会占用更多
10、的存储空间、造成存储空间的浪费,而且还可能引起数据的不一致性问题。,4.3.3 根据E-R图设计关系模式,减少关系模式的数据冗余:选择相关实体的主键作为关系模式中的属性,并将它们的组合做为主键或主键的组成部分;保留多对多联系自身的属性。外键/外码(Foreign Key):当某个属性(或属性组)不是关系R的主键或只是主键的一部分,但是另一个关系R的主键,则称该属性(或属性组)是关系R相对于关系R的外键/外码。,订购(客户ID、公司名称、产品ID、产品名称、单位数量、单价、数量、订购日期、发货日期、到货日期),订购(客户ID、产品ID、单价、数量、订购日期、发货日期、到货日期),4.3.4 关系
11、模式的优化,根据E-R图,可以得到实体型和多对多联系的关系模式:客户(客户ID、公司名称、联系人姓名、地址、邮编、电话)产品(产品ID、产品名称、单位数量、单价、类别名称、类别说明)订购(客户ID、产品ID、单价、数量、订购日期、发货日期、到货日期),4.3.4 关系模式的优化,为了减少数据冗余,可将实体型中重复出现的属性值,且容易产生数据不一致性的字段提取出来,构成一个新的实体型。同时,在新的实体型和提取的源实体型中添加关联属性。,4.3.4 关系模式的优化,经过对关系模式的进一步优化,可以得到新的E-R图根据优化后的E-R图,为每个实体型设计关系模式:客户(客户ID、公司名称、联系人姓名、
12、地址、邮编、电话)类别(类别ID、类别名称、类别说明)产品(产品ID、产品名称、单位数量、单价、类别ID)为“订购“多对多联系设计关系模式:订购(客户ID、产品ID、单价、数量、订购日期、发货日期、到货日期),注意:通常情况下,不需要为实体型之间的一对多联系建立专门的关系模式,可以通过关联属性建立联系。,4.3.4 关系模式的优化,进一步减少数据冗余的操作:分析数据冗余提取重复出现的字段,构造新关系利用提取重复字段后剩下的字段再构造另一个新关系,“订单”关系,“订单明细”关系,4.3.4 关系模式的优化,在两个关系中都添加关联字段,使两者相互联系,确保数据的完整性。优化后的关系模式:客户(客户
13、ID、公司名称、联系人姓名、地址、邮编、电话)类别(类别ID、类别名称、类别说明)产品(产品ID、产品名称、单位数量、单价、类别ID)订单(订单ID、客户ID、订购日期、发货日期、到货日期)订单明细(订单ID、产品ID、单价、数量),4.3.5 实体表与联系表,二维表是关系模型在关系数据库技术上的具体体现,实体,联系,关系模型,数据库,实体表,联系表,“客户”实体表,“雇员”实体表,“客户”实体和“雇员”实体的联系表“订单”表,4.4 表间关系,不同的二维表中的数据具有一定的独立性:不需要借助其他数据就直接可以从不同角度描述特定实体的一些性质。不同二维表中的数据之间又存在一定的内在联系:通过表
14、之间的数据联系,可以将数据库中多个表联结为一个有机的整体,使多个表相互对应,提高数据使用者从数据库中提取信息的效率。,4.4.1 表间关系的基本概念及类型,不同二维表中的数据之间的内在联系,是以“关联字段”为纽带,通过表间关系体现和实现的。关联字段能够在两个相关表之间建立联系,进而将相关表中的数据联系起来。,通过关联字段“供应商ID”将“供应商”和“产品”两个表联系起来,如果A表和B表之间的关系是一对多关系,则称A表为主表(或父表),B表为子表。在主表和子表之间建立一对多关系的关联字段是主表中的主键,而在子表中则是外键。在一对多表间关系中,主表定义了关联字段的取值范围,而子表只能引用主表中关联
15、字段的值。,4.4.2 创建和编辑表间关系,【练习4-4(P62)】创建“供应商”表和“产品”表之间的一对多表间关系。(1)在主表“供应商”表的设计视图中设置主键。(2)打开“关系”窗口:在菜单栏中执行“工具”|“关系”命令。(3)在“关系”窗口中添加表。(4)创建并保存表间关系。(5)在“关系”窗口中,用鼠标左键双击相关表之间的连线,可以重新打开“编辑关系”窗口;如果有必要,可以在“编辑关系”窗口中重新设置有关选项。用鼠标右键单击相关表之间的连线,在弹出菜单中选择“删除”命令,则可以删除已建立的表间关系。,4.4.3 参照完整性,参照完整性(Referential Integrity):若属
16、性(或属性组)F是关系R的外键,它与关系S的主键KS相对应,则对于关系R中的每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中的某个元组的主键值。可实施参照完整性的表间关系必备的3个条件:在主表和子表中,关联字段有相同的数据类型;在主表中已经将关联字段设置为主键;在子表中,每条记录在关联字段上的值或者为空值,或者等于主表中某条记录的主键值。,在Access数据库中实施参照完整性时,需要注意:(1)必须先在主表中将关联字段设置为主键,否则无法在“编辑关系”窗口设置“实施参照完整性”选项;(2)在子表中,即使某些记录在关联字段上是空值,也可以实施参照完整性。在Access数据库中,
17、参照完整性是一个规则系统,该规则系统可确保主表和子表之间记录对应关系的有效性,并不会意外删除或更改相关数据。实施参照完整性后,遵循3条规则:规则1:不能在子表的关联字段中输入不存在于主表的主键中的值。规则2:如果在子表中存在对应的记录,则不能从主表中删除相应记录。规则3:如果在子表中存在对应的记录,则不能在主表中更改相应记录的主键值。【练习4-5(P64)】在对“供应商”和“产品”一对多表间关系实施参照完整性的基础上,验证上述3条规则。,4.4.3 参照完整性,4.4.4 级联更新相关字段和级联删除相关记录,在关系数据库中,主表和子表中的记录之间存在着一定的逻辑对应关系,而参照完整性就可以确保
18、这种记录之间逻辑对应关系的正确性和有效性。更新主表中的主键值、或者删除主表中的记录都有可能破坏主表与子表之间的数据完整性。但如果在对主表中记录进行更新或删除操作的同时,对子表中的记录也进行相应的更新或删除操作,则仍然可以保持主表与子表之间的数据完整性。Access中的“级联更新相关字段”规则和“级联删除相关记录”规则就提供了相应的解决措施。“级联更新相关字段”规则是指,在主表中修改关联字段(主键)值时,自动更新子表中对应关联字段的值;“级联删除相关记录”规则是指,在主表中删除记录时,自动删除子表中的对应记录。,4.4.4 级联更新相关字段和级联删除相关记录,【练习4-6(P65)】在对“供应商
19、”和“产品”一对多表间关系实施参照完整性的基础上,再设置“级联更新相关字段”规则和“级联删除相关记录”规则,并验证这两条规则。(1)规则设置。,4.4.4 级联更新相关字段和级联删除相关记录,(2)验证“级联更新相关字段”规则。(3)验证“级联删除相关记录”规则。,4.5 业务数据分析的前期准备工作,对于业务数据分析人员来说,数据库技术的价值在于能够帮助他们更加有效地处理、利用和分析业务数据,以达到从众多的明细业务数据中获得有用信息、并利用这些信息辅助经营管理决策的目的。,4.5.1 明确字段的业务含义和数据类型,正确理解每个字段的业务含义、并明确每个字段的数据类型,可综合运用三种方法:方法1
20、查阅数据库应用系统的开发手册或使用手册。系统开发手册记载了开发人员设计和创建数据库的思路,通常也包含像E-R图、关系模式、表的设计细节等内容。系统使用手册面向基础业务处理人员的,可指导基础业务处理人员尽快地熟悉和掌握数据库应用系统的功能和操作方法。方法2查阅数据字典(Data Dictionary)。很多RDBMS软件都使用数据字典保存对表及表间关系的定义。在表的定义中包括了字段名称、字段的数据类型和字段的含义说明等信息。在Access数据库中,表的设计视图就相当于一种数据字典。方法3咨询业务处理人员。,4.5.1 明确字段的业务含义和数据类型,“产品”表,“订单明细”表,4.5.2 建立数据
21、库所反映的业务模型,数据库中存储的大量业务数据隐含着特定的业务模型。在明确和理解数据(字段)的业务含义的基础上,建立数据库所反映的业务模型,可帮助业务数据分析人员更快、更深入和更全面地理解业务数据及业务数据之间的联系。业务模型在一定程度上能够反映数据库中业务数据的含义及业务数据之间的内在联系。,4.5.3 基于E-R图的业务规则分析,E-R图是关系概念模型中常见的图形表示方法,利用E-R能够描述客观世界中的实体以及实体之间的联系。E-R图能够帮助业务数据分析人员更好地理解数据库中业务数据之间的联系。,4.5.4 基于关联字段的表间关系分析,表间关系是数据库中多个表联结成有机整体的基础。表间关系
22、不仅能够使多个表中的记录(数据)相互对应,而且能够提高业务数据分析人员从数据库中提取信息的工作效率。基于对字段业务含义、数据类型的分析和理解以及对业务模型、业务规则的细致分析,可归纳“罗斯文”示例数据库中的表间关系:注意:在Access关系数据库中,建立表间关系的关联字段不需要有相同的名称,但必须有相同的数据类型、并具有相同的字段含义,4.5.5 创建表间关系,在明确了数据库中的表间关系及相关的关联字段之后,还需要利用RDBMS软件所提供的功能创建表间关系。在Access中,通过在菜单栏中执行“工具”|“关系”命令、并在“编辑关系”窗口中编辑关系等操作可以创建表间关系。注意:在“关系”窗口中创
23、建表间关系之前,必须先在设计视图中设置父表的主键,4.5.5 创建表间关系,父表中的主键在一对多表间关系中起着关联字段的重要作用。在Access数据库中,可定义三类主键:(1)自动编号主键:是一个具有自动编号数据类型的字段,且主键上的字段值是一些连续的正整数。当向表中添加一条新记录时,Access会将该记录在主键的字段值自动地赋值为下一个连续的整数。如果在保存新建表时没有设置主键,Access将询问是否创建主键。如果回答为“是”,Access将创建自动编号主键。(2)单字段主键:包含唯一值的字段,如产品ID,可设为主键。若单字段有重复值或空值,在Access中不能设置为主键。通常每个实体都有一
24、个唯一的标识,因此在实体表中,通常将相应的实体ID设置为主键。(3)多字段主键:在不能保证任何单字段都包含唯一值时,可将两个或更多的字段设定为主键。如,在“罗斯文”示例数据库的“订单明细”表中,“订单ID”和“产品ID”的组合值唯一,所以可将其组合设置为主键。另外,从一对多表间关系的角度来看,具有多字段主键的表通常是以子表身份出现的,且多字段主键中的单个字段是子表相对于父表的外键。,4.5.5 创建表间关系,【练习4-7(P74)】以“订单明细”表为例,在设计视图中设置多字段主键。,4.6 小结,在Access数据库中,“输入掩码”、“有效性规则”和“有效性文本”是3个十分有用的字段属性,它们
25、可以在一定程度上确保输入到表中的数据是有效的,是RDBMS在数据完整性控制功能方面的具体体现。,4.6 小结,在关系数据库中,是使用关系概念模型描述客观事物及其联系的。实体-联系方法(Entity-Relationship Approach)是最为著名也最为常用的关系概念模型的表示方法。在E-R图中,可以描述实体型、实体型具有的属性、实体型之间的联系以及联系的类型等多种信息。在关系模型中,需要为实体型和实体型之间的多对多联系建立专门的关系模式。而对于实体型之间的一对多联系,则不需要建立专门的关系模式,一对多联系所关联的两个实体型之间可以通过关联属性建立联系。根据所描述对象的不同,就可以将关系数
26、据库中的表分为实体表和联系表。实体表是用来描述实体的,联系表描述的是实体之间的联系。,4.6 小结,为了减少或避免数据冗余,在关系数据库中,数据是分散地存储在不同的二维表中的。而存放在不同表中的数据之间又是相互联系的。存放在不同表中的数据之间的内在联系,是以“关联字段”为纽带、通过表间关系体现和实现的。在关系数据库中,最常见的表间关系是一对多的表间关系。父表与子表之间通过关联字段可以建立一对多表间关系。关联字段在父表中是主键,而在子表中则是外键。父表定义了关联字段的取值范围,而子表只能引用父表中关联字段的值。在Access关系数据库中,建立表间关系的关联字段不需要有相同的名称,但必须有相同的数
27、据类型、并具有相同的业务含义。,4.6 小结,参照完整性是数据完整性控制的另一项重要措施,可以确保和验证父表和子表之间记录对应关系的有效性。更新父表中的主键值或者删除父表中的记录,都有可能引起父表与子表之间的数据不一致性。为此,Access提供了“级联更新相关字段”规则和“级联删除相关记录”规则。这样,当在父表中进行主键值更新或记录删除操作时,可以在子表中进行相应的字段更新或记录删除操作,从而使得父表与子表之间的记录对应关系保持原有的完整状态。,4.6 小结,对于业务数据分析人员来说,数据库技术的价值在于能够帮助他们更加有效地处理、利用和分析业务数据,以达到从众多的明细业务数据中获得有用信息、并利用这些信息辅助经营管理决策的目的。业务数据分析之前的准备工作:(1)正确地理解字段的业务含义,明确字段的数据类型;(2)以数据(字段)的业务含义为基础建立数据库所反映的业务模型;(3)在理解数据业务含义的基础上,利用E-R图分析业务规则,并与业务模型相互验证;(4)基于关联字段的识别进行表间关系分析;(5)利用数据库工具创建表间关系。,