函数依赖:
A->B A决定B,B依赖于A;
如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小(元素最少的集合)的,那么该集合就称为键码。
对于 A->B,如果能找到 A 的真子集 A',使得 A'-> B,那么 A->B 就是部分函数依赖,否则就是完全函数依赖。
对于 A->B,B->C,则 A->C 是一个传递函数依赖。
异常:
以下的学生课程关系的函数依赖为 Sno, Cname -> Sname, Sdept, Mname, Grade,键码为 {Sno, Cname}。也就是说,确定学生和课程之后,就能确定其它信息。
不符合范式的关系,会产生很多异常,主要有以下四种异常:
- 冗余数据:例如
学生-2
出现了两次。 - 修改异常:修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。
- 删除异常:删除一个信息,那么也会丢失其它信息。例如删除了
课程-1
需要删除第一行和第三行,那么学生-1
的信息就会丢失。 - 插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
如何解决 冗余数据、修改异常、删除异常、插入异常???范式理论!!
1、E-R图的定义
实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。 –百度百科
2、E-R的使用方法
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。实体关系图表示在信息系统中概念模型的数据存储。 –百度百科
2.1E-R图表示法(Chen’s模型)
2.2E-R表示法中各图形的定义
实体:具有公共性质的可相互区别的现实世界对象的集合,可以是具体的,也可以是抽象的概念或联系。
属性:实体所具有的模拟特性,一个实体可由若干个属性来刻画。
关系:数据对象彼此之间相互联系的方式称为关系。
关系连接线:用来连接实体与关系的线段。
2.3E-R图的局部表示结构
实体--属性 实体--关系 实体之间的关系
2.4E-R图中实体与关系详解
1.联系的类型
(1)一对一联系(1:1)
例如:一个球队只能有一个经理,一个经理只在一个球队任职,则球队和经理是一对一的。
(2)一对多联系(1:n)
例如:一门课程由一个教师任教,一个教师可以任教多门课程,则教师和课程是一对多的。
(3)多对多联系(n:n)
例如:一个学生可以选多门选修课,一门选修课可以被多个学生选修,则学生和选修课是多对多的。
2.多实体之间的关系
定义:在两个以上多个实体集之间,当一个实体集与其它实体集之间均(注意是均)存在相同关系,而其它实体集之间均(注意是均)没有关系时,这种关系才称之为多个实体集之间的关系。
例如:有三个实体:供应商、零件、项目,一个供应商可以供应多个项目多个零件,每个项目可以使用多个供应商提供的零件,每种零件可以由不同供应商提供。
分析这个例子,我们可以看出:供应商和零件是多对多的,供应商和项目是多对多的,但是项目和零件之间却是没有关系的。
这符合多实体之间关系的定义,所以可以画成如下形式:
3.多实体之间的关系和多实体每两个实体之间的关系的区别
例如:有三个实体:供应商、零件、项目,画出三个实体之间的关系和三个实体两两对应的关系
三个实体之间的关系
三个实体两两对应的关系
由此,可以看出三个实体之间的关系和三个实体两两对应的关系是不等价的。