以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~
一、模式分解
1、属于低级范式的关系模式通常存在一些数据冗余及操作异常,因此属于低级范式的关系模式需要向高级范式的关系模式进行转换时,需要通过关系模式的分解来实现。
等价的三种标准:①分解要具有无损连接性(保证数据不丢失信息)②分解要具有函数依赖保持性(减轻或解决各种异常情况)③分解既要无损链接也要具有函数依赖保持性。
2、无损分解的测试算法:
①如果只是分解为两个R1R2,就直接看两个的交集,看交集能不能推出R1与R2或者R2与R1的差,能推出任意一个就是无损的。
②如果分解大于两个就要建表:
例子:设有关系模式R(A,B,C,D,E),R分解成ρ={AB,BC,AD},若在R上成立的函数依赖集 F={A→B,C→D},那么ρ相对于F是否为无损连接分解?
建表:
A->B:
C->D:没有两个a。
最后没有使得哪一行都为a,所以不是无损分解。
3、保持函数依赖的分解:
就是看分解出来的R1/R2...闭包的函数依赖,最后并在一起,再看看有没有包含原函数的依赖关系F,如果包含了,就属于保持函数依赖,否则不是。
在这里要注意不要写漏!!!
如果发现不属于后,一定要并在一起之后再推,还是推不出来才算不属于,不要漏。
4、一个保持函数依赖的分解不一定是无损连接、一个无损连接不一定是保持函数依赖的。
二、数据库设计的任务和内容
1、数据库设计的任务:是指根据用户需求研制数据库结构的过程。其设计的特点是强调设计与行为设计相结合,是一种”反复探寻,逐步求精“的过程。
2、数据库设计方法的简述;①直观设计②计算机辅助设计法③自动化设计法④规范设计法(基于E-R、3NF、视图)
3、规范设计法的步骤分为六个阶段:
①系统需求分析阶段
②概念结构设计阶段
③逻辑结构设计阶段
④物理结构设计阶段
⑤数据库实施阶段
⑥数据库运行与维护阶段
4、三个世界:
信息世界:
①实体:客观存在并且可以互相区分的事物,可以是具体的人、事、物,也可以是抽象的事件。
②实体集:同一类实体构成的实体集(如全部客户、商品)
③实体型:具有相同属性的实体必有共同的特征,所以实体名 及其属性名的集合来抽象和描述同类实体,称为实体型。
③属性:实体所具有的某一特征叫为属性。
④码:在一个实体中,唯一标识实体的属性集称为码。(例如客户的编号就是客户实体的码)
⑤域:属性的取值范围。
⑥联系:实体之间的联系,一对一、一对多、多对多。
5、E-R模型:
例子: