先从下午场开始看吧(之前接触过数据库,所以下午场对我来说比较熟悉)
知识点一 E-R模型
1)E-R模型的三个最重要的知识点:实体、联系、属性。
1.客观存在并可相互区别的事物称为实体,具有相同类型和共享相同属性的实体的集合称为实体集。
2.现实世界中事物内部以及事物之间的联系,在信息世界中反映为实体内部的联系和实体之间的联系。
3.实体所具有的某一特性称为属性,属性的取值范围称为该属性的域。
2)E-R图的组成要素
矩形——实体集 菱形——联系集 椭圆——属性
双椭圆——多值属性 虚椭圆——派生属性
3)E-R图设计
在做E-R图这一题的时候,题目会给出需求描述和部分的E-R图。先在纸上将需求描述给出的信息汇总。
根据需求分析给出的信息可以找出实体之间的联系,将其连接起来,标上是哪一种联系(一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n))。其次,将属性加上去(这个时候第二问差不多就做出来了)。最后一问就是添加新的实体和联系,只需把新给的实体和其他实体联系起来即可。
知识点二 范式
1)基础知识
第一范式 1NF:每一个分量必须是不可分的数据项。
第二范式 2NF:关系模式属于1NF,且不存在非主属性部分函数依赖于候选码(主属性),即非主属性完全依赖于候选码。
第三范式 3NF:关系模式属于2NF,且不存在非主属性传递依赖于候选码。
BC范式 BCNF:关系模式属于3NF,且每一个决定因素都包含候选码。
要明白这些范式,首先要了解什么是函数依赖。
举个例子:设R(U)是属性集U上的关系,x、y是U的子集,x’是x的真子集,若 x→y且x’→y,则称y部分依赖x;若x→y且x’!→y,则称y完全依赖x。也就是说,完全依赖只有x可以决定y,其他的子集都不能单独决定y,如果可以决定就是部分依赖。
再来看一个例子:
学生ID,学生姓名,所修课程ID,课程名称,成绩
(学生ID,所修课程ID)→成绩
成绩既不能单独依赖于学生ID,也不能单独依赖于所修课程ID,因此成绩完全函数依赖于关键字。
这样看,第二范式就可以理解为非主属性只能由(所有的)候选码决定,而不能由单独一个候选码决定其中一个非主属性。
在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖于X。
举个例子:
假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:
(学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)
这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
(学号) → (所在学院) → (学院地点, 学院电话) 即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。
我感觉这个传递依赖很好理解,而且可以让我联想到离散数学里面的传递性哈哈。理解了这个就可以很快了解第三范式。候选码可以决定非主属性,而且候选码 → 非主属性x → 非主属性y。
BC范式即在第三范式的基础上更加限制,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖就是BC范式。
在关系模式P(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课由一名教师教授,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)→T,(S,T)→J,T→J。
这些感觉还是要多做题才能灵活掌握这些知识点,今天就先到这里。