软件设计师之数据库系统万字大总结(莽起来)
软件设计师之数据库系统1.数据库模式1.1三级模式-两级映射1.2数据库设计过程2.ER模型3.关系代数与元组演算4.规范化理论4.1函数依赖4.2 价值与用途4.3 键4.4 求候选键4.5 范式4.6 模式分解5.并发控制5.1 基本概念6.数据库完整性约束7.分布式数据库7.1 数据库安全7.2 数据备份7.3数据库故障与修复8.数据仓库与数据挖掘8.1数据仓库的特点8.2数据仓库的的建立8
软件设计师之数据库系统
1.数据库模式
1.1三级模式-两级映射
- 三级模式
- 模式: 模式又称概念模式或逻辑模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。
- 外模式:又称子模式;它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行处理。外模式反映了数据库的用户观(视图、查出数据的表)。
- 内模式:又称存储模式;它是数据库中全体数据的内部表示或底层描述,它描述了数据在存储介质上的存储方式及物理结构(顺序存储、按照B树结构存储还是按hash方法存储),对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。
- 两级映射
- 外模式一模式映射:定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变。
- 模式一内模式映射:定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式一内模式映射,就能保持模式不变,因此应用程序也可以保持不变。
1.2数据库设计过程
2.ER模型
方框表示实体,椭圆表示属性,菱形表示联系。
一般都是先画局部的,然后再集成全部的ER图
- 集成的方法:
- 多个局部ER图一次集成
- 逐步集成,用累加的方式一次集成两个局部ER
- 集成产生的冲突及解决办法:
- 属性冲突:包括属性域冲突和属性取值冲突
- 命名冲突:包括同名异议和属性取值冲突
- 结构冲突:包括同一对象在不同应用中具有不用的抽象,以及同一实体在不同局部ER图中所包含的属性个数和属性排列次序不完全相同 。
联系:
- 一个实体型转换为一个关系模式
- 1:1联系:一个实体转成一个关系模式,把联系放在任何一个实体记录下来
- 1:n联系:每个实体要转成一个单独的关系模式,可以把联系单独转成一个关系模式,这个做法不是必须的。也可以把联系放到多的那一端。
- m:n联系:每个实体要转成一个单独的关系模式,联系也要转成一个关系模式。
- 三个以上实体间的一个多元联系
3.关系代数与元组演算
主要以选择题出现
并,交,差,笛卡尔积,投影,选择,联接
并:把两个内容合在一起,并将一样的内容只显示一次
交:把两个内容相同的,显示出来。
差:我有的你没有
笛卡尔积:前面的几个字段来自于S1,后面的几个字段来自于S2。把参与笛卡尔积的属性一一列出来。记录的产生是S1的第一条记录要和S2的所有记录进行一次组合形成一条组合。
笛卡尔积不会把相同的部分去掉
投影和选择:
投影是选列的操作,
选择的是选行的操作
联接:
联接会把相同的部分去掉
等值联接:S1 Sno = S2 Sno
4.规范化理论
4.1函数依赖
设R(U)是属性U上的一个关系模式,X和Y是U的子集,r是R的任一关系,如果对于r中的任意两个元组u,v,只要由u[Y] = v[Y],则称X函数决定Y,或成Y函数依赖于X,记为X->Y。
4.2 价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。
4.3 键
超键和候选键的区别:超键可能存在冗余属性,候选键是一定没有冗余属性的。
候选键也是能够唯一标识元组的。
候选键与主键的区别:候选键可以有多个,主键只能有一个
外键:别的关系的主键。
4.4 求候选键
图示法
- 将关系模式的函数依赖关系用”有向图“的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历图中所有结点,集合为候选键
A1 ABCD B
4.5 范式
-
主属性:包含在候选码中的属性,可以起到唯一标识的作用。
非主属性:不包含在任何一个候选码中的属性。
-
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
-
第二范式(2NF):当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式
- 比如说,学号和课程号(两个主键)可以确定成绩和学分,这里面存在着课程号可以确定学分这个以来。
- 会发生数据冗余,更新异常,插入异常,删除异常。
- 解决方式:将课程号和学分提取出来作为一个新的关系。
-
第三范式(3NF):当且仅当R是1NF,且R中没有非主属性传递依赖码时,则称R是第三范式。
- 单主键是不存在部分依赖的说法
- 如果存在数据冗余,更新异常,插入异常,删除异常这些问题,还是将存在的问题的直接提取出来形成新的范式
-
BC范式(BCNF):设R是一个关系模式,F是他的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
-
例题:
- 如图可以看到SJ->T,ST->J。相当于遍历完所有的结点。这样话是满足第2,3范式的,因为没有部分依赖。
- 但是不满足BC范式,因为T->J,但是T不是候选码。
-
消除部分依赖,这个必须是在主键是多个属性的组合键这个场景下。
4.6 模式分解
-
第一种:经过多种转换,把拆分的表进行多种操作还原称原来的表。
-
第二种:
- 三个算式结果出来后,只要两个中间有一个是有依赖关系就证明是无损的。这种方法只能限制于分解称两个的,三个及三个以上该方法不适用。
5.并发控制
5.1 基本概念
- 事务:把多个操作封装起来,将多个操作看成一个整体进行操作
- 原子性、一致性、隔离性、持续性
- 并发产生的问题:丢失更新、不可重复读问题、“脏”数据的读出
- 封锁协议:要解决并发产生的问题这就引出了封锁协议。
- S封锁:共享锁,又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
- X封锁:排他锁,又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
- 一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
- 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏“数据
- 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读”脏“数据与防止数据重复读。
- 两段锁协议:可串行化的。可能发生死锁。
- 死锁问题:预防法、死锁的接触法
示例:
6.数据库完整性约束
三种:(提升数据可靠性)
- 实体完整性约束:使用数据库的时候给数据表定义主键,实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。
- 参照完整性约束:外键的完整性约束 。其实就是外键
- 用户自定义完整性约束:用户可以设定这个属性,这个值的情况。针对某一具体关系数据库的约束条件称为用户定义的完整性,它反映某一具体应用所涉及的数据必须满足的语意要求。
触发器:可以写脚本来约束数据库数据的要求。
7.分布式数据库
7.1 数据库安全
措施 | 说明 |
---|---|
用户标识和鉴定 | 最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式 |
存取控制 | 对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限 |
密码存储和传输 | 对远程中断信息用密码传输 |
视图的保护 | 对视图进行授权 |
审计 | 使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来 |
7.2 数据备份
- 热冷备份概念:
- 冷备份也称静态备份,是将数据库正常关闭,再停止状态下,将数据库的文件全部备份(复制)下来。
- 热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库种的数据文件备份出来。
- 优缺点
- 根据备份数据的量来分为:
- 完全备份:备份所有的数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上一次备份之后变化的数据
- 在下面的概念中,海量是全部的,静态就是不运行状态,动态就是运行状态,转储就是换个地方储存,
- 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库
- 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
- 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库
- 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。
- 日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结构保存在独立的文件中
7.3数据库故障与修复
故障关系 | 故障原因 | 解决办法 |
---|---|---|
事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
事务本身的不可预期故障 | 算术溢出、违反存储保护 | 由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态 |
系统故障 | 系统停止运转 | 通常使用检查点法 |
介质故障 | 外存被破坏 | 一般使用日志重做服务 |
8.数据仓库与数据挖掘
8.1数据仓库的特点
- 面向主题
- 集成的
- 相对稳定的(非易失的)
- 反映历史变化(随着时间变化)
8.2数据仓库的的建立
8.3 数据挖掘方法分类
- 方法:
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
- 分类
- 关联分析:挖掘出隐藏在数据间的相互关系
- 序列模式分析:侧重点是分析数据间的前后关系(因果关系)
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程
8.4 反规范化技术
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增减查询的工作量。系统需要多次连接,才能进行查询操作,使得系统效率大大下降。
- 技术手段
- 增减派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
以牺牲空间和规范化为代价提高一些查询的速度
8.5 大数据
对海量数据处理的一些相关技术
数据量大,速度要快,要有多样性,要有一定的价值。
- 传统数据与大数据的对比
比较难度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
-
大数据处理系统应该具有的重要特征
-
高度可扩展性
-
高性能
-
高度容错
-
支持异构环境
-
较短的分析延迟
-
易用且开放的接口
-
较低成本
-
向下兼容性
-
以上是在学习时做的笔记,后续在做题过程中可能会继续补充

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)