关系

传统的集合运算:并、差、交、笛卡儿积、笛卡儿积的逆运算(除)

专门的的关系运算:选择、投影、连接(等值连接、自然连接)

五种基本运算:并、差、笛卡儿积、选择、投影

选择

选择是对单个表的运算,逻辑条件限制单个表中的特定元组,并将其选择出来。

投影

投影是从单个表中选取相应的若干属性列,形成新的关系。投影后会自动消除重复的元组

连接

连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

连接运算中有两种最为重要也最为常用的连接,一种是等值连接,另一种是自然连接。等值连接是选取 A,B 中属性值相等的元组。自然连接要求比较的分量必须是同名的属性组,选取相同属性名值相同的项相连接,并且在结果中把重复的属性列去掉。其中,公共属性值不相同的元组会被舍弃,这些被舍弃的元组成为悬浮元组 如果保存悬浮元组,其它属性上填写(NULL),则称为外连接。

除运算

R 除以 S 的结果为 T 则 T 包含所有在 R 但不在 S 中的属性及其值,且 T 的元组与 S 的元组的所有组合都在 R 中。

数据库设计

E-R 图

E-R 图又称实体关系图,是一种提供了实体,属性和联系的方法,用来描述现实世界的概念模型。通俗点讲就是,当我们理解了实际问题的需求之后,需要用一种方法来表示这种需求,概念模型就是用来描述这种需求。

E-R 图中的基本元素

1)实体实际问题中客观存在的并且可以相互区别的事物称为实体。实体是现实世界中的对象,可以具体到人,事,物。 2)属性实体所具有的某一个特性称为属性,在 E-R 图中属性用来描述实体。 3)实体集具有相同属性的实体的集合称为实体集。 4)键在描述实体集的所有属性中,可以唯一标识每个实体的属性称为键。键也是属于实体的属性,作为键的属性取值必须唯一且不能“空置”。 5)联系世界上任何事物都不是孤立存在的,事物内部和事物之间都有联系的,实体之间的联系通常有 3 种类型:一对一联系,一对多联系,多对多联系。

E-R 图绘画规范

1)矩形框:表示实体,在框中记入实体名。 2)菱形框:表示联系,在框中记入联系名。 3)椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。 4)连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写 1; 对于一对多联系,要在一的一方写 1,多的一方写 N;对于多对多关系,则要在两个实体连线方向各写 N,M)

关系范式

分类

1NF

定义:设 R 是一个关系模式,如果 R 中的每一个属性 A 的值域中的每个值都是不可分解的,则称 R 是属于第一范式的,记作 R ∈ 1NF。

完成第一范式(1NF),就是将所有数据项都分解成不可再分的最小数据项就可以了。例如将关系 SA(姓名,工资)关系,改为 SA(姓名,基本工资,奖金,补贴)即可。

2NF

定义:如果关系 R ∈ 1NF,并且 R 中每一个非主属性完全函数依赖于任一个候选码,则 R ∈ 2NF。

从定义可以看出,若某个 1NF 的关系的主码只由一个列组成,那么这个关系就是 2NF 关系。但是,如果主码是由多个属性列共同组成的复合主码,并且存在非主属性对属性的部分函数依赖,则这个关系不是 2NF 关系。

分解:可以用模式分解的方法将非 2NF 的关系模式分解为多个 2NF 的关系模式。去掉部分函数依赖关系的分解过程如下:

  1. 用组成主码的属性集合的每一个子集作为主码构成一个表。
  2. 对于每个表,将依赖于此主码的属性放置到此表中。

3NF

定义:如果关系 R ∈ 2NF,并且 R 中每一个非主属性对任何候选码都不存在传递函数依赖,则 R ∈ 3NF 。

从定义中可以看出,如果存在非主属性对主码的传递依赖,则相应的关系模式就不是 3NF。

分解:去掉传递函数依赖的分解过程如下:

  1. 对于不是候选码的每个决定因子,从关系模式中删除依赖于该决定因子的属性。
  2. 新建一个关系模式,新的关系模式中应包含在原表中所有依赖于该决定因子的属性。
  3. 将决定因子作为新关系模式的主码。

BCNF(仅作了解)

BCNF,全称为 Boyce Codd Normal Form,中文叫巴斯范式/鲍依斯-科得范式,是由 Boyce 和 Codd 提出的,比 3NF 又进了一步,通常认为是修正的第三范式。

满足条件:

  1. 所有非主属性对每一个候选键都是完全函数依赖;
  2. 所有的主属性对每一个不包含它的候选键,也是完全函数依赖;
  3. 没有任何属性完全函数依赖于非候选键的任何一组属性。

正是你花费在玫瑰上的时间才使得你的玫瑰花珍贵无比