数据库系统 复习总结


填空(10)、选择(5)、简答(10)、解答(75)

绪论

数据库管理系统:管理数据库,支持应用的软件系统 DataBase Management System (DBMS)
数据字典 是数据库管理系统的信息中心

  • 数据
    描述现实世界对象或抽象概念的信息载体
    数据有不同的类型及语义
  • 数据库
    存储在计算机系统 中的数据集合
    数据库模式、数据库实例
  • 数据库管理系统
    管理数据库的软件系统
    支持数据存储、维护、查询、安全、正确
  • 数据库系统
    DB、DBMS、开发工具、应用系统、用户
  • 三层数据抽象
    视图抽象、概念抽象、物理抽象
    外模式、逻辑模式、内模式
  • 两级数据独立性
    物理独立性、逻辑独立性
  • 数据模型
    数据结构、数据操作、数据约束
    ER模型、关系模型、面向对象模型等
  • 数据语言
    DDL(Description 数据定义语言)、DML(Manipulation 数据操纵语言)、DCL(Control 数据控制语言)

关系数据库

关系模型

数据库中常见的关系类型

  • 基本关系(又称基本表、基表):
    • 由用户定义的,在数据库中实际存储的关系
    • 可以查询与更新(增、删、改)
  • 中间结果关系
    • 对关系进行查询,产生的中间结果
    • 在数据库中临时/永久存储(由系统建立)
    • 只可查询,不可更新
  • 视图关系(简称视图,又叫虚表)
    • 用户根据需要定义的关系
    • 定义在基本关系或视图上
    • 只有模式,没有实例
    • 没有对应的实际存储的数据
    • 可查询,更新受限

完整性约束

软件系统无法保证数据的真实正确性,但是可以保证数据符合明确定义的约束

  • 超码:超码的值可以在关系模式R中唯一地标识一个元组
  • 候选键:只有其任何真子集都不是超码的 超码 才是候选键,即候选键 ⊆ 超码
    如 student(stuID, sName, sSex, sGrade…) 中,(stuID),(stuID, sName),(stuID, sName, sSex),都是超码,但是只有(stuID)是候选键,没有多余的属性

关系运算

选择 σ X θ Y ( R ) \sigma_{X \theta Y}(R) σY(R),其中 θ ∈ { = , ≠ , > , ≥ , < , ≤ } \theta ∈\{=, ≠, >, ≥, <, ≤\} θ{=,=,>,,<,}. X, Y是属性名或常量
投影

SQL语句

数据定义语句(DDL):

创建表:		create table Student
				(Name	VARCHAR(15) NOT NULL,
				 SSN	CHAR(9) NOT NULL,
				 Primary key (SSN));	
			create table Grade
				(SSN	CHAR(8) NOT NULL,
				 CNO	CHAR(7) NOT NULL,
				 Score	INTEGER,
				 Primary key (SSN, CNO),
				 Foreign key (SSN) references Student);
删除表:		drop table Student;
修改表:		alter table Student ADD Age INTEGER;  /* 增加一个属性Age */
			alter table Student DROP Age;  /* 删除属性Age */
创建视图: 	create view <视图名> AS <SELECT语句>
删除视图:	drop view <视图名>
创建索引:	create index	删除索引:	drop index

数据库安全

数据库安全性

CASCADE(级联):在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
RESTRICT:同no action, 都是立即检查外键约束

授权:
GRANT [权限] ON [数据库对象] TO 用户

权限回收:
REVOKE [权限] ON TABLE [表名] From [用户];
示例:REVOKE UPDATE(Cno) ON TABLE Course From Bob;

数据库完整性

在这里插入图片描述

  • 触发器 Trigger
    用户定义在关系表上的一类由事件驱动的特殊过程,定义之后的触发器存储在数据库服务器中
定义触发器的语法:
1	CREATE TRIGGER <触发器名>
2	{BEFORE | AFTER} <触发事件> ON <表名>    
3	REFERENCING NEW|OLD ROW|TABLE AS <变量>
4	FOR EACH {ROW | STATEMENT}
5	[WHEN <触发条件>] <触发动作体>;

第2行:触发时机:
• after 触发事件执行之后激活触发器
• before 触发事件执行之前。激活触发器
第3行:触发动作体:
• 可以是一个匿名的PL/SQL过程块, 也可以是对已创建存储过程的调用
• 行级触发器中可以使用NEW ROW和OLD ROW引用UPDATE/ INSERTION之后的新值以及UPDATE/DELETION之前的旧值
• 语句级触发器使用NEW TABLE和OLD TABLE引用包含所有被影响的行的临时表
第4行:触发器分类:
按照所触发动作的间隔粒度分为:
• 行级触发器(FOR EACH ROW)
• 语句级触发器(FOR EACH STATEMENT)
• 在SC表上定义一个After Update触发器,SC有100个元组,
执行UPDATE SC SET GRADE=0;
• 行级触发器的触发动作体执行100次; 语句级中执行1次
第5行:触发条件:
• 触发器被激活时,只有当触发条件为真时触发动作体才执行
• 如果省略WHEN触发条件,触发动作体在触发器激活后立即执行

删除触发器的语法:
1	DROP TRIGGER <触发器名> ON <表名>;

在这里插入图片描述

create trigger check1 after insert on SC
	referencing new row as nrow
	for each row
	when (nrow.cno not in 
		(select cno from course))
	begin
		rollback;
	end;

