手机优化游戏性能的软件seo推广渠道有哪些
数据库原理及应用
半期考:运筹学,概率论,数据库
文章目录
- 数据库原理及应用
 - 1.课程的考核
 - 2.数据库的运用
 - 3.数据库学什么?
 
- 第一章 绪论
 - 1.1数据库系统概述
 - 1.1.1基本概念
 - 1.1.2数据管理技术的生产和发展
 - 人工管理
 - 文件系统
 - 数据库系统
 
- 1.2数据模型 (2.27)
 - 1.2.1概念模型
 - 两个实体之间的联系
 - 同一个实体集内各实体之间的联系
 - 1.2.2数据模型组成要素:
 - 数据结构:数据组织==静态==
 - 数据操作:增删改查==动态==
 - 完整性约束条件:(eg:限制性别男女)通用或专用
 
- 1.关系模型数据结构
 - 关系模型的基本概念:
 - 关系模型的数据操作:
 - 关系模型优缺点:
 - 层次模型
 
- 1.3数据库系统结构
 - 开发人员角度
 - 最终用户
 
- 1.3.1数据库系统模式
 - 型:对某一类数据的结构和属性的说明
 - 值:是型的一个具体赋值
 - 模式:
 - 数据库系统的三级模式结构:
 - 模式:(外模式、内模式(物理)、模式(逻辑))
 
- 三级模式与二级映像
 
- 1.4数据库系统的组成
 
- 第二章 关系数据库
 - 2.1 关系数据结构及形式化定义 关系数据结构及形式化定义
 - 2.1.1 关系
 - 笛卡尔积
 - 关系
 - 码:
 - 基本关系的性质:
 - 2.1.2 关系模式
 - 2.1.3 关系数据库
 
- 2.2 关系操作
 - 常用的关系操作
 - 关系操作的特点
 
- 2.3 关系的完整性
 - • 实体完整性 (必须满足)
 - • 参照完整性(必须满足)
 - 2.外码
 
- • 用户定义的完整性
 
- 2.4 关系代数
 - 广义笛卡尔积
 - 专门的关系运算
 - 实例
 - 连接:
 - 自然连接:
 - 悬浮元组:
 - 外连接:
 
- 第三章 SQL语句
 - 更新
 - 1.插入数据
 - 插入单个元祖
 - 插入子查询结果
 
- 2.修改数据
 - 语句格式
 - 修改某一个元组的值
 - 修改多个元组的值
 - 带子查询的修改语句
 
- 3.删除数据
 - 语句格式
 - 删除某一个元组的值
 - 删除多个元组的值
 - 带子查询的删除语句
 
- 4.视图
 - 定义视图
 - 定义视图
 - 基于多个基表的视图
 - 基于视图的视图
 - 带表达式的视图
 - 建立分组视图
 - 删除视图
 - 视图作用
 
- 第七章 数据库设计
 - 7.1.3数据库设计的基本步骤
 - 7.2.3数据字典
 - 7.3概念结构设计(重点)
 - 7.3.1概念模型
 - 7.3.2 E-R模型
 - 7.3.2概念结构设计
 - E-R图的集成
 - 7.4逻辑结构设计
 
- 第四章 数据库安全性
 - 数据安全性:
 - 计算机系统安全性:
 - 三类:
 - 安全标准简介:
 - 数据库安全性控制:
 
- 第五章 数据库完整性
 - 5.1实体完整性:
 - 5.2参照完整性
 - 5.3用户定义的完整性
 - 5.4完整性约束命名子句
 
- 第十章 数据库恢复技术
 - 10.1 事务的基本概念
 - 事务:
 - 定义事物:
 - 事物的特性(ACID特性)
 
- 10.2 数据库恢复概述
 - 10.3 故障的种类
 - 事务故障
 - 系统故障
 - 介质故障
 - 计算机病毒
 
- 10.4 恢复的实现技术
 - 转储:
 - 登记日志文件
 
- 第十一章 并发控制
 - 1并发控制概述
 - 2封锁
 - 3封锁协议
 - 4活锁和死锁
 - 5并发调度的可串行性
 - 6两段锁协议
 - 介质故障
 - 计算机病毒
 
- 10.4 恢复的实现技术
 - 转储:
 - 登记日志文件
 
- 第十一章 并发控制
 - 1并发控制概述
 - 2封锁
 - 3封锁协议
 - 4活锁和死锁
 - 5并发调度的可串行性
 - 6两段锁协议
 
1.课程的考核
期末成绩70%
平时作业10%
- 超星平台上布置的作业
 - 超星平台上的视频学习
 - 课前测试
 
实验占10%
- 实验测试(12次)从超星平台上下载实验指导手册
 - 实验报告
 
半期测试10%
旷课扣5分,迟到早退扣2分
2.数据库的运用
电子商务,超市,各种信息
数据来自数据库:修改后数据需要存储到数据库中
3.数据库学什么?
学习目的:基本概念和理论,SQL,管理维护技术,设计方法和应用
第一章 绪论
1.1数据库系统概述
1.1.1基本概念
| 基本概念 | 描述 | 
|---|---|
| 数据Data | 数据库中存储的基本对象:音乐,一句话,视频(后期),信息存在的一种形式 | 
| 数据模型 | 描述现实世界的方法,比如把人抽象成身高、体重… | 
| 数据模式 | 用某个模型描述的结果,比如用c语言编写出一个表 | 
| 数据库DB | Database,简称DB是长期存储在计算机内,有组织,可共享的。支持企业各种应用开发,数据集合。对企业中各种单位实体及其他们之间的联系,进行建模,把它存储起来 | 
| 数据库管理系统DBMS | 位于用户和操作系统之间,就是软件。功能(定义、提供数据定义语言DDL、操纵、运行管理) | 
| 数据库系统DBS(database system) | 计算机系统引入数据库之后的称呼,DBS = DB + DBMS(用户和数据库之间) + 用户 + 软硬件环境 | 
1.1.2数据管理技术的生产和发展
人工管理
40-50年代
特点:数据不保存,没有软件对系统进行管理,不具有独立性
文件系统
50-60年代
特点:
-  
有早期的存储设备:磁带,磁盘,文件系统,批处理
 -  
数据可以长期保存
 -  
数据具有共享性
 -  
由文件系统管理数据
 
数据库系统
60年代末
从文件系统到数据库系统,是一个大飞跃
| 特点: | 
|---|
| 数据结构化(与文件系统的本质关系) | 
| 数据共享性高,冗余度低, | 
| 数据独立性高, | 
| 数据由DBMS统一控制:安全保护、完整、并发控制(对多用户的并发操作加以控制,防止相互干扰而得到错误的结果) | 
1.2数据模型 (2.27)
| 世界· | 说明 | 
|---|---|
| 现实 | 客观存在的对象,如人 | 
| 信息 | 由概念模型描述,如人的身高、体重、性别、年龄 | 
| 机器 | 将概念模型数字化 | 
数据模型要求:能真实的模拟现实世界、容易为人所理解、便于在计算机上实现
1.2.1概念模型
| 基本概念 | 说明 | 
|---|---|
| 实体Entity | 客观存在的对象 | 
| 属性Attribute | 实体具有的某一特性 | 
| 码Key | 能唯一标识一个实体的(学号) | 
| 域Domain | 属性的取值范围(如整数、{a-z}) | 
| 实体型 | 实体及其属性名集合,如学生(姓名、学号、性别) | 
| 实体集 | 同类实体比如研究生和本科生 | 
| 联系 | 现实世界中内部及事物之间的联系 | 
两个实体之间的联系
一对一联系、一对多联系、多对多联系(课程和学生)
同一个实体集内各实体之间的联系
一对一联系(夫妻)、一对多联系(领导和职工)、多对多联系(课程和预选课)
1.2.2数据模型组成要素:
数据结构:数据组织静态
数据操作:增删改查动态
完整性约束条件:(eg:限制性别男女)通用或专用
关于数据模型的讨论:
- 层次模型不能直接表示哪一种联系?多对多
 - 网状模型的数据结构是什么?图
 - 层次模型和网状模型的查询效率如何,哪个更优?层次
 
