软件设计师教程之数据库技术基础_第1页
软件设计师教程之数据库技术基础_第2页
软件设计师教程之数据库技术基础_第3页
软件设计师教程之数据库技术基础_第4页
软件设计师教程之数据库技术基础_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

软件设计师教程宋安平上海大学计算机学院Apsong@021-563316722004年10月24日GGG1数据库技术基础基本概念数据模型关系代数关系数据库SQL语言关系数据库规范化数据库的控制功能

2第一节基本概念

数据库与数据库管理系统数据管理技术的发展DBMS的功能DBMS的特征数据库的三级模式结构2023/1/43一、数据库与数据库管理系统1、数据库管理系统(DBMS):是位于用户与操作系统之间的一层数据管理软件,为用户和应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。2、数据库(DB):是统一管理的相关数据的集合。4二、数据管理技术的发展发展经过三个阶段:人工管理阶段文件系统阶段三个缺陷:数据的冗余性、数据不一致性、数据联系弱。数据库阶段采用复杂的数据模型表示数据结构、有较高的数据独立性。

5三、DBMS的功能数据定义数据库操作功能(检索和更新)数据库运行管理(数据库的恢复、并发性、完整性、安全性)数据组织、存储和管理数据库的建立和维护其他功能6四、DBMS的特征特征数据结构化且统一管理较高的数据独立性数据控制功能

RDBMSOODBSORDBS7五、数据库的三级模式结构1、外模式:又称子模式、用户模式,是用户和数据库系统的接口,是用户用到的那部分数据的描述。概念模式:又称模式,是数据库中全部数据的整体逻辑结构的描述。内模式:又称存储模式,是数据库在物理存储方面的描述。2、两级映象模式/内模式映象,外模式/模式映象。3、两级数据独立性物理数据独立性,逻辑数据独立性。8第二节数据模型

数据模型的基本概念数据模型的三要素问题实体联系模型(ER图)层次模型网状模型关系模型91、数据描述的三个领域现实世界:存在与人们头脑以外客观世界。信息世界:现实世界在人们头脑中的反映。机器世界:信息世界的信息在机器世界中以数据形式存储。2、信息世界和机器世界术语的关系:

