"高级"数据库小结

刚刚考完高级数据库,这里有多高级等后面考完组合数学和算法再细聊。试卷在往年基础上改进了部分题目(貌似有人知道新题目的来源,如查询优化树),也可能是两份试卷交叉年份考。总之会的还是会,没看过的当然不会只能乱写,另外会与不会都说明不了什么问题。

努力回忆一下试卷结构,"方便"后来人。


一 问答

  1. 解释分布式数据库4层体系结构
  2. 解释分段的意义和原则
  3. 解释可靠性协议
  4. 解释多级安全访问控制和强制访问控制和区别
  5. 解释分布式设计和4层透明性

二 简答

  1. 给出一个调度S,问调度S是否可串,如果可串给出等价的串行调度S’
  2. 给出S对应的undo log,并分析在S中某个位置出现故障时undo操作
  3. 根据2PL协议将Commit Abort Lock Unlock加入调度S,并给出执行序列

三 时间戳调度

给出一系列读写申请,描述动作发生情况。基本时间戳调度,见复习材料。

四 画出执行查询的查询树

  1. 三表连接查询
  2. 含有count(*)聚集函数的嵌套查询

五 语句含义

面向对象部分语义解释,共五句话,见复习材料。


总结

总的来说,课程分为分布式数据库和面向对象数据库两块。分布式数据库介绍了分布式数据库的方方面面,包括数据库系统的设计、查询处理优化、事务管理和恢复、并发控制、可靠性、安全性与目录管理等。面向对象数据库基本上回顾了OO的方方面面,只是结合数据库的背景进行详细分析,无特别之处。Project基本就是搞笑的,题目也不知道用了多少年从古至今(据说最早01年就开始用这个题目,不知真假但至少有六七年历史)。而Versant数据库这个题目本身就是结合OO思想设计表结构,将表结构持久化到Versant数据库,然后结合B/S架构(JSP写前台,Versant数据库,Java写逻辑)处理方式,从数据库中读取数据(增删改查),写数据到数据库,无他。迫于还有两门课(组合数学和算法设计分析)复习压力,后面想办法再解决Project报告。

课程本身枯燥无味(其实某些算法还是挺有意思,像基本时间戳调度、多版本时间戳调度、2PC、2PL、3PC和SDD-1半连接优化计算),只是从上课内容没看出任何高级的地方。不止一次在朋友圈吐槽了这门课(其实是这类),连自己都快麻木。在讲者赶时间赶进度、做任务(几乎不与听者沟通交流)式的教学方式下,本身就很枯燥的课程更让听者反感至极。讲者高高在上,一味争取完成填鸭式教学任务而忽略课程体系结构本身以及背景的探讨、介绍(根本无视课程背景介绍的重要性以及听者的学习感受,开始-结束-开始-结束-…)。讲者不是心有余而力不足(有意识传道授业但方法和讲课技巧能力有限),而是彻底走自己的路,听者爱听不听。这些导致的结果是听者囫囵吞枣,讲者完成任务,大部分概念都只是在几天里突击被记了个皮毛,而得不到深入理解更不谈具体应用,我相信忘得肯定比记的快。

有一种似曾相似的感觉,为了考试死记硬背,为了下一门考试再清空记忆,再重头开始然后循环。我甚至相信没在课上学过这些会更好1,至少我不会讨厌这类课。这是种糟糕并且被我痛恶的感觉,我只是希望目前的教育方式2能有所改观,我只是希望能学以致用。我在试着改变自己,更深的体会后面再细聊或者参考链接。

你可能感兴趣的:(数据库)