1.关系模型的基本概念

用二维表格(关系)作为数据结构的数据模型,称为关系模型,其中实体及实体之间的联系均用关系表示。

1.关系模型的三大要素

1)关系模型的结构 —关系
2)关系模型的操作—关系运算
3)关系模型的 完整性约束—三类完整性约束

2.关系的数学定义:

  1. 的定义:域是一组具有相同数据类型的值的集合。
  2. 笛卡儿积的定义:给定一组域D1,D2,…,Dn,(可以有相同的部分),它们的笛卡儿积为:
    D 1 × D 2 × … × D n D1×D2×…×Dn D1×D2×…×Dn= ( d 1 , d 2 , … , d n ) | d i ∈ D i , i = 1 , 2 , … , n { ( d_1, d_2, …, d_n)|d_i ∈D_i, i=1, 2, …, n } (d1​,d2​,…,dn​)|di​∈Di​,i=1,2,…,n
    其中:每一个元素(d1,d2,…,dn )称为一个n元组,简称元组。元素中的每一个值di称作一个分量。
  3. **关系(Relation)**的定义:D1 ×D2 ×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:
    R(D1,D2,…,Dn)这里:R表示关系的名字,n是关系的目或度。

2.关系的数学定义

关系中的基本术语

1.元组(tuple):关系表中的每一横行称作一个元组,组成元组的元素为分量。
2.属性(Attribute ):关系中的每一列称为一个属性。
3.关系模式(Schema):对关系的描述(哪些列)称为关系模式。
4.关系实例(instance):在一个时刻关系的状态(由包含的元组确定)。
5.候选码: 若能够唯一标识元组的属性或极小属性组。
6. 主码/主键(Primary Key):从候选码中选定的一个候选码称为主码;
7. 全码:包含关系全部属性的码,称为全码。全码的关系必是3NF,也必是BCNF。
8. 主属性和非主属性:关系中,凡是包含在候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。
9.外码/外键(Foreign Key):如果关系R中的一个属性(组),是另一个关系S的主码,则称这个属性组为R的外码。

各种键的比较:

1、书中的定义
超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键

候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了!

主键(primary key): 用户选作元组标识的一个候选键程序主键

外键(foreign key):如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。

2、咱们创建简单的两个表,说明一下各个键!
学生信息(学号 身份证号 性别 年龄 身高 体重 宿舍号)和 宿舍信息(宿舍号 楼号)

超键:只要含有“学号”或者“身份证号”两个属性的集合就叫超键,例如R1(学号 性别)、R2(身份证号 身高)、R3(学号 身份证号)等等都可以称为超键!

候选键:不含有多余的属性的超键,比如(学号)、(身份证号)都是候选键,又比如R1中学号这一个属性就可以唯一标识元组了,而有没有性别这一属性对是否唯一标识元组没有任何的影响!

主键:就是用户从很多候选键选出来的一个键就是主键,比如你要求学号是主键,那么身份证号就不可以是主键了!

外键:宿舍号就是学生信息表的外键

关系模式

关系模式是对关系的描述(有哪些属性,各个属性之间的依赖关系如何),模式的一个具体值称为模式的一个实例。模式反应是数据的结构及其联系,是型,是相对稳定的,实例反应的是关系某一时刻的状态,是值,是相对变动的。
想要查看t_student的关系模式?

DESC t_student

想要查看t_student的关系实例?

SELECT * FROM student

另外,关系模式有约定的数学表示, R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F),R指关系名,U指一组属性,D指域,DOM指属性到域的映射,F就是指数据依赖。举个栗子,假设一个学生表t_student,拥有属性学号,姓名,性别,学院,其数学表示如图。

关系模型的3类完整性规则

1.实体完整性规则(Entity integrity rule)

实体完整性要求组成关系主键的属性值不能为空值
空值:不知道或无意义
意义:元组对应现实世界中的实体,实体是相互可区分的,通过主键来唯一标识,若主键为空,则出现不可标识的实体,这是不允许的。如每个学生的学号不能为空。

2.参照完整性规则(Reference integrity rule)
   如果属性集K是关系模式R1的主键,也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能: 或者为空值,或者等于R1关系中某个主键值。

这条规则的实质是“不允许引用不存在的实体”。
关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。
例 ① 在关系数据库中有下列两个关系模式:

S(S#,SNAME,AGE,SEX)
SC(S#,C#,SCORE)

如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。
另外,在关系SC中**S#**不仅是外键,也是主键的一部分,因此这里S# 值不允许空。

3. 用户定义的完整性规则

用户定义的完整性是针对具体数据库应用领域的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。如SEX要求取值为“M”或“F”,年龄定为一定范围的整数。

与其它数据模型相比,关系模型突出的优点如下:
(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。
(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。
(3)关系模型使数据库的研究建立在比较坚实的数学基础上。

2.关系代数

关系数据库系统使用**数据操纵语言(DML)**来对数据库的数据进行操纵,其中的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求,包括检索、分组、统计、排序等;更新语句用于描述用户进行插入、删除、修改等操作。
关系代数是以关系为运算对象的代数系统,其运算是一组高级运算集合。

这些运算根据它们之间的关系又可分为基本运算和组合运算两大类:
(1)5个基本运算
1)一元运算:选择、投影
2)多元运算:乘积(笛卡尔积)、并、集合差
(2) 4个导出运算(组合运算)
集合交、连接、自然连接、除法
(3)扩充运算
外连接、外部并、半连接、聚集运算

基本关系操作

并、差、笛卡儿积、投影和选择,它们组成了关系代数完备的运算集合。
基本运算示例图

条件表达式(选择等操作可能需要用到)

选择(Selection)运算
将R表中A<5的所有项选择出来

投影(Projection)运算:
将R表中的B,C投影出来:

选择和投影复合操作:

组合关系操作

交、连接、自然连接与除法,它们都可以由基本运算表示。
连接(join):

自然连接

除运算:
示例1:

除法示例2:

扩充操作

外连接(Outer Join)
如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(Null),就叫做外连接

左外连接(LEFT OUTER J0IN或LEFT J0IN)
只保留左边关系R中的悬浮元组

右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
只保留右边关系S中的悬浮元组

外部并
如果求并运算的两关系模式不同,将两关系扩充-增加所缺的属性(属性值取空),然后求并,便得到外部并。

半连接
R和S 的半连接 定义为R和S的自然连接在R上的投影(只显示R的匹配上的部分)

聚集操作
聚集操作是指对某列的一组值,进行聚集运算,结果为一个单一的值。
聚集函数有 m a x 、 m i n 、 a v g 、 s u m max、min、avg、sum max、min、avg、sum和 c o u n t count count等。
在S(S#,SNAME,AGE,SEX)中,求男同学的平均年龄:
A V G a g e ( σ s e x = ‘ M ’ ( S ) ) AVG_{age}(σ_{sex=‘M’}(S)) AVGage​(σsex=‘M’​(S))
求年龄为18岁的人数:
c o u n t S # ( σ a g e = ‘ 18 ’ ( S ) ) count_{S\#}(σ_{age=‘18’}(S)) countS#​(σage=‘18’​(S))

3.关系演算

将数理逻辑的谓词演算引入到关系运算中,即得到以关系演算为基础的关系运算。
关系演算根据谓词公式中的变元不同,分为:
1.元组关系演算
2.域关系演算

第二章 关系模型和关系运算理论 3类完整性相关推荐

  1. mysql里面的选择运算_在MySQL关系模型中,选择运算是在一个关系的所有元组中选择指定属性列,组成新关系。...

    [单选题]下列关于元素第一电离能的说法不正确的是( ) [填空题]We had already ____ contact with the museum. [判断题]DELETE语句功能是对表中所有记 ...

  2. 数据库关系模型和关系运算[姊妹篇.第三弹]

    随着ORM框架的日益流行,如今的码农们直接操作数据库语法的越来越少了,一顿orm语法操作猛如虎,一遇问题问题便靓仔语塞.这种情况不在少数,就如我的工作中,我所知道的同事和实习生当中,就有不少人非常喜欢 ...

  3. 第二章 数据的表示和运算 2.1.4 奇偶校验 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.4 奇偶校验 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 奇偶校验的方法/原理 码距和检/ ...

  4. 怎么用matlab画无差别曲线,MATLAB系列第二章初等模型.ppt

    <MATLAB系列第二章初等模型.ppt>由会员分享,可在线阅读,更多相关<MATLAB系列第二章初等模型.ppt(68页珍藏版)>请在人人文库网上搜索. 1.第二章 初等模型 ...

  5. 【分布式计算:原理、算法和系统】第二章 分布式计算模型

    [分布式计算:原理.算法和系统]第二章 分布式计算模型 2.1 分布式程序 一个分布式程序由一组nnn个异步进程(asynchronous processes)P1,P2,-,Pi,-,PnP_1,P ...

  6. 关系模型中关系的完整性约束【校订版】

    关系模型中关系的完整性约束 数据库中的数据必须是正确的.一致的.完整的和可靠的,为了防止数据库中存在不符合语义规定的数据和防止因输入错误数据造成的无效操作,有必要实施数据的完整性约束. 关系数据库,关 ...

  7. 第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 循环冗余校验码/ ...

  8. 第二章 数据的表示和运算 2.1.5 汉明(海明)校验码 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.5 汉明(海明)校验码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 海明(Hamming) ...

  9. 第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.3 字符与字符串 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: ASCII码/汉字编码 字符 ...

最新文章

  1. 006_Radio单选框
  2. c.kdocs cn二维码_二维码防窜货解决方案,物流动向尽在掌握
  3. POJ - 2676 Sudoku(dfs)
  4. 归约归约冲突_JavaScript映射,归约和过滤-带有代码示例的JS数组函数
  5. idea添加自动编译
  6. tar,jar,war的区别
  7. 操作系统工具推荐 msicuu.exe
  8. Spring AOP切面实现:参数传递
  9. “萝卜快跑”,“快”不起来——百度Robotaxi试乘体验
  10. 解决IDEA连接mysql时出现Server returns invalid timezone问题一劳永逸的方法
  11. Nature Communications:使用连接组的嵌入向量表征映射大脑结构与功能之间的高阶关系
  12. 学大伟业Day1解题报告
  13. 关于惠普系列电脑无法开机以及其他问题解决的总结
  14. 高学历就意味着高薪资?低学历转行3D建模,游戏建模成为首选
  15. 野蛮的没落:蒙古帝国的启示
  16. 曾经写的俄罗斯方块源码 2021-06-13
  17. JVM堆内存与垃圾收集器
  18. 基于MATLAB的室内可见光调制解调通信系统
  19. CNC控制板和步进电机驱动器的连接方法
  20. 如何用java开发一个网站?

热门文章

  1. 基于OSGi的企业级开发框架实践——发布和使用分布式OSGi服务
  2. 全球疫苗接种状况数据分析
  3. 计算机专业高级职称证书什么样?
  4. 树梅派应用47:用树莓派给智能手机发送推送通知
  5. 键盘win键无法使用,win+r不生效、win键没反应、Windows键失灵万能解决方案
  6. 如何修改VMware虚拟机的配置文件.vmx
  7. SQL注入漏洞[OWASP TOP 1]
  8. python 绘制箱型图
  9. # Java 并发编程的艺术(一)
  10. randint和randrange的区别