《数据库原理与应用(第2版)高凯 全书总结课件.ppt》由会员分享,可在线阅读,更多相关《数据库原理与应用(第2版)高凯 全书总结课件.ppt(132页珍藏版)》请在三一办公上搜索。
1、1,全 书 总 结,2,数据库学科体系,基础知识,系统,数据库设计,使用,管理,设计,理论,方法,技术,应用,研究范畴,学习深度与广度,新技术,关系数据库,学科内容丰富,研究领域宽泛多层次多类型多视角的立体化的学科体系:理论、技术、系统、应用 不同的专业和不同类型的学生应该有不同的内容和要求,3,数据库学科体系,模型是主线:数据模型是主线模型的3个要素(P3)重点是关系模型系统是核心:数据库管理系统是核心存储管理与优化查询语言(语言功能、查询优化)事务处理与数据保护应用是动力:数据库应用是学科发展的动力,关系模型数据结构-DDL数据操作-QUERY+DML数据约束-DDL,DCL关系数据理论,
2、数据库应用数据库设计方法数据库设计理论数据库设计工具,4,第1章 绪论,5,数据、信息的概念,数据处理与数据管理,数据管理的三个阶段,数据库系统的组成,数据库系统外部体系结构参见计算机系统结构,数据库管理系统DBMS提供的数据控制功能,DBMS的工作模式,4个数据模型,DBMS,数据库,核心,数据库系统内部体系结构,三级模式,两级映象,数据库管理系统DBMS的组成,数据库技术的产生和发展,6,典型数据库系统的组成,数据库系统的内部体系结构模式结构,数据库系统的三级模式结构数据库系统的二级映象与数据独立性,8,数据库系统的三级模式结构,数据库系统的二级映象与数据独立性,DBMS在三级模式之间提供
3、了两级映象功能,保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性。,外模式/模式映象,模式/内模式映象,保证了数据与程序间的逻辑独立性,确保了数据的物理独立性,10,数据库管理系统(DBMS),DBMS的主要功能数据定义功能 数据操作功能数据库运行管理功能数据库的建立和维护功能数据通信接口数据的组织、存储和管理,11,DBS,DBMS,核心,数据定义查询更新各种控制,DBMS组成,访问DBMS,数据库分类,DBMS的数据存取的过程,16,数据库系统的特点,数据结构化数据共享性高,冗余小,易扩充数据独立性高有统一的数据控制功能,数据模型,数据模型的定义现实世界、信息世界和计算机世界的
4、概念数据模型的分类概念模型E-R图逻辑模型(也称数据模型)层次模型、网状模型、关系模型、面向对象模型物理模型,17,数据模型的组成要素,数据结构,数据操作,数据的完整性约束,层次结构,网状结构,关系结构,查询,插入,删除,修改,更新,正确,有效,相容,18,四种典型的数据模型,层次模型(Hierarchical Model)网状模型(Network Model)关系模型(Relational Model)面向对象模型(Object-oriented Model),19,关系模型,关系模型的数据结构及有关概念,20,小型数据库系统:Foxpro、Access,大型数据库系统:Oracle、SQL
5、 Server、Informix、Sybase,关系,二维表,元组,属性,域:属性的取值范围,(男,女),北京林业大学 软件教研室,关系模型的数据操纵与完整性约束 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。 关系模型把对数据的存取路径隐蔽起来,用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户操作效率。关系模型的优缺点,21,有严格的数学理论根据,用关系描述实体间的联系,具有更高的数据独立性、更好的安全保密性,优点,有时,查询效率不如非关系模型,缺点,数据库系统的发展,22,关系数据模型,格式化数据模型(层次数据模型和
6、网状数据模型),面向对象的数据模型,支持三级模式的体系结构; 用存取路径来表示数据之间的联系; 独立的数据定义语言; 导航的数据操纵语言。,概念单一,实体以及实体之间的联系都用关系来表示;以关系代数为基础,形式化基础好;数据独立性强,数据的物理存取路径对用户隐蔽;关系数据库语言是非过程化的,大大降低了用户编程的难度。,支持面向对象的数据模型; 保持或继承第二代数据库系统的优点; 具有开放性。,第一代,第二代,第三代,传统数据库缺点:面向机器的语法数据模型;数据类型简单、固定 ;结构与行为完全分离 ;被动响应 ;事务处理能力较差。,数据库技术与其他技术的结合,23,第2章 关系数据库基础,25,
7、关系数据结构,关系操作,关系完整性约束,查询,更新,插入,删除,修改,关系模型,26,关系模型的数据结构及其形式化定义,关系的形式化定义及其有关概念 域、笛卡尔积、关系关系的性质每个元素是不可分的数据项,不能“表中套表”每列分量来自同一域,数据类型必须相同不同列名字必须不同 ,不同列数据域可相同。列的顺序可任意交换 行的顺序可任意交换 关系模式、关系数据库与关系数据库模式,2022/12/20,27,关系的键与关系的完整性,候选键、主关系键、主属性、非主属性、全码、外部关系键关系的完整性,28,关系代数及其运算符,关系代数是一种抽象的查询语言 关系代数的运算对象与运算结果都是关系关系代数运算符
8、, ,* ,,=,, ,集合运算符,关系运算符,比较运算符,逻辑运算符,2022/12/20,29,选取(Selection) F(R)=t | tRF(t)=真 例2-5 查询计算机系的全体学生 Dept=计算机 (S),从行的角度进行的运算,F为选取的条件,S(学生关系),2022/12/20,30,投影(Projection) A(R)=tA | tR 例2-7 查询教师的姓名、教师号及其职称。TN,TNo,Prof(T),A为R中的属性列,从列的角度进行的运算,T(教师关系),2022/12/20,31,连接(Join) = t rts |trRtsStr XtsY 为真 为算术比较运
9、算符 自然连接: 在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉,记为:R*S,2022/12/20,32,例 设有如图(a)、(b)所示的两个关系R与S,(c)为R和S的大于连接(CD),(d)为R和S的等值连接(C=D),(e)为R和S的等值连接(R.B=S.B),(f)为R和S的自然连接。,(a),(b),2022/12/20,33,(c),(d),(f),(e),2022/12/20,34,除法(Division) RS = trX | trRy(S)Yx 除法运算同时从行和列的角度进行运算,适合于包含“全部”之类的短语的查询。,Yx为x在R中的象
10、集,x =trX,例2-13 查询选修了全部课程的学生学号和姓名。SNo,CNo(SC)CNo(C)*SNo,SN(S)例2-14 查询至少选修了C1课程和C3课程的学生学号。 SNo,CNo(SC)CNo(CNo=C1CNo=C3 (C)只有S4同学的象集至少包含了C1和C3课程,因此,查询结果为S4 。,35,检索选修课程包含“程军”老师所授课程之一的学生学号(S),检索学生“刘丽”所学课程中有不及格课程的课程号、课程名称和分数,检索选修了“程军”老师所授所有课程的学生学号(S),C.C#,C.CNAME,SC.GRADE(S.SNAME=刘丽(S) GRADE 60(SC) C),S#,
11、C#(SC) C# (TEACHER=程军(C)),36,第3、4章 SQL的数据定义和完整性约束、SQL的数据查询,SQL Server 数据库管理系统平台,数据定义,数据操纵,数据控制,SQL语言、企业管理器、查询分析器,数据库、数据表、索引、视图、角色与权限,创建、修改、删除、查看,SQL Server数据库管理系统的主要功能,38,1 SQL语言的基本概念与特点,SQL语言的发展及标准化 SQL语言的基本概念基本表、视图SQL语言的主要特点类似于英语的自然语言,简洁易用一种非过程的、面向集合的语言既是自含式语言,又是嵌入式语言数据查询、数据定义、数据操纵和数据控制,39,SQL语言支持
12、的关系数据库的三级模式结构,40,2 了解SQL Server,SQL Server是一个关系数据库管理系统,企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发者版(Developer Edition),SQL Server的系统和实例数据库,系统数据库:master、model、msdb、tempdb实例数据库:pubs、Northwind,41,42,3 创建与使用数据库,用Enterprise Manager和SQL语句两种方法创建数据库修改数据库 删除数据库查看数据库,4 创建与使用数据表,SQL
13、 Server 数据类型整数、精确数值、近似浮点数、精确数值、近似浮点数、日期时间、字符串 、Unicode字符串 、二进制、货币、标记 创建、修改、删除、查看数据表定义数据表的约束数据的完整性:正确性、有效性、相容性SQL Server数据完整性机制约束(Constraint)、默认(Default)、规则(Rule),44,5 创建与使用索引,索引的作用 索引的分类聚集索引与非聚集索引 唯一索引 复合索引 创建、修改、删除、查看索引,45,6 数据查询,SELECT命令的格式与基本使用条件查询=, , =, AND, OR, NOTBETWEEN, AND, IN, LIKE, IS NU
14、LL常用库函数:AVG、SUM、MAX、MIN、COUNTGROUP BY分组查询ORDER BY查询排序连接查询 (JOIN)、子查询、合并查询将查询结果存储到表中,46,7 数据操纵,添加数据: INSERT INTO修改数据: UPDATE删除数据: DELETE,47,8 视图,视图是虚表,其数据不进行存储,其记录来自基本表,只在数据库中存储其定义 。创建视图、修改视图、删除视图、更新视图,48,9 数据控制,权限与角色 权限:系统权限、对象权限角色的概念和使用权限与角色的授予与收回,2022/12/20,49,第5章 关系数据库编程基础,2022/12/20,50,1 Transac
15、t-SQL程序设计,在标准SQL的基础上进行扩充得到的SQL Server专用的结构化SQL主要的用途是设计服务器端的能够在后台执行的程序块与一般的高级语言的语法要素基本一致,主要有注释、变量与常量、运算符、函数与表达式、流程控制语句、批处理等也提供了一些常用的命令(backup 、 execute、checkpoint等)和库函数(sum,avg等),存储过程、触发器等,2022/12/20,51,2 存储过程,系统存储过程,扩展存储过程,用户自定义存储过程,存储过程是一组为了完成特定功能的SQL语句集 。存储过程的优点 : 存储过程的分类: 模块化的程序设计 高效率的执行 减少网络流量 可
16、以作为安全机制使用,2022/12/20,52,查看存储过程,重新命名存储过程,删除存储过程,执行存储过程,修改存储过程,sp_helptext 存储过程名称,sp_rename 原存储过程名, 新存储过程名,DROP PROCEDURE procedure ,n,ALTER PROCEDURE procedure_name,EXEC procedure_name,2022/12/20,53,3 触发器,触发器的概念、分类与作用 触发器是一种特殊类型的存储过程。 触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。触发器有4个要素:名称、定义的目标、触发条件、触
17、发逻辑触发器的种类:AFTER、INSTEAD OF触发器的作用,2022/12/20,54,查看触发器,重新命名触发器,删除触发器,修改触发器,sp_helptext 触发器名称,sp_rename 原触发器名, 新触发器名,DROP TRIGGER trigger ,n,ALTER TRIGGER trigger_name,55,关系型数据库编程基础总结,嵌入式SQL的实现方式、使用规定及使用技术,面向对象应用程序访问数据库的常用接口及使用方法,面向对象应用程序一般都通过API接口实现嵌入式SQL的功能,这种方法不需要专用的SQL预编译程序。DAOODBCJDBCOLE DBADOADO.
18、NETT-SQL基本语法SQL Server的存储过程SQL Server的触发器。,重点掌握基本概念、方法和设计思想,并能运用这些方法解决实际问题。,2022/12/20,56,第6章 关系数据及其规范化理论,2022/12/20,57,规范化问题的提出,57,教学管理数据库SCD(SNo,SN,Age,Dept,MN,CNo,Score),57,数据冗余 插入异常 删除异常 更新异常,根本原因:属性间存在着数据依赖关系,包罗万象,不合理的关系模式存在的存储异常问题,2022/12/20,58,函数依赖,函数依赖平凡函数依赖、非平凡的函数依赖完全函数依赖与部分函数依赖 传递函数依赖,2022
19、/12/20,59,关系模式的范式及关系规范化,规范化的基本思想消除关系模式中的数据冗余消除数据依赖中的不合适的部分解决数据插入、删除时发生异常现象范式(Normal Form)的概念1NF、2NF、3NF、BCNF4NF,2022/12/20,60,关系模式的规范化,关系规范化的定义关系模式规范化的目的和原则使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。 基本原则就是遵循“一事一地”的原则关系规范化的原则保证分解后的关系模式与原关系模式是等价的无损连接性、函数依赖保持,2022/12/20,61,一个好的关系模式应该具备以下四个条件:(1)尽可能少的数据冗余;(2)没有插
20、入异常;(3)没有删除异常;(4)没有更新异常。,SCD (SNo,SN,Age,Dept,MN,CNo,Score),S(SNo,SN,Age,Dept),SC(SNo,CNo,Score),D(Dept,MN),关系模式分解:,2022/12/20,62,关系模式规范化的步骤,规范化过程,2022/12/20,63,第7章 数据库设计,1 数据库设计概述2 系统需求分析 3 概念结构设计4 逻辑结构设计5 物理结构设计 6 数据库实施 7 数据库运行和维护,2022/12/20,64,主要步骤,数据库设计的任务、内容和特点 任务:根据用户需求研制数据库结构的过程。 内容:特点:结构与行为设
21、计相结合,反复探寻,逐步求精设计方法:直观设计、计算机辅助设计法、规范设计法、自动化设计法,2022/12/20,65,1 数据库设计概述,基于E-R模型的数据库设计方法基于3NF的数据库设计方法 基于视图的数据库设计方法,2022/12/20,66,数据库设计的步骤,按规范设计法可将数据库设计分为六个阶段 1系统需求分析阶段 2概念结构设计阶段 3逻辑结构设计阶段 4物理结构设计阶段 5数据库实施阶段 6数据库运行与维护阶段,2022/12/20,67,2 系统需求分析,任务方法:自顶向下、自底向上数据流图:数据字典:,最终形成的数据流图和数据字典为系统分析报告的主要内容,这是下一步进行概念
22、结构设计的基础。,2022/12/20,68,3 概念结构设计,将需求分析得到的用户需求抽象为信息结构,即概念模型。概念模型的特点E-R模型是最著名、最实用的一种概念模型概念结构设计的方法,2022/12/20,69,需求分析,DFD,DD,数据抽象,局部视图设计,视图集成,逻辑结构设计,局部E-R图,全局E-R图,征求用户意见,2022/12/20,70,全局E-R模型设计 视图集成的方法有两种: 多元集成法,一次性将多个局部E-R图合并为一个全局E-R图。 二元集成法,首先集成两个重要的局部E-R图,以后用累加的方法逐步将一个新的E-R图集成进来。,局部E-R图,合并(消除冲突),优化(消
23、除不必要的冗余),基本E-R图,初步E-R图,分析,规范化理论,2022/12/20,71,4 逻辑结构设计,初始关系模式设计,概念结构设计,关系模式规范化,模式评价,是否修正,以DBMS语法描述,模式修正,物理设计,是,否,转换原则 将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。 在转换中要遵循以下原则:(1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。(2)一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况:如果联系为1:1,则每个实体的键都是关系的候选键如果联系为1:n,则n端
24、实体的键是关系的键如果联系为n:m,则各实体键的组合是关系的键,2022/12/20,72,初始关系模式设计,2022/12/20,73,关系模式规范化,确定范式级别,实施规范化处理,需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,用数据依赖概念分析和表示各个数据项之间的联系,以规范化理论为指导,确定关系键,消除初步E-R图中冗余的联系,从E-R图向数据模型转换过程中,用模式合并与分解方法达到规范化级别,模式评价 功能评价 功能评价指对照需求分析的结果,检查规范化后的关系模式集合是否支持用户所有的应用要求。 性能评价 对实际性能进行估计,包括逻辑记录的存取数、传送量以及物理结构设计算法的模型
25、等 。模式改进,2022/12/20,74,模式评价与改进,合并,分解,2022/12/20,75,5 物理结构设计,数据库的物理结构设计可分为两步:确定物理结构,在关系数据库中主要指存取方法和存储结构;评价物理结构,评价的重点是时间和空间效率。确定物理结构存储记录结构的设计 聚集索引,2022/12/20,76,访问方法的设计 访问方法是为存储在物理设备(通常指辅存)上的数据提供存储和检索能力的方法。 访问路径的设计分成主访问路径与辅访问路径的设计 。数据存放位置的设计 为了提高系统性能,应该根据应用情况将数据的易变部分、稳定部分、经常存取部分和存取频率较低部分分开存放。 系统配置的设计DB
26、MS产品一般都提供了一些系统配置变量、存储分配参数,供设计人员和DBA对数据库进行物理优化。系统为这些变量设定了初始值,但是这些值不一定适合每一种应用环境,在物理结构设计阶段,要根据实际情况重新对这些变量赋值,以满足新的要求。,2022/12/20,77,6 数据库实施,数据库实施是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。,建立实际数据库结构,装入数据,应用程序编码与调试,数据库试运行,整理文档,2022/12/20,78,7 数据库运行和维护,数据库运行和维护阶段的主要任务包括以下三项内容:(1)维护数据库的安全性与完整性;(2)监
27、测并改善数据库性能;(3)重新组织和构造数据库。只要数据库系统在运行,就需要不断地进行修改、调整和维护。一旦应用变化太大,数据库重新组织也无济于事,这就表明数据库应用系统的生命周期结束,应该建立新系统,重新设计数据库。,2022/12/20,79,备份和还原,备份和还原的含义备份内容:数据库结构和数据备份对象:用户数据库+系统数据库备份设备是指备份内容的存储介质 disk(硬盘文件) 最常用 tape(磁带) pipe(命名管道) 备份方法:使用SQL或企业管理器,2022/12/20,80,备份的类型,数据库备份,事务日志备份,差异备份,文件和文件组备份,数据库备份是指对所有的数据以及数据库
28、对象备份,事务日志备份是指对数据库发生的事务进行备份,差异备份是指将最近一次数据库备份以来发生的数据变化备份起来,文件或文件组备份是指对数据库文件或文件组进行备份,只有进行了完全备份后才能进行差异备份以及事务日志备份,2022/12/20,81,数据库的还原,将数据库的备份加载到系统中,是与备份相对应的操作。备份是还原的基础,没有备份就无法还原。 还原的类型 简单还原:在进行数据库还原时仅使用数据库备份或差异备份,而不涉及事务日志备份。 完全还原:通过使用数据库备份和事务日志备份将数据库还原到发生失败的时刻。 大容量日志记录还原:在性能上要优于简单还原和完全还原模型,能尽量减少批操作所需的存储
29、空间。 还原方法:使用SQL或企业管理器,2022/12/20,82,1 数据库的安全性控制(防止非法访问)2 完整性控制 (防止错误的数据进入数据库)3 数据库的恢复(挽救措施),第8章 数据库安全性,83,本章要点,安全性的概念数据库系统的安全机制存取控制自主存取控制(DAC)GRANT语句REVOKE语句 强制存取控制(MAC)基于角色的访问控制,84,本章要点,其它安全控制方法视图机制审计数据加密统计数据库安全性数据库安全机制的设计目标试图破坏安全的人所花费的代价 得到的利益SQL Server和 Oracle的安全控制,2022/12/20,85,1 数据库的安全性,数据库安全性的含
30、义 指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。安全性控制的一般方法,安全性控制是指要尽可能地杜绝所有可能的数据库非法访问。 用户标识和鉴定、用户存取权限控制、数据加密、审计等。,图 安全控制模型,2022/12/20,北京林业大学 软件教研室,86,SQL Server2000的数据安全性机制,为了实现安全性,SQL Server 2000对用户的访问进行两个阶段的检验身份验证阶段(Authentication):决定了用户能否连接(或登录)到SQL Server 2000服务器。权限许可确认阶段(Permission Validation):决定了经过了身份验证后的用户连接到S
31、QL Server 2000服务器可以执行的具体操作,包括服务器上的操作和具体的数据库上的操作。,87,在SQL Server中,登录服务器的登录账号(Login Name);查看服务器的登录账号 使用Enterprise Manager 使用存储过程,SQL Server的登录账号和服务器角色(第一道屏障),EXEC sp_helplogins,88,创建服务器的登录账号 利用Enterprise Manage 利用存储过程 例5-1 建立了一个名称为Mike的登录账号。EXEC sp_addlogin Mike, m1934, Teach, NULL,EXEC sp_addlogin 登录
32、账号名称, 密码, 默认数据库名, 使用的语言,89,更改登录账号的属性 利用Enterprise Manage 使用存储过程sp_password可改变登录账号的密码 例5-3 将Mike账号的密码由原来的m1934改为mike1934。EXEC sp_password m1934, mike1934, Mike 使用存储过程sp_addsrvrolemember可以将登录账号加入服务器的角色中 例5-4 将登录账号Mike加入到dbcreator服务器角色中。EXEC sp_addsrvrolemember Mike, dbcreator,EXEC sp_password 旧密码, 新密码
33、, 登录账号名称,EXEC sp_addsrvrolemember 登录账号, 服务器角色名称,90,删除登录账号 使用Enterprise Manager 使用存储过程 例5-5 从数据库Teach中删除Mike登录账号。EXEC sp_droplogin Mike SQL Server的服务器角色 角色(Role)是对权限集中管理的一种机制,将不同的权限组合在一起就形成了一种角色。 服务器角色是执行服务器级管理操作的用户权限的集合。,sp_droplogin 登录账号,91,SQL Server在安装过程中默认创建的服务器角色及其权限,92,数据库的用户账号当一个数据库的用户创建时,必须关
34、联一个登录账号。 每个登录账号在一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。,SQL Server的数据库用户账号和数据库角色 (第二道屏障),93,查看数据库的用户账号 使用Enterprise Manager sp_helpuser 创建数据库的用户账号 使用Enterprise Manager sp_adduser 登录账号, 用户账号, 所属的数据库角色,94,设置数据库用户账号的权限 对数据库对象的操作,具体含义如下SELECT:对表或者视图进行查询。INSERT:在表或者视图中插入记录。UPDATE:对表或者视图中的数据进行修改。DELETE
35、:删除表或者视图中的数据。EXEC:执行存储过程。DRI:可对表的外键加以限制,以完成表的参照完整性。,95,删除数据库用户账号 使用Enterprise Manager sp_dropuser 用户账号 例5-8 从数据库中删除ZHANGSAN用户账号。EXEC sp_dropuser ZHANGSAN数据库角色 数据库角色是对数据库对象操作的权限的集合。 数据库角色可分为两种:固定的标准数据库角色(系统创建的)应用程序角色,96,SQL Server固定的数据库角色,97,查看数据库角色创建新的数据库角色 sp_addrole 角色名, 拥有者删除数据库角色 sp_droprole 角色名
36、 创建数据库应用程序角色 sp_setapprole 应用程序角色名, 密码 用户和角色的权限问题 用户权限继承角色的权限 用户分属不同角色,EXEC sp_addrole Myrole, dbo,EXEC sp_droprole Myrole,EXEC sp_setapprole Approle, 11111,2022/12/20,98,2 完整性控制,数据库完整性的含义 保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作防止合法用户使用数据库时向数据库中加入不符合语义的数据完整性规则的组成触发条件、约束条件、违约响应立即执行约束、延迟执行约束,2022/12/2
37、0,99,完整性约束的分类,从约束条件使用的对象分,值的约束和结构的约束对数据类型、数据格式、取值范围和空值等进行规定结构的约束即对数据之间联系的约束函数依赖约束实体完整性约束参照完整性约束统计约束静态约束和动态约束,关系的两个不变性,从约束对象的状态分,声明式数据完整性 将数据所需符合的条件融入到对象定义中,这样SQL Server会自动确保数据符合事先制定的条件。 特点可使声明式数据完整性成为数据定义的一部分。使用约束、默认值与规则实施声明式数据完整性。程序化数据完整性通过编程保障数据完整性特点:程序化数据完整性可通过程序语言及工具在客户端或服务器端实施。SQL Server可以使用存储过
38、程或触发器实施程序化数据完整性。,2022/12/20,100,数据完整性的实施,2022/12/20,101,3 数据库的恢复,数据库恢复的含义基本原理:利用冗余数据来恢复方法:登记日志、数据转储 三类故障的恢复方法事务故障及恢复、系统故障及恢复和介质故障及恢复,102,第9章 数据恢复技术和并发控制,103,本章要点,事务基本概念定义事务的SQL语句性质数据库恢复恢复的定义、原则和方法故障的种类及恢复方法具有检查点的恢复技术数据库镜像,104,本章要点,并发控制并发操作带来的数据不一致性封锁活锁和死锁并发调度的可串行性两段锁协议封锁的粒度,105,ACID 特性,(Atomicity)(C
39、onsistency)(Isolation)(Durability),A C I D,106,登记日志文件的原则,登记的次序严格按并行事务执行的时间次序必须先写日志文件,后写数据库写日志文件操作:把表示这个修改的日志记录 写到日志文件写数据库操作:把对数据的修改写到数据库中,107,基本封锁类型,排它锁又称为写锁(Exclusive lock,简记为X锁)若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。共享锁又称为读锁(Share lock,简记为S锁)若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对
40、A加S锁,而不能加X锁,直到T释放A上的S锁。,108,封锁协议,在事务并发操作对数据对象加锁时,还需要约定一些规则,即何时申请X锁或S锁、持锁时间、何时释放等,称这些规则为封锁协议。对封锁方式规定不同的规则,就形成了各种不同的封锁协议 。,2022/12/20,109,并发控制与封锁,数据库并发的含义事务的含义及事务的ACID特性并发操作导致的数据不一致性丢失数据、读脏数据、不可重读锁:排他锁(X锁)、共享锁(S锁)三级封锁协议死锁和活锁死锁的预防及消除,110,封锁、封锁类型及其含义,封锁就是事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁,这样事务T就对这个数据对象有了一定的控
41、制,其他事务就不能更新此数据,直到事务T释放它的锁为止。基本的封锁的类型有排它锁(“X”锁)和共享锁(“S”锁)两种。若事务T对数据A加上X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。若事务T对数据A加上S锁,则其他事务只有再对A加S锁,而不能加X锁,直到T释放A上的锁。,2022/12/20,111,数据库的恢复,数据库恢复的含义基本原理:利用冗余数据来恢复方法:登记日志、数据转储 三类故障的恢复方法事务故障及恢复、系统故障及恢复和介质故障及恢复,112,小结,如果数据库只包含成功事务提交的结果,就说数据库处于一致性状态。保证数据一致性是对数据
42、库的最基本的要求。事务是数据库的逻辑工作单位DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性,113,恢复中最经常使用的技术:数据库转储和登记日志文件恢复的基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库提高恢复效率的技术检查点技术可以提高系统故障的恢复效率可以在一定程度上提高利用动态转储备份进行介质故障恢复的效率镜像技术镜像技术可以改善介质故障的恢复效率,小结,114,数据库的并发控制以事务为单位数据库的并发控制通常使用封锁机制两类最常用的封锁活锁和死锁并发控制机制调度并发事务操作是否正确的判别准则是可串行性并发操作的正确性则通常由两段锁协议来保证。两段锁
43、协议是可串行化调度的充分条件,但不是必要条件封锁的粒度多粒度树多粒度封锁,小结,2022/12/20,115,分布式数据库,关系型数据库在可扩展性上边面临巨大挑战。传统的关系数据库的事务以及二维关系很难高效扩展到多个存储节点上为解决关系数据库面临的可扩展性、高并发以及性能方面的问题,各种NoSQL数据库出现了,116,第10章 基于关系型数据库的Web应用,课程难点与学习目的,1. 课程难点:基于B/S架构的关系型数据库Web应用程序开发模式;服务器端的动态网页技术;基于XML的数据库信息管理。2. 学习目的:了解C/S、B/S架构;了解常见的Web服务器及服务器端的动态网页技术;了解客户端网
44、页设计的一般方法;了解XML技术。,主要内容,1. 基于B/S架构的关系型数据库2. Web应用程序开发模式3. 中间件4. 常见的Web服务器5. 服务器端的动态网页技术6. 客户端网页设计相关技术7. 基于XML的数据库信息管理,119,第11章 大数据应用背景下的数据管理,背景,1. 大数据时代已经来临。数据量急剧扩充的时代。对数据管理技术提出更高的要求。2. 传统封的关系型数据库面临挑战。在扩展性、实时响应等方面难以满足用户的需求。3. NoSQL与传统关系型数据库的部分不同。非关系型数据库结构往往不固定,每个元组可有不一样的结构字段;每个元组可根据需要增加一些特定的键值对,不局限于固
45、定结构,可减少一些时间和空间开销。,主要内容,1. 大数据及其主要特点2. 传统数据处理方式面临的挑战3. 大数据应用背景下的数据管理特点及部分数据管理产品,1 数据量巨大,1. 伴随着数据规模的剧增,数据的价值密度在减小,从大数据中挖掘有价值的知识,是有现实意义的。2. Web应用、电信、金融、保险、公共安全、医疗、气象、教育、地理等其它行业每天也都产生着难以估计的海量数据。,2 结构多样化,1. 传统的数据挖掘主要是以结构化数据为主。2. 大数据时代,结构化、半结构化、非结构化数据融合,且数据来源多样、质量良莠不齐。3. 对大数据的处理来说,更大意义上是对非结构化大数据的处理和挖掘。,3
46、处理速度更快,1. 大数据时代之前处理的数据一般都是静态的数据,或者数据的产生与变化速度较低,采用批处理的方式即可解决。2. 微博等社交网络数据以及电子商务等交易数据是以实时数据流的方式出现的,要求对数据处理速度更快。,4 应用价值高,感知现在、发现规律、预测未来、决策调控知识发现测与决策等,大数据的特点,大数据应用背景下的数据管理特点,1. 简单的数据类型系统往往只需支持单记录级别的原子性,不必过多考虑外键和跨记录的关联,这样就增加了系统的可扩展性。2. 元数据和应用数据的分离元数据一般要求满足一致性和实时性,而应用数据的一致性需求往往因不同的应用而不同,故常将它们分离。3. 弱一致性通过复
47、制应用数据来达到一致性。为减少不必要的开销,弱一致性模型得到应用。,小结,1. 传统的关系数据库在应付超大规模和高并发的数据类型和动态网站时,暴露了一些问题。2. 大数据时代,非关系型数据库得到迅速发展。3. 当需处理的大容量数据集在持续快速增长时,来自NoSQL家族的数据管理系统更容易实现持续扩容。4. 在“互联网+”和大数据时代,掌握传统的关系型数据库,以及大数据应用背景下的数据管理技术,具有十分重要的实际应用价值。,129,第12章 关系型数据库应用系统案例分析,130,小结,应用程序设计过程需求分析概念结构设计数据库设计 功能模块设计 界面设计程序开发 系统调试与排错,131,致谢,在对全书内容的总结过程中,参考并引用了部分来源自北京林业大学陈志泊老师的教学课件,在此表示衷心感谢!,个人观点供参考,欢迎讨论,