目录
一、数据库的设计阶段
1、用户需求分析
2、概念结构设计
-
概念模型的设计的主要工具是E-R模型,E-R模型会生成E-R图。
3、逻辑结构设计
-
将E-R图转成对应关系数据库支持的数据库表、表之间的关系情况等。
4、物理结构设计
-
涉及到数据存储结构及存储结构控制等方面的考虑。
5、考点:数据库设计的各个阶段及产物
-
因为(1)选B,(2)没有答案,而(2)中选项的内容都和需求分析有关,所以(1)选A。
二、E-R模型3要素
E-R图:实体关系图。
1、实体(E)
-
实体就是客观存在的对象,对象之间可以相互区分。
2、联系(R)
-
联系就是对象与对象之间的关系。
3、属性
-
属性是指实体具体的一个的特征,通过一系列的特征能反映实体的状态。
-
属性也有多种类型。
三、E-R模型图例
四、实体属性的多种类型
属性是一个实体具体的一个特征,一系列特征能描述出一个对应的实体。
1、简单属性
-
概念:一个不可再分割的属性, 是原子的。
-
例如“性别”属性九十四简单属性。
2、复合属性
-
概念:一个可以再细分为一系列简单属性构成的属性。
-
例如“员工通讯地址”属性,还可以再分割为“国家”“省”“市”“街道”“具体门牌号”这些简单属性,所以“员工通讯地址”属性就是一个符合属性。
3、单值属性
-
概念:针对一个元组来讲,某一个分量的取值是单一的。
-
比如说“性别”对于张三来讲,要么是男要么是女只能选一个。
4、多值属性
-
概念:针对一个元组来讲,某一个分量的取值可以是多个。
-
比如说员工表中的“联系电话”,张三有两个手机号,那么的张三的“联系电话”的值就是2个。
5、NULL属性
-
概念:表示空,就是在数据库中没有输入数据的对象,默认就是空。
6、派生属性
-
概念:一个可以根据其他属性的值计算出值的属性。
-
例如一张记录了“产品销售单价、产品销售数量、销售总额”的销售表,销售总额可以根据销售单价*销售数量得到,所以“销售总额”就是派生属性。
五、E-R模型的联系
E-R模型的联系:指的是两个不同实体之间的联系。注意:考试中联系的类型主要依赖于题干的描述。
1、一对一(1:1)
-
概念:在E1实体集中的一个实体在E2实体集中只有一个实体与之对应,反之在E2实体集中的一个实体在E1实体集中也只有一个实体与之对应。
-
例如:“电影票”和“座位”就是一对一的关系,一张电影票只对应一个座位,一个个座位也只对应一张电影票。
2、一对多(1:n)或(1:*)
-
在E1实体集中的一个实体在E2实体集中有一个以上的实体与之对应,反过来在E2实体集中的一个实体在E1实体集中却只有一个实体与之对应。
-
例如生活中部门和雇员的关系就是典型的一对多。一个部门可以有多个雇员,但是一个员工在同一时刻只能属于一个部门。
-
在E1实体集中的一个实体在E2实体集中只有一个实体与之对应,反过来在E2实体集中的一个实体在E1实体集中有一个及以上的实体与之对应。
-
例如生活中雇员与部门的关系就是典型的多对一。一个雇员在同一时刻只能属于一个部门,hi一个部门dan在同一时刻可以有很有个雇员。
3、多对多(m:n)或者(*:*)
-
在E1实体集中的一个实体在E2实体集中有一个及以上的实体与之对应,反过来在E2实体集中的一个实体在E1实体集中有一个及以上的实体与之对应。
-
例如项目和雇员的关系就是典型的多对多关系。一个项目需要多个雇员参加,一个雇员可以同时参加多个项目。
六、E-R模型转关系数据库
1、E-R图中的实体转关系
-
在E-R模型中的每一个实体集,都转一个对应的关系。
-
实体集的名称作为关系的名称。
-
实体集的属性就是关系的列。
2、E-R图中的联系转关系
(1)一对一联系
-
方式一:转一个独立的关系,表中的属性包括联系本身的属性,E1实体集的主码,E2实体集的主码。选择任意一个实体集的主码作为关系的主码。
-
方式二:合并到任意一方。例如E1(E1的属性,E2的主码,联系的属性):就是将E2的主码和联系的属性都合并到E1实体集中,然后再转换成关系。
(2)一对多联系
-
方式一:转一个独立的关系,表中的属性包括联系本身的属性,E1实体集的主码,E2实体集的主码。选择多方的主码作为关系的主码。
-
方式二:合并到多方。只能将一方的属性合并到多方,加入E2是多方,也就是E2(E2的属性,E1的主码,联系的属性)。
(3)多对多联系
-
E-R图中多对多的联系转关系,只能是在数据库中生成一张 独立的表。
-
关系的名称可以取联系的名称。
-
表中的属性包括联系本身的属性,E1实体集的主码,E2实体集的主码。E1、E2实体集的主码共同组成关系的主码。
3、考点:属性类型、联系类型判断以及联系转关系
七、函数依赖
1、概念
-
在一个关系中,函数依赖可能有多个集合。 F:表示函数依赖集的一个集合。
2、完全函数依赖
-
右侧被决定的一方,完全只依赖于左侧。
-
例如:只给定“学号”的值,就能决定学生所在的系,所以系完全依赖学号。
3、部分函数依赖
-
右侧被决定的一方,只依赖于部分左侧函数。
-
例如:同时给定“学号+姓名”的值,能决定学生所在的系,但是决定学生所在系只需要学号就足够了,所以系是部分依赖函数“学号+姓名”。
4、传递函数依赖
-
A决定B,B决定C,那么A决定C,C依赖A,这就是传递函数依赖。
八、函数依赖的公理系统
辅助理解举例
1、自反律
-
Y是X的一部分,所以给定X的值,能得到唯一的Y值,所以“X函数决定Y,Y函数依赖于X ”这种函数依赖被函数依赖集合F所包含了。
-
”学号“决定”姓名“,是包含在函数依赖集合F中的。
2、增广律
-
X->Y为F所逻辑蕴含,则在决定方和被决定方同时增加关系中的一个属性,那么这种决定关系依然是成立的。
-
”学号“决定”姓名“,”学号,系“决定”姓名,系“也成立。
3、传递律
-
X决定Y,Y决定Z,那么X决定Z这种决定关系也是成立的。
4、合并规则
-
X决定Y,X决定Z,那么X决定YZ这种决定关系也是成立的。
-
”学号“决定”姓名“,”学号“决定”系“,那么”学号“决定”姓名和系“也成立。
5、伪传递率
-
X决定Y,WY决定Z,那么X决定Z这种决定关系也是成立的。
-
X->Y利用增广律变为XW->YW,又因为YW->Z,利用传递律,所以X->Z。
6、分解规则
-
X决定Y,Z是Y的子集,所以X决定Z。
九、确定候选码
1、确定侯选码的常规步骤
2、考点:确定关系的候选码
常规解题方式:
-
A3A5->A3A5; A3A5 -> A6;利用合并律 A3A5-> A3A5 A6。
-
A3A5->A3A5A6;利用分解律,A3A5A6->A5A6,因为A5A6是A3A5A6的子集, A5 A6 > A1,利用传递律, A3A5-> A1,利用合并律 A3A5-> A3A5 A6 A1。
-
A1->A2,利用传递律A3A5->A2,利用合并律 A3A5-> A3A5 A6 A1 A2。
-
A3A5-> A3A5 A6 A1 A2,利用分解律 A3A5-> A3 A1, 又因为 A3 A1->A4,利用传递律 A3A5-> A4,利用合并率 A3A5-> A3A5 A6 A1 A2A4。
快速解题思路:
-
先找只出现箭头右边的属性,它一定不是候选码。
-
再找在函数依赖集F中没有出现过的属性,那么它一定是候选码。
-
只出现在左边的一定是候选码的成员。
十、判定1~4NF主要依据
1、1NF
-
每个分量是不可再分割的数据项。
-
也就是元组的属性是不能再分割,就相当于元组不能出现多值属性和复合属性,必须是单值的简单属性。
2、2NF
-
在1NF的基础上,非主属性对码不存在部分依赖。
-
也就是说非主属性函数一定是由码来决定的。
3、3NF
-
在2NF的基础上,非主属性对码不存在传递依赖。
4、BCNF
-
在1NF的基础上,主属性对码不存在部分和传递依赖。
5、4NF
-
在全链表中,键的一部分可以确定至多一个其他字段的多个值。
-
也就是说在全码表中就只允许一个多值函数依赖。
6、考点:确定范式的类型
-
关系R的主键是A3A5,A3不能单独决定关系R中的其他属性。A5也不能单独决定关系R中的其他属性。所以A3A5满足第二范式:非主属性对码不存在部份依赖。
-
由于A3A5->A1,A1->A2,所以由传递律可知A3A5->A2,不满足第三范式:非主属性对码不存在传递依赖。