chapter-3 -数据库数据模型

news2024/9/30 23:34:41

以下内容来源于MOOC学习—原课程请见:数据库原理与应用
考研复习

概述

image-20210115232203774

image-20210116144633188

关系及关系模式

笛卡尔积

定义在一组域上的有序对的集合,

域是一组具有相同类型的集合,比如自然数,长度小于n的字符串结合等【比如int age】

从n个域的每个域里任取一个值,构成元素集合中的一个,【name取zhao,age取15,构成 zhao,15】

每一个元素称为一个n元祖 简称元祖,元祖中每个值称为分量【name:zhao,age:15即元组】

注意基数的计算

关系

日常生活:事物之间关系的描述,比如人的关系,电压电流

数学中:集合论里—关系本身也是一个集合,是具有某种联系的对象(序组)组合

image-20210116103451876

​ D1 D2 D3上的笛卡尔积共有12个元组(3x2x2),但是由于一个人只有一个姓名,许多元组[一个元祖表示一个学生的姓名,性别,年龄]并没有意义,因此其中有意义的即关系

​ 从笛卡尔积中取出一定语义的元祖,构成这N个域上的一个关系,或者说关系是笛卡尔积上的某个有意义的自子集R(D1,D2,…Dn)

image-20210116104746640

同时要满足:

  1. 域要求满足第一范式-------域都是原子数据的集合
  • 属性值不能再细化分成多个

image-20210116104323605

  • 属性也不能是多值属性,

image-20210116104353614

  1. DOM

image-20210116104546454

  1. 属性间的依赖关系

比如张山的性别?是男----反应姓名和性别的依赖;数据内在的性质

关系模式简化

关系名和属性名的集合 R(A1,A2,…An); 比如指导(指导老师,专业,学生姓名)

关系实例

给定关系下 某一时刻的元祖的集合(二维表),时刻变化的数据;理解为具体数据库中表值

关系模式

是关系的型的描述,静态,稳定的;比如指导(指导老师,专业,学生姓名)

关系数据库

略,参考第二章补充

概念分析

集合中的关系:关系可以是一个无限集合 • 关系中每个元组是“序组”

关系模型的关系:关系必须是有限集合 • 为关系的每个属性附加一个属性名(age)取消分量的有序性

如果不附加属性名,那么关系模式语义相同,可以表达同一个关系,如下

image-20210116105352193
在这里插入图片描述

参考第二章

关系
关系是n个域上的一个n元组的集合表是关系的“二维”呈现
关系中属性的次序和元组的次序都是任意的在表中各列从左到右是有序的,各行从上到下也是有序的
关系中不能有相同的元组(行)[但是可以属性值可以相同,比如指导老师和学生都叫李亮]在表中,可能包含重复的行

候选键,主键和外键

候选键:能唯一 标识一个元祖的 最小属性集

如果有多个候选键,可以选择一个作为主键

如果仅一个候选键,且候选键就是关系所有的属性,称为全键

包含候选键的属性集称为超键;

构成候选键的每个属性(候选键的每个属性)都是主属性,其他都是非主属性

外键:关系R的一个属性(集)F与关系S的主键KS对应,对应即取值相对应,称该属性(集)F是关系R的外键

image-20210116111051283
  1. 外键不一定要与相应主键同名;如果属于不同的关系(表),往往取相同的名字
  2. 外键与相应主键必须有相同的域,即属性值的数据类型要完全一致
image-20210116111230182

例:在关系模式EMP(职工号,姓名,年龄,技能)中,假设职工号唯一,每个职工只能申报一项技能,则EMP表的主键是( )。

A.职工号 B.姓名,技能 C.技能 D.职工号,技能

正确答案:A你错选为D

完整性约束

实体完整性[主属性不能为空]

如果属性A是关系R(表R)的主属性,则A不能为空值(null)

参照完整性[外键完整]

该属性(集)F是关系R的外键

该属性(集)F取值只有两种:

  • 取空值
  • 等于某个KS 的值

用户自定义的完整性

  • 属性类型约束:年龄取整数

  • 属性值的范围:成绩

  • 同一关系的不同元祖进行约束:不允许出现姓名相同的人

  • 同一关系的各种属性:工资=绩效+· 等等

