个人笔记--数据库理论 01 关系模型介绍——基于《数据库系统概念》第七版

news/2024/4/29 7:51:29/文章来源:https://blog.csdn.net/JamSlade/article/details/126931704

关系模式

关系的例子

  1. 关系模型是目前广泛应用的数据模型
  2. 由表的集合构成

例如

IDnamedpt_namesalary
11111JAMCS12345
  1. 元组 tuple:表中的一行,元素无所谓
  2. 属性 attribute : 原子的,不可再分的,要有属性域,如上表的name,dept_name,salary
    1. 空值表示特殊值,表示这个属性未知or不存在

另外的例子

关系模式可以表示成
R(A1,A2,…,An)R(A_1,A_2,…,A_n)R(A1,A2,An)

  1. A1,A2,…AnA_1,A_2,…A_nA1,A2,An表示属性
  2. 如 instructor(ID, name, dept_name, salary)
  3. 如 department(dept_name, building, budget)
  4. 关系模式中,相同属性可以把不同关系的元组联系起来

关系模式与实例

  1. 关系模式:关系的逻辑设计
  2. 关系实例:给定时刻关系中数据的快照
  3. 数据库模式versus 数据库实例 ——类比——> 类型与变量

关系模式不常变化,关系实例常变化。(可以参考第7版教科书32页的图2-9)


Keys(键与码)
KKK唯一识别关系r(R)r(R)r(R)中的一个元组,称KKK是关系r(R)r(R)r(R)超码(Superkey)

  1. KKK是一个或多个属性的集合,K⊆RK\sube RKR
    (RRR是关系模式rrr的属性集合 )
  2. 超码可能包含无关紧要的属性
  3. K的任意超集也是超码

如 {ID}和{ID, name}是instructor的超码

候选码与主码

任意真子集不能称为超码的最小超码候选码

如{ID}是instructor的候选码
若{name, dept_name}可以唯一确定instructor的各成员,那他也是候选码

于是需要选择其中一个候选码作为主码(primary key)

外码

一个关系模式(r1)(r_1)(r1)在其属性上包含另一个关系模式(r2)(r_2)(r2)的主码,此属性在rir_iri上称为参照r2r_2r2的外码(foreign key), r1r_1r1称为外码依赖的参照关系

如 dept_name是instructor的外码

参照完整性约束

参照关系中任意元组在 特定属性(如外码) 的取值,必须等于被参照关系中某个元组在 此特定元素 上的取值

例外:外码约束

模式图

一个含主码与外码依赖的数据库可用模式图表示

  1. 一个关系模式用一个矩形表示
  2. 主码用下划线标注
  3. 外码约束(依赖)用 从参照关系的外码到被参照关系的主码之间的 箭头表示

在这里插入图片描述

关系查询语言

分过程化语言与非过程化语言

纯查询语言

  1. 关系代数 – 过程化
  2. 元组关系演算 – 非过程化
  3. 域关系演算 – 非过程化

所有过程化查询语言(如关系代数)都提供一组关系运算,施加于单个关系上或一对关系上,结果为单个关系

关系代数

基本关系运算

选择σ\sigmaσ一元
投影Π\PiΠ一元
∪\cup二元
−-二元
笛卡尔积×\times×二元
更名ρ\rhoρ一元

交连接赋值都可由上述内容引申

选择

选择满足给定为此的元组
σp(r)\sigma_p(r)σp(r)
其中ppp是选择谓词

在这里插入图片描述
σp(r)={t∣t∈r∧p(t)}\sigma_p(r) = \{t|t\in r\land p(t) \}σp(r)={ttrp(t)}

  1. p是一个or多个元组选择条件组成的为此,由∧∨¬\land\quad\lor\quad\lnot¬连接
  2. p可包含两个属性的比较,如a=b
  3. 条件可以表示为<属性>/<常量>"opreation"<属性>/<常量><属性>/<常量> "opreation" <属性>/<常量><属性>/<常量>"opreation"<属性>/<常量>, operation表示比较运算符的一种

投影

过滤掉特定元素

ΠA1,A2,…,Am(r)\Pi_{A_1,A_2,…,A_m}(r)ΠA1,A2,,Am(r)
AiA_iAi属性名,rrr是关系名

通过去除未列出的列,获得的一个m 列的关系
在这里插入图片描述

笛卡尔积

结合来自任意两个关系的信息
表示r×sr\times sr×s

由于相同属性名可能同时出现在r(R)r(R)r(R)s(S)s(S)s(S),所以在这个过程中需要rename以区别这些属性

r×s={<t,q>∣t∈r∧q∈s}r\times s = \{<t,q>|t\in r\land q\in s\}r×s={<t,q>trqs}

连接运算

r⊳⊲θs=σ(r×s)r\rhd\lhd_\theta s = \sigma(r\times s)rθs=σ(r×s)
(这里这两个三角形应该顶点连在一起,没找到对应符号在这里插入图片描述
)

