关系数据模型(Mysql基于关系模型)

关系模式由一组关系组成,每个关系的数据结构为一张规范化的二维表

一、关系模型的相关定义

关系:关系相当于一张二维表。

例如:学生信息表(students

学号 (student_id)姓名 (name)性别 (gender)年龄 (age)所在院系 (department)
2023001张三20计算机科学
2023002李四19电子工程
2023003王五21数学系

元组:表示二维表中的一行

例如:

2023001张三20计算机科学

属性:表中的一列即为一个属性,,每列属性的名称即为属性名

例如:学生信息表中有5列即5个属性

学号 (student_id)姓名 (name)性别 (gender)年龄 (age)所在院系 (department)

码:有叫码键或键,是表中的一个属性或则一组属性,码能够唯一确定一个元组

例如:学号能够唯一确定一个学生,所以“学号”可以做这个关系的码。

域:用来描述属性的取值范围。

例如:年龄的域,可以是(18,22)即表示年龄的取值范围:18岁到22岁。

分量:表示元组中的一个属性值。

例如:

2023001张三20计算机科学

其中张三,20232001,男,20,计算机科学都分量。

关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,属性3.....属性n)。

例如:学生(学号,姓名,性别,年龄,所在院系)

二、关系模型的数据操作

关系模型的数据操作可以用关系代数(数学理论)或SQL(实际数据库语言)描述:

操作类型关系代数SQL
选择σ条件​(R)SELECT * FROM R WHERE 条件;
投影π属性​(R)SELECT 属性 FROM R;
连接R⋈SSELECT * FROM R JOIN S ON R.key = S.key;
R∪SSELECT * FROM R UNION SELECT * FROM S;
R−SSELECT * FROM R EXCEPT SELECT * FROM S;
R∩SSELECT * FROM R INTERSECT SELECT * FROM S;

此外还有一个除运算

定义:已知有两个关系R(A,B),S(B,C),其中A,B,C为属性列,R中的B同S中的B可以有不同的属性名但是必须得来自同一个属性域。R与S的除运算得到关系P(A),P是R的一个投影,元组在A上的分量值的象集包含S在B上的投影的集合。

数学表示:

R÷S

例如:选修表÷必修课程表

  • 表 选修(学生, 课程):记录学生选修的课程。

  • 表 必修课程(课程):记录所有必修课程。

  • 查询:找出选修了所有必修课程的学生。

数据示例

学生课程
张三数学
张三英语
李四数学
王五数学
王五英语
课程
数学
英语

除运算结果

学生
张三
王五

张三的象集:(数学,英语);王五的象集:(数学,英语);李四的象集:(数学)

三、关系模型的完整性约束

  • 实体完整性:主属性不可以为空值。

       已知一个关系(二维表)中,如果一个属性或则一组属性能够唯一确定一个元组,且它的真子集不能唯一确定一个元组的即少了任何一个属性都不能唯一确定一个元组,则称这个属性或则这一组属性为候选码,而候选码的属性为主属性。主属性不能为空(NULL)。

  • 参照完整性:外键的值只有两种可能,一种是为空,另一种是来自被参照关系相应属性的域

       已知有两个关系A和B,A有一个(一组)属性a(不是码),关系B的主码为  b ,且 a 和 b 相对应。那么称a是关系A的外键,A是参照关系,B是被参照关系。a的值要么为空,要么来自属性b某一个值相等。注意关系A和B不一定是不同的关系

  • 自定义完整性:用户自己定义的约束条件

例如:设置年龄属性的取值范围(域)大于18;设置出生日期属性大于2000-1-1等

四、关系模型的优缺点

优点:

  • 关系模型的概念单一
  • 关系模型的存储路径对用户隐蔽,
  • 关系模型建立在严格的数据概念之上

缺点:

  • 查询效率比层次模型和网状模型低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撸猫791

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值