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

关系数据理论_课堂案例.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关系数据理论_课堂案例.pdf

数据库范式 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为 范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 第一范式 定义 : 每个属性确保原子性 每一列都应该不可再分 ,且无重复 示例: 学生关系表 学号 学生姓名 学生年龄 省份 籍贯地址 A001 张三 18 安徽省 安徽省合肥市政务新区习友路和茂荫路交口 A002 李四 20 江苏省 江苏省苏州市独墅湖高教区临泉街 196 号 问题 : 1 )籍贯地址中已经包含省份信息 ,如果有一天张三想要更改省份 ,那么必须两列都要更改。 2 )如果该表经常会查询如哪个市的学员的话 ,那么从籍贯地址中去提取地市信息 ,然后再查询效率非常低。 解决: 将重复数据的列“省份”删除,同时将籍贯地址按照需求再次拆分成省份、地市和街道三列。 学号 学生姓名 学生年龄 籍贯(省份) 籍贯(地市) 籍贯(街道) A001 张三 18 安徽省 合肥市 政务新区习友路和茂荫路交口 A002 李四 20 江苏省 苏州市 独墅湖高教区临泉街 196 号 1 第二范式 定义 : 每一个非主属性不能部分依赖于码 ,即必须完全依赖于码 除了主键以外的其他列,都应该依赖于该主键 ,确保一张表只描述同一件事情 示例: 学员选课关系表 学生编号 课程编号 学生姓名 学生年龄 课程名称 课程学分 选修成绩 A001 C1 张三 18 数据库系统概论 4 85 A002 C2 李四 20 C 语言编程艺术 3 90 A002 C1 李四 20 数据库系统概论 4 88 问题 : 1 )从关系模式的角度看 : 一张关系表最好只描述一个对象的特征或一件事情的始末 ,上表中 “学员编号”和 “课程编号”合在一起构 成码 ,它们共同能决定的特征只有 “选修成绩”,即 “选修成绩”完全依赖于码 ;但 “学生姓名”等其它只 是由码中的一个主属性 “学生编号”来决定的 ,也就是部分依赖于码。 2 )从关系数据的角度看 : 数据冗余:比如张三学员出现多次,实际上该学员选修 m 个课程,那么姓名和年龄就会重复 m-1 次。 更新异常:如果要调整某课程的学分,那么所有选修该门课的记录都得更新,否则会出现学分不一致的问题。 插入异常:假设要新开设一门课,如果暂时还木有人选修,那么该课程信息也就无法记录到数据库中。 删除异常:如果一门课程选修结束,需要从该表中删除,那么会导致课程名称和学分也被删除了。 解决: 将表拆分成三张表,分别是学生表、课程表和选修表 ,这样减少了数据的冗余,后期对数据的操作也有了针对性 的表去对应。 学生关系表 课程关系表 选修关系表 学生编号 姓名 年龄 课程编号 名称 学分 学生编号 课程编号 成绩 A001 张三 18 C1 数据库系统概论 4 A001 C1 85 A002 李四 20 C2 C 语言编程艺术 3 A002 C2 90

文档评论(0)

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

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

1亿VIP精品文档

相关文档