数据库设计理论_第1页
数据库设计理论_第2页
数据库设计理论_第3页
数据库设计理论_第4页
数据库设计理论_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

数据库设计理论第1页,共107页,2023年,2月20日,星期六友情提醒15周/16周周五均有实验,请按时参加第2页,共107页,2023年,2月20日,星期六outline关系模式可能存在的问题异常原因分析函数依赖关系模式的规范形式规范化步骤模式分解及其指标第3页,共107页,2023年,2月20日,星期六关系模式中可能存在的异常示例Student(Sid,Sname,DName,DDirector,Cid,Cname,CScore)其数据语义:系和学生1:n系和系主任1:1学生与课程n:m因此,主键(Sid,Cid)可能异常插入异常(插不进;插1个,却要求插多个)删除异常(删除时,删了其他信息;删除一个元组,却删除多个)冗余(多次存储)更新异常(修改一个,却要修改多个)第4页,共107页,2023年,2月20日,星期六异常存在原因数据依赖是实体属性间相互关系的语义决定的。函数依赖、多值依赖、连接依赖。根源:属性间存在这些依赖关系解决方法:分解;每个关系模式表达的概念单一,属性间的数据依赖关系单纯化,从而消除异常。研究函数依赖是解决上述问题的重要课题第5页,共107页,2023年,2月20日,星期六函数依赖函数依赖,决定子(决定属性),依赖属性;部分依赖,传递依赖;平凡依赖Armstrong公理系统;逻辑蕴含,函数依赖集的闭包;自反律;增广律;传递律;合并规则;伪传递规则;分解规则;自含规则;第6页,共107页,2023年,2月20日,星期六关系模式的规范形式范式:关系模式的规范形式规范化:关系模式的规范化过程。一般采用分解的办法,将低级的范式向高级范式转化,使关系的语义单纯化。1nf,2NF,3NF,BCNF,4NF,5NF1NF消除其中的部分函数依赖为2NF。即每个非键属性完全函数依赖于R的键。是2NF,且任何一个非键属性不传递依赖任何候选键,为3NF3NF消除主属性对键的部分和传递依赖为BCNF函数依赖的范畴内,BCNF达到最高级别第7页,共107页,2023年,2月20日,星期六函数依赖进一步讨论自变量、应变量函数依赖是具有时间独立性的,即对关系变量所有合法值均成立如果关系变量R满足A->B,而A不是候选码,则R中一定存在冗余第8页,共107页,2023年,2月20日,星期六依赖集的闭包函数依赖集S所蕴含的函数依赖的全体称为依赖集S的闭包,记作S+Armstrong公理(定义直接证明)自反律(reflexivity),如果B是A的子集,则A->B增广律(augmentation),A->B,则AC->BC传递律transitivity):A-B,B->C,则A->C应用以上规则,推出其他规则自含规则(self-determination):A->A分解规则(decomposition):A->BC,则A->b,A->C合并规则(union):A->B,A->C,则A->BC复合规则(composition):A->B,C->D,则AC->BD第9页,共107页,2023年,2月20日,星期六举例R(A,B,C,D,E,F),A->BC,B->E,CD->EF证明:AD->F思路上,有2种方法可以采用,一是证明F属于AD的F下加闭包,一是根据Armstrong公理证明。第10页,共107页,2023年,2月20日,星期六属性集的闭包原则上讲,反复使用以上规则,指导不在产生新的函数依赖为止,就可以计算函数依赖集的闭包---效率低,不可用算法—给定属性集Z,以及依赖集S,确定R中依赖Z的属性集Closure[Z,S]:=Z;Doforever;foreachFDX->YinSdoifXbelonginClosure[Z,S]thenClosure[Z,S]:=Closure[Z,S]unionYendifClosure[Z,S]didnotchangeonthisiterationthenleaveloopEnd;第11页,共107页,2023年,2月20日,星期六例子R(A,B,C,D,E,F),A->BC,E->CF,B->E,CD->EF计算{A,B}关于S的闭包答案:{A,B,C,D,E,F}重要结论:可以方便判断函数依赖X->Y是否可以从S导出。Y属于X的闭包时,是属于的超码判断,当最小时,候选码的选择第12页,共107页,2023年,2月20日,星期六最小函数依赖集蕴含、覆盖,等价的概念最小函数依赖集每个函数依赖的右边只有一个属性每个函数依赖的左边是不可约的删除S中任何一个依赖都将改变其闭包计算最小函数依赖集的算法第13页,共107页,2023年,2月20日,星期六例子R(A,B,C,D),A->BC,B->C,A->B,AB->C,AC->D右边写成单属性的函数依赖观察左边,是否可以约间,删除冗余的依赖答案:A->B,B->C,A->D第14页,共107页,2023年,2月20日,星期六关系数据理论的轮廓问题提出是数据库设计的要求。这里的数据库设计更多强调的是逻辑设计,并不是说物理设计不重要,相反,是相当重要的。但物理设计依赖与特定的RDBMS,而逻辑设计独立与RDBMS,并有成型的理论,再者,物理设计可以成为独立的阶段。Recall:数据库设计:概念设计使用工具是ER模型;逻辑设计工具就是规范化理论什么是逻辑设计—就是根据应用系统的要求,构建“合式”的数据模式。也就是说根据系统要求,构造关系及每个关系由哪些属性组成。--更像一门艺术,而不是科学。这也就是数据库设计的目的,保证正确的数据结构,完整性约束等,主要思想就是“独立性”第15页,共107页,2023年,2月20日,星期六一些概念回顾关系/关系模式R(U,D,Dom,F),与关系是型和值的关系关系数据库关系数据库模式关系系统(E.Codd,1969年提出)

