数据库系统概论王珊第五版学习笔记_第1页
数据库系统概论王珊第五版学习笔记_第2页
数据库系统概论王珊第五版学习笔记_第3页
数据库系统概论王珊第五版学习笔记_第4页
数据库系统概论王珊第五版学习笔记_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章第一章 1 数据库的四个基本概念 数据 数据库 数据库管理系统 数据库系统 数据 是数据库中存储的基本对象 描述事物的符号称为数据 数据库 是长期存储在计算机内 有组织的 可共享的大量数据的集合 数据库 数据具有永久存储 有组织和可共享三个基本特点 数据库管理系统 是计算机的基础软件 数据库系统 是由数据库 数据库管理系统 应用程序和人组成的存储 管理 处理和维护数据的系统 2 数据处理和数据管理 数据处理 指对各种数据进行手机 存储 加工和传播的一系列活动的总和 数据管理 指对数据进行分类 组织 编码 存储 检索和维护 3 数据独立性 物理独立性 指用户的应用程序与数据库中数据的物理存储是相互独立的 物理独立性 指用户的应用程序与数据库中数据的物理存储是相互独立的 逻辑独立性 指逻辑独立性 指用户的应用程序与数据库的逻辑结构是相互独立的 用户的应用程序与数据库的逻辑结构是相互独立的 4 数据模型 是对现实世界数据特征的抽象 现实世界的模拟 数据模型是数据库系统的核心和基础 概念模型 信息模型 按照用户的观点来对数据和信息建模 主要用于数据库设 计 逻辑模型 按照计算机系统的观点对数据建模 物理模型 描述数据在计算机内部的表示方式和存取方法 数据模型组成要素 数据结构 数据操作 数据的完整性约束条件 数据模型组成要素 数据结构 数据操作 数据的完整性约束条件 5 信息世界中的基本概念 实体 客观存在并可相互区别的事物 属性 实体所具有的某一特征 码 唯一标识实体的属性集 联系 失误内部以及事物之间是有联系的 实体内部的联系通常是指组成实体的 个属性之间的联系 实体之间的联系通常是指不同实体集之间的联系 实体之间的联 系有一对一 一对多和多对多等各种类型 6 数据完整性约束条件 数据完整性约束条件 实体完整性实体完整性 检查主码值是否唯一 检查主码的各个属性是否为空 实体完整性 在创建表时用 primary key 主键来定义 参照完整性参照完整性 检查增删改时检查外码约束 在创建表时用外码 foreign key 短语 定义 用户定义完整性用户定义完整性 创建表中定义属性的同时 可以根据应用要求定义属性上的约 束条件 即属性值限制 列值非空 not null 列值唯一 unique 检查列值是否满足一个条件表达式 check 短语 7 数据库系统的模式 型 是指对某一类数据的结构和属性的说明 对结构的描述和说明 值 是型的一个具体赋值 模式 是数据库中全体数据的逻辑结构和特征的描述 对结构进行描述 仅仅涉 及型 模式的一个具体值称为模式的一个实例 模式反应的事数据的结构及其联系 而实例反应的是数据库某一时刻的状态 8 数据库的三级模式结构 模式 逻辑模式 是数据库中全体数据的逻辑结构和特征的描述 需要定义数 据想的名字 类型 取值范围和数据之间的联系 安全性完整性要求等 外模式 子模式 数据库中数据的局部逻辑结构 内模式 存储模式 是数据物理结构和存储方式的描述 是数据在数据库内部 的组织方式 第二章第二章 1 关系模型 关系数据结构 关系操作集合 关系完整性约束三部分组成 2 关系 域 一组具有相同数据类型的值的集合 关系 笛卡尔积的有限子集 候选码 关系中某一属性组的值能唯一地标识一个元组 候选码 关系中某一属性组的值能唯一地标识一个元组 候选码的诸属性称为主属性 不包含在任何候选码中的属性称为非主属性 3 表 基本表 基本关系 基表 实际存在的表 是实际存储数据的逻辑表示 查询表 是查询结果对应的表 视图表 是由基本表或其他视图表导出的表 虚表 不对应实际存储的数据 4 关系代数 用对关系的运算来表达查询 关系代数运算的三个要素三个要素 1 运算对象 关系 2 运算结果 关系 3 运算符 四类 选择运算是从行的角度进行的运算 查询信息系 查询信息系 IS 系 全体学生系 全体学生 Sdept IS Student 投影操作主要是从列的角度进行运算 投影之后不仅取消了原关系中的某些列 而且还可能取消某些元组 避免重复行 查询学生的姓名和所在系 即求查询学生的姓名和所在系 即求 Student 关系上学生姓名和所在系两个属性上的投影关系上学生姓名和所在系两个属性上的投影 Sname Sdept Student 连接也称 连接 连接运算从 R 和 S 的广义笛卡尔积 R S 中选取 R 关系 在 A 属性组上的值与 S 关系 在 B 属性组上值满足比较关系的元组 除 第四章第四章 1 数据库安全性控制 用户身份鉴别 静态口令鉴别 动态口令鉴别 生物特征鉴别 智能卡鉴别 存取控制 定义用户权限 合法权限检查 自主存取控制 授予不同对象不同权限 强制存取控制 数据库中的内容带有密级标记 只有具有相应标记的用户才能够 访问 2 授权 授权 授权 授权 对属性列授权必须指出相应的属性列名 对属性列授权必须指出相应的属性列名 grant select insert delete update on table Student Sc to 用户用户 1 用户用户 2 收回权限 收回权限 revoke select on table Student Sc from 用户用户 1 用户用户 2 3 角色 角色 数据库角色是被命名的一组与数据库操作相关的权限 角色是权限的集合 数据库角色是被命名的一组与数据库操作相关的权限 角色是权限的集合 创建角色 对角色进行授权 将角色授权给其他的角色或者用户 角色权创建角色 对角色进行授权 将角色授权给其他的角色或者用户 角色权 限的收回 限的收回 创建角色 创建角色 create role 角色角色 1 角色角色 2 给角色授权 给角色授权 grant select insert on table Student to 角色角色 1 角色角色 2 将角色授权给其他用户 将角色授权给其他用户 grant 角色角色 1 to 用户用户 1 用户用户 2 收回角色权限 收回角色权限 Revoke select On table Student From 角色角色 1 4 视图 视图 创建视图 创建视图 Create view 视图视图 1 As Select From Student Where Sdept CS 第五章第五章 1 数据库完整性 数据库的完整性是指数据的正确性和相容性 数据库的完整性是指数据的正确性和相容性 数据的正确性是指额数据是符合现实世 界语义 反应当前实际状况的 数据的相容性是指数据库同一对象在不同的关系表中的数 据是符合逻辑的 2 保障数据库的完整性 提供定义完整性约束条件的机制 提供完整性检查的方法 进行违约处理 数据完整性约束条件前文中已经讲述 此处不再赘述 第六章第六章 1 函数依赖 若对于 R U 的任意一个可能的关系 r r 中不可能存在两个元组在 X 上的属性值相等 而在 Y 上的属性值不等 则称 X 函数确定 Y 或 Y 函数依赖于 X 记作 X Y 一个低一级范式的关系模式 通过模式分解可以转换为若干个高一级范式的关系模式 的集合 这种过程叫做规范化规范化 1NF 第一范式 如果一个关系模式 R 的所有属性都是不可分的基本数据项不可分的基本数据项 则 R 1NF 第一范式是对关系模式的最起码的要求 不满足第一范式的数据库模式不能称为关系 数据库 2NF 如果 R 1NF 且每一个非主属性完全依赖非主属性完全依赖于码 则则 R 2NF 采用投影分解法投影分解法将一个 1NF 的关系分解为多个 2NF 的关系 3NF 如果 R 是 2NF 且每个非主属性非主属性都不传递依赖传递依赖于 R 的候选码 则 R 属于 3NF 2NF 消除非主属性的部分依赖 消除非主属性的部分依赖 3NF 消除非主属性的传递依赖消除非主属性的传递依赖 BCNF 的定义 的定义 BCNF 不仅对非主属性有要求 而且也对主属性有要求不仅对非主属性有要求 而且也对主属性有要求 如果一个关系模式只有两个属性构成 则该关系模式一定属于如果一个关系模式只有两个属性构成 则该关系模式一定属于 BCNF 第七章第七章 1 数据库设计 数据库设计分 6 个阶段 需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护 2 数据项是不可再分的数据单位 数据结构反映了数据之间的组合关系 数据流是数据结构在系统内传输的路径 数据存储是数据结构停留或保存的地方 也就是流的来源和去向之一 具体处理逻辑一般用判定表或判定树来描述 数据字典是关于数据库中数据的描述 是元数据 而不是数据本身 数据字典在需求分析阶段建立 在数据库设计过程中不断修改 充实 完善 概念结构是各种数据模型的共同基础 它比数据模型更独立于机器 更抽象 从而更 加稳定 自顶向下的进行需求分析 自低向上的设计概念结构 定义数据库模式主要是从系统的时间效率 空间效率 易维护等角度出发 物理设计的第一任务就是要确定选择那些存取方法 即建立哪些存取路径 3 E R 图图 实体型 用矩形表示 矩形框内写明实体名 属性 用椭圆形表示 并用无向边将其与相应的实体型连接起来 联系 用菱形表示 菱形框内写明联系名 并用无向边分别与有关实体连接起来 同 时在无向边旁标上联系的类型 1 1 1 n 或 m n 联系的属性 联系本身也是一种实体型 也可以有属性 如果一个联系具有属性 则 这些属性也要用无向边与该联系连接起来 在关系总数尽量少的情况下 该 E R 图转换后关系模式包括 学生 学号学号 姓名 性别 专业 出生日期 学院编号学院编号 课程 课程编号课程编号 课程名称 课程类别 学分 学院 学院编号学院编号 学院名称 办公室电话 院长教职工编号院长教职工编号 教职工 教职工编号教职工编号 姓名 参加工作时间 职称 学院编号学院编号 选课 学号 课程号学号 课程号 成绩 第八章第八章 1 游标 使用 声明游标 打开游标 从一个游标中提取信息 关闭释放游标 声明游标 Declare XXX cursor For select 打开游标 open XXX 关闭游标 close XXX 释放游标 deallocate XXX 声明一个名为声明一个名为curAllCourse的游标 完成统计有多少学生选修了全部课程 输出学生学号和的游标 完成统计有多少学生选修了全部课程 输出学生学号和 姓名姓名 declare curAllCourse cursor 声明游标 for SELECT SNO sname from student where sno in select sno from sc group by sno having COUNT select COUNT from course for read only open curAllCourse 打开游标 declare sno char 10 sname char 10 声明变量 set sno 0 fetch next from curAllCourse into sno sname 从游标中取数据 while FETCH STATUS 0 begin if sname is null set sno sno 1 select sno 学号 sname 姓名 fetch next from curAllCourse into sno sname end CLOSE curAllCourse 关闭游标 DEALLOCATE curAllCourse 释放游标 2 存储过程 类似与 C 语言中的函数 编写一个存储过程 在编写一个存储过程 在 sc 表统计每个学生的平均分表统计每个学生的平均分 create proc avergrade 创建存储过程 as begin select sno avg grade 平均分 from sc group by sno end exec avergrade 执行存储过程 drop procedure avergrade 删除存储过程 对练习对练习1的存储过程进行改进 添加一个输入参数的存储过程进行改进 添加一个输入参数 学号 使存储过程能根据输入的学号学号 使存储过程能根据输入的学号 计算该学生的平均分计算该学生的平均分 create proc avergrade sno char 10 as begin select sno avg grade 平均分 from sc where sno sno group by sno end exec avergrade 04 drop procedure avergrade 在练习在练习2的基础上添加一个输出参数的基础上添加一个输出参数 平均分 计算指定学号的平均分 然后将平均分输平均分 计算指定学号的平均分 然后将平均分输 出 出 create proc avergrade sno char 10 saving int out as begin select saving avg grade from sc where sno sno group by sno end declare avg int set avg 0 exec avergrade 02 avg out select avg 平均分 drop procedure avergrade 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 END select dbo grade trans 88 查询某个院系所有学生所选的每门课的平均成绩 查询某个院系所有学生所选的每门课的平均成绩 create function aver p char 10 returns table as return select cno 课程号 avg grade 平均成绩 from student sc where student sno sc sno and sdept p group by cno select from dbo aver cs drop function aver 求某个院系选修了某门课的学生人数 求某个院系选修了某门课的学生人数 create function people p0 char 10 p1 char 4 returns int as begin declare renshu int select renshu select COUNT 选课人数 from student sc where student sno sc sno and cno p1 and sdept p0 return renshu end select dbo people cs 2 drop function people 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值大于值大于0 create trigger T1 on student after insert update as begin declare sage int select sage inserted sage from inserted if sage 0 begin print 年龄错误 rollback transaction end end update student set sage 38 where sno 01 insert into student sno sname ssex sage sdept values 张三 男 55 ma 为为student表建立触发器表建立触发器T2 禁止删除编号为 禁止删除编号为 0001 的学生 的学生 insert into student sno sname ssex sage sdept values 0001 傻大个 男 19 is create trigger T2 on student after delete as begin declare sno char 10 select sno deleted sno from deleted if sno 0001 begin print 禁止删除学号0001信息 rollback transaction end end delete student where sno 0001 drop trigger T2 第十章第十章 1 事务 是一系列的数据库操作 是数据库应用程序的基本逻辑单元 是用户定义的一个数据库操作序列 这些操作要么全做 要么全不做 是一个不可分 割的工作单元 2 事务的四个特性 原子性原子性 事务是数据库的逻辑工作单位 事务总包括的诸操作要么全做 要么全不做 一致性一致性 数据库只包含成功事务提交的结果 就说数据库处于一致性状态 隔离性隔离性 一个事务的执行不能被其他事务干扰 即一个事务的内部操作及使用的数据 对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰 持续性持续性 指一个事务一旦提交 他对数据库中数据的改变就应该是永久性的 事务是恢复和并发控制的基本单位 事务是恢复和并发控制的基本单位 3 数据库恢复 把数据库从错误状态恢复到某一已知的正确状态的功能 1 运行事务非正常中断 2 数据丢失 4 故障种类 运行事务非正常中断 恢复 事务撤销 系统故障 介质故障 计算机病毒 5 恢复实现技术 数据恢复的基本原理 冗余 冗余 建立冗余数据最常用的技术是数据转储和登记日志文件 6 数据转储 静态转储 是在系统中无运行事务时进行的转储操作 动态转储 是指转储期间允许对数据库进行存取或修改 即转储和用户事务可以并发 执行 海量转储 每次转储全部数据库 增量转储 指每次只转储上一次转储后更新过的数据 7 日志文件 是用来记录事务对数据库的更新操作的文件 在事务故障恢复和系统故障恢复必须用日志文件 在动态转储方式中必须建立日志文件 后备副本和日志文件结合起来才能有效地恢复 数据库 在静态转储中也建立日志文件 8 登记日志文件 对数据库的操作记录 登记的次序严格按并发事务执行的时间次序 必须先写日志文件 后写数据库 9 事务故障的恢复 恢复子系统应利用日志文件撤销此事务已对数据库进行的修改 系统自动进行 10 系统故障恢复 导致故障原因可能有两个 1 未完成事务对数据库的更新可能已写入数据库 2 已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库 恢复策略是 撤销故障发生时未完成的事物 重做已完成的事物 11 介质故障的恢复 数据库副本 第十一章第十一章 1 并发操作带来的数据不一致性 并发操作破坏了事务的隔离性 丢失修改 两个事务同时读入同一数据并修改 T2 提交的结构破坏了 T1 提交的结果 导致 T1 的修改被丢失 不可重复读 事务 1 读取数据后 事务 2 执行更新操作 使 T1 无法再现前一次读取结 果 读脏数据 事务 1 修改某一数据并将其写回磁盘 事务 2 读取同一数据后 T1 由于某 种原因被撤销 这时被 T1 修改过的数据恢复原值 T2 读到的数据就与数据库中的数据不 一致 则 T2 读到的数据就为脏数据 即不正确的数据 2 并发控制的主要技术 封锁 时间戳 乐观控制法 多版本并发控制等 3 封锁 封锁就是事务 T 对某个数据对象操作之前 先向系统发出请求 对该数据对象进行加 锁 加锁后事务 T 就对该数据对象有了一定的控制 在事务 T 释放它的锁之前 其他事务 不能更新此数据对象 4 封锁类型 排他锁 写锁 若事务 T 对数据对象 A 加上 X 锁 则只允许 T 读取和修改 A 其他 任何事务都不能再对 A 加任何类型的锁 直到 T 释放 A 上的锁为止 保证了其他事务在 T 释放 A 上的锁之前不能再读取和修改 A 共享锁 读锁 若事务 T 对数据对象 A 加上 S 锁 则事务 T 可以读 A 但不能修改 A 其他事务只能再对 A 加 S 锁 而不能加 X 锁 直到 T 释放 A 上的 S 锁为止 保证了其 他事务可以读 A 但在 T 释放 S 锁之前不能对 A 做任何修改 5 封锁协议 一级封锁协议 一级封锁协议 事务 T 在修改数据在修改数据 R 之前必须先对其加之前必须先对其加 X 锁 直到事务结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论