关系代数

代数:操作运算符(±*/)+原子操作数

关系代数:基于一组以关系为惭怍对象的运算符+原子操作数(理解为一行数据)

传统集合运算【二目运算】:并、交、差,笛卡尔积

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

五种基本操作(可扩展得到其他)并、交、笛卡尔积、投影、选择

并∪、交∩、差-

相容关系:定义在一组相同域上的不同关系:

  • 关系名可以不同,属性名也可以不同,但是**必须具有相同个数的属性**

  • 两个关系(表)具有相同的目(列),且相应属性取值属于同一个域

并、交、差都属于相容关系

并:用关系代数的基本运算表示为R∪S={t|t∈R∨t∈S} 重复元组舍弃

差:以用关系代数的基本运算表示为R-S={t|t∈R∨t∉S} R-S表示在R中但是不在S中

交:用关系代数的基本运算表示为R∩S={t|t∈R^t∈S}=R-(R-S)

例:将王玲的所在系改为数学系:

(S1-{(‘S01’ ‘王玲’ ‘’ ‘女’)})∪{(‘S01’ ‘王玲’ ‘数学’ ‘女’)}

投影π、选择σ

image-20210116145706303

投影:一元的,对属性[列]进行操作的运算;从关系中选取若干属性列重新组合新的关系

  1. 查询所有学生的学号、姓名:π学号,姓名(学生)

选择:一元的,对元祖[行]进行操作的运算;从关系中选取满足给定条件的元祖

  1. 选择所在系属性值为‘计算机’的元组:σ所在系=“计算机”(学生)

  2. 查询计算系学生的姓名:π姓名(σ所在系=“计算机”(学生))

  3. 查询2000-01-01以后出生的学生姓名:π姓名(σ出生时间>“2020-01-01”(学生))

  4. 查询没选修课程编号为“C02”的学生学号:π学号(选课)-π学号(σ课程编号=“c02”(选课))

σF®的R:由基本逻辑表达式组成:其中运算符包括< > = 小于等于 大于等于 不等于 与或非

注释:一元:对一个关系进行操作

广义笛卡尔积R x S

R是m目,S是n目,RxS得到的m+n目,共有k1*k2个元祖

如果有重名属性,则进行更名

连接∞

​ R ⋈AθB S=σF(R×S) R⋈A𝛉B S = σR.A𝛉S.B (RXS) 【R.A𝛉S.B即条件】

​ A和B分别是R和S上列数相等且可以比较的属性组(列),θ是运算符,如><,连接运算时从R和S的笛卡尔积上选取R关系在A属性组的值 与 S关系中B 的属性值 满足运算关系的元祖

可以理解为在笛卡尔积运算的基础上,进行选择运算就是连接

连接和自然连接

等值连接:比较的关系必须是A=B,即选取A和B的值相等的元祖

自然连接:必须是同名的属性组,在结果中去除重复的列

在自然连接时【例如S08没有对应的】,不能和另一个关系的任何元组进行连接,称为悬浮元组

外连接

自然连接后:

1.如果把左右连接的悬浮元组都保存下来就是完全外连接

2.如果把左连接的悬浮元组保存下来就是左外连接

3.如果把右连接的悬浮元组保存下来就是右外连接

左(右)外连接:得到R和S的连接表后,查看左(右)表的剩余元素,补充上,无属性值赋予NULL

image-20210116135511755

举例:学校数据库中有学生和宿舍两个关系:

​ 学生(学号,姓名) 宿舍(楼名,房间号,床位号,学号)

假设有的学生不住宿,床位也可能空闲。如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行–全外连接

重命名ρ

关系(表)的自身连接 或者具有相同属性时的笛卡尔积计算 时,

有相同的字段需要区分,则对表进行重命名 ρs® s就是表的名字

image-20210116142339936

除÷

前提:

  • 前提:R中的属性包含S中的所有属性
  • R÷S的属性由R中那些不出现在S中的属性组X所组成
  • R÷S的结果T元祖 + S 的元祖 都在R中

上例子:查询选修全部课程的学生

​ R选课(学号,姓名,课程名) S课程(课程名)

​ π姓名® X S 得到的是假设每名学生选择了所有课程

