目录
一、前言
.数据库模型包括以下几大类:
1.层次数据模型
·一种倒挂树状结构,如下图
2.网络数据模型
3.关系数据模型
·一个满足一定条件的二维表格
.演进图
二、关系模型的一些概念
1.关系:一个二维表格
2.属性:关系的每一列必须有一个名字,称为属性
3.元组:每一行称为一个元组
4.域:每一个属性的取值范围
5.关键字:/主属性,唯一地识别一个元组地一个属性,或多个属性的结合
有两类:·主关键字 ·候选关键字
6.外部关键字:关系中的属性/属性组合不是所在关系的主关键字/候选关键字,却是其他关系的主关键字,对这个关系而言,就是外部关键字
7.关系模式:关系名(属性1,属性2,...属性n)
三、概念解释与关系模型的书写
以之前展示的表格和附加的条件为例做解释
graph
附加:
一对多的关系
每个机构可以有多个员工,而一个员工只能在一个机构,机构(机构编号,机构名称,地址)
在该表中,这一整个二维表格称为关系;红色区域分别是对应列的属性,对应每一个属性都有域,比如,出生日期只能填某年某月某日,性别只能填男/女,这样的限制条件,也就是取值范围叫做
域;像橙色这样的每一行称为元组;而员工编号称为关键字,机构编号为外部关键字;员工在机构工作,关系模式为工作(员工,机构)
***注 关系模式中属性写两个实体的关键字,加上连接他们的关系的属性,
一对一的关系时,任选一方作为关系模式中的关键字;
一对多的关系,选取多的那一方作为关系模式中的关键字;
多对多的关系时,任选一方作为关系模式中的关键字。
据上分析,可以写出关系模型:
员工(员工编号,姓名,出生日期,性别,民族,工作日期,职称,机构编号,婚否)
机构(机构编号,机构名称,地址)
工作(员工,机构)
四、E-R模型转化为实体模型
以E-R模型中的最后一题为例
根据之前的分析,可以知道E-R模型:
书籍(书号,品种,数量,存放位置)
借书人(借书证号,单位,姓名)
出版社(电报编号,出版社名,电话,邮编,地址)
接下来要做的就是转化为关系模型
***要点
法一:一对一的关系,多对多的关系,将一方的关键字和联系中的属性写入另一方,做为外部关键字
一对多的关系,则将一方的关键字和联系中的属性写入多的一方中
书籍(书号,品种,数量,存放位置,出版社)
借书人(借书证号,单位,姓名,书号,借书日期,还书日期)
出版社(电报编号,出版社名,电话,邮编,地址)
法二:联系单独构成新的关系模式。
一对一的关系,多对多的关系,将一方的关键字和联系中的属性写入该新的关系模式中。
一对多的关系,则将多的一方的关键字和联系中的属性写入该新的关系模式中。
书籍与借书人是多对多的借阅关系,以其一为关键字,不难写出关系模式:借阅(借书证号,书号,借书日期,还书日期);出版社与书籍是一对多的出版关系,将出版社的关键字写入书籍中:出版(电报编号,书号)。因此,可以得出:
书籍(书号,品种,数量,存放位置)
借书人(借书证号,单位,姓名)
出版社(电报编号,出版社名,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)
出版(电报编号,书号)
五、关系数据库
(1)关系数据库
定义:按照关系数据模型建立的数据库
(2)函数依赖
简单来说,函数依赖就是,某个属性集X决定另一个属性集Y时,称另一个属性集Y依赖于该属性集X,记作,X
Y
*X与Y是一对一的关系,则X
Y,Y
X;
X与Y是多对一的关系,则X
Y;但是,X与Y是一对多的关系,则不存在X
Y,但是Y
X
X与Y是多对多的关系,则不存在依赖关系。
eg1. 学号姓名,一个学号只能对应一个姓名,一个姓名可以对应多个学号
eg2.(学号,姓名)课程,一个学号和一个姓名可以对应多门课程,一门课程可以对应多个学号和姓名
(3)函数依赖类型
1.平凡函数依赖
X
Y,Y
X
(对于任意关系模式都成立)
2.非平凡函数依赖
X
Y,Y
X X决定Y,Y不属于X
3.完全函数依赖
X
Y,且X的任一真子集都不决定Y。Y完全函数依赖于X
eg.(学号,课程名)
成绩,缺少学号,课程名任一个都无法得到成绩。
4.部分函数依赖
X
Y,且存在X的任一真子集决定Y。Y部分函数依赖于X
5.传递函数依赖
X
Y,Y
Z,Z
Y,Y不函数决定X,则Z对X传递函数依赖
·Y
X时,变为部分函数依赖,即,Z部分函数依赖于X
部分函数依赖是特殊的传递函数依赖
·Y
X 时,是普遍意义上的传递函数依赖
*传递函数依赖会造成数据冗余及各种异常
六、关系数据库规范化
1.规范化,why?
·数据冗余太大
·更新异常
·插入异常
·删除异常
2.规范化,how?
规范化范式
·1NF 第一范式
确保原子性(不可再分的数据单元),关系模式都满足
·2NF 第二范式
满足1NF ,且任何一个非关键字段都依赖于主关键字
eg.学生(学号,姓名,年龄,性别)
姓名,年龄,性别三个非关键字段都依赖于学号这个主关键字段,即,满足第二范式
· 3NF 第三范式
满足2NF,不存在传递函数依赖
3.关系数据完整性规则
·实体完整性规则
·域完整性规则
·参照完整性规则(插入规则、删除规则、更新规则)
·用户定义完整性规则