版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件设计师教程软件设计师教程 n宋安平宋安平n上海大学计算机学院上海大学计算机学院nA2004年10月24日GGG1数据库技术基础数据库技术基础 2 n数据库与数据库管理系统数据库与数据库管理系统n数据管理技术的发展数据管理技术的发展nDBMS的功能的功能nDBMS的特征的特征n数据库的三级模式结构数据库的三级模式结构2021-11-233一、数据库与数据库管理系统n1、数据库管理系统(数据库管理系统(DBMSDBMS):是位于):是位于用户与操作系统之间的一层数据管理用户与操作系统之间的一层数据管理软件,为用户和应用程序提供访问软件,为用户和应用程序提供访问DBD
2、B的方法,包括的方法,包括DBDB的建立、查询、更新的建立、查询、更新及各种数据控制。及各种数据控制。 n2 2、数据库(、数据库(DBDB):是统一管理的相关):是统一管理的相关数据的集合。数据的集合。 4二、数据管理技术的发展 n发展经过三个阶段:发展经过三个阶段:n人工管理阶段人工管理阶段n文件系统阶段文件系统阶段u三个缺陷:三个缺陷:数据的冗余性、数据不数据的冗余性、数据不一致性、数据联系弱。一致性、数据联系弱。 n数据库阶段数据库阶段u采用复杂的数据模型表示数据结构、采用复杂的数据模型表示数据结构、有较高的数据独立性。有较高的数据独立性。 5三、 DBMS的功能n数据定义数据定义n数
3、据库操作功能(检索和更新)数据库操作功能(检索和更新)n数据库运行管理(数据库的恢复、并数据库运行管理(数据库的恢复、并发性、完整性、安全性)发性、完整性、安全性)n数据组织、存储和管理数据组织、存储和管理n数据库的建立和维护数据库的建立和维护n其他功能其他功能 6四、 DBMS的特征n特征特征u数据结构化且统一管理数据结构化且统一管理u较高的数据独立性较高的数据独立性u数据控制功能数据控制功能 nRDBMSnOODBSnORDBS7五、数据库的三级模式结构 n1、外模式:又称子模式、用户模式,是用户和数据、外模式:又称子模式、用户模式,是用户和数据库系统的接口,是用户用到的那部分数据的描述。
4、库系统的接口,是用户用到的那部分数据的描述。n概念模式:又称模式,是数据库中全部数据的整体概念模式:又称模式,是数据库中全部数据的整体逻辑结构的描述。逻辑结构的描述。n内模式:又称存储模式,是数据库在物理存储方面内模式:又称存储模式,是数据库在物理存储方面的描述。的描述。n2、两级映象、两级映象模式模式/内模式映象,外模式内模式映象,外模式/模式映象。模式映象。n3、两级数据独立性、两级数据独立性 物理数据独立性,物理数据独立性,逻辑数据独立性。8n数据模型的基本概念数据模型的基本概念n数据模型的三要素问题数据模型的三要素问题n实体联系模型(实体联系模型(ER图)图)n层次模型层次模型n网状模
5、型网状模型n关系模型关系模型9n1、数据描述的三个领域、数据描述的三个领域u现实世界:存在与人们头脑以外客观世界。现实世界:存在与人们头脑以外客观世界。u信息世界:现实世界在人们头脑中的反映。信息世界:现实世界在人们头脑中的反映。u机器世界:信息世界的信息在机器世界中以数据形机器世界:信息世界的信息在机器世界中以数据形式存储。式存储。n2、信息世界和机器世界术语的关系、信息世界和机器世界术语的关系: 信息世界信息世界 机器世界机器世界 实体实体 记录记录 属性属性 字段字段 实体集实体集 文件文件 实体标识符实体标识符关键码关键码一、数据模型的基本概念10二、数据模型的三要素问题n数据库的逻辑
6、结构,与硬件、数据库的逻辑结构,与硬件、DBMSDBMS有关,有三部分构成:有关,有三部分构成:u数据结构数据结构u数据操作数据操作u数据完整性数据完整性n四种数据模型:四种数据模型: u层次模型层次模型u网状模型网状模型u关系模型关系模型u面向对象模型面向对象模型11三、实体联系模型(ER图) n 实体的联系有两类实体的联系有两类u一类是实体内部(属性之间)的联系(第一类是实体内部(属性之间)的联系(第5 5节讨节讨论)论)u一类是实体集内部(实体和实体之间)的联系一类是实体集内部(实体和实体之间)的联系(本节讨论)(本节讨论)n 实体间的联系有三种:实体间的联系有三种:u两个实体集中各实体
7、之间的联系:一对一(两个实体集中各实体之间的联系:一对一(1 1:1 1)、)、 一对多一对多 (1 1:N N)、多对多)、多对多 (M M:N N) u三个实体集中各实体之间的联系。三个实体集中各实体之间的联系。u同一实体集内部各实体之间的联系。同一实体集内部各实体之间的联系。 12三、实体联系模型(续) n 属性:属性:u简单属性和复合属性简单属性和复合属性u单值属性和多值属性单值属性和多值属性uNULL属性属性u派生属性派生属性n E-R方法方法n 扩充的扩充的E-R 模型模型 u弱实体弱实体u超类和子类超类和子类 13四、层次模型n创始:创始:19681968年美国年美国IBMIBM
8、公司的公司的IMSIMS系统系统n数据结构:树结构数据结构:树结构n特点:数据联系通过指针实现特点:数据联系通过指针实现n缺点:不能直接表示多对多缺点:不能直接表示多对多14五、网状模型n创始:创始:19691969年年CODASYLCODASYL的的DBTGDBTG报告报告n数据结构:有向图结构数据结构:有向图结构 n特点:数据联系通过指针实现特点:数据联系通过指针实现n缺点:结构复杂缺点:结构复杂15六、关系模型n创始:创始:19701970年年E.F. CoddE.F. Codd提出关系模型提出关系模型 n数据结构:二维表数据结构:二维表 n特点:表间公共属性特点:表间公共属性 n缺点:
9、效率低缺点:效率低16n关系模型的基本概念关系模型的基本概念n关系代数关系代数n扩充的关系代数扩充的关系代数17一、关系模型的基本概念 n属性和域属性和域u属性:描述实体的特征属性:描述实体的特征u域:属性的取值范围域:属性的取值范围n笛卡尔积和关系笛卡尔积和关系18一、关系模型的基本概念(续) n术语术语u超键:在关系中能惟一标识超键:在关系中能惟一标识元组的属性集称元组的属性集称为为关系模型的超键。关系模型的超键。u候选键:不含有多余候选键:不含有多余属性属性的超键的超键称为称为候选键。候选键。u主键:用户选作主键:用户选作元组元组标识的一个候选键标识的一个候选键称为称为主键。主键。u主属
10、性:包含在任何候选键中的属性。主属性:包含在任何候选键中的属性。u外键:该外键:该属性不是本关系的属性不是本关系的主键,正好是另主键,正好是另外一个关系的主键,则该外一个关系的主键,则该属性称为本关系的属性称为本关系的外键。外键。u全码:所有属性组是这个关系模式的候选码。全码:所有属性组是这个关系模式的候选码。19一、关系模型的基本概念(续) n关系的关系的3 3种类型种类型u基本关系基本关系u查询表查询表u视图视图n关系数据库模式关系数据库模式n完整性约束完整性约束u实体完整性实体完整性u参照完整性参照完整性u用户定义完整性用户定义完整性20二、关系代数 n关系运算理论分为关系代数和关系演算
11、关系运算理论分为关系代数和关系演算两种两种n关系代数是由一组以关系作为运算对象关系代数是由一组以关系作为运算对象的特定的运算符组成的特定的运算符组成n常用的运算为九种:并、交、差、笛卡常用的运算为九种:并、交、差、笛卡尔积、联接、自然联接、投影、选择、尔积、联接、自然联接、投影、选择、除运算等,其中五种为基本运算:并、除运算等,其中五种为基本运算:并、交、笛卡尔积、投影、选择运算。交、笛卡尔积、投影、选择运算。 21二、关系代数 (续1)n关系代数的五种基本运算关系代数的五种基本运算n设有两个关系设有两个关系R R和和S S具有相同的关系模式。具有相同的关系模式。u并(并() RSttRtS,
12、tRSttRtS,t为元组变量,为元组变量,R R和和S S结构相同。结构相同。u差(差(- -) R-SttRtR-SttRt S,tS,t为元组变量,为元组变量,R R和和S S结结构相同。构相同。u笛卡尔积(笛卡尔积() RStt=RStt=t tr r,t,ts sttr rRtRts sSSu投影投影() () i1i1, , ,imim(R)tt=(R)tt=t ti1i1, ,t,timimt t1 1, ,t,tk kRRu选择选择() () F F(R) ttRF(t)true,F(R) ttRF(t)true,F是由逻辑是由逻辑运算符和比较运算符连接运算对象构成的表达式。运
13、算符和比较运算符连接运算对象构成的表达式。22二、关系代数 (续2)n关系代数的四种组合运算关系代数的四种组合运算u交交RSR-(R-S) RSR-(R-S) 或或RSS-(S-R)RSS-(S-R)u联接联接R R S SABAB(RSRS)其中)其中A A是是R R的的 ABAB属性,属性,B B是是S S的属性。的属性。u自然联接自然联接R R S S去掉去掉S S中公共属性中公共属性(公共属性公共属性上值相等上值相等(RSRS)u除除R RS S 可以视为笛卡尔积的逆运算。可以视为笛卡尔积的逆运算。23三、扩充的关系代数 n广义投影广义投影n外联接外联接u左外联接左外联接u右外联接右外
14、联接u全全外联接外联接n外部并外部并 24nSQL数据库体系结构数据库体系结构nSQL的基本组成的基本组成nSQL数据定义数据定义nSQL数据查询数据查询nSQL数据更新数据更新n嵌入式嵌入式 SQL25一、SQL数据库体系结构 n1 1、SQLSQL发展发展n19861986年年1010月,月,ANSIANSI颁布美国标准的颁布美国标准的SQLSQL语言,语言,19871987年年6 6月,月,ISOISO采纳为国际标准采纳为国际标准,19921992年推出年推出SQL2SQL2,19991999年推出年推出SQL3SQL3,本章介绍本章介绍SQL2SQL2。n2、 SQLSQL数据库的体系
15、结构数据库的体系结构nSQLSQL数据库的体系结构基本上也是三级结构。数据库的体系结构基本上也是三级结构。SQLSQL数据库数据库是表的汇集,表或是基本表,或是视图,基本表是实际是表的汇集,表或是基本表,或是视图,基本表是实际存储在数据库中的表,而视图是若干基本表或其它视图存储在数据库中的表,而视图是若干基本表或其它视图构成的表的定义。一个基本表可以跨一个或多个存储文构成的表的定义。一个基本表可以跨一个或多个存储文件,一个存储文件也可以放一个或多个基本表。用户可件,一个存储文件也可以放一个或多个基本表。用户可以用以用SQLSQL语句对视图和基本表进行查询等操作。语句对视图和基本表进行查询等操作
16、。26二、SQL的基本组成nSQLSQL分四部分:分四部分:u数据定义数据定义DDLDDL:CREATECREATE,DROPDROP,ALTERALTERu数据操纵数据操纵DMLDML:SELECTSELECT,INSERTINSERT,DELETEDELETE,UPDATEUPDATEu数据控制数据控制DCLDCL:GRANTGRANT,REVOKEREVOKEu嵌入式嵌入式SQLSQL27三、SQL数据定义nSQLSQL数据定义部分包括对数据定义部分包括对SQLSQL模式、基本表、视图和索引的创模式、基本表、视图和索引的创建和撤消操作。建和撤消操作。u(1 1)SQLSQL模式的创建和撤
17、消模式的创建和撤消SQLSQL模式的创建:模式的创建:CREATE SCHEMA CREATE SCHEMA 模式名模式名 AUTHORIZATION AUTHORIZATION 用户名用户名SQLSQL模式的撤消:模式的撤消:DROP SCHEMA DROP SCHEMA 模式名模式名 CASCADE|RESTRICTCASCADE|RESTRICTu(2 2)基本表的创建、修改和撤消)基本表的创建、修改和撤消基本表的创建:基本表的创建:CREATE TABLECREATE TABLE基本表名(列名基本表名(列名 类型类型完整性完整性约束约束) 类型为基本数据类型,完整性约束有三个子句:类型
18、为基本数据类型,完整性约束有三个子句:主键子句(主键子句(PRIMARY KEYPRIMARY KEY)、检查子句()、检查子句(CHECKCHECK)、外键子句)、外键子句(FOREIGN KEYFOREIGN KEY)。)。基本表的修改:基本表的修改:ALTER TABLEALTER TABLE基本表名基本表名 ADDADD列名列名 类型类型 A L T E R T A B L EA L T E R T A B L E 基 本 表 名基 本 表 名 D R O P D R O P 列 名列 名CASCADE|RESTRICT CASCADE|RESTRICT 基本表的撤消:基本表的撤消:D
19、ROP TABLEDROP TABLE基本表名基本表名CASCADE|RESTRICTCASCADE|RESTRICT28三、SQL数据定义(续)nSQLSQL数据定义部分包括对数据定义部分包括对SQLSQL模式、基本表、视图和模式、基本表、视图和索引的创建和撤消操作。索引的创建和撤消操作。u(3 3)视图的创建和撤消)视图的创建和撤消视图的创建视图的创建: CREATE VIEW : CREATE VIEW 视图名(列名表)视图名(列名表)AS AS SELECT SELECT 查询语句查询语句视图的撤消:视图的撤消:DROP VIEW DROP VIEW 视图名视图名 u(4 4)索引的创
20、建和撤消)索引的创建和撤消索引的创建索引的创建: CREATE UNIQUEINDEX: CREATE UNIQUEINDEX索引名索引名 ON ON 基本基本表名(列名表)表名(列名表)索引的撤消:索引的撤消:DROP INDEX DROP INDEX 索引名索引名29四、SQL数据查询nSELECTSELECT语句的完整句法:语句的完整句法:uSELECT DISTINCTSELECT DISTINCT目标列的列名或列表达式序列目标列的列名或列表达式序列uFROM FROM 基本表和视图基本表和视图序列序列uWHERE WHERE 行条件表达式行条件表达式 uGROUP BY GROUP
21、BY 列名序列列名序列 HAVING HAVING 组条件表达式组条件表达式uORDER BY ORDER BY 列名列名ASC|DESCASC|DESC 30五、SQL数据更新nSQLSQL的数据更新包括:数据插入、删除和修改。的数据更新包括:数据插入、删除和修改。u(1 1)数据插入)数据插入单元组值的单元组值的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)基本表名(列名表)VALUESVALUES(元组值)元组值)多元组值的多元组值的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)(基本表名(列名表)(TABLETABLE(元组值),
22、元组值),(元组值),元组值),)查询结果的查询结果的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)基本表名(列名表)SELECT SELECT 查询语句查询语句u(2 2)数据删除)数据删除DELETE FROM DELETE FROM 基本表名基本表名 WHERE WHERE 条件表达式条件表达式 u(3 3)数据修改)数据修改UPDATEUPDATE基本表名基本表名 SET SET 列名列名= =值值表达式表达式 ,列名列名= =值值表达式表达式 WHERE WHERE 条件表达式条件表达式 31五、SQL的访问控制nSQLSQL中的用户权限及操作中的用户权限
23、及操作u六类权限:六类权限:SELECTSELECT,INSERTINSERT,DELETEDELETE,UPDATEUPDATE,REFERENCESREFERENCES,USAGEUSAGE。u授权(授权(GRADEGRADE)语句:将关系和视图操作权授予特)语句:将关系和视图操作权授予特定用户定用户 GRANT ON TO WITH GRANT OPTION;u回收(回收(REVOKEREVOKE)语句:回收已授给某用户的权限。)语句:回收已授给某用户的权限。 REVOKE ON FROM ;32六、嵌入式 SQLn (1 1) SQLSQL语言的运行环境语言的运行环境uSQLSQL语言
24、有两种使用方式:交互式语言有两种使用方式:交互式SQLSQL和嵌入式和嵌入式SQLSQL。uSQLSQL语言和宿主语言(高级语言)在数据类型上有很大的差别。语言和宿主语言(高级语言)在数据类型上有很大的差别。u嵌入式嵌入式SQLSQL的实现有两种处理方式:扩充宿主语言的编译程序的实现有两种处理方式:扩充宿主语言的编译程序和预处理方式。和预处理方式。uSQLSQL语句与宿主语言程序间信息的传递是通过共享变量实现的。语句与宿主语言程序间信息的传递是通过共享变量实现的。n(2 2)嵌入式)嵌入式SQLSQL的使用规定的使用规定u在程序中要区分在程序中要区分SQLSQL语句与宿主语言语句,所有语句与宿
25、主语言语句,所有SQLSQL语句前必语句前必须加上前缀须加上前缀“EXEC SQLEXEC SQL”和结束标志和结束标志“;”。u允许嵌入的允许嵌入的SQLSQL语句引用的程序变量(共享变量)。语句引用的程序变量(共享变量)。uSQLSQL的集合处理方式与宿主语言单记录处理方式之间的协调用的集合处理方式与宿主语言单记录处理方式之间的协调用游标(游标(CURSORCURSOR)机制。与游标有关的语句有四个:游标定义)机制。与游标有关的语句有四个:游标定义(DECLAREDECLARE)、打开()、打开(OPENOPEN)、推进()、推进(FETCHFETCH)、关闭)、关闭(CLOSECLOSE
26、)。)。33六、嵌入式 SQL(续)n (3 3)嵌入式)嵌入式SQLSQL的使用技术的使用技术uSQL DDLSQL DDL语句只要加上前缀标识语句只要加上前缀标识“EXEC SQLEXEC SQL”和结束和结束标识标识“END EXECEND EXEC”,就能使用。,就能使用。uSQL DMLSQL DML语句使用时有两种技术:语句使用时有两种技术:不涉及游标的不涉及游标的SQL DMLSQL DML语句语句如果是如果是INSERTINSERT、DELETEDELETE和和UPDATEUPDATE语句,加上前缀标识语句,加上前缀标识“EXEC SQLEXEC SQL”和结束标识和结束标识“
27、END EXECEND EXEC”,就能嵌入在宿主,就能嵌入在宿主语言程序中使用。对于语言程序中使用。对于SELECTSELECT语句,如果查询结果是语句,如果查询结果是单元组时,也可以嵌入在宿主语言程序中使用。单元组时,也可以嵌入在宿主语言程序中使用。涉及游标的涉及游标的SQL DMLSQL DML语句语句当当SELECTSELECT语句查询结果是多个元组时,一定要用游标语句查询结果是多个元组时,一定要用游标机制把多个元组一次传送给宿主语言程序中使用。机制把多个元组一次传送给宿主语言程序中使用。u对游标指向元组时,可以进行修改和删除操作。对游标指向元组时,可以进行修改和删除操作。34n函数依
28、赖函数依赖n规范化规范化n模式分解及其特性模式分解及其特性35一、函数依赖 n函数依赖(函数依赖(FDFD)的定义)的定义n设有关系模式设有关系模式R R(A A1 1,A A2 2,A An n),),X X,Y Y是是U U的的子集,子集,r r是是R R的任一具体关系的任一具体关系 ,如果对,如果对r r的任意两的任意两个元组个元组t t1 1,t t2 2,由,由t t1 1 X=t X=t2 2XX导致导致t t1 1 Y=t Y=t2 2YY,则称则称X X函数决定函数决定Y Y,记为,记为XYXY。 n非平凡的函数依赖非平凡的函数依赖n平凡的函数依赖平凡的函数依赖n完全函数依赖完
29、全函数依赖n部分函数依赖部分函数依赖n传递函数依赖传递函数依赖36一、函数依赖 (续)n键键n 设有关系模式设有关系模式R R(A A1 1,A A2 2,A An n),),F F是是R R的一的一个函数依赖集,个函数依赖集,X X是是 A A1 1,A A2 2,A An n 的一个子的一个子集。如果集。如果uXAXA1 1A A2 2A An n F F+ +,且,且u不存在不存在X X真子集真子集Y Y,使得,使得YAYA1 1A A2 2A An n 成立,则称成立,则称X X是是R R的候选键。的候选键。n包含在任何一个候选键中的属性称为主属性包含在任何一个候选键中的属性称为主属性
30、n不包含在任何一个候选键中的属性称为非主属性。不包含在任何一个候选键中的属性称为非主属性。37一、函数依赖 (续)n多值依赖多值依赖MVDMVDn多值依赖:设多值依赖:设R R(U U)是属性集)是属性集U U上的一个关系模上的一个关系模式,式,X X,Y Y是是U U的子集,若对的子集,若对R R(U U)的任一关系)的任一关系r r,对于对于X X的一个给定的值存在着的一个给定的值存在着Y Y的一组值与其对应,的一组值与其对应,同时同时Y Y的这组值又不以任何方式与的这组值又不以任何方式与U-X-YU-X-Y中的书香中的书香相关,那么称相关,那么称Y Y多值依赖于多值依赖于X X,记,记X
31、YXY。38一、函数依赖 (续)n函数依赖的推理规则函数依赖的推理规则n设有关系模式设有关系模式R R(A A1 1,A A2 2,A An n)和属性集)和属性集U= AU= A1 1A A2 2A An n,X X,Y Y,Z Z,W W是是U U的一个子集,的一个子集,F F是是R R的一个函数依赖集,推理规的一个函数依赖集,推理规则如下:则如下:u自反律:如果自反律:如果Y Y X X U U,则,则XYXY在在R R上成立。上成立。u增广律:如果增广律:如果XYXY为为F F所蕴涵,所蕴涵,Z Z U U,则,则XZYZXZYZ在在R R上成立。上成立。u传递律:如果传递律:如果XY
32、XY和和YZYZ在在R R上成立,则上成立,则XZXZ在在R R上成立。上成立。nFDFD的其它三个推理规则:的其它三个推理规则:u合并律:如果合并律:如果XYXY和和XZXZ成立,则成立,则XYZXYZ也成立。也成立。u伪传递律:如果伪传递律:如果XYXY和和WYZWYZ成立,则成立,则WXZWXZ也成立。也成立。u分解律:如果分解律:如果XYXY和和Z ZYY,则,则XZXZ成立。成立。39二、规范化n第一范式第一范式1NF1NFu如果关系模式如果关系模式R R的所有的属性的值域中每一的所有的属性的值域中每一个值都是不可分解的值,则称个值都是不可分解的值,则称R R是属于是属于1NF1NF
33、。n第二范式第二范式2NF2NFu如果关系模式如果关系模式R R为为1NF1NF,并且,并且R R中的每一个非中的每一个非主属性完全函数依赖于主属性完全函数依赖于R R的某个候选键,则的某个候选键,则称称R R是属于是属于2NF2NF。n第三范式第三范式3NF3NFu如果关系模式如果关系模式R R为为2NF2NF,并且,并且R R中的每一个非中的每一个非主属性都不传递依赖于主属性都不传递依赖于R R的候选键,则称的候选键,则称R R是是属于属于3NF3NF。40二、规范化(续)n巴克斯范式巴克斯范式BCNFBCNFu如果关系模式如果关系模式R R为为1NF1NF,并且,并且R R中的每一个属中
34、的每一个属性都不传递依赖于性都不传递依赖于R R的候选键,则称的候选键,则称R R是属是属于于BCNFBCNF。n第四范式第四范式4NF4NFu关系模式关系模式R R,D D是一个多值依赖集,如果是一个多值依赖集,如果D D中中存在一个非平凡的多值依赖存在一个非平凡的多值依赖XYXY,并且,并且X X必是必是R R的码,那么称的码,那么称R R是是4NF4NF。 41三、模式分解及其特性n无损联结无损联结u设有关系模式设有关系模式R R,分解成关系模式,分解成关系模式 =R=R1 1,R R2 2,R RK K ,F F是是R R的的一个函数依赖集。如果对一个函数依赖集。如果对R R中满足中满
35、足F F的每一个关系的每一个关系r r都有:都有:r=r=R1R1(r r)R2R2(r r)RkRk(r r) 则称这个分解则称这个分解 是无是无损联结分解。损联结分解。u其中其中m m (r r)=R1R1(r r)R2R2(r r)RkRk(r r) 称为关称为关系系r r的投影联结变换。的投影联结变换。n保持函数依赖的分解保持函数依赖的分解u设设F F是属性集是属性集U U上的一个函数依赖集,上的一个函数依赖集,Z Z是是 U U上的一个子集,上的一个子集,F F在在Z Z上的一个投影定义为:上的一个投影定义为:Z Z(F F)= XYXY F= XYXY F+ +且且XYXY Z Z
36、u设关系模式设关系模式R R的一个分解为的一个分解为 =R=R1 1,R R2 2,R RK K ,F F是是R R的一个函的一个函数依赖集,如果数依赖集,如果uF F+ += =( U U RiRi (F F)u则称分解则称分解 保持函数依赖。保持函数依赖。42三、模式分解及其特性(续)n无损联结的测试:无损联结的测试:n关系模式关系模式R R,F F是是R R的一个函数依赖集,的一个函数依赖集,R R分解成关系分解成关系模式模式 =R=R1 1,R R2 2,R RK K ,判断,判断 是否是无损联结的是否是无损联结的方法:方法:u构造一张构造一张K K行行N N列的表格,每列对应一个属性
37、列的表格,每列对应一个属性A Aj j,每行,每行对应一个模式对应一个模式R Ri i,如果,如果A Aj j 在在R Ri i中,那么在表格的交中,那么在表格的交叉处填上叉处填上ajaj,否则填上,否则填上bijbij。u反复检查反复检查F F中的每一个函数依赖,并修改表格中的元中的每一个函数依赖,并修改表格中的元素。素。u若表格中有一行是全若表格中有一行是全a a,则是无损联结,否则不是。,则是无损联结,否则不是。n如果如果R R分解成关系模式分解成关系模式 =R=R1 1,R R2 2 ,分解,分解 是否是无是否是无损联结的充分必要条件为:损联结的充分必要条件为:uR R1 1RR2 2
38、(R R1 1RR2 2)或)或R R1 1RR2 2(R R2 2RR1 1) 43n事务管理事务管理n数据库的备份与恢复数据库的备份与恢复n并发控制并发控制n安全性和授权安全性和授权44一、事务管理 n事务的概念事务的概念u事务是由若干数据库操作组成的一个逻辑工作单事务是由若干数据库操作组成的一个逻辑工作单位,是一个不可分割的工作单位。事务是位,是一个不可分割的工作单位。事务是DBSDBS的主的主要处理对象,事务在要处理对象,事务在DBSDBS中的地位类似进程在中的地位类似进程在OSOS中中的地位。一个应用程序可以包括多个事务。的地位。一个应用程序可以包括多个事务。u事务以事务以BEGIN
39、 TRANSACTIONBEGIN TRANSACTION语句的成功执行开始,语句的成功执行开始,以以COMMITCOMMIT或或ROLLBACKROLLBACK语句的成功执行结束。语句的成功执行结束。COMMITCOMMIT(提交)语句表示一事务的全部操作都已(提交)语句表示一事务的全部操作都已成功,它对成功,它对DBDB的所有更新可真正写到的所有更新可真正写到DBDB中。中。ROLLBACKROLLBACK(回退)语句表示事务没有成功地完成(回退)语句表示事务没有成功地完成全部操作,系统将撤消该事务对全部操作,系统将撤消该事务对DBDB已作的更新。已作的更新。 45一、事务管理 (续)n事
40、务有四个重要性质:原子性、一致性、隔离性和持久性。事务有四个重要性质:原子性、一致性、隔离性和持久性。通常称为通常称为“ACID性质性质”。u原子性(原子性(atomicity):): 事务对数据库的更新要么全部起作用,事务对数据库的更新要么全部起作用,要么完全不起作用。要么完全不起作用。DBMSDBMS的事务管理子系统的事务管理子系统u一致性(一致性(consistency):事务将数据库从一个一致性状态转变):事务将数据库从一个一致性状态转变为另一个一致性状态。为另一个一致性状态。 程序员(正确地编写事务)程序员(正确地编写事务)DBMSDBMS的完的完整性子系统整性子系统u隔离性(隔离性
41、(isolation ):事务相互隔离,在多个事务并发执行):事务相互隔离,在多个事务并发执行时,任一事务的更新操作在该事务成功提交前对其他事务都时,任一事务的更新操作在该事务成功提交前对其他事务都是不可见的。是不可见的。DBMSDBMS的并发控制子系统的并发控制子系统u持久性(持久性(durability):事务一旦成功提交,其对数据库的更):事务一旦成功提交,其对数据库的更新就永久有效,不会因系统崩溃等而丢失。新就永久有效,不会因系统崩溃等而丢失。DBMSDBMS的恢复管的恢复管理子系统理子系统 46二、数据库的备份与恢复n数据库备份的必要性数据库备份的必要性u非预期事务故障:运算错误、数
42、据错误、死非预期事务故障:运算错误、数据错误、死锁等,故障事务夭折锁等,故障事务夭折u可预期事务故障:在事务中可预期出错的地可预期事务故障:在事务中可预期出错的地方所加的方所加的ROLLBACKROLLBACK语句语句u系统故障:系统故障:硬件、系统软件出错,停电等,硬件、系统软件出错,停电等,事务执行被打断,内存中数据被破坏事务执行被打断,内存中数据被破坏u介质故障:介质故障:磁头、磁盘控制器或磁盘损坏,磁头、磁盘控制器或磁盘损坏,盘上数据丢失,病毒破坏等,盘上数据丢失,病毒破坏等,DBDB遭破坏遭破坏u计算机病毒计算机病毒47二、数据库的备份与恢复n数据库恢复的基本策略和实现方法数据库恢复
43、的基本策略和实现方法 u恢复的基本策略:冗余(数据重复存储)恢复的基本策略:冗余(数据重复存储)u实现方法:实现方法:u备份备份 定期对数据库复制或转储(静态转储定期对数据库复制或转储(静态转储和动态转储,海量转储和增量转储)。和动态转储,海量转储和增量转储)。u日志日志 执行事务时,记录其开始、结束和对执行事务时,记录其开始、结束和对DBDB的每次更新操作。的每次更新操作。48二、数据库的备份与恢复n数据库恢复的基本策略和实现方法数据库恢复的基本策略和实现方法 u恢复恢复 出故障时利用备份和日志进行恢复。出故障时利用备份和日志进行恢复。u事务故障:对故障事务作撤消(事务故障:对故障事务作撤消
44、(UNDOUNDO)操作)操作u系统故障:重启系统故障:重启DBMSDBMS,利用日志:,利用日志:对未完成事对未完成事务做撤消(务做撤消(UNDOUNDO)操作对已提交但其更)操作对已提交但其更新结果尚留在系统缓冲区的事务作重做新结果尚留在系统缓冲区的事务作重做(REDOREDO)操作,)操作,重新执行故障发生时未完成的重新执行故障发生时未完成的事务。事务。u介质故障:重装最新的备份,利用日志对此备份介质故障:重装最新的备份,利用日志对此备份以来的全部成功事务进行以来的全部成功事务进行REDOREDO操作,以使操作,以使DBDB恢复恢复到故障发生前的正确状态。到故障发生前的正确状态。49二、
45、数据库的备份与恢复n数据库镜像数据库镜像 u在现有的在现有的SQLSQL标准中,没有显式的事务开标准中,没有显式的事务开始语句(今后的始语句(今后的SQLSQL标准中将包含标准中将包含BEGIN BEGIN TRANSACTIONTRANSACTION),当程序中没有事务存在),当程序中没有事务存在而执行一个能启动事务的而执行一个能启动事务的SQLSQL语句时就是语句时就是一个事务的开始。一个事务的开始。SQLSQL中的中的COMMITCOMMIT或或ROLLBACKROLLBACK都意味着一个事务结束,但支持都意味着一个事务结束,但支持SQLSQL的不同的不同DBMSDBMS有些差异。有些差
46、异。50三、并发控制n为了充分利用数据库这个共享资源,为了充分利用数据库这个共享资源,DBMSDBMS允许多个事务并发地存取数据库。允许多个事务并发地存取数据库。n如果不对并发操作进行恰当的控制,可能如果不对并发操作进行恰当的控制,可能导致如下的数据不一致性问题:导致如下的数据不一致性问题:u丢失更新问题:一事务所作的更新操作因另丢失更新问题:一事务所作的更新操作因另一事务的操作而丢失。一事务的操作而丢失。u读读“脏数据脏数据”问题:又称为未提交依赖,指问题:又称为未提交依赖,指一事务取用了别的事务未提交随后又被撤消一事务取用了别的事务未提交随后又被撤消的数据。的数据。u不一致分析问题:指事务
47、从数据库中读取了不一致分析问题:指事务从数据库中读取了处于不一致状态的数据,并因此进行了不一处于不一致状态的数据,并因此进行了不一致的分析。致的分析。 51三、并发控制n封锁是实现并发控制的重要技术。所谓封封锁是实现并发控制的重要技术。所谓封锁,是指事务向系统发出对某数据对象加锁,是指事务向系统发出对某数据对象加锁的请求,以取得对该对象一定的控制权。锁的请求,以取得对该对象一定的控制权。基本的封锁有两类:基本的封锁有两类:u排它型封锁(写锁,排它型封锁(写锁,X X封锁):一个事务对封锁):一个事务对数据对象加了数据对象加了X X锁后,在它释放锁后,在它释放X X锁之前不允锁之前不允许其他事务
48、再对该数据对象加任何锁。许其他事务再对该数据对象加任何锁。u共享型锁(读锁,共享型锁(读锁,S S封锁)封锁) :一个事务对数:一个事务对数据对象加了据对象加了S S锁后,允许其他事务再对该数锁后,允许其他事务再对该数据对象加据对象加S S锁,但在它释放锁,但在它释放S S锁之前不允许其锁之前不允许其他事务加他事务加X X锁。锁。 52三、并发控制n封锁协议封锁协议 uPX协议主要内容是:事务若要更新数据,则协议主要内容是:事务若要更新数据,则必须先提出对此数据对象的必须先提出对此数据对象的X封锁请求;事务封锁请求;事务如果未获准如果未获准X封锁,那么进入等待状态,直至封锁,那么进入等待状态,
49、直至获准在此数据对象上的获准在此数据对象上的X封锁,才能继续执行。封锁,才能继续执行。PX协议可以解决因多事务同时更新同一数据协议可以解决因多事务同时更新同一数据对象而引起的更新丢失问题。对象而引起的更新丢失问题。 uPSPS协议主要内容是:事务若要存取数据,则必协议主要内容是:事务若要存取数据,则必须先提出对此数据对象的须先提出对此数据对象的S S封锁请求;事务如封锁请求;事务如果未获准果未获准S S封锁,那么进入等待状态,直至获封锁,那么进入等待状态,直至获准在此数据对象上准在此数据对象上S S封锁,才能继续执行;事封锁,才能继续执行;事务在更新数据前必须先将它在该数据对象上的务在更新数据前必须先将它在该数据对象上的S S封锁升级(封锁升级(UPGRADEUPGRADE)为)为X X封锁。封锁。 53三、并发控制n活锁和死锁活锁和死锁n恰当地运用封锁技术,可以保证并发调度的恰当地运用封锁技术,可以保证并发调度的正确性、有效地避免数据不一致,但有可能正确性、有效
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 融资合同2024年度可转债发行与购买协议
- 统编人教版六年级语文上册第1课《草原》精美课件
- 游乐场装修项目合同书
- 简单解约合同协议书范本
- 租赁2024年度标准厂房合同
- 家庭内部财产分割协议书
- 工程机械租赁合同
- 健康管理学 教育课件
- 屋面防水维修工程施工合同范本
- 《防火防爆措施》课件
- 《曼陀罗绘画疗愈-初三减压》PPT
- 超载超限培训记录
- 人力资源战略与规划模拟考试题(附答案)
- 《概率论与数理统计》电子教案
- 分子遗传学-表观遗传学课件
- 译林版小学英语二年级上册课件:Unit 5 Have some juice,please
- 国家基本医疗保险、工伤保险和生育保险药品目录
- 医院大型医用设备配置方案表
- 2023年华三杯考试复习题库及答案
- 华能电力定员标准
- 小学数学教师资格证面试真题及答案【版】
评论
0/150
提交评论