JAVA

数据库系统概论复习资料/提纲

2017-06-29  本文已影响468人  Azur_wxj

第一章 绪论

  1. 4个基本概念:数据、数据库、数据库管理系统、数据库系统
  2. 数据:描述事物的符号记录
  3. 数据的含义称为数据的语义
  4. 计算机系统层次结构:硬件、操作系统、数据库管理系统、应用开发工具、应用系统
  5. 数据库发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段。从文件系统到数据库系统标着着数据管理技术的飞跃。
  6. 数据库是计算机的基础软件
  7. 数据库系统特点:
    • 数据结构化
    • 数据共享性高、冗余度低且易扩充
    • 数据独立性高
      • 物理独立性:指用户的应用程序与数据库中数据的物理储存时相互独立的。
      • 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。
    • 数据由数据库管理系统统一管理和控制
  8. 数据模型: 是数据库系统的核心和基础。描述了系统的静态特性、动态特性和完整性约束条件。
    • 第一类:概念模型
    • 第二类:逻辑模型和物理模型
  1. 概念模型表示法:实体联系方法:用E-R图表示。
  2. 数据模型的组成要素:
    • 数据结构
    • 数据操作
    • 数据的完整性约束条件
  3. 常用数据模型:
    • 层次模型
    • 网状模型
    • 关系模型:最重要的数据模型,是用二维表的形式表示实体和实体间联系的数据模型。
    • 面向对象数据类型
    • 对象关系的数据模型
    • 半结构化数据模型
  4. 实体:客观存在且相互可区别的事物。实体间联系:一对一、一对多、多对多。
  5. 基本层次联系:指两个记录以及它们之间一对多(包括一对一)的联系。
  6. 关系模型要求关系必须是规范化的。
  7. 模式:是数据库中全体数据的逻辑结构和特征的描述。只涉及“型”,不涉及值
  8. 实例:模式的一个具体值。
  9. 模式是相对稳定的、实例是相对变动的。
  10. 三级模式结构
    • 模式,也称为逻辑模式
    • 外模式,也称为子模式或用户模式。
    • 内模式:也曾内存储模式。一个数据库中只能有一个内模式。
  11. 两种映像:外模式/模式映像、模式/内模式映像。

第二章 关系数据库

  1. 数据模型一般来说是由三个部分组成:
  1. 域:一组具有相同数据类型的值的集合。
  2. 一个域允许不同取值的个数称为这个域的基数。
  3. 候选码:某一个属性的值能唯一标识一个元组,而其子集不能,成该属性组为候选码。
  4. 多个候选码,选定其中一个为主码
  5. 主属性:候选码的诸属性。
  6. 非主属性(或非码属性):不包含在任何候选码中的属性。
  7. 关系的三种类型:
    • 基本关系(基本表或基表)
    • 查询表
    • 视图表
  8. 基本关系的六个性质:
    • 列的顺序无所谓。
    • 行的顺序无所谓。
    • 不同列可以来自同一个域。
    • 无限关系是无意义的。
    • 候选码不能重复
    • 分量必须取原子值(即不能再分割)【最基本的一条】
  9. 关系的完整性(约束):
    • 实体完整性:主属性不能取空值
    • 参照完整性。
    • 用户自定义完整性。

关系代数

  1. 传统集合运算:
    • 并(union):列还是那么多列,只不过把一行行的数据条做了整合。
    • 差(except):把某些数据行去掉
    • 交(union):列还是那么多列,数据条做整合,取属于两个表公有的。
    • 笛卡尔积:n1×m1的表和n2×m2的表作乘积后为 (n1+n2)×(m1+m2)。
  2. 专门关系运算:

等价于

  select * from R where F;

δ_Sage<20(Student)表示select * from Student where Stage<20


等价于:

select A from R;

π_Sage,Sdept(Student)select Sage,Sdept from Student


等价于:

select R.*,S.* from R,S where AθB;

Student(Student.Sno=SC.Sno)SC等于select Student.*,SC.* from Student,SC where Student.Sno=SC.Sno


第三章 关系数据库标准语言SQL

  1. 创建表
    create table 表名(
        列名 数据类型 not null, //非空性约束
        列名 数据类型 unique, //唯一性约束
        列名 数据类型 check(检查条件),//检查性约束
        ............
        constraint 主键名 primary key(主属性列表),
        constraint 外键名 foreign key (外键属性列表) references 被参考表名(参考列),
        constraint 检查名 check(校验条件)
    )
  1. 常用查询条件:
  1. where子句中不能*加聚集函数。
  2. 带有ALL(SOME)以及SOME的谓词的子查询
....
where Sage<ANY(select Sage from.........)  //有的将ANY写为SOME

表示Sage小于后面子查询中的某一个值。

....
where Sage<ALL(select Sage from.........)

表示Sage小于后面子查询中的任何一个一个值。

  1. EXISTS和NOT EXISTS谓词子查询
....
where exists (select .........)

当后面的子查询结果集不为空时,exists返回true,否则返回false
not exists和exists刚好相反

  1. 插入数据
insert into 表名 (属性名,属性名,...) values (值1,值2,.....)  //属性名列表可省略
  1. 修改数据
update 表名 set 列名=表达式,列名=表达式,..... where 条件
  1. 删除数据
delete from 表名 where 条件。
  1. 空值运算:表达式中只要含有空值,其结果就是空值
  2. 视图

create view 视图名(列名列表)
as
select ....
from ...
where ...
[with check option;]
其中,如果使用了with check option```则对该视图进行插入删除修改的操作时,系统自动加上where中的那个条件。


第四章 数据库安全性

  1. 数据库安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。
  2. 不安全因素和应对措施:
  1. 自主存取控制方法:

grant select,update(sno)
on table Student
to user1;
把select、sno列上update权限授予用户user1
grant all privileges
on table Student,Course
to user1,user2
with grant option;
```
把Student,Course上的全部权限授予user1、user2,并且,with grant option;表示允许user1、user2继续向别人授予这些权限。

