网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库系统6_规范化研究.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
规范化 关系设计原则 规范化过程 1、关系设计原则 为了得到一个结构良好的关系: 每个函数依赖关系的决定因子都必须是候选键 对于违反上述原则的关系,应该将其分解成两个或多个符合该原则的关系。 规范化就是对关系进行检查,直至使其结构完善的过程。 对一个规范化关系执行行插入,删除和修改操作不会引起更新异常。 规范化举例1 StudentNum→(StudentName,AdviserID,Adviser, Department, Phone) AdviserID →( Adviser, Department , Phone) 分解成: Adviser(AdviserID , Adviser, Department , Phone) Student(StudentNum,StudentName,AdviserID) 规范化举例2 (StudentID, StudentName, DormName, DormCost) (StudentID) → (StudentName, DormName, DormCost) (DormName) → (DormCost) 分解成: (StudentID,StudentName, DormName) (DormName, DormCost) 规范化举例3 (AttorneyID,ClientID, ClientName, MeetingDate, Duration) (AttorneyID, ClientID )→ (ClientName, MeetingDate, Duration) (ClientID) → (ClientName) 分解成: (AttorneyID,ClientID) →(MeetingDate, Duration) (ClientID) → (ClientName) 2、规范化的过程 (1)确定关系的所有候选键 (2)确定关系中的函数依赖关系 (3)检查函数依赖关系的决定因子。如果存在决定因子不是候选键,则关系存在规范化问题,按下面方法进行: 在它们的新关系中放置具有函数依赖关系的列 让函数依赖关系的决定因子成为新关系的主键 将决定因子的副本作为原始关系中的外键 在新关系和原始关系中创建参照完整性约束 (4)根据需要,重复执行步骤3,直至每个决定因子都是候选键 规范化过程举例 PRESCRIPTION(PrescriptionNum,Date,Drug,Dosage,CustomName,CustomPhone,CustomEmail) 规定一个处方只针对一个人,但每个人可以有多个处方。 步骤1:确定候选键 PrescriptionNum决定了Date,Drug, Dosage,由于只对一人有效,同样可决定CustomName,CustomPhone, CustomEmail 只有一个候选键PrescriptionNum 步骤2:确定函数依赖关系 PrescriptionNum→(Date,Drug,Dosage,CustomName,CustomPhone,CustomEmail) Drug → Dosage × CustomEmail →(CustomName, CustomPhone) 步骤3:检查决定因子是否为候选键 将函数依赖关系放到新关系中,决定因子作为新关系的主键 CUSTOMER(CustomName,CustomPhone,CustomEmail) 决定因子用作原关系的外键 PRESCRIPTION(PrescriptionNum,Date,Drug,Dosage, CustomEmail) 创建参照完整性约束 PRESCRIPTION中的CustomEmail值在CUSTOMER表的CustomEmail中必须存在对应项 步骤4 根据需要,重复执行步骤3,直至每个决定因子都是候选键 非规范化举例 例:在关系模式 学生成绩单(学号,英语,数学,语文,平均成绩) 中存在下列函数依赖:   学号→ (英语,数学,语文,平均成绩)   (英语, 数学, 语文)→平均成绩 虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,对关系模式不再做进一步分解。 现有一个商品-供应实体,描述某个商场的商品被多个供应商的供应情况,每次交易都有一个订单。 为这个实体创建一个关系,用下划线标识主键。 这个关系是否存在规范化问题,如果有,写出规范化的主要步骤,列出参照完整性约束。外键用波浪线表示。 Support-Product(SbID, SbName, SbDateTime, SptID, SptName, SptAdr, SptPhone, PdtID,

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档