资源描述:
《函数依赖规范化ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、规范化规范化的必要性与重要性规范化在整个数据库设计知识结构中的位置规划化解决的问题规范化在数据库概要设计中的位置概念模型的设计(E/R图)关系模型关系模型规范化模式定义,建立数据库一个异常模式设计例:lending(branch_name,branch_city,asset(分支机构的资产额),customer_name,loan_number,amount)这个设计的问题:冗余:修改异常:修改Branch_name的asset插入异常:新增加一个分支机构删除异常:删除贷款号222结论:lending关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、
2、更新异常,数据冗余应尽可能少。异常原因:解决方法:一个异常模式设计由存在于模式中的某些数据依赖引起的通过分解关系模式来消除其中不合适的数据依赖。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。函数依赖多值依赖重点内容函数依赖三种范式、BCNF范式模式分解函数依赖1函数依赖定义2用函数依赖解释候选码、超码3函数依赖的等价性4函数依赖的推理规则5最小函数依赖集1函数依赖的定义关系R上的函数依赖:如果R的两个元组在属性A1,A2,…..An上一致(也就是说,两个元组在这些属性相对应的各个分量具有相
3、同的值),则它们在另一个属性B上也应该是一致。记作:A1A2…..An→B关系:描述实体、属性、实体间的联系。从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。元组:关系中的每一行属性:关系中的每一列分量:属性在某个元组上的取值函数依赖举例Movie(title,year,length,filmType,studioName,starName)Titleyear->lengthTitleyear->filmtypeTitleyear->studioName简写:titleyear->lengthfilmtypestudioName函数依赖说明强调:函数依赖
4、是针对关系模式,而不是特定的实例。2用函数依赖解释候选码、超码如果一个或多个属性的集合{A1,A2,….An}满足如下条件,就称该集合为关系R的键码。1.这些属性函数决定该关系的所有其他属性。2.{A1,A2,….An}的任何真子集都不能函数决定R的所有其他属性。键码举例MovieStar(title,year,length,filmType,studioName,starName)属性组{title,year,starName}构成了Movie关系的键码。TitleyearstarName->lengthfilmType必须证明:{title,year,starNa
5、me}的任何真子集都不能函数决定所有其他的属性。键码举例首先:观察title和year不能决定starName,因为很多电影有多个影星。{year,starName}也不是键码,因为一个影星在同一年中可能出演多部电影,因此,year,starname→title不是函数依赖。同样{title,starName}也不是键码。从而确定了{title,year,starName}是最小的集合关系的键码(候选码)说明:有时一个关系有多个键码(候选码),这样的话,通常要指定其中一个为主键码。超键码包含键码(候选码)的属性集称为“超键码superkey”,即键码的超集(super
6、setofakey)。键码和超键码的关系:每个键码都是超键码但是,某个超键码不是(最小的)键码超键码满足键码的第一个条件,但是不一定满足键码的第二个条件。寻找关系的键码判断键码的第一条规则:来自实体集的关系的键码就是该实体集或类的键码属性。例:Movie(title,year,length,filmtype)Stars(name,address)寻找关系的键码第二条规则:如果关系R来自一个联系,则该联系的多样性将会影响R的键码。有三种情况:l如果联系是“多对多”的,则相连的两个实体集的键码都是R的键码属性。l如果是从实体集E1到实体集E2的“多对一”联系,那么实体集E
7、1的键码属性是R的键码属性,而E2的键码属性则不是R的键码属性。l如果联系是“一对一”的,则联系两端的任何一个实体集的键码属性都是R的键码属性,即R的键码属性不是唯一的。寻找关系的键码例:Movie(title,year,length,filmtype)多Studios(name,address)一Owns(title,year,studioName)Movie与Stars多对多Stars-in(主演)Stars-in(title,year,starName)寻找关系的键码多向联系的情况:如果多向联系R有一个箭头指向实体集E,则相应的关系中,除了E的