- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL概述3
第3章 关系数据库的设计理论
前面两章我们系统地讨论了关系数据库的理论基础,包括数据库的三级模式,关系模型及关系代数和关系演算。通过学习我们知道,关系数据库理论的实质就是以数学的方法来组织实际的数据。那么,如何组织呢?在给定一组数据以后,应该构造几个关系,每个关系应该有哪些属性构成?这便是本章要解决的问题。
数据依赖是关系数据库设计的中心问题,函数依赖和多值依赖是其中最重要的两种形式。从数据依赖的角度出发,在什么是结构好的关系这一问题上,人们已经做了很多的研究工作。这些工作最终产生了“规范化”理论。在关系数据库的设计实践中,正是通过“规范化”关系使数据的组织合理化。所谓的“规范化”是把有问题的关系转化成为两个或多个没有这些问题的关系的过程。更重要的是,规范化还可用做检查关系是否合乎需要和正确与否的指南。
3.1 实体类型的属性关系
关系数据库是以关系模型为基础的数据库,它利用关系和关系中的属性来描述现实世界。一个关系就是现实世界中的一个实体,而属性则代表了该实体的某种性质。 例如,实体“学生”可以用关系Student (SNO,SNAME,SEX,AGE,MAJOR,……)来描述,其中属性SNO, SNAME,SEX,MAJOR分别代表了学号、姓名、年龄、性别、专业等“学生”固有的性质。事实上,关系除了描述实体之外,还可以描述实体之间的联系。例如,男女之间“婚姻”关系,就可以用这样一个关系来抽象:MARRAY(MALE_NAME,FEMALE_NAME,……)。关系架起了现实数据与数学方法之间的桥梁。
实体的内部存在着一对一、一对多和多对多三种类型的联系(参考1.3节),与之相应,关系的各属性之间也存在着3种联系模式。
1. 一对一关系(1:1)
在日常生活中,关系属性之间的一一对应关系是很常见的。比如,对于某个只有一个站台的车站来说,不同的火车车次肯定有不同的进站时间,则在关系“车次(车次号、到站时间、到站站台,……)”中,属性“车次”和“到站时间”便是一对一的关系,记作1:1。又如,网络设备中,网卡的硬件地址和网卡本身也是一一对应的。
在关系数据库设计理论中,以1:1对应的关系是这样定义的:A、B为某个实体类型的两个属性的域(取值范围),如果对于A中的任一具体值,B中至少有一个值与之对应,B中的任一具体值,A中也至多有一值与之对应,则称A、B这两个属性之间为1:1对应的 关系。
2. 一对多关系(1:∞)
在一个实体类型中,如果它的一个实体属性集A中的一个值至多与另一个实体属性B中的一个值有关,而B中的一个值却与A中的多个值有关,则称A、B两属性之间的关系为一对多的关系。例如,如果一个人有多个住处,则这个人的身份证号与他的地址便满足一对多的关系。
3. 多对多关系(∞:∞)
在一个实体类型中,如果它的两个属性值集合中的任一值都与另一属性值集合中的多个值有关,则称两个属性之间是多对多的关系。例如,在大学中一名教师可以教授多门课程,而一门课程也可以由多名教师来教授,则教师的姓名和课程的名称之间便是多对多的关系。
3.2 数据的函数依赖
关系数据库设计理论的中心问题是数据依赖性。所谓的数据依赖是实体属性值之间相互联系和相互制约的关系。函数依赖(Functional Dependency)和多值依赖(Multivalued Dependency)是与数据库设计理论相关的最重要的两种数据依赖类型。
3.2.1 函数依赖
定义3.1 设R(U)是属性集U上的关系模式,X、Y是U的子集。若对于R(U)的任意可能的关系r,r中不可能存在两个元组在X上的属性相等,而在属性Y上的属性值不等,则称X函数确定Y或Y依赖于函数X。
从定义可以看出,函数依赖实质上是对现实世界中事物属性之间的相关性的一种断言。它说明,在一个具体关系中,如果给定了一个属性的值,就可以获得(查到)其他属性的值。例如,对于表3.1所示的关系Student,假定每个学生都有惟一的学号SNO,每个学生有且只有一个专业MAJOR,则只要给定SNO的值,就可以弄清楚该学生的专业。我们说“专业”函数依赖于“学生学号”,或“学生学号”函数决定“学生专业”。函数依赖使用下面的形式来书写
SNO→MAJOR。
按习惯,我们一般将箭头左边的属性称为决定因素。
表3.1 学生专业表 Student
SNO MAJOR SNO MAJOR Computer ScienceMaths Accounting …… ……
对于函数依赖,有几点是我们应该注意的。
函数依赖是指关系模型R中所有的元组都要满足的约束条件,而不仅仅是某个或某些元组的特例。
函数依赖并不一定具有可逆性。还以表Student为例,如果SNO决定MAJO
文档评论(0)