数据库ch3关系数据模型

来源:互联网 发布:上下课铃声软件 编辑:程序博客网 时间:2024/06/05 20:35

E-R实体联系模型

码的概念


1.超码:可以唯一确定实体集中的实体的属性集(可以是单个属性,也可以是多个)
也可以说超码=(主)码+无关紧要的属性
例如:{学号};{学号,姓名}都是是学生实体集的超码;

2.候选码:真子集不是超码的极小超码。可以(单独)用来确定一个实体的码。
候选码里面的属性没有无关紧要的.

3.主码 相对于超码不包含无关紧要的属性(不一定只是一个属性)。
一个表的候选码可能有多个,从这些个候选码中选择一个做为主码

属性的概念


4.复合属性:可以分成一些其他属性。
例如:地址可以划分为省、市、县…

5.多值属性:可以在该属性上取多个值。
例如:一个人的联系方式可以是:手机、微信、QQ

6.派生属性(计算属性):顾名思义,可以不存储。

E-R图中:椭圆框用来表示属性
多值属性用双边椭圆、派生属性用虚边属性
其他属性单边椭圆,主属性用下划线标识。


联系的类型

1.一对一联系
例如:部门经理之间的联系管理

2.一对多联系:E1中的每个实体都可以与E2中任意多个实体相关联,E2中的每个实体**最多与**E1中一个实体相关联。
例如:部门职工的联系“属于

2.多对一联系:E1中的每个实体最多与E2中的一个实体相关联,E2中的每个实体都可以与E1中任意多个实体相关联。
例如:职工部门的联系“属于

3.多对多联系:E1中的每个实体与E2中的任意多个实体相关联,并且E2中的每个实体都可以与E1中任意多个实体相关联。
例如:学生课程之间的联系“选修”;每个学生可以选修多门课,每门课可以被多名学生选择。

一个联系到底属于哪种类型,只能通过考察实际问题的语意。

实体对于联系的参与类型:实体集E中的每个实体都必须参与联系R,则称E对R的参与是强制的(或全部参与),否则E对R的参与是随意的(或部分参与)。


实体联系图(E-R)

  • 矩形表示实体
  • 菱形表示联系
  • 椭圆表示属性

标识联系类型的一种方式:

在联系的“一端”使用有向图
- 如果R是一对一的,涉及的实体集E,存在一条从R到E的有向边。
- 如果R是实体集E2,….En到实体集E1的多对一联系,有R到E1的有向边。
- 如果R是多对多的R与E之间存在一条无向边。
- 如果实体集E的实体全部参与R,E与R之间用双线连接。
- 这里写图片描述


弱实体集

一般的,如果一个实体集的任何属性集都不足以形成该实体集的主码,称其为弱实体集
与此相对的是强实体集
例如公司的员工是强实体集,员工家属弱实体集

