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

news2025/4/14 23:12:49

一、数据模型的分类

在这里插入图片描述

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 as
	select * 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 as
	select * 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.coloradmin.cn/o/1531821.html

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

相关文章

漏洞发现-漏扫项目篇Poc开发Yaml语法反链判断不回显检测Yaml生成

知识点 1、Xray&Afrog-Poc开发-环境配置&编写流程 2、Xray-Poc开发-数据回显&RCE不回显&实验室 3、Afrog-Poc开发-数据回显&RCE不回显&JDNI注入 章节点: 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】💻🔍 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程,动态展现了三连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档…

防火墙互联技术

1.防火墙基础配置 2.配置防火墙远程管理 3.配置防火墙管理员角色 4.配置防火墙系统时钟 抓包

自动化测试报告生成(Allure)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告…

备战蓝桥杯D33 - 真题 - 松散子序列

题目描述 解题思路 ps:思路是我看了大佬的题解后自己的理解,自己给自己捋清楚思路。 1.设置输入,将字符串输入 2.因为输入的是字符,但要找出字符的最大价值,所以先将字符串转化成对应的数值。 这时候就要用到ord函…

基于SSM的宿舍管理系统的设计与实现(JSP,MySQL)

摘 要 随着社会发展、信息技术的普及,人们日常管理工作也发生了巨大的变化。信息化技术之渗透各行业的方方面面。学生宿舍管理作为校园管理工作的重要一环,不仅关系到学生自身的确切利益,同时也是对校园管理工作重大考验。近来年由于在校学生…

YOLOv9改进策略:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

💡💡💡本文改进内容: YOLOv9如何魔改卷积进一步提升检测精度?提出了一种卷积的变体,称为DSConv(分布偏移卷积),其可以容易地替换进标准神经网络体系结构并且实现较低的存…

MISC:常见编码

一、字符编码 1.ASCII码 使用指定7位或8位二进制数组合表示128-256种可能。 常⻅考点:解题过程中给出十进制或十六进制的连续数值。 进制转换工具: ASCII text,Hex,Binary,Decimal,Base64 converter (rapidtables.com) 2.Base64编码 ASCII编码以8个比特…

RISC-V架构的三种特权模式如何切换

1、RISC-V的三种特权模式 特权模式功能描述机器模式(M-mode)具有最高特权等级,具有访问所有资源的权限,通常运行固件和内核用户模式(U-mode)权限要比M模式低,通常是用来运行操作系统内核管理员…

sqlserver列出表的所有字段名

1、纵向列出所有字段 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME tablename;2、横向列车所有字段,以‘,’分隔 SELECT STUFF((SELECT , column_nameFROM information_schema.columnsWHERE table_name tablenameFOR XM…

C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用

上次介绍完多态后:C进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) 也是要开始继续学习了 文章目录 1.二叉搜索树1.1概念1.2二叉搜索树特性1.3 二叉搜索树的操作 2.模拟实现2.1项目文件规划2.2基本结构2.3各种接口、功能…

【C语言】—— 指针三 : 参透数组传参的本质

【C语言】—— 指针三 : 参透数组传参的本质 一、数组名的理解二、使用指针访问数组2.1、指针访问数组2.2、[ ] 的深入理解2.3、数组与指针的区别 三、一维数组的传参本质四、数组指针变量4.1、数组指针变量是什么4.2、 数组指针的初始化 五、二维数组传参的本质 一…

DML - 增删改(insert into,delete,update)

引言:对比DB / 表结构 : create , drop , alter 本次记录 数据操作 语言: 1.进入 hive 数据库,再打开 ryx1 表 2. insert select 3. update select 4. delete select

外卖项目:使用AOP切面编程实现增删改查的操作日志记录(debug断点调试)

文章目录 一、问题描述二、问题分析三、断掉调试四、代码展示 一、问题描述 需求:将项目中增、删、改相关接口的操作日志记录到数据库表中。 操作日志信息包含: 操作人、操作时间、执行方法的全类名、执行方法名、方法运行时参数、返回值、方法执行时…

武汉星起航:专业团队引领,经验与创新共铸跨境电商新辉煌

在竞争激烈的跨境电商市场中,武汉星起航电商公司凭借其专业的运营团队和多年的行业经验,成功脱颖而出。这支拥有丰富经验的团队,不仅深刻了解跨境电商市场的动态,更通过持续创新和个性化解决方案,为合作伙伴提供了强有…

STM32CubeMX学习笔记26---FreeRTOS互斥量

一、互斥量简介 1、互斥量用于互锁,可以充当资源保护的令牌,当一个任务希望访问某个资源时,它必须先获取令牌,当任务使用完资源后,必须返还令牌,以便其他任务可以访问该资源。 2、互斥量一般用于临界资源…

GPT-4引领AI新纪元,Claude3、Gemini、Sora能否跟上步伐?

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

【XXL-JOB】分布式任务调度解决方案,XXL-JOB入门

目录 1 概念2 快速入门2.1 启动xxl-job-admin2.2 创建一个新的定时任务2.3 在调度中心新增定时任务 3 详细介绍3.1 新建执行器3.2 创建任务3.3 其他概念3.3.1 路由策略3.3.2 任务运行模式(BEAN、GLUE)3.3.3 阻塞处理策略3.3.4 子任务3.3.5 任务超时时间 3.4 高级任务用法3.4.1 …

源码编译部署LAMP

编译部署LAMP 配置apache [rootzyq ~]#: wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz --2023-12-11 14:35:57-- https://downloads.apache.org/apr/apr-1.7.4.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104…

如何用 C++ 部署深度学习模型?

深度学习模型通常在诸如Python这样的高级语言中训练和验证,但在实际生产环境部署时,往往需要更高的执行效率和更低的资源占用。C作为一款性能卓越、低级别的编程语言,是部署深度学习模型的理想选择之一。本文将详细介绍如何在C环境下加载和运…