关系型数据库 期末复习(未完
关系型数据库
- 绪论
- 概念间的关系
- 数据库的历史
- 信息和数据
- 数据模型
- 关系模型
- 数据结构
- 关系完整性
- 关系操作
- 语言
- 关系代数语言
绪论
概念间的关系
数据->数据库->数据库管理系统->数据库系统
数据库的历史
人工管理阶段 -> 文件系统阶段 -> 数据库系统阶段
数据库系统结构:三级模式、二级映射
- 外模式:用户
- [概念]模式
- 内模式:数据库的物理存储
信息和数据
信息抽象于现实,可用E-R图描述,包括:
- 实体 entity :具体的事物 或 抽象概念 或 他们之间的联系
- 实体集 entity set
- 属性 attribute
- 属性域 domain :属性的取值范围
- 码 key :唯一标识实体的属性(集)
- 实体型 entity type
- 联系 relationship
不同实体型之间有三种联系:1:1,1:n,m:n (可以没有)
数据由信息转化,对应计算机,包括:
- 字段 field 或数据项 data item:标记实体的属性
- 记录 record
- 记录型
- 文件
- 码 key
数据模型
分类:层次模型 hierarchical model ,网状模型 network model,关系模型 relational model ,面向对象数据模型 object oriented data model ,对象关系数据模型,半结构化数据模型等
操作:增删改查
数据结构:
- 码、主关键字 primary key:唯一标识
- 域 domain
- 行=元组 tuple =记录
- 列=属性 attribute =字段
- 主属性包括主码、候选码
- 分量
完整性约束:实体完整性、参照完整性、用户定义完整性(用户自定义域)
关系模型
描述:关系名(属性1,属性2,……属性n)
关系的每一个分量必须是不可分的数据项
数据结构
- 域 domain
值域,表示属性的取值范围
域中所包含的值的个数称域的基数(m) - 笛卡尔积 cartesian product
D 1 × D 2 = { ( d 1 , d 2 ) ∣ d i ∈ D i } D_1\times D_2=\{(d_1,d_2)|d_i\in D_i\} D1×D2={(d1,d2)∣di∈Di}
( d 1 , d 2 ) (d_1,d_2) (d1,d2)为 [二]元组,其中的每一个值叫做分量
笛卡尔积的基数是各域的基数之积 - 关系 relation
笛卡尔积的子集叫在域D1,…Dn上的关系,表示为 R ( D 1 , D 2 , . . . , D n ) R(D_1,D_2,...,D_n) R(D1,D2,...,Dn)
R是关系的名字,n是关系的目或度
若关系中,某一属性组的值能唯一地标识一个元组,而其子集不能,则称候选码,候选码的诸属性称为主属性。候选码可只包含一个属性,也可能包含全部属性,此时称为全码。
从候选码中选出一个来作为主码,主码也可以是多个属性共同构成的。
外部码,在本关系中不是码,但是其他某一关系的码。
笛卡尔积没有意义,其子集才有意义。关系必须是有限集合。
关系可有:基本表(实际)、查询表、视图表(虚表)
关系完整性
- 实体完整性 entity integrity
主属性不能取空 - 参照完整性 referential integrity
属性F是关系R的属性但不是R的码,K是关系S的主码,F与K定义在同一个域上(相对应),则F是R的外部码,R是参照关系,S是被参照关系(目标关系),R中任一元组在F上的值为:F=S中某个元组的K值 或 空值 - 用户定义完整性 user-defined integrity
用户自定义域
关系操作
增删改查
查询包括:选择、投影、连接、除、并、差、交、笛卡尔积
标粗的是基本操作,其他操作可以用五种基本操作来定义和导出
语言
- 关系代数语言 relational algebra 查询 ISBL
- 关系演算语言 relational calculus 查询 元组演算:ALPHA 域演算:QBE
- 关系数据库标准语言 SQL(structured query language) 更加强大
只需要给出查询,不需要考虑如何实现查询
关系代数语言
集合运算:
- 并union:R和S具有相同目n,且相应属性取自同一个域 R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R\cup S=\{t|t\in R\vee t\in S\} R∪S={t∣t∈R∨t∈S}
- 差except:R和S具有相同目n,且相应属性取自同一个域 R − S = { t ∣ t ∈ R ∧ t ∉ S } R- S=\{t|t\in R\wedge t\notin S\} R−S={t∣t∈R∧t∈/S}
从R中减去和S相同的 - 交intersection:R和S具有相同目n,且相应属性取自同一个域 R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R\cap S=\{t|t\in R\wedge t\in S\} R∩S={t∣t∈R∧t∈S}
- 广义笛卡尔积 cartesian product:连接
引入表示符号:
-
关系 R ( A 1 , A 2 , . . . , A n ) R(A_1,A_2,...,A_n) R(A1,A2,...,An)
有 t ∈ R , t\in R, t∈R,其中t是元组
t [ A i ] t[A_i] t[Ai]表示元组t中的分量Ai
A是属性列/域列
A ˉ \bar{A} Aˉ表示从关系中去掉A属性后剩余的属性组 -
R是n目关系,S是m目关系, t r ∈ R , t s ∈ S t_r\in R,t_s\in S tr∈R,ts∈S
是元组的连接 concatenation,是一个(n+m)列的元组
-
给定关系R(X,Z),XZ为属性组,定义当t[X]=x时,x在R中的象集images set是 Z x = { t [ Z ] ∣ t ∈ R , t [ X ] = x } Z_x=\{t[Z]|t\in R,t[X]=x\} Zx={t[Z]∣t∈R,t[X]=x},它表示R中属性组X上值为x的各元组在Z上分量的集合
关系运算:
- 选择运算 selection/restriction:选择元组 σ F ( R ) = { t ∣ t ∈ R ∧ F ( t ) = t r u e } \sigma_F(R)=\{t|t\in R\wedge F(t)=true\} σF(R)={t∣t∈R∧F(t)=true}
F是一个公式,由逻辑运算符 ∨ ∧ ¬ \vee \wedge \neg ∨∧¬连接算数表达式 > < ≥ ≤ = ≠ > < \ge \le = \ne ><≥≤==构成 - 投影运算projection:选择列 π A ( R ) = { t [ A ] ∣ t ∈ R } \pi_A(R)=\{t[A]|t\in R\} πA(R)={t[A]∣t∈R},取消重复行
- 连接运算join: R ⋈ F S R\underset{F}{\Join} S RF⋈S
- 等值连接:F中算数表达式是=, R ⋈ A = B S R\underset{A=B}{\Join} S RA=B⋈S
- 自然连接(常用且默认):进行比较的分量必须是相同的属性,并且在结果中去掉重复的属性 R ⋈ S R\underset{}{\Join} S R⋈S,会有悬浮元组消失
- 半连接 :自然连接后仅保留对R属性的投影
- 左外连接:若S中找不到匹配的元组,则不匹配的元素用空值匹配
- 右外连接:若R中找不到匹配的元组,则不匹配的元素用空值匹配
- 全外连接:所有不匹配的元组均用空值匹配
- 除:R(X,Y),S(Y,Z), R ÷ S = { t r [ X ] ∣ t r ∈ R ∧ Y X ⊇ π Y ( S ) } R\div S=\{t_r[X]|t_r\in R\wedge Y_X\supseteq \pi_Y(S)\} R÷S={tr[X]∣tr∈R∧YX⊇πY(S)}
X的象集Yx包含S在Y上的投影
运算之间的转换:
R ∩ S = R − ( R − S ) 或 S − ( S − R ) R\cap S=R-(R-S)或S-(S-R) R∩S=R−(R−S)或S−(S−R)
R ÷ S = π X ( R ) − π X ( ( T ∗ π Y ( S ) − R ) R\div S=\pi_X(R)-\pi_X((T*\pi_Y(S)-R) R÷S=πX(R)−πX((T∗πY(S)−R)
此处应看ppt
相关文章:

关系型数据库 期末复习(未完
关系型数据库 绪论概念间的关系数据库的历史信息和数据数据模型 关系模型数据结构关系完整性关系操作语言 关系代数语言 绪论 概念间的关系 数据->数据库->数据库管理系统->数据库系统 数据库的历史 人工管理阶段 -> 文件系统阶段 -> 数据库系统阶段 数据库…...

【学习笔记】CF1895G Two Characters, Two Colors
感谢grass8sheep提供的思路。 首先,我们可以用 D P DP DP解决这个问题。 设 f i , j f_{i,j} fi,j表示前 i i i个数中有 j j j个为 1 1 1的位置为红色的最大价值。则转移如下: f i , j ← f i − 1 , j b i f_{i,j}\gets f_{i-1,j}b_i fi,j←fi−…...

GZ035 5G组网与运维赛题第10套
2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第10套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…...

基于SSM的教学管理系统(有报告)。Javaee项目。
演示视频: 基于SSM的教学管理系统(有报告)。Javaee项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvc My…...

软件测试工作流程
流程体系介绍 在以往的项目工作中,我参与过,需求评审、测试计划制定、测试用例编写、测试用例执行、测试脚本编写、测试脚本的执行,进行回归测试、验收测试、编写阶段性测试报告等工作 需求分析,需求评审(RPD、产品原…...

高级文本编辑软件 UltraEdit mac中文版介绍说明
UltraEdit mac是一款在Windows系统中非常出名的文本编辑器, UltraEdit for mac对于IT程序猿来说,更是必不可少,可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等,虽然Mac上已经有了很多优秀的文本编辑器࿰…...

python模块的介绍和导入
python模块的介绍和导入 概念 在Python中,每个Python代码文件都是一个模块。写程序时,我们可以将代码分散在不同的模块(文件)中,然后在一个模块中引用另一个模块的内容。 导入格式 1、在一个模块中引用(导入)另一个模块可以使用import语句…...

基于单片机的智能饮水机系统
收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、系统设计方案分析2.1 设计功能及性能分析2.2设计方案分析 二、系统的硬件设计3.1 系统设计框图系统软件设计4.1 总体介绍原理图 四、 结论 概要 现在很多学校以及家庭使用的饮水机的功能都是比较单一的&#…...

CSS画圆以及CSS实现动态圆
CSS画圆以及CSS实现动态圆 1. 先看基础(静态圆)1.1 效果如下:1.2 代码如下: 2. 动态圆2.1 一个动态圆2.1.1 让圆渐变2.1.2 圆渐变8秒后消失2.1.3 转动的圆(单个圆) 2.2 多个动态圆 1. 先看基础(…...

K8S知识点(一)
(1)应用部署方式转变 (2)K8S介绍 容器部署容易出现编排问题,为了解决就出现了大量的编排软件,这里将的是K8S编排问题的解决佼佼者 弹性伸缩:当流量从1000变为1200可以,自动开启一个…...

人工智能师求职面试笔试题及答案汇总
人工智能师求职面试笔试题及答案汇总 1.如何在Python中实现一个生成器? 答:在Python中,生成器是一种特殊类型的迭代器。生成器允许你在需要时才生成值,从而节省内存。生成器函数在Python中是通过关键字yield来实现的。例如&…...

【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手
前言 通过"cmd"运行"ffmpeg"进行操作,快速上手; 实操 【实操一】 说明 使用"ffmpeg"来合并音频文件和视频文件 ; 环境 Windows 11 专业版(22621.2428); 代码 …...

Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)
目录 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 1.1.2、案例实现 1.1.3、效果演示 1.2、计数功能(Redis RabbitMQ) 1.2.1、分析 1.2.2、案例实现 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 使用 redis 作为缓存, M…...

Facebook Developer 的 HashCode
在 Android 中,您可以使用 Facebook SDK 提供的工具来生成您的应用程序的哈希码(hash code),以便在 Facebook 开发者帐户中配置您的应用程序。 要生成哈希码,您可以使用以下步骤: 打开终端或命令提示符&am…...

下载使用 ant design Pro 中遇到的一些问题
文章目录 npm 版本问题在idea终端输入命令报错:error:0308010C:digital envelope routines::unsupported npm 版本问题 npm v9.6.3 is known not to run on Node.js v19.9.0. This version of npm supports the following node versions: ^14.17.0 || ^16.13.0 || …...

「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)
本教程将指导开发者如何生成一个可运行的Spring MVC客户应用程序,该应用程序实现域模型的CRUD应用程序模式。在本教程中,您将学习如何: 从数据库表的Scaffold到现有项目部署搭建的应用程序 使用Spring MVC搭建需要MyEclipse Spring或Bling授…...

[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值
[动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值 文章目录 [动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值题目解析解题思路状态表示状态转移方程初始化和填表顺序 返回值代码实现总结 LCR 166. 珠宝的最高价值 题目…...

Mysql进阶-SQL优化篇
插入数据 insert 我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。 批量插入数据 一条insert语句插入多个数据,但要注意,每个insert语句最好插入500-1000行数据,就得重新写另一条insert语句 Insert into…...

VueI18n中英文切换 vue2.0
1: npm install --save vue-i18n8.0.0 (版本不要高了,不然报错) 2:创建相关文件 3:main.js文件配置 //i18n插件 import VueI18n from vue-i18n // element-ui多语言文件 import locale from element-ui/lib/locale;…...

VUE组件间通信的七种方式
目录 1、 props / $emit (1)父组件向子组件传值(props的用法) (2)子组件向父组件传递数据($emit的用法) 2、ref / $refs 用法: 3、eventBus事件总线($e…...

问chatgpt最近生活的困难
你知道吗,因为我做的所有的事情没有任何目的性,所以曾经过的很好,这种很好是一种逃避式的好,怎么说呢?遇到困难了,那就不做了,换下一个项目。比如打游戏,如果我这局玩王者荣耀&#…...

Flink源码解析八之任务调度和负载均衡
源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…...

4.3 传送门
算法设计与分析 4.3 传送门 题目描述 现在有 n 个传送门,你处在第一个传送门的位置,第 i 个传送门可以将你传送到第 i-a[i] 到第 ia[i] 范围内的任意一个传送门,请问你最少需要几次操作,使得你可以传送到最后一个传送门的位置。 …...

NLP之Bert介绍和简单示例
文章目录 1. Bert 介绍2. 代码示例2.1 代码流程 1. Bert 介绍 2. 代码示例 from transformers import AutoTokenizertokenizer AutoTokenizer.from_pretrained("bert-base-chinese") input_ids tokenizer.encode(欢迎来到Bert世界, return_tensorstf) print(input…...

【Windows】Google和火狐浏览器禁用更新的操作方式
想必很多网民常用的浏览器是Edge,Google,火狐这三种,但是浏览器都有后台自动更新,更新提示会一直显示,要用户去点击才关掉,有点强迫症的用户就会想要把它一直关掉,可每次打开都关不掉࿰…...

关于编程不得不说的事
这些年,互联网爆炸式的发展,促生了无数程序员,也促生了大量 IT培训机构。短短数年间,科班出生的程序员和培训机构出生的程序员呈指数增长。程序员的职业也不再是金饭碗。写了这么多代码,有些感触,所以写下来…...

2.4G合封芯片 XL2422,集成M0核MCU,高性能 低功耗
XL2422芯片是一款高性能低功耗的SOC集成无线收发芯片,集成M0核MCU,工作在2.400~2.483GHz世界通用ISM频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块,并且支持一对多线网和带ACK的通信模式。发射输…...

【QT基础入门 控件篇】QLineEdit 基础、高级和样式表使用详解
一、QLineEdit简介 QLineEdit是一个单行文本编辑器,它可以让用户输入和编辑纯文本,也可以设置一些有用的编辑功能,如撤销和重做、剪切和粘贴、拖放等。QLineEdit: 可以根据不同的回显模式(echoMode)来显示不同的输入内…...

网络安全(网络安全)小白自学
想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…...

dupeGuru 清理微信重复文件
本文摘录于:https://www.bilibili.com/video/BV13p4y1G75Y/?spm_id_from333.337.search-card.all.click&vd_source483e5c52353ea59d1a5eadac7737591a只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 微信用了七八年,文件…...