《2022年数据库系统概论王珊第五版学习笔记.pdf》由会员分享,可在线阅读,更多相关《2022年数据库系统概论王珊第五版学习笔记.pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统概论王珊第五版学习笔记第一章1、数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。数据 :就是数据库中存储的基本对象。描述事物的符号称为数据。数据库 :就是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库数据具有永久存储、有组织与可共享三个基本特点。数据库管理系统 :就是计算机的基础软件。数据库系统 :就是由数据库、数据库管理系统、应用程序与人组成的存储、管理、处理与维护数据的系统。2、数据处理与数据管理。数据处理 :指对各种数据进行手机、存储、加工与传播的一系列活动的总与。数据管理 :指对数据进行分类、组织、编码、存储、检索与维护。3、数据独立性。物理独立
2、性 :指用户的应用程序与数据库中数据的物理存储就是相互独立的。逻辑独立性 :指用户的应用程序与数据库的逻辑结构就是相互独立的。4、数据模型 -就是对现实世界数据特征的抽象(现实世界的模拟 )。数据模型就是数据库系统的核心与基础。概念模型 :信息模型 ,按照用户的观点来对数据与信息建模,主要用于数据库设计。逻辑模型 :按照计算机系统的观点对数据建模。物理模型 :描述数据在计算机内部的表示方式与存取方法。数据模型组成要素:数据结构、数据操作、数据的完整性约束条件。5、信息世界中的基本概念。实体:客观存在并可相互区别的事物。属性:实体所具有的某一特征。码:唯一标识实体的属性集。联系:失误内部以及事物
3、之间就是有联系的。实体内部的联系通常就是指组成实体的个属性之间的联系,实体之间的联系通常就是指不同实体集之间的联系。实体之间的联系有一对一、一对多与多对多等各种类型。6、数据完整性约束条件。实体完整性 :检查主码值就是否唯一,检查主码的各个属性就是否为空。实体完整性精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记在创建表时用primary key 主键来定义。参照完整性 :检查增删改时检查外码约束。在创建表时用外
4、码foreign key 短语定义。用户定义完整性:创建表中定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值限制。列值非空 (not null) 、列值唯一 (unique) 、检查列值就是否满足一个条件表达式(check短语 ) 7、数据库系统的模式。型:就是指对某一类数据的结构与属性的说明,对结构的描述与说明。值:就是型的一个具体赋值。模式 :就是数据库中全体数据的逻辑结构与特征的描述,对结构进行描述,仅仅涉及型。模式的一个具体值称为模式的一个实例。模式反应的事数据的结构及其联系,而实例反应的就是数据库某一时刻的状态。8、数据库的三级模式结构。模式 (逻辑模式 ):就是数据库
5、中全体数据的逻辑结构与特征的描述,需要定义数据想的名字 ,类型 ,取值范围与数据之间的联系,安全性完整性要求等。外模式 (子模式 ):数据库中数据的局部逻辑结构。内模式 (存储模式 ):就是数据物理结构与存储方式的描述,就是数据在数据库内部的组织方式。第二章1、关系模型 -关系数据结构、关系操作集合、关系完整性约束三部分组成。2、关系。域:一组具有相同数据类型的值的集合。关系:笛卡尔积的有限子集。候选码 :关系中某一属性组的值能唯一地标识一个元组。候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性。3、表。基本表 (基本关系、基表 ):实际存在的表 ,就是实际存储数据的逻辑表示。
6、查询表 :就是查询结果对应的表。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记视图表 :就是由基本表或其她视图表导出的表,虚表,不对应实际存储的数据。4、关系代数 :用对关系的运算来表达查询。关系代数运算的 三个要素 :1、运算对象 :关系;2、运算结果 :关系 ;3:运算符 :四类选择运算就是从行的角度进行的运算查询信息系 (IS 系)全体学生Sdept = IS (Student)投影操作主要就是从列的角度
7、进行运算。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行 ) 查询学生的姓名与所在系,即求 Student 关系上学生姓名与所在系两个属性上的投影Sname ,Sdept(Student) 连接也称 连接:连接运算从R与 S的广义笛卡尔积RS中选取 (R关系)在 A 属性组上的值与 (S关系 )在 B 属性组上值满足比较关系的元组除精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记第四章精品
8、资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记1、数据库安全性控制。用户身份鉴别 :静态口令鉴别 ,动态口令鉴别、生物特征鉴别、智能卡鉴别。存取控制 :定义用户权限。合法权限检查。自主存取控制 :授予不同对象不同权限。强制存取控制:数据库中的内容带有密级标记,只有具有相应标记的用户才能够访问。2、授权。授权:-对属性列授权必须指出相应的属性列名。grant select,insert,delete,update o
9、n table Student,Sc to 用户 1,用户 2 收回权限 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记revoke select on table Student,Sc from 用户 1,用户 2 3、角色。数据库角色就是被命名的一组与数据库操作相关的权限,角色就是权限的集合。创建角色、对角色进行授权、将角色授权给其她的角色或者用户、角色权限的收回。创建角色 :create role 角
10、色 1,角色 2 给角色授权 : grant select,inserton table Student to 角色 1,角色 2 将角色授权给其她用户 : grant 角色 1 to 用户 1,用户 2 收回角色权限 : Revoke select On table Student From 角色 1 4、视图。创建视图 : Create view 视图 1 As Select * 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 22 页 - - - - - - - - - - 数据库系统概
11、论王珊第五版学习笔记From Student Where Sdept = CS 第五章1、数据库完整性。数据库的完整性就是指数据的正确性与相容性。数据的正确性就是指额数据就是符合现实世界语义、 反应当前实际状况的。数据的相容性就是指数据库同一对象在不同的关系表中的数据就是符合逻辑的。2、保障数据库的完整性。提供定义完整性约束条件的机制。提供完整性检查的方法。进行违约处理。数据完整性约束条件前文中已经讲述,此处不再赘述。第六章1.函数依赖。若对于 R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X 函数确定 Y” 或“Y函数依赖于X”,记作
12、 XY 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合 ,这种过程叫做 规范化 。1NF(第一范式 )如果一个关系模式R 的所有属性都就是不可分的基本数据项,则 R1NF 第一范式就是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。2NF:如果 R1NF,且每一个 非主属性完全依赖于码,则 R2NF 采用 投
13、影分解法 将一个 1NF的关系分解为多个2NF的关系3NF:如果 R 就是 2NF,且每个 非主属性 都不 传递依赖 于 R的候选码 ,则 R属于 3NF。2NF 消除非主属性的部分依赖,3NF 消除非主属性的传递依赖BCNF的定义 :BCNF不仅对非主属性有要求,而且也对主属性有要求如果一个关系模式只有两个属性构成,则该关系模式一定属于BCNF 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记精品资料 - -
14、- 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记第七章1、数据库设计 ,数据库设计分6 个阶段。需求分析。概念结构设计。逻辑结构设计。物理结构设计。数据库实施。数据库运行与维护。2、数据项就是不可再分的数据单位数据结构反映了数据之间的组合关系。数据流就是数据结构在系统内传输的路径。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共
15、22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记数据存储就是数据结构停留或保存的地方,也就就是流的来源与去向之一。具体处理逻辑一般用判定表或判定树来描述。数据字典就是关于数据库中数据的描述,就是元数据 ,而不就是数据本身。数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。概念结构就是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。自顶向下的进行需求分析,自低向上的设计概念结构。定义数据库模式主要就是从系统的时间效率、空间效率、易维护等角度出发。物理设计的第一任务就就是要确定选择那些存取方法,即建立哪些存取路径。3、 E
16、R 图实体型 :用矩形表示 ,矩形框内写明实体名属性:用椭圆形表示 ,并用无向边将其与相应的实体型连接起来联系 :用菱形表示 ,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n 或 m:n) 联系的属性 :联系本身也就是一种实体型,也可以有属性。 如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记在关系总
17、数尽量少的情况下,该 E-R图转换后关系模式包括: 学生 (学号 ,姓名 ,性别 ,专业,出生日期 ,学院编号 ) 课程 (课程编号 ,课程名称 ,课程类别 ,学分 ) 学院 (学院编号 ,学院名称 ,办公室电话 ,院长教职工编号) 教职工 (教职工编号 ,姓名 ,参加工作时间 ,职称 ,学院编号 ) 选课 (学号 ,课程号 ,成绩) 第八章1、游标。使用 :声明游标、打开游标、从一个游标中提取信息、关闭释放游标。声明游标 :Declare XXX cursor For select * 打开游标 :open XXX关闭游标 :close XXX释放游标 :deallocate XXX 声明一
18、个名为curAllCourse的游标 , 完成统计有多少学生选修了全部课程, 输出学生学号与姓名 。declarecurAllCoursecursor/ 声明游标forSELECT SNO,sname fromstudent 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记wheresnoin( selectsno fromsc groupbysno havingCOUNT(*)= ( selectCOUNT
19、(*) fromcourse ) ) forreadonly opencurAllCourse / 打开游标declaresno char ( 10 ), sname char ( 10 ) /声明变量setsno=0 fetchnextfromcurAllCourseintosno, sname / 从游标中取数据whileFETCH_STATUS= 0 begin ifsname isnull setsno = sno + 1 selectsno 学号 , sname 姓名fetchnextfromcurAllCourseintosno, sname end CLOSE curAllCou
20、rse /关闭游标DEALLOCATE curAllCourse / 释放游标2、存储过程。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记类似与 C 语言中的函数。编写一个存储过程, 在 sc 表统计每个学生的平均分、createprocavergrade / 创建存储过程as begin selectsno , avg ( grade )平均分fromsc groupbysno end execavergr
21、ade / 执行存储过程dropprocedureavergrade / 删除存储过程对练习 1的存储过程进行改进,添加一个输入参数学号,使存储过程能根据输入的学号计算该学生的平均分createprocavergrade sno char ( 10) as begin selectsno , avg ( grade )平均分精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记fromsc wheresno= sno
22、 groupbysno end execavergrade04 dropprocedureavergrade 在练习 2的基础上添加一个输出参数平均分,计算指定学号的平均分,然后将平均分输出。createprocavergrade snochar ( 10 ), savingintout as begin selectsaving= avg ( grade) fromsc wheresno= sno groupbysno end declareavgintsetavg= 0 execavergrade02, avgout selectavg 平均分dropprocedureavergrade
23、3、函数。函数必须返回指定类型,可以返回表 ,有输入参数。创建成绩转换函数,实现百分制成绩与优、良、中、及格、不及格五个等级的换算、CREATE FUNCTION grade_trans(grade FLOAT) RETURNS CHAR(16) AS BEGIN DECLARE class CHAR(16) SELECT class = CASE WHEN grade IS NULL THEN 还没参加考试 WHEN grade = 60 and grade = 70 and grade = 80 and grade 90 THEN 良好 ELSE 优秀! END RETURN(class)
24、 END select dbo、grade_trans(88) 查询某个院系所有学生所选的每门课的平均成绩。createfunctionaver( p char ( 10 )returnstable as return ( selectcno课程号 , avg ( grade)平均成绩fromstudent, sc wherestudent、sno =sc 、snoandsdept=p groupbycno ) select*fromdbo 、 aver ( cs) dropfunctionaver 求某个院系选修了某门课的学生人数。createfunctionpeople( p0 char(
25、 10 ), p1 char ( 4)returnsint as begin declarerenshuint selectrenshu=( selectCOUNT(*)选课人数fromstudent, sc wherestudent、 sno= sc 、snoandcno= p1 andsdept=p0 ) returnrenshu end 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记selectdbo
26、、people( cs, 2) dropfunctionpeople 4、触发器。Create trigger XXX On table for /after /instead of Insert,delete,update As 触发器实际需要触发内容For:用法同 after After:执行完 sql 语句之后进行检查 ,检查不符合条件的话回滚roll back 。after 触发器只能在表上指定。Instead of :指定触发器时代替SQL语句执行的 ,其优先级高于触发语句的操作。例: 为 student 表建立触发器T1,当插入或更新表中的数据时,保证所操作的记录的sage值大于
27、0。createtriggerT1 onstudent afterinsert, update asbegin declaresageintselectsage= inserted、sagefrominserted if( sage 0 ) begin print 年龄错误 rollbacktransaction end end updatestudent setsage= 38 wheresno= 01 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 22 页 - - - - - - -
28、- - - 数据库系统概论王珊第五版学习笔记insertintostudent( sno , sname , ssex , sage , sdept) values( 2007011, 张三 , 男 , 55 , ma) 为student表建立触发器T2, 禁止删除编号为“0001 ”的学生。insertintostudent( sno , sname , ssex , sage , sdept) values( 0001, 傻大个 , 男 , 19 , is) createtriggerT2 onstudent afterdelete as begin declaresnochar( 10
29、) selectsno=deleted、snofromdeleted if( sno= 0001) begin print 禁止删除学号0001 信息 rollbacktransaction end end deletestudentwheresno= 0001 droptriggerT2 第十章1.事务。就是一系列的数据库操作,就是数据库应用程序的基本逻辑单元。就是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做 ,就是一个不可分割的工作单元。2.事务的四个特性。原子性 :事务就是数据库的逻辑工作单位,事务总包括的诸操作要么全做,要么全不做。一致性 :数据库只包含成功事务提交的结果
30、,就说数据库处于一致性状态。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记隔离性 :一个事务的执行不能被其她事务干扰。即一个事务的内部操作及使用的数据对其她并发事务就是隔离的,并发执行的各个事务之间不能互相干扰。持续性 :指一个事务一旦提交,她对数据库中数据的改变就应该就是永久性的。事务就是恢复与并发控制的基本单位。3.数据库恢复。把数据库从错误状态恢复到某一已知的正确状态的功能。1. 运行事务非正常中断。2
31、. 数据丢失。4.故障种类。运行事务非正常中断-恢复 -事务撤销。系统故障、介质故障、计算机病毒。5.恢复实现技术。数据恢复的基本原理:冗余。建立冗余数据最常用的技术就是数据转储与登记日志文件。6. 数据转储。静态转储 :就是在系统中无运行事务时进行的转储操作。动态转储 :就是指转储期间允许对数据库进行存取或修改。即转储与用户事务可以并发执行。海量转储 :每次转储全部数据库。增量转储 :指每次只转储上一次转储后更新过的数据。7、日志文件。就是用来记录事务对数据库的更新操作的文件。在事务故障恢复与系统故障恢复必须用日志文件。在动态转储方式中必须建立日志文件,后备副本与日志文件结合起来才能有效地恢
32、复数据库。在静态转储中也建立日志文件8.登记日志文件 (对数据库的操作记录)。登记的次序严格按并发事务执行的时间次序。必须先写日志文件,后写数据库。9.事务故障的恢复。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记恢复子系统应利用日志文件撤销此事务已对数据库进行的修改,系统自动进行。10.系统故障恢复。导致故障原因可能有两个: 1. 未完成事务对数据库的更新可能已写入数据库。2. 已提交事务对数据库的更新可能
33、还留在缓冲区没来得及写入数据库。恢复策略就是撤销故障发生时未完成的事物,重做已完成的事物。11.介质故障的恢复。数据库副本。第十一章1. 并发操作带来的数据不一致性。并发操作破坏了事务的隔离性。丢失修改 :两个事务同时读入同一数据并修改,T2提交的结构破坏了T1 提交的结果 ,导致T1 的修改被丢失。不可重复读 :事务 1 读取数据后 ,事务 2 执行更新操作 ,使 T1 无法再现前一次读取结果。读脏数据 :事务 1 修改某一数据并将其写回磁盘,事务 2 读取同一数据后,T1由于某种原因被撤销 ,这时被 T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则 T2读到的数据就为脏
34、数据,即不正确的数据。2、并发控制的主要技术。封锁、时间戳、乐观控制法、多版本并发控制等。3、 封锁。封锁就就是事务T 对某个数据对象操作之前,先向系统发出请求,对该数据对象进行加锁。加锁后事务T 就对该数据对象有了一定的控制,在事务 T释放它的锁之前,其她事务不能更新此数据对象。4、封锁类型。排她锁 (写锁 ):若事务 T 对数据对象A 加上 X 锁,则只允许T 读取与修改A,其她任何事务都不能再对A 加任何类型的锁,直到 T 释放 A 上的锁为止。保证了其她事务在T 释放 A 上的锁之前不能再读取与修改A。共享锁 (读锁 ):若事务 T 对数据对象A 加上 S锁 ,则事务 T可以读 A 但
35、不能修改A,其她事务只能再对A 加 S锁,而不能加 X锁,直到 T 释放 A 上的 S锁为止。保证了其她事务可以读A,但在 T 释放 S锁之前不能对A 做任何修改。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记5、封锁协议。一级封锁协议:事务 T在修改数据R 之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改 ,保证事务T 就是可恢复的。二级封锁协议:在一级封锁协议基础上增加事务T在读取数据R之前必须先
36、对其加S锁,读完后即可释放S锁。 二级封锁协议可以防止丢失修改与读“脏”数据三级封锁协议:在一级封锁协议的基础上增加事务T 在读取数据R 之前必须先对其加S锁,直到事务结束才释放。三级封锁协议可防止丢失修改、读脏数据与不可重复读,容易造成比较多的死锁。6、活锁与死锁活锁 :有一个事务一直等待无法执行。死锁 :T1 等待 T2,T2等待 T1。避免活锁 :采用 先来先服务 的策略。预防死锁的方法:一次封锁法、 顺序封锁法死锁的诊断 :超时法、 事务等待图法7、可串行化调度。多个事务的并发执行就是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行性就是并发事务正确调度的准则。
37、一个给定的并发调度,当且仅当它就是可串行化的 ,才认为就是正确调度。8、两段锁协议。实现并发调度的可串行性,从而保证调度的正确性。9、所有事务必须分两个阶段对数据项加锁与解锁。在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。在释放一个封锁之后,事务不在申请与获得任何其她封锁。指事务分为两个阶段:一、获得封锁 ,事务可以申请获得任何数据项上的任何类型的锁,不能释放任何锁。 二:释放封锁 ,事务可以释放任何数据项上的任何类型的锁,但就是不能再申请任何锁。事务遵守两段锁协议就是可串行化调度的充分条件,而不就是必要条件。若调度就是遵守两段锁协议的,因此一定就是一个可串行化调度。反之不然
38、。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 21 页,共 22 页 - - - - - - - - - - 数据库系统概论王珊第五版学习笔记应用题1、授权例题把对 Student 表与 Course表的全部权限授予用户U2 与 U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3; 把对表 SC的查询权限授予所有用户GRANT SELECT ON TABLE SC TO PUBLIC 把对表 SC的 INSERT 权限授予 U5 用户,并允许她再将此权限授予其她用户GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 22 页,共 22 页 - - - - - - - - - -