数据库表结构创新设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 数据库表结构设计 本课教学内容 数据库设计的重要性 实体和属性 提取关系 特殊情况下的表设计 数据库设计的重要性 实际的项目中,数据库设计非常重要,数据库设计过程中,最重要的是表设计。因此,好的表结构设计,对应着较高的效率和安全性,而差的表设计,对应着差的效率和安全性。(例子参考课本P16) 实体和属性 在进行数据库设计之前,必须要进行需求分析。根据需求分析的结果,使用E-R模型描述系统中数据的概念。 在E-R模型中,首先遇到的就是实体和属性。 实体和属性 1. 实体的提取。 如何提取实体呢?我们知道,客观存在并可相互区别的事物称为实体,一般情况下,实体表现为名词。 因此,通过将需求中,需要保存的名词提取出来,就可以提取出实体。 2. 属性的提取。 实体所具有的某一特性称为属性,一般说来,一个实体可以由若干个属性来刻画。属性,一般表现为名词。因此,我们通过将需求中,需要保存的实体的具体特征提取出来,就可以得到属性。 实体和属性 有了实体和属性的E-R图,接下来是将实体映射为表。 实体映射为表的一般方法是:原则上,每个实体对应一个表,实体中的属性对应表中的列。 提取关系 一对一关系下的表设计 以学校和校长之间的关系为例,一个学校只有一个校长,一个校长只在一个学校任校长,属于一对一关系,其E-R图如图所示: 提取关系 一对一情况下,表设计的一般经验是: 1. 每个实体设计一张表。 2.任选一表,其中的主键在另一个表中充当外键。 提取关系 学校与校长关系表设计: 提取关系 一对多情况下的表设计 以班级和学生之间的关系为例。一个班级中有若干名学生,每个学生只在一个班级中学习,其E-R图如图所示: 提取关系 一对多情况下,表设计的一般经验是: 1. 每个实体设计一张表。 2.选“一”方表,其主键在“多”方表中充当外键。 提取关系 班级与学生关系表设计: 提取关系 多对多情况下的表设计 以学生和课程之间的关系为例。一个学生可以选多门课程,一门课程可以有多个学生选,其E-R图如图所示: 提取关系 多对多情况下,表设计的一般经验是: 1. 每个实体设计一张表。 2.另建第三个表(关系表),两个“多”方的主键在关系表中充当外键;关系表中的主键为这两个外键的组合。 提取关系 学生与课程关系表设计 提取关系 实体自身发生联系情况下的表设计 以学生和班长之间的关系为例,学生中有班长,班长也属于学生的一员,班长和学生属于一对多关系,此时属于学生实体与自身的关系,其E-R图如图所示: 提取关系 此种情况下,表设计的一般经验,实际上可以参考一对多情况下的方法。为: 1. 每个实体设计一张表。 2.选“一”方表,其主键在“多”方表中充当外键。 3.将两个表合成一个表。 提取关系 学生与班长关系表设计 特殊情况下的表设计 引入冗余字段 一般说来,表及其字段之间的关系, 应尽可能避免冗余字段。但是,为了提高数据库的运行效率,有时可以降低标准,适当增加一些冗余,提高查询性能,达到以空间换时间的目的。 特殊情况下的表设计 例如:有一张存放订单明细的表,结构如表所示: 该表的设计没有什么问题。 但是,考虑一种特殊情况,如果系统经常进行统计总金额操作,而统计时将每一种图书的单价和数量相乘,然后加起来,如果统计操作反复执行,这里面将会执行大量的乘法,怎样避免大量乘法操作,提高统计速度呢? 特殊情况下的表设计 这就可以在订单明细表表中增加冗余字段。 增加了冗余字段的订单明细表,如表所示: 在新的订单明细表表中,增加了“总价”字段,由于“总价”可以由“单价”乘以“数量”得到,说明“总价”是冗余字段。因此,该表数据存在低级冗余。 但是,这种设计可以消除在统计时的大量乘法操作,提高查询统计的速度,从算法策略上讲,这是以空间换时间的作法。 特殊情况下的表设计 数据库设计中的其他技巧包括: 1. 科学地进行主键取值。 2. 适当使用“列变行”技术,减少不必要的数据冗余,提高性能。 本章知识体系 本章知识体系 * …… 教授 王海 0001 职称 姓名 校长编号(主键) …… 0001 上海 华东大学 001 校长编号(外键) 地址 名称 学校编号(主键) 校长信息表 学校信息表 …… 001 女 郭丽方 0002 001 女 雷萍 0001 班级号(外键) 性别 姓名 学号(主键) …… 科教楼401 001 教室号 班级号(主键) 学生信息表 班级信息表 …… 女 郭丽方 0002 女 雷萍 0001 性别 姓名 学号(主键) …… 高等数学教程 002 大学物理教程 001 教材名称 课程号(主键) 002 0001 001 0002 001 0001 课程号(外键) 学号(外键) 学生信息表 课程信息表 选课信息表 …… 000

文档评论(0)

duoduoyun + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档