θ\thetaθR∪SR\cup SRS模式属性上的一个选择谓词

在这里插入图片描述

并运算

符号表示r∪s={t∣t∈r∨t∈s}r\cup s = \{t|t\in r\lor t\in s\}rs={ttrts}

如果要让r∪sr\cup srs有意义,要求两个条件成立

  1. rrrsss必须同元——属性数目相同
  2. 属性域相同

r−s={t∣t∈r∧t∉s}r-s = \{t|t\in r\land t\notin s\}rs={ttrt/s}
要求同并运算

更名运算

px(E)p_x(E)px(E)
返回表达式E的结果并把名字x赋予给他

若表达式E是多元的,可以设置
px(A1,A2,...,An)(E)p_{x(A_1,A_2,...,A_n)}(E)px(A1,A2,...,An)(E)
返回E的结果,赋予名字x,各属性更名为AiA_iAi

在这里插入图片描述

总结与其他关系运算

基本表达式是如下二者之一:

  1. 数据库的一个关系
  2. 一个常数关系

其他附加关系运算

不增强关系代数表达能力,但可简化查询

  1. r∩s={t∣t∈r∧t∈s}=r−(r−s)r\cap s = \{t|t\in r \land t \in s\} = r-(r-s)rs={ttrts}=r(rs),使用要求同并
  2. 赋值 r←sr\leftarrow srs
    将查询表达为一个顺序程序,包括
    ✓一系列的赋值
    ✓一个值被做为查询结果显示的表达式
    ➢ 赋值赋给一个临时关系变量,并不修改数据库关系实例
    ➢ 赋值赋给一个数据库关系,修改数据库关系实例
  3. 连接
    R=(A,B,C,D)S=(E,B,D)R = (A,B,C,D)\quad S=(E,B,D)R=(A,B,C,D)S=(E,B,D)
    r⊳⊲s=Πr.A,r.B,r.C,r.D,s.E(σr.B=s.B∧r.D=s.D(r×s))r\rhd\lhd s = \Pi_{r.A,r.B,r.C,r.D,s.E}(\sigma_{r.B=s.B\land r.D = s.D}(r\times s))r⊳⊲s=Πr.A,r.B,r.C,r.D,s.E(σr.B=s.Br.D=s.D(r×s))
  4. 外连接

Conclusion

在这里插入图片描述

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

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

相关文章

云原生爱好者周刊:延迟加载任意 OCI 镜像 | 2022-09-13

开源项目推荐 SOCI Snapshotter SOCI Snapshotter 是一个 Containerd Snapshotter 插件&#xff0c;可以延迟加载任意 OCI 镜像&#xff0c;不需要 Stargz Snapshotter 一样构建特殊格式的镜像才能延迟加载。 Authentication Proxy 这个项目使用 YARP (Yet Another Reverse…

Git的认识和使用

目录 一、前置准备 二、git简介 三、gitee.com的基本使用 1.创建仓库(私库和公库) 2.创建文件及文件夹 新建文件夹两种方式 ①​ ② 3.删除 删除文件 删除仓库 四、组长组员的git使用 git clone 查看文件 git status git add git commit git push ## 命令行配置 多个…

葡聚糖-MAL/NHS/N3/Alkyne/SH/Biotin/CHO/OPSS/OH

产品名称&#xff1a; 葡聚糖-马来酰亚胺&#xff0c;葡聚糖-MAL&#xff0c;马来酰亚胺功能化葡聚糖 英文名称&#xff1a;Dextran-MAL PEG分子量可选&#xff1a;350,550,750,1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k&#xff08;可…

[仅需1步]企业微信群机器人[0基础接入][java]

[仅需1步]企业微信群机器人[0基础接入][java]背景介绍使用测试项目背景 公司需要把日常的服务器错误抛到企业微信群中,我正好记录下使用企业微信群机器人… 介绍 企业微信群机器人 应用介绍 企业微信是腾讯微信团队打造的企业通讯与办公工具&#xff0c;具有与微信一致的沟…

医院检验LIS系统源码

医院lis源码 实验室信息管理系统源码 .net检验系统源码 医院系统源码 了解更多源码内容&#xff0c;可私信我。 开发环境&#xff1a;.NET4.0 WPF VS2017或VS2019SQL2016 实验室信息管理系统以条码标本为主线&#xff0c;实现从采集、检测、报告、归档的全程跟踪管理。 支持…

DevOps自动化测试的原则和实践

DevOps是为了在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间。在对系统进行变更时&#xff0c;质量很重要。高质量才能让业务价值传递到系统干系人。『自动化测试既是提高质量的一种重要手段&#xff0c;也是实施持续测试必需的能力&#xff0c;因此它是DevOps…

修改WebBrowser控件的内核解决方案

首先说一下原理 当下很大浏览器他们都是用了IE的core, 这个core只提供HTML/JS的执行和渲染,并没有给出关于界面和一些特性上的事,所以开发自己浏览器如果基于IE core需要自己完成这些内容。 一张图很好的说明了这个情况,IE浏览器的架构:http://msdn.microsoft.com/en-us/li…