信息世界 机器世界 实体 记录 属性 字段 实体集 文件 实体标识符 关键码一、数据模型的基本概念10二、数据据模型的的三要素素问题数据库的的逻辑结结构,与与硬件、、DBMS有关,有有三部分分构成::数据结构构数据操作作数据完整整性四种数据据模型::层次模型型网状模型型关系模型型面向对象象模型11三、实体体联系模模型(ER图)实体的联联系有两两类一类是实实体内部部(属性性之间))的联系系(第5节讨论))一类是实实体集内内部(实实体和实实体之间间)的联联系(本本节讨论论)实体间的的联系有有三种::两个实体体集中各各实体之之间的联联系:一一对一((1:1)、一对多((1:N)、多对对多((M:N)三个实体体集中各各实体之之间的联联系。同一实体体集内部部各实体体之间的的联系。。12三、实体体联系模模型(续续)属性:简单属性性和复合合属性单值属性性和多值值属性NULL属性派生属性性E-R方法扩充的E-R模型弱实体超类和子类13四、层次模型型创始:1968年美国IBM公司的IMS系统数据结构:树树结构特点:数据联联系通过指针针实现缺点:不能直直接表示多对对多14五、网状模型型创始:1969年CODASYL的DBTG报告数据结构:有有向图结构特点:数据联联系通过指针针实现缺点:结构复复杂15六、关系模型型创始:1970年E.F.Codd提出关系模型型数据结构:二二维表特点:表间公公共属性缺点:效率低低16第三节关系代数关系模型的基基本概念关系代数扩充的关系代代数17一、关系模型型的基本概念念属性和域属性:描述实实体的特征域:属性的取取值范围笛卡尔积和和关系18一、关系模模型的基本本概念(续续)术语超键:在关关系中能惟惟一标识元组的属性性集称为关系模型的的超键。候选键:不不含有多余余属性的超键称为候选键。主键:用户户选作元组标识的一个个候选键称为主键。主属性:包包含在任何何候选键中中的属性。。外键:该属性不是本本关系的主键,正好好是另外一一个关系的的主键,则则该属性称为本本关系的外键。全码:所有有属性组是是这个关系系模式的候候选码。19一、关系模模型的基本本概念(续续)关系的3种类型基本本关关系系查询询表表视图图关系系数数据据库库模模式式完整整性性约约束束实体体完完整整性性参照照完完整整性性用户户定定义义完完整整性性20二、、关关系系代代数数关系系运运算算理理论论分分为为关关系系代代数数和和关关系系演演算算两两种种关系系代代数数是是由由一一组组以以关关系系作作为为运运算算对对象象的的特特定定的的运运算算符符组组成成常用用的的运运算算为为九九种种::并并、、交交、、差差、、笛笛卡卡尔尔积积、、联联接接、、自自然然联联接接、、投投影影、、选选择择、、除除运运算算等等,,其其中中五五种种为为基基本本运运算算::并并、、交交、、笛笛卡卡尔尔积积、、投投影影、、选选择择运运算算。。21二、、关关系系代代数数((续续1)关系代代数的的五种种基本本运算算设有两两个关关系R和S具有相相同的的关系系模式式。并(∪∪)R∪S≡{t∣∣t∈∈R∨∨t∈∈S},t为元组组变量量,R和S结构相相同差(-)R-S≡{t∣t∈R∧t∉S},t为元组变量,R和S结构相同。笛卡尔积(Χ)RΧS≡{t∣t=〈tr,ts〉∧tr∈R∧ts∈S}投影(Π)Πi1,…,im(R)≡{t∣t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}选择(σ)σF(R)≡{t∣t∈R∧F(t)∈true},F是由逻辑运算符和比较运算符连接运算对象构成的表达式。22二、关关系代代数((续续2)关系代代数的的四种种组合合运算算交R∩S≡R-(R-S)或R∩S≡S-(S-R)联接R⋈S≡σσAθB(RΧS)其中中A是R的AθB属性,,B是S的属性性。自然联联接R⋈S≡ΠΠ去掉S中公共共属性性(σ公共属属性上上值相相等(RΧS))除R÷S可以视视为笛笛卡尔尔积的的逆运运算。。23三、扩扩充的的关系系代数数广义投投影外联接接左外联联接右外联联接全外联接接外部并并24第四节节关系数数据库库SQL语言SQL数据库库体系系结构构SQL的基本本组成成SQL数据定定义SQL数据查查询SQL数据更更新嵌入式式SQL25一、SQL数据库库体系系结构构1、SQL发展1986年10月,ANSI颁布美美国标标准的的SQL语言,,1987年6月,ISO采纳为为国际际标准准,1992年推出出SQL2,1999年推出出SQL3,本章章介绍绍SQL2。2、SQL数据库库的体体系结结构SQL数据库库的体体系结结构基基本上上也是是三级级结构构。SQL数据库是是表的汇汇集,表表或是基基本表,,或是视视图,基基本表是是实际存存储在数数据库中中的表,,而视图图是若干干基本表表或其它它视图构构成的表表的定义义。一个个基本表表可以跨跨一个或或多个存存储文件件,一个个存储文文件也可可以放一一个或多多个基本本表。用用户可以以用SQL语句对视图和和基本表进行行查询等操作作。26二、SQL的基本组成SQL分四部分:数据定义DDL:CREATE,DROP,ALTER数据操纵DML:SELECT,INSERT,DELETE,UPDATE数据控制DCL:GRANT,REVOKE嵌入式SQL27三、SQL数据定义SQL数据定义部分分包括对SQL模式、基本表表、视图和索索引的创建和和撤消操作。。(1)SQL模式的创建和和撤消SQL模式的创建::CREATESCHEMA模式名AUTHORIZATION用户名SQL模式的撤消::DROPSCHEMA模式名[CASCADE|RESTRICT](2)基本表的创创建、修改和和撤消基本表的创建建:CREATETABLE基本表名(列列名类型……完整性约束……)类型为为基本数据类类型,完整性性约束有三个个子句:主键键子句(PRIMARYKEY)、检查子句句(CHECK)、外键子句句(FOREIGNKEY)。基本表的修改改:ALTERTABLE基本表名ADD列名类型ALTERTABLE基本表名DROP列名[CASCADE|RESTRICT]基本表的撤消消:DROPTABLE基本表名[CASCADE|RESTRICT]28三、SQL数据定义(续续)SQL数据定义部分分包括对SQL模式、基本表表、视图和索索引的创建和和撤消操作。。(3)视图的创建建和撤消视图的创建:CREATEVIEW视图名(列名名表)ASSELECT查询语句视图的撤消::DROPVIEW视图名(4)索引的创建建和撤消索引的创建:CREATE[UNIQUE]INDEX索引名ON基本表名(列列名表)索引的撤消::DROPINDEX索引名29四、SQL数据查询SELECT语句的完整句句法:SELECT[DISTINCT]目标列的列名名或列表达式式序列FROM基本表和视图图序列[WHERE行条件表达式式][GROUPBY列名序列[HAVING组条件表达式式]][ORDERBY列名[ASC|DESC]…]30五、SQL数据更新SQL的数据更新包包括:数据插插入、删除和和修改。(1)数据插入单元组值的插入:INSERTINTO基本表名(列列名表)VALUES(元组值)多元组值的插入:INSERTINTO基本表名(列列名表)(TABLE(元组值),(元组值),…)查询结果的插入:INSERTINTO基本表名(列列名表)SELECT查询语句(2)数据删除DELETEFROM基本表名[WHERE条件表达式](3)数据修改UPDATE基本表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]31五、SQL的访问控制SQL中的用户权限限及操作六类权限:SELECT,INSERT,DELETE,UPDATE,REFERENCES,USAGE。授权(GRADE)语句:将关关系和视图操操作权授予特特定用户GRANT<权限表>ON<数据库元素>TO<用户名表>[WITHGRANTOPTION];回收(REVOKE)语句:回收收已授给某用用户的权限。。REVOKE<权限表>ON<数据库元素>FROM<用户名表>;32六、嵌入式SQL(1)SQL语言的运行环环境SQL语言有两种使使用方式:交交互式SQL和嵌入式SQL。SQL语言和宿主语语言(高级语语言)在数据据类型上有很很大的差别。。嵌入式SQL的实现有两种种处理方式::扩充宿主语语言的编译程程序和预处理理方式。SQL语句与宿主语语言程序间信信息的传递是是通过共享变变量实现的。。(2)嵌入式SQL的使用规定在程序中要区区分SQL语句与宿主语语言语句,所所有SQL语句前必须加加上前缀“EXECSQL”和结束标志志“;”。允许嵌入的的SQL语句引用的的程序变量量(共享变变量)。SQL的集合处理理方式与宿宿主语言单单记录处理理方式之间间的协调用用游标(CURSOR)机制。与与游标有关关的语句有有四个:游游标定义((DECLARE)、打开((OPEN)、推进((FETCH)、关闭((CLOSE)。33六、嵌入式式(3)嵌嵌入入式式SQL的使使用用技技术术SQLDDL语句句只只要要加加上上前前缀缀标标识识“EXECSQL”和结结束束标标识识“ENDEXEC”,就就能能使使用用。。SQLDML语句句使使用用时时有有两两种种技技术术::不涉涉及及游游标标的的SQLDML语句句如果果是是INSERT、DELETE和UPDATE语句句,,加加上上前前缀缀标标识识“EXECSQL”和结结束束标标识识“ENDEXEC”,就就能能嵌嵌入入在在宿宿主主语语言言程程序序中中使使用用。。对对于于SELECT语句句,,如如果果查查询询结结果果是是单单元元组组时时,,也也可可以以嵌嵌入入在在宿宿主主语语言言程程序序中中使使用用。。涉及及游游标标的的SQLDML语句当SELECT语句查询结果果是多个元组组时,一定要要用游标机制制把多个元组组一次传送给给宿主语言程程序中使用。。对游标指向元元组时,可以以进行修改和和删除操作。。34第五节关系数据库规规范化函数依赖规范化模式分解及其其特性35一、函数依赖赖函数依赖(FD)的定义设有关系模式式R(A1,A2,…,An),X,Y是U的子集,r是R的任一具体关关系,如果果对r的任意两个元元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,记为X→Y。非平凡的函数数依赖平凡的函数依依赖完全函数依赖赖部分函数依赖赖传递函数依赖赖36一、函数依赖赖(续)键设有关系模式式R(A1,A2,…,An),F是R的一个个函数数依赖赖集,,X是{A1,A2,…,An}的一个个子集集。如如果①X→A1A2…An∈F+,且②不存存在X真子集集Y,使得得Y→A1A2…An成立,,则称称X是R的候选选键。。包含在在任何何一个个候选选键中中的属属性称称为主主属性性不包含含在任任何一一个候候选键键中的的属性性称为为非主主属性性。37一、函函数依依赖((续续)多值依依赖MVD多值依依赖::设R(U)是属属性集集U上的一一个关关系模模式,,X,Y是U的子集集,若若对R(U)的任任一关关系r,对于于X的一个个给定定的值值存在在着Y的一组组值与与其对对应,,同时时Y的这组组值又又不以以任何何方式式与U-X-Y中的书书香相相关,,那么么称Y多值依依赖于于X,记X→Y。38一、函函数依依赖((续续)函数依依赖的的推理理规则则设有关关系模模式R(A1,A2,…,An)和属属性集集U=A1A2…An,X,Y,Z,W是U的一个子集集,F是R的一个函数数依赖集,,推理规则则如下:自反律:如如果Y⊆X⊆U,则X→Y在R上成立。增广律:如如果X→Y为F所蕴涵,Z⊆U,则XZ→YZ在R上成立。传递律:如如果X→Y和Y→Z在R上成立,则则X→Z在R上成立。FD的其它三个个推理规则则:合并律:如如果X→Y和X→Z成立,则X→YZ也成立。伪传递律::如果X→Y和WY→Z成立,则WX→Z也成立。分解律:如如果X→Y和Z⊆Y,则X→Z成立。39二、规范化化第一范式1NF如果关系模模式R的所有的属属性的值域域中每一个个值都是不不可分解的的值,则称称R是属于1NF。第二范式2NF如果关系模模式R为1NF,并且R中的每一个个非主属性性完全函数数依赖于R的某个候选选键,则称称R是属于2NF。第三范式3NF如果关系模模式R为2NF,并且R中的每一个个非主属性性都不传递递依赖于R的候选键,,则称R是属于3NF。40二、规范化化(续)巴克斯范式式BCNF如果关系模模式R为1NF,并且R中的每一个个属性都不不传递依赖赖于R的候选键,,则称R是属于BCNF。第四范式4NF关系模式R,D是一个多值值依赖集,,如果D中存在一个个非平凡的的多值依赖赖X→→Y,并且X必是R的码,那么么称R是4NF。41三、模式分分解及其特特性无损联结设有关系模模式R,分解成关关系模式={R1,R2,…,RK},F是R其中m(r)=∏R1(r)⋈∏R2(r)⋈…⋈∏Rk(r)称为关系r的投影联结变换。保持函数依赖的分解设F是属性集U上的一个函数依赖集,Z是U上的一个子集,F在Z上的一个投影定义为:∏Z(F)={X→Y∣X→Y∈F+且XY⊆Z}设关系模式R的一个分解为={R1,R2,…,RK},F是R的一个函数依赖集,如果F+=(U∏Ri

(F))则称分解保持函数依赖。42三、模式式分解及及其特性性(续))无损联结结的测试试:关系模式式R,F是R的一个函函数依赖赖集,R分解成关关系模式式={R1,R2,…,RK},判断是否是无无损联结结的方法法:构造一张张K行N列的表格格,每列列对应一一个属性性Aj,每行对对应一个个模式Ri,如果Aj在Ri中,那么么在表格格的交叉叉处填上上aj,否则填填上bij。反复检查查F中的每一一个函数数依赖,,并修改改表格中中的元素素。若表格中中有一行行是全a,则是无无损联结结,否则则不是。。如果R分解成关关系模式式={R1,R2},分解是否是无无损联结结的充分分必要条条件为::R1∩R2→(R1―R2)或R1∩R2→(R2―R1)43第六节节数据库库的控控制功功能事务管管理数据库库的备备份与与恢复复并发控控制安全性性和授授权44一、、事事务务管管理理事务务的的概概念念事务务是是由由若若干干数数据据库库操操作作组组成成的的一一个个逻逻辑辑工工作作单单位位,,是是一一个个不不可可分分割割的的工工作作单单位位。。事事务务是是DBS的主主要要处处理理对对象象,,事事务务在在DBS中的的地地位位类类似似进进程程在在OS中的的地地位位。。一一个个应应用用程程序序可可以以包包括括多多个个事事务务。。事务务以以BEGINTRANSACTION语句句的的成成功功执执行行开开始始,,以以COMMIT或ROLLBACK语句句的的成成功功执执行行结结束束。。COMMIT(提交))语句表表示一事事务的全全部操作作都已成成功,它它对DB的所有更更新可真真正写到到DB中。ROLLBACK(回退)45一、事务务管理((续))事务有四四个重要要性质::原子性性、一致致性、隔隔离性和和持久性性。通常常称为“ACID性质”。原子性((atomicity):事事务对数数据库的的更新要要么全部部起作用用,要么一致性(consistency):事务将数据库从一个一致性状态转变为另一个一致性状态。 程序员(正确地编写事务)DBMS的完整性子系统 隔离性(isolation

):事务相互隔离,在多个事务并发执行时,任一事务的更新操作在该事务成功提交前对其他事务都是不可见的。 DBMS的并发控制子系统 持久性(durability):事务一旦成功提交,其对数据库的更新就永久有效,不会因系统崩溃等而丢失。 DBMS的恢复管理子系统

46二、数据据库的备备份与恢恢复数据库备备份的必必要性非预期事事务故障障:运算算错误、、数据错错误、死死锁等,,故障事事务夭折折可预期事事务故障障:在事事务中可可预期出出错的地地方所加加的ROLLBACK语句系统故障障:硬硬件、系系统软件件出错,,停电等等,事务务执行被被打断,,内存中中数据被被破坏介质故障障:磁磁头、磁磁盘控制制器或磁磁盘损坏坏,盘上上数据丢丢失,病病毒破坏坏等,DB遭破坏计算机病病毒47二、数据据库的备备份与恢恢复数据库恢恢复的基基本策略略和实现现方法恢复的的基本本策略略:冗冗余((数据据重复复存储储)实现方方法::备份定期对对数据据库复复制或或转储储(静静态转转储和和动态态转储储,海海量转转储和和增量量转储储)。。日志执行事事务时时,记记录其其开始始、结结束和和对DB的每次次更新新操作作。48二、数数据库库的备备份与与恢复复数据库库恢复复的基基本策策略和和实现现方法法恢复出出故障障时利利用备备份和和日志志进行行恢复复。事务故故障::对故故障事事务作作撤消消(UNDO)操作作系统故故障::重启启DBMS,利用用日志志:对未完完成事事务做做撤消消(UNDO)操作作对已已提交交但其其更新新结果果尚留留在系系统缓缓冲区区的事事务作作重做做(REDO)操作作,重新执执行故故障发发生时时未完完成的的事务务。介质故故障::重装装最新新的备备份,,利用用日志志对此此备份份以来来的全全部成成功事事务进进行REDO操作,,以使使DB恢复到到故障障发生生前的的正确确状态态。49二、数数据库库的备备份与与恢复复数据库库镜像像在现有有的SQL标准中中,没没有显显式的的事务务开始始语句句(今今后的的SQL标准中中将包包含BEGINTRANSACTION),当当程序序中没没有事事务存存在而而执行行一个个能启启动事事务的的SQL语句时时就是是一个个事务务的开开始。。SQL中的COMMIT或ROLLBACK都意味味着一一个事事务结结束,,但支支持SQL的不同同DBMS有些差差异。。50三、并并发控控制为了充充分利利用数数据库库这个个共享享资源源,DBMS允许多多个事事务并并发地地存取取数据据库。。如果不不对并并发操操作进进行恰恰当的的控制制,可可能导导致如如下的的数据据不一一致性性问题题:丢失更更新问问题::一事事务所所作的的更新新操作作因另另一事事务的的操作作而丢丢失。。读“脏脏数据据”问问题::又称称为未未提交交依赖赖,指指一事事务取取用了了别的的事务务未提提交随随后又又被撤撤消的的数据据。不一致致分析析问题题:指指事务务从数数据库库中读读取了了处于于不一一致状状态的的数据据,并并因此此进行行了不51三、并并发控控制封锁是是实现现并发发控制制的重重要技技术。。所谓谓封锁锁,是是指事事务向向系统统发出出对某某数据据对象象加锁锁的请请求,,以取取得对对该对对象一一定的的控制制权。。基本本的封封锁有有两类类:排它型型封锁锁(写写锁,,X封锁):一一个事务对对数据对象象加了X锁后,在它它释放X锁之前不允允许其他事事务再对该该数据对象象加任何锁锁。共享型锁((读锁,S封锁):一个事务务对数据对对象加了S锁后,允许许其他事务务再对该数数据对象加加S锁,但在它它释放S锁之前不允允许其他事事务加X锁。52三、并发控控制封锁协议PX协议主要内内容是:事事务若要更更新数据,,则必须先先提出对此此数据对象象的X封锁请求;;事务如果果未获准X封锁,那么么进入等待待状态,直直至获准在在此数据对对象上的X封锁,才能能继续执行行。PX协议可以解解决因多事事务同时更更新同一数数据对象而而引起的更更新丢失问问题。PS协议主要内内容是:事事务若要存存取数据,,则必须先先提出对此此数据对象象的S封锁请求;;事务如果果未获准S封锁,那么么进入等待待状态,直直至获准在在此数据对对象上S封锁,才能能继续执行行;事务在在更新数据据前必须先先将它在该该数据对象象上的S封锁锁升升级级((UPGRADE)为为X封锁锁。。53三、、并并发发控控制制活锁锁和和死死锁锁恰当当地地运运用用封封锁锁技技术术,,可可以以保保证证并并发发调调度度的的正正确确性性、、有有效效地地避避免免数数

温馨提示

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

评论

0/150

提交评论