第三章数据库系统
第三章数据库系统
第一节、三级模式
ER图这里ER图下午会考大题15分
1、三级模式两层映射
三级模式:
外模式(视图级别):用户模式 用户和应用程序打交道,让用户操作数据库这样的东西,但只能看到接口。操作数据的逻辑,不需要管如何存储
【模式】概念模式(表级):存储模式,物理层,如何存储。一般情况下形成的是表结构。
内模式(文件级)
两层映射:
位模式和模式的映射
模式与内模式的映射
这两层映射的好处是:让程序与我们的数据分离
数据的独立性
数据的物理独立性和数据的逻辑独立性
数据在物理结构上发生了变化,因为我们有两层映射,这个时候不需要去修改上层的结构。对用户来说他们不知道已经发生了改变
当逻辑结构改变的时候,只需要改变位模式和模式的映射就可以了
2、数据库设计过程
数据流图也是下午一个大概15分的题,表明了数据从哪来到哪去的
数据字典是对数据流图的一个补充说明。
需求分析 产出:需求说明书、数据字典、需求说明书
概念结构设计 产出:ER模型
逻辑结构设计 产出:ER模型转化为关系模式,就开始设计相应的表
第二节 ER模型
3、ER模型
表示形式:
长方形 实体 /椭圆形 属性/菱形 联系
1:1联系
联系是产生于两个实体之间
对于1:1联系,我们使用两个关系模式就可以将其表示清楚
对于1:1的联系,可以并入到任何一端
1:n联系
一个客户有多个账户,一个账户对应多个客户
m:n联系
一个学生对应多门课程,一门课程对应多个学生
第三节关系代数
4、关系代数
并、交、差、笛卡尔积、投影、选择、联结
差主要要注意以谁为参照
做笛卡尔积 S1×S2
自然联结:去掉重复的部分
做完笛卡尔积之后,先做选择,选择出来行,然后再做投影,能够更简化操作。
第四节规范化理论
5、规范化理论
数据冗余:一些重复的信息。可以引起后面的三种异常
修改异常
插入异常
删除异常
解决方法:拆分表结构
部分函数依赖 : 候选码中的部分可以推导出非主体
传递函数依赖:a推出b,b推出c。推出a推c。有一个传递关系
5、规范化理论 键
候选键 :唯一标识元组(记录),且没有冗余
主键:任选一个,从任选键里面随便选一个
外键:其他关系的主键
5、规范化理论 求候选键
寻找入度为0的结点,并且可以遍历图中所有结点
5、规范化理论 范式
将教授和副教授单独作为属性
(学号A,课程号B)=>成绩 C
(课程号B)=>学分D
有非主属性 D部分依赖于主属性B,所以不满足第二范式。(需要没有部分函数依赖)
解决:拆分
学生表(学号,课程号,成绩)
课程(课程号,学分)
第三范式在第二范式的基础上去掉了传递函数依赖
学号=>姓名 学号=>系号
系号=>系名 系号=>系位置
学号=>系名
解决办法:拆表
(学号 姓名 系号)
(系号 系名 系位置)
每个依赖的决定因素中必定包含某个候选码
6、规范化理论 模式分解
如果有一行属性上面全部都是打钩的就说明是无损分解
公式法只适用于两个关系模式,这样才适用于公式法
两个关系模式做交集,能够推导出他们的差
第一个
第二个
第五节SQL语言
7、SQL语言 建表
7、SQL语言 修改与删除表
7、SQL语言 查询
7、SQL语言 增删改
drop 和 delete
1、触发条件不同
delete语句是数据库操作语言(dml),这个操作会放到rollbacksegement中,在事务提交后生效,执行时触发相应的trigger。
drop是数据库定义语言(ddl),操作立即生效,原数据不放到rollbacksegment中,不能回滚,操作不触发trigger。
2、用法不同
delete只删除内容、释放空间但不删除定义,而delete即可以对行数据进行删除,也可以对整表数据进行删除。
drop是删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。
3、执行速度不同
drop的执行速度大于delete。
delete的执行速度小于drop。