数据库原理(二 )

2023-11-12

一、 关系模型有关概念

  • 关系模型:用二维表结构形式表示实体及实体之间联系的数据模型。
  • 属性:二维表的列称为属性(也称字段),各属性有独立的名称,属性值对应于各行的字段值。
  • 记录:二维表的行称为记录(也称元组);一条记录的一个属性值被称为一个分量(也称为数据项)。
  • 关系:二维表记录的集合称为关系,每个关系有一个关系名。
  • :是一组相同数据类型的属性值的集合。在关系中用域表示属性的取值范围。
    属性A的域用D(A)表示,域中所包含的值的个数(行数)称为域的基数(用m表示)。
    在这里插入图片描述

二. 关系的类型和性子

2.1 类型

类型:关系有三种类型:基本表,查询表和视图表
(1)基本表实际存在的表,存储数据的逻辑表示
(2)查询表示查询结果对应的表
(3)视图表由表/其他视图表导出的表,虚表,不对应实际存储数据(一张图而已)

2.2 基本关系的六条性质

(1)同一属性(列)的数据是同质的(Homogeneous),即每列值为同类数据,且来自同域.(同列同类同域)。
(2)关系中每个属性值都不可分解.即各分量都是不可分的数据项。
(3)任意两列不能相同,同一关系的属性(列)名不能重复,即不同列可出自同一个域,称其中的每列为一个属性。
(4)任意两行元组(记录)不能完全相同。
(5)列的顺序无所谓,即列的次序可任意交换。
(6)行的顺序无所谓,即行的次序可任意交换。

三、 E-R图转换为关系模型的方法

(1)实体转换关系规则:将每个实体转换成一个关系模式时,实体的属性就是关系的属性。如学生实体中的属性“学号” 就是关系的属性
(2)二元联系转换规则

3.1 实体联系 1:1

可以在两个实体任选一个,其关键字和联系的属性放入另一个实体对应的关系模式中
在这里插入图片描述
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称,辅导员教师号,接管时间)PK:班号 和 辅导员教师号

3.2 实体联系:1:n

方法一

1 端实体的关键字放入 n 端实体的关系模式中,联系有属性也一起放进 n 端中,关键字是n端的关键字
在这里插入图片描述
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称,辅导员教师号,接管时间)PK:班号 和 辅导员教师号

方法 二

是独立构建一个关系模型,实体是两端实体的关键字加上联系的属性,而关键字为n 端实体的关键字
在这里插入图片描述
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称)PK:班号
管理(辅导员教师号班号,接管时间)FK:辅导员教师号,班号

3.3 联系实体 m: n

新构建一个关系模型,其属性为两端实体关键字加上联系的属性,而关键字为两端实体关键字的组合
在这里插入图片描述
学生(学号,姓名,性别,年龄,籍贯)PK:学号
课程(課号,科目,课程性质)PK:課号
选课(学号,课程,成绩)

四、 关系模型的完整性

4.1 实体完整性规则

(1)实体完整性规则:主键中的主属性不可取空值。一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。实体完整性如图2-7所示。
在这里插入图片描述

4.2 参照完整性

2)参照完整性规则(Referential Integrity)要求:若属性组F是关系模式R1的主键,同时F 也是关系模式R2的外键,则在R2的关系中,F 的取值只允许两种可能**:空值或等于R1关系中某个主键值**.R1称为被参照关系模式,R2称为参照关系模式

参照完整性就是定义外键和主键之间的引用规则。学生选修表中每个元组上的学号属性必须为空(F的每个属性值均为空值);或等于S即学生数据表中某个元组的主键。
在这里插入图片描述

4.3 用户定义完整性

用户定义的完整性:是针对某一具体关系数据库的约束条件,反映出某一具体应用所涉及的数据必须满足的语义要求。(特定的查询数据)
在这里插入图片描述

五、 关系运算种类及运算符

  • 传统的集合运算:将元组(记录)作为集合中元素进行运算,其运算是从关系的**“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积**等运算。
  • 专门的集合运算:针对关系数据库的应用而专门设计的。涉及关系的行运算和关系的列运算。它包括选取、投影连接和除等运算。
  • 关系代数所使用的运算符有4类:
    (1)集合运算符:∪(并),—(差),∩(交),×(广义笛卡儿积)。
    (2)专门的关系运算符:σ(选择),π(投影), (连接),÷(除)
    (3)比较(算数)运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于)
    (4)逻辑运算符:¬(非),∧(与),∨(或)。

5.1 并

