数据库原理与应用系列_03关系数据库与关系代数

简介: 数据库原理与应用系列_03关系数据库与关系代数

一、关系模型的数据结构及其形式化定义



关系模型的数据结构非常简单,只包含单一的数据结构——关系。

在关系模型中,无论是实体还是实体之间的联系,骏由单一的结构类型即关系来表示。

关系模型是以集合代数理论为基础的。


1、关系的形式化定义及其有关概念

  1. 域(Domain)


域是一组具有相同数据类型的值的集合,又称为值域(D)。例如:整数,实数,字符串的集合都是域。


域中所包含的值的个数称为域的基数(m)。


在关系中用域来表示属性的取值范围。


例如:D1={王伟,张三,李四},m1=3


D1表示姓名域的集合。


域名没有排列次序,如:D2={男,女}={女,男}


笛卡尔积

笛卡尔积也是一个集合

【1】每一个元素(d1,d2,d3…,dn)中的每一个值di叫做一个分量,分量来自对应的域。

【2】每一个元素(d1,d2,d3…,dn)叫做一个n元祖,简称元祖。但元祖是有序的。


笛卡尔积可以使用二维表来表示。

99c671e942094abab013b71fd5e0001e.png

3. 关系(Relation)

关系是笛卡尔积的子集。

笛卡尔积的任一子集称为定义在域上的n元关系,关系用R来表示。

R:关系的名字

n:关系的目或者度

【1】R=1:单元关系,R=2:二元关系。

【2】关系中的每个元素是元组,用t表示。关系中元组的个数是关系的基数。

f8b79363aca04433b248a0cd1dc19b70.png

【3】

无限关系:一个关系当中的元组个数是无限的


有限关系:一个关系当中的元组个数是有限的


【4】关系是笛卡尔积的子集,因此关系也是二维表


1、表的框架由域构成,即表的每一列对应一个域。


2、表的每一行对应一个元组


3、每列有唯一的名字,叫属性。


n元关系必有n个属性。


属性的取值范围称为值域,对应域当中的取值范围。


【4】具有相同关系框架的关系称为同类关系


【5】定义在域上的关系由关系头和关系体组成


关系头是属性名的集合(A1,A2 , A3)


关系头是关系的数据结构的描述,是固定不变的


关系体是指关系结构中的内容或者数据,它随元组的插入,删除,修改而变化。【考】【只是增,删,改,而没有查询,因为查询只是read only】


2、关系的性质


关系是一种规范化了的二维表中的行的集合。


关系的性质:


【1】列是同质的,即每列中的分量必须来自同一个域,必须是同一类型的数据


【2】不同的属性可来自同一个域


【3】列的顺序可以任意交换。但交换时,应该连同属性名一起交换,否则得到不同的关系


【4】关系当中元组的顺序可以任意,在一个关系中可以任意交换两行的次序。因为关系是以元组为元素的集合,而集合中的元素是无序的,所以作为集合元素的元组也是无序的。

【笛卡尔积当中的元组是有序的】


【5】关系当中不允许出现相同的元组(去重)


作为集合元素的元组是唯一的。


【6】关系中的每一分量必须是不可分的数据项


所有的属性值都是一个确定的值。


满足此关系的称为规范化关系,否则为非规范化关系。

672986dd7a2f49438fc93aa1fb388961.png


3、关系模式


关系数据库当中,关系模式是型,关系是值(实例化)。


关系模式是一个五元组。


关系的描述称为关系模式

关系模式可以形象化的表示为:R(U,D,DOM,F)


【1】R:关系名

【2】U:组成该关系的属性名集合

【3】D:属性组U中属性所来自的域

【4】DOM:属性向域的映像集合

【5】F:属性间数据的依赖关系集合


关系模式通常还可以简化为:R(U)或者R(A1,A2,…An)


【1】R:关系名


【2】U:属性名的集合


【3】A1,A2,…An:各属性名