1.关系模型数据结构
关系模型的基本概念:
关系(二维表)、元祖(表中的一行)、属性(表中的列)、主码(唯一确定主体属性的)
分量(表中的单个元素)、关系模式(学生(学号,姓名,年龄))、域(取值)
不允许表中套表
关系的每一个分量必须是不可分的数据项
关系模型的数据操作:
增删改查
关系模型优缺点:
建立在严格的数据概念基础上
概念单一。数据结构简单、清晰
缺点:查询效率不如非关系模型高
层次模型
一对多(树形结构)PCR
1.3数据库系统结构
开发人员角度
三级模式结构(数据库内部)
最终用户
- 单用户数据库系统(不共享)
 - 主从式结构(一个用户带多个终端比如银行机房的主机和ATM机)
 - 分布式结果数据库(逻辑上整体,物理分布不同。优点:便于组织管理 缺点:效率低)
 - 客户/服务器(qq软件是客户,腾讯服务器。优点:减少数据传输量。缺点:“胖客户”:维护困难。改进:B/S结构。游览器)
 - 游览器-应用服务器/数据库服务器多层结构
 
1.3.1数据库系统模式
型:对某一类数据的结构和属性的说明
值:是型的一个具体赋值
例如
学生记录:
(学号,姓名,性别,系别,年龄,籍贯) (学号,姓名,性别,系别,年龄,籍贯)
一个记录值:
( (201315130 ,李明,男,计算机系,19,江苏南京市) ,江苏南京市)
模式:
一个数据库只有一个内模式
例如:在学生选课数据库模式中,包含学生记录、课程记
 录和学生选课记录,一张包含了信息的表
数据库系统的三级模式结构:
模式:(外模式、内模式(物理)、模式(逻辑))
所有数据的一个共有的试图,比如很多张表组成的一个视图
三级模式与二级映像
外模式/模式映像
定义外模式与模式之间的对应关系(可以多个)
模式/内模式映像
唯一的,描述数据在磁盘上到底是怎么存的,比如一个表是用哈希文件,还是对文件来存,这种存储方式。
两层映象保证了数据库系统中的数据能够具有较高的逻
 辑独立性和物理独立性。 辑独立性和物理独立性
1.4数据库系统的组成
- 数据库
 - 数据库管理系统
 - 应用程序
 - 数据库管理员
 
当修改数据的存储方式时,用户程序也可以不变,这是数据的物理独立性
第二章 关系数据库
2.1 关系数据结构及形式化定义 关系数据结构及形式化定义
2.1.1 关系
笛卡尔积
| 笛卡尔积 | 给定一组域D1,D2,D3……Dn,(允许某些域是相同的)。两两集合的乘积,所有排列组合的总和,可以表示为一张二位表,表中的每行对应笛卡尔积的一个元素,表中每列对应一个域 | 
|---|---|
| 元组 | 表中的一行 | 
| 分量 | 表中的单个元素(值) | 
| 基数 | 排列组合的总个数,也就是笛卡尔积中元组的个数 | 
| 交换? | 笛卡尔积不满足交换律D1D2≠D2D1 | 
关系
笛卡尔积中取出的有实际意义的元组来构造的关系(二维表)
笛卡尔积的有限子集
属性:列名
码:
| 候选码 | 某一(多个)属性值能唯一确定一个元组,该属性组为候选码 | 
|---|---|
| 全码 | 所有的属性是候选码,所有属性算上才能决定一条元组 | 
| 主码 | 若一个关系有多个候选码,选定一个为主码 | 
| 主属性 | 候选码的各个属性 | 
| 非主属性、非码属性 | 除了主属性之外的属性 | 
基本关系的性质:
- 列同性质、顺序无所谓、任意两个元组不能完全相同、最小分量
 
2.1.2 关系模式
对关系的描述就是二维表结构
2.1.3 关系数据库
所有关系的集合构成的一个关系数据库
.关系数据库的型: 关系数据库模式,是对关系数据库的描述。 关系数据库模式,是对关系数据库的描述。
 • 关系数据库的值: 关系模式在某一时刻对应的关系的集合,通
 常称为关系数据库。
2.2 关系操作
• 查询操作:选择、投影、连接、除、并、差、交、
 笛卡尔积
 选择、投影、并、差、笛卡尔基是5种基本操作 种基本操作
 • 数据更新:插入、删除、修改
• 集合操作方式:操作的对象和结果都是集合, 一次
 一集合 的方式