①π姓名® X S - R 得到没有选修全部课程的 姓名+课程

②π姓名®-π姓名(π姓名® X S - R)得到结果

R÷S=π姓名®-π姓名(π姓名® X S - R)

像集:本质上是一次选择行的运算和一次选择列的运算。

求x1在表A中的象集,就是先选出所有x属性中x=x1的那些行,然后选择出不包含x1的那些列。

检查各个X在Y上的像集Yxi是否包含S

举例:

查询选修了全部课程的学生学号

​ 第一种方法: 选课÷ 课程编号(课程) ×[错误,不符合除运算的前提]

​ 第二种方法: π学号,课程编号(选课)÷ 课程编号(课程)√

举例:

基于教学视频中的学生选课数据库,能正确查询出“数学系学生都学的课程的课程编号”的关系代数表达式是( π学号,课程号(选课) ÷π学号(σ所在系=‘数学’(学生)) )

基于教学视频中的学生选课数据库,能够正确查询“所有学生都选修的课程的课程编号”的关系代数表达式是( π学号,课程号(选课) ÷π学号(学生) )。

关系演算

1.将数理逻辑中的谓词演算推广到关系运算中,用谓词演算表达操作

2.关系是一个集合,因此可以用集合描述法建立谓词与关系之间的描述

3.用谓词表示关系,可用关系的谓词演算来表达关系的操作,把对关系的谓词演算的集合描述形式称为关系演算表达式


注:阅读以下内容:元组可以理解为关系(表)中一个数据,元组所有变量构成一个数组t[i]表示元组(数据)的第i个属性-------

在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。

其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。
它由原子公式和运算符组成。

原子公式有三类:

(1) R(t) R 是关系名, t 是元组变量。 R(t) 表示 t 是 R 中的元组。关系 R 可表示为: {t|R(t)}

(2) t[i] θ u[j]

​ θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量(属性)与元组 u 的第 j 个分量满足比较关系 θ ” 。例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。

(3) t[i] θ c 或 c θ t[i]
这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。

​ 在关系演算中定义了 “ 自由元组变量 ” 和 “ 约束元组变量 ” 的概念。这些概念和谓词演算中的概念完全一样。若公式中的一个元组变量前有 “ 全称量词 ” 或 “ 存在量词 ” ,则称该变量为约束元组变量,否则称自由元组变量。

公式可以递归定义如下:

(l) 每个原子公式是公式。

(2) 如果 Φ 1 和 Φ 2 是公式,则 Φ 1 ∧ Φ 2 、 Φ 1 ∨ Φ 2 、 ﹁ Φ1 也是公式。分别表示:

① 如果 Φ 1 和 Φ 2 同时为真。则 Φ 1 ∧ Φ 2 才为真,否则为假;

② 如果 Φ 1 和 Φ 2 中至少一个为真,则 Φ 1 ∨ Φ 2 为真, Φ 1 和 Φ 2 同时为假 才为假;

③ 如果 Φ 1 真,则 ﹁ Φ 1 为假。

(3) 若 Φ 是公式,则 ∃ t(Φ) 也是公式。其中符号 ∃ 是存在量词符号, ∃ t(Φ) 表示:
若有一个 t 使 Φ 为真,则 ∃ t(Φ) 为真,否则 ∃ t(Φ) 为假。

(4) 若 Φ 是公式,则 ∀ t( Φ ) 也是公式。其中符号 ∀ 是全称量词符号, ∀ t( Φ ) 表示:
如果对所有 t ,都使 Φ 为真,则 ∀ t( Φ ) 必为真,否则 ∀ t( Φ ) 为假。

(5) 在元组演算公式中,各种运算符的优先次序为:
① 算术比较运算符最高;
② 量词次之,且 ∃ 的优先级高于 ∀ 的优先级;
③ 逻辑运算符最低,且 ﹁ 的优先级高于 ∧ 的优先级, ∧ 的优先级高于 ∨ 的优先级;
④ 加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循 ①②③ 各项。
(6) 有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。


关系演算和关系代数在表达能力上是等价的 ,体现在五种基本操作