从不同角度认识“关系”。如关系就是表;是一个数学术语(略);关系由列标题/行集构成;关系是讨论事物的事物。。。;我们走关系是“表”套路:关系模式就是关系的描述方式,关系数据库就是用表表示数据的数据库(习惯用数学集合术语定义:表或者关系变量的集合);来自数学,有严格数学基础第16页,共107页,2023年,2月20日,星期六关系系统其形式化理论是关系数据模型。包括数据的三个方面理论:数据结构/数据完整性/数据操作结构化方面就是关系(表)本身完整性方面主要是主码和外码问题—实体完整性/参照完整性/用户自定义完整性操作方面就是操作符之类的问题—数学上的关系操作外,有选择/投影/连接/除等是系统就是有封闭的特点第17页,共107页,2023年,2月20日,星期六数据依赖一个关系内部属性之间的约束关系,是现实世界属性间关系的抽象,是内在性质函数依赖多值依赖其他第18页,共107页,2023年,2月20日,星期六数据依赖对关系模式的影响冗余问题操作问题(查/插/删/改),查最多是效率问题插入异常删除异常更新异常第19页,共107页,2023年,2月20日,星期六解决办法也就是逻辑设计的问题,一定程度上克服上面的4个问题规范化理论分解,概念独立性,大表换成若干个小表(列的角度)--关系模式概念要符合一定规则的:2个保持—保持原信息系统的数据依赖,满足信息系统检索要求等—复原原信息的要求。第20页,共107页,2023年,2月20日,星期六研究数据依赖—函数依赖函数依赖—平凡的/非平凡的/传递的/部分的/完全的决定属性,依赖属性,候选码,超码/码,外码/全码主属性/非主属性1NF,2NF,3NF,BCNF研究了主属性和非主属性的关系,规范化理论这样看就是把低级范式转向高一级范式的理论1-2,解决了关系模式的非主属性对码的部分依赖问题;2-3解决了关系模式中非主属性对码的传递依赖关系;BCNF进一步深入,研究了主属性及非主属性的关系。非主属性对每一个码完全依赖;主属性对不包含它的码完全依赖;没有任何属性完全函数依赖非码的任何一组属性R是3NF,若R只有一个码,那么R也是BCNF第21页,共107页,2023年,2月20日,星期六码依赖集及依赖集的闭包Armstrong公理:自反律(全集决定子集);增广律(自变量和因变量两端同时增加因素,依赖不变);传递律。证明:自含规则AA;分解规则ABC,则AB,AC;合并规则(分解规则逆);复合规则(AB,CD,则ACBD)最小函数依赖集第22页,共107页,2023年,2月20日,星期六例题假设R有n目,该关系变量最多可以满足多少个函数依赖?关系变量R(A,B,C,D,E,F),F={ABC,CA,BCD,ACDB,BEC,CEFA,CFBD,DDF}找出函数依赖集的最小函数依赖。最小函数依赖,右边单属性;左边不可约;删除任何一个将改变其闭包(最小)第23页,共107页,2023年,2月20日,星期六第13周概括关系数据库操作语言SQL,一款跨平台跨产品的语言组成:数据定义(DDL)/数据操纵(DML)/数据控制(DCL)故名思意:关系数据库操作语言,可想操作的对象/操作的结果都应该是关系,什么是关系?--集合。由此深入体会SQL语言与我们以前的计算机语言差异吧?第24页,共107页,2023年,2月20日,星期六牢记SQL语言功能的关键动词数据定义:创建、修改和撤销(create/alter/drop)都有什么样数据需要定义?数据库database表table索引index视图view存储过程procedure接着再对每个对象问还有什么需要关注,需要在定义中表示,直到计算机能表示为止。数据库是一个逻辑上概念,是其他元素的集合,直接定义就ok了表由属性描述,属性就有属性的类型/宽度,主键/外键,属性约束(列上),表上等第25页,共107页,2023年,2月20日,星期六表的定义数据库DDLCreate/alter/dropdatabase<database_name>表1.Createtable<table_name>(<列名><列数据类型>[列完整性约束],<列名><列数据类型>[列完整性约束],。。。)[表完整性约束]又有哪些约束?主键/外键/unique/check/null2.Alter都操作什么?插入(增加)列/删除列/更改列(add/drop/modify)3.撤销表droptable第26页,共107页,2023年,2月20日,星期六关于索引什么是索引?带来的优点是什么,又会有什么缺点由此引出建立索引的原则SQL都会有什么操作(创建和撤销)索引的类型:非聚集索引/聚集索引/唯一索引/复合索引/单列索引第27页,共107页,2023年,2月20日,星期六关于视图什么是视图?有什么好处?关于操作?查看起来不错,那么更新/删除类该怎么办?因为他是虚的呀,如果解决了,sql是怎么做的?Vfp中级联/限制/忽略,sql中使用了withcheckoption设置。第28页,共107页,2023年,2月20日,星期六二、数据更新语言查/插/删/改:insertinto…values…Update…set…where…Deletefrom…where…第29页,共107页,2023年,2月20日,星期六三/查Select…from…where…Select中可以修饰的:all,distinctFrom后是视图或表Where是选择条件Groupby/having分组Orderby排序最重要的操作,就是信息检索。单表查询,链接查询(等值/不等值/左外连接/右外连接),嵌套第30页,共107页,2023年,2月20日,星期六四、控制语句也是数据保护:安全性/完整性/并发/恢复授权/撤销/拒绝访问权利grant/revoke/deny都有什么权限:关键的无非是查插删改都是什么对象—无非是数据上(表/列/数据库/视图等)对属性列和视图权限:select/insert/update/delete/allprivileges对基本表:select/insert/update/delete/alter/index/allprivileges数据库:create第31页,共107页,2023年,2月20日,星期六关于关系代数关系代数(relationalalgebra)与关系运算(relationalcalculus)是关系模型的两个查询语言,也是关系数据库理论的基础之一(设计理论是基础之二)回想:朱老师曾经说计算机学科的三个形态是什么?曾经还说第4个又是什么(抽象、理论、设计、实现)对照数据库学习,作为计算机专业学生该考虑什么?怎么办?曾说过,数据库系统总体情况,也就是我们这门课程应该讲的主要内容,完成的任务,我们着重学习的东西。第32页,共107页,2023年,2月20日,星期六数据库应用部分用户浏览器c/c++,PB,Delphi,Java应用程序Web服务器CGI/ASP/JSP等程序ODBC/JDBC/OLEDB关系数据库管理系统DB数据库原理部分现实世界外模式1外模式2外模式3概念模式内模式数据库设计部分完整性限制故障恢复并发控制数据库安全第33页,共107页,2023年,2月20日,星期六关系代数操作符2个概念:关系、代数,回想离散数学的相关内容,体会离散结构是计算机专业基础在一个集合上定义了运算,参加者和运算结果都在这个集合中,构成了代数所以在这里,从集合观点,关系代数运算符是关于集合之间(上)操作,运算结果为关系,不同于其他运算。想想矩阵、函数之类的代数系统元,运算的元数,还记得么?关系代数表达式,又该如何定义(学会定义,从形式上看,从集合的组成和或关系上看,我们见过了很多,如自动机/文法/数据库等)第34页,共107页,2023年,2月20日,星期六关系代数运算符基本操作符:选择selection,投影projection,并union,差difference,积crossproduct附加的运算:连接join、除division,交附加的可以通过基本的来表达,上面这些运算的记号还记得么?就好比算术运算的运算名称和记号一样。类似算术运算,关系运算逐步完成的,即基于顺序,这样必然有运算量大问题,时间和空间问题,这就是数据库系统中重要的查询优化问题,要生成一个查询计划。第35页,共107页,2023年,2月20日,星期六两个运算单独说说连接操作:条件连接/等连接/自然连接/外连接(相对的,前面三个就是内连接)R∞cS=σc(R×S)SQL:select。。。FromRcrossjoinSwherec等值连接,c只能取等号。Select-fromR,Swherec自然连接:select–fromRnaturaljoinS或者select-fromR,Swherec外连接:左外连接leftouterjoin,右外连接rightouterjoin,全连接fullouterjoin;外连接也属于自然连接。外连接的运算符记法除运算:R/S=πx(R)–πx(πx(R)×S)-R)第36页,共107页,2023年,2月20日,星期六我们来学习关系代数表达查询P71案例第37页,共107页,2023年,2月20日,星期六第14周学习计划13周实验基本学习了第7章关系数据库设计第6章网络数据库第38页,共107页,2023年,2月20日,星期六数据库设计概述数据库设计特点(与一般软件设计相比)软件是什么(产品/服务/数据结构+算法)三分技术、七分管理,12分基础数据结构设计与行为设计相结合(早期相分离)数据库设计方法新奥尔良基于ER模型3NF对象定义语言第39页,共107页,2023年,2月20日,星期六数据库设计基本步骤需求分析概念设计逻辑设计(逻辑结构及其优化)物理结构设计(设计及评价)实施运行和维护注意:1、分析设计实现;想想学科3形态2、各个阶段对数据和处理描述的工具有哪些?P1443、三级模式在设计中的体现p145第40页,共107页,2023年,2月20日,星期六概念设计阶段需要强调的基本概念及其在ER图中表示、在转换为关系时的对应实体/实体集/实体型/实体值属性/简单属性/复合属性/单值属性/多值属性/派生属性键联系/联系类型:1-n;n-1;n-m/联系实例/参与者/参与度(关系之间,不是实体之间的)第41页,共107页,2023年,2月20日,星期六ER模型以上基本概念在ER图上的表示矩形/双线矩形:实体/弱实体椭圆形框/双椭圆形/派生属性:属性/多值属性/虚椭圆形框复合属性:属性的属性菱形/虚菱形:反映联系的实体状况,弱实体联系的用虚的,虚实体是全部参与联系的参与者:全部和部分,全部使用双线,在线上标明联系类型参与度是参与联系的实体集数量,也称作元属性下划线:键的表示多元联系转向2元联系(ER图描述时不需要转化,在设计时可以转化)特殊化和概括:半个菱形ISA第42页,共107页,2023年,2月20日,星期六ER图到关系模式关系模式中概念单一:关系,关系中属性ER图中有E/R/A,而且每一个又有许多具体的特点,关于转化,关键是寻找其中映射关系就ok了,其次知道他们转化步骤常规情况下转化:1、一个实体对应一个关系,实体的属性变成关系的属性;2、联系:1-1的,将联系的属性及1方关键字纳入任何一个1方即可,不要单独形成关系;1-n的,将联系属性及1方关键字归到n方;n-m联系单独成立关系,关系属性为联系属性加上相关联实体的键第43页,共107页,2023年,2月20日,星期六一般规则1、常规实体集转化为一个关系,原实体属性转化为关系属性,主键是关系主键2、弱实体转化为一个关系,属性为弱实体属性加上依赖实体的主键构成,主键为依赖实体主键+弱实体的键3/联系(非isa)转化成一个关系,属性由联系的属性加与其相关的实体的主键构成,主键为相关实体的主键合成4/多值属性转化为关系,属性由多值属性和实体的键组成,该关系主键为二者合成5、ISA联系:各个层的实体都创建一个关系模式,底层实体属性再加入高层实体的主键,该关系模式的主键是高层模式的主键;或者高层下移,将其属性分配到底层的各个实体中,然后各个底层实体按照实体的转换方法转化6、关系模式合并,相同主键的关系模式合并第44页,共107页,2023年,2月20日,星期六关于做图用专业工具做。或许各个专业工具的记号不一样,但每一个是一致的。在行文时要使用专业工具,至少是visio,掌握powerdesign表的个数问题:折中,关于查找不宜太多,关于冗余,不希望表太大,就是矛盾全局模式主要从系统的时间效率/空间效率/维护性等方面考虑第45页,共107页,2023年,2月20日,星期六外模式设计即视图设计,就是用户的看到的数据模样外模式设计应该考虑的问题是用户的方便和习惯内模式/模式更多面向计算机,为存储时的空间省,为运算时运算量少,不出现异常考虑外模式是为应用用户的数据库视角,应该考虑用户的特点和要求,深刻体会这些观点,做好数据库的应用第46页,共107页,2023年,2月20日,星期六练习题P207T17-20第47页,共107页,2023年,2月20日,星期六第5章数据库保护总结完整性问题(核心掌握)安全性问题并发性问题(事务问题核心掌握)故障及回复问题Sqlserver的定义方法第48页,共107页,2023年,2月20日,星期六并发控制并发操作引发的问题(明确认识以下问题产生的原因,能根据某并发情况,确认引发的问题)丢失修改loseupdate不可重复读Nonrepeatableread读“脏”数据dirtyread调度及可串行化可串行化是确认并发操作正确的一种依据封锁机制及其可能导致问题—死锁及其判定,封锁及其判定封锁协议1级封锁协议,在修改前必须加X锁,直到事务结束才释放,可防止丢失修改2级封锁协议:一级协议+在读之前加S锁,读完后释放。进一步可以防止读脏3级封锁协议:一级协议+在读之前加S锁,事务完成后释放。进一步可以防止不可重复读两段锁协议第49页,共107页,2023年,2月20日,星期六第6章网络数据库见ppt网络数据库工作模式C/S,B/S网络数据库访问技术:ODBC/OLEDB/JDBC第50页,共107页,2023年,2月20日,星期六15周讲解内容深入学习规范化理论查询优化相关内容数据库新技术第51页,共107页,2023年,2月20日,星期六一、规范化理论核心讨论“好”的数据库模式,自然要立个标杆—形成关系规范化理论问题引入—思考路线(量大角度和操作角度考虑)量大,数据冗余问题;操作4个,都会给哪些操作带来麻烦,所谓异常问题。4个问题原因分析—解决方法属性之间的关系所致—数据依赖不好的模式就是因为对数据依赖的不恰当处理如何解决主要存在哪些依赖—属性集之间的1-1,1-n,n-m函数依赖—多对一;多值依赖、连接依赖—一对多的关系核心问题:如何判断?--范式级别;如何解决?--分解本科段核心掌握函数依赖的解决方案规范化理论解决这些问题提供理论支持和算法的理论,是设计的基础,是数据库设计必须掌握的重要环节第52页,共107页,2023年,2月20日,星期六2、函数依赖和范式概念:有不同表述,研究的是关系模式属性之间一对多的关系,记着数学上的函数概念。如定义方式,X论域中一个元素,在Y中有唯一一个元素与之对应;还可以说,X中2个相同的元素,Y中对应的一定相同。需要注意到是,这里的X,Y是属性U的任意子集,表现出来就是出现在表的一行。第53页,共107页,2023年,2月20日,星期六3、函数依赖几个基本概念决定因素;相互依赖;不依赖平凡依赖;非平凡依赖完全函数依赖;部分函数依赖传递依赖(XY,YZ,Y不决定X,则XZ)主属性,非主属性码、全码、外码第54页,共107页,2023年,2月20日,星期六4、范式1NF2NF(1nF+消除非主属性对码的部分依赖)3NF(2NF+消除非主属性对码的传递依赖)BCNF(1NF+每个决定因素都含有码)所有非主属性对码完全依赖所有主属性对每个不包含它的码完全函数依赖没有任何属性完全函数依赖非码的任何属性在函数依赖范畴内,BCNF达到最高级别,3NF不彻底表现为可能存在主属性对码的部分和传递依赖第55页,共107页,2023年,2月20日,星期六5、数据依赖公理系统函数依赖集的逻辑蕴含函数依赖集闭包函数依赖的推理规则Armstrong公理自反律:Y是X子集,则XY;增广律:Z是W子集,XY,则XWYZ;传递律:XY,YZ,则XZ合并规则;分解规则;伪传递规则第56页,共107页,2023年,2月20日,星期六属性闭包与F逻辑蕴含属性闭包F逻辑蕴含(转化为求属性的闭包,即判断一个函数依赖是否为F逻辑蕴含,转化为看依赖属性集是否属于决定属性集的F下的闭包)求属性集闭包的算法Armstrong公理是正确的、完备的函数依赖集的等价和最小函数依赖集最小函数依赖的求法(函数依赖右部单一属性;去掉冗余属性;去掉多余函数依赖)第57页,共107页,2023年,2月20日,星期六例子,闭包算法设F={ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG},求(BD)+参考答案:ABCDEG已知关系模式R(U,F),U={A,B,C,D,E},F={ABD,BCD,DEB,CD,DA},求(AB)+参考答案:ABCD第58页,共107页,2023年,2月20日,星期六例子,最小函数依赖集设关系模式R(U,F),U={C,D,E},F={CDE,DE,CD,CDE},求F最小函数依赖参考做法:按照定义分3步做。{CD,DE}第59页,共107页,2023年,2月20日,星期六6、关系模式分解方法模式分解概念子模式属性集之并是模式属性集;一个子模式属性集不会是另一个子模式属性集的子集;子模式函数依赖集是F在子模式属性集上的投影,(注意这里的投影不是仅在给定的F上查找,而是该子模式的依赖为F所蕴含的投影)分解的无损联接性:每个关系都可以通过各个模式的经过投影和连接得到,则该分解就是无损分解第60页,共107页,2023年,2月20日,星期六无损分解的判定算法第61页,共107页,2023年,2月20日,星期六例子,无损分解判定设R(B,O,I,S,Q,D),F={SD,IB,ISQ,BO},R的一个分解{SD,IB,ISQ,BO},这个分解是无损联接性么?严格执行以上算法判定。理解算法含义设R(H,I,J,K,L),F={HJ,JK,IJ,JLH},R的一个分解{HK,HI,IJ,JKL,HL},这个分解是无损联接性么?第62页,共107页,2023年,2月20日,星期六分解为两个模式的判定无损联接的充要条件R1∩R2R1-R2∈F+或者R1∩R2R2-R1∈F+第63页,共107页,2023年,2月20日,星期六函数依赖保持的判定什么是函数依赖保持?是指函数依赖的加闭包与各个子模式函数依赖的并集的加闭包相等,则说保持了。判定算法检验任一个函数依赖XY∈F是否可以有各个子模式函数依赖的并根据Armstrong公理导出,即判断Y是否属于各个函数依赖并的加闭包。检验任一个函数依赖XY∈G是否可以由F根据Armstrong公理导出。即判断Y是否属于F的加闭包。若以上同时成立,则他们相等。第64页,共107页,2023年,2月20日,星期六例子,函数依赖保持性关系模式R(U,F),其中U={A,B,C,D},F={AB,BC,CD,DA},分解{AB,BC,CD}是否具有函数依赖保持。解:首先确定各个子模式的函数依赖。F1={AB,BA},F2={BC,CB},F3={CD,DC}