2.3 关系的完整性
• 实体完整性 (必须满足)
若属性A是基本关系R的主属性,则属性A不能取空值(不知道,不存在,无意义)的值。实体完整性规则规定基本关系的所有主属性都不 能取空值
• 参照完整性(必须满足)
参照完整性要求关系中不允许引用不存在的实体。即参照的关系中的属性值必须能够在被参照关系找到或者取空值
- 关系间的引用(一对多、多对多【学生实体及其内部的领导联系】)
 
 学生关系引用了专业关系的主码“专业号”。 学生关系中的“专业号”值必须是确实存在的专业
2.外码
在参照关系R中的候选键中的一个属性(不是其主键),中选一个对应被参照关系中的主键,则选出来的那个叫外码)
外码必须是本关系的一个或一组属性;
外码不是本关系的码;
外码与另一个关系(可能是同一关系)的主码相对应;
• 用户定义的完整性
- • 唯一值约束(UNIQUE);
 - • 非空值约束(NOT NULL);
 - • 检查约束(CHECK);
 - • 缺省值约束(DEFAULT)。
 
2.4 关系代数
广义笛卡尔积
排列组合
专门的关系运算
| 关系运算 | 说明 | 
|---|---|
| 选择 | 选择又称为限制。它是在关系R中选择满足给定条件的各元 组从行的角度进行的运算,记作σF(R)={ t∈R ∧ F(t)=‘真’} | 
| 投影 | 关系R上的投影是从R中选择出若干属性列组成新的关 系。从列的角度进行的运算,有可能删除某些元组,避免重复,记作: ΠA(R)={t[A] |t ∈R } | 
| 连接 | θ连接是从两个关系的笛卡尔积中选取属性间满足一定 条件的元组。这种运算形式称作θ连接 | 
| 除 | 把它看作寻找供应商 | 
实例
连接:
步骤一(1)求R×S;(2)选择R中属性A和S中属性B满足条件的元组组成新关系即为连接运算的结果。
自然连接:
 一种特殊的等值连接,它要求两个 关系中进行比较的分量必须是相同的属 性组,并且 在结果中把重复的属性列去掉
悬浮元组:
 自然连接时,舍弃的元组
外连接:
- 如果把悬浮元组也保存在结果关系中,而在其他属 性上填空值(Null),就叫做外连接
 - 左外连接:只保留左边关系R中的悬浮元组
 - 右外连接: 只保留右边关系S中的悬浮元组
 
create database Example;
use example;
create table student(Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20) UNIQUE,Ssex INT,Sdept CHAR(15);)
select * from student;alter table student add scome datetime;
alter table student alter column Sage SMALLINT;alter table student drop constraint;
alter table student drop column scome;drop table student;
create unique index Stusno ON Student(Sno);
drop index stusno on student;
create unique index Stusno ON Student(Sno);insert into Student(Sno,sname,Ssex,Sage,Sdept)
values('95001','陈东','M','IS');insert into Student
values('95002','张成名','男','18','CS');
 
第三章 SQL语句
更新
1.插入数据
-  
插入单个元祖
INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>] … ) --eg --例:将一个新学生记录 (05001,陈冬,M,18 ,IS )插入到Student表中。INSERT INTO Student(sno,sname,ssex,sage ,sdept)VALUES ('05001','陈冬',‘M',18 ,'IS'); -  
插入子查询结果
INSERT INTO <表名> [(<属性列1> [,<属性列2>… )] 子查询; --eg--例:对每一个系,求学生的平均年龄,并把结果存入数据库。--第一步建表 CREATE TABLE Deptage (Sdept CHAR(15) /* 系名*/ Avgage SMALLINT); /*学生平均年龄*/ --第二步,插入数据第二步:插入数据 INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept; 
2.修改数据
语句格式
  UPDATE  <表名>    SET  <列名>=<表达式>[,<列名>=<表达式>]…    [WHERE <条件>];
 
-  
修改某一个元组的值
--例:将学生05001的年龄改为22岁。UPDATE StudentSET Sage=22 WHERE Sno=' 05001 ';
 -  
修改多个元组的值
--例:将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1; -  
带子查询的修改语句
--例:将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno); 
3.删除数据
语句格式
 DELETE FROM <表名> [WHERE <条件>];--删除满足where子句条件的元祖
 
-  
删除某一个元组的值
--例:删除学号为05010的学生记录。 DELETE FROM Student WHERE Sno=‘05010'; -  
删除多个元组的值
--例:删除所有的学生选课记录。 DELETE FROM SC; --例:删除2号课程的所有选课记录。 DELETE FROM SC WHERE Cno='2'; -  
带子查询的删除语句
--例: 删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno); 
4.视图
视图的特点
- 虚表,是从一个或几个基本表(或视图)导出的表
 - 只存放视图的定义,不会出现数据冗余
 - 基表中的数据发生变化,从视图中查询出的数据也 随之改变
 
