数据库总结及考试

数据库总结及考试
一、 学习内容
学习所用书籍《数据库系统概念》英文版第六版,网上有配套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时查询条件的属性名不知道写什么,重命名操作有点烦,就没用,瞎写的。

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值