nginx - 负载均衡配置-负载均衡策略

目录 知识点1&#xff1a;网站流量分析指标 什么是pv&#xff1f; 什么是uv&#xff1f; 什么是IP&#xff1f; 知识点2&#xff1a;正向代理和反向代理 知识点3&#xff1a;负载均衡实验 IP地址规划&#xff1a; 实验拓扑图 知识点4&#xff1a;负载均衡策略 1、请求…

Spring5.3学习——from 官网 day1-1

Spring5.3学习——from 官网day1-1Spring5.3学习——from 官网day1-1前言概述Spring的设计理念Spring核心&#xff1a;IOC什么是IOC解释IOC容器的包什么是BeanBeanFactory接口简述ApplicationContext接口简述BeanFactory源码描述以下是Bean工厂创建和销毁bean的完整生命周期流程…

Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)

​上一期文章中&#xff0c;分享了Matlab帕累托图的绘制模板&#xff1a; 这一次&#xff0c;再来分享一种特殊的线图&#xff1a;平行坐标图。 ‘平行坐标图是一种通常的可视化方法&#xff0c;用于对高维几何和多元数据的可视化……为了克服传统的笛卡尔直角坐标系容易耗尽空…

好心情精神心理科:80%双相情感障碍被误诊,千万注意鉴别

双相情感障碍又称躁郁症&#xff0c;其表现复杂&#xff0c;容易与其他精神疾病&#xff08;包括边缘型人格障碍&#xff09;相混淆&#xff0c;超过80%的患者未能得到正确诊断。 具体如何区分双相情感障碍与边缘型人格障碍&#xff1f;在回答这个问题之前&#xff0c;好心情精…

从规模走向规模经济,锅圈食汇回归餐饮初心

预制菜源自美国&#xff0c;在日本因冷链技术发展而普及。后疫情时代&#xff0c;预制菜在中国餐饮市场加速渗透&#xff0c;成为行业的新风向。 9月&#xff0c;第一财经与CBNData发布“Growth502022中国新消费品牌年度增长力榜单”&#xff0c;预制菜品牌锅圈食汇入选。 锅…

设计模式学习笔记--责任链模式

责任链模式 责任链模式是一种对象的行为模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件

我们经常会使用移动硬盘或 U 盘进行大体积文件的分享、携带。但有时候别人提供的NTFS移动硬盘或者U 盘在 Mac 电脑中只能读取&#xff0c;无法将文件导入到其中。这是因为常见的 NTFS 硬盘格式在 Mac 中不能兼容。 当你从 Windows 转到了 Mac 平台&#xff0c;可能会发现之前用…

RocketMQ-流程图-概念

文章目录RocketMq的角色消息发送的流程RocketMq的角色 Producer&#xff1a;消息的发送者&#xff0c;生产者&#xff1b;举例&#xff1a;发件人Consumer&#xff1a;消息接收者&#xff0c;消费者&#xff1b;举例&#xff1a;收件人Broker&#xff1a;暂存和传输消息的通道…

Python数据分析教程(一):Numpy

数据的纬度 一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构Numpy Numpy介绍NumPy是一个开源的Python科学计算基础库,包含:一个强大的N维数组对象…

渗透测试神器Nmap使用教程

渗透测试神器Nmap使用教程1.nmap简介2.常用参数3.nmap实战命令1.nmap简介 Nmap &#xff08;网络映射器&#xff09;是Gordon Lyon最初编写的一种安全扫描器&#xff0c;用于发现计算机网络上的主机和服务&#xff0c;从而创建网络的“映射”。为了实现其目标&#xff0c;Nmap…

java计算机毕业设计基于安卓Android的金融保险app(源码+系统+mysql数据库+Lw文档)

项目介绍 计算机信息技术的发展&#xff0c;推动了金融保险信息化管理的进程&#xff0c;并随着互联网概念的提出&#xff0c;各种互联网软件也应运而生。在传统的管理中&#xff0c;各种信息管理难&#xff0c;传播速度慢&#xff0c;需要耗费很长时间统计核查&#xff0c;不…

Oracel中视图相关概念和操作(一)

目录 1.视图概念&#xff08;有必要&#xff09; &#xff08;1&#xff09;视图基本概念 &#xff08;2&#xff09;视图和定义的表的联系 &#xff08;3&#xff09;视图的优点 2.创建视图 &#xff08;1&#xff09;使用SQL DEVELOPER创建视图&#xff08;可视化&#x…

如何正确的审核交易商牌照?这些雷区你不得不防

对于外汇平台来说&#xff0c;交易牌照可以说是重中之重&#xff0c;一个交易没有牌照&#xff0c;可以说是没有任何约束&#xff0c;属于监管裸奔状态&#xff0c;这种平台10个有10个就是黑平台。但也正因如此&#xff0c;无数黑平台也会在牌照上面做手脚&#xff0c;这些人手…