关系模式是型,即关系头


关系是值,即关系体


实际中常把关系和关系模型统称为关系


【考试当中关系模式的写法:】

1、学生(学号,姓名,年龄)

2、教师(教师号,姓名,性别,工资)


4、关系数据库和关系数据库模式


  1. 关系数据库的型称为关系数据库模式
  2. 关系数据库的值称为关系数据库。是关系模式在某一时刻对应关系的集合
  3. 与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例


二、关系的码和关系的完整性



1、候选码和主码


候选码

能唯一标识关系中元组的一个属性或属性集,称为候选码,也称候选键或者候选关键字。


如:在选课当中

只有属性组合“ 学号+课程号 ” 才能唯一地区分每一条选课记录,则属性组合“ 学号+课程号 ”就是选课关系的候选码。


当且满足以下两个条件,K才被称为候选码:

【1】唯一性:关系R的任意两个不同元组,其属性集K的值是不同的。

【2】最小性:组成关系键的属性集中,任一属性都不能从属性集K中删去,否则破坏唯一性。


例如:选课关系中的“ 学号+课程号 ” 满足最小性,从中去掉任何一个属性,都无法唯一标识选课记录。


2、主码(PK)


如果一个关系当中有多个候选码,可以从中选择一个作为查询,插入或者删除元组的操作变量,被选用的候选码称为主码,或者称为主键,关键字等等。

每个关系必须选择一个主码,选定后不得随意改变。

通常选最少的属性组合作为主码。


3、主属性和非主属性


主属性【Prime Attribute】:包含在主码中的各个属性称为主属性。

非主属性【None-Prime Attribute】:包含在任何候选码中的属性称为非主属性。


【考试判断题】

包含在候选码中的各个属性称为主属性。(错,不是候选码,是主码)

全码:所有属性的组合是关系的候选码,这是称为全码。


4、外键(FK)


如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外部关系键。

并称关系R2为参照关系,关系R1为被参照关系。


5、关系的完整性


对关系数据库的插入、删除和修改操作必须有一定的约束条件,这些约束条件实际上是现实世界的要求。


任何关系在任何时刻都要满足这些语义约束。


关系模型当中,有三类完整性约束:实体完整性,参照完整性,用户自定义完整性。


【1】实体完整性和参照完整性是关系模型当中必须满足的完整性约束条件,被称为关系的两个不变性。


【2】用户自定义完整性:不同关系数据库系统由于应用环境不同,需要的一些特殊的约束条件。体现在具体的领域中的语义约束。


实体完整性【考试:填空和判断中都有】

实体完整性指的是主码的值不能为空或者部分为空。


参照完整性

如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值,或者去空值。


例如:


4857b067f61b4be48cfc59056e3b5886.png

  1. 用户自定义完整性

同关系数据库系统由于应用环境不同,需要的一些特殊的约束条件。体现在具体的领域中的语义约束。


三、关系代数



关系模型由关系数据结果,关系操作和关系完整性约束三部分组成。

65ce220bd4194fac9b442d738b1b9660.png

1、关系代数的分类以及其运算符

40a2d44a4833422db6eb5bf492f7310a.png

40e078974f4945e9b43bc6e7d041efeb.png

【1】传统的集合运算:该类运算把关系看成元组的集合,以元组为集合的元素来进行运算,其运算是从关系的水平方向(axis=0)来进行的。传统的集合运算包括:并,交,差,笛卡尔积。


【2】专门的关系运算:该类运算不仅涉及行方向,也涉及列方向。包括选取,投影,连接和除法运算。


【考试判断题】

专门的关系运算只包括行运算是错的。(错)


除了笛卡尔积运算外,其他集合运算要求参加运算的关系必须满足下述相容性的定义:


【1】两个关系R,S具有相同的列数

【2】R的第i个属性和S的第i个属性必须来自同一个域

2、传统的集合运算

【1】并(Union)

