当前位置: 首页 > article >正文

【软件设计师03】数据库系统

数据库系统

重点章节,上午下午题都有考察;规范化理论、关系代数必考

数据库模式、ER模型、关系代数与演算、规范化理论、并发控制、数据库完整性约束、分布式数据库、数据仓库与数据挖掘

1. 三级模式 - 两级映射

内模式:和物理层次数据库直接管理,负责管理数据的存储方式。

概念模式:对应数据库的“表”,根据业务应用分成若干张表,表之间有相应关联

外模式:对应数据库中的“视图”,使用户在对数据的控制上有了更多的手段,为了更灵活的处理方式。例如一些敏感信息可以进行过滤,或者在用户登录时只给予用户密码等基础信息给登录模块用,在用户信息模块不包含用户密码等;将一些字段组合成一个表整合成视图。

外模式 - 概念模式映射:即表与视图之间的映射关系

概念模式 - 内模式映射:即用户想改变存储结构,可以调整这种映射关系,而不需要修改用户应用程序。
在这里插入图片描述

2. 数据库设计过程

在这里插入图片描述

3. E-R模型

矩形-实体、椭圆-属性、菱形-联系

不会的回炉重造

4. 关系代数

主要出现在综合题里面选择题形式,一般给一个关系代数表达式找出与之等价的关系代数表达式,或者一个业务场景要完成什么职能写出关系代数表达式。

并、交、差、笛卡尔积、投影、选择、连接

并、交、差

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

s1-s2即s1中存在s2中不存在的部分

在这里插入图片描述

笛卡尔积

所有字段组成一张表,两个每一条记录之间进行排列组合;即属性数等于属性只和,记录数等于记录数之积。
在这里插入图片描述

投影、选择

是指定列的数据的操作;

是根据条件选择指定行

有时用数字来表示:Π1,2即1,2两列,σ1=No003即Sno=No003
在这里插入图片描述

连接

将相同的字段只保留一个;S1.Sno=S2.Sno;

如果没有写连接条件则是自然连接,对相同的字段进行等值过滤,相同字段保留时以左边为主保留;在下面两个关系表S1、S2中即只有Sno字段相同,根据它来判断。
在这里插入图片描述
在这里插入图片描述

5. 规范化理论 - 函数依赖

部分函数依赖:主键是两个属性的组合建,主键中一部分可以确定某个属性,则为部分函数依赖。

传递函数依赖:A -> B, B -> C 则可确定 A -> C

6. 规范化理论 - 价值与用途

在非规范化的关系模式中,可能存在的问题包括:数据冗余,更新异常,插入异常,删除异常

7. 规范化理论 - 键

超键、候选键、主键、外键

超键:唯一标识元组(一行记录),可以是多个属性,可以存在冗余属性
候选键:特殊的超键、在超键的基础上消除多余的冗余属性
主键:只能有一个
外键:其他关系的主键、表关联

图示法求候选键:

(1)将关系模式的函数依赖关系用“有向图”的方式表示

(2)找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能遍历图中所有结点,则该属性集即为关系模式的候选键。注:入度即为第一个只有指向箭头,没有被指箭头的属性

(3)若入度为0的属性集不能遍历图中所有结点(或没有入度为0的属性),则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,该集合即为候选键

在这里插入图片描述

1.A 2.ABCD 3.B

8. 规范化理论 - 范式

随着范式等级的提高,规范程度就会越高,数据表的拆分也将越来越细,而数据表拆分过细会造成性能方面的问题,因此,我们通常对范式的等级采取折中的方式,即做到三级范式。

第一范式:在关系模式R中,当且仅当所有域(列的取值范围,如性别的取值范围就是男和女)列的取值范围只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式

第二范式:当且仅当R是1NF,且每一个非主属性完全依赖(即:主键中的所有属性共同作用才能决定该属性)主键(且不存在部分依赖)时,则称R是第二范式

第三范式:当且仅当R是2NF,且E中没有非主属性传递依赖于码时,则称R是第三范式

BC 范式:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每一个依赖的决定因素必定包含R的某个候选码

如图:主属性即为构成候选键的属性,在该关系图中,ST和SJ都是候选键,因此,S,J,T三个属性都属于主属性

判断下图是否为BCNF:SJ,ST都是候选码
当SJ为候选码,存在依赖 SJ -> T
当ST为候选吗,存在依赖 T -> J,此依赖的决定因素是T不包含候选键ST,所以还没有达到BCNF

在这里插入图片描述

例题:C、D、A

在这里插入图片描述

9. 规范化理论 - 模式分解

详细解释:https://blog.csdn.net/a2272062968/article/details/116518009
在这里插入图片描述

