软件设计师:03 - 数据库系统

一、数据模型的分类

在这里插入图片描述

1.1、概念数据模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2、结构数据模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 真题

在这里插入图片描述

二、三级模式

在这里插入图片描述
在这里插入图片描述
概念模式对应的是基本表,概念模式也称为模式
外模式对应的是视图,也称用户模式或者子模式
内模式对应的是数据库里面的存储文件,也称存储模式

真题

在这里插入图片描述
在这里插入图片描述

三、两级映像

在这里插入图片描述

内物外逻

在这里插入图片描述

真题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、关系代数

在这里插入图片描述

并、交、差、笛卡尔积

在这里插入图片描述
在这里插入图片描述

连接(join)

连接是在笛卡尔积的基础上进行连接
自然连接会去重,标记为在这里插入图片描述

在这里插入图片描述

theat连接

在这里插入图片描述

等值连接

在这里插入图片描述

自然连接

在这里插入图片描述
在这里插入图片描述

左外连接

在这里插入图片描述

右外连接

在这里插入图片描述

全外连接

在这里插入图片描述
在这里插入图片描述

除(不考)

除数S是C和D两列,所以被除数R就不用看C和D,然后R中A,B去除重复行就是{a,b},{b,d},{c,k},这三个在R中的C和D和S的C和D分别进行对比,能对应的上就保留,不能对应上就去除,例如{b,d}只能对应{e,f},不能对应{c,d},所以{b,d}就去除掉
在这里插入图片描述

真题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询效率的时候,先进行一个选择,再进行笛卡尔积
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、SQL语言

关系代数转SQL语言

选择和投影

在这里插入图片描述

笛卡尔积

在这里插入图片描述
在这里插入图片描述

自然连接

在这里插入图片描述
自然连接后,重复列去除,重新排序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
笛卡尔积和自然连接有区别。自然连接要去掉重复列再排序,笛卡尔积不用去除,是全部属性排列
在这里插入图片描述

六、查询语句

在这里插入图片描述

DDL语言(数据定义语言)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DML(数据操纵语句)

在这里插入图片描述
在这里插入图片描述

DQL数据查询语言

在这里插入图片描述

1、投影查询

在这里插入图片描述

2、选择查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、排序查询

在这里插入图片描述

4、聚合函数

在这里插入图片描述
在这里插入图片描述

5、数据分组

当条件里面有聚合函数的时候不能用where 只能用having
在这里插入图片描述
在这里插入图片描述
where后面不能跟聚合函数,having后面跟聚合函数

6、表的连接查询

在这里插入图片描述

内连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

外连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、子查询

一般子查询

在这里插入图片描述
在这里插入图片描述

相关子查询

在这里插入图片描述
在这里插入图片描述

8、查询结果的并、交、差

在这里插入图片描述
在这里插入图片描述

真题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、SQL控制语句

1、授予权限

在这里插入图片描述

grant [权限] on.to 用户 [with grant option]
with grant option   # 允许将权限赋予其他人

在这里插入图片描述

2、收回权限

在这里插入图片描述

3、真题

在这里插入图片描述
在这里插入图片描述

八、视图

对视图进行增删改查实际是对实际表进行增删改查

对视图进行操作不必满足 where 条件,但查出来的数据仍需满足 where 条件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

create view A asselect * from table_name where dept="计算机系"    # 给视图插入数据且dept不一定为计算机系insert into A values("jiali","计算机")   	# ok
insert into A values("Laptoy","软件工程")   	# ok

*[with check option]:*对视图进行操作必须满足 where 条件

create view B asselect * from table_name where dept="计算机系" 
[with check option]    								# 给视图插入数据时dept一定为计算机系,否则报错insert into B values("Laptoy","计算机")   	# ok
insert into B values("jiali","软件工程")   	# no

在这里插入图片描述

在这里插入图片描述

真题

在这里插入图片描述
在这里插入图片描述

九、索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

真题

在这里插入图片描述

十、关系模式,函数依赖,码,属性闭包计算

1、关系模式

在这里插入图片描述

2、函数依赖

在这里插入图片描述
在这里插入图片描述

非平凡的函数依赖

  • X->Y,学号->姓名,学号决定姓名,但是姓名不包含于学号(Y不包含于X),所以是非平凡的函数依赖
  • X->Y,(学号,课程号)->成绩 ,(学号,课程号)决定成绩,但是成绩不包含于(学号,课程号),所以是一个不平凡依赖

