数据库总结及考试

数据库总结及考试
一、 学习内容
学习所用书籍《数据库系统概念》英文版第六版,网上有配套PPT,上课不用中文版也可以。
学习时共分为以下章节(可能对应书中多个章节):
1) 简介
2) 关系型数据库简介+关系代数
3) 初级SQL语言
4) 中级SQL语言
5) ER模型(关系型数据库设计)
6) 关系规范化理论(关系数据库设计)
7) 事物
8) 锁机制
9) 其他:触发器、游标等
1. 第一章 简介:对应书第一、二章
※DBMS的概念
※DBMS的分层(逻辑、物理、视图)及相关概念(物理纲要、逻辑纲要、物理独立性等)
文件系统的缺点
数据库类型(关系型数据库、ER模型、面向对象类型的数据库、半结构化型等,主要学习关系型数据库,ER模型用于其设计)
※关系型数据库概念理解、如何创建表
※DDL、DML语言
※语言分类
※设计方法简介(ER模型+关系规范化,其余如XML简介)
数据库引擎(事务管理、存储管理、查询过程)
数据库的用户
数据库体系结构(并行处理器、C-S、集中式、分布式等)
其中重点在于①-⑧;
2. 第二章 关系型数据库介绍+关系代数(对应书章节:6,全是重点
关系、关系模型、如何在关系模型中描述对象?、如何描述关系?、实体表、联系表、属性、原子性的概念
空值null、关系表示R=(A1,A2,…,An)、数据库的存储是无序的
KEY:主键、外键、候选码、超码
查询语言分类
关系代数基本运算(6个 select、project、union、set difference、cartesian product、rename)基本表示和含义和注意事项
附加操作:求交集、自然链接、除法运算、赋值运算;
基本要求,注意事项等
扩展的关系代数操作(广义投影、聚集函数、等值连接、外链接、左外链接、右外连接、全外连接)
删除、修改、插入对应语句
3. 第三章 初级SQL 对应书:3,全是重点
DDL、DCL、DML定义
DCL语言基本操作(开关机、数据恢复和备份等)
DDL语言(create定义对象、结构,drop、alter(慎用))基本语法
数据库数据类型(char 、varchar、numeric等)
完整性约束(非空约束、唯一性约束、主键约束、外键约束)
DML语言 select基本语法
select 字句(distinct、all、*、常量、四则运算进行投影)
from子句(等值连接,无等值连接条件相当于做笛卡尔乘积)
where子句(普通条件+等值连接条件)
重命名 as(用于自己和自己的比较/参考,当然也可以用子查询实现,select后as是真实存在的、from后as 只是临时的)
字符串操作(模式匹配like % _ escape、字符串连接||、变大写upper、变小写lower、求长度len、求子串substr)
元组排序(order by asc /desc,不能对中间结果排序)
where子句中比较:>、<、between and、元组比较
union、union all、except、except all、intersect、intersect all;
空集与三值逻辑
聚集函数(group by)
HAVING判断,对中间结果判断必须用HAVING、与where的区别
子查询在select、from、where中不同意义,子查询先执行;在where子句中的子查询之后的操作(区分some、all):>、<、exits、in、not in、unique;
除法操作怎么用SQL语句表示(select X from T1 where not exits(
(select Y from T2 where 可省略 )except (select Y from T where T1.X=T.X))
其中,T为被除数,T2为除数,T1为结果;
with创建临时视图,create创建永久视图;
标量子查询
删除语句delete
插入语句insert into
更新语句update;两种写法+其中一种注意更新顺序
4. 第四章 中级SQL (全是重点)对应书:4
关系链接区分
视图定义、创建视图、视图展开、什么样的视图才可以更新、物化视图
约束(增加check约束、如何创建DOMAIN?、UNIQUE约束实现超码、候选码定义、外键约束及级联更新、级联删除语法
数据类型+如何定义新类型?TYPE 与DOMAIN的区别
大对象类型数据(存放文件、图片、音频到数据库)
索引定义、创建索引、何时创建索引?、索引不对非索引项的查询有帮助、唯一索引、聚簇索引;
授权:grant、角色、权限;创建视图必须先有对于表的查询权限、视图必须可以更新才可以把更新权限给别人、授权的同时把授权的权利给出用with grant option,;
收回:revoke,级联收回;
5. 第五章 ER模型 (全是重点)对应书:7
实体集
联系集
联系集的度
映射级数
属性分类和存储
由多值属性引入弱实体集
ER图(实体集、联系集、弱实体集、属性、全参与、角色、映射级数表示)
根据ER图和映射基数得到关系模式
非二元联系集分解后再处理、弱实体集变成强实体集再处理
特殊化ISA,一般化;
聚集
根据实际需求确定属性、集合、映射基数;
6. 第六章 关系规范化设计 (全是重点)对应书:8
引入
第一范式
规范化理论目标(是否有合理结构和无损链接)
函数依赖及作用
平凡函数依赖
函数依赖闭包F+;
第二范式
BCNF及分解
第三范式
候选码计算
ARMSTRONG公理及推论
属性闭包及计算
正则覆盖Fc及计算
无损链接定义及判断
保持依赖定义及判断
BCNF分解算法(分解后一定无损链接,未必保持依赖)
第三范式分解算法(分解后必是保持依赖和无损链接)
设计目标:BCNF/3NF?保持依赖?等
7. 第七章 事物 对应书:14
事物概念
※事物属性ACID及含义
※事物状态含义及相互转换
事物调度定义
※并行化调度、串行化调度、数据一致性
※冲突可串行化
视图可串行化
并发控制:可恢复调度、不可恢复调度、级联回滚、无级联回滚;
SQL中一致性控制级别
事物的开始与结束
8. 第八章 锁机制 对应书15章部分内容

排它锁、共享锁
封锁协议:※两阶段锁协议、※严格两阶段锁协议、※强两阶段锁协议、长锁、短锁、排它锁和共享锁转换、(基于图和树的封锁协议);
多粒度锁:意向锁、共享意向锁、排他意向锁、共享排他锁;
※相容矩阵
※死锁处理:可抢占性、不可抢占型;
时间戳
超时机制
※死锁检测:有向图
死锁恢复:回滚一个或多个事物
9. 其他:
※其他程序设计语言操作数据库步骤(1-5)
过程和函数
触发器
游标
常用对象
二、 上机课
上机课共3次课,每次一下午,主要就是根据书上学生管理系统(包括选课什么的)的ER图,进行select的练习,会对书上的ER图进行稍微修改;
查询不难,比较麻烦的是插入很多条数据,比较关键的是设计数据库,定义表结构,大概用了一下午时间根据题重新设计表及表之间的关系;一上午加上下午两个多小时插入数据;下午加晚上加第二天上午进行查询;第二天下午整理报告。
三、 考试
考试分为简答、分析、画ER图、用关系代数操作、用SQL语句操作、BCNF判定及分解、第三范式判定及分解、计算正则覆盖/候选码(这三个属于计算,不会全考,每年选几个考)、冲突可串行化判断。

其中简答、分析答出主要意思即可  

我们考试好像是90满,10个简答,4/5个分析,计算2个,ER图一个,SQL和关系代数查询一个

考试大题主要是①画ER图+转化成表的属性,标出主键外键;

②优先图判断是否冲突可串行化

③给一些关系模式和函数依赖,判断是否满足3NF/BCNF,不满足分解,或求正则覆盖、属性闭包、候选码。

我16级出的是计算属性闭包(结果是R,对第二问是个提示),第二问是按照3NF分解,关键在于求正则覆盖(比平时难一点),按算法求即可,最后正则覆盖是3个(C->ADEFGH、AG->C,EG->C,后面两个前面的属性不太记得了),最后分解后的结果是R1=(ACDEFGH) R2=(BC);

④给几个表,用关系代数和SQL语句查询,唯一一个不太确定的是有一个要用关系代数的聚集函数比较,看是不是大于500,这个东西不知道怎么比,好像关系代数中聚集函数是会把原来的属性列保留,新增一个聚集函数的属性列,但是叫什么名字不知道,写select时查询条件的属性名不知道写什么,重命名操作有点烦,就没用,瞎写的。

出了几个我不太会的,比如:为什么要使用强两阶段锁协议和严格两阶段锁协议,如何降低数据冗余度,证明自然链接在无同名属性列时,做的是笛卡尔乘积(这怎么证?我随便写了点)等

猜你喜欢

转载自blog.csdn.net/qq_38941327/article/details/80851592
今日推荐