基于视图的操作 : 查询  删除  受限更新 定义基于该视图的新视图
定义视图
-  
定义视图
--[例1] 建立信息系学生的视图。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS';--[例2] 建立信息系学生的视图,并要求透过该视图 进行的更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS' WITH CHECK OPTION;--进行的更新操作只涉及信息系学生。 --透过视图进行增删改操作时,不得破坏视 图定义中的谓词条件 (即子查询中的条件表达式) -  
基于多个基表的视图
--[例3] 建立信息系选修了1号课程的学生视图。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= 'IS' AND Student.Sno=SC.Sno AND SC.Cno= '1'; -  
基于视图的视图
--[例4] 建立信息系选修了1号课程且成绩在90分以上的学 生的视图。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade>=90; -  
带表达式的视图
-- [例5] 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2020-Sage FROM Student --设置一些派生属性列, 也称为虚拟列--Sbirth --带表达式的视图必须明确定义组成视图的各个属性列名 -  
建立分组视图
--[例6] 将学生的学号及他的平均成绩定义为一个视图 假设SC表中“成绩”列Grade为数字型 CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 
删除视图
 DROP  VIEW  <视图名>; 
 
视图作用
-  
视图能够简化用户的操作
 -  
视图使用户能以多种角度看待同一数据
 -  
视图对重构数据库提供了一定程度的逻辑独立性
 -  
视图能够对机密数据提供安全保护
 
第七章 数据库设计
-  
手工试凑法
 -  
规范设计法:
Ø新奥尔良(New Orleans)方法
Ø基于E-R模型的数据库设计方法
Ø3NF(第三范式)的设计方法 Ø面向对象的数据库设计方法
Ø统一建模语言(UML)方法
 
7.1.3数据库设计的基本步骤
• 需求分析
是否做得充分与准确,决定了构建数据库的速度和质量
• 概念结构设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 数据库管理系统的概念模型
• 逻辑结构设计
将概念结构转换为某个数据库管理系统所支持的数据模型,并 对其进行优化(转换为表)
• 物理结构设计
为逻辑数据结构选取一个最适合应用环境的物理结构 ,包括存储结构和存取方法
• 数据库实施
根据逻辑设计和物理设计的结果构建数据库 编写与调试应用程序 组织数据入库并进行试运行
• 数据库运行和维护
经过试运行后即可投入正式运行 在运行过程中必须不断对其进行评估、调整与修改
需求分析和概念设计独立于任何数据库管理系统
逻辑设计和物理设计与选用的数据库管理系统密切相关
7.2.3数据字典
-  
数据项(最小单位)
不可再细分比如学生的学号、成绩
 -  
数据结构
反应了数据之间的组成关系,比如学生可以看做一个数据结构由姓名、学号、、、等数据项
组成
 -  
数据流
数据传输的路径(对数据动态的描述),比如订单
 -  
数据存储(静态)
数据结构在数据库中的存储位置,比如库存。
 -  
处理过程
是一个动作,比如输入所有学生信息,按照需求分配宿舍
 
