关系模型与关系代数——数据库原理 总结2

2.1 关系模型

关系数据结构

  • 关系模型的数据结构二维表,亦称为关系
  • 关系数据库是表的集合,即关系的集合。
  • 表是一个实体集,一行就是一个实体,它由有关联的若干属性的值所构成。

关系模型的相关概念

列就是数据项 或 字段 或 属性attribute

列的个数称为关系的元或度

列的取值范围称为值域,简称域domain

行也称为元组tuple或记录record

行中的一个属性值称为分量component

行的个数称为关系的基数cardinality

域:是一组具有相同数据类型的值的集合。

笛卡尔积:给定一组域D1, D2, …, Dn,它们之中可以有相同的域。D1, D2, …, Dn的笛卡尔积为:

     D1×D2×…×Dn = {(d1, d2, …, dn)∣di∈Di }     (“每列来自一个域”)

笛卡尔积例子:

码(重点)

  • (Key):属性(或属性组)的值都能用来唯一标识该关系的元组,则称这些属性(或属性组)为该关系的码。
  • 超码 (super key):在码中去除某个属性,它仍然是这个关系的码。
  • 候选码 (candidate key):在码中不能去除任何一个属性,否则它就不再是这个关系的码。(最小超码

        主属性:包含在任何一个候选码中的属性称为主属性,反之为非主属性

  • 主码 (primary key):在若干个候选码中指定一个唯一标识关系的元组。
  • 外码 (foreign key):某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主码
  • 全码:一个关系模式的所有属性集合是这个关系的主码

关系的最基本要求

  • 关系中的每个属性的域必须是原子的,即域中的每个值都是不可再分的一个完整单元。
  • 关系中的每个元组都是可区分的,即存在唯一标识不同元组的属性(集)——码。

关系模式形式化:r(U, D, DOM, F) ,简记为:r(U) 或 r(A1, A2, …, An)

        r为关系名

        U为组成该关系的属性名的集合{A1, A2, …, An}

        D为属性集U中所有属性所来自的域的集合

        DOM为属性向域的映像集合,(描述类型、长度等)

        F为属性间数据的依赖关系集合 (即体现各属性取值之间的“关联”性)。

2.2 关系完整性约束

数据完整性:数据的正确性、合理性、相容性

完整性约束条件:实体完整性、参照完整性、用户定义的完整性

1. 实体完整性

  • 主码属性不能为空值null
  • 如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。

2. 参照完整性

  • 外码属性要么为null,要么为参照的主码值

3. 用户自定义完整性

  • 任何关系数据库管理系统都应该支持实体完整性参照完整性
  • 用户定义完整性是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

2.3 关系操作

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。

二维表的操作:

  • 更新:添加、修改、删除
  • 查询:选择、投影、并、差、笛卡尔积(5种基础操作);连接、除、交

关系操作可用两种方式来表示——代数方式和逻辑方式。

关系代数是用代数方式表达的关系查询语言。

关系演算是用逻辑方式表达的关系查询语言。

对于关系代数、关系演算均是抽象的查询语言,在表达能力上是完全等价的。

2.4 关系代数

关系代数

  • 关系代数是一种抽象查询语言,用关系代数运算来表达查询。
  • 关系代数运算:运算对象是关系,运算结果也是关系。
  • 基本的关系代数运算有选择、投影、集合并、集合差、笛卡尔积和更名等。

一、传统的集合运算

前提假设:关系r和关系s具有相同的n个属性,且相应的属性取自同一个域,即两个关系的模式或结构相同。t是元组变量,t∈r表示t是r的一个元组。

  • 并运算:关系r与关系s的并记作 :r\cup s = \{ t | t\in r \vee t\in s \}

其结果关系仍为n目关系,由属于r或属于s的所有元组组成

  • :关系r与关系s的差:r- s = \{ t | t\in r \wedge t \notin s \}

其结果关系仍为n目关系,由属于r而不属于s的所有元组组成

  • :关系r与关系s的交记作:r \cap s = \{ t | t\in r \wedge t\in s \}

其结果关系仍为n目关系,由既属于r又属于s的所有元组组成。关系的交可以通过差来表达,即rs = r-(r-s)。  “减去特有部分”

笛卡尔积

  • 两个分别为n目和m目的关系rs的笛卡尔积是一个n+m目元组的集合。     
  • 若关系rkr个元组,关系sks个元组,则关系rs的笛卡尔积有kr×ks个元组。记作 : r×s = { tr·ts∣trÎr∧tsÎs }
  • 元组的前n列是关系r的一个元组,后m列是关系s的一个元组。

二、专门的关系运算

专门的关系运算:选择、投影、连接、除

  • 选择

选择操作是在关系r中查找满足给定谓词(即选择条件)的所有元组

记作: \sigma _p(r) = \{t | t\in r\wedge P(t) \}

P表示谓词(即选择条件),它是一个逻辑表达式,取值为“真”或“假”。

选择运算是从关系R中选取使逻辑表达式为真的元组,从行的角度进行运算。

  • 投影:

关系是一个二维表,对它的操作可以从水平(行)的角度进行,即选择操作;也可以从纵向(列)的角度进行,即投影操作

关系r上的投影是从r中选择出若干属性列组成新的关系。记作:\Pi _A(r) = \{t[A] | t\in r\}

A为关系r的属性集合。

  • 连接:

连接运算中有两种最常用、最重要的连接,一种是等值连接(equijoin),另一种是自然连接(natural join)。

1. 等值连接

θ为等值比较谓词的连接运算。记为A op B,其中AB分别为关系rs中的属性个数相等且可比的连接属性集,op为比较运算符。

θ连接是从两个关系的笛卡尔积中选取连接属性间满足谓词θ的所有元组

θ连接运算就是从关系rs的笛卡尔积r×s中,选取r关系在A属性集上的值与s关系在B属性集上的值满足连接谓词θ的所有元组。即:

一般连接操作从行的角度进行运算。

2. 自然连接

自然连接是一种特殊的等值连接,它要求两个参与连接的关系具有公共的属性集,并在这个公共属性集上进行等值连接;同时,还要求将连接结果中的重复属性列去除掉,即在公共属性集中的列只保留一次。

设关系r(R)和s(S),属性集S是R的子集,即SÍR,则关系r÷s是关系r中满足下列条件的元组在属性集R-S上的投影:\forall t_r \in r,记 x= tr[R-S],则关系r中属性集R-S的取值x的象集Sx包含关系s。记作 r\div s = \{t_r[R-S] | t_r\in r\wedge s\subset S_x \}

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

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

相关文章

基于SpringCloud的微服务架构下安全开发运维准则

为什么要进行安全设计 微服务架构进行安全设计的原因主要包括以下几点: 提高数据保护:微服务架构中,服务间通信频繁,涉及到大量敏感数据的交换。安全设计可以确保数据在传输和存储过程中的安全性,防止数据泄露和篡改。…

Study--Oracle-09--部署Openfiler存储服务器

免费的存储服务器软件有FreeNAS 和 Openfiler。 其中Freenas的网站上只有i386及amd64的版本,也就是说Freenas不能支持64位版本的Intel CPU,而Openfiler则提供更全面的版本支持,在其网站上可以看到支持多网卡、多CPU,以及硬件Raid的支持,还有10Gb网卡的支持。 Openfiler能把…

【RocketMQ】RocketMQ发送不同类型消息

🎯 导读:本文介绍了RocketMQ消息队列系统中的几种消息发送模式及其应用场景,包括同步消息、异步消息以及事务消息。同步消息确保了消息的安全性,但牺牲了一定的性能;异步消息提高了响应速度,适用于对响应时…

演示:基于WPF的DrawingVisual开发的频谱图和律动图

一、目的:基于WPF的DrawingVisual开发的频谱图和律动图 二、效果演示 波形图 极坐标 律动图极坐标图 律动图柱状图 Dock布局组合效果 三、环境 VS2022,Net7,Win10,NVIDIA RTX A2000 四、主要功能 支持设置起始频率,终止频率,中心…

【HTTP 和 HTTPS详解】3

HTTP 状态代码 HTTP 状态代码是服务器发送给客户端的三位数字,用于指示客户端请求的结果。它们分为五类:信息性(100-199)、成功(200-299)、重定向(300-399)、客户端错误&#xff08…

【移植】Combo解决方案之W800芯片移植案例

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 本方案基于 OpenHarmony LiteOS-M 内核,使用联盛德 W80…

[论文精读]Membership Inference Attacks Against Machine Learning Models

中文译名:针对机器学习模型的成员推理攻击 会议名称:2017 IEEE Symposium on Security and Privacy (SP) 发布链接:Membership Inference Attacks Against Machine Learning Models | IEEE Conference Publication | IEEE Xplore CODE:Git…

【计算机网络】Tcp报文的组成,Tcp是如何实现可靠传输的?

Tcp的报文组成 TCP(传输控制协议)是计算机网络中一种重要的传输协议,其报文组成包括多个字段,每个字段具有特定的含义。以下是TCP报文头的主要组成部分: 源端口号(Source Port):占用…

C语言 | Leetcode C语言题解之第445题两数相加II

题目: 题解: struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){int stack1[100];int stack2[100];int top1 0;int top2 0;int carry 0;int sum 0;struct ListNode* temp NULL;struct ListNode* head NULL;while (l1) {…

有关若依菜单管理的改造

导言: 搞了个后端对接若依前端,对接菜单管理时候懵懵的就搞完了,也是搞了很久。记一下逻辑和要注意的东西,以后做想似的能有个改造思路。 逻辑: 主要是要把后端传过的数组列表做成类似 这样的,所以要转格式…

git工具指令

下面是常用的Git命令清单,几个专用名称的译名如下: Workspace :工作区 Index /Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库新建代码库 在当前目录新建一个Git代…

如何在银河麒麟操作系统中查看内存页大小

如何在银河麒麟操作系统中查看内存页大小 1、操作步骤2、注意事项 💖The Begin💖点点关注,收藏不迷路💖 在操作系统中,内存页大小(Page Size)是一个重要的概念,它决定了操作系统如何…

GPT理论

1.GPT发展 Transformer是一个用作翻译任务的模型,谷歌出品。 GPT全称 lmproving Language Understanding by Generative Pre-Training,用预训练语言理解模型。OPENAI出品。 BERT全称Pre-training of Deep BidirectionalTransformers for Language Unde…

深度学习反向传播-过程举例

深度学习中,一般的参数更新方式都是梯度下降法,在使用梯度下降法时,涉及到梯度反向传播的过程,那么在反向传播过程中梯度到底是怎么传递的?结合自己最近的一点理解,下面举个例子简单说明! 一、…

828华为云征文|部署个人知识管理系统 SiyuanNote

828华为云征文|部署个人知识管理系统 SiyuanNote 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 SiyuanNote3.1 SiyuanNote 介绍3.2 SiyuanNote 部署3.3 Siyua…

WebSocket实现在线聊天室

项目实现源码: 前端源码 后端源码 1.常见的消息推送方式 1.1 轮询 1.1.1 轮询的概念 客户端以固定的事件间隔(例如每秒或几分钟)向服务器发送HTTP请求,服务器收到请求后,处理请求并返回数据给客户端 轮询具体实现htt…

element-plus中日历组件设置起始为周一

问题描述 element-plus中的日历组件默认是周日到周六,因业务需求,需要实现从周一到周日的顺序。 解决方式 引入dayjs及本地语言包,使用本地时区即可。 import dayjs from dayjs import dayjs/locale/zh-cn ... // 这一句是为了让日历使用本地…

Android 利用OSMdroid开发GIS

1、地址 Github地址:https://gitee.com/mirrors/osmdroid Git地址: GitCode - 全球开发者的开源社区,开源代码托管平台 Git下载包地址:Releases osmdroid/osmdroid GitHub 新建项目 osmdroid在线: (1&#xff09…

基于Hive和Hadoop的图书分析系统

本项目是一个基于大数据技术的图书分析系统,旨在为用户提供全面的图书信息和深入的图书销售及阅读行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以…

基于SSM+微信小程序的校园二手数码交易平台系统(二手3)(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于ssm微信小程序的校园二手数码交易平台满足了不同用户的功能需求,包括用户、卖家以及管理员,下面对这不同用户的功能需求进行简介。 (1&#xff09…