并集G。显然G包含着F闭包中。又A是属于D的G闭包,所以F必定包含于G的闭包。因此二者闭包相等,故保持了函数依赖。第65页,共107页,2023年,2月20日,星期六关系模式的分解算法一般而言若要求连接不失真,分解可以达到BCNF若要求函数依赖保持,分解可达3NF,但不一定能达BNCF若同时满足连接不失真,函数依赖保持,分解可达3NF,但不一定能达BNCF第66页,共107页,2023年,2月20日,星期六满足3NF的函数依赖保持算法第67页,共107页,2023年,2月20日,星期六例子关系模式R(U,F),U={A,b,C,D,E,F,G},函数依赖F={BCDA,BCE,AF,FG,CD,AG},求R的一个满足3NF的函数依赖保持分解。解:第一步,求最小函数依赖集覆盖

Fm={BCAE,AF,FG,CD}第二部,根据以上算法有{ABCE,AF,FG,CD}第68页,共107页,2023年,2月20日,星期六满足3NF函数依赖和连接保持算法第69页,共107页,2023年,2月20日,星期六例子对上例做3NF保持函数依赖和无损联接分解解:第一步,根据上例已经得到保持函数依赖的3NF分解为:

={ABCE,AF,FG,CD}

第二步,确定R的一个候选码。(这步很繁琐,要不断不断求,求一些属性的加闭包),最后有(BC)+=ABCDEFG,所以BC为一个候选码。第三步,判断是否包含BC。所以该分解保持了无损联接。第70页,共107页,2023年,2月20日,星期六问题求解原关系模式的候选码运算量太大了。码值理论对属性根据依赖F分4类:L类,R类;N类;LR类。定理:对于给定关系模式R及其依赖函数集F,若X是L类的,则一定是R的候选码。定理:对于给定关系模式R及其依赖函数集F,若X是N类的,则一定是R的候选码。定理:对于给定关系模式R及其依赖函数集F,若X是R类的,则一定不在任何的R的候选码中。定理:对于给定关系模式R及其依赖函数集F,若X是L类或N类属性组成的集合,且X包含了R的全部属性,则X是R的唯一候选码。第71页,共107页,2023年,2月20日,星期六例子设有关系模式R(A,B,C,D,E,P),F={AD,ED,DB,BCD,DCA},求R的候选码。解:第一步,求L和N属性。L属性{E,C},N类属性{P}