7.3概念结构设计(重点)
7.3.1概念模型
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程
和用户进行交流、易于更改、易于向各个数据模型转换
用ER模型描述概念模型
7.3.2 E-R模型
实体之间的联系:一对一(班级与班长)、一对多(班级与学生一对多)、多对多(课程与学生);
联系关系到几个实体就叫做几元联系
E-R图
| 实体 | 属性 | 联系 | 连接方式 | 
|---|---|---|---|
| 矩形 | 圆形 | 菱形 | 无向边连接 | 
第一步:确定有哪些实体,画出五个实体
第二步:判断每个实体间有什么联系
7.3.2概念结构设计
实体与属性的划分原则:现实世界的事物能作为属性对待就当属性(属性优先)
两条准则:不可再分不能描述,不能与其他属性有联系
E-R图的集成
-  
合并。解决各分E-R图之间的冲突,将分E-R图合并起来生 成初步E-R图。
属性冲突 命名冲突 结构冲突 属性域冲突(类型、取值范围、取值集合) 同名异义 同一对象在不同应用中具有不同的抽象。(有的当做实体,有的当做属性) 属性取值单位冲突(公斤、斤) 异 名同义 同一实体在不同子系统的E-R图中所包含的属性个数和属性 排列次序不完全相同 命名冲突 实体间的联系在不同的E-R图中为不同的类型  -  
修改和重构。消除不必要的冗余,生成基本E-R图。
• 所谓冗余的数据是指可由基本数据导出的数据, 冗余的联系是指可由其他联系导出的联系。
• 消除冗余主要采用分析方法,即以数据字典和 数据流图为依据,根据数据字典中关于数据项 之间逻辑关系的说明来消除冗余。
 
7.4逻辑结构设计
7.4.1E-R图向关系模型的转换
将概念模式转换为关系模式
转换原则:
- 实体转化为独立的关系模式
 
属性对应属性,码对应码
- 一对一转换:最好合并到某一 端,不要转换为独立的
 - 一对多转换:独立、合并到N端(一端的码和联系的属性放进n端 )
 - 多对多转换:两个多端的码合并(独立)
 - 多元联系转换为独立的关系模式
 
E-R图不能出现业务流程
第四章 数据库安全性
数据安全性:
防止非法用户使用数据库,造成数据泄露、更改或破坏。
计算机系统安全性:
三类:
技术安全(软硬件)、管理安全(房间失火)、政策法律安全
安全标准:TCSEC.桔皮书(针对整个计算机系统) TDI 紫皮书(将TCSEC*扩展到数据库管理系统。)
数据库有哪些安全控制机制?
安全标准有那几个?
安全标准简介:
| D级 | C1级 | C2级 | B1级 | B2级 | B3级 | A1级 | 
|---|---|---|---|---|---|---|
| 一切不符合最高标准的系统EG:DOS | 非常初级的自主安全保护eg:DAC | 安全产品的最低档 次 | 标记安全保护。MAC强制存取控制 | 结构化保护,有主体和客体实施DAC和MAC,(稀少) | 安全域 | 验证设计,即提供B3级保护的同时给出系统的形式 | 
注:B2以上的系统还处于理论研究阶段,应用多限于一些特殊的部门如军队等。
数据库安全性控制:
应用:用户标识和鉴定(输入用户名和密码)—》DBMS:存取控制-----》
存取控制:定义存取
| 用户标识与鉴别 | 存取控制 | 自主存取控制方法 | 授权与回收 | 数据库角色 | 强制存取控制方法 | 
|---|---|---|---|---|---|
| 合法用户标识 | 先对每个用户定义存储权限 | 不同用户不同数据对象不同权限 | DBA和表的建立者定义 | 先进行DAC检查,通过DAC检查的数据对象再由系统 | |
| 用户名/口令 | 自主存取控制DAC,强制存取控制MAC | 能够通过授权机制有效地控制其他用户对敏感数 ,可能存在数据的无意泄露 | SQL语句;GRANT(授予权限),REVOKE(收回权限) | 
 --GRANT语句的一般格式:GRANT <权限>[,<权限>]...[ON <对象类型> <对象名>] TO <用户>[,<用户>]...[WITH GRANT OPTION]; --获得某种权限的用户还可以把这种权限再授予别的用户
-- GRANT功能:将对指定操作对象的指定操作权限授予 指定的用户。
 
先进行DAC检查,通过DAC检查的数据对象再由系统
进行MAC检查,只有通过MAC检查的数据对象方可存
取。
第五章 数据库完整性
完整性:防止合法用户输入输出防止数据破坏
安全性:防止非法用户
完整性控制机制:约束条件、完整性检查机制、违约处理
5.1实体完整性:
primary key 定义,表级完整性约束或列级完整性约束
 