平凡的函数依赖

  • X->Y,(学号,课程号)->学号 ,(学号,课程号)决定学号,学号包含于(学号,课程号),所以是一个平凡依赖

完全函数依赖

  • X->Y,并且X的任何真子集都无法决定Y,那么Y对X完全函数依赖
  • (学号+课程号)->成绩,学号或课程号都无法单独决定成绩,则称为完全函数依赖
  • 如果不是组合函数,那么X->Y一定是完全函数依赖

部分函数依赖

  • X->Y,但X的其一真子集可以决定Y,那么Y对X部分函数依赖
  • (学号+身份证号)->姓名,学号或者身份证号都可以单独确定姓名

传递依赖:

  • X->Y,Y->Z,那么Z对X传递依赖,X->Z可以忽略(冗余),员工->岗位,岗位->工资

在这里插入图片描述

3、码

在这里插入图片描述
简单说就是若候选码中的部分码能决定函数,那么选择该部分码作为候选码
在这里插入图片描述
在这里插入图片描述

4、属性闭包计算( 无法被决定的键一定是候选键)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

额外补充

1.关系数据库系统: 支持关系模型

2.关系:一个关系=一张二维表

关系名=表名

3.元组:表的一行

4.属性:每一列的第一行,如性别

5.域:属性的取值范围,如男女

6.关系模式:对关系的描述

由关系名和其属性集合构成


码=键

7.候选码(候选键):任一候选键的任何真子集都不能唯一标识一个记录(比如在成绩表中(学号,课程号)是一个候选键,单独的学号,课程号都不能决定一条记录)

8.主码(主键):从多个候选码中选择一个作为主键

9.主属性:包含在任何候选码中的属性,如学号

10.非主属性:不包含在所有候选码中的属性,如姓名、成绩

11.外码(外键):比如在选课表中,学号不是主键,但在学生关系中它是主键

12.全码:所有属性都是候选码

13.超码:主属性和非主属性的组合,如(学号,姓名)

真题

在这里插入图片描述
无法被决定的键一定是候选键,比如本题A无法被决定,那么候选键中必定有A
主属性是指候选键包含的属性那就是主属性,例如上面的AC和AB为候选键,那主属性就有ABC
本题A无法推出所有,那么
AB->ABC
AC->ABC

所以ABC都是主属性
在这里插入图片描述
AE无法被其他键决定,所以AE必为候选关键字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、范式

在这里插入图片描述

1、1NF 第一范式(属性原子化)

在这里插入图片描述
强调属性的原子性约束,要求属性具有原子性,不可再分解。存在部分函数依赖
举例:
学生表(学号、姓名、年龄、性别、地址)。因为地址可以细分为国家、省份、城市、市区、街道,那么该模式就没有达到第一范式。
第一范式存在问题:冗余度大、会引起修改操作的不一致性、数据插入异常、数据删除异常。

2、2NF 第二范式(消除部分函数依赖)

在这里插入图片描述
第二范式,强调记录的唯一性约束,数据表必须有一个主键,并且没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。存在传递函数依赖
举例:
版本表(版本编码,版本名称,产品编码,产品名称),其中主键是(版本编码,产品编码),这个场景中,数据库设计并不符合第二范式,因为产品名称只依赖于产品编码。存在部分依赖。所以,为了使其满足第二范式,可以改造成两个表:版本表(版本编码,产品编码)和产品表(产品编码,产品名称)

3、3NF 第三范式(消除传递函数依赖)

在这里插入图片描述
第三范式,强调数据属性冗余性的约束,也就是非主键列必须直接依赖于主键。也就是消除了非主属性对码的传递函数依赖。

举例:

订单表(订单编码,顾客编码,顾客名称),其中主键是(订单编码),这个场景中,顾客编码、顾客名称都完全依赖于主键,因此符合第二范式,但顾客名称依赖于顾客编码,从而间接依赖于主键,所以不能满足第三范式。如果要满足第三范式,需要拆分为两个表:订单表(订单编码,顾客编码)和顾客表(顾客编码,顾客名称)。

说明:3NF的模式肯定满足2NF。产生冗余和异常的两个重要原因是部分依赖和传递依赖。3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,性能较好。1NF、2NF一般不适合作为数据库模式,通常需要转换为3NF或者更高级别的范式,这种变换过程称为关系模式规范化处理

