考研复试记录
复试科目:数据库 计算机网络 软件工程 JAVA
一.数据库
1.关系代数
Π:投影 ,选择需要关系表中的属性。
选择:选择需要的关系表中的元组,符号右下方写选择条件。
连接:将两个表通过某种关系连接成一个表,连接符号下写连接条件。
自然连接:当两个关系表存在公共属性时,这两个关系表公共属性的等值连接称为自然连接,自然连接不需要写连接条件。
笛卡尔积:两个表所有元组排列组合
除运算:从被除数关系表中选出包括所有除数的一项或几项
2.简单的sql语句
选择语句:select [distinct] (需要的数据) from (关系表名称) where (条件)
常用条件:between ... and 、not between and、in 、not in、like(模糊查询)、and、or、is null
聚集函数:count(*) 一个关系表中有多少元组
count(distinct A)关系表中属性A有多少不同值
sum([distinct]A)求A的和
avg([distinct] A)求属性A的平均值
连接查询:select[distinct] (需要的数据) from () () where (连接条件+选择条件)
插入:insert into (表名(属性名,属性名...)) values(属性名...)
修改:update (表名) set 属性=修改的值 where (条件)
删除:delete from (表名) where (条件)
3.ER图
1.实体:矩形
2.属性:椭圆
3.联系:菱形
4.根据ER图转换关系模式(求关系表)
实体直接写成关系表。
属性为关系表属性。
联系(一对一联系,一对多联系,多对多联系)。
一对一(两种方式):1.将联系构成一个关系表。这个关系属性为两个关系的主码+联系的本身属性;2.将一个关系的主码与该联系的属性写到另一个联系的关系表中。
一对多联系:使用一对一的第二种方式,将对应的一的实体主码写到对应为多的关系表中。
多对多联系:用一对一的第一种方式。
5.范式问题
1NF:关系中每个属性都是原子的,是不可再分的,几乎所有的关系都符合1NF。
2NF:满足1NF,且不存在属性对主码的部分依赖。(什么是部分依赖?比如一个联系的关系模式,这个关系涉及的两个实体的主码决定联系的主码,如果这个联系的某 一个属性只是由两个主码的其中一个决定则说这个关系存在对主码的部分依赖,不满足2NF)。
3NF:满足2NF且不存在属性对主码的传递依赖。(什么是传递依赖? 比如学生编号可以决定学生的院系,但是学生编号也决定了学生的班级号,而班级号也可以决定 院系,这时候,我们称院系对学生编号存在传递依赖)
BCNF:每一个决定属性都包含主码。(反例:通讯(城市,街道,邮编号),其中将城市和街道作为主码,但是可以由有编号决定城市和街道所以不是BCNF)
6.判断是否无损连接
无损连接:无损联接分解是将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式,则称这种分解为无损联接分解。
无损连接判断方法:
举例2:已知R<U,F>,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否 具有无损连接性。
① 构造一个初始的二维表,若“属性”属于“模式”中的属性,则填aj,否则填bij

② 根据A→C,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。

③ 根据B→C,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13、b33改为同一个符号b13(取行号最小值)。

④ 根据C→D,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4。

⑤ 根据DE→C,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号a3。

⑥ 根据CE→A,对上表进行处理,由于属性列CE上第3、4、5行相同均为a3a5,所以将属性列A上的值均改为同一个符号a1。

⑦ 通过上述的修改,使第三行成为a1a2a3a4a5,则算法终止。且分解具有无损连接性。
最终只要某一行全是a,即为无损分解。
浙公网安备 33010602011771号