例题:无损分解
在这里插入图片描述

10. 并发控制

在这里插入图片描述

1.一级封锁协议:事务T在修改数据R之前必须先对其加X(写锁或排他锁)锁,直到事务结束才释放。可防止丢失修改,该锁可以使得除了T以外的所有事务将不能访问R,而事务T则可以阅读或者修改R

2.二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S(读锁或共享锁)锁,读完后即可释放S锁。可防止丢失修改,还可防止读"脏"数据,该锁的作用是,所有的事务都可以访问R,但包括T在内的所有事务都不能修改R

3.三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,防止读"脏"数据与防止数据重复读

4.两段锁协议:可串行化(通过加锁解锁两个阶段使并发事务排队进行)的。可能发生死锁

11. 完整性约束

实体完整性:给数据表定义主键

参照完整性:即外键中的约束,如果表中有外键,该外键值只能为对应表中的主键内容,或者为null

用户自定义完整性:用户可以设置属性值的要求,如不能为负数

触发器:可以写脚本约束数据库,设置更复杂的约束逻辑

12. 数据库安全

在这里插入图片描述

13. 备份与恢复

备份

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

故障与恢复

在这里插入图片描述

14. 数据仓库与数据挖掘

数据仓库

在这里插入图片描述

数据仓库是一种特殊的数据库;数据库系统在刚刚建立时运行速度很快,但随着时间的推移,其存储的数据量越来越大,速度也将逐步下降,而为了提高速度,人们会优化存储,通常采用删除较久远历史数据来进行优化,而这些数据仍然具有部分价值,因此我们会专门用一个数据库来对其进行存放,而用来存放这种数据的数据库并不需要插入,添加,修改等操作,更多的操作是查询,因此我们将这种特殊用途的数据库称之为数据仓库

数据仓库的特点:
面向主题:不同与一般数据库的面向业务,数据仓库的数据是面向主题的
集成性:数据仓库会存储诸如月报表,周报表等集成式的数据,而普通数据库并不会这么干
相对稳定性:进去的数据将不会进行修改,删除等操作
反映历史变化(随着时间变化):隔一段时间会将数据导入进来

首先是从数据源中抽取,清理(使数据格式一致),装载(放到数据仓库中),刷新(定期向仓库中添加数据);数据集市即部门级的数据仓库,因为数据仓库的建立从企业全局的战略上讲具有非常大的风险,因此只建立部分数据库最后再将其整合则会降低风险,而其中部门级的数据库则称为数据集市

OLAP服务器的概念:即联机分析处理服务器,专门做分析处理工作的,最表层是数据的前端工具,前端工具最普通的如查询工具,报表工具,分析工具以及比较独特的数据挖掘工具

数据挖掘

在这里插入图片描述

15. 反规范化

由于规范化会使表不断拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增删改的速度,但会增加查询的工作了。系统需要进行多次连接,才能进行查询操作,使系统效率大大下降。

技术手段:增加派生性冗余、增加冗余列、重新组表、分割表

16. 大数据

在这里插入图片描述


http://www.kler.cn/a/5842.html

相关文章:

  • Lua语言中常用的字符串操作函数
  • ubuntu 20.04 安装docker--小白学习之路
  • el-select使用enter选中触发了另一个enter方法
  • vue3如何使用bus(事件总线)
  • el-table表格合并某一列
  • 【杂谈】-50+个生成式人工智能面试问题(一)
  • 电路板焊接技巧实践(没有电烤箱条件下)
  • 人工智能交互革命:探索ChatGPT的无限可能 第13章ChatGPT的应用场景和创新应用
  • 智慧办公抉择之——VBA与Python的选择
  • MySQL尚硅谷学习笔记之DQL语言
  • QT开发笔记(USB Bluetooth)
  • 【新2023Q2模拟题JAVA】华为OD机试 - 快递业务站
  • 使用AXI4总线控制MMCM时钟模块
  • python编程:判断一个数是否是超级素数
  • 解决AJAX在后台使用PHP,ASP,JSP返回数据出现中文乱码的问题
  • 算法训练:贪心与回溯
  • debian 10编译安装gcc 9.5.0
  • 剪枝与重参第一课:修剪结构
  • Python类和对象的命名空间
  • 简述vue生命周期,以及每个周期做的事情?
  • 简单谈谈图形界面和命令行的区别
  • 大一被忽悠进了培训班
  • Java题目训练——统计每个月兔子的总数和字符串通配符
  • 2022年河南省高等职业教育技能大赛软件测试赛项竞赛任务书
  • 使用RegQueryValueEx作为可能为REG_DWORD或REG_SZ的注册表值
  • 蓝桥杯·3月份刷题集训Day03