关系模型与关系数据库


目录

一、前言

.数据库模型包括以下几大类:

.演进图

二、关系模型的一些概念

三、概念解释与关系模型的书写

四、E-R模型转化为实体模型

五、关系数据库

(1)关系数据库

(2)函数依赖

(3)函数依赖类型

六、关系数据库规范化

1.规范化,why?

2.规范化,how?

规范化范式

 3.关系数据完整性规则

4.示例


一、前言

.数据库模型包括以下几大类:

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\rightarrowY

*X与Y是一对一的关系,则X\rightarrowY,Y\rightarrowX;

X与Y是多对一的关系,则X\rightarrowY;但是,X与Y是一对多的关系,则不存在X\rightarrowY,但是Y\rightarrowX

X与Y是多对多的关系,则不存在依赖关系。

eg1.  学号\rightarrow姓名,一个学号只能对应一个姓名,一个姓名可以对应多个学号

eg2.(学号,姓名)\rightarrow课程,一个学号和一个姓名可以对应多门课程,一门课程可以对应多个学号和姓名

(3)函数依赖类型

1.平凡函数依赖

X\rightarrowY,Y\subseteqX

(对于任意关系模式都成立)

2.非平凡函数依赖

X\rightarrowY,Y\nsubseteqX           X决定Y,Y不属于X

3.完全函数依赖

X\rightarrowY,且X的任一真子集都不决定Y。Y完全函数依赖于X

eg.(学号,课程名)\rightarrow成绩,缺少学号,课程名任一个都无法得到成绩。

4.部分函数依赖

X\rightarrowY,且存在X的任一真子集决定Y。Y部分函数依赖于X

5.传递函数依赖

X\rightarrowY,Y\rightarrowZ,Z\nsubseteqY,Y不函数决定X,则Z对X传递函数依赖

·Y\subseteqX时,变为部分函数依赖,即,Z部分函数依赖于X

         部分函数依赖是特殊的传递函数依赖

·Y\nsubseteqX   时,是普遍意义上的传递函数依赖

*传递函数依赖会造成数据冗余及各种异常


六、关系数据库规范化


1.规范化,why?

        ·数据冗余太大

        ·更新异常

        ·插入异常

        ·删除异常


2.规范化,how?

规范化范式

·1NF  第一范式

 确保原子性(不可再分的数据单元),关系模式都满足

·2NF  第二范式

满足1NF ,且任何一个非关键字段都依赖于主关键字

eg.学生(学号,姓名,年龄,性别)

姓名,年龄,性别三个非关键字段都依赖于学号这个主关键字段,即,满足第二范式

·  3NF 第三范式

满足2NF,不存在传递函数依赖


 3.关系数据完整性规则

·实体完整性规则

·域完整性规则

·参照完整性规则(插入规则、删除规则、更新规则)

·用户定义完整性规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值