关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删除重复元组,组成一个新的关系,其结果仍为n目关系。记作:
R∪S = { t | t∈R ∨ t∈S } 其中,t是元组变量(关系表的行)
在这里插入图片描述
在这里插入图片描述
注意:并、差和交运算R和S的属性一定要相同,否则无法进行运算。

5.2 交

关系R和关系S 交由既属于R又属于S的元组组成,运算结果是R和S中相同的元组组成一个新的关系,仍为n目关系。记作:
R∩S = { t | t∈R ∧t∈S }
关系的交也可用差表示,即R∩S =R-(R-S)。
在这里插入图片描述
在这里插入图片描述

5.3 差

关系R和关系S的差由属于R而不属于S的所有元组组成,即R中删除与S中相同的元组,组成一个新的关系,其结果仍为n目关系。记作:
R-S = { t | t∈R ∧t S } t是元组变量
在这里插入图片描述
在这里插入图片描述

5.4 广义笛卡尔积

两个分别为n目和m目的关系R和 S的广义笛卡尔积是一个(m+n)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔有k1×k2个元组,记作: R×S≡{t︱t=<t r, t s>∧t r∈R∧t s∈S }
在这里插入图片描述

5.5 选择

选择运算是在表中选择符合给定条件的元组,即对二维表进行水平分割
在这里插入图片描述

5.6 投影

投影运算是在一个关系中选取某些列,并重新安排列的顺序,再删去重复元组,即对二维表进行垂直分割.
在这里插入图片描述

5.7 连接

在这里插入图片描述
在R 与 S 的笛卡尔积中进行连接
B>D
在这里插入图片描述
R.A=R.A(同时也删除重复元组)
在这里插入图片描述
R与S 的自然连接
那两个相同的属性进行比较,值相同则保留,重复则保留一个,其他属性列没有相同的那就直接加进来
在这里插入图片描述

5.8 除

除运算过程:
关系的除运算操作是从行和列同时进行的。具体计算过程为:
(1)将被除关系的属性分为像集属性和结果属性两部分,与除关系相同的属性属于像集属性不相同的属性属于结果属性

(结果属性是指最后结果表,需要具备这些结果属性列)
(2)在除关系中,在与被除关系相同的属性(像集属性)上投影,得到除目标数据集。
(3)将被除关系分组,将结果属性值相同的元组分为一组。
(4)观察每个组,若其像集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集.并差去与原被除关系相同的分组.
在这里插入图片描述

(1)先分出像集属性进而结果属性
在R关系中学号属性的值可以取
在这里插入图片描述

BX15120 对应的像集为{(P2637,周),(A3103,杨),(P637,张) }

BE16227 对应的象集为{(李),(杨),(张)}

BG16245 对应的象集为{ (王),(杨)}

BG16238 值对应的象集为{(张) }

关系S在学号上的投影为{(周),(杨),(张)}
(其实大概意思就是查找满足信息是周+杨+张的学号)
只有 BX15120 的值对应象集包含关系S的投影集,所以只有a1包含在A属性中
结果为这个:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库原理(二 ) 的相关文章

