《数据库系统概论》2019复习回顾_第1页
《数据库系统概论》2019复习回顾_第2页
《数据库系统概论》2019复习回顾_第3页
《数据库系统概论》2019复习回顾_第4页
《数据库系统概论》2019复习回顾_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

《数据库系统概论》

2019复习回顾数据模型?现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作3个组成要素数据结构数据操作数据的完整性约束条件数据库领域常用的逻辑模型?层次模型网状模型面向对象的数据模型对象关系数据模型半结构化数据模型概念模型(E-R图,实体)实体-矩形联系-菱形属性-椭圆形数据库系统?Chapter1绪论数据库系统的三级模式结构数据库内模式模式外模式1外模式2外模式3应用A应用B应用C应用D应用E内模式/模式映像外模式/模式映像内模式/模式映像外模式/模式映像物理独立性逻辑独立性域,笛卡尔积,关系,元组,属性域:一组具有相同类型的值的集合笛卡尔积:Chapter2关系数据库候选码:某一属性的值能唯一标识一个元组,而其子集不能,则称该属性组为候选码。主码:一个关系有多个候选码,则选定其中一个为主码。外部码:主属性:候选码的所有属性

非主属性:不是主属性的属性全码:关系模式的所有属性是这个关系的候选码,则称为全码。关系代数集合运算符:并交差笛卡尔积理解定义、语义、写查询专门的关系运算符:选择(按照逻辑表达式选择)投影(选出若干列)连接:按照条件连接条件是等式的就称为等值连接,自然连接是一种特殊的等值连接,把相同的属性列去掉除运算:理解定义、语义、写查询算术比较符逻辑运算符关系操作查询操作、插入、删除、修改操作查询操作包括:选择、投影、连接、除、并、差、交、笛卡尔积关系模型的三类完整性约束实体完整性规则:关系的主属性不能为空值(不知道,不存在或无意义的值),不能重复。参照完整性:外码获取空值,或取被参照关系中的某个主码的值用户定义的完整性:某一具体应用的数据必须满足语义要求。第三章关系数据库标准语言SQL3.1SQL概述3.2学生—课程数据库3.3数据定义3.4数据查询3.5数据更新3.6空值的处理3.7视图3.8小结SQL的特点综合统一高度非过程化面向集合的操作方式以同一种语法结构提供多种使用方式:交互式、嵌入式语言简洁,易学易用SQL对关系数据库模式的支持(Page78)基本表1基本表2基本表3基本表4存储文件1存储文件2视图1视图2SQL外模式模式内模式数据库中只存放视图的定义,而不存放视图对应的数据。3.3数据定义模式定义、表定义、视图定义、索引定义操作对象操作方式创建删除修改模式CREATESCHEMADROPSCHEMA表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDROPINDEXALTERINDEX请在此处添加文本数据查询语句格式

SELECT[ALL|DISTINCT]

<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>

