《第4章数据控制功能和表间关系》由会员分享,可在线阅读,更多相关《第4章数据控制功能和表间关系(44页珍藏版)》请在金锄头文库上搜索。
1、第第4 4章章 数据控制功能和表间关系数据控制功能和表间关系4.1 4.1 数据控制功能数据控制功能为了确保数据库中数据的正确有效以及数据库系统的有效运行,RDBMS提供了数据控制功能:(1)数据的安全性控制。数据的安全性控制是指采取一定的安全保密措施以确保数据库中的数据不被非法用户存取。例如,RDBMS提供口令检查或其他手段来验证用户身份,合法用户才能进入数据库系统;RDBMS提供用户等级和数据存取权限的定义机制,系统自动检查用户能否执行这些操作,只有检查通过后才能执行允许的操作。(2)数据的完整性控制。数据的完整性控制是指RDBMS提供必要的功能确保数据库数据的正确性、有效性和一致性。(3
2、)数据的并发控制。数据的并发控制是指RDBMS必须对多用户并发进程同时存取、修改数据的操作进行控制和协调,以防止互相干扰而得到错误结果。本章将主要介绍与数据完整性控制有关的内容。亭餐垄岔虎较增棠舱淌尝痘太桓偏酒阂狗味朋哦台出卑便寡芍腻雨瘟晚罕第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.2 4.2 与数据完整性控制有关的字段属性与数据完整性控制有关的字段属性u在前面,我们已经介绍了字段大小、格式、标题等字段属性。这里,我们将介绍与数据完整性控制有关的字段属性输入掩码、有效性规则和有效性文本。u这3个字段属性能够尽可能地确保进入数据库的数据是正确、有效的。声改侍阮鳖域姬缝铂格玉毋把
3、烬虏跺忠涟诉米雌庙瘦理塞毁绕茧费警蹿攫第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.2.1 4.2.1 输入掩码输入掩码使用输入掩码(Input Mask)字段属性,可以控制在表中字段的数据输入方式。输入掩码使用一些特殊字符来规定输入某些必需的数据。 如果学校对学号编码的统一规定是“学号至多由10个字符组成,且每个字符可以是阿拉伯数字,也可以是英文字母,但不可以是其他字符”,则需要将“学号”字段的“输入掩码”属性设置为“aaaaaaaaaa”(10个a)。这样,当输入具体学号时,每个字符或者是阿拉伯数字,或者是英文字母,而不能输入其他字符。输入掩码主要用于文本型字段和日期/时间型
4、字段。字符说明0数字(0到9,必选项;不允许使用加号+和减号-)9数字或空格(可选项;不允许使用加号和减号)#数字或空格(可选项;空白将转换为空格,允许使用加号和减号)L字母(A到Z,必选项)?字母(A到Z,可选项)A字母或数字(必选项)a字母或数字(可选项)密码文本框中键入的任何字符都按原字符保存,但显示为星号(*)扮涣摆跨郁舵垣校粥鸭卯村量绣两则据信险嗡挎绞塘偏割气锈搀稍脏限甲第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.2.2 4.2.2 有效性规则和有效性文本有效性规则和有效性文本有效性规则(Validation Rule)字段属性用于指定对输入到字段中的数据的要求,当输
5、入的数据违反了有效性规则的设置时,可以使用有效性文本(Validation Text)向用户发送提示消息。对于有效性规则属性,需要输入一个表达式以代表一个条件;而对于有效性文本属性,则输入文本串以文字化提示消息。税雨散磁熔瓮均泵骋肯栽粗管装剂挛避敌诬坟音坐深婪摸藏跪窄笨啤冰郴第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.2.2 4.2.2 有效性规则和有效性文本有效性规则和有效性文本字段名称字段属性作用属性名称属性值学号输入掩码aaaaaaaaaa只允许在“学号”中出现阿拉伯数字或英文字母性别有效性规则“男” or “女”只允许“性别”用“男”、“女”两个汉字中的一个表示性别有效
6、性文本输入性别有误,请重新输入!如果试图输入除“男”或“女”之外的其他字符,则Access会给出相应的输入错误提示身份证号码输入掩码00000000000000000A“身份证号码”中的前17位必须是阿拉伯数字,最后1位允许是阿拉伯数字或英文字母入学成绩有效性规则0规定“入学成绩”必须大于零入学成绩有效性文本入学成绩至少应该大于零!如果试图输入小于等于零的“入学成绩”,则Access会给出相应的输入错误提示应交学费有效性规则0规定“应交学费”必须大于零应交学费有效性文本学费应该大于零!如果试图输入小于等于零的“应交学费”,则Access会给出相应的输入错误提示【练习4-1(P54P54)】根据
7、上表设置“花名册”表中相应字段的属性,然后在数据表视图中输入相应的数据并观察相应字段属性的作用。 纸竞既骨悦予朽豹毋内妄侧区味狮舒羚缕旨须钳笆薪产捻渊碘妖广嗣盛物第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3 4.3 关系概念模型关系概念模型E-RE-R模型模型存储在数据库中的数据反映了现实的业务情况和状态,而现实的业务问题往往是抽象和复杂的。为了将复杂的现实业务问题抽象、组织和转化为RDBMS支持的关系模型,往往需要首先根据业务问题建立概念模型,然后再在概念模型的基础上建立关系模型。 鱼轮缮拌詹席徊杜影渭痪宠徊掠撵实冀钳穴器回蛆售舔瓣寓盾孔射凰治巩第4章数据控制功能和表间关系
8、第4章数据控制功能和表间关系4.3.1 4.3.1 主要概念主要概念实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人和物(如学生、客户、供应商、产品、运货商),也可以是抽象的概念(如订单、课程)。属性(Attribute):实体所具有的某一特性或性质。一个实体所具有的特征或性质可以用若干个属性描述。如一个产品实体可以用编号、名称、供应商、单位数量、单价、库存量和订购量等属性来刻画。实体集(Entity Set):同类实体的集合。如各种产品实体就构成了一个产品实体集,所有客户就构成了一个客户实体集。实体型(Entity Type):具有相同属性的实体必然具有相同类别的
9、特征和性质。用实体名及其属性名集合来抽象和刻画的同类实体,称为实体型。例如,对于产品实体集,可以用如下实体型表示:产品(编号、名称、供应商、单位数量、单价、库存量、订购量)淖妖洽澎阮扳汰尺仑逆愚贬浴默汐猪咎哩湘骸公懒赦蚁融茁窒跪女藏萌跋第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.1 4.3.1 主要概念主要概念联系(Relationship):指同一实体型内部实体之间的联系,或指不同实体型之间通过实体发生的联系。 摊涧杠赐渔弊众一翼甜蹲儒韵岛鞘嫡啦娃座汪耸菲使败亚灭荐尸瀑朵民铀第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.2 4.3.2 关系概念模型的表示
10、方法关系概念模型的表示方法E-RE-R图图概念模型:客观现实在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。关系概念模型(简称关系模型):是关系数据库理论中描述客观事物及其联系的概念模型。实体联系方法(Entity-Relationship Approach,E-R方法):用E-R图描述现实世界的关系概念模型,也称为E-R模型(P.P.S. Chen, 1976)。E-R图可以描述实体型、实体型具有的属性、实体型之间的联系一级联系的类型等多种信息。E-R图中使用专门图形符号表示特定的含义:矩形框实体型,在矩形框内标明实体型名称。椭圆形实体的属性,在椭圆形内标明属性名,并用无向边将其与相
11、应的实体矩形框连接起来。菱形联系,在菱形内标明联系名,并用无向边分别与有关的实体矩形框连接起来,表明联系的类型。如果一个联系也具有属性,则这些属性也要用无向边与该联系连接起来。页礁挞渝夹藐光泊担牟抵羊钢泡梳念戴律沮腺头菜疤蕊瞅镣灶窘酵碑露草第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.2 4.3.2 关系概念模型的表示方法关系概念模型的表示方法E-RE-R图图设A、B为两个实体集, E-R图中表示实体型之间的三种联系:一对一联系(1:1):若对于A中的每一个实体,在B中至多有一个实体与之联系;反之,对于B中的每一个实体,在A中也至多有一个实体与之联系,则称实体集A与B之间具有
12、一对一联系,记为1:1。一对多联系(1: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。 总经理公司任职11(a)一对一联系员工部门工作1n(b)一对多联系学生班级隶属1n学生课程选修mn(c)多对多联系产品客户购买mn纵丝观岩辊留呐溢浙齐攻院瓢初戚敌度驴霞忍摈梗客消燃烽屎历吻桅霹肇
13、第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.3 4.3.3 根据根据E-RE-R图设计关系模式图设计关系模式客户产品客户ID产品ID产品名称单位数量单价类别名称类别说明订购mn公司名称联系人姓名地址邮政编码电话发货日期订购日期到货日期数量单价产品名称产品ID单位数量公司名称客户ID客户产品客户ID产品ID产品名称单位数量单价类别名称类别说明订购mn公司名称联系人姓名地址邮政编码电话发货日期订购日期到货日期数量单价产品名称产品ID单位数量公司名称客户ID客户产品客户ID产品ID产品名称单位数量单价类别名称类别说明订购mn公司名称联系人姓名地址邮政编码电话发货日期订购日期到货日
14、期数量单价产品名称产品ID单位数量公司名称客户ID产品(产品(产品产品ID、产品名称、单位数量、单价、类别名称、产品名称、单位数量、单价、类别名称、类别说明)类别说明)客户(客户(客户客户ID、公司名称、联系人姓名、地址、邮编、电话)、公司名称、联系人姓名、地址、邮编、电话)订购(订购(客户客户ID、公司名称、公司名称、产品产品ID、产品名称、单位数量、产品名称、单位数量、单价、数量、订购日期、发货日期、到货日期单价、数量、订购日期、发货日期、到货日期)【练习4-2(P58P58)】根据如图4-5所示的E-R图设计关系模式。(1)根据实体型及其属性设计关于实体型的关系模式 。(2)根据实体型之
15、间的多对多联系设计关系模式。 矽酞杂洲椽尉畜萤凯换侣氧把颇庞诈宗菏吾报皆收莫掉泥似蔬灯稠城自凑第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.3 4.3.3 根据根据E-RE-R图设计关系模式图设计关系模式将相关实体的某些属性放入同一个二维表中将产生数据冗余数据冗余(Data RedundancyData Redundancy),即同样的数据在同一张表中重复出现。数据冗余问题会占用更多的存储空间、造成存储空间的浪费,而且还可能引起数据的不一致性数据的不一致性问题。稼漳锣瓮疯漂痘房集蜘锭所窃坑长堕吏矗三荣祥虚熬祈洋扎沽址轧霄坏刊第4章数据控制功能和表间关系第4章数据控制功能和表间
16、关系4.3.3 4.3.3 根据根据E-RE-R图设计关系模式图设计关系模式减少关系模式的数据冗余:选择相关实体的主键作为关系模式中的属性,并将它们的组合做为主键或主键的组成部分;保留多对多联系自身的属性。外键/外码(Foreign Key):当某个属性(或属性组)不是关系R的主键或只是主键的一部分,但是另一个关系R的主键,则称该属性(或属性组)是关系R相对于关系R的外键/外码。客户产品客户ID产品ID产品名称单位数量单价类别名称类别说明订购mn公司名称联系人姓名地址邮政编码电话发货日期订购日期到货日期数量单价产品名称产品ID单位数量公司名称客户ID客户产品客户ID产品ID产品名称单位数量单价
17、类别名称类别说明订购mn公司名称联系人姓名地址邮政编码电话发货日期订购日期到货日期数量单价产品ID客户ID订购(客户订购(客户ID、公司名称、产品、公司名称、产品ID、产品名称、单位数量、产品名称、单位数量、单价、数量、订购日期、发货日期、到货日期)单价、数量、订购日期、发货日期、到货日期)订购(订购(客户客户ID、产品产品ID、单价、数量、单价、数量、订购日期订购日期、发货日期、到货日期)发货日期、到货日期)多奖人姐炒睁嘶况窟荫乙两鸟靳芹崇莲匡嘻亥近妓潭填敛本谈溯梗书雌赐第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.4 4.3.4 关系模式的优化关系模式的优化根据E-R图,
18、可以得到实体型和多对多联系的关系模式:u客户(客户ID、公司名称、联系人姓名、地址、邮编、电话)u产品(产品ID、产品名称、单位数量、单价、类别名称、类别说明)u订购(客户ID、产品ID、单价、数量、订购日期、发货日期、到货日期)闯米釉等宽聂更腔狄那顷北梨擎幌争翌揭铜蒸辟贼挽篮僚韶鱼涌督懂涨钓第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.4 4.3.4 关系模式的优化关系模式的优化为了减少数据冗余,可将实体型中重复出现的属性值,且容易产生数据不一致性的字段提取出来,构成一个新的实体型。同时,在新的实体型和提取的源实体型中添加关联属性。幼逼搔拧勤峻耶鳞伎祸伊悲郑臼株哲谩爱危膳役
19、坠襟立以眼吹币朋邻拴表第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.4 4.3.4 关系模式的优化关系模式的优化经过对关系模式的进一步优化,可以得到新的E-R图根据优化后的E-R图,为每个实体型设计关系模式:客户(客户ID、公司名称、联系人姓名、地址、邮编、电话)类别(类别ID、类别名称、类别说明)产品(产品ID、产品名称、单位数量、单价、类别ID)为“订购“多对多联系设计关系模式:订购(客户ID、产品ID、单价、数量、订购日期、发货日期、到货日期)客户产品客户ID产品ID产品名称单位数量单价类别ID订购mn公司名称联系人姓名地址邮政编码电话类别名称类别ID类别说明n1包含类
20、别发货日期订购日期到货日期数量单价客户ID产品ID注意注意:通常情况下,不需要为实体型之间的一对多联系建立专门的关系模式,可以通过关联属性建立联系。随尿导鸭缩卜捐效锹巧站墓治弱牵涕遣荣咀又擞缘鹅逢材笨内衣腹暂所踢第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.4 4.3.4 关系模式的优化关系模式的优化进一步减少数据冗余的操作:分析数据冗余提取重复出现的字段,构造新关系利用提取重复字段后剩下的字段再构造另一个新关系“订单”关系“订单明细”关系坊拾洞烃芒颓考嘲硷殉酌狐椒开硕隅压濒耽瑞胜严铀著锋今囱熟班仰掩几第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.4 4.3
21、.4 关系模式的优化关系模式的优化在两个关系中都添加关联字段,使两者相互联系,确保数据的完整性。优化后的关系模式:客户(客户ID、公司名称、联系人姓名、地址、邮编、电话)类别(类别ID、类别名称、类别说明)产品(产品ID、产品名称、单位数量、单价、类别ID)订单(订单ID、客户ID、订购日期、发货日期、到货日期)订单明细(订单ID、产品ID、单价、数量)顷秃侗丝琶慌锅院自痰吹纽泽篡封甲窟犯萍蔬坟礼藏坐骋遭陌泵贯净波叼第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.3.5 4.3.5 实体表与联系表实体表与联系表二维表是关系模型在关系数据库技术上的具体体现实体联系关系模型数据库实体表
22、联系表客客户IDID公司名称公司名称联系人姓名系人姓名联系人系人头衔地址地址城市城市地区地区邮政政编码TRAIH伸格公司林小姐销售员石碑路甲 141 号深圳华南342356VAFFE中硕贸易苏先生销售经理威成路 321 号深圳华南837206VICTE千固苏先生销售代理明成西街 471 号秦皇岛华北598018VINET山泰企业黎先生结算经理舜井街 561 号天津华北575909WANDK凯旋科技方先生销售代表使馆路 371 号天津华北212400雇员ID姓氏名字头衔尊称出生日期雇用日期地址城市1张颖销售代表女士1968-12-81992-5-1复兴门 245 号北京2王伟副总裁(销售)博士1
23、962-2-191993-1-14罗马花园 890 号北京3李芳销售代表女士1973-8-301992-4-1芍药园小区 78 号北京4郑建杰销售代表先生1968-9-191993-5-3前门大街 789 号北京5赵军销售经理先生1965-3-41993-10-17学院路 78 号北京订单IDID客客户IDID雇雇员IDID订购日期日期到到货日期日期发货日期日期10248VINET51996-7-41996-8-11996-7-1610249TOMSP61996-7-51996-8-161996-7-1010250HANAR41996-7-81996-8-51996-7-1210251VICT
24、E31996-7-81996-8-51996-7-15“客户”实体表 “雇员”实体表 “客户”实体和“雇员”实体的联系表“订单”表 迭黔撼凹庚披盆丑凰赠樱删嵌姨躲唉拓觉翌数亭涩奏汗躯擅嗣精焦皮皆葱第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4 4.4 表间关系表间关系二维表(尤其是实体表)中的数据具有一定的独立性:不需要借助其他数据就可以直接从不同角度描述特定实体的一些性质。不同二维表中的数据之间又存在一定的内在联系:通过表之间的数据联系,可以将数据库中多个表联结为一个有机的整体,使多个表相互对应。掌握二维表之间的内在数据联系,将有助于提高从数据库中提取信息的效率。滞国莱咨哮格
25、恳津众哟厕久垢期慧什原堆媒遗植畦断挽锗蹭述两打摊扰侗第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.1 4.4.1 表间关系的基本概念及类型表间关系的基本概念及类型n不同二维表中的数据之间的内在联系,是以“关联字段”为纽带,通过表间关系体现和实现的。关联字段能够在两个相关表之间建立联系,进而将相关表中的数据联系起来。通过关联字段“供应商ID”将“供应商”和“产品”两个表联系起来供应商ID公司名称联系人姓名联系人头衔地址城市地区邮政编码国家电话1佳佳乐陈小姐采购经理西直门大街 110 号北京华北100023中国(010) 655522222康富食品黄小姐订购主管幸福大街 290
26、号北京华北170117中国(010) 655548223妙生胡先生销售代表南京路 23 号上海华东248104中国(021) 855557354为全王先生市场经理永定路 342 号北京华北100045中国(020) 655550115日正李先生出口主管体育场东街 34 号北京华北133007中国(010) 65987654产品ID产品名称供应商ID类别ID单位数量单价库存量订购量1苹果汁11每箱24瓶¥18.003902牛奶11每箱24瓶¥19.0017403蕃茄酱12每箱12瓶¥10.0013704盐22每箱12瓶¥22.005305麻油22每箱12瓶¥21.3500n如果A表和B表之间的关
27、系是一对多关系,则称A表为主表(或父表),B表为子表。n在主表和子表之间建立一对多关系的关联字段是主表中的主键,而在子表中则是外键。n在一对多表间关系中,主表定义了关联字段的取值范围,而子表只能引用主表中关联字段的值。 唬辗款苦挝贵迟哥拈素气摹损磊氢巫捌矛莆莲慌直收剐墅绅套攘镍埔篱厂第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.2 4.4.2 创建和编辑表间关系创建和编辑表间关系【练习4-4(P67P67)】创建“供应商”表和“产品”表之间的一对多表间关系。 (1)在主表“供应商”表的设计视图中设置主键。(2)打开“关系”窗口:在菜单栏中执行“工具”|“关系”命令。(3)在“
28、关系”窗口中添加表。(4)创建并保存表间关系。(5)在“关系”窗口中,用鼠标左键双击相关表之间的连线,可以重新打开“编辑关系”对话框;如果有必要,可以在“编辑关系”对话框中重新设置有关选项。用鼠标右键单击相关表之间的连线,在弹出菜单中选择“删除”命令,则可以删除已建立的表间关系。 踢裔穿罚街及桌江弱舟缠疑檄溶挣搜剪垄嗽恐馅漠菏警侨砸型半鲜誉谜乘第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.3 4.4.3 参照完整性参照完整性可实施参照完整性的表间关系必备的3个条件:在主表和子表中,关联字段有相同的数据类型;在主表中已经将关联字段设置为主键;在子表中,每条记录在关联字段上的值或
29、者为空值,或者等于主表中某条记录的主键值。与舀涌哩钠阉铃独翁毖庄孙舆父膳扯磨何羌汉诛叭烧晶徽耿胖落长返闯连第4章数据控制功能和表间关系第4章数据控制功能和表间关系参照完整性是一个规则系统,该规则系统可确保主表和子表之间记录对应关系的有效性,并不会意外删除或更改相关数据。成功实施参照完整性后,在父表或子表中的数据操作应该遵守以下3条规则。:规则1:不能在子表的关联字段中输入不存在于主表的主键中的值。规则2:如果在子表中存在对应的记录,则不能从主表中删除相应记录。规则3:如果在子表中存在对应的记录,则不能在主表中更改相应记录的主键值。【练习4-5(P69P69)】在对“供应商”和“产品”一对多表间
30、关系实施参照完整性的基础上,验证上述3条规则。 4.4.3 4.4.3 参照完整性参照完整性逗羚杏忍眷散骗云告私惑喊恕率巢坯锈心苦六抠股锅砌刊霞龟缀盎搽潮堪第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.4 4.4.4 级联更新相关字段和级联删除相关记录级联更新相关字段和级联删除相关记录在关系数据库中,主表和子表中的记录之间存在着一定的逻辑对应关系,而参照完整性就可以确保这种记录之间逻辑对应关系的正确性和有效性。出现的新问题:更新主表中的主键值、或者删除主表中的记录都有可能破坏主表与子表之间的数据完整性。解决问题的思路:但如果在对主表中记录进行更新或删除操作的同时,对子表中的记
31、录也进行相应的更新或删除操作,则仍然可以保持主表与子表之间的数据完整性。解决问题的办法:Access中的“级联更新相关字段”规则和“级联删除相关记录”规则就提供了相应的解决措施。“级联更新相关字段”规则是指,在主表中修改关联字段(主键)值时,自动更新子表中对应关联字段的值;“级联删除相关记录”规则是指,在主表中删除记录时,自动删除子表中的对应记录。 韧蛾拥惑差跺看草醚敛占瓜内衬眩里奇铣车污篡衔硒土判裹棱木贯汉戴堡第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.4 4.4.4 级联更新相关字段和级联删除相关记录级联更新相关字段和级联删除相关记录【练习4-6(P70P70)】在对“
32、供应商”和“产品”一对多表间关系实施参照完整性的基础上,再设置“级联更新相关字段”规则和“级联删除相关记录”规则,并验证这两条规则。 (1)规则设置。 便自瓦蹄栅庇嗅熬迎胚污捕身绑彰泉抡辛瞧谷械挝迪圃胜盔盘橙砷狰暑险第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.4.4 4.4.4 级联更新相关字段和级联删除相关记录级联更新相关字段和级联删除相关记录(2)验证“级联更新相关字段”规则。(3)验证“级联删除相关记录”规则。励撤疫滔蝇艺易抄雇隔纵掐闷填陆锡链渤览恕剪鼻妊痞薯瞬若奇鲸翁瞩辟第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5 4.5 业务数据分析的前期准备工作业
33、务数据分析的前期准备工作u对于业务数据分析人员来说,数据库技术的价值在于能够帮助他们更加有效地处理、利用和分析业务数据,以达到从众多的明细业务数据中获得有用信息、并利用这些信息辅助经营管理决策的目的。 掘崔孽迢铣篇石葵演盾茸驹删欣谴比焉辩栗砰搓可酵车剃瓤颓祖弥按趁阶第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.1 4.5.1 明确字段的业务含义和数据类型明确字段的业务含义和数据类型正确理解每个字段的业务含义、并明确每个字段的数据类型,可综合运用三种方法:方法1查阅数据库应用系统的开发手册或使用手册。方法2查阅数据字典(Data Dictionary)。在Access数据库中,
34、表的设计视图就相当于一种数据字典。方法3咨询业务处理人员。诞苟篡弃茨蓬幅腐官呻卿适凉猴永随蚂徊柜川高该冶钦襟治鸵浊蚂巷句查第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.1 4.5.1 明确字段的业务含义和数据类型明确字段的业务含义和数据类型字段名称数据类型说明产品ID自动编号(长整型)自动赋予新产品的编号,且每个产品都有唯一的编号产品名称文本供应商ID数字(长整型)与供应商表中的“供应商ID”含义相同类别ID数字(长整型)与类别表中的“类别ID”含义相同单位数量文本定义了产品大件的包装形式。例如,24装箱、一公升瓶单价货币罗斯文公司内部制定的斯文公司内部制定的销售价格售价格库
35、存量数字目前库存中尚有的货物单位数订购量数字已经向供应商发出订购申请的货物单位数再订购量数字为保持安全保持安全库存所需的存所需的货物最小物最小单位数位数中止是/否“是”表示条目不可用,即该产品已经停止销售字段名称数据类型说明订单ID数字(长整型)与订单表中的“订单ID”含义相同产品ID数字(长整型)与产品表中的“产品ID”含义相同单价货币雇雇员向客向客户销售售产品的品的报价价数量数字折扣数字“产品”表 “订单明细”表 穗灸胜阅谜气镁乒殊谩敬左叙倘不绦撬狮械咏重妆枝瞻褂多恭牢仙祈较即第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.2 4.5.2 建立数据库所反映的业务模型建立数据
36、库所反映的业务模型数据库中存储的大量业务数据隐含着特定的业务模型。业务模型在一定程度上能够反映数据库中业务数据的含义及业务数据之间的内在联系。 咬渐晌潦铣查疙骤栽芬矗灰辈荒狮炙弘紧汪喷冲樱败糊码娱茧愁响兹抚箱第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.3 4.5.3 基于基于E-RE-R图的业务规则分析图的业务规则分析E-R图有助于更好地理解数据库中业务数据之间的联系。纲萌猫保鄙僚蹈那越则烦低诵橱莹泞瞻星叼媚误昔俱嗽回啮恩牛拢妄撰爹第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.4 4.5.4 基于关联字段的表间关系分析基于关联字段的表间关系分析基于对字段业
37、务含义、数据类型的分析和理解以及对业务模型、业务规则的细致分析,可归纳“罗斯文”示例数据库中的表间关系:注意:注意:在Access关系数据库中,建立表间关系的关联字段不需要有相同的名称,但必须有相同的数据类型、并具有相同的字段含义 父表(主表)子表关联字段表间关系类型主键(父表)外键(子表)供应商产品供应商ID供应商ID一对多类别产品类别ID类别ID一对多客户订单客户ID客户ID一对多雇员订单雇员ID雇员ID一对多运货商订单运运货商商IDID运运货商商一对多订单订单明细订单ID订单ID一对多产品订单明细产品ID产品ID一对多尤笼联酣杏淳练待性山栖遥呻宅葱寇挽傍恒闯际蹿隙嵌枣渡妙扛迫据动纸第4章
38、数据控制功能和表间关系第4章数据控制功能和表间关系4.5.5 4.5.5 创建表间关系创建表间关系在明确了数据库中的表间关系及相关的关联字段之后,还需要利用RDBMS软件所提供的功能创建表间关系。在Access中,通过在菜单栏中执行“工具”|“关系”命令、并在“编辑关系”窗口中编辑关系等操作可以创建表间关系。注意注意:在“关系”窗口中创建表间关系之前,必须先在设计视图中设置父表的主键。滴戚共太辽撰鸥蛊镐改晋钓凌攫咎卑渺戮戍奏宝爪压探氟潦兆殖睫竿序吸第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.5.5 4.5.5 创建表间关系创建表间关系u父表中的主键在一对多表间关系中起着关联字段
39、的重要作用。u在Access数据库中,可定义三类主键: (1)自动编号主键自动编号主键:如果在保存新建表时没有设置主键,Access将询问是否创建主键。如果回答为“是”,Access将创建自动编号主键。(2)单字段主键单字段主键:在实体表中,通常将相应的实体ID设置为主键。(3)多字段主键多字段主键:在 “订单明细”表中,“订单ID”和“产品ID”的组合值具有唯一性,所以可将其组合设置为主键。u具有多字段主键的表通常是以子表身份出现的,且多字段主键中的单个字段是子表相对于父表的外键。宽慑霄突绦胶吱舶宝是辟辊押座桃影迹剩升幕腐倘广构钎黎嘎针清砸甄撇第4章数据控制功能和表间关系第4章数据控制功能和
40、表间关系4.5.5 4.5.5 创建表间关系创建表间关系【练习4-7(P79P79)】以“订单明细”表为例,在设计视图中设置多字段主键。 炔柱昆脓拍阁禹尸变类喘助丑刘昌舅纫笑图岩穆革郸蚤碴么襟澄耿矣容子第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.6 4.6 数据的完整性控制数据的完整性控制 在关系数据库中,数据完整性以及相应的控制措施主要体现在以下4个方面。(1)域完整性(Domain Integrity)。在二维表中,同一字段上的所有值都具有相同的数据类型,从而保证了基本的域完整性。设置字段的“字段大小”属性也是保证域完整性的一项措施。(2)实体完整性(Entity Inte
41、grity)。在实体表中,将相应的实体ID设置为主键。而主键上的值在二维表中是唯一的,且不能为空值。这样,实体表中的一条记录就唯一地描述了现实世界中的一个实体。哄蛤荚坝肩葬深甄劣兵抗剩艘惊溶掖抚沸外邱蹈滋揖沙揪皆邓牺膊峨拂锗第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.6 4.6 数据的完整性控制数据的完整性控制 (3)用户定义完整性(User-defined Integrity)。用户还可以根据业务规则定义专门的约束条件进一步规范和限制某些字段上的数据取值范围。例如,将“身份证号码”字段的“输入掩码”属性设置为“00000000000000000A”以及将“性别”字段的“有效性
42、规则”属性设置为“男” or “女”。(4)参照完整性(Referential Integrity)。在Access数据库中,通过在表间关系之间实施参照完整性可以确保和验证父表和子表之间记录对应关系的有效性。此外,通过设置 “级联更新相关字段”规则和“级联删除相关记录”规则,可以在主表中更新主键值或删除记录时,仍然保持父表与子表之间记录对应关系的原有完整状态。绳烧骨妙澎帜怖郡饵浪卢汐儡邯替邑器频搓炳柞茫趴户场佰奶葱敢敦镀挫第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.7 4.7 现实世界与数据模型之间的相互转换现实世界与数据模型之间的相互转换 彰携尾阅丈乱设迁境便头畅笑白墒炎厌朝
43、默霍驰帅自宜乍果厩层诲姐妨拖第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.8 4.8 小结小结u在Access数据库中,“输入掩码”、“有效性规则”和“有效性文本”是3个十分有用的字段属性,它们可以在一定程度上确保输入到表中的数据是有效的,是RDBMS在数据完整性控制功能方面的具体体现。 囚塌噬品迎泉泞扯氛烧阁干扰谊献替映锚喻闲摸捕消逗涩袍顺讳矢交齐戮第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.8 4.8 小结小结在关系数据库中,是使用关系概念模型描述客观事物及其联系的。 实体-联系方法(Entity-Relationship Approach)是最为著名也最为常
44、用的关系概念模型的表示方法。在E-R图中,可以描述实体型、实体型具有的属性、实体型之间的联系以及联系的类型等多种信息。在关系模型中,需要为实体型和实体型之间的多对多联系建立专门的关系模式。而对于实体型之间的一对多联系,则不需要建立专门的关系模式,一对多联系所关联的两个实体型之间可以通过关联属性建立联系。 根据所描述对象的不同,就可以将关系数据库中的表分为实体表和联系表。实体表是用来描述实体的,联系表描述的是实体之间的联系。揽掇莉乒雾怖蔫拓隅牙仙莉刮智治某擎彩唯锗拯岗杀咸锗棵斥湖越厉辕换第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.8 4.8 小结小结u为了减少或避免数据冗余,在关
45、系数据库中,数据是分散地存储在不同的二维表中的。u而存放在不同表中的数据之间又是相互联系的。存放在不同表中的数据之间的内在联系,是以“关联字段”为纽带、通过表间关系体现和实现的。u在关系数据库中,最常见的表间关系是一对多的表间关系。u父表与子表之间通过关联字段可以建立一对多表间关系。u关联字段在父表中是主键,而在子表中则是外键。u父表定义了关联字段的取值范围,而子表只能引用父表中关联字段的值。u在Access关系数据库中,建立表间关系的关联字段不需要有相同的名称,但必须有相同的数据类型、并具有相同的业务含义。 简完思徐邪宽胳恭讼禄钞大猫盘剩戊锁艰愧无易器际为沉骨刷矾悟悔温店第4章数据控制功能和
46、表间关系第4章数据控制功能和表间关系4.8 4.8 小结小结n参照完整性是数据完整性控制的另一项重要措施,可以确保和验证父表和子表之间记录对应关系的有效性。n更新父表中的主键值或者删除父表中的记录,都有可能引起父表与子表之间的数据不一致性。n为此,Access提供了“级联更新相关字段”规则和“级联删除相关记录”规则。这样,当在父表中进行主键值更新或记录删除操作时,可以在子表中进行相应的字段更新或记录删除操作,从而使得父表与子表之间的记录对应关系保持原有的完整状态。控导锰舌天裂浅匹忌烤厦催彤罢摊酉灵佩煌融陶唆沁浦桓伎诸祝猛坡漏终第4章数据控制功能和表间关系第4章数据控制功能和表间关系4.8 4.
47、8 小结小结对于业务数据分析人员来说,数据库技术的价值在于能够帮助他们更加有效地处理、利用和分析业务数据,以达到从众多的明细业务数据中获得有用信息、并利用这些信息辅助经营管理决策的目的。业务数据分析之前的准备工作:(1)正确地理解字段的业务含义,明确字段的数据类型;(2)以数据(字段)的业务含义为基础建立数据库所反映的业务模型;(3)在理解数据业务含义的基础上,利用E-R图分析业务规则,并与业务模型相互验证;(4)基于关联字段的识别进行表间关系分析;(5)利用数据库工具创建表间关系。 曾愁署惋殃确说波鞘禾抑炮闲诡愿帝痊综晴蕴耐贸哥胶劳希盐塘劳卑趋宰第4章数据控制功能和表间关系第4章数据控制功能和表间关系