5.2参照完整性
1,外码能否接受空值(如果是另一个关系的主属性就不允许取空值)
2,在被参照完整性中删除元组的问题
- 级联删除
 - 受限删除
 - 置空值删除
 
3,在参照关系中插入元组时
- 受限
 - 递归
 
4,修改关系中的主码
- 级联修改(on update cascade(在定义表的时候加上这句话才能进行级联) 修改它,另一个参照它的也跟着修改)
 - 受限修改
 - 置空值修改
 
5.3用户定义的完整性
check约束(可列级,可表级)
列级非空,列级单一只能作为列级约束
--元组上的约束条件的定义 • CHECK短语 
CREATE TABLE Student     
(Sno       CHAR(5) ,        Sname  CHAR(20)  NOT NULL,      Ssex      CHAR(1) ,      Sage      INT,         Sdept    CHAR(15),    PRIMARY KEY (Sno)   CHECK (Ssex=‘女’ OR Sname NOT LIKE ‘Ms.%’)         ); --元组上的约束条件检查和违约处理
 
5.4完整性约束命名子句
--完整性约束命名子句 
CREATE TABLE Student  
(Sno       NUMERIC(6) CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND99999), Sname  CHAR(20) CONSTRAINT C2 NOT NULL,             Ssex  CHAR(2)     CONSTRAINT C3 CHECK(Ssex IN (’男‘,’女‘)),         CONSTRAINT C4      PRIMARY KEY (Sno)      );-- 修改表中的完整性限制 ALTER TABLE Student DROP CONSTRAINT C4;
ALTER TABLE Student ADD CONSTRAINT C1 CHECK(Sno BETWEEN 900000 AND 999999);
 
第十章 数据库恢复技术
10.1 事务的基本概念
事务:
 一个事务可以是一条SQL语句,一组 SQL语句或整个程序
( 一个应用程序通常包含多个事务)
定义事物:
BEGIN TRANSACTION
SQL 语句1  
SQL 语句2 
.....
COMMIT--事务正常结束 BEGIN TRANSACTION
SQL 语句1  
SQL 语句2 
.....
ROLLBACK--事务异常终止 
 
事物的特性(ACID特性)
| 原子性(Atomicity) | 一致性(Consistency) | 隔离性(Isolation) | 持续性(永久)(Durability ) | 
|---|---|---|---|
| ·事务是数据库的逻辑工作单位 •事务中包括的诸操作要么都做,要么 都不做 | 数据库中只包含成功事务提交的结果 | 并发执行的各个事务之间不能互相干扰 | 一个事务一旦提交,它对数据库中数据的改变就应 该是永久性的 | 
10.2 数据库恢复概述
数据库管理系统对故障的对策
•DBMS提供恢复子系统
• 保证故障发生后,能把数据库中的数据从错误状态 恢复到某种逻辑一致的状态
• 保证事务ACID
 恢复技术是衡量系统优劣的重要指标
10.3 故障的种类
事务故障
某个事务在运行过程中由于种种原因未运行至正常 终止点就夭折了
- 输入数据有误
 - 运算溢出
 - 违反了某些完整性限制
 - 某些应用程序出错
 - 并行事务发生死锁
 
事务故障的恢复
- 发生事务故障时,夭折的事务可能已把对数据库的部分 修改写回磁盘
 - 事务故障的恢复:撤消事务(UNDO)
 - 强行回滚(ROLLBACK)该事务
 - 清除该事务对数据库的所有修改,使得这个事务象根本 没有启动过一样
 
系统故障
系统故障常见原因
- 操作系统或DBMS代码错误
 - 操作员操作失误
 - 特定类型的硬件错误(如CPU故障)
 - 突然停电
 
系统故障的恢复
-  
清除尚未完成的事务对数据库的所有修改
• 系统重新启动时,恢复程序要强行撤消(UNDO)所 有未完成事务
 -  
将缓冲区中已完成事务提交的结果写入数据库
• 系统重新启动时,恢复程序需要重做(REDO)所有 已提交的事务
 