4、BCNF范式(消除主属性对候选码的部分和传递依赖)

在这里插入图片描述

属于修正的第三范式,是防止主键的某一列会依赖于主键的其他列。当3NF消除了主属性对码的部分函数依赖和传递函数依赖称为BCNF。

特性:
1、所有主属性对每一个码都是完全函数依赖
2、所有主属性对每一个不包含它的码,也是完全函数依赖
3、没有任何属性完全函数依赖与非码的任何一组属性

举例:

库存表(仓库名,管理员名,商品名,数量),主键为(仓库名,管理员名,商品名),这是满足前面三个范式的,但是仓库名和管理员名之间存在依赖关系,因此删除某一个仓库,会导致管理员也被删除,这样就不满足BCNF。

5、4NF 第四范式

非主属性不应该有多值。如果有多值就违反了第四范式。4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。

举例:

用户联系方式表(用户id,固定电话,移动电话),其中用户id是主键,这个满足了BCNF,但是一个用户有可能会有多个固定电话或者多个移动电话,那么这种设计就不合理,应该改为(用户id,联系方式类型,电话号码)。

说明:如果只考虑函数依赖,关系模式规范化程度最高的范式是BCNF;如果考虑多值依赖则是4NF。

6、5NF 第五范式

第五范式属于最终范式,消除了4NF中的连接依赖,第五范式需要满足以下要求:
1、必须满足第四范式
2、表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键。
一般实际应用中不必考虑第五范式。

6、规范化步骤

在这里插入图片描述

7、判断部分函数依赖技巧

在这里插入图片描述
在这里插入图片描述

8、判断传递函数依赖技巧

在这里插入图片描述
在这里插入图片描述
其实也就是若X->Y,且WY->Z,那么其实这个WY(X)->Z,相同(伪传递率)

在这里插入图片描述

9、真题

在这里插入图片描述
对于上题中第三问解析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、关系分解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11、无损连接和保持函数依赖

在这里插入图片描述
在这里插入图片描述

12、真题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十二、数据库设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、需求分析

在这里插入图片描述

2、E-R图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

真题

在这里插入图片描述
在这里插入图片描述

3、概念设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、逻辑结构设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十三、事务管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十四、数据库备份与恢复

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十五、封锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十六、分布式数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十七、杂题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

VO、RVO、ORCA(动态避障)算法

碰撞锥(碰撞区域) 上上图中假设B物体处于静止状态,A物体沿着向量v1和v2移动,刚好能和B擦肩而过,不会发生碰撞;若V1和V2的夹角再小一点的话就一定会发生碰撞。此时会产生碰撞区域: 红线画出来…

蓝桥杯练习04学生成绩统计

学生成绩统计 介绍 随着大数据的发展,数据统计在很多应用中显得不可或缺,echarts作为一款基于JavaScript的数据可视化图表库,也成为了前端开发的必备技能,下面我们一起来用echarts开发一个学生数据统计的柱形图。 准备 开始答…

Vmware使用ubuntu报错空间不够

Vmware使用ubuntu报错空间不够 1.vmware修改2.进入镜像进行修改2.1需要下载GParted软件 1.vmware修改 这个需要把硬盘的大小进行扩展 2.进入镜像进行修改 2.1需要下载GParted软件

C++_回文串

目录 回文子串 最长回文子串 分割回文串 IV 分割回文串 II 最长回文子序列 让字符串成为回文串的最少插入次数 回文子串 647. 回文子串 思路,i j表示改范围内是否为回文串, ②倒着遍历是为了取出dp[i 1][j - 1] ③i j 只有一对,不会重复…

harmonyOS简介及背景

