软件设计师——数据库系统

三级模式——两级映射

用户------外模式——外模式-概念模式映射——概念模式——概念模式-内模式映射——内模式-----物理数据库
物理数据库(往往表示为一个文件)
概念模式(相当于数据库中的表)
外模式(对应的视图)

数据库设计流程

1.需求分析---->数据流图,数据字典,需求说明书
2.概念结构设计----->ER模型(表明实体和属性,以及实体之间的关系)
3.逻辑结构设计----->关系模式(将实体转换为对应的表等)
4.物理设计

E-R模型

集成的方法:

  • 多个局部E-R图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部E-R。

集成产生的冲突及解决办法:

  • 属性冲突:包括属性域冲突和属性取值冲突。
  • 命名冲突:包括同名异义和异名同义。
  • 结构冲突:包括同一对象在不同应用中具有不同 的抽象,以及同一实体在不同局部E-R图中所包含的数据个数和属性排列次序不完全相同。

实体型和关系模式的转换
1对1的联系,1对n的联系,m对n的联系
三个以上实体间的一个多元联系

关系代数

集合运算(并,交,差)

  • 并:表示将两个表合并在一起,将共同的列合并在一起,形成一张新表

  • 交:表示将两个表交在一起,将不同的行组合起来,形成新的关系,形成一张新表

  • 差:将公共部分去掉,形成新表。(S1-S2,将S1中和S2共有的部分去除,留下S1中剩余部分形成一张新表)

  • 笛卡尔积:(S1xS2)即将S1中所有的行与S2中所有的行做自由组合形成新的表,包括重复的列。

  • 投影:(ΠSno,Sname (S1) 表示只选择S1表中的no和name列两列作为一张新的表)

  • 选择:(aSno=No003 (S1) 表示选择S1表中no=No003 的行作为一张新的表)

  • 联接:在笛卡尔积上加了一个类似于选择的条件,同时重复的列只保留一个。

规范化理论——函数依赖

设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X->Y。

部分依赖:
例如:(学号+课程名)->姓名 ,同时单独用 学号也能确定姓名
体现在,主键是两个属性的组合键,主键当中某个部分能确定另一个属性。

传递函数依赖:
例如:A->B->C 能推到出可以根据属性A确定出属性C(注意:B不能确定A,否则A和B等价)

规范化理论——价值与用途

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

规范化理论——键
  • 超键 ---->唯一标识元组
  • (消除多余属性)
  • 候选键
  • (任选一个)
  • 主键
  • 外键 ---->其他关系的主键
规范化理论——求候选键
  • 将关系模式的函数依赖关系用“有向图”的方式表示
  • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历途中所有节点,则该属性集即为关系模式的候选键。
  • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。
规范化理论——范式

目的:逐步优化,以解决以下三个问题:插入异常,删除异常,数据冗余

  • 1NF (属性值都是不可分的元子值)
  • (消除非主属性对候选键的部分依赖)
  • 2NF
  • (消除非主属性对候选键的传递依赖)
  • 3NF
  • (消除主属性对候选键的传递依赖)
  • BCNF
规范化理论——第一范式

第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
例如:高级职称,教授,副教授就不能同时存在。
第二范式(2NF):当且仅当R是1NF,且每个非主属性完全依赖主键(不存在部分依赖)时,则称R时第二范式。
例如:主键是学生学号和考试科目,得到成绩。
第三范式(3NF):当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R时第三范式。
例如:根据学号能得出学生姓名,班级,宿舍。

规范化范式——BC范式

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

规范化范式——模式分解

1.保持函数依赖分解
设数据库模式p={R1,R2,…,Rk } 是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri 上的FD集是Fi 。如果{F1,F2,…,Fk }与F是等价的(即相互逻辑蕴含),那么称分解p保持FD
例: R(A,B,C) 可以拆分为 R1 (A,B) 和 R2 (B,C)

2.无损分解
什么是有损,什么是无损?
有损:不能还原。 无损:可以还原。
例如:将一个模式R分成多个R后,能再将多个R得出之前的模式R,则是无损的。反之为有损。
例:
思考题:
有关系模式:成绩(学号,姓名,课程号,课程名,分数)
函数依赖:学号->姓名,课程号->课程名,(学号,课程号)->分数
若将其分解为:
成绩(学号,课程号,分数)
学生(学号,姓名)
课程(课程号,课程名)
即当前分解为无损分解,能通过分解后的表再求出之前的关系模式表。

无损联接分解:指将要给关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。

并发控制——基本概念

事务:把多个操作封装起来看成一个整体。

  • 原子性:
  • 一致性:事务之前和之后是一致的状态(例如转账的例子,钱从一个地方转到另一个地方)
  • 隔离性:事务之间独立进行,互不影响。
  • 持续性:事务执行之后的影响或结果是持续的。

并发产生的问题(丢失更新,不可重复读问题,“脏”数据的读出)
(解决方案)
封锁协议(S封锁,X封锁)(一级封锁协议,二级封锁协议,三级封锁协议,两段锁协议)
死锁问题(预防法,死锁的解除法)

并发控制——封锁协议

一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直至事务结束才释放。(可防止丢失修改。)
二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。(可防止丢失修改,还可防止读“脏”数据。)
三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。(可防止丢失修改,防止读"脏"数据与防止数据重复读。)
两段锁协议。(可串行化的,可能发生死锁。)

