六、数据库管理与维护
维护工作包括:
① 数据库转储与恢复
② 数据库安全性、完整性控制
③ 检测并改善数据库性能
④ 数据库的重组与重构
1) 重组不修改数据库原有的逻辑结构和物理结构
2) 重构部分修改模式和内模式
一、数据库完整性
完整性设计:保证数据源的正确性、一致性和相容性
数据完整性约束的作用对象分为列、元祖和关系三种级别。
二、数据库安全性
安全性保护:防止非法用户对数据库的非法使用,避免数据泄露、篡改或破坏
主要保护方式:用户身份验证、权限控制、视图机制
DBMS解决安全控制问题的方案:
① 自主存取控制,又称自主安全模式,通过SQL的GRANT、DENY、REVOKE语句来实现
权限种类:维护权限与操作权限(语句权限与对象权限)
用户分类:系统管理员(sa)、数据库对象拥有者、普通用户
② 强制存取控制
为避免自主模存取模式下数据的“无意泄露”,采取强制存取控制
DBMS将全部实体分为主体和客体两大类:
1) 主体:系统活动实体,实际用户和进程
2) 客体:被动实体,受主体操纵,包括文件、基本表、视图
对于主体和客体,DBMS为它们的每个实例指派一个敏感标记(Label):
1) 主体为许可证级别
2) 客体为密级,分为绝密、秘密、可信和公开等若干级别
强制存取控制遵循如下规则:
1) 当主体许可证级别大于或等于客体密级,主体可以读取相应客体
2) 仅当主体许可证级别等于客体密级,该主体才能写相应客体
Oracle的安全机制分为:数据库级、表级、行集、列级
① 数据库级的安全性通过用户身份认证和授予用户相应系统权限来保证
② 表级、行级、列级的安全性通过授予和回收对象权限保证
用户按权限大小可划分为:
① DBA用户:由DBMS自动创建,sys与system用户,拥有全部系统特权
② 普通用户:由DBA用户或由相应特权的用户创建,并授予系统特权
DDL(Data Definition Language)数据库模式定义语言,用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义
db_ddladmin具有执行全部数据定义语言的权限,如:CREATE、DROP、ALTER语句
三、数据库可靠性
四、监控分析
监控分析:值管理员借助工具监测DBMS的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析监测数据的性能参数和环境信息、评估DBMS的整体运行状态
① 根据监控分析实现不同,分为:
1) 数据库系统建立的自动监控机制,由DBMS自动监测数据库的运行qingk
2) 管理员手动实施的监控机制
② 监控对象不同,分为:
1) 数据库架构体系的监控,监控空间基本信息、空间使用率与剩余空间大小等
2) 数据库性能监控,监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等
五、参数调整
调整参数,提高数据库性能的方法:
① 外部调整:数据库性能和外部环境有很大关系,主要外部条件包括:CPU(CPU的处理能力时衡量计算机性能的一个标志)、网络(大量的SQL数据在网络上传输会导致网速变慢)
② 调整内存分配:调整相关参数控制数据库内存分配,很大程度改善数据库系统性能
③ 调整磁盘I/O:数据库性能优劣的重要度量是响应时间
④ 调整资源竞争:
1) 修改参数以控制连接 到数据库的最大进程数
2) 减少调度进程的竞争
3) 减少多线程服务进程竞争
4) 减少重做日志缓冲区竞争
5) 减少回滚段竞争
六、查询优化
数据库的规范化过程:高效利用存储空间,减少数据的冗余,减少数据的不一致性
问题:规范化关系解决了数据维护的异常,并使数据冗余最小,但会导致数据处理性能下降
反规范化:将规范化关系转换为非规范化的关系的过程
反规范化方法:
① 增加派生性冗余列:增加的数据由表中的一些数据经过计算生成
作用:查询时减少连接操作,避免使用聚合函数
② 增加冗余列:在多个表中增加具有相同语义的列,常用来在查询时避免连接操作(外码不属于这种情况)
③ 重新组表:当用户经常查看的某些数据时由多个表连接之后才能得到的,就可以考虑先把这些数据重新组成一个表,这样在查询时会减少连接提高效率
④ 分割表:
1) 水平分割:根据行的使用特点进行分割,分割之后所有表的结构都相同,而存储的数据不同,并使用(Union)操作
2) 垂直分割:根据列的特点分割,分割后所得表除了都包含主码以外其他列都不相同,通常将常用列与不常用列分别放在不同表中,查询减少I/O次数。缺点是使用连接(Join)操作
⑤ 新增汇总表:
七、空间管理
空间使用情况变化带来的问题:
① 降低数据库系统服务性能
② 空间溢出带来灾难停机事故
数据库的存储结构包括:
① 逻辑存储结构
② 物理存储结构