第二步,(CEP)+=CEADBP

所以CEP是唯一候选码。下面,练习一下分解问题:1)求最小函数依赖Fm={}第72页,共107页,2023年,2月20日,星期六二/查询优化查询优化必要性关系代数表达式的优化问题—同一个查询,可以用不同关系表达式表达,而运算效率差异很大有可能优化。等价变换规则P63-65第73页,共107页,2023年,2月20日,星期六数据库理论与设计联系起来了解数据库理论,尤其规范化理论的内容了解数据库设计,尤其ER图到关系模式的设计深刻体会二者之间的关系,从理论上证明我们的设计满足的级别,如证明按照教材的关系模式生成方法,回答你设计的模式到达哪个级别,是否保持了函数依赖和或无损分解。第74页,共107页,2023年,2月20日,星期六一个证明学生课程成绩设计ER图如图关系模式学生(学号A,姓名B,性别C,年龄D)课程(课程号E,课程名F,学分G,周学时H)考试(学号,课程号,成绩I)该分解达到哪个级别?是否保证2个不变?(依赖分析略)3NF,也到达了BCNF,保持了函数依赖和无损联接。第75页,共107页,2023年,2月20日,星期六三、数据库技术发展趋势教材1.5节面临挑战:环境变化;数据类型变化;数据来源变化;数据管理要求变化发展特点:数据模型发展;与其他相关技术结合;面向领域的设计发展趋势:信息集成;移动数据管理;网格数据管理;传感器数据库;DBMS的自适应性管理。第76页,共107页,2023年,2月20日,星期六16周内容数据库设计系统讨论全书总结课程应该提交材料:实验考试的基本内容第77页,共107页,2023年,2月20日,星期六关于模式分解码对于关系模式的分析和分解具有重要意义和作用讨论一个关系模式级别时,首先确定关系模式中所有候选码,然后区分主属性和非主属性,通过分析属性与码之间的依赖关系,判定关系模式的级别理论和设计之间关系。判定无损联接、函数保持的算法,最小依赖集对分解的作用。第78页,共107页,2023年,2月20日,星期六关系模式分解概念及举例关系模式R(U,F)的一个分解是若干个关系模式的集合,其中,U=∪Ui,对每个i,j,Ui不是Uj子集Fi是F在Ui上投影,即Fi={XY∈F+∧XY是Ui子集}关系模式的一个分解必须从2个方面衡正确性,即分解与原关系模式R之间是否具有“等价性”。数据等价,即是否表示同样的数据;函数依赖等价,即是否保持了相同函数依赖。2个判定:无损连接性判定和函数依赖保持判定。第79页,共107页,2023年,2月20日,星期六无损联接的判定算法见上周ppt举例设R(B,O,I,S,Q,D),F={SD,IB,ISQ,BO},R的一个分解{SD,IB,ISQ,BO},这个分解是无损联接性么?第80页,共107页,2023年,2月20日,星期六解法首先根据模式分解的定义,属性是否变化,是否有子集,即包含判断无损连接的算法黑板演算演算的含义解释第81页,共107页,2023年,2月20日,星期六总结了解数据库应用系统设计中目前的重要性,体现在毕业设计时,信息管理系统类的毕业设计较多,数据库设计是基础数据库设计是针对一个给定的应用环境,根据用户的需求,构建一个性能良好的数据模式,建立数据库及其应用系统,使之能够有效存储数据,满足各种用户的信息要求和处理要求。第82页,共107页,2023年,2月20日,星期六设计人员应该具备的素质计算机学科的基本素质,基础知识和程序设计基础数据库理论知识。如三个世界2个模型,数据库的三级模式2级映像,数据库历史发展,关系模式,函数依赖/规范化理论,数据库管理系统的具体特征等软件工程的思想和技术应用领域的知识第83页,共107页,2023年,2月20日,星期六数据库设计内容数据库结构设计数据库行为设计第84页,共107页,2023年,2月20日,星期六数据库设计方法直观方法—凑,适应简单的,数据库开发人员厉害的规范设计方法—明确阶段,各个阶段任务,与软件工程结合,由外向内,由上到下,逐步求精基于ER模型设计方法基于3NF的设计方法(是指需求分析阶段收集了所有的属性及属性间关系,将他们组织在一个单一的关系模式中,然后再分析模式中的不符合3NF的约束,将其分解投影,规范成若干个3NF)基于视图的设计方法—为每个应用建立自己视图,然后再将这些视图汇总合并成整个数据库的概念模式。计算机辅助设计方法—PD,design自动化设计方法第85页,共107页,2023年,2月20日,星期六基本步骤—从分体现计算机学科的3+1学科形态需求分析—就是抽象的过程概念设计—理论指导下的设计逻辑设计物理设计数据库实施运行与维护第86页,共107页,2023年,2月20日,星期六充分理解以上各个阶段工作内容技术描述手段重要图表工作方法如需求阶段主要技术工具:信息处理的数据流图,数据字典;概念设计阶段ER图之类的,逻辑设计阶段关系模式设计;物理设计阶段存储方法、访问方法、系统配置之类的;实施阶段数据库装入,应用程序编制和运行,运行维护的安全性,转储,改进等。第87页,共107页,2023年,2月20日,星期六数据库管理系统从数据库发展历史,认识数据库管理系统的基本功能,与操作系统关系DBMS主要功能:数据定义、数据操纵、数据库运行与管理、数据存储管理、数据库保护、数据库与维护数据库系统定义/主要组成、功能数据库体系结构—三级模式二级映像,数据独立性数据模型三要素第88页,共107页,2023年,2月20日,星期六关系数据库关系模型关系操作:关系代数、元组演算、域演算关系完整性约束关系模式—概念模式、内模式和外模式关系概念模式是对每个关系的说明,包括关系名、属性名、属性取值范围的说明,关系之间的联系是通过连接属性实现,不必专门指出。关系的内模式就是基本表关系的外模式是概念模式的子集,是用户与计算机接口,就是视图。第89页,共107页,2023年,2月20日,星期六关系代数8种运算,5个基本运算根据语义会写出关系运算。第90页,共107页,2023年,2月20日,星期六SQL语言熟练掌握3大功能—定义/操纵/控制9个关键动词:create/alter/drop/select/update/insert/delete/grant/revoke第91页,共107页,2023年,2月20日,星期六数据库保护完整性约束事务与并发调度封锁机制故障与回复方法

温馨提示

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

评论

0/150

提交评论