第二章关系数据库

第二章关系数据库

  • 2.1 关系模型概述(略)
  • 2.2 关系操作
    • 2.2.1_基本关系操作
    • 2.2.2_关系数据库语言的分类
  • 2.3 关系的完整性
    • 2.3.1_关系的三类完整性约束
    • 2.3.2_实体完整性
    • 2.3.3_参照完整性
    • 2.3.4_用户定义的完整性
  • 2.4 关系代数
    • 2.4.1_传统的集合运算
    • 2.4.2_专门的关系运算

2.1 关系模型概述(略)

2.2 关系操作

2.2.1_基本关系操作

关系模型中常用的关系操作包括两大部分——查询操作更新操作(插入、删除、修改)
其中,查询操作的5种基本操作选择投影笛卡尔积

2.2.2_关系数据库语言的分类

早期的关系操作能力通常用代数方式逻辑方式来表示,分别称为关系代数关系演算(演算不用了解),而sql语言是介于前两者之间的结构化查询语言。
在这里插入图片描述

2.3 关系的完整性

2.3.1_关系的三类完整性约束

关系模型中有三类完整性约束:实体完整性参照完整性用户定义的完整性
实体完整性和参照完整性是关系模型必须满足的完整性约束条件称为关系的两个不变性

2.3.2_实体完整性