harmonyOS的场景模式18n: 1(入口手机)8(电脑、VR、手环、iPad、智慧屏、)–wifi—n(车载、智能家居等所有)harmonyOS不需要考虑软硬件的差异,是一个兼容N种的超级终端harmonyOS干了两件事: (1&a…

施工升降机AI数人数识别摄像机

施工现场作为一个复杂的工作环境,在施工过程中通常会有大量的人员出入,为了确保施工安全和管理效率,近年来施工升降机AI数人数识别摄像机应运而生。 这种摄像机依靠先进的人工智能技术和摄像头设备,能够实时监测和识别施工升降机内…

AIGC——ComfyUI工作流搭建、导入与常用工作流下载

工作流 ComfyUI工作流是一个基于图形节点编辑器的工作流程,通过拖拽各种节点到画布上,连接节点之间的关系,构建从加载模型到生成图像的流程。每个节点代表一个与Stable Diffusion相关的模型或功能,节点之间通过连线传递图片信息。…

2390.从字符串中移除星号

题目:给你一个包含若干星号 * 的字符串 s 。 在一步操作中,你可以: 选中 s 中的一个星号。移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。 返回移除 所有 星号之后的字符串。 注意: 生成的输入保证总是…

如何对静态IP进行测试?静态IP有什么优点?

随着互联网的普及,越来越多的人开始使用动态IP进行上网。但是在某些情况下,我们可能需要使用静态IP进行测试或特定的网络设置。本文将介绍如何获取静态IP进行测试以及静态IP的优点。 一、如何获取静态IP进行测试? 1.联系ISP(Int…

【JS】数组查重

码 /*** 数组查重* param {Array} arr 查重的数组* returns Array 返回不重复的数组 */ const noReArr arr > [...new Set(arr)]const a [12,12,3,4] console.log( noReArr(a) );效果图

031—pandas 读取解析实验室数据至DataFrame

前言 某个科研实验室在进行一项物理实现,实验仪器会输出一个 txt 文本的数据,研究人员需要从这个文本中将数据结构化才能进行进行统计分析。 在为个解析和分析过程中,他们选择了 Python 的 pandas 库来完成这些操作。我们今天来完成这这个 t…

使用AOP拦截全局请求并校验请求参数

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【数据结构】猛猛干11道链表OJ(未完待续ing)

前言知识点 链表的调试技巧 int main() {struct ListNode* n1(struct ListNode*)malloc(sizeof(struct ListNode));assert(n1);struct ListNode* n2(struct ListNode*)malloc(sizeof(struct ListNode));assert(n2);struct ListNode* n3(struct ListNode*)malloc(sizeof(struc…

蓝桥杯 2023 省B 飞机降落

首先&#xff0c;这题要求的数据量比较少&#xff0c;我们可以考虑考虑暴力解法。 这题可能难在很多情况的考虑&#xff0c;比如说&#xff1a; 现在时间是10&#xff0c;有个飞机20才到&#xff0c;我们是可以干等10分钟。 #include <iostream> #include <…

对话奇酷网络董事长吴渔夫: 迟到的游戏公司会被AI浪潮卷入海底

“ 迟到的游戏公司会被无形的 AI 浪潮卷入海底。” 整理 | 梦婕 编辑 | 云舒 出品&#xff5c;极新 2024年3月4日&#xff0c;在极新与吴渔夫的对话中&#xff0c;吴渔夫多次呼吁“全力拥抱AI”。在这场AI浪潮中&#xff0c;作为中国网游的先锋&#xff0c;他带着 25 年“中…

【web前端】<meta>标签

meta元素可以提供有关页面的元信息&#xff08;meta-information&#xff09; meta标签位于文档的头部&#xff0c;是空元素 meta元素的属性 属性值描述http-equiv expires refresh X-UA-compatible 定义HTTP协议的头部元信息名称。其中&#xff0c;expires设置网页在缓存区的…

记录一下目前为止的算法成长

每日笔记 复习曲线 间隔1天、3天、7天、15天、30天&#xff0c;然后以一个月为周期复习 2023. 12. 24 一定要每天早中晚都要复习一下 早中午每段一两道, 而且一定要是同一个类型, 不然刷起来都没有意义 11.29 开始向着面试刷题跟进! 每天刷4题左右 ,一周之内一定要是统一类…

笔记本8代i5和台式机12代i5的性能比较

一、 台式机12代i5 二、笔记本8代i5 在多核性能上差不多是2.4倍&#xff0c;所以跑大一点的Matlab或者别的程序&#xff0c;用台式机&#xff0c;后边实验室能用上超多核服务器另说。

uniapp,导航栏(切换项)有多项,溢出采取左滑右滑的形式展示

一、实现效果 当有多项的导航&#xff0c;或者说切换项&#xff0c;超出页面的宽度&#xff0c;我们采取可滑动的方式比较好一些&#xff01;并且在页面右边加个遮罩&#xff0c;模拟最右边有渐变效果&#xff01; 二、实现代码 html代码&#xff1a; <!-- 头部导航栏 --…

鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)

当路由进行切换时&#xff0c;可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 属性 名称参数参数描述…