数据库系统教程——关系模型
数据库系统教程——关系模型
- 这里是理论,建议直接跳转到白话!!!
- 2.1 关系模型的基本概念
- 基本术语
- 关系的定义与性质
- 关系代数
- 并
- 差
- 交
- 笛卡尔积
- 投影操作
- 选择
- 连接
- 除法
- 以下是白话建议直接跳转至此开始理解!!!
- 并
- 交
- 差
- 笛卡尔积
- 投影
- 选择
- 连接
- 除法
- 实践例子展示
这里是理论,建议直接跳转到白话!!!
2.1 关系模型的基本概念
数据库管理系统:DBMS
基本术语
- 1.关系模式名:用英文表示
- 2.元组:关系的记录(表中的一行)
- 3.关系:元组的集合(又称作实例)
- 4.元数(Arity):属性的个数
- 5.基数:元组记录的个数
- 6.关键码:
①、超键:关键码(唯一标识元组的属性集合)
②、候选键:能选为表示符的属性
③、主键:已选为标识符的属性
④、外键:一个表中某一属性是另外一个表的主键。
约定俗成的内容:
用大写字母ABCD……来表示单个的属性
用……XYZ来表示属性集
用小写字母表示属性值
也有称关系为表或表格的
元组为行属性为列
关系的定义与性质
关系的性质和定义
1、关系:属性数目相同的元组集合
2、性质:①、每个属性不可再分;②、不允许出现完全相同的元组
③、行列没有顺序区分关系模型的3类完整性原则
1、实体完整性原则
主码不能够为空
2、参照完整性原则
说明了主码外码的引用关系要正确
3、用户定义的完整性规则
由用户通过DBMS来完成
关系代数
关系代数的基本操作:
假设有R、S关系且属性相同
并
(∪):由属于关系R或S的元组组成
R∪S={t|t∈R∨t∈S}
差
差(-)由属于关系R而不属于关系S的元组组成
R-S={t|t∈R∧t∈S}
交
交(∩)由既属于关系R又属于关系S的元组组成
R∩S={t|t∈R∧t∈S}
笛卡尔积
假设:
R有m个属性,n个元组
S有h个属性,p个元组
SR就有m+h个属性,np个元组
投影操作
对关系列表的操作
选择
对关系表行的操作:
连接
条件连接
等值连接
自然连接
除法
除法是同时对行和列的操作
①充分必要条件:
设有R、S关系,R除S必须
<1> R中属性包含S中所有属性
<2>R中还有属性不出现在S中
②运算结果
<1>T中的属性有R中出现但是S中不出现的
<2>结果的元组由S中出现对应R中的元组组成
<3>T与S的笛卡尔积包含在R中
以下是白话建议直接跳转至此开始理解!!!
并
用∪
表示,就是把两个不一样的进行整合,最后表示在一个表格里面
R表
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
S表
A | B |
---|---|
1 | 2 |
7 | 8 |
5 | 8 |
R∪S为:
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
5 | 8 |
交
用∩
表示:把相同的内容进行整合。
说明:这里还是使用并里面的R表和S表
R∩S表
A | B |
---|---|
1 | 2 |
差
用-
进行表示,属于前面一个表不属于后面那个表的数据
说明:这里还是使用并里面的R表和S表
也就是属于R表但是不属于S表的
A | B |
---|---|
3 | 4 |
5 | 6 |
笛卡尔积
用*
进行表示,表头(属性值)相乘,然后里面的值(元组)逐个相乘
假设表头(属性)R表为(A,B),S表为(C,D)那么R×S
就是A,B,C,D。也可以表示为(RA,RB,Sc,SD)
R表
A1 | B1 |
---|---|
A1 | A2 |
A3 | A4 |
S表
A2 | B2 |
---|---|
B1 | B2 |
B7 | B8 |
R×S结果:
A1 | B1 | A2 | B2 |
---|---|---|---|
A1 | A2 | B1 | B2 |
A1 | A2 | B7 | B8 |
A3 | A4 | B1 | B2 |
A3 | A4 | B7 | B8 |
就是各个属性值相乘,各个元组交叉相乘。
投影
投影用π
表示
就是获取对应的元素。
R表:
A | B | C |
---|---|---|
1 | 2 | 3 |
3 | 4 | 5 |
5 | 6 | 7 |
7 | 8 | 9 |
5 | 8 | 9 |
πA,B( R):
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
5 | 8 |
选择
选择用σ
表示,就是获取符合条件的值。
例如σA<5 (R )就是获取R表中A<5的所有值。
此处使用上面投影的R表进行示例
σA<5 (R )表:
A | B | C |
---|---|---|
1 | 2 | 3 |
3 | 4 | 5 |
连接
- 条件连接等值连接
在不同的表格链接过程中会出现条件,有的是元素和元素比如(B>A即RB>SA)也可以写成(2>1即R表的第2个元素大于S表的第1个元素)
R表
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
S表
A | B |
---|---|
1 | 2 |
7 | 8 |
5 | 8 |
A | B |
---|---|
1 | 2 |
5 | 6 |
5 | 8 |
- 自然连接
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
5 | 8 |
除法
除法是里面最难理解的
可以理解为查询,大表为除数设为R表,小表为被除数设为S表。
基本上可以理解为在R中查找符合S的全部条件。但是只显示S表中没有的元素
R表
A | B | C |
---|---|---|
1 | 2 | 3 |
3 | 4 | 4 |
5 | 6 | 5 |
S表
A | B |
---|---|
1 | 2 |
3 | 4 |
R/S表
A |
---|
3 |
4 |
实践例子展示
小技巧:
1、涉及选择、投影、连接的运算使用连接、乘法完成
πi…(σF(R*S))或
2、涉及否定操作的要用差来表示
3、涉及全部操作的要用除法
现在有T、C、S、SC四个表
教师关系
T(T#,TANME,TITLE)
课程关系
C(C#,CNAME,T#)
学生关系
S(S#,SNAME,AGE,SEX)
选课关系
SC(S#,C#,SCORE)
(1)检索学习课程号为C2的学生学号与成绩
条件:课程号是C2(σc#=‘c2’( SC))使用选择的手法获得
要求是学生学号和成绩
已经获得了c2的选课内容就可以通过投影的方式获得结果
πS#,SCORE( σc#=‘c2’( SC))
(2)检索学习号是C2的课程的学生号和姓名
这里要的是学生号和姓名涉及的表为S表
学号和课程有关的是SC表。
这里就要SC和C表进行连接
然后对学号进行筛选:
最后对筛选的结果进行映射(获取要的数据)
检索学习全部课程的学生姓名
全部课程:πC#( C)
选课情况:πS#,C#( SC)
除法就是从大的那个表里面查找符合小的表的内容
也就是
选课情况÷全部课程
πS#,C#( SC) ÷ πC#( C)
这里得到的结果就是S#但是是符合要求的学号
使用拼接和映射进行来获得结果
首先:拼接:除法得到的是学号,要得到名字就要和S表进行拼接
和进行映射
这节课就到这里啦,有问题记得留言!
数据库系统教程——关系模型相关推荐
- MySQL什么是关系_MySQL教程-关系模型
MySQL教程-关系模型 Date 2021-1-22 Author Haihan Gao 什么是关系模型关系模型本质上就是多个存储数据的二维表 表的每一行称为记录 记录是一个逻辑意义上的数据 表的每 ...
- 【数据库系统】关系模型、关系、元组、属性、关系实例
文章目录 关系模型 关系 元组 属性 关系实例 关系模型 要了解关系模型,先要了解数据模型. 数据模型是一个描述数据.数据联系.数据语义以及一致性约束的概念工具的集合,提供了一种描述物理层.逻辑层和视 ...
- 1.2 《数据库系统概论》之数据模型(概念模型、逻辑模型--物理模型、层次模型、网状模型、关系模型、面向对象模型、对象关系模型)
文章目录 0.思维导图 1.数据模型的概念 2.两大类数据模型 客观对象的抽象过程---两步抽象 3.数据模型的组成要素 (1)数据结构 (2)数据操作 (3)数据的完整性约束条件 4.概念模型 (1 ...
- 数据库--02--数据模型--层次模型.网状模型.关系模型
数据模型的概念 在数据库中用数据模型这个工具来抽象.表示和处理现实世界中的数据和信息. 通俗地讲数据模型就是现实世界的模拟. 数据模型应满足三方面要求: 能比较真实地模拟现实世界 容易为人所理解 便于 ...
- 常用的数据模型及其对比(层次模型、网状模型、关系模型)
数据库领域中主要的逻辑数据模型有:层次模型.网状模型.关系模型.面向对象数据模型等,我们重点讲解了**层次模型.网状模型.关系模型**. 1.1 层次模型 层次数据库系统的典型代表是IBM公司的Inf ...
- 模型描述的关系模式_最常用的数据模型 - 关系模型
关系模型是目前最常用地数据模型之一.关系型数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集,以及实体集之间的联系,其最大特点是描述的一致性.关系模型是由若干个关系模式组成的集 ...
- 哈尔滨工业大学-数据库系统(基本知识与关系模型1)
第1讲-初步认识数据库系统 什么是数据库 关系中的概念 : 表 / 关系 表名 / 表标题(格式) / 表内容(值) 列 / 字段 / 属性 / 数据项 行 / 元组 / 记录 而 数据库(Datab ...
- 数据库系统概念笔记-关系模型介绍
转载自 数据库系统概念笔记-关系模型介绍 作者 CyninMa 数据库系统概念笔记-关系模型介绍 2.1 关系数据库的结构 关系数据库由表(table)的集合构成,每个表有唯一的名字.例如,inst ...
- mysql学生选课系统的关系模型_数据库系统原理ER模型与关系模型
数据库系统是软件的一种,数据库系统自然而然也有他自己的生命周期生存期.它的生存期从规划开始,一直到将它卸载不用了.它的中间过程很复杂,为了实现用户的想法,数据库有关人员将现实生活中的数据进行抽象,然后 ...
最新文章
- thinkphp分页格式的完全自定义,直接输入数字go到输入数字页
- MvvmLight:Command
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170320
- Cloud for Customer的工作中心(work center)加载器
- lua工具库penlight--08额外的库(二)
- 花了100多去KTV不是唱歌,竟然是……
- 让领导狂夸,让业务目瞪口呆的报表,竟然是这样?
- 同步与互斥的基本原理
- 推荐使用的JS日期时间格式化的方法
- 智能建造如何转型升级?智慧工地引领建筑行业智能化信息化发展
- 简单破解 Sencha Architect 2.2 (ExtJs Designer) - 李路平 - 博客园
- 《白夜行》读后感:白夜行走,暗中羁绊
- Jmeter:java.net.URISyntaxException: Illegal character in fragment at index XX问题解决方法
- 如何看待学术圈的内卷化
- 雪浪数制CEO王峰:关于雪浪制造大脑的三大拷问 | 2018雪浪大会
- python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
- 联想y7000p 2019 安装ubuntu20.04 双系统 设置efi分区
- xray扫描器的使用 (长亭科技公司创造)
- 部分透明的遮罩层处理
- 线上的观众朋友们好,这里是最劲最有料的华为云现场直播!
热门文章
- MySQL入门_实战3_创建和删除数据库
- mysql模拟题三_mysql经典45题(3刷)
- drawtext ffmpeg 倾斜_ffmpeg # drawtext 进阶
- 瑞芯微RV1109平台交叉编译踩坑
- linux预留的系统调用号,linux 系统调用号
- Spring MVC自定义类型转换器Converter、参数解析器HandlerMethodArgumentResolver
- Google正式开始推送 Android 5.0 Lollipop
- 《人生护城河》读后感
- 【多式联运】基于matlab遗传算法求解多式联运运输问题(考虑碳交易)【含Matlab源码 1997期】
- 100%成功注册Google账号的方法