revoke select
on table SC
from public;
把授予**全部用户**在SC上的修改权限收回。
revoke insert
on table SC
from user1 cascade;
```
假定user1把insert权限此前授予别人,则收回user1权限同时,cascade表示将user1授予别人的权限也都收回来。

  1. 角色:角色是被命名的一组与数据库操作相关的权限。角色是权限的集合。
create role 角色名
grant 权限,权限....
on 对象(表名)
to 角色1,角色2
grant 角色1,角色2,...
to 其他角色,用户,.....
[with adimin option]

其中,[with adimin option]可以让被授权者把这种权限授予给其他角色

revoke 权限,......
on 对象(表名)
from 角色1,,角色2,.......
  1. 强制存取控制方法
    强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分割整体,只有符合密级标记要求的用户才可以操纵数据,从而提高安全级别。

第五章 数据库完整性

  1. 参照完整性检查和违约处理:当外键所在的子表和被参照的父表发生数据不一致时,有以下策略:
foreign key(Sno) references Student(Sno)
on delete cascade    /*当删除Student表的Sno时,该表的Sno对应数据也删除*/
on update cascade   /*当更新Student表的Sno时,该表的Sno对应数据也更新*/
  1. 关于完整性约束的SQL语句、约束条件命名子句,参考:第三章 关系数据库标准语言SQL——创建表一节

第六章 关系数据理论

  1. 数据依赖中,最重要的是函数依赖和多值依赖。
  2. 关系模式可能存在问题:
  1. 一个好的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应该尽可能地少。
  2. 规范化:一个低一级的范式的关系模式通过模式分解,转换为若干个高一级的范式的关系模式集合的过程。
  3. 第一范式:是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。简而言之,第一范式就是无重复的列。第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
  4. 第二范式:若R∈1NF,每一个+非主属性+完全函数依赖于+任何一个+候选码,则R属于2NF。
    不满足第二范式会发生:
  1. 第三范式:不存在这样的X、属性组Y和非主属性Z,使得X→Y,Y→Z成立且X不依赖于Y,则它是第三范式。若R是第三范式,那么也是第二范式。
  2. BCNF:若X→Y且X不包含Y时,X中必定含有码,则属于BCNF。
    考虑R(A,B,C),函数依赖:(A,B)→C,(B,C)→A,显然(A,B)、(B,C)都可以作为候选码,这个关系模式中没有属性对码的传递依赖和部分依赖,所以它是第三范式,而且除了(A,B)、(B,C)没有其他决定因素,所以它也是BCNF。
  3. 总体来说:
  1. 多值依赖:设U=X+Y+Z,多值依赖X→→Y成立,当且仅当,给定一对(x,z),就有一组Y值与之对应,且它至于x有关,与z无关。这就是说(x,z)给定以后,就有一组y也确定;当保持x不变之变z,则这组y值仍保持不变;一旦x发生变化,则y值可能发生变化;即这组y值发生变化的充分条件是x发生了变化。
  2. 平凡的多值依赖:上述中Z∈∅。
  3. 多值依赖具有:
  1. 模式分解的三种不同定义
  2. 具有无损连接性:一定能到达第四范式
  3. 保持函数依赖:此时模式分解一定能到达第三范式,但不一定到BCNF
  4. 既要保持函数依赖,也要有无损连接性:可以到达第三范式,但不一定到BCNF

第七章 数据库设计

  1. 基本步骤:

第十章 数据库恢复技术

  1. 事务:一个数据库操作序列,要么都做,要么都不做。
  2. 事务的ACID特性:
  1. 故障种类:
  2. 事物内部故障
  3. 系统故障(软故障)
  4. 介质故障(硬故障)
  5. 计算机病毒
  6. 数据库的恢复技术
  7. 数据转储:定期将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程。
* 静态增量/静态海量转储
* 动态增量/动态海量转储
  1. 登记日志文件
  2. 恢复子系统(检查点方法)

第十一章 并发控制

  1. 事务是并发控制的基本单位
  2. 事务并发的种类:
  1. 并发出现的三类问题:
  1. 并发的主要技术:
  1. 封锁
  1. 封锁协议
  2. 一级封锁协议(防止丢失修改,保证事务可恢复):事务T修改数据R之前必须先加X锁,事务结束(commit OR rollback)后释放
  3. 二级封锁协议(防止丢失修改,保证事务可恢复,进一步防止脏读数据):一级封锁协议之上,再加上:事务T读取数据之前加读锁S,读完后释放
  4. 三级封锁协议(防止丢失修改,保证事务可恢复,防止脏读数据,防止不可重复读):一级封锁协议之上,增加:事务T在读取数据之前必须加S锁,事务结束后释放
  5. 活锁:某个事务可能永远等待。解决方法:先来先服务的策略。
  6. 死锁:两个事务相互等待,永远不可能结束。解决方法:选择一个处理死锁代价最小的事务,将其撤销,释放此事务的所有锁,将其他事务得以运行。
  7. 可串行化调度:多个事务的并发是正确的,当且仅当其结果与按照某一顺序的串行执行这些事务的结果相同。
  8. 两段锁协议:可串行化调度的充分不必要条件
  9. 第一阶段:获得锁,也就是扩展阶段
  10. 第二阶段:释放锁,也就是收缩阶段
  11. 封锁粒度:封锁对象大小叫做封锁粒度。
上一篇 下一篇

猜你喜欢

热点阅读