数据库的一些认识整理(考试)

发布时间:2022-08-19 13:57

一、 基本概念
数据(data): 数据库中存储的基本对象 定义: 描述事物的符号记录
数据库(
DB): 长期存储在计算机内的、有组织的、可共享的大量数据的集合
数据库管理系统(
DBMS) :位于用户和操作系统之间的一层管理软件
主要功能 :数据定义功能;数据组织、存储和管理功能;数据操纵功能;
数据库的事物管理和运行管理功能;数据库的建立和维护功能;
数据库系统(
DBS) :由数据库、数据管理系统(及其应用开发工具)、应
用程序和数据库管理员、组成的存储、管理、处理和维护数据的系统
数据管理 :对数据进行分类、组织、编码、存储、检索和维护
数据管理技术的发展过程
人工管理阶段、文件系统阶段、数据库系统阶段
数据库系统的特点
数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高
数据独立性 :物理独立性、逻辑独立性【由 DBMS 的二级映像功能保证】
物理独立性 :用户的应用程序与存储在数据库中数据的物理存储是相互
独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性 :用户的应用程序与数据库的逻辑结构是相互独立的。数据
的逻辑结构改变了,用户程序也可以不变。
数据库管理系统提供的数据控制功能
数据的安全性(security)保护 :保护数据以防止比合法使用造成的数据
泄密和破坏
数据的完整性(integrity)检查 :将数据控制在有效的范围内,并保证数
据间满足一定关系
并发(
concurrency)控制 :对多用户的并发操作加以控制和协调,防止
相互干扰而得到错误的结果
数据库恢复( Recovery) :将数据库从错误状态恢复到某一已知的正确状
二、数据模型: 数据结构、数据操作、完整性约束
1、概念 :数据模型是对现实世界的模拟
2、类型 :第一类:概念模型 第二类:逻辑模型、物理模型
概念模型 :也称信息模型,它是按用户的观点来对数据和信息建模,用
于数据库设计
逻辑模型 :主要包括层次模型、网状模型、关系模型、面向对象模型等,
按计算机系统的观点对数据建模,用于 DBMS 实现
物理模型 :对数据最底层的抽象,描述数据在系统内部的表示方式和存
取方法,在磁盘或磁带上的存储方式和存取方法
3、客观对象的抽象过程---两步抽象
现实世界中的客观对象抽象为概念模型(现实世界抽象为信息世界)
把概念模型转换为某一 DBMS 支持的数据模型 (信息世界转换成机器世界)
4、数据模型的组成要素
数据结构 :数据结构是对系统静态特性的描述
数据操作 :对系统动态特性的描述
数据的完整性约束条件 :一组完整性规则的集合
5、概念模型
实体 :客观存在并可相互区别的事物 实体集 :同一类型实体的集合
实体型 :用实体名及其属性名集合来抽象和刻画同类实体
联系 :现实世界中,事物内部、事物之间的联系概念模型的表示方法:实体——
联系方法(
E-R 模型)
6、常用的数据模型
层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结
构化数据模型
层次模型
有且只有一个结点没有双亲结点,该节点称为根结点
根以外的其他结点有且只有一个双亲结点
网状模型 :允许一个以上结点无双亲、一个结点可以有多余一个的双亲
三、关系模型
数据结构
关系(Relation) :一个关系对应通常说的一张表
元组(Tuple) :表中的一行即为一个元组
属性(Attribute) :表中的一列即为一个属性
码(kay) :表中可以唯一确定一个元组的属性组
域(
domain) :一组具有相同数据类型的值的集合
分量 :元组中的一个属性值
【关系的每一个分量必须是一个不可分的数据项,即不允许表中有表】
数据操纵 :查询、插入、删除和更新数据
关系模型的数据操纵是 集合 操作,操作对象和结果都是关系
完整性约束条件 :实体完整性、参照完整性、用户完整性
四、数据库系统的结构:
1、三级模式结构:实例 :模式的一个具体值
外模式 :视图和部分基本表 模式 :基本表 内模式 :存储文件
模式 :也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用
户的公共数据视图,数据库系统模式结构的中间层,一个数据库只有一个模式
外模式 :也称子模式、用户模式,是数据库用户(包括应用程序员和最终用户)
能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,
与某一应用有关的逻辑表示
【模式——外模式:一对多 外模式——应用程序:一对多】
内模式 :存储模式,数据物理结构和存储方式的描述,是数据在数据库内部的表
示方法,一个数据库只有一个内模式
2、两级映像
外模式/模式映像
模式:描述的是数据的全局逻辑结构 外模式:描述的是数据的局部逻辑结构
同一个模式可以有任意多个外模式,每一个外模式,数据库系统都有一个外模式
/模式映象,定义外模式与模式之间的对应关系
数据的逻辑独立性 :当模式改变时,数据库管理员修改有关的外模式/模式映象,
使外模式保持不变
模式/内模式映像
定义了数据全局逻辑结构与存储结构之间的对应关系 数据的物理独立性 :当数据库的存储结构改变了(例如选用了另一种存储结构),
数据库管理员修改模式/内模式映象,使模式保持不变应用程序不受影响
五、数据库系统的组成:
数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员
数据库管理员:
决定数据库中的信息内容和结构
决定数据库的存储结构和存取
定义数据的安全性要求和完整性约束条件
监控数据库的使用和周期性的转储数据、维护日志文件等
数据库的改进和重组、重构
=================================2==================================
1、关系
目(度):关系中属性的个数
候选码:关系中能唯一标识一个元组的属性组,而其子集不能
主码:若一个关系中有多个候选码,则选定其中一个为主码
主属性:候选码中的属性
非主属性:不包含在候选码中的属性【非码属性】
全码:关系的所有属性是该关系模式的候选码
关系的三种类型 :基本关系(基本表、基表)、查询表、视图表
2、关系模式 :关系模式是型、关系是值,关系模式是对关系的描述
R(U,D,DOM,F)
R:关系名 U:组成关系的属性名集合 D:U 中属性来自的域
DOM:属性向域的映像集合 F:属性间数据的以来关系集合
3、关系操作 :特点:集合操作
查询操作和插入、删除、修改操作两大类
查询操作分类 :选择、投影、连接、除、并、差、交、笛卡尔积
五种基本操作 :选择、投影、并、差、笛卡尔积
特点 :集合操作方式,操作的对象和结果都是集合
4、关系完整性
实体完整性 :主属性不可取空值
参照完整性 :若属性(属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码
相对应,则对于 R 中每个元组在 F 上的值必须:要么取空值,要么等于 S 中某个
元组的主码值
用户定义的完整性 :针对某一具体关系数据库的约束条件,反映某一具体应用所
涉及的数据必须满足的语义要求
外码 :关系 S 的主码 F 作为关系 R 的属性(组),则 F 称为 R 的外码,称基本关
系 R 为参照关系,S 为被参照关系
5、关系代数
传统的集合运算:
并:RUS={t|t∈R V t∈S}
交:R∩S={t|t∈R ∧ t∈S}:R-(R-S)
差:R-S={t|t∈R ∧ t S}
笛卡尔积:R×S={tr⌒ts|tr∈R ∧ ts∈S}
专门的关系代数运算: 选择 :在关系 R 中选择满足给定条件的诸元组【从行的角度进行的运算】
σ F
R)={t|t∈R ∧ F(t)=“真”}
逻辑表达式 F 基本形式:X1 θ Y1 θ :比较运算符
投影 :从 R 中选择若干属性列组成新的关系【从列的角度进行的运算】
п A
R)={t[A]|t∈R}
连接 :从两个关系的笛卡尔积中选取属性间满足一定条件的元组
= σ F
RXS)
i,j 分别是 R,S 上列数相等且可比的属性组
等值连接 θ 为“=”的连接运算
自然连接 :特殊的等值连接,两个关系中进行比较的分量必须是同名的属性
组,在结果中把重复的属性列去掉【记作 R S】
悬浮元组 :做自然连接时被舍弃的元组
外连接:把悬浮元组也保存在结果关系中,而在其他属性上填空值
左外连接:只保留左边关系 R 中的悬浮元组
右外连接:只保留右边关系 R 中的悬浮元组
除运算 :T 包含所有在 R 但不在 S 中的属性及其值,T 的元组与 S 的元组的
所有组合都在 R 中【
T=R÷S】【同时从行和列得角度进行计算】
=================================3==================================
结构化查询语言(SQL)是关系数据库的标准语言
非关系模型(层次模型、网状模型)的数据语言
模式数据定义语言(模式 DDL)
外模式数据定义语言(外模式 DDL/子模式 DDL)
数据存储有关的描述语言(
DSDL)
数据操纵语言(
DML)
SQL 集 数据查询、数据操纵、数据定义、数据控制 功能于一体
SQL 特点 :综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构
提供多种使用方式、语言简洁,易学易用
基本概念
基本表 :本身独立存在的表,一个关系对应一个基本表;一个或多个基本表对应
一个存储文件,一个表可以带若干索引
存储文件 :逻辑结构组成了关系数据库的内模式,物理结构对用户透明
视图 :从一个或多个基本表导出的表;数据库只存放视图的定义而不存放视图对
应的数据;视图是一个虚表;用户可以在视图上在定义视图;基本表中数据发生
变化,则从视图中查询出的数据也就随之变化了
二、数据定义
数据定义功能 :模式定义、表定义、视图和索引定义
1、 模式定义与删除
CREATE SCHEMA <模式名>AUTHORIZATION<用户名>; DROP SCHEMA<模式名>;
CASCADE(级联):全删 RESTRICT(限制):无下属对象时删除
2、 基本表的定义、删除和修改
CREATE TABLE <表名>(
<列名><数据类型> [ <列级完整性约束条件>]
[,<列名> <数据类型>[ <列级完整性约束条>]]
……[,<表级完整性约束条件>] );
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上:
PRIMARY KEY (Sno,Cno)/*主码由两个属性构成,必须作为表级完整性定义*/
列级完整性约束 :直接在数据类型后加关键字
表级完整性约束 :关键字(相应属性名)
FOREIGN KEY (Sno) REFERENCES Student(Sno)
/*表级完整性约束条件,Sno 是外码,被参照表是 Student */
PRIMARY KEY:主码 UNIQUE:取唯一值 NOT NULL:不能取空值
修改基本表
ALTER TABLE <表名>
ADD [COLUMN] <新列名><数据类型>[完整性约束条件]: 增加新列 (级完整性)
ADD[表级完整性约束]:增加新的表级完整性约束
DROP [COLUMN] <列名> [CASCADE|RESTRICT]:删除表中的列
DROP CONSTRAINT <完整性约束名> [CASCADE|RESTRICT]:删除指定完整性约束
ALTER COLUMN <列名><数据类型>: 修改原有列定义 (列名、数据类型)
删除基本表 DROP TABLE <表名>[ CASCADE|RESTRICT];
3、 索引的建立与删除
建立索引 CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON<表名>(
<列名>[<次序>])【
ASC:升序 DESC:降序】
修改索引 ALTER INDEX <旧索引名>RENAME TO<新索引名>
删除索引 DROP INDEX <索引名>
4、数据字典 :关系数据库管理系统内部一组系统表,它记录了数据库所有的定
义信息。
三、数据查询
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] ..
FROM <表名或视图名>[,<表名或视图名> ] |
打开游标 :EXEC SQL OPEN<游标名>; 关闭 :EXEC SQL CLOSE<游标名>
推进游标指针并获取当前记录 :EXEC SQL FETCH<游标名>INTO<主变量>[指示]
==================================9=================================
查询处理步骤 :查询分析、查询检查、查询优化、查询执行
查询分析 :对查询语句进行扫描、词法分析和语法分析
查询检查 :对合法的查询语句进行语义检查
查询优化 :选择一个高效执行的查询处理策略
代数优化:关系代数表达式的优化
物理优化:存取路径和底层操作算法的选择(基于规则、代价、语义)
查询执行 :代码生成器
检查通过后一般把 SQL 查询语句转化成等价的 关系代数表达式
关系数据库管理系统一般用 查询树 语法分析树 )表示扩展的关系代数表达式
=================================10===============================
事务处理技术 :数据库恢复技术、并发控制技术
1、事务 :用户定义的一个数据操作序列,这些操作要么全做,要么全不做,是
一个不可分割的单位【并发控制的基本单位】
定义事务的语句:BEGIN TRANSACTION;COMMIT;ROLLBACK;
以 BEGIN TRANSACTION 开始,以 COMMIT/ROLLBACK 结束
2、事务的 ACID 特性
原子性 :事务是数据库的逻辑工作单位,事务中的操作要么……
一致性 :事务的执行结果必须是使数据库从一个一致性状态变到另一个
一致性状态
隔离性 :一个事务的执行不能被其他事务干扰
持续(永久)性 :一个事务一旦提交,它对数据库中数据的改变就应该
是永久性的。接下来其他操作或故障不应该对其执行结果有任何影响
可能遭到破坏的因素
多个事务并行运行时,不同的事务的操作交叉执行
事务在运行过程中被强行停止
3、数据库恢复 :把数据库从错误状态恢复到某一已知的正确状态
4、故障的种类
事务故障 :有的是可以通过事务程序本身发现的,有的是非预期的,不能交由事
务程序处理
系统(软)故障 :造成系统停止运转的任何事件,使得系统要重新启动
发生系统故障时,事务未提交:强行撤销(
UNDO)所有未完成的,事务已提交
发生系统故障时,事务已提交:重做(
REDO)所有已提交的事务
介质(硬)故障 :磁盘损坏、磁头碰撞,瞬时强磁场干扰等破坏数据库部分数据
计算机病毒 :人为的故障或破坏,可以繁殖和传播的计算机程序
5、恢复的实现技术
数据恢复的基本原理 :冗余,利用存储在系统其它地方的冗余数据来重建已被破
坏或不正确的数据
恢复机制涉及问题 :如何建立冗余数据、如何利用冗余数据实施数据库恢复
建立冗余数据 :数据转储、登记日志文件
数据转储
转储 :数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保
存起来的过程,这些备用的数据称为 后备副本 后援副本
静态转储 :在系统中无运行事务时进行的转储操作,转储期间不允许对数据库的
任何存取、修改活动转储必须等待正运行的用户事务结束,新的事务必须等转储
结束才能执行
动态转储 :转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发
执行,必须把转储期间各事务对数据库的修改活动登记下来,建立 日志文件 ,后
援副本+日志文件=正确状态
海量转储 :每次转储全部数据库
增量转储 :每次只转储上一次转储后更新过的数据
日志文件 :用来记录事务对数据库的更新操作的文件
格式 :以记录为单位的日志文件、以数据块为单位的日志文件
登记日志文件原则
登记的次序严格按并发事务执行的时间次序
必须先写日志文件,后写数据库
6、恢复策略
事务故障的恢复 :事务故障:事务在运行至正常终止点前被终止
反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作
对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据
库;插入操作,“更新前的值”为空,则相当于做删除操作;删除操作,“更
新后的值”为空,则相当于做插入操作;若是修改操作,则相当于用修改前
值代替修改后值
继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理
如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了
系统故障的恢复
正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入
重做队列。同时找出故障发生时尚未完成的事务,将其事务标识记入撤销队
对撤销队列中的各事务进行撤销(
UNDO)处理
对重做队列中的各个事务进行重做处理
撤销处理方法 : 反向扫描日志文件,对每个 UNDO 事务的更新操作执行逆操作,
即将日志记录中“更新前的值”写入数据库
重做处理方法 :正向扫描日志文件,对每个 REDO 事务重新执行日志文件登记的
操作,即将日志记录中“更新后的值”写入数据库
介质故障的恢复 :重装数据库,然后重做已完成的事务
==============================11===================================
并发控制责任 :保证事务的隔离性和一致性,对并发操作进行正确调度 并发操作数据不一致性 :丢失修改、不可重复读、读“脏”数据
并发控制的主要技术 :封锁、时间戳、乐观控制法、多版本并发控制
主要方法 :封锁机制
封锁 :类型:排他锁(
X 锁)、共享锁(
S 锁)
排他锁(写锁) :若事务 T 对数据对象 A 加上 X 锁,则只允许 T 读取和修改 A,
其它任何事务都不能再对 A 加任何类型的锁,直到 T 释放 A.上的锁
共享锁(读锁) :若事务 T 对数据对象 A 加上 S 锁,则事务 T 可读 A 但不能
修改 A,其它事务只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S
封锁协议
一级封锁协议 :事务 T 在修改数据 R 前必须先对其加 X 锁,直到事务结
束后才释放,解决“丢失修改”问题
二级封锁协议 :在一级封锁协议基础上增加事务 T 在读取数据 R 之前必
须先对其加 S 锁,读完后即可释放 S 锁,解决“丢失修改”和读“脏”
数据问题
三级封锁协议 :在一级封锁协议基础上增加事务 T 在读取数据 R 之前必
须先对其加 S 锁,直至事务结束才释放。解决三个问题
活锁 :某个事务总在等待资源,永远得不到满足
避免 :先来先服务策略
死锁 :所有事务都在等待别的事务永远不会释放的资源
解决方法 :预防死锁、死锁的诊断与解除
预防死锁 :一次封锁法、顺序封锁法
死锁的诊断与解除 :超时法、等待图法
可串行化调度 :多个事务的并发执行是正确的,当且仅当其结果与按某一次序串
行地执行这些事务时的结果相同
可串行性: 并发事务正确调度的准则
冲突操作 :不同事务对同一数据的读写操作和写写操作
Ri(X)与 Wj(
X)、Wi(
X)和 Wi(X)
冲突可串行化调度 是可串行化调度的充分条件
两段锁(
2PL)协议 :指所有事务必须分两个阶段对数据项加锁和解锁
在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁
在释放一个封锁之后,事务不再申请和获得任何其他封锁
含义
第一阶段是获得封锁,也称为扩展阶段
事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁
第二阶段是释放封锁,也称为收缩阶段
事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何
封锁粒度 :封锁对象的大小
增:数据抽象 :分类、聚集
数据类型 :number(x,y);x:有效数字数 y:小数个数【
varchar(n)】
1、Armstrong 公理系统的三条推理规则 :自律性、增广性、传递律
2、关系 R 中所有属性都是主属性 ,规范化程度至少:2NF
视图与基本表的区别和联系
视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,数据库中 只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,
当基本表中的数据发生变化,从视图中查询出的数据也就随之改变。视图一经定
义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,
但是对视图的更新操作有限制。
==================================================================
1、检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、
姓名和专业。
SQL 语句:
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN
(SELECT X1.学号 FROM 学习 X1,学习 X2 WHERE X1.学号=X2.学号
AND X1.课程号=‘C135’AND X2.课程号=‘C219’)
关系代数:
( π 学号,课程号 (学习)÷ π 课程号 ( 课程号=‘C135’∨课程号=‘C219’ (课程))) π 学号,姓名,专业 (学生)
2、设有关系 R 和函数依赖 F: R(
W,X,Y,Z),F = { X→Z,WX→Y }。
1)R 是 1NF。侯选码为 WX,则 Y,Z 为非主属性,又由于 X→Z,因此 F 中
存在非主属性对侯选码的部分函数依赖。
2)将关系分解为:R1(
W,X,Y),F1 = { WX→Y }
R2(
X,Z),F2 = { X→Z }消除了非主属性对码的部分函数依赖。
F1 和 F2 中的函数依赖都是非平凡的,并且决定因素是候选码,均是 BCNF。
3、设有关系 STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为候
选码,设关系中有如下函数依赖:
1)关系 STUDENT 是 1NF,因为 F 中存在非主属性 SNAME,SDEPT,MNAME 对候选
码(S#,CNAME)的部分函数依赖。
2)首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME 将关系分解为:
R1(S#,SNAME,SDEPT,MNAME),F1 = { S#→SNAME,SDEPT,MNAME}
R2(S#,CNAME,GRADE),F2={(S#,CNAME)→GRADE}
在关系 R1 中存在非主属性对候选码的传递函数依赖 S#→SDEPT,所以将 R1 进一
步分解: R11(S#,SNAME,SDEPT) ,F11 = { S#→SNAME,SDEPT}
R12(SDEPT,MNAME) ,F12 = { SDEPT→MNAME}
在 R2,R11,R12 关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,
所以上述三个关系模式均是 BCNF。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号