[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];3.4数据查询3.4.1单表查询3.4.2连接查询3.4.3嵌套查询3.4.4集合查询3.4.5基于派生表的查询3.4.6Select语句的一般格式3.4.1单表查询仅涉及一个表的查询选择表中的若干列选择表中的若干元组ORDERBY子句聚集函数(aggregationfunction)GROUPBY子句GROUPBY子句将查询结果按某一列或多列的值分组,值相等的为一组对查询结果分组的目的是为了细化聚集函数的作用对象未对查询结果分组,聚集函数将作用于整个查询结果对查询结果分组后,聚集函数将分别作用于每个组作用对象是查询的中间结果表HAVING短语与WHERE子句的区别作用对象不同WHERE子句作用于基本表或视图,从中选择满足条件的元组HAVING短语作用于组,从中选择满足条件的组3.4.2连接查询连接查询:同时涉及多个表的查询连接条件或连接谓词:连接两个表的条件一般格式[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>[<表名1>.]<列名1>BETWEEN[<表名2>.]

<列名2>AND[<表名3>.]<列名3>连接查询的种类一、等值与非等值连接查询二、自身连接三、外连接四、多表连接嵌套查询一个SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询(NestedQuery)嵌套查询SELECTSname/*外层查询或父查询*/FROMStudentWHERESnoIN(SELECTSno/*内层查询或子查询*/FROMSCWHERECno='2’);嵌套查询子查询的限制不能使用ORDERBY子句ORDERBY子句只对最终查询结果排序层层嵌套方式反映了SQL语言的结构化特点嵌套查询求解方法不相关子查询:子查询的查询条件不依赖于父查询。由里向外逐层处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。嵌套查询求解方法相关子查询:子查询的查询条件依赖于父查询首先取外层查询表第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表然后再取外层表的下一个元组重复这一过程,直至外层表全部检查完为止请在此处添加文本3.5数据更新3.5.1插入数据3.5.2修改数据3.5.3删除数据3.5.1插入数据

两种插入数据方式插入元组插入子查询结果:可以一次插入多个元组一、插入元组语句格式INSERTINTO<表名>[(<属性列1>[,<属性列2>…)]VALUES(<常量1>[,<常量2>]…)功能:将新元组插入指定表中3.5.2.修改数据语句格式UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];SET子句指定修改方式,要修改的列,修改后取值WHERE子句指定要修改的元组。缺省表示要修改表中的所有元组修改数据

三种修改方式修改某一个元组的值修改多个元组的值带子查询的修改语句3.5.3删除数据语句格式DELETEFROM<表名>[WHERE<条件>];功能:删除指定表中满足WHERE子句条件的元组WHERE子句指定要删除的元组。缺省表示要删除表中的全部元组,表的定义仍在字典中删除数据

三种删除方式删除某一个元组的值删除多个元组的值带子查询的删除语句视图视图是从一个或几个基本表导出的表它与基本表不同,是一个虚表视图的作用1.视图能够简化用户的操作2.视图使用户能以多种角度看待同一数据3.视图对重构数据库提供了一定程度的逻辑独立性。4.视图能够对机密数据提供安全保护5.适当利用视图可以更清晰的表达查询视图是否都可以更新?因为视图是不可更新的虚表,因此对视图的更新最终要转换为对基本表的更新。并不是所有视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对应的基本表的更新。不可更新的视图和不允许更新的视图是两个不同的概念行列子集视图是可以更新的从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,保留了主码。Chapter4数据库安全性数据库安全性控制的常用方法用户身份鉴别存取控制视图机制审计(分类)数据加密推理控制、隐蔽信道、数据隐私保护4.2.4授权:授予与回收GRANT语句的一般格式GRANT<权限>[,<权限>]...[ON<对象类型><对象名>]TO<用户>[,<用户>]...[WITHGRANTOPTION];语义:将对指定操作对象的指定操作权限授予指定的用户2.回收REVOKE授予用户的权限可以由DBA或其他授权者用REVOKE语句收回REVOKE语句的一般格式为:REVOKE<权限>[,<权限>]...[ON<对象类型><对象名>]FROM<用户>[,<用户>]...;自主存取控制的缺点可能存在数据的“无意泄露”原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记解决:对系统控制下的所有主客体实施强制存取控制策略强制存取控制方法敏感度标记(Label)绝密(TopSecret)机密(Secret)可信(Confidential)公开(Public)主体的敏感度标记称为许可证级别(ClearanceLevel)客体的敏感度标记称为密级

(ClassificationLevel)Chapter5数据库完整性什么是数据库的完整性?数据的正确性和相容性数据库完整性和安全性的区别和联系?数据的完整性是为了防止数据库中存在不合语义的数据,也就是防止数据库中存在不正确的数据。数据的安全性是保护数据库防止恶意破坏和非法存取。因此,完整性检查和控制的防范对象是不合语义的、不正确的数据,防止他们进入数据库。安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。

三类完整性约束

实体完整性参照完整性用户定义的完整性为维护数据库的完整性,

DBMS必须能够提供定义完整性约束条件的机制提供完整性检查的方法违约处理Chapter6关系数据理论关系数据库逻辑设计针对一个具体问题,如何构造一个适合于它的数据模式(构造几个关系模式?每个关系由哪些属性组成?)数据库逻辑设计的有力工具─关系数据库的规范化理论关系模式Student<U,F>中存在的问题数据冗余太大更新异常SnoSdeptMnameCnoGradeS1CS张明C195S2CS张明C190S3CS张明C188S4CS张明C170S5CS张明C178………插入异常删除异常结论Student关系模式不是一个好的模式“好”的模式不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起解决方法:通过模式分解来消除其中不合适的数据依赖函数依赖非平凡的函数依赖vs.平凡的函数依赖完全函数依赖vs.部分函数依赖传递依赖一、函数依赖定义6.1设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。二、非平凡的函数依赖vs.

平凡的函数依赖在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y

X,则称X→Y是非平凡的函数依赖。若X→Y,但YX,则称X→Y是平凡的函数依赖。三、完全函数依赖与部分函数依赖定义6.2在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,记作X

Y。若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X

Y。FP四、传递函数依赖定义6.3在关系模式R(U)中,如果X→Y,(YX),Y→X,Y→Z,ZY,则称Z对X传递函数依赖

(transitivefunctionaldependency)。注:如果Y→X,即X←→Y,则Z直接依赖于X例:在关系Student(Sno,Sdept,Mname)中Sno→Sdept,Sdept→Mname,Mname传递函数依赖于Sno6.2.2码定义6.4设K为R<U,F>中的属性或属性组合。若,则K为R的侯选码

(CandidateKey)若候选码多于一个,则选定其中的一个为主码(PrimaryKey)6.2.3范式范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。不同范式满足不同程度要求。各种范式之间的联系1NF5NF4NFBCNF3NF2NF一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)5NF4NFBCNF3NF2NF1NF1NF如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF第一范式是对关系模式最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。2NF定义6.6若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。3NF定义6.7关系模式R<U,F>中若不存在这样的码X,属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。若R∈3NF,则每一个非主属性既不是部分依赖于码也不传递依赖于码。多值依赖定义设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。多值依赖和函数依赖的区别?函数依赖是一种特殊的多值依赖6.2.9规范化小结关系数据库的规范化理论是数据库逻辑设计的工具。目的:尽量消除插入、删除异常,修改复杂,数据冗余。基本思想:逐步消除数据依赖中不合适的部分。实质:概念的单一化判断范式的步骤1.写依赖2.判断候选码3.分为主属性and非主属性4.非主属性有无部分函数依赖,若有,不是 2NF5.非主属性有无传递函数依赖,若有,不是 3NF6.每一个函数依赖都包含码BCNF关系模式的规范化过程1NF↓2NF↓3NF↓BCNF↓4NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除非平凡且非函数依赖的多值依赖消除决定因素非码的非平凡函数依赖不能说规范化程度越高的关系模式越好在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式。规范化步骤可以在其中任何一步终止Chapter7数据库设计数据库设计过程的6个阶段需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护冗余冗余的数据是指可由基本数据导出的数据。冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。E-R图向关系模型转换要解决的问题如何将实体型和实体间的联系转换为关系模式?如何确定这些关系模式的属性和码?转换内容将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式实体型间的联系有以下不同情况一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并一个m:n联系转换为一个关系模式Chapter8数据库编程嵌入式SQL是将SQL语句嵌入程序设计语言中,被嵌入的程序设计语言,如C、C++、Java,称为宿主语言,简称主语言。游标游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。为了区分SQL语句与主语言语句,所有SQL语句必须加前缀EXECSQL,以(;)结束EXECSQL<SQL语句>;Chapter9关系查询处理和查询优化启发式优化规则语法树

优化以后的语法树

Chapter10数据库恢复技术事务(Transaction)的基本概念所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。二、事务的特性(ACID特性)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)日志文件的定义日志文件是用来记录事务对数据库的更新操作的文件日志文件的作用进行事务故障恢复进行系统故障恢复协助后备副本进行介质故障恢复10.3故障的种类事务内部的故障

事务内部更多的故障是非预期的,是不能由应用程序处理的。Eg:运算溢出,并发事务发生死锁而被选中撤销该事务,违反了某些完整性限制而被终止等。系统故障介质故障计算机病毒恢复机制涉及两个关键问题如何建立冗

温馨提示

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

评论

0/150

提交评论