Notes of Database Principle for CUMT final examination

Created by HJY, CS 2019-04

Last Update Date: May. 6, 2021

绪论

四个定义

image-20210403155619886

发展与特点

  1. 人工管理阶段

    • 应用程序管理数据
    • 数据不共享
    • 数据不具有独立性
    • 数据不独立保存
  2. 文件系统阶段

    • 由文件系统管理数据
    • 数据共享性差,冗余度大
    • 数据独立性差
    • 数据可以长期保存
  3. 数据库系统阶段

    • 数据由DBMS统一管理和控制
    • 数据的共享性高, 数据冗余度低减少数据不一致性
    • 较高的数据独立性
    • 数据结构化:与文件系统的根本区别

数据模型

现实世界信息世界计算机世界
实体实体记录记录
实体特性属性字段
实体集实体记录集
实体标识符标识属性关键字

E-R绘图例题

对于工程硕士管理需要掌握信息有:学生现在的工作单位、职务、简历情况。其中简历情况包括开始时间、终止时间、单位、担任职务、证明人。学生在校信息包括学号、学院、专业、入学时间、导师。 学生在校课程信息包括:课程号、课程名、学时、授课教师及成绩。学院包括学院代号、名称、院长。导师包括导师职工号、姓名 、出生日期、职称、研究方向。

答案

image-20210403162936641image-20210403163014474image-20210403163052562

三级结构

两级映像和数据独立性

image-20210403170107455

用户通过DBMS访问DB过程

  1. 接受应用程序的数据请求
  2. DBMS对用户的操作请求进行分析
  3. 数据库管理系统要向操作系统发出操作请求
  4. 操作系统接到命令后,对数据库中的数据进行处理,将结果送到系统缓冲区,并发出读完标志给DBMS
  5. DBMS接到回答信号后,将缓冲区的数据经过模式映射,变成用户的逻辑记录送到用户工作区,同时给用户回答成功与否的信息

img

img

关系数据库

关系模型

关系完整性约束

关系代数

例题

  • 学生(学号,姓名,性别,学院,专业方向)
  • 课程(课程号,课程名,先行课,学分)
  • 学习(学号,课程号,成绩)
  1. 查询同时选修了所有课程的学生的学号
  2. 查询至少选修1号同学选修的所有课程的学生姓名
  3. 查询选修了1号同学选修的课程的学生姓名
  4. 查询同时选修D与M课程的学生学号
  5. 【书例2-16】查询同时选修D与M课程的学生姓名
  6. 【书例2-17】查询被所有学生都选修的课程名
  7. 【书例2-18】查询没有选修任何课程的学生名单和所在学院
  8. 【课后2-11(5)】没有被任何人选修的课程名(和8对比)
  9. 【课后2-11(9)】求每个学生没有选修的课程,列出学号、课程号

答案

查询优化

  1. 选择下移到笛卡尔以下
  2. 投影下移到选择以下,笛卡尔以上
  3. 投影下移到笛卡尔以下,选择以上

例题

检索网络方向的学生选修先行课为计算机网络的课程名和课程学分。写出优化前后的语法树。

答案

image-20210507153604418image-20210507153623098

关系系统

 

SQL语言

基本表增删改

单表数据查询(条件与函数)

多表数据查询(连接与嵌套)

简单嵌套查询

含EXISTS查询(嵌套与除法)

EXISTS:代表存在量词 ,带有EXISTS的子查询不返回任何数据,只产生逻辑真值或逻辑假值。所有带IN谓词、比较运算符、ANYALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。

INEXISTS等价对比

▲除法的写法

数据更新(增删改)

 

视图

 

关系规范化理论

函数依赖

img

四种范式

image-20210404114204921

例题

找出最高级范式和主码

  1. R(X, Y, Z), F={Y→Z, Y→X, X→YZ}

答案

  1. BCNF,主码:X,Y

闭包与Armstrong公理

依赖集等价与最小依赖集

码值理论

分解的无损连接性判断

分解的函数依赖保持性判断

关系模式的分解算法

数据库设计

需求分析

概念结构设计

逻辑结构设计

数据库保护

数据库恢复

并发控制

例题

设T1,T2是如下的2个事务 T1:A=A×B+2+D T2:B:=A×2+D,设A的初值为2,B的初值为4

(1)若这两个事务允许并发执行,讨论他们可能实施的调度,请一一列举并求每种调度的结果

(2)试给出一个可串行化调度,并给出执行结果

解答

R1(A) R1(B) R1(D) W1(A) R2(A) R2(D) W2(B) T1T2

R2(A) R2(D) W2(B) R1(A) R1(B) R1(D) W1(A) T2T1

R2(A) R2(D) R1(A) W2(B) R1(B) R1(D) W1(A)

封锁技术

数据库安全性

数据库完整性