快速回顾
三级模式-两级映射
- 内模式 数据的存放
- 概念模式 表的体现,表之间有一些关联
- 外模式 视图
数据库设计
关系代数
并,交,差,
笛卡尔积:相乘,
投影:选列,
选择:选行,
连接
笛卡尔积:
选择和投影
连接操作:等值连接和自然连接
规范化理论
函数依赖
价值与用途
键
超键:唯一表示元组
(学号,姓名)确定 性别,学号和姓名可以为超键,但是不能为候选键,这是因为候选键中有姓名这个冗余属性
主属性:在任何一个候选关键字中出现过的属性都是主属性
非主属性:除了主属性外都是非主属性
如何求候选键实例
1:A1
2:ABCD
3:A和B AB的意思是AB的组合才能代表
范式
第一范式
不满足,划掉高级职称人数即可
第二范式
部分依赖:上图中主键是sno和cno的组合键,credit(学分)可以只由cno(课程号)确定,存在非主属性credit的部分依赖。
存在哪些问题:
- 数据冗余:会增加很多相同的credit
- 更新异常:无法修改某一个课程的学分
- 插入异常:无法增加新的课程
- 删除异常:无法删除某一个课程
解决方法:把credit剥离出来,与cno组成一个新的模式
第三范式
解决方式:增加一个dno,dname,location组成的新模式
BC范式
判断是否为BC范式:
将所有函数依赖写出来,如果所有函数左边的都是候选码,则为bc范式
候选码为sj
函数依赖:sj ->t、t->j(左边t不是候选码,不满足)
例题
模式分解
R(A,B,C)A->B B->C
拆分成 R1(A,B) R2(B,C)即保持函数依赖
以下为无损分解的样例
并发控制
基本概念
事务的四大特性
原子性:事务要么全做,要么全不做
一致性:比如以转账为例,A账户向B账户转钱,A账户余额减少,B账户余额增加
隔离性:彼此互不影响
持续性:事务的影响是持续的
并发产生的问题
1、丢失更新:A的值应该为10-5-8,此时由于并发执行A最后的值为10-8
2、不可重复读
3、读“脏”数据
这里的“脏”数据指的是临时数据,没有用的数据
封锁协议
-
共享锁(Share locks简记为S锁):也称读锁,事务A对对象T加S锁,其他事务也只能对T加S,多个事务可以同时读,但不能有写操作,直到A释放S锁。
-
排它锁(Exclusivelocks简记为X锁):也称写锁,事务A对对象T加X锁以后,其他事务不能对T加任何锁,只有事务A可以读写对象T直到A释放X锁。
数据库完整性约束
- 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
- 触发器
数据库安全
数据备份
- 冷备份:也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份下来。
- 热备份:也称动态备份,使用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
- 完全备份:备份所有的数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上一次备份之后变化的数据
海量-全部 增量-上一次
日志文件–binlog
数据库故障与恢复
数据仓库与数据挖掘
反规范化