create trigger check2 after delete on Course
	referencing old row as orow
	for each row
	when (orow.cno not in (select cno from Course)
	  and orow.cno in (select cno from SC))
	 begin
	 	rollback;
	 end;

在这里插入图片描述
在这里插入图片描述

数据库设计

数据库设计概述与需求分析

函数依赖

在这里插入图片描述

  • Armstrong公理:
    自反律:在这里插入图片描述
    增广律:在这里插入图片描述
    传递律:在这里插入图片描述
    合并规则:在这里插入图片描述
    分解规则:在这里插入图片描述

  • 闭包算法
    在这里插入图片描述
    在这里插入图片描述
    然后,再利用Armstrong定理求解 L 类和 N 类属性构成唯一候选键

  • 极小函数依赖集:
    在这里插入图片描述
    解析:每个函数依赖 左部 不包含多余的属性,右部 只包含一个属性每个函数依赖都不能被其他的替代

极小函数依赖集 不唯一
函数依赖集 与 其极小函数依赖集 与 其闭包 都是等价的

练习:
在这里插入图片描述
在这里插入图片描述

无损连接验证算法

在这里插入图片描述
练习:
在这里插入图片描述

范式

1NF:每个关系的属性值都不可分(可能存在问题: 非键属性 部分函数依赖于 候选键)
2NF:1NF + 每一个非键属性 都完全函数依赖于 候选键
3NF:2NF + 非键属性 都不传递函数依赖于 候选键
BCNF:1NF + 对于每个函数依赖X→Y,X必包含候选键 或 3NF + 主属性也满足3NF的依赖性
示例:
在这里插入图片描述

在这里插入图片描述

关系模式分解

  • 3NF分解算法1(保持函数依赖):
    ① 求出函数依赖集的极小依赖集(左无多余、右单一、互相不可代替
    ② 将极小依赖集的每一个函数依赖 转化为 一个关系模式
    例题:
  • 3NF分解算法2(保持函数依赖和无损连接):
    ① 先利用算法1求出保持函数依赖的分解 ρ = { R 1 , R 2 , . . . , R n } \rho=\{R_1,R_2,...,R_n\} ρ={R1,R2,...,Rn}
    ② 再构造一个包含候选键的分解 τ = { R 1 , R 2 , . . . , R n , R k } \tau=\{R_1,R_2,...,R_n,R_k\} τ={R1,R2,...,Rn,Rk},其中 R k R_k Rk是由候选键构成的关系
    在这里插入图片描述
  • BCNF分解算法:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

物理存储结构

磁盘容错技术

RAID1 策略:每个数据盘附加一个冗盘(也称镜像盘)
RAID4 策略:仅使用一个冗余盘完成n个数据盘的奇偶校验
RAID5 策略:每个磁盘作为某些磁盘扇区的冗余磁盘

主索引 辅助索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
主索引方法中,索引记录数 等于 存储F文件的磁盘块数 r/(B/L)


辅助索引方法中,索引记录数 等于 F文件的记录数 r
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

事务

事物的特性ACID:原子性、一致性、隔离性、持久性

事务的并发执行和调度

事务并发执行带来的问题
① 产生 多个事务同时存取同一数据 的情况
② 可能会存取不正确的数据,破坏事务隔离性和数据库的一致性(丢失修改、不可重复读)

不可重复读 示例:
事务T1 按一定条件从数据库中读取了某些数据记录后,事务T2 插入(或删除)了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录多出来(或消失)了。(这两种不可重复读也称为“幻影现象”)

死锁:在数据库系统运行期间,如果存在一组事务{T0,T1,…,Tn},使得T0等待T1持有的数据库元素锁,T1等待T2持有的锁,……, Tn-1等待Tn持有的锁,Tn等待T0持有的锁,则称系统处于死锁状态
解决方案:使用预防死锁协议,如:数据库图协议时间戳协议

数据库恢复技术

日志文件:是日志记录的一个序列,用于记载数据库事务对数据库的更新操作情况
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库期末复习bupt是指在北京邮电大学学习数据库课程的学生进行期末复习的过程。在这个过程中,学生需要复习数据库的基本概念,包括数据的存储和管理、数据库设计和规范化、SQL语言以及数据库应用等内容。学生需要掌握数据库的原理和技术,理解数据库系统的结构和运行机制,掌握数据库设计的方法和技巧,熟练掌握SQL语言的基本操作和应用技巧。 数据库期末复习bupt是一个需要认真对待的过程,学生需要花费大量的时间和精力来复习和巩固数据库的知识。复习的内容主要包括课堂上老师讲授的知识点,课本上的重点内容以及平时作业和实验课的内容。通过反复的复习和练习,学生可以逐渐提高对数据库知识的理解和掌握程度,为期末考试做好充分的准备。 数据库期末复习bupt的过程充满了挑战和机遇。学生需要认真对待每一个知识点,理清思路,找准重点,加强练习,多做题目,尽量做到知识的广度和深度结合,确保能够在考试中熟练运用所学的知识,取得好成绩。同时,复习过程也是一个提高自己学习能力和解决问题能力的过程,通过不断的思考和总结,可以提高对知识的理解和运用能力,培养自己的分析和解决问题的能力。在数据库期末复习bupt的过程中,学生需要认真对待,踏实努力,相信自己一定能够取得好成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值