内容简介:二、关系代数并交
一、三级模式-两级映射
通俗地说,
内模式看到的是数据库文件,关心数据如何存放;
概念模式是表
外模式是视图
二、关系代数
并
交
差
笛卡尔积
投影 :select 列
选择:条件过滤
联接:相同列合并,默认等值联接,即只保留两者的相同行
三、函数依赖
比如,学号可以确定学生姓名,就说姓名依赖学号。
1、部分函数依赖
主键为(学号 + 课程号),则字段“姓名“部分依赖于学号。
2、传递函数依赖
学号 宿舍 费用
062201 A 900
062230 B 1200
062240 B 1200
学号确定宿舍、宿舍确定费用,且有学号不包含宿舍,宿舍不确定学号,符合传递函数依赖条件。费用传递依赖于学号。
四、规范化理论的价值与用途
五、求候选关键字
六、范式
提升范式能消除数据冗余、插入异常、更新异常、删除异常等弊端;但范式并非越高越好,范式越高,数据的粒度就越小,有可能会带来管理、性能的问题。通常,到达范式三就差不多了。
范式是递增的。要达到高范式,一定是已经满足了低范式。
范式的判别有条件可供判断,条件满足,或者条件不存在,范式都成立
1、第一范式
2、第二范式
学分部分依赖主键(只依赖课程号),所以不符合第二范式。解决方法是拆分,将课程从此表中拆分出去,仅保留课程号。事实上, 改造为更高范式,通常都是拆分。
3、第三范式
主键只有一个,肯定不存在部分依赖情况,所以肯定符合第二范式。但表中存在传递依赖:学号确定系号,系号确定系名和地址,所以不是第三范式。办法:拆分。
4、BC范式
图中没有非主属性,肯定符合第三范式。但因为罗列出来的依赖表达式中,有属性T不是候选键,所以不是BC范式。
七、模式分解
表拆分其实就是模式分解。
1、保持函数依赖分解
分解之前有哪些函数依赖,分解之后,它们依然存在。
如图所示,模式R(A,B,C)有A->B,B->C,A->C,分解为R1(A,B),R2(B,C),此为保持函数依赖分解(A->C可由A->B,B->C传递推导出来)。但如果拆分为 R1(A,B)和R3(A,C),则不是保持函数依赖分解,因为B->C没有了。
2、无损分解
1)表格法
列为关系模式的属性
行为分解模式
a代表分解模式中拥有原模式中的属性
当有两行中某列为同为a,则可根据函数依赖,将不为a的列改为b。如果最后能得到一行
全为a,则是无损分解。
2)运算法
适合分解为两个模式的情况。
将这两个模式分别求交集、互相求差,如果有交集确定任一差,则为无损分解。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 软件改变算力,第四范式用“1+N”模式开启产业变革新范式
- 何谓企业AI转型的1+N范式?第四范式推新一代SageOne软硬一体系统
- 漫谈数据仓库和范式
- 前端数据范式化
- 函数范式与领域建模
- React — 端的编程范式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
与孩子一起学编程
[美] 桑德Warren Sande、Carter Sande / 苏金国、姚曜 等 / 人民邮电出版社 / 2010-11 / 65.00元
一本老少咸宜的编程入门奇书!一册在手,你完全可以带着自己的孩子,跟随Sande父子组合在轻松的氛围中熟悉那些编程概念,如内存、循环、输入和输出、数据结构和图形用户界面等。这些知识一点儿也不高深,听起来备感亲切,书中言语幽默风趣而不失真义,让学习过程充满乐趣。细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,教你用最易编写和最易理解的Python语言,写出你梦想中的游戏程序。 ......一起来看看 《与孩子一起学编程》 这本书的介绍吧!