数据库完整性约束

1.实体完整性约束
例如:在数据库中对表建立主键(约束的即为主键,不能为空,不能重复)
2.参照完整性约束
(外键的完整性约束)
例如:员工表中的部门号,部门号设置了参照完整性的约束,必须保证输入的是正确部门号或者为空。
3.用户自定义完整性约束
例如:用户可以自定设置值的情况,比如可以自行设置年龄不能为负数,只能是1~200之间的数。

触发器:可通过脚本来约束数据库设计中的一些要求。

数据库安全

措施:
1.用户表示和鉴定(身份认证)
最外层的安全保护措施,可以使用用户账户,口令及随机数检验等方式。
2.存取控制
对用户进行授权,包括操作类型(如查找,插入,删除,修改等动作)和数据对象(主要是数据范围)的权限
3.密码存储和传输
对远程终端信息用密码传输
4.视图的保护
对视图进行授权
5.审计(通过日志的方式记录操作过程)
使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据备份

数据备份可以分为冷备份和热备份两个大的类别。
冷备份:也称为静态备份,是将数据库正常关闭,在静止状态下,将数据库的文件全部备份(复制)下来。
热备份:也成为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
同时冷备份的操作复杂性比热备份低的多。
优缺点:
冷备份
优点:非常快速的备份方法(只需复制文件);容易归档(简单复制即可),容易回复到某个时间点上(只需将文件再复制回去),能与归档方法相结合,做数据库"最佳状态"的恢复,低度维护,高度安全。
缺点:单独使用时,只能提供到某个时间点上的恢复,在实施备份的全过程中,数据库必须要做备份而不能做其他工作,若磁盘空间有限只能复制到磁带或其他外部存储设备上,速度会很慢,不能按表或按用户回复。
热备份
优点:可在表空间或数据库文件级备份,备份时间短,备份时数据库仍可使用,可达到秒级恢复(恢复到某个时间点上),可对几乎所有数据库实体做恢复,恢复时快速的。
缺点:不能出错,否则后果严重,若热备份不成功所得结果不可用于时间点的恢复,困难于维护,所以需要特别小心,不允许“以失败告终”。

备份的三种方式:
1.完全备份:备份所有数据
2.差量备份:仅备份上一次完全备份之后变化的数据。(⭐⭐⭐)
3.增量备份:备份上一次备份之后变化的数据。
例如:某一个备份流程: 完-增-增-增-差-增-增-完
恢复的时候需要先恢复上一次的完全备份,然后按时间恢复对应的增量备份或差量备份。

日志文件:事务日志时真丢数据库改变所做的记录,他可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。

数据库故障与恢复

故障类型分类
1.事务本身的可预期故障——本身逻辑——在程序中预先设置Rollback语句
2.事务本身的不可预期故障——算术溢出,违反存储保护——由DBMS的恢复子系统通过日志,撤销事务对数据的修改,回退到事务初始状态
3.系统故障——系统停止运转——通常使用检查点法
4.介质故障——外村被破坏——一般使用日志重做业务

数据仓库与数据挖掘

目前广泛运用于BI(商业智能)
数据库是根据业务需求,设计对应的表结构,建立对应的数据库。(业务系统一般都离不开数据库,例如:收银员系统。一般在使用的过程中,在数据累计的越来越来,系统会运行得越来越慢,优化的主流做法是删除用不上的历史数据)
针对这种大量历史数据(主要用于企业决策使用)提取出来,存为数据仓库。

数据仓库的特点:
1.面向主题(而数据库是面向应用的)
2.集成的
3.相对稳定的(非易失的)
4.反映历史变化的(随着时间变化)

数据挖掘流程
1.数据源
(抽取,清理,装载,刷新)
2.数据仓库->数据集市
3.OLAP服务器(OLAP联机分析处理服务器)
(服务)
4.前端工具(查询工具,报表工具,分析工具,数据挖掘工具…)

反规范化技术(也叫逆规范化技术)

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

技术手段:
1.增加派生性冗余列
2.增加冗余列(比如成绩表,为了直接查到某个学生某个成绩是多少,再里面加入学生姓名和课程名,即可直接获取到所需的数据,减少查多个表的操作)
3.重新组表(依据查询效率的原则进行重新组表)
4.分割表(也是从效率的角度分为了垂直分割和水平分割)

大数据

大数据:就是对海量数据进行处理的一项技术。
特点:数据量极大,处理速度要快,数据要有多样性又要有一定的价值。
“4V”:Volume数据量,Velocity速度,Variety多样性,Value值
通常使用是对于很多不同类别的数据进行联合分析得到一些结论。
实例:百度运用大数据分析用户平时搜索的内容进行推送类似的广告等等。

大数据与传统数据的区别:
传统数据:数据量为GB或TB级,对现有数据进行的分析与监测,硬件平台为高度安服务器。
大数据:数据量为PB级或以上,进行深度分析(关联分析,回归分析),硬件平台为集群平台

大数据处理系统应该具有的重要特征

  • 高度可扩展性
  • 高性能性
  • 高度容错
  • 支持异构环境(分析快,成本低,通过和云计算结合)
  • 较短的分析延迟
  • 易用且开放的接口
  • 较低成本
  • 向下兼容性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MelanceXin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值