数据库系统概率复习笔记(简略)

一、绪论

数据:数据库中存储的基本对象,描述事物的符号记录称为数据。
数据库:长期存储在计算机中,大量数据的集合。
数据库管理系统:位于用户和操作系统之间的一层数据管理软件。

数据独立性:
物理独立性,逻辑独立性

人工管理阶段:冗余度极大,无共享性
系统管理阶段:冗余度大,共享性差
数据库管理阶段:冗余度小,共享性强

数据模型:对现实世界数据特征的抽象
数据模型有两类:
概念模型,逻辑和物理模型
数据模型包含:
数据结构,数据操作,数据约束

信息世界基本概念:
实体:客观存在并可相互区分的事物称为实体
属性:实体所具有的某一特性叫做属性
码:唯一标识实体的属性
外码:关系模式R中存在属性不是R的码,但是另一个关系模式的码,则称该属性为R的外码
主属性:包含在候选码中的属性
域:取值范围

常用的逻辑数据模型:
层次模型
网状模型
关系模型

关系的完整性约束有三种:
实体完整性
参照完整性
用户定义完整性

数据库系统三级模式:
外模式:也叫子模式,或者用户模式,是用户数据库的视图
模式:也叫逻辑模式,是全体数据的逻辑结构的描述
内模式:也叫存储模式,一个数据库只有一个内模式,是存储方式的描述

二级映像:
外模式/模式映像:当模式发生变化时,会自动调整影响,使外模式保持不变,保证了数据的逻辑独立性。
模式/内模式映像:当内模式发生改变时,会自动调整映像,使模式保持不变,保证了物理独立性。

数据库管理人员的职责:
设计数据库
让用户学会使用
数据库的运行与维护
重构


二、关系数据库

关系:实体与实体之间的联系
关系模式:对关系的描述
关系数据库:各种各样的关系集合

基本关系操作:
常用5种:选择,投影,并,差,笛卡尔积

关系的三类完整性

选择:选取表中几个元组。
投影:选择若干列,组成一个新的关系。


三、关系数据库标准语言SQL


四、数据库安全性

数据库的一大特点就是数据库可以共享
共享必定会带来安全性问题

安全性控制的常用方法:
用户识别与鉴定
存取控制
视图
审计
密码存储


五、数据库完整性

数据库完整性为了防止不合语义、不正确的数据
数据库安全性为了防止非法用户与非法操作


六、关系数据库理论

一个设计的不好的关系模式中可能会出现以下问题:
数据的冗余度大
插入异常
删除异常
修改麻烦

规范化

1NF:关系模式R中所有属性都是不可再分的数据项
2NF:关系模式R中每一个非主属性都是完全依赖于码的
3NF:每一个非主属性既不部分依赖于码也不传递依赖于码
BCNF:数据库表中不存在任何一个字段对任一候选字段的传递函数依赖


七、数据库设计

设计步骤:
需求分析
概念模型设计: E-R图
逻辑模型设计: 层次结构、网状结构、关系结构
物理模型设计: 为逻辑数据模型选取一个最适合运行的物理环境
数据库实施
数据库运行与维护

数据字典内容:
数据项
数据结构
数据流
数据存储
处理过程

八、数据库编程

ODBC编程
ODBC(OPEN DATABASE CONNECTIVITY) 开放数据库连接
为了解决在某个RDBMS中编写的应用程序不能在另一个RDBMS下运行的问题
ODBC体系:
应用程序
驱动程序管理器
数据库驱动程序
数据源管理

数据源是用户最终需要访问的数据

ODBC工作流程:
配置数据源
初始化环境
建立连接
分配语句句柄 句柄:一个指针
执行SQL语句
返回结果集
查找完成


九、关系系统及其优化查询

查询处理步骤
查询分析
查询检查
查询优化
查询执行


十、数据库恢复技术

事务:
一个数据库操作序列
一个不可分割的基本单位
特性:
原子性 一致性 隔离性 持续性

数据库恢复的方法
数据转储 登记日志文件


十一、并发控制

并发控制问题产生的原因是
多用户数据库的存在

不同的多事务执行方式
事务串行执行 交叉并发执行 同时并发执行

封锁

排它锁(X锁) 共享锁(S锁)

活锁与死锁
活锁:一直在尝试获取资源,一直失败,有可能自行解开
死锁:互相占有对方所需要的资源,永远解不开

避免活锁的方法:
按照次序进行封锁

解决死锁的方法:
预防死锁:一次封锁法 顺序封锁法
死锁检测与解除

并发调度

可串行化调度:多个事务并发执行的结果与按照某一次序串行执行的结果相同。

冲突可串行化调度:
一个调度在保持冲突操作次序不变的情况下,通过交换两个不冲突操作的次序得到一个新的调度,且这个调度是串行的,则为冲突可串行操作。

冲突操作:不同事务对同一事物的读写操作和写写操作(除此之外都为不冲突操作)

两段锁协议:
所有加锁操作均在解锁操作之前

封锁粒度:封锁对象的大小称为封锁粒度

封锁粒度越大,并发度越低,开销越小
封锁粒度越小,并发度越高,开销越大
按照需求选取封锁粒度

多粒度封锁

多粒度树:
根节点是数据库,表示最大封锁粒度
叶节点为最小封锁粒度

显示封锁:直接加到数据项上的锁
隐式封锁:对上级节点加锁间接加到其上的锁

意向锁:提高对某个数据项加锁的效率
对某个节点加意向锁,证明该节点的子节点正在被锁

posted @ 2020-05-06 20:46  弗乱  阅读(684)  评论(0编辑  收藏  举报