一个元组演算表达式 {t|Φ(t)} 表示了使 Φ(t) 为真的元组集合。
关系代数的运算均可以用关系演算表达式来表示 ( 反之亦然 ) 。下面用关系演算表达式来表示五种基本运算:

(1) 并 R ∪ S={t|R(t) ∨ S(t)}

(2) 差 R - S={t|R(t) ∧ ﹁ S(t)}

(3) 笛卡尔积 R×S={t (n+m) |( ∃ u (n) )( ∃ v (m) )(R(u) ∧ S(v) ∧ t[1]=u[1] ∧ … ∧ t[n]=u[n] ∧ t[n+1]=v[1] ∧ … ∧ t[n+m]=v[m])}

注: t (n+m) 表示 t 有目数 (n+m)

(4) 投影 π t1,t2,…,tk ®={t (k) |( ∃ u )(R(u) ∧ t[1]=u[i1] ∧ …t[k]=u[ik] )}

(5) 选择 σ F ®={t|R(t ∧ F}

​ 注: F 是公式。 F 用 t[i] 代替 运 算 对 象 i 得到的等价公式。

1.image-20210117171539506

4.

5.

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

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

相关文章

Linux工具make与makefile

Linux项目自动化构建工具-make/Makefile 目录Linux项目自动化构建工具-make/Makefile引言1、make && makefile2、make执行步骤2.1 依赖关系2.2 依赖方法3、项目清理4、伪目标 .PHONY5、文件的三个时间6、make的工作原理7、Linux下的第一个小程序认识缓冲区进度条①函数…

T5模型简单介绍

目录 一、概要 二、深入扩展 2.1 两个要素 2.2 预训练方法 一、概要 谷歌公司的研究人员提出的 T5&#xff08;Text-to-Text Transfer Transformer&#xff0c;有5个T开头的单词&#xff0c;所以叫做T5&#xff09;模型采用了一种与前述模型截然不同的策略&#xff1a;将不…

RUAS论文阅读笔记

这是CVPR2021的一篇暗光增强的论文 Retinex增强和去噪部分 第一部分的核心公式是一种retinex公式&#xff08;用于暗图增强的retinex公式有几种类型&#xff0c;虽然本质一样但是对于各个分量的定义不一样&#xff09;&#xff1a;yx⊗tyx\otimes tyx⊗t&#xff0c;其中x是正…

Trie|并查集|堆|

目录 初始化 插入 查询 合并集合 连通块中点的数量 堆排序 模拟堆 Trie树是用来快速存储和查找字符串集合的数据结构 #include<iostream> using namespace std; const int N 100010; int son[N][26];//本题为小写因为字母&#xff0c;每个节点最多有26个子节点…

JUC编程之——synchronized的底层实现与分析

1 synchronized关键字 synchronized 是 Java 中的关键字&#xff0c;是一种同步锁(也是一种悲观锁)。它修饰的对象有以下几种&#xff1a; 作用于实例方法&#xff0c;当前实例加锁&#xff0c;进入同步代码前要获得当前实例的锁——对象锁&#xff1b;作用于代码块&#xff…

水文水利数据对接详解

数据对接 水雨情监测及视频监控系统需要与什么平台进行对接&#xff1f; 答&#xff1a;水雨情监测及视频监控系统由省统一接收的方式&#xff0c;数据接收中心设在***水利云。 2.水雨情数据接收中心有哪些组成部分&#xff1f; 答&#xff1a;水雨情数据接收中心主要由硬件…

pdf如何压缩变小,pdf压缩教程四招快速学

PDF是我们日常工作中经常使用的文件格式之一。这种文件格式方便易用&#xff0c;能够确保文件在传输和接收过程中不会出现错版等问题。为了方便发送&#xff0c;我们通常会将编辑好的内容转换为PDF格式。但是有时候文件过大&#xff0c;无法通过传输渠道发送怎么办&#xff1f;…

字节5年测试工程师对“测试开发”的理解

写在前面&#xff1a; 写这篇文章的目的是为了能够更好的帮助刚入职的新人了解这个岗位和自己的工作&#xff0c;也想谈谈自己工作一年来对这个领域的了解程度&#xff0c;做一个小小总结吧&#xff5e; 一、我理解的测试开发 测试开发与开发、测试的关系 以前在没有接触测试…

樱花树盛开的季节,我用简单的C代码绘制了一棵樱花树向她表白~『C/C++图形库EasyX』

文章目录&#x1f490;专栏导读&#x1f490;文章导读绘制一根线条绘制一个简易的树干优化树干&#xff0c;使其更加细致绘制樱花树增加随机树形与渐变色效果如何设置随机数进阶——通过鼠标点击来控制生成樱花树进阶——生成樱花树并展示生长过程&#x1f490;专栏导读 &#…

通过阿里云函数计算解决ChatGPT API的调用问题

ChatGPT系列文章 与其被ChatGPT取代&#xff0c;不如征服ChatGPT&#xff0c;做它的主人&#xff01; 文章目录ChatGPT系列文章前言命令行部署准备工作两行命令实现部署应用中心部署使用代理访问API总结前言 自2022年11月30日 OpenAI 发布 ChatGPT 以来&#xff0c;虽然时有唱…

最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试

参考链接&#xff1a;最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试 一、安装Python3 PyQt5所支持的python版本是从3.5开始的&#xff0c;因此安装的Python3版本必须大于3.5。 我安装的位置是C:\Python\Python38。 参见真小白入门Pyhton的安装 二、安…

图-文多模态,大模型,预训练

参考老师的无敌课程 多模态任务是指需要同时处理两种或多种不同类型的数据&#xff08;如图像、文本、音频等&#xff09;的任务。例如&#xff0c;图像描述&#xff08;image captioning&#xff09;就是一种典型的多模态任务&#xff0c;它需要根据给定的图像生成相应的文本描…

XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层,消除电子噪声干扰

​ XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层&#xff0c;消除电子噪声干扰 dcs合理、可靠的系统接地&#xff0c;是dcs系统非常重要的内容。为了保证dcs系统的监测控制精度和安全、可靠运行&#xff0c;必须对系统接地方式、接地要求、信号屏蔽、接地线截面选择、接…

【C++学习】map和set的封装

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; map和set的封装&#x1f349;map和set中的红黑树&#x1f34c;set中的键值和map中的键值&#x1f349…

CTF杂项提纲

CTF的杂项是涉及编码&#xff0c;图片隐写&#xff0c;音频隐写&#xff0c;压缩包分析的方向&#xff0c;本文对MISC的知识点做了一个简单列举 常见编码 ASCII 0-9,48-57 A-Z 65-90 a-z 97-122 URL url编码又叫百分号编码&#xff0c;是统一资源定位的编码方式 base16/…

ModStartCMS v6.2.0 VIP权益配置功能,界面UI优化升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

【初识数据库】数据库简介及MySQL安装

目录 数据库基本概念&#xff1a; 主流的关系型数据库&#xff1a; 下载并安装数据库 我们选择的是&#xff1a;MySQL Community Server 8.0.26 卸载老版本MySQL 数据库基本概念&#xff1a; 数据库&#xff1a;是数据的仓库&#xff0c;存储数据的地方 数据库管理系统&am…

RK3568平台开发系列讲解(调试篇)debugfs 分析手段

🚀返回专栏总目录 文章目录 一、enable debugfs二、debugfs API三、使用示例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 上有一些典型的问题分析手段,从这些基本的分析方法入手,你可以一步步判断出问题根因。这些分析手段,可以简单地归纳为下图: 从这…

进程虚拟地址空间的划分

进程虚拟地址空间划分是操作系统中的一个核心概念&#xff0c;它决定了进程可以访问的内存范围和方式。在本文中&#xff0c;我们将介绍进程虚拟地址空间的划分方法和各个部分的作用。 进程虚拟地址空间的划分方法 在操作系统中&#xff0c;每个进程都有自己的虚拟地址空间&am…

到底还是留不住!库克“中国行”后火速变脸,3000亿产能转向印度?

以国家的层面来制衡一家科技企业&#xff0c;这种事或许只有老美干得出来。当看到华为即将崛起之时&#xff0c;美一意孤行&#xff0c;修改了大量关乎芯片和商贸的政策。层层围堵之下&#xff0c;华为如今的市场份额大幅缩水&#xff0c;腾出来的高端市场基本被苹果占据。相关…