随机推荐

  • 基于SSM的遂川特产销售管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 遂川特产销售系统当然也不能排除在外 遂川特产销售系统是以实际运用为开发背景 运用软件工程开发方法 采用SSM技术构建的一个
  • QT界面美化与添加多个界面

    一 在QT界面中添加图片 首先在工程中添加源文件 右键选择class1 选择Add new 如下图 添加完成之后会出现源文件夹目录 然后右键选择 qrc文件 然后选择Open in Edit 5 再点击鼠标位置 创建目录 只留下 表示根目录
  • VS Code 源码分析 - 多语言实现

    NO 1 前言 传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案 切换语言时通过数据流的变化使得界面根据文案重新渲染 但由于 VS Code 架构的复杂性 需要有一套能兼容 Electron 渲染窗口 Ch
  • Jedis介绍及配置(Java操作Redis)

    Jedis介绍及配置 Java操作Redis 一 Jedis是什么 jedis就是基于java语言的redis客户端 集成了redis的命令操作 提供了连接池管理 redis cli是redis官方提供的客户端 可以看作一个shell程序
  • [ctfshow]web入门——命令执行(web54-web71)

    文章目录 system过滤 web54 web55 web56 web57 disabled function绕过 web58 web59 web60 web61 web62 web63 web64 web65 wbe66 web67 we
  • SpringMVC的数据响应(页面跳转、回写数据)

    SpringMVC的数据响应 一 SpringMVC的数据响应 01 SpringMVC的数据响应 数据响应方式 02 SpringMVC的数据响应 页面跳转 返回字符串形式 03 SpringMVC的数据响应 页面跳转 返回ModelAn
  • 找不到MSVCP140_1.dll、VCRUNTIME140_1.dll,打不开designer解决方法

    在使用designer的时候报了两个缺少运行库的错误 查了很多方法 最后看到需要下载这两个库 在这里下载 https cn dll files com vcruntime140 1 dll html 我是win10系统 下载完之后把它俩丢进
  • 快速搭建测ceph

    一 cephadm介绍 Cephadm是一个由Ceph社区维护的工具 它用于在Ceph集群中管理和部署Ceph服务 它是一个基于容器化的工具 使用了容器技术来部署Ceph集群的不同组件 使用Cephadm 管理员可以通过简单的命令行界面在整
  • Spring boot 拦截器的编写

    编写拦截器需要在Controller层 编写两个类 一个类类名 Interceptor1 类名没有特定要求 另一个类名 InterceptorConfig 类名没有特定要求 InterceptorConfig类实现WebMvcConfigu
  • python-OpenCV-人脸、眼睛,微笑检测

    文章目录 前言 一 人脸检测是什么 二 案例 总结 前言 随着人工智能的不断发展 OpenCV这门技术也越来越重要 很多人都开启了学习OpenCV 本文就介绍了OpenCV的基础内容 提示 以下是本篇文章正文内容 下面案例可供参考 案例 F
  • python中如何导入math模块_Python中的math模块如何进行数学运算?

    在数学之中 除了加减乘除四则运算之外 还有其它跟多的运算 比如乘方 开方 对数运算等等 其实我们的计算机如同我们人类一样也具备了基本的运算常识 知道了基本的运算规则与方法 但是计算机如何高速 精确的运算呢 在python中 基于基本的运算规
  • prometheus安装以及错误汇总

    首先 最简洁的安装就是通过 编译好的包 开箱即用 下面是链接 https prometheus io download d dhttps prometheus io download 但是为了后续更好的使用 建议下载源码 然后编译 编译过程
  • Scala集合和遍历

    目录 1 列表 1 1 定义 1 1 1 示例一 1 1 2 示例二 1 1 3 示例三 2 可变列表 2 1 定义 2 1 1 示例一 2 1 2 示例二 2 2 可变列表操作 2 2 1 示例 3 列表常用操作 3 1 判断列表是否为空
  • 毕业季:我和未来有个对话

    2013年迎来新中国建国以来人数最多的大学毕业生 699万 史上最难就业季 成为一个全社会关注的热点话题 由中央电视台综合频道与唯众传媒联合打造的关注青年人成长的首档青年电视公开课节目 开讲啦 邀请四位跨界嘉宾来开讲 并且和青年人一起和未来
  • jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气

    对于Java程序员来说 在众多Java知识点当中JVM是很重要的一块 每个Java程序都离不开Java虚拟机 Java程序的运行依靠具体的Java虚拟机实例 在Java虚拟机规范中 分别用子系统 内存区 数据类型以及指令这几个术语来描述的
  • 两个数值互换的几种方式

    一 建立临时变量 1 普通的方法 思路简介 建立一个临时变量 通过temp a a b b temp来实现交换 缺点 这只是一种假交换 由于这只是在函数内部临时变量间的交换 所以当函数退出 函数栈帧被释放 原本的值并没有交换 具体方法 in
  • MongoDB的使用

    MongoDB 是一个跨平台的 以 JSON 为数据模型的文档数据库 是当前 NoSQL 数据库产品中最热门的一种 它介于关系数据库和非关系数据库之间 是非关系数据库当中功能最丰富 最像关系数据库的产品 1 MongoDB 与 MySQL
  • 使用DVD光盘或者ISO作为本地YUM源

    Yum 全称为 Yellow dog Updater Modified 是一个在 Fedora RedHat CentOS 中的 Shell 前端软件包管理器 基于 RPM 包管理 能够从指定的服务器自动下载 RPM 包并且安装 可以自动处
  • 摸爬滚打DirectX11_day01——VS2015与DirectX11的配置

    什么是DirectX11 DirectX 微软提供的应用程序接口集 APIs 被设计为在运行 windows 操作系统平台上用来提供给开发人员控制硬件的底层接口 它的各个组件提供了访问不同硬件的能力 包括图形 显卡 声音 声卡 GPU 输入
  • 数据库原理(二 )

    文章目录 一 关系模型有关概念 二 关系的类型和性子 2 1 类型 2 2 基本关系的六条性质 三 E R图转换为关系模型的方法 3 1 实体联系 1 1 3 2 实体联系 1 n 方法一 方法 二 3 3 联系实体 m n 四 关系模型的