关系R和关系S的并运算结果由属于R或者S的元组组成。即R或者S的所有元组合并,删去重复元组,组成一个新的关系,其结果仍然是n元关系。

801879cf435f4a98be38deb68f5b89cb.png0b7541f18a2946e2ad000a6159785e2e.png

【2】差(Difference)

关系R和关系S的差运算结果由属于R而不属于S的元组组成。即R中删去与S中相同的元组,组成一个新的关系,其结果仍然是n元关系。

36f521470b44492f83ea0a9a5e445821.png

e26b9a7a852447eead03ef782cd6d192.png


【3】交(Intersection)

关系R和关系S的交运算结果由即属于R又属于S的元组组成。

f22c735b908345ee96146e74ba25cde1.png5dbad4ab557e4f8783be00df3036c795.png


【4】广义笛卡尔积

6e45d2a7cd8c4cd9b3dcf92d750ac494.png


3、专门的关系运算

45379dfd9f2843138dd078d6107adb99.png

a54112fad76247e5825bcdae2a8ee64b.png

选课表

17378156b4274349aef55613867a2cac.png

【1】选取(Selection)

df264c8f0e464778a1c10c7b54b47efa.png

0cd83a914e5e444793b187ff3697353f.png

因此选择是从行的角度挑出来符合条件的行。

87ec53c82be644bf9b0278b03960494d.png

21ffbe6f101a4913a9706f60261874df.png


【2】投影(Projection)

5030298a19384d698b9de9a13029974c.png3ece6ea5a1424b70a724aac6baa62ba9.png


23e246e949bd4d31856e245e83b3a8a5.png

e5b3c2ba4bd14189a56acb131eb86fa4.png

【3】连接(join)

116fe4d8d61d4678a2eb780b8cdd3728.png66e1ad1321b34763b620c111e0fdd503.png843630852d0e4965bbc492bd6b49de10.png525aef5c14bb475abab2abfffd88d14d.png5aa9c44a9fde4328992536c844d2eb61.png86aa184d60bf4ff78a759b0988940b8e.pngf2289139b611422fba4a322995f6e0a0.png5ae6014d1d64447c98087d493dba4bf4.png69f486369b0a475ba47ebf399b0991dd.png6148a2f9a67a49f0a75723d63bcac187.pngb96e9345ad244f5db0318baf3f0699f5.png0f9ddf8f6b954344a8c6099079fc4931.png

【4】除法(Division)589aec45397f4c4fa16f83e8f08a7c41.png

【1】R ÷ S的属性是在R当中但是没有在S当中的属性。

【2】R ÷ S的元组和S的元组进行组合,组合的结果必须都在R当中

bd55ea36348844d992a633e1f8813282.png

第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下

9b23eebadaa649879ba9e4f65457df24.png

第二步:被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为{X1,X2};

第三步:求关系R中X属性对应的像集Y

根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示

fd194924c5a8468cb054fcb9a5076a32.png

第四步:判断包含关系

R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现:

X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1;

而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2

1a248e6e866848a1ac2c89c92afbce03.png



相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
2月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
3月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
194 8
|
3月前
|
弹性计算 关系型数据库 数据库
云数据库RDS数据库迁移上云
阿里云RDS是一种安全稳定、高性价比的在线数据库服务,支持弹性伸缩,帮助用户轻松部署与扩展数据库。提供实例创建、白名单设置、数据库与账号管理、便捷连接等功能,简化运维操作,保障数据安全。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
3月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
3月前
|
关系型数据库 MySQL 数据库
云时代MySQL:RDS与自建数据库的抉择
在云计算时代,选择合适的数据库部署方案至关重要。本文深入对比了AWS RDS与自建MySQL的优劣,帮助您在控制权、运维成本和业务敏捷性之间找到最佳平衡点。内容涵盖核心概念、功能特性、成本模型、安全性、性能优化、高可用方案及迁移策略,为您提供全面的决策参考。

热门文章

最新文章