ch1
- DBMS主要功能
- 数据定义
- 数据组织 存储 管理
- 数据操纵
- 数据库的事务管理和运行管理
- 数据库的建立和维护
- 其他
- 数据共享的好处
- 减少数据冗余 节约存储空间
- 避免数据之间的不相容性和不一致性
- 是系统易于扩充
- 数据的独立性
- 数据独立性是由DBMS的二级映像功能来保证的
- 物理独立性
用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。
当数据的物理存储改变,应用程序不用改变 - 逻辑独立性
用户的应用程序与数据库的逻辑结构是相互独立的,数据的逻辑结构改变后,用户程序可以不变
- DBMS提供的数据控制功能
- 安全性保护
- 完整性检查
- 并发控制
- 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
- 数据库恢复
- 数据模型
- 概念模型:信息模型,按照用户的观点来对数据和信息建模,用于数据库设计
- 逻辑模型和物理模型
- 逻辑模型:网状模型 层次模型 关系模型 面向对象模型等,按计算机系统的观点对数据建模。用于DBMS实现
- 物理模型:对数据的最底层的抽象,描述数据在系统内部的表示方式和存储方式,在磁盘或磁带上的存储方式和存取方法
- 关系的完整性约束
- 实体完整性:主属性非空
- 参照完整性
- 用户自定义完整性
- 数据库系统的三级模式
- 模式 (逻辑模式):数据库中全体数据的逻辑结构和特征的描述一个数据库中只能有一个模式
- 外模式(子模式/用户模式):局部数据的逻辑结构和特征的描述,可以有多个外模式
- 内模式:存储模式
- 两级映像
- 外模式/模式映像:保证数据的逻辑独立性
- 模式/内模式映像:保证数据的物理独立性
ch2
- 关系 和 关系模式
- 关系模式是对关系的描述,是静态的 稳定的
- 关系是关系模式在某一时刻的状态或内容,是动态的 随时间不断变化的
- 三类完整性约束
- 实体完整性 参照完整性:关系的两个不变性
- 实体完整性:主属性非空
- 参照完整性
- 用户自定义完整性
ch3
- SQL功能
- 数据定义 数据查询 数据操纵 数据控制
- 外连接和普通连接的区别
- 不相关子查询和相关子查询
- 不相关:有里向外逐层查询 子查询的结果用于建立父查询的查找条件
- 相关子查询:由外向里查询,取外层查询表中的第一个元组,根据它与内层查询相关的属性值处理内层查询,若where语句返回值为真,放入结果表
- 视图作用
- 简化用户操作
- 以多角度看待同一数据
- 对重构数据库提供了一定程度的逻辑性
- 对机密数据提供安全保护
- 更清晰的表达
ch4
- 角色定义 被命名的一组与数据库操作相关的权限
- 角色是权限的集合,可以为一组具有相同权限的用户创建一个角色,简化授权的过程
- 自助存取控制的缺点
- 可能存在数据的“无意泄露”
- 原因:仅仅通过对数据的存储权限来进行安全控制,数据本身没有安全性标记
- 解决:对系统控制下的所有主客体实施强制存储控制策略
- 强制存储控制
- 保证更高程度的安全性
- 用户不能直接感知或进行控制
- 适用于数据有严格而固定密级分类的部门
- 强制存取控制规则
- 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;
- 仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
ch5 6
- 为维护数据库完整性,DBMS必须提供
- 定义完整性约束条件的机制
- 完整性检查的方法
- 违约处理
- 数据依赖
- 一个关系内部属性与属性之间的约束关系
- 现实世界属性间相互联系的抽象
- 数据内在的性质
- 语义的体现
- 平凡函数依赖于非平凡函数依赖 完全函数依赖于部分函数依赖 传递函数依赖
- Armstrong公理系统
- 自反律
- 增广律
- 传递律
ch7
- 数据库设计
- 相对于一个给定的应用环境,设计优化的数据库逻辑模式和物理结构,并根据此建立数据库以及应用系统 使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求
- 目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境
- 什么是概念结构设计
- 需求分析阶段描述的用户应用需求是现实世界的具体需求
- 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计
- 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定
- 概念结构设计是整个数据库设计的关键
- 三类结构冲突
- 同一对象在不同应用中具有不同的抽象
- 同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同
- 实体之间的联系在不同局部视图中呈现不同的类型
ch8
- 标识符格式规则
- 字母或_、@、#开头的字母数字或_、@、$序列
- 不与保留字相同
- 长度小于128
- 不符合规则的标识符必须加以界定(双引号””或方括号[])
- SET 、SELECT赋值的区别
- SET赋值语句一般用户赋给变量指定的数据变量
- SELECT赋值语句一般用于表中查询数据,然后查询的记录多于一条,将把最后一条记录的值赋给变量
- SET一次只能赋值一个变量
- SELECT可以一次赋值多个变量
- 游标的使用步骤
ch10
- COMMITHE ROLLBACK
- COMMIT
- 事务正常结束
- 提交事务的所有操作(读+更新)
- 事务中所有对数据库的更新永久生效
- ROLLBACK
- 事务异常终止
- 回滚事务的所有更新操作,事务回到开始时的状态
- COMMIT
- 事务 Transaction 的定义
- 一个数据库操作系列
- 一个不可分割的工作单位
- 恢复和并发控制的基本单位
- 事务 和 程序
- 在关系数据库中,一个事务可以是一条或多条sql语句,也可以包含一个或多个程序
- 一个程序通常包含多个事务
- 事务的ACID特性:
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)对并发执行而言一个事务的执行不能被其他事务干扰
- 持续性(Durability )
- 故障种类
- 事务内部的故障 恢复:撤销事务
- 系统故障 软故障 恢复:撤销 重做
- 介质故障 硬故障 外存故障
- 计算机病毒
ch11
- 同时并发方式
- 多处理机系统中,每个处理机可以运行一个事务,多个处理机也可以同时运行多个事务,实现多个事务真正的并行运行
- 并发带来的问题
- 会产生多个事务同时存取统一数据的情况
- 可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性
- 并发控制机制的任务
- 对并发操作进行正确的调度
- 保证事务的隔离性
- 保证数据库的一致性
- 并发带来的数据不一致性
- 丢失修改 两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失
- 不可重复读(存在幻影现象) 事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。
- 读 脏 数据
- 封锁 :排它锁和共享锁
- 排它锁(写锁)
- 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁
- 保证其他事务在T释放A上的锁之前不能再读取和修改A
- 共享锁(读锁)
- 若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁
- 保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改
- 排它锁(写锁)
- 活锁 死锁
- 活锁:避免活锁:先来先服务
- 死锁:
- 产生原因:两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待
补充
- DBA的职责
数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。
- 安装和升级数据库服务器,以及应用程序工具
- 数据库设计系统存储方案,并制定未来的存储需求计划
- 一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构,创建数据库对象
- 根据开发人员的反馈信息,必要的时候,修改数据库的结构
- 登记数据库的用户,维护数据库的安全性
- 控制和监控用户对数据库的存取访问
- 监控和优化数据库的性能
- 保证数据库的使用符合知识产权相关法规
- 维护适当介质上的存档或者备份数据
- 制定数据库备份计划,灾难出现时对数据库信息进行恢复