- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库作业答案4
第五次课 数据库应用篇: 一、函数依赖和关系模式的规范化 二、数据库设计 三、数据库管理 一、数据依赖和关系模式的规范化 本章介绍在使用关系数据模型进行应用设计时,由于设计地模式不合适,会导致异常问题。这些问题的解决,需要对关系进行规范的设计,使之成为较好的范式。本章的重点是介绍关系的不同范式,以及范式所依据的关系依赖理论。 1.1 关系数据库设计中的隐患 关系数据库设计要求找到一组较优的关系模式。 一个不良的设计可能会导致以下问题: -信息重复出现在多个表中 -无法表达某种信息 关系数据库设计目标 -避免数据冗余 -保证能够表达属性间的关系 -便于对数据更新进行检验,防止破坏数据库的完整性约束 1.1.1 有问题的模式设计例子 例:考虑银行的关系模式:Lending-schema =(branch-name,branch-city, assets, customer-name,loan-number,amount)存在如下问题: 1.冗余-一个支行的每次借款导致branch-name,branch-city,assets数据的重复存储,浪费存储空间。-对一个支行数据进行更新时,要访问多个有该支行数据的记录,导致应用程序复杂化。 2. 空值-如果一个支行中不存在借款(如新建的支行),则支行的信息也无法体现。 1.1.2 冗余带来的问题 Lending-schema = (branch-name,branch-city, assets, customer-name,loan-number,amount) 对表的操作可能会产生更新异常问题: -修改异常:应用程序可能只修改一个元组,不修改另外元组中的相同信息 -插入异常:假定每个元组必须要包含顾客名,则对于新成立的银行,必须要等到有顾客出现,该银行的信息才能插入数据库中 -删除异常:当所有的顾客都删除了,则银行的信息也没有了 1.1.3 问题的根源 o一个关系内,同时存在有多个实体的信息,包括有: -银行的信息:名称、地点、资产 -借贷户账号的信息:借贷户、账号、金额o解决办法:把两类信息分开--分解关系 -使得每个表中只有一个实体的信息(语义单一化) 1.1.4 分解关系 可将关系模式Lending-schema分解为: Branch-customer-schema=(branch-name,branch-city,assets,customer-name) Customer-loan-schema=(customer-name,loan-number,amount) 分解一个关系R时,R的每个属性应出现在子关系模式R1,或者R2中: R = R1 ∪ R2 存在的缺点:在一些查询情况下,需要做连接,降低了效率。 无损连接分解: 保证对于模式R上的所有可能关系值r,有 r = ΠR1(r)×ΠR0(r) 1.1.5 一个有损连接分解的例子 对R=(A,B)进行分解,如图所示。 1.1.6 数据依赖研究的目标 寻求一种理论方法,据此达到以下目的 1 判断一个特定的关系R是否‘格式’良好 2 如果R‘格式’不好,则将它分解成一组关系{R1,R2,…,Rn},要求 -每个关系都格式良好 -分解是无损分解 3 该理论的核心概念是 -函数依赖 -多值依赖 1.2 函数依赖 1.2.1 函数依赖定义 设有一关系模式R(A1,A2,…,An),X和Y为其属性的子集。设t1、t2是关系R中的任意两个元组,如果t1[X]= t2[X],则t1[Y]= t2[Y] ,称为X决定Y, Y依赖于X, X是决定子。记为:X→Y。 简单的说:FD(函数依赖)是指一个或一组属性的值可以决定其他属性的值。 根据函数依赖的定义可以得出如下规律: 1.在一个关系模式中,如果属性X,Y有1:1联系,则称X→Y, Y→X为相互函数依赖,记为Y ←→X ,也称为X和Y等价 2.如果属性X,Y有1:m联系,则存在函数依赖Y→X,但X→Y。 3.如果属性X,Y有n:m联系,则Y和X不存在任何函数依赖关系。 1.2.2 函数依赖的例子 对于关系模式:student(sname,sno,sex,age,dormitory) {sno} →{sname,sex,age,dormitory} {sname,dormitory}→{sno,age} {dormitory} →{sex} 1.2.3 一些有关函数依赖的概念 1.2.3.1 平凡的依赖:若Y是X的子集,则X→Y成立, 且称为平凡的依赖。 例如:{sex, s
文档评论(0)