软考数据库---3.关系数据库

3.1 名词

考点:会区分各种码(候选码,主码,外码,全码)
在这里插入图片描述
在这里插入图片描述

属性分类

数据库实体属性分类主要包括以下几个方面:

  1. 单一属性 (Simple Attribute)或简单属性:

    • 单一属性只能取一个值,比如年龄、工资等。
  2. 复合属性 (Composite Attribute):

    • 复合属性由多个子属性组成,这些子属性共同描述了一个整体概念。例如,地址可以是一个复合属性,包含街道、城市、省份、邮政编码等多个部分。
  3. 多值属性 (Multivalued Attribute):

    • 在某些情况下,一个属性可以有多个值。在关系数据库中,这类属性通常通过关联表来实现,比如一个人有多部电话号码。
  4. 派生属性 (Derived Attribute):

    • 派生属性的值可以根据其他属性的值计算得出,而不是直接存储在数据库中。例如,年龄可以从出生日期计算得到。

3.2 关系代数

表达式:

在这里插入图片描述

R在前S在后为例

1. 选择:根据选择条件获取列(sql中:where)。

在这里插入图片描述

2. 投影

选择想要的列(类似于select),针对列进行计算。
在这里插入图片描述

3. 并

R与S 相同的合并,R与S 不同的元组放下面

4. 交

R与S 相同的合并,不同的不要

5. 差

R与S 相同的减掉,R不同的留着

6. 笛卡尔积

R表中的每一行都与S表中的每一行组合一次 R X S,select * form a,b
在这里插入图片描述
图片指路—写的非常易懂

7. 除

如果把笛卡尔积看作“乘法”运算,则除法运算可以看作这个“乘法”的逆运算。 R ÷ S R÷S R÷S
网上好多写步骤的真的好难懂,易懂图解指路

假设我们手里面有一张数据库如下:

现在我们有一个问题,就是我们想要找出学习最积极的那位学生,也就是选修了所有课程的那个学生,先暂时放弃除法运算,以我们最朴素的情感用自己的逻辑来解决这道题目,按照自己的想法,就像设计一个程序一样,需要几步做出这个问题

以下是按照我自己的想法:

  • 首先,把SC表拆了,把每个学生单独做成一个表,如下:

  • 然后问题就变成了拆开之后的表格和C表一一比对,找出拆开之后的三个表格中的Course属性和C表一模一样(也就是拆开之后包含了所有课程的表),然后找出那个人是谁,然后问题就解决了

实际上,我们的除法运算就是这个逻辑,但是除法运算的更为严谨,以下是除法运算的的步骤(SC ÷ C),这里我们仍然采用我们上面使用的数据库,直接说结论(SC ➗ C)能找出答案

  • 第一步:找出C表中和SC表中相同的属性,也就是C属性,对C属性做投影操作(也就是找出总的课程有多少门)

  • 第二步:找出SC表中和C表不相同的属性,也就是S属性,也对S属性做投影操作(找出一共有几个学生)

  • 第三步:找出SC表中S的象集(每个学生分别都选了些什么课)

  • 最后一步就是进行比对,只有张三的象集包含了所有C表中的所有课程,所以(SC ➗ C = 张三)

再来看一下步骤:
1.取S中和R相同的属性(投影),去重
2.找R中不同于S的属性,取不同的属性列,对该列进行去重
3. 求R中2中列对应的像集
4. 判断包含关系(哪个像集包含1中所有值)

8. 重命名

9. 连接

1. θ \theta θ 连接

笛卡尔积之后选择
在这里插入图片描述
在这里插入图片描述

2.等值连接

在这里插入图片描述

3. 自然连接

相同属性值值相同的留下,去掉重复属性。
在这里插入图片描述

10. 外连接

左连接(left join) 左侧为准右侧填充
右连接(right join)
在这里插入图片描述

3.3 元组演算

3.4 域演算

3.5 查询优化

在这里插入图片描述

3.6 关系规范化

这一章主要学习四大范式

第一范式

若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式

第二范式

第三范式

BCNF范式

第四范式

3.7

3.7.1 Armstrong 公理系统

自反率
增广率

3.7.2 函数依赖的闭包及属性闭包

3.7.3 候选码的求解方法

3.7.4 最小函数依赖项

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
软考中级-数据库系统工程师考试资料dbsm.doc 是一份关于数据库系统工程师考试的资料。它主要包括以下方面的内容:数据库系统的基本概念、数据建模、关系数据库的设计与实现、数据库安全、数据库备份与恢复、数据库性能优化等方面的知识点。 其中,数据库系统的基本概念主要介绍了数据库系统的基本组成部分和基本术语,包括数据库数据库管理系统、数据模型、数据结构和数据库应用等方面的内容。数据建模部分主要是介绍了数据建模的基本概念和各种数据建模方法,如实体关系模型、面向对象模型、UML等;关系数据库的设计与实现主要是介绍了关系模型的基本概念和关系数据库的设计与实现方法,包括ER模型转换为关系模型、关系模型的完整性约束等方面的内容。 在数据库安全方面,该资料主要提供了数据库安全的基本原则和常见安全控制手段,如用户认证、权限管理、加密技术、审计和监控等;数据库备份与恢复方面主要介绍了数据库备份与恢复的基本原理和常用备份和恢复技术,如完全备份、增量备份、差量备份等;数据库性能优化方面主要介绍了数据库性能优化的基本思路和常见性能问题的解决方法,如查询优化、索引优化、SQL优化等方面的内容。 总的来说,软考中级-数据库系统工程师考试资料dbsm.doc 提供了数据库系统工程师考试所需的基本知识点和技能要求。对于准备参加该考试的人员来说,这份资料是一份非常有用的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值