软件设计师:数据库技术基础
概念数据模型
E-R图先了解一下,下午题会考,后续再看
结构数据模型
三级模式
外模式 -> 视图
概念模式 -> 基本表
内模式 -> 存储文件
两级映像
外模式/模式映像、模式/内模式映像
保证数据库中数据具有较高的逻辑独立性和物理独立性
关系模型中基本术语(了解)
关系代数
笛卡尔积
笛卡尔积运算如下图:
投影、选择
投影(垂直方向)、选择(水平方向)运算如下图:
连接
先计算笛卡尔积,再进行选择运算
θ连接(选择条件非不等式)
等值连接(选择条件为等式)
自然连接(选择所有公共属性相等的 并去掉公共列)
左外连接(取左右不匹配的元组 用null填充右侧)
右外连接(取左右不匹配的元组 用null填充左侧)
全外连接(左连接+右连接)
SQL 语言
-
投影:SELECT * FROM
-
选择:WHERE
-
DDL:CREATE DROP ALTER
-
DML:INSERT UPDATE DELETE
-
DQL:SELECT
-
DCL:GRANT REVOKE(WITH GRANT OPTION)
复习SQL语法,平时积累
视图
- WITH CHECK OPTION:插入时必须满足查询子句
索引
关系模式
函数依赖
完全函数依赖
-
X->Y,并且X的任何真子集都无法决定Y,那么Y对X完全函数依赖
-
(学号+课程号)->成绩,学号或者课程号都无法单独决定成绩
-
如果不是组合函数,那么X->Y一定是完全函数依赖
部分函数依赖
-
X->Y,但X的其一真子集可以决定Y,那么Y对X部分函数依赖
-
(学号+身份证号)->姓名,学号或者身份证号都可以单独确定姓名
传递依赖
X->Y,Y->Z,那么Z对X传递依赖,X->Z可以忽略(冗余),员工->岗位,岗位->工资
码
若候选码中的部分码能决定函数,那么选择该部分码作为候选码
属性闭包计算( 无法被决定的键一定是候选键)
若A->BC,则A->B,A->C
能推导出U的均为候选键,候选键中的属性就是主属性
范式
1NF 2NF 3NF BCNF 4NF 5NF
关系数据库中关系必须满足一定的规范化要求,对于不同的规范化程度可用范式来衡量。
第一范式(NF)
不能排除数据冗余和更新异常等问题。
可能存在部分函数依赖。
第二范式(消除部分函数依赖)
关系模式分解:消除部分函数依赖(复合主键才会可能出现部分函数依赖)
满足第二范式可能也产生传递函数依赖:学号->学院->院长
数据冗余、更新异常等问题
第三范式(消除传递函数依赖)
BC范式(消除主属性对候选码的部分和传递依赖)
第四范式
多值依赖
规范化步骤
做题方法
存在部分函数依赖,为1NF
先求候选码,候选码的其中一个属性能决定非属性,则存在部分函数依赖
存在传递函数依赖,为2NF
题目中一般根据伪传递率进行判断
答案:DBC A AD CB DB BD
无损连接和保持函数依赖
自然连接得到所有属性为无损连接
数据库设计
需求分析(确定系统边界)
E-R图(Entity-relationship model)
- 简单/复合属性
- 单值/多值属性
- NULL属性
- 派生属性
概念结构设计
- 属性冲突(数据类型、取值范围、数据单位)
- 命名冲突
- 结构冲突
逻辑结构设计(关系规范化)
多方增加一方实体的码
两个多方实体的码加上联系的属性
事务管理
数据库备份与恢复
封锁
- 排它锁:其它事务都无法操作
- 共享锁:其它事务可以加共享锁,只能读不能写