介质故障
计算机病毒
恢复操作的基本原理:冗余
• 利用存储在系统其它地方的冗余数据来重建数据库中 已被破坏或不正确的那部分数据
恢复的实现技术:复杂
• 一个大型数据库产品,恢复子系统的代码要占全部代 码的10%以上
10.4 恢复的实现技术
转储:
转储是指DBA将整个数据库复制到磁带或另一个磁盘上 保存起来的过程
登记日志文件
日志文件(log)是用来记录事务对数据库的 更新操作的文件
 以数据块或日志为单位
日记文件内容:
 开始标志、结束标志、所有更新操作、 与事务有关的内部更新操作
登记原则:
 登记的次序严格按并行事务执行的时间次序
 必须先写日志文件,后写数据库
第十一章 并发控制
1并发控制概述
多事物执行方式:串行、交叉并发、同时并发
并发操作带来的数据不一致性:丢失修改、不可重复读(不同值,【神秘消失,多数据记录】(幻影现象))、读‘’脏“数据
2封锁
在事务T释 放它的锁之前,其它的事务不能更新此数据对象
基本封锁类型:排他锁X锁、共享锁S锁
3封锁协议
一级:加X锁 不丢失修改
二级:加S锁,在操作结束后解锁释放 不丢失修改,不读‘’脏数据”
三级:在整个事务结束后解锁释放 不丢失修改,不读‘’脏数据” , 可重复读
4活锁和死锁
活锁:先来先服务
死锁:多个事物互相等待的情形
方法:
- 预防死锁(一次封锁法(降低了并发度,实际上不可行)、顺序封锁法(也不可行))
 - 检测死锁:如果事物等待时间超过了约定时间,则确定发生了死锁。(等待图法)
 - 解除死锁
 
5并发调度的可串行性
将所有事物串行起来的策略一定是正确的调度策略
当且仅当某结果与按某一次序串行执行结果相同
并发事物正确性准则:可串行性
如何保证并发操作的地调度正确?
6两段锁协议
1,在对任何数据进行读、写操作之前
明确的把事物加锁
-  
将缓冲区中已完成事务提交的结果写入数据库
• 系统重新启动时,恢复程序需要重做(REDO)所有 已提交的事务
 
介质故障
计算机病毒
恢复操作的基本原理:冗余
• 利用存储在系统其它地方的冗余数据来重建数据库中 已被破坏或不正确的那部分数据
恢复的实现技术:复杂
• 一个大型数据库产品,恢复子系统的代码要占全部代 码的10%以上
10.4 恢复的实现技术
转储:
转储是指DBA将整个数据库复制到磁带或另一个磁盘上 保存起来的过程
登记日志文件
日志文件(log)是用来记录事务对数据库的 更新操作的文件
 以数据块或日志为单位
日记文件内容:
 开始标志、结束标志、所有更新操作、 与事务有关的内部更新操作
登记原则:
 登记的次序严格按并行事务执行的时间次序
 必须先写日志文件,后写数据库
第十一章 并发控制
1并发控制概述
多事物执行方式:串行、交叉并发、同时并发
并发操作带来的数据不一致性:丢失修改、不可重复读(不同值,【神秘消失,多数据记录】(幻影现象))、读‘’脏“数据
2封锁
在事务T释 放它的锁之前,其它的事务不能更新此数据对象
基本封锁类型:排他锁X锁、共享锁S锁
3封锁协议
一级:加X锁 不丢失修改
二级:加S锁,在操作结束后解锁释放 不丢失修改,不读‘’脏数据”
三级:在整个事务结束后解锁释放 不丢失修改,不读‘’脏数据” , 可重复读
4活锁和死锁
活锁:先来先服务
死锁:多个事物互相等待的情形
方法:
- 预防死锁(一次封锁法(降低了并发度,实际上不可行)、顺序封锁法(也不可行))
 - 检测死锁:如果事物等待时间超过了约定时间,则确定发生了死锁。(等待图法)
 - 解除死锁
 
5并发调度的可串行性
将所有事物串行起来的策略一定是正确的调度策略
当且仅当某结果与按某一次序串行执行结果相同
并发事物正确性准则:可串行性
如何保证并发操作的地调度正确?
6两段锁协议
1,在对任何数据进行读、写操作之前
明确的把事物加锁
满足两段锁协议一定是正确的调度,正确的调度不一定遵守两段锁协议
