- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]4 关系数据库理论
第四章 关系数据库理论 4.1 关系基本概念 4.2 关系代数 4.3 关系规范化理论 本章小结 4.1 关系基本概念 例: 设 D1为教师集合(T)= {t1,t2} D2为学生集合(S)= {s1,s2 ,s3} D3为课程集合(C)= {c1,c2} 则D1×D2×D3是个三元集合,元组个数为2×3×2, 是所有可能的(教师,学生,课程)元组集合. 4.1 关系基本概念 笛卡尔积可表为二维表的形式 4.2 关系代数 传统的集合运算 并运算 交运算 差运算 广义笛卡儿积运算 专门的关系运算 选择运算 投影运算 连接运算 并运算 定义 所有至少出现在两个关系中之一的元组集合 R?S ={ r | r?R ? r?S } 并运算 交运算 定义 所有同时出现在两个关系中的元组集合 R?S ={ r | r?R ? r?S } R和S必须是相容的 交运算 差运算 定义 所有出现在一个关系而不在另一关系中的元组集合 R?S ={ r | r?R ? r?S } 交运算可以通过差运算来重写 R?S = R ? (R ? S) 差运算 广义笛卡尔积运算 定义 两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组 R?S的度为R与S的度之和, R?S的元组个数为R和S的元组个数的乘积 广义笛卡尔积运算 选择运算 基本定义 在关系R中选择满足给定条件的元组(从行的角度) ?F(R)={t | t ? R , F(t) = ‘真’} F是选择的条件,?t ? R, F(t)要么为真,要么为假 选择运算 F的形式:由逻辑运算符连接算术表达式而成 逻辑表达式:?,?,? 算术表达式:X ? Y X,Y是属性名、常量、或简单函数 ?是比较算符,? ?{ ? , ? , ? , ? , ? , ≠} 选择运算 选择运算 示例 找年龄不小于20的男学生 ?AGE≥20 ∧ SEX=‘男’(S) 投影 定义 从关系R中取若干列组成新的关系(从列的角度) ?A(R) = { t[A] | t?R } , A?R 投影的结果中要去掉相同的行 示例 示例 给出所有学生的姓名和年龄 示例 示例 求选修了001号而没有选002号课程的学生号 ∏SNO(?CNO = ‘001’ (SC)) -∏SNO(?CNO = ‘002’(SC)) 广义笛卡尔积运算与连接运算 r x s ?A=C(r x s) 连接 自然连接 定义 从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的列。 当R与S无相同属性时,R S = R×S 自然连接 自然连接 自然连接 示例 求001号学生所在系的名称 ∏DNAME(?SNO = ‘001’(S) DEPT) 4.3 关系规范化理论 1 关系模式的设计问题 2 函数依赖 3 范式 4 模式分解 1 关系模式的设计问题 示例:假设要设计一个学生学习情况的数据库StuDB,它有属SNO,SNAME,SDEPT,SAGE, CNO,CNAME, PC#,GRADE。 基于这8个属性,可以构造出下面的关系模式:SCG(SNO,SNAME,SDEPT,SAGE,CNO,CNAME, PC#,GRADE) 下表是关系模式SCG的一个实例: 1 关系模式的设计问题 1 关系模式的设计问题 信息的冗余问题 数据冗余:一个学生学习50门课程,学生信息重复50遍,而与之相应的系信息重复更多 数据不一致:若某学生修改姓名,修改了其中40个,遗漏了10个,则造成数据的不一致性。 信息的更新问题 插入异常:如果有新生还没有学习课程,则新生名单就难以插入 删除异常:如果删除全部学生,则其它关于课程、系等信息也随之删除了 1 关系模式的设计问题 问题:麻烦! 麻烦!! 好麻烦!!! 唉,剪不断,理还乱 解决之道:分解! 分解!! 再分解!!! 我们可以把上例中的关系模式分解为: S(SNO,SNAME,SDEPT,SAGE) C(CNO,CNAME,PC#) SC(SNO,CNO,GRADE) 1 关系模式的设计问题 到底什么原因引起异常现象? 什么样的关系模式没有异常现象? 关系模式的“好”与“坏”如何区分? 需要对关系模式进行语义分析。 2 函数依赖 定义 设R(U)是属性集U上的关系模式,X , Y ? U, r是R(U) 上的任意一个关系,如果成立 对?t , s ? r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记作X?Y 称X为决定因素,Y称为
文档评论(0)