弱实体集不会单独存在,若实体集必须与另一个称作为标识实体集属主实体集的强实体集相关联才有意义。(之间的联系为标识性联系(参与类型是全部参与)

在弱实体集中,如果它的一个属性集可以唯一确定存在依赖于同一个强实体的“弱实体“则称该属性为弱实体集“分辨符 ”
弱实体集的“分辨符”与其对应的“标识实体集(属主实体集)的主码”共同形成弱实体集的主码
例如:家属姓名就是弱实体集的分辨符,它的主码是{职工号,家属姓名}。

在E-R图中弱实体集用“双边矩形框标识”,而弱实体集与其标识实体集之间的标识性联系用”双边菱形框”标识,弱实体集的分辨符下加虚线这里写图片描述

关系数据库的结构


关系模式

  • 关系模式,是型(不是值)。 关系模式简记为R(A1,A2,…,An)
  • 其中R是关系模式名,A1….是属性名。
  • 例如:Students(Sno,Sname , Sex, Birthday).

    关系数据库的值就是关系模式对应的关系在某一时刻的值。

关系的码

这里写图片描述
- 当一个关系具有多个码(候选码)时,应当选择其中一个作为唯一识别关系元组的码(主码)。候选码中的属性称为“主属性”,而不在任何候选码中出现的属性称为“非主属性”。
- 外码:如果FK是关系R的属性集,并且不是R的主码,单数Fk与关系R’的主码K’相对应,则称Fk是关系R的外码。其中R是参照关系,R’是被参照关系,称FK参照R’的主码K’。


将E-R图装换成关系模式

属性处理

  • 忽略派生属性
  • 展开复合属性。例如:家庭住址直接分为省、市、街道…
  • 多值属性特殊处理,为每个多值属性创建一个关系Rm.
    (1).如果多值属性M是实体集E的属性,K是E的主码,则关系Rm的属性有M和K组成。
    (2).如果多值属性M是联系集R的属性,并且R涉及实体集E1….En,其主码是K1…Kn,则Rm由M和K1…Kn组成。
    注意如果M是符合属性还要将其展平。
    这里写图片描述

弱实体集的处理

  • 弱实体集用一个关系表示。弱实体集存在以来的标识实体集的主码和弱实体集的全部属性构成关系的属性,“标识实体集的码和弱实体集的分辨符组合称关系的码”
    这里写图片描述

每个联系用一个关系表示,弱实体集的“依赖关系(依赖联系)”将被忽略。


联系的关系模式主码确定方式

(1).一对一每个实体集的码都是关系的主码
(2).一对多*多端*实体集的码组合成关系的主码
(3).多对多参与联系的所有实体集的主码组合成关系的主码
如果两个关系具有相同的主码,则可以合并它们(非必须操作)

由上述联系的主码确定方式可知
一对多的联系与多端实体合并;一对一的联系与任意一端合并;多对多联系不能合并。


实例

这里写图片描述
用粗体代替下划线标识关系的主码
**多值复合属性
Phones (Phone#,Dno,Office)**
强实体集的关系模式
- Departments (Dno,Dname)
- Teachers (Tno,Tname, Sex, Birthday, Tittle)
- Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality)
- Courses (Cno, Cname, period, Credit)
联系集得到的关系模式
- Manages (Dno, Tno)
- Works_in (Tno, Dno)
- Studies_in (Sno, Dno)
- Teaches* (Tno, Cno)
- SC (Sno, Cno, Grade)
- Evalues (Sno, Tno, Cno, Escore)

合并具有相同主码(主码不一定完全一样)的关系模式

注:这些属性的名字可以更改(便于理解);
两个被合并的关系可能包含名称相同但意义不同的属性,因此再合并时,可以根据属性的实际意义重新命名

结论一对多的联系与多端实体合并;一对一的联系与任意一端合并;多对多联系不能合并。合并后的主码是实体的主码联系的主码变成了外码

外码用双引号标识(书写时不用特别标识外码)
1. Departments (Dno,Dname, “Dheadno”)Manages与Departments合并且将Tno改为Dheadno.
2. Teachers (Tno,Tname, Sex, Birthday, Tittle, “Dno”)Teachers和Teaches合并
3. Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, “Dno”)和Studies_in合并
由于Teaches,SC是多对多联系无法合并~~


关系代数

选择运算

这里写图片描述

投影

这里写图片描述
这里写图片描述

并、差

这里写图片描述

笛卡尔积

这里写图片描述
这里写图片描述

更名

这里写图片描述

交运算

这里写图片描述

除运算

这里写图片描述
这里写图片描述

连接运算

列表内容
这里写图片描述

自然连接

这里写图片描述
这里写图片描述
这里写图片描述


扩展的关系运算

广义投影运算

这里写图片描述

聚集函数与分组聚集运算

这里写图片描述

这里写图片描述

外连接运算

这里写图片描述
这里写图片描述
这里写图片描述


关系数据库的更新

插入

这里写图片描述
这里写图片描述

删除

这里写图片描述

修改

这里写图片描述
这里写图片描述