河北工业大学数据库重点_第1页
河北工业大学数据库重点_第2页
河北工业大学数据库重点_第3页
河北工业大学数据库重点_第4页
河北工业大学数据库重点_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、v1.0可编辑可修改第一章m关系模式13第6页共13页1 .数据(Data):是数据库中存储的基本对象数据库(Database,简称DB):是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库管理系统(DBMS:位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统数据库系统(DatabaseSystem,简称DBS:在计算机系统中引入数据库后的系统构成2 .数据模型的组成要素:数据结构数据操作完整性约束条件3 .最常用的数据模型:层次模型网状模型关系模型4 .I关系模型:关系数据库系统采用关系模型作为数据的组织方式在用户观点下,关系模型中数据的逻辑结构是一张

2、二维表,它由行和列组成。口关系数据模型的数据结构:关系:一个关系对应通常说的一张表元组:表中的一行即为一个元组属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名主码:表中的某个属性组,它可以唯一确定一个元组域:属性的取值范围。分量元组中的一个属性值。:对关系的描述关系名(属性1,属性2,,属性n)学生(学号,姓名,年龄,性别,系,年级)关系必须是规范化的,满足一定规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,IV关系数据模型的操纵与完整性约束数据操作是集合操作,操作对象和操作结果都是关系查询、插入、删除、更新数据操作是集合操作,操作对象和操作结果都是关系,即若干

3、元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”关系的完整性约束条件实体完整性参照完整性用户定义的完整性V关系数据模型的优缺点优点建立在严格的数学概念的基础上:集合代数。概念单一实体和各类联系都用关系来表示对数据的检索结果也是关系关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化增加了开发DBMS勺难度定义关系模式关系模式可以形式化地表示为:5 .数据库系统的三级模式结构:模式(也称逻辑模式)数据库中全体数据的逻辑结

4、构和特征的描述所有用户的公共数据视图,综合了所有用户的需求外模式(也称子模式或用户模式)数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示内模式(也称存储模式)是数据物理结构和存储方式的描述是数据在数据库内部的表示方式6 .二级映像:外模式/模式映像:模式:描述的是数据的全局逻辑结构外模式:描述的是数据的局部逻辑结构模式/内模式映像:模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。7 .数据库系统的组成:硬件平台软件:包括数据库管理系统应用程序数据库人员:包括数据库管理员、程序员和一般用户第二章1 .

5、关系模式的含义:关系模式是型,关系是值R(U,D,DOMF)R关系名U组成该关系的属性名集合D属性组U中属性所来自的域DOM属性向域的映象集合F属性间的数据依赖关系集合一般情况下,简写为R(U)2 .基本的关系操作:并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RUSo形式定义如下:RUS=t|tRVtGS,t是元组变量,R和S的元数相同。两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同。对i,R的第i个属性的域必须和S的第i个属性的域相同。交(intersection)定义所有同时出现在两个关

6、系中的元组集合。RnS=r|rRArS,关系模式是对关系的描述仍为n目关系,由属于R而不属于S的所有元组组成R-S=t|tRAtS交运算可以通过差运算来重写:RnS=R(RS)R和S必须同类型(属性集相同、次序相同,但属性名可以不同)3 .关系的三类完整性约束的含义:实体完整性规则若属性A是基本关系R的主属性,则属性A不能取空值例:SAP(SUPERVISQRSPECIALITY,POSTGRADUATE)POSTGRADUATE主码(假设研究生不会重名)不能取空值参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中

7、每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能4 .(53页)传统的集合运算:并,差,交,笛卡尔积差:R和S具有相同的目n相应的属性取自同一个域笛卡尔积:严格地讲应该是广义的笛卡尔积R: n目关系,k1个元组S: m目关系,k2个元组RXS列:(n+m列元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1xk2个元组RXS=trts|

8、trRAtsS专门的关系运算:自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组BRgs=trts|treRAtsSAtrB=tsB一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。第三章的特点:综合统一高度非过程化面向集合的操作方式以同一种语法结构提供多种使用方式语言简洁,易学易用2 .基本表的定义和删除定义基本表CREATETABLE表名(列名数据类型列级完整性约束条件,列名数据类型列级完整性约束条件刁,表级完整性约束条件);如果完整性约束条件涉及到该表的多个属性

9、列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。删除基本表DROPTABLE表名RRESTRICTCASCADERESTRICT删除表是有限制的。欲删除的基本表不能被其他表的约束所引用如果存在依赖该表的对象,则此表不能被删除CASCADE删除该表没有限制。在删除基本表的同时,相关的依赖对象一起删除3 .索引的建立:建立索引的目的:加快查询速度谁可以建立索引DBA或表的属主(即建立表的人)DBMS-般会自动建立以下列上的索引PRIMARYKEYUNIQUE谁维护索引DBMS自动完成?使用索引DBMS自动选择是否使用索引以及使用哪些索引语句格式CREATEUNIQUECLUSTERI

10、NDEX课引名ON表名(列名次序矶列名次序刁);例14为学生-课程数据库中的Student,Course,SC三个表建立索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASCCnoDESC);Student表按学号升序建唯一索引Course表按课程号升序建唯一索引SC表按学号升序和课程号降序建唯一索引4 .I插入数据:两种插入数据方式插入元组插入子查询结果可以一次插入多个元组插入元组:语句格式INSERTINTO表名(属性列1,属

11、性列2)VALUES(嘴量1,常量2)功能将新元组插入指定表中INTO子句属性列的顺序可与表定义中的顺序不一致没有指定属性列指定部分属性列VALUES子句提供的值必须与INTO子句匹配值的个数值的类型例1将一个新学生元组(学号:8;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。INSERTINTOStudent(Sno,SnameSsex,Sdept,Sage)VALUES('8','陈冬,男,IS',18);例2将学生张成民的信息插入到Student表中。INSERTINTOStudentVALUES('6',&#

12、39;张成民,'男',18,'CS');插入子查询结果语句格式INSERTINTO<表名>(<属性列1>,<属性列2>)子查询;功能将子查询结果插入指定表中INTO子句(与插入元组类似)子查询SELECT?句目标列必须与INTO子句匹配值的个数值的类型例4对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表CREATETABLEDept_age(SdeptCHAR(15)/*系名*/Avg_ageSMALLINT);/*学生平均年龄*/第二步:插入数据INSERTINTODept_age(Sdept,Avg_age)

13、SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;n修改数据:语句格式UPDATE<表名SET<列名>=<表达式>,<列名>=<表达式>WHERE<条件刁;功能修改指定表中满足WHER子句条件的元组SET子句指定修改方式要修改的列修改后取值WHER皆句指定要修改的元组缺省表示要修改表中的所有元组三种修改方式1.修改某一个元组的值2,修改多个元组的值3.带子查询的修改语句例5将学生1的年龄改为22岁UPDATEStudentSETSage=22WHERESno='1'例6将所有学生

14、的年龄增加1岁UPDATEStudentSETSage=Sage+1;例7将计算机科学系全体学生的成绩置零。UPDATESCSETGrade=0WHERE'CS'=(SELETESdeptFROMStudentWHERE=;m删除数据:语句格式DELETEFROM<表名>WHERE<条件刁;功能删除指定表中满足WHER皆句条件的元组WHERE句指定要删除的元组缺省表示要删除表中的全部元组,表的定义仍在字典中三种删除方式1 .删除某一个元组的值2 .删除多个元组的值3 .带子查询的删除语句例8删除学号为8的学生记录。DELETEFROMStudentWHERES

15、no=8'例9删除所有的学生选课记录。DELETEFROMSC;例10删除计算机科学系所有学生的选课记录。DELETEFROMSCWHERE'CS'=(SELETESdeptFROMStudentWHERE=;5.定义视图:建立视图例2建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATEVIEWIS_StudentASSELECTSno,SnameSageFROMStudentWHERESdept='IS'WITHCHECKOPTION;对IS_Student视图的更新操作:修改操作:自动加上Sdept='

16、IS'的条件删除操作:自动加上Sdept='IS'的条件插入操作:自动检查Sdept属性值是否为IS'如果不是,则拒绝该插入操作v1.0可编辑可修改如果没有提供Sdept属性值,则自动定义Sdept为IS'FROMStudent13第15页共13页分组视图基于多个基表的视图例3建立信息系选修了1号课程的学生视图CREATEVIEWIS_S1(SnqSnameGrade)ASSELECT,SnameGradeFROMStudent,SCWHERESdept='IS'AND=AND=1'基于视图的视图例6将学生的学号及他的平均成绩定义

17、为一个视图假设SC表中“成绩”列Grade为数字型CREATVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)FROMSCGROUPBYSno;不指定属性列例7将Student表中所有女生记录定义为一个视图CREATEVIEWF_Student(F_Sno,namesex,age,dept)AS例4建立信息系选修了1号课程且成绩在90分以上的学生的SELECT*FROM StudentWHERE Ssex='女';视图。CREATEVIEWIS_S2ASSELECTSno,SnameGradeFROMIS_S1WHEREGrade>=90;带表

18、达式的视图缺点:例5定义一个反映学生出生年份的视图。CREATE VIEW BT_S(Snq Sname Sbirth)ASSELECT Sno , Sname 2000-Sage的映象关系被破坏,导致该视图不能正确工作。删除视图语句的格式:DROP VIEW < 视图名>;该语句从数据字典中删除指定的视图定义如果该视图上还导出了其他视图,使用CASCAD级联删除语句,把7第7页共13页修改基表Student的结构后,Student表与F_Student视图该视图和由它导出的所有视图一起删除删除基表时,由该基表导出的所有视图定义都必须显式地使用DROPVIEW语句删除例8删除视图B

19、T_S:DROPVIEWBT_S删除视图IS_S1:DROPVIEWIS_S1;拒绝执行级联删除:DROPVIEWIS_S1CASCADE;6 .更新视图:例12将信息系学生视图IS_Student中学号2的学生姓名改为“刘辰”。UPDATEIS_StudentSETSname='刘辰WHERESno='2'转换后的语句:UPDATEStudentSETSname='刘辰WHERESno='2'ANDSdept='IS'例13向信息系学生视图IS_S中插入一个新的学生记录:9,赵新,20岁INSERTINTOIS_StudentV

20、ALUES-95029','赵新',20);转换为对基本表的更新:INSERTINTOStudent(Sno,SnameSage,Sdept)VALUES'9','赵新',20,'IS');例14删除信息系学生视图IS_Student中学号为9的记录DELETEFROMIS_StudentWHERESno='9'转换为对基本表的更新:DELETEFROMStudentWHERESno='9'ANDSdept='IS'更新视图的限制:一些视图是不可更新的,因为对这些视图的更新不

21、能唯一地有意义地转换成对相应基本表的更新例:视图S_G为不可更新视图。UPDATES_GSETGavg=90WHERESno='1'这个对视图的更新无法转换成对基本表SC的更新允许对行列子集视图进行更新对其他类型视图的更新不同系统有不同限制7 .视图的作用:视图能够简化用户的操作:能够为复杂的查询构造视图;能够隐藏数据的复杂性;而有效地简化查询操作视图使用户能以多种角度看待同一数据视图对重构数据库提供了一定程度的逻辑独立性:通过构造视图,能够在用户和应用程序与实际的基本表之间提供更好的数据独立,性.视图能够对机密数据提供安全保护:能够将对数据库的访问限制在一定的范围内;有利于数

22、据的保密适当的利用视图可以更清晰的表达查询第四章计算机系统的三类安全性问题:技术安全类:采用一定安全的硬件、软件来实现对数据的保护管理安全类:管理不善造成的问题政策法律类:建立相关的法律。第六章1 .函数依赖的含义:设R(U)是一个属性集U上的关系模式,X和丫是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在丫上的属性值不等,则称“X函数确定Y或"Y函数依赖于X”,记作X-Y。2 .范式:符合某一种级别的关系模式的集合:2NF的定义若RG1NF,且每一个非主属性完全函数依赖于码,则RG2NE例:S-L-C(Sno,Sdept,Sloc,C

23、no,Grade)1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)2NFSC(Sno,Cno,Grade)2NFS-L(Sno,Sdept,Sloc)&2NF:关系模式R<UF>中若不存在这样的码X、属性组丫及非主属性Z(ZY),使得X-Y,Y-Z成立,YfX,贝U称R<UF>&3NF。若RG3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。或:若RG3NF,则每一个非主属性不传递依赖于码。例:2NF关系模式S-L(Sno,Sdept,Sloc)中函数依赖:SnofSdeptSdeptfSnoSdeptfSloc可得:Sn&g

24、t;Sloc,即S-L中存在非主属性对码的传递函数依赖,S-L&3NF解决方法把S-L分解为两个关系模式,以消除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的码为Sno,D-L的码为Sdept。分解后的关系模式S-D与D-L中不再存在传递依赖S-D的码为Sno,D-L的码为SdeptSnofSdeptSdeptfSlocS-DD-LS-L(Sno,Sdept,Sloc)2NFS-L(Sno,Sdept,Sloc)3NFS-D(Sno,Sdept)&3NFD-L(Sdept,Sloc)&3NF采用投影分解法将一个2NF的关系分解为多个3N

25、F的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个2NF关系分解为多个3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。5.具有无损连接性的模式分解关系模式R<U,F>的一个分解p=R1<U1,F1>,R2<U2,F2>,,Rn<Un,Fn>若R与R1、R2、Rn自然连接的结果相等,则称关系模式R的这个分解p具有无损连接性。具有无损连接性的分解保证不丢失信息,无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题保持函数依赖的模式分解设关系模式R<U,F液

26、分解为若干个关系模式R1<U1,F1>R2<U2,F2>,,Rn<Un,Fn>(其中U=U1UU2UUUn,且不存在UiUj,Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况O分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。第七章1.数据库设计的基本步

27、骤一、数据库设计的准备工作:选定参加设计的人系统分析人员、数据库设计人员自始至终参与数据库设计用户和数据库管理员主要参加需求分析和数据库的运行维护应用开发人员(程序员和操作员)在系统实施阶段参与进来,负责编制程序和准备软硬件环境二、数据库设计的过程(六个阶段)需求分析阶段准确了解与分析用户需求(包括数据与处理)最困难、最耗费时间的一步概念结构设计阶段整个数据库设计的关键通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型逻辑结构设计阶段将概念结构转换为某个DBM新支持的数据模型对其进行优化数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方

28、法)数据库实施阶段运用DBM牌供的数据库语言(如SQD及宿主语言,根据逻辑设计和物理设计的结果建立数据库编制与调试应用程序组织数据入库进行试运行数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行在数据库系统运行过程中必须不断地对其进行评价、调整与修改2.概念结构设计;概念结构设计的特点(1) 能真实、充分地反映现实世界(2) 易于理解(3) 易于更改(4) 易于向关系、网状、层次等各种数据模型转换描述概念模型的工具E-R模型设计分E-R图的步骤:选择局部应用。在多层的数据流图中选择一个适当层次的数据流图,作为设计分E-R图的出发点通常以中层数据流图作为设计分E-R图的依据逐一设计分

29、E-R图。任务:将各局部应用涉及的数据分别从数据字典中抽取出来参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码确定实体之间的联系及其类型(1:1,1:n,m:n)3.E-R图向关系模型的转换E-R图向关系模型的转换要解决的问题如何将实体和实体间的联系转换为关系模式如何确定这些关系模式的属性和码转换内容将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。实体型间的联系有以下不同情况:(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式与某一端实体对应的关系模式合并(2)一个1:n联系可以转换为一个独

30、立的关系模式,也可以与n端对应的关系模式合并。转换为一个独立的关系模式与n端对应的关系模式合并(3)一个m:n联系转换为一个关系模选修(学号,课程号,成绩)(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。例,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:讲授(课程号,职工号,书号)(5)具有相同码的关系模式可合并目的:减少系统中的关系个数合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序第九章查询树的启发式优化第十章1 .事务的基本概念:事务是用户定义的

31、一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位事务的特性:原子性一致性隔离性持续性2 .数据库恢复概述:故障是不可避免的计算机硬件故障操作员的失误例,“选修”联系是一个 m:n联系,可以将它转换为如下关系恶意的破坏模式,其中学号与课程号为关系的组合码:系统软件和应用软件的错误故障的影响运行事务非正常中断破坏数据库数据库管理系统对故障的对策DBMS1供恢复子系统保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态保证事务ACID恢复技术是衡量系统优劣的重要指标3 .故障的种类:事务故障系统故障介质故障4 .恢复的实现技术:如何建立冗余数据数据转储登录日

32、志文件如何利用这些冗余数据实施数据库恢复5 .恢复策略:事务故障的恢复事务故障:事务在运行至正常终止点前被中止恢复方法由恢复子系统应利用日志文件撤消(UNDO此事务已对数据库进行的修改事务故障的恢复由系统自动完成,不需要用户干预事务故障的恢复步骤(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。对该事务的更新操作执行逆操作。即将日志记录中“更新前的值"(BI)写入数据库。插入操作,“更新前的值”为空,则相当于做删除操作删除操作,“更新后的值”为空,则相当于做插入操作若是修改操作,则用BI代替AI继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。系统故障的恢复系统故障造成数据库不一致状态的原因一些未完成事务对数据库的更新已写入数据库一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库恢复方法Undo故障发生时未完成的事务Redo已完成的事务系统故障的恢复由系统在重新启动时自动完成,不需

温馨提示

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

评论

0/150

提交评论