实体完整性规则的说明:
(1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。
(2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3) 关系模型中以主码作为唯一性标识。
(4) 主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性

2.3.3_参照完整性

参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
1.或者取空值(F的每个属性值均为空值)
2.或者等于S中某个元组的主码值

2.3.4_用户定义的完整性

例: 课程(课程号,课程名,学分)
“学分”属性只能取值{1,2,3,4}

2.4 关系代数

2.4.1_传统的集合运算

在这里插入图片描述

2.4.2_专门的关系运算

在这里插入图片描述
在这里插入图片描述
1. 选择
在这里插入图片描述
2. 投影
在这里插入图片描述
3. 连接

等值连接:把属性值相同的元组连接
自然连接:自然连接是一种特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉(与等值连接不同之处)
一般连接:略

在这里插入图片描述
在这里插入图片描述


  1. 在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程----Monitor(互斥锁)类设置超时值

Monitor类与Lock语句相比,Monitor类的主要优点是:可以添加一个等待被锁定的超时值。缺点:开销非常大using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.T…

第三章关系数据库标准语言SQL

第三章关系数据库标准语言SQL3.1_SQL的特点3.3_数据定义3.3.1_基本表的定义、删除与修改3.3.3_索引的建立与删除3.4_数据查询3.4.1_查询时消除重复行3.4.2_涉及空值的查询3.4.3_BETWEEN AND的使用3.4.4_字符匹配3.4.5_聚集函数3.5_数据更新3.5.1_插入数据3.5.2_修改数据3.5.3_删…

使用 Redis 如何实现延迟队列?

延迟消息队列在我们的日常工作中经常会被用到,比如支付系统中超过 30 分钟未支付的订单,将会被取消,这样就可以保证此商品库存可以释放给其他人购买,还有外卖系统如果商家超过 5 分钟未接单的订单,将会被自动取消&…

第五章数据库完整性

第五章数据库完整性5.1_数据库完整性概述5.2_实体完整性5.2_参照完整性5.3_用户定义的完整性5.1_数据库完整性概述 1.数据库的完整性: 数据的正确性和相容性 2.数据的完整性和安全性的区别: 数据的完整性:防止数据库中存在不符合语义的数据&a…

KVC/KVO实现原理分析

2019独角兽企业重金招聘Python工程师标准>>> 1. 函数调用(消息)实现分析: 我们看这条语句: [代码]c#/cpp/oc代码: 1 [self.person setValue:"Vincent"forKey:"name"]; 就会被编译器…

小白学算法:买卖股票的最佳时机!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith今天蚂蚁集团(支付宝…

《APUE》第6章笔记

这一章主要介绍了口令文件和组文件的结构和一些围绕这些结构的函数。 口令文件即passwd就是在/etc/passwd中可以查阅。其结构是: 上图四个平台能支持的就用黑点表示。 因为加密口令这一项放在passwd这个人人可读的文件中,可能会有安全问题。所以现在的Li…

聊聊近期的感受和10月文章精选!

先来看本月的原创文章汇总,其中算法部分也有少量 9 月份的文章,这样汇总起来大家看起来更方便,目录如下。算法系列小白学算法第1篇:一文详解「栈」和手撸栈的两种方法!小白学算法第2篇:JDK 竟然是这样实现栈…

第六章关系数据理论

第六章关系数据理论6.1_问题的提出(略)6.2_规范化6.2.1_函数依赖6.2.2_码6.2.3_范式6.2.4_2NF6.2.5_3NF6.2.6_BCNF6.2.7_多值依赖6.2.8_4NF6.2.9_规范化小结6.3_Armstrong公理系统6.3.1_函数依赖闭包6.3.2_最小依赖集6.3.3_转换为3NF的保持函数依赖的分解…

Github上的热门iOS开源项目:AFNetworking、MagicalRecord、BlocksKit以及XVim

1. AFNetworking AFNetworking是一个非常受欢迎的轻量级的iOS、Mac OS X网络通信类库。它建立在NSURLConnection、NSOperation以及其技术的基础上,有着精心设计的模块结构和功能丰富的API,让很多网络通信功能的实现变得十分简单。 附件:/c…

队列实现栈的3种方法,全都击败了100%的用户!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith之前我们讲过《用两个栈实现一个…

where、having、group by、order by、count的使用注意

where、having、group by、order by、count的使用注意1_where、having、group by、order by的顺序2_group by的作用3_where和group by的组合4_group by和having的组合5_where、having、group by的组合使用6_count与group by的组合使用1_where、having、group by、order by的顺序…

很实用的21个SQL小技巧!

前言每一个好习惯都是一笔财富,本文基于MySQL,分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~1. 写完SQL先explain查看执行计划(SQL性能优化…

阿里最喜欢问的多线程顺序打印的5种解法!

Keeper导读大家在换工作面试中,除了一些常规算法题,还会遇到各种需要手写的题目,所以打算总结出来,给大家个参考。全文 2929 字,剩下的是代码,P6 及以下阅读只需要 8 分钟,高 P 请直接关闭第一篇…

CSS入门

CSS入门1_CSS概要1.1_CSS引入方式2_CSS选择器3_字体样式3.1_字体属性3.2_字体类型:font-family3.3_字体大小:font-size3.4_字体粗细:font-weight3.5_字体颜色:color3.6_总结4_文本样式4.1_文本样式属性4.2_首行缩进:te…

23张图!万字详解「链表」,从小白到大佬!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)链表和数组是数据类型中两个重要又常用的基础数据类型。数组是连续存储在内存中的数据结构,因此它的优势是可以通…

何为“秒传”

写在前面 最近一直在弄文件传输的组件,在讨论组里面,有同事提到“秒传”的功能。在目前的通信软件中也有网盘的功能,就从网上搜了一下,这里对“秒传”的实现思路做一下总结,在之后会写一个小的demo实现一下。没有其他&…

数组转List的3种方法和使用对比!

作者 | 大脑补丁来源 | blog.csdn.net/x541211190/article/details/79597236前言:本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。一.最常见方式(未必最佳)…

oracle10g备份导入

2019独角兽企业重金招聘Python工程师标准>>> //导出 exp test/testgdsoft filed:\gd.dmp //删用户 drop user wkwx cascade; //用PLSQL创建数据数据库 create user hzjzjn identified by hzjzjn default tablespace BDP_DATABD; grant CREATE USER,DROP USER,ALTE…

VisualSVNServer的使用

VisualSVNServer的使用1_服务端初识1.1_创建新仓库1.2_创建用户并分配权限1_服务端初识 1.1_创建新仓库 右击Repository,点击create 点击下一步 输入仓库名 右击空白处,点击新建,点击project structure 输入工程名 1.2_创建用户并分…