三级数据库技术:习题笔记(1)
三级数据库技术:习题笔记(1)
数据库概论
1.外模式/模式映像保证了数据与程序的逻辑独立性
数据库的三级模式由外模式、模式、内模式构成。
外模式:是用户可见的部门数据的存在形式。
模式:可以等价为全体数据的逻辑结构而用户不可见,是三级模式的中间部分。
内模式:对应数据库的物理结构和存储方式。
当模式改变时,由数据库管理员对各个外模式/模式的映像作相应的改变,但是外模式可以不变,从而应用程序可以不必修改,因此外模式/模式保证了数据与程序的逻辑独立性。模式相当于一种中间层。
一个数据库只有一个内模式,但有多个外模式!
2.一个数据库有且只有一个主要数据文件,可以有多个次要数据文件
主要文件和次要数据文件可以存放在相同的磁盘上,也可以分开放置。
一个数据文件不可以是多个文件组的成员,日志文件不包含在文件组中。
3.数据库用户及系统表
数据库用户分为:系统管理员、对象拥有者、普通用户!
- db_datawriter:具有增删改查所有用户表数据的权限。
- db_owner:用户具有创建数据库对象的权限!
- db_accessadmin:角色具有添加和删除数据库用户的权限。
- db_backupoperator:角色具有备份和恢复数据库的权限。
4.从功能角度数据库系统可以划分成四个层次
- 表示层:人机界面设计。
- 业务逻辑层:梳理DBAS的各项任务活动,将其表示为系统构件(类、模块、组件等)
- 数据访问层:针对DBAS的数据处理需求设计用于操作数据库的各类事物
- 数据持久层:应用系统的存储结构设计。
4.磁盘阵列RAID
磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢的磁盘组成一个大型的磁盘组,利用个别磁盘提供数据所产生的加成效果提升整个磁盘的系统性能。RAID技术主要包含RAID0~RAID50,其中RAID可以提高读取性能和很高的数据安全性和可用性,而RAID5更适合与小数据块和随机读写的数据,要提高读写速度,RAID1比较合适。
关于游标
游标主要用于 T-SQL 批、存储过程以及触发器当中,其作用是存储一个结果集,并能通过循环将这个结果集里的数据一条条取出来进行处理。
1、定位到结果集的某一行;
2、从当前结果集的位置搜索一行或部分行;
3、允许对结果集中的当前行进行数据修改。
关于索引
语法:
索引技术:
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
....聚集索引的键值可以重复
复合索引:
用户在多个列上简历索引,这种索引叫做复合索引。复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,这种方式可以明显加快表的查询速度。对于复合索引:
- 对于一张表来说,如果有一个复合索引就没有必要建立一个单索引。
- 如果查询条件需要,可以在已有单索引的情况下,添加复合索引对于效率有一定的提高。
- 对于复合索引,在查询时,最好将WHERE条件顺序作为索引列的顺序,这样效率最高!
- 复合索引最好首先加载值域范围变化较大的项上。
索引考点:
- 在数据库文件的主码属性集上建立的索引成为主索引。
索引的使用原则:
- .经常在查询中用作条件的列应当添加索引。
- 频繁进行排序或分组的列(即进行ORDER BY或GROUP BY)的列,应当为其添加索引。
- 一个列的值域很大时,应当为其添加索引。
- 如果待排序的列有多个,应当在这些列中添加复合索引。
数据库语法问题
1.自身连接
如果连接操作是一个表与其自己进行连接,称为表的自身连接。语法格式:
SELECT 查询内容 FROM 表明 表别名1,表名 表别名 2 ..... SELECT 查询内容 FROM 需要连接表1 JOIN 需要连接表2 ON.....
2..CHECK约束和触发器类似,都可以实现用户自定义约束
创建表时指出CHECK约束:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (Id_P>0) )对已有表添加CHECK约束:
ALTER TABLE Persons ADD CHECK (Id_P>0)
3.标量函数
标量函数是返回单个函数值的函数,标量函数中不适用于SET语句!
4.将查询结果保存到新的表中
SELECT * INTO NEW_TABLE FROM OLD_TABLE;
数据库故障及恢复策略
在数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三类:事务故障、系统故障和介质故障。应该根据故障类型的不同,采取不同的恢复策略。
1.事务故障及其恢复:
事务故障表示由非预期的、不正常的程序结束所造成的故障。
造成程序非正常结束的原因包括输人数据错误、运算溢出、违反存储保护、并行事务发生死锁等2.系统故障及其恢复:
系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。引起系统故障的原因可能有硬件错误(如CPu故障、操作系统)或DBMS代码错误、突然断电等。
3.介质故障及其恢复
介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分或全部丢失。
这类故障比事务故障和系统故障发生的可能性要小,但这是最严重的一种故障,破坏性很大,磁盘上的物理数据和日志文件可能被破坏,这需要装入发生介质故障前最新的后备数据库副本,然后利用日志文件重做该副本后所运行的所有事务。
2.数据库应用系统的性能指标
包括:数据操作性应该的时间或数据访问响应时间,系统吞吐量、允许并发访问的最大用户数、每TPS代价值。
3.数据库的恢复顺序
数据库建模
1.UML设计
- 用例图:系统[长方框]、角色[]、用例[椭圆]
2.DFD建模方式
DFD建模方式,也被称为过程建模和功能建模方法,核心是数据流。
3.IDEF1X建模
IDEF0t图的基本元素是矩形框和箭头,矩形框代表功能活动.....
4.3N范式说明
数据库设计的各个阶段
系统设计
- 概念设计
- 数据库概念模型设计
- 系统总体设计
- 逻辑设计
- 数据库逻辑结构设计
- 应用程序概要设计
- 数据库事物概要设计
- 物理设计
- 数据库物理结构设计
- 数据库事物详细设计
- 应用程序详细设计
系统规划与定义
- 任务陈述
- 确定任务目标
- 确定系统范围和边界
- 确定任务视图
实现和部署阶段
- 建立数据库结构
- 数据加载
- 事物和应用程序的编码及测试
- 系统集成
- 测试和试运行
- 系统部署
运行和维护阶段:
- 数据库的转储和恢复;
- 系统监控与分析(定期检查CPU、内存使用情况)
- 数据库的安全性和完整性控制;
- 数据库性能的监控分析和改进
- 数据库的重组和重构
数据库转储
- 完全转储:对数据库中的所有数据进行转储,此种方法占用较多的时间和空间。
- 差量转储:对最近一次数据库完全转储以来发生变化的数据库进行转储。
- 增量转储:只复制上次转储后发生变化的文件或数据块。增量转储所需的时间和空间都比较短,但增量存储只能和完全转储配合,才能对数据库进行恢复。增量转储所需时间比完全转储时间长。
数据仓库
数据仓库是一个面向主题的、集成的、非易失的,且随时间变化的数据集合,用来支持管理人员的决策。
粒度越大,综合程度越高;粒度越小,表示综合成都越小。
粒度越小,细节成都越高,空间代价也越大。
分布式数据库
基本特征
- 本地自治
- 非集中式管理
- 高可用性
分片透明性
分片透明性是最高级别的透明性,位于全局概念模式和分片模式之间。分片透明性是指数据分片是用户无需考虑的,完全透明的,在编写程序时用户只需要对全局关系进行操作!
- 全局外模式:全局应用的用户视图,即终端用户看到的逻辑上并未分布的表、视图等;
- 全局概念模式:描述全体数据的逻辑结构和特征;
- 分片模式:描述每个数据片段以及全局关系到片段的映像,是分布式数据库系统中全局关系到片段的映像,是分布式系统中全局数据的逻辑划分视图。
数据库性能优化
存储优化
- 物化视图
- 聚集
.......