《数据库设计理论幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据库设计理论幻灯片.ppt(107页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库设计理论第1页,共107页,编辑于2022年,星期六友情提醒o15周/16周周五均有实验,请按时参加第2页,共107页,编辑于2022年,星期六outlineo关系模式可能存在的问题o异常原因分析o函数依赖o关系模式的规范形式o规范化步骤o模式分解及其指标第3页,共107页,编辑于2022年,星期六关系模式中可能存在的异常o示例oStudent(Sid,Sname,DName,DDirector,Cid,Cname,CScore)o其数据语义:n系和学生1:nn系和系主任1:1n学生与课程n:mn因此,主键(Sid,Cid)o可能异常n插入异常(插不进;插1个,却要求插多个)n删除异常(
2、删除时,删了其他信息;删除一个元组,却删除多个)n冗余(多次存储)n更新异常(修改一个,却要修改多个)第4页,共107页,编辑于2022年,星期六异常存在原因o数据依赖是实体属性间相互关系的语义决定的。函数依赖、多值依赖、连接依赖。o根源:属性间存在这些依赖关系o解决方法:分解;每个关系模式表达的概念单一,属性间的数据依赖关系单纯化,从而消除异常。o研究函数依赖是解决上述问题的重要课题第5页,共107页,编辑于2022年,星期六函数依赖o函数依赖,决定子(决定属性),依赖属性;部分依赖,传递依赖;平凡依赖oArmstrong公理系统;逻辑蕴含,函数依赖集的闭包;自反律;增广律;传递律;合并规则
3、;伪传递规则;分解规则;自含规则;第6页,共107页,编辑于2022年,星期六关系模式的规范形式o范式:关系模式的规范形式o规范化:关系模式的规范化过程。一般采用分解的办法,将低级的范式向高级范式转化,使关系的语义单纯化。o1nf,2NF,3NF,BCNF,4NF,5NFo1NF消除其中的部分函数依赖为2NF。即每个非键属性完全函数依赖于R的键。o是2NF,且任何一个非键属性不传递依赖任何候选键,为3NFo3NF消除主属性对键的部分和传递依赖为BCNFo函数依赖的范畴内,BCNF达到最高级别第7页,共107页,编辑于2022年,星期六函数依赖进一步讨论o自变量、应变量o函数依赖是具有时间独立性
4、的,即对关系变量所有合法值均成立o如果关系变量R满足A-B,而A不是候选码,则R中一定存在冗余第8页,共107页,编辑于2022年,星期六依赖集的闭包o函数依赖集S所蕴含的函数依赖的全体称为依赖集S的闭包,记作S+oArmstrong公理(定义直接证明)n自反律(reflexivity),如果B是A的子集,则A-Bn增广律(augmentation),A-B,则AC-BCn传递律transitivity):A-B,B-C,则A-Co应用以上规则,推出其他规则n自含规则(self-determination):A-An分解规则(decomposition):A-BC,则A-b,A-Cn合并规则(
5、union):A-B,A-C,则A-BCn复合规则(composition):A-B,C-D,则AC-BD第9页,共107页,编辑于2022年,星期六举例oR(A,B,C,D,E,F),A-BC,B-E,CD-EFo证明:AD-Fo思路上,有2种方法可以采用,一是证明F属于AD的F下加闭包,一是根据Armstrong公理证明。第10页,共107页,编辑于2022年,星期六属性集的闭包o原则上讲,反复使用以上规则,指导不在产生新的函数依赖为止,就可以计算函数依赖集的闭包-效率低,不可用o算法给定属性集Z,以及依赖集S,确定R中依赖Z的属性集oClosureZ,S:=Z;oDo forever;o
6、 for each FD X-Y in So doo if X belong in ClosureZ,So then ClosureZ,S:=ClosureZ,S union Yo endo if ClosureZ,S did not change on this iterationo then leave loopoEnd;第11页,共107页,编辑于2022年,星期六例子oR(A,B,C,D,E,F),A-BC,E-CF,B-E,CD-EFo计算A,B关于S的闭包o答案:A,B,C,D,E,Fo重要结论:可以方便判断函数依赖X-Y是否可以从S导出。Y属于X的闭包时,是属于的o超码判断,当最
7、小时,候选码的选择第12页,共107页,编辑于2022年,星期六最小函数依赖集o蕴含、覆盖,等价的概念o最小函数依赖集n每个函数依赖的右边只有一个属性n每个函数依赖的左边是不可约的n删除S中任何一个依赖都将改变其闭包o计算最小函数依赖集的算法第13页,共107页,编辑于2022年,星期六例子oR(A,B,C,D),A-BC,B-C,A-B,AB-C,AC-Do右边写成单属性的函数依赖o观察左边,是否可以约间,o删除冗余的依赖o答案:A-B,B-C,A-D第14页,共107页,编辑于2022年,星期六关系数据理论的轮廓o问题提出n是数据库设计的要求。这里的数据库设计更多强调的是逻辑设计,并不是说
8、物理设计不重要,相反,是相当重要的。但物理设计依赖与特定的RDBMS,而逻辑设计独立与RDBMS,并有成型的理论,再者,物理设计可以成为独立的阶段。nRecall:数据库设计:概念设计使用工具是ER模型;逻辑设计工具就是规范化理论n什么是逻辑设计就是根据应用系统的要求,构建“合式”的数据模式。也就是说根据系统要求,构造关系及每个关系由哪些属性组成。-更像一门艺术,而不是科学。这也就是数据库设计的目的,保证正确的数据结构,完整性约束等,主要思想就是“独立性”第15页,共107页,编辑于2022年,星期六一些概念回顾o关系/o关系模式R(U,D,Dom,F),与关系是型和值的关系o关系数据库o关系
9、数据库模式o关系系统(E.Codd,1969年提出)从不同角度认识“关系”。如关系就是表;是一个数学术语(略);关系由列标题/行集构成;关系是讨论事物的事物。;我们走关系是“表”套路:关系模式就是关系的描述方式,关系数据库就是用表表示数据的数据库(习惯用数学集合术语定义:表或者关系变量的集合);来自数学,有严格数学基础第16页,共107页,编辑于2022年,星期六关系系统o其形式化理论是关系数据模型。包括数据的三个方面理论:数据结构/数据完整性/数据操作o结构化方面就是关系(表)本身o完整性方面主要是主码和外码问题实体完整性/参照完整性/用户自定义完整性o操作方面就是操作符之类的问题数学上的关
10、系操作外,有选择/投影/连接/除等o是系统就是有封闭的特点第17页,共107页,编辑于2022年,星期六数据依赖o一个关系内部属性之间的约束关系,是现实世界属性间关系的抽象,是内在性质o函数依赖o多值依赖o其他第18页,共107页,编辑于2022年,星期六数据依赖对关系模式的影响o冗余问题o操作问题(查/插/删/改),查最多是效率问题n插入异常n删除异常n更新异常第19页,共107页,编辑于2022年,星期六解决办法o也就是逻辑设计的问题,一定程度上克服上面的4个问题o规范化理论o分解,概念独立性,大表换成若干个小表(列的角度)-关系模式概念o要符合一定规则的:2个保持保持原信息系统的数据依赖
11、,满足信息系统检索要求等复原原信息的要求。第20页,共107页,编辑于2022年,星期六研究数据依赖函数依赖o函数依赖平凡的/非平凡的/传递的/部分的/完全的o决定属性,依赖属性,候选码,超码/码,外码/全码o主属性/非主属性o1NF,2NF,3NF,BCNFo研究了主属性和非主属性的关系,规范化理论这样看就是把低级范式转向高一级范式的理论o1-2,解决了关系模式的非主属性对码的部分依赖问题;2-3解决了关系模式中非主属性对码的传递依赖关系;oBCNF进一步深入,研究了主属性及非主属性的关系。非主属性对每一个码完全依赖;主属性对不包含它的码完全依赖;没有任何属性完全函数依赖非码的任何一组属性o
12、R是3NF,若R只有一个码,那么R也是BCNF第21页,共107页,编辑于2022年,星期六码o依赖集及依赖集的闭包oArmstrong公理:自反律(全集决定子集);增广律(自变量和因变量两端同时增加因素,依赖不变);传递律。o证明:自含规则AA;分解规则ABC,则AB,AC;合并规则(分解规则逆);复合规则(AB,CD,则ACBD)o最小函数依赖集第22页,共107页,编辑于2022年,星期六例题o假设R有n目,该关系变量最多可以满足多少个函数依赖?o关系变量R(A,B,C,D,E,F),F=ABC,CA,BCD,ACDB,BEC,CEFA,CFBD,DDF找出函数依赖集的最小函数依赖。o最
13、小函数依赖,右边单属性;左边不可约;删除任何一个将改变其闭包(最小)第23页,共107页,编辑于2022年,星期六第13周概括o关系数据库操作语言SQL,一款跨平台跨产品的语言o组成:数据定义(DDL)/数据操纵(DML)/数据控制(DCL)o故名思意:关系数据库操作语言,可想操作的对象/操作的结果都应该是关系,什么是关系?-集合。由此深入体会SQL语言与我们以前的计算机语言差异吧?第24页,共107页,编辑于2022年,星期六牢记SQL语言功能的关键动词o数据定义:创建、修改和撤销(create/alter/drop)o都有什么样数据需要定义?n数据库databasen表tablen索引in
14、dexn视图viewn存储过程procedureo接着再对每个对象问还有什么需要关注,需要在定义中表示,直到计算机能表示为止。n数据库是一个逻辑上概念,是其他元素的集合,直接定义就ok了n表由属性描述,属性就有属性的类型/宽度,主键/外键,属性约束(列上),表上等第25页,共107页,编辑于2022年,星期六表的定义数据库DDLCreate/alter/drop database 表1.Create table(列完整性约束,列完整性约束,。)表完整性约束又有哪些约束?主键/外键/unique/check/null2.Alter都操作什么?插入(增加)列/删除列/更改列(add/drop/mo
15、dify)3.撤销表drop table第26页,共107页,编辑于2022年,星期六关于索引o什么是索引?o带来的优点是什么,又会有什么缺点o由此引出建立索引的原则oSQL都会有什么操作(创建和撤销)o索引的类型:非聚集索引/聚集索引/唯一索引/复合索引/单列索引第27页,共107页,编辑于2022年,星期六关于视图o什么是视图?有什么好处?o关于操作?查看起来不错,那么更新/删除类该怎么办?因为他是虚的呀,如果解决了,sql是怎么做的?oVfp中级联/限制/忽略,sql中使用了with check option设置。第28页,共107页,编辑于2022年,星期六二、数据更新语言o查/插/删
16、/改:oinsert intovaluesoUpdate set whereoDelete from where第29页,共107页,编辑于2022年,星期六三/查oSelectfromwhereoSelect中可以修饰的:all,distinctoFrom后是视图或表oWhere是选择条件oGroup by/having 分组oOrder by排序o最重要的操作,就是信息检索。o单表查询,链接查询(等值/不等值/左外连接/右外连接),嵌套第30页,共107页,编辑于2022年,星期六四、控制语句o也是数据保护:安全性/完整性/并发/恢复o授权/撤销/拒绝访问权利grant/revoke/de
17、nyo都有什么权限:关键的无非是查插删改o都是什么对象无非是数据上(表/列/数据库/视图等)o对属性列和视图权限:select/insert/update/delete/all privilegeso对基本表:select/insert/update/delete/alter/index/all privilegeso数据库:create第31页,共107页,编辑于2022年,星期六关于关系代数o关系代数(relational algebra)与关系运算(relational calculus)是关系模型的两个查询语言,也是关系数据库理论的基础之一(设计理论是基础之二)o回想:朱老师曾经说计算
18、机学科的三个形态是什么?曾经还说第4个又是什么(抽象、理论、设计、实现)o对照数据库学习,作为计算机专业学生该考虑什么?怎么办?o曾说过,数据库系统总体情况,也就是我们这门课程应该讲的主要内容,完成的任务,我们着重学习的东西。第32页,共107页,编辑于2022年,星期六数据库应用部分数据库应用部分用户浏览器c/c+,PB,Delphi,Java 应用程序Web服务器CGI/ASP/JSP等程序ODBC/JDBC/OLE DB关系数据库管理系统DB数数 据据库库 原原理理 部部分分现实世界外模式1外模式2外模式3概念模式内模式数数 据据库库 设设计计 部部分分完整性限制故障恢复并发控制数据库安
19、全第33页,共107页,编辑于2022年,星期六关系代数操作符o2个概念:关系、代数,回想离散数学的相关内容,体会离散结构是计算机专业基础o在一个集合上定义了运算,参加者和运算结果都在这个集合中,构成了代数o所以在这里,从集合观点,关系代数运算符是关于集合之间(上)操作,运算结果为关系,不同于其他运算。想想矩阵、函数之类的代数系统o元,运算的元数,还记得么?o关系代数表达式,又该如何定义(学会定义,从形式上看,从集合的组成和或关系上看,我们见过了很多,如自动机/文法/数据库等)第34页,共107页,编辑于2022年,星期六关系代数运算符o基本操作符:选择selection,投影projecti
20、on,并union,差difference,积cross producto附加的运算:连接join、除division,交o附加的可以通过基本的来表达,o上面这些运算的记号还记得么?就好比算术运算的运算名称和记号一样。类似算术运算,关系运算逐步完成的,即基于顺序,这样必然有运算量大问题,时间和空间问题,这就是数据库系统中重要的查询优化问题,要生成一个查询计划。第35页,共107页,编辑于2022年,星期六两个运算单独说说o连接操作:条件连接/等连接/自然连接/外连接(相对的,前面三个就是内连接)nR cS=c(RS)SQL:select。From R cross join S where c
21、n等值连接,c只能取等号。Select-from R,S where cn自然连接:select from R natural join S 或者select-from R,S where cn外连接:左外连接left outer join,右外连接right outer join,全连接full outer join;外连接也属于自然连接。外连接的运算符记法o除运算:R/S=x(R)x(x(R)S)-R)第36页,共107页,编辑于2022年,星期六我们来学习关系代数表达查询oP71案例第37页,共107页,编辑于2022年,星期六第14周学习计划o13周实验基本学习了第7章o关系数据库设计
22、o第6章网络数据库第38页,共107页,编辑于2022年,星期六数据库设计概述o数据库设计特点(与一般软件设计相比)n软件是什么(产品/服务/数据结构+算法)n三分技术、七分管理,12分基础数据n结构设计与行为设计相结合(早期相分离)o数据库设计方法n新奥尔良n基于ER模型n3NFn对象定义语言第39页,共107页,编辑于2022年,星期六数据库设计基本步骤o需求分析o概念设计o逻辑设计(逻辑结构及其优化)o物理结构设计(设计及评价)o实施o运行和维护注意:1、分析设计实现;想想学科3形态2、各个阶段对数据和处理描述的工具有哪些?P1443、三级模式在设计中的体现p145第40页,共107页,
23、编辑于2022年,星期六概念设计阶段需要强调的o基本概念及其在ER图中表示、在转换为关系时的对应o实体/实体集/实体型/实体值o属性/简单属性/复合属性/单值属性/多值属性/派生属性o键o联系/联系类型:1-n;n-1;n-m/联系实例/参与者/参与度(关系之间,不是实体之间的)第41页,共107页,编辑于2022年,星期六ER模型o以上基本概念在ER图上的表示o矩形/双线矩形:实体/弱实体o椭圆形框/双椭圆形/派生属性:属性/多值属性/虚椭圆形框o复合属性:属性的属性o菱形/虚菱形:反映联系的实体状况,弱实体联系的用虚的,虚实体是全部参与o联系的参与者:全部和部分,全部使用双线,在线上标明联
24、系类型o参与度是参与联系的实体集数量,也称作元o属性下划线:键的表示o多元联系转向2元联系(ER图描述时不需要转化,在设计时可以转化)o特殊化和概括:半个菱形ISA第42页,共107页,编辑于2022年,星期六ER图到关系模式o关系模式中概念单一:关系,关系中属性oER图中有E/R/A,而且每一个又有许多具体的特点,关于转化,关键是寻找其中映射关系就ok了,其次知道他们转化步骤o常规情况下转化:1、一个实体对应一个关系,实体的属性变成关系的属性;2、联系:1-1的,将联系的属性及1方关键字纳入任何一个1方即可,不要单独形成关系;1-n的,将联系属性及1方关键字归到n方;n-m联系单独成立关系,
25、关系属性为联系属性加上相关联实体的键第43页,共107页,编辑于2022年,星期六一般规则o1、常规实体集转化为一个关系,原实体属性转化为关系属性,主键是关系主键o2、弱实体转化为一个关系,属性为弱实体属性加上依赖实体的主键构成,主键为依赖实体主键+弱实体的键o3/联系(非isa)转化成一个关系,属性由联系的属性加与其相关的实体的主键构成,主键为相关实体的主键合成o4/多值属性转化为关系,属性由多值属性和实体的键组成,该关系主键为二者合成o5、ISA联系:各个层的实体都创建一个关系模式,底层实体属性再加入高层实体的主键,该关系模式的主键是高层模式的主键;或者高层下移,将其属性分配到底层的各个实
26、体中,然后各个底层实体按照实体的转换方法转化o6、关系模式合并,相同主键的关系模式合并第44页,共107页,编辑于2022年,星期六关于做图o用专业工具做。或许各个专业工具的记号不一样,但每一个是一致的。在行文时要使用专业工具,至少是visio,掌握powerdesigno表的个数问题:折中,关于查找不宜太多,关于冗余,不希望表太大,就是矛盾o全局模式主要从系统的时间效率/空间效率/维护性等方面考虑第45页,共107页,编辑于2022年,星期六外模式设计o即视图设计,就是用户的看到的数据模样o外模式设计应该考虑的问题是用户的方便和习惯o内模式/模式更多面向计算机,为存储时的空间省,为运算时运算
27、量少,不出现异常考虑o外模式是为应用用户的数据库视角,应该考虑用户的特点和要求,深刻体会这些观点,做好数据库的应用第46页,共107页,编辑于2022年,星期六练习题oP207oT 17-20第47页,共107页,编辑于2022年,星期六第5章数据库保护总结o完整性问题(核心掌握)o安全性问题o并发性问题(事务问题核心掌握)o故障及回复问题oSql server的定义方法第48页,共107页,编辑于2022年,星期六并发控制o并发操作引发的问题(明确认识以下问题产生的原因,能根据某并发情况,确认引发的问题)n丢失修改lose updaten不可重复读Nonrepeatable readn读“脏
28、”数据dirty reado调度及可串行化n可串行化是确认并发操作正确的一种依据o封锁机制及其可能导致问题死锁及其判定,封锁及其判定o封锁协议n1级封锁协议,在修改前必须加X锁,直到事务结束才释放,可防止丢失修改n2级封锁协议:一级协议+在读之前加S锁,读完后释放。进一步可以防止读脏n3级封锁协议:一级协议+在读之前加S锁,事务完成后释放。进一步可以防止不可重复读n两段锁协议第49页,共107页,编辑于2022年,星期六第6章 网络数据库o见ppto网络数据库工作模式C/S,B/So网络数据库访问技术:ODBC/OLE DB/JDBC第50页,共107页,编辑于2022年,星期六15周讲解内容
29、o深入学习规范化理论o查询优化相关内容o数据库新技术第51页,共107页,编辑于2022年,星期六一、规范化理论o核心讨论“好”的数据库模式,自然要立个标杆形成关系规范化理论o问题引入思考路线(量大角度和操作角度考虑)n量大,数据冗余问题;操作4个,都会给哪些操作带来麻烦,所谓异常问题。4个问题o原因分析解决方法n属性之间的关系所致数据依赖n不好的模式就是因为对数据依赖的不恰当处理o如何解决n主要存在哪些依赖属性集之间的1-1,1-n,n-mn函数依赖多对一;多值依赖、连接依赖一对多的关系n核心问题:如何判断?-范式级别;如何解决?-分解n本科段核心掌握函数依赖的解决方案o规范化理论解决这些问
30、题提供理论支持和算法的理论,是设计的基础,是数据库设计必须掌握的重要环节第52页,共107页,编辑于2022年,星期六2、函数依赖和范式o概念:有不同表述,研究的是关系模式属性之间一对多的关系,记着数学上的函数概念。n如定义方式,X论域中一个元素,在Y中有唯一一个元素与之对应;n还可以说,X中2个相同的元素,Y中对应的一定相同。o需要注意到是,这里的X,Y是属性U的任意子集,表现出来就是出现在表的一行。第53页,共107页,编辑于2022年,星期六3、函数依赖几个基本概念o决定因素;相互依赖;不依赖o平凡依赖;非平凡依赖o完全函数依赖;部分函数依赖o传递依赖(XY,YZ,Y不决定X,则XZ)o
31、主属性,非主属性o码、全码、外码第54页,共107页,编辑于2022年,星期六4、范式o1NFo2NF(1nF+消除非主属性对码的部分依赖)o3NF(2NF+消除非主属性对码的传递依赖)oBCNF(1NF+每个决定因素都含有码)n所有非主属性对码完全依赖n所有主属性对每个不包含它的码完全函数依赖n没有任何属性完全函数依赖非码的任何属性o在函数依赖范畴内,BCNF达到最高级别,3NF不彻底表现为可能存在主属性对码的部分和传递依赖第55页,共107页,编辑于2022年,星期六5、数据依赖公理系统o函数依赖集的逻辑蕴含o函数依赖集闭包o函数依赖的推理规则Armstrong公理n自反律:Y是X子集,则
32、XY;n增广律:Z是W子集,XY,则XWYZ;n传递律:XY,YZ,则XZn合并规则;分解规则;伪传递规则第56页,共107页,编辑于2022年,星期六属性闭包与F逻辑蕴含o属性闭包oF逻辑蕴含(转化为求属性的闭包,即判断一个函数依赖是否为F逻辑蕴含,转化为看依赖属性集是否属于决定属性集的F下的闭包)o求属性集闭包的算法oArmstrong公理是正确的、完备的o函数依赖集的等价和最小函数依赖集o最小函数依赖的求法(函数依赖右部单一属性;去掉冗余属性;去掉多余函数依赖)第57页,共107页,编辑于2022年,星期六例子,闭包算法o设F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,C
33、EAG,求(BD)+o参考答案:ABCDEGo已知关系模式R(U,F),U=A,B,C,D,E,F=ABD,BCD,DEB,CD,DA,求(AB)+o参考答案:ABCD第58页,共107页,编辑于2022年,星期六例子,最小函数依赖集o设关系模式R(U,F),U=C,D,E,F=CDE,DE,CD,CDE,求F最小函数依赖o参考做法:按照定义分3步做。CD,DE第59页,共107页,编辑于2022年,星期六6、关系模式分解方法o模式分解概念n子模式属性集之并是模式属性集;n一个子模式属性集不会是另一个子模式属性集的子集;n子模式函数依赖集是F在子模式属性集上的投影,(注意这里的投影不是仅在给定
34、的F上查找,而是该子模式的依赖为F所蕴含的投影)o分解的无损联接性:每个关系都可以通过各个模式的经过投影和连接得到,则该分解就是无损分解第60页,共107页,编辑于2022年,星期六无损分解的判定算法第61页,共107页,编辑于2022年,星期六例子,无损分解判定o设R(B,O,I,S,Q,D),F=SD,IB,ISQ,BO,R的一个分解SD,IB,ISQ,BO,这个分解是无损联接性么?o严格执行以上算法判定。理解算法含义o设R(H,I,J,K,L),F=HJ,JK,IJ,JLH,R的一个分解HK,HI,IJ,JKL,HL,这个分解是无损联接性么?第62页,共107页,编辑于2022年,星期六
35、分解为两个模式的判定o无损联接的充要条件R1R2R1-R2F+或者R1R2R2-R1F+第63页,共107页,编辑于2022年,星期六函数依赖保持的判定o什么是函数依赖保持?是指函数依赖的加闭包与各个子模式函数依赖的并集的加闭包相等,则说保持了。o判定算法n检验任一个函数依赖XYF是否可以有各个子模式函数依赖的并根据Armstrong公理导出,即判断Y是否属于各个函数依赖并的加闭包。n检验任一个函数依赖XYG是否可以由F根据Armstrong公理导出。即判断Y是否属于F的加闭包。n若以上同时成立,则他们相等。第64页,共107页,编辑于2022年,星期六例子,函数依赖保持性o关系模式R(U,F
36、),其中U=A,B,C,D,F=AB,BC,CD,DA,分解AB,BC,CD是否具有函数依赖保持。o解:首先确定各个子模式的函数依赖。F1=AB,BA,F2=BC,CB,F3=CD,DC 并集G。显然G包含着F闭包中。又A是属于D的G闭包,所以F必定包含于G的闭包。因此二者闭包相等,故保持了函数依赖。第65页,共107页,编辑于2022年,星期六关系模式的分解算法o一般而言n若要求连接不失真,分解可以达到BCNFn若要求函数依赖保持,分解可达3NF,但不一定能达BNCFn若同时满足连接不失真,函数依赖保持,分解可达3NF,但不一定能达BNCF第66页,共107页,编辑于2022年,星期六满足3
37、NF的函数依赖保持算法第67页,共107页,编辑于2022年,星期六例子o关系模式R(U,F),U=A,b,C,D,E,F,G,函数依赖F=BCDA,BCE,AF,FG,CD,AG,求R的一个满足3NF的函数依赖保持分解。o解:第一步,求最小函数依赖集覆盖 Fm=BCAE,AF,FG,CD第二部,根据以上算法有ABCE,AF,FG,CD第68页,共107页,编辑于2022年,星期六满足3NF函数依赖和连接保持算法第69页,共107页,编辑于2022年,星期六例子o对上例做3NF保持函数依赖和无损联接分解o解:第一步,根据上例已经得到保持函数依赖的3NF分解为:=ABCE,AF,FG,CD 第二
38、步,确定R的一个候选码。(这步很繁琐,要不断不断求,求一些属性的加闭包),最后有(BC)+=ABCDEFG,所以BC为一个候选码。第三步,判断是否包含BC。所以该分解保持了无损联接。第70页,共107页,编辑于2022年,星期六问题o求解原关系模式的候选码运算量太大了。o码值理论n对属性根据依赖F分4类:L类,R类;N类;LR类。n定理:对于给定关系模式R及其依赖函数集F,若X是L类的,则一定是R的候选码。n定理:对于给定关系模式R及其依赖函数集F,若X是N类的,则一定是R的候选码。n定理:对于给定关系模式R及其依赖函数集F,若X是R类的,则一定不在任何的R的候选码中。n定理:对于给定关系模式
39、R及其依赖函数集F,若X是L类或N类属性组成的集合,且X包含了R的全部属性,则X是R的唯一候选码。第71页,共107页,编辑于2022年,星期六例子o设有关系模式R(A,B,C,D,E,P),F=AD,ED,DB,BCD,DCA,求R的候选码。o解:第一步,求L和N属性。L属性E,C,N类属性P 第二步,(CEP)+=CEADBP 所以CEP是唯一候选码。下面,练习一下分解问题:1)求最小函数依赖Fm=第72页,共107页,编辑于2022年,星期六二/查询优化o查询优化必要性n关系代数表达式的优化问题同一个查询,可以用不同关系表达式表达,而运算效率差异很大n有可能优化。等价变换规则oP63-6
40、5第73页,共107页,编辑于2022年,星期六数据库理论与设计联系起来o了解数据库理论,尤其规范化理论的内容o了解数据库设计,尤其ER图到关系模式的设计o深刻体会二者之间的关系,从理论上证明我们的设计满足的级别,如证明按照教材的关系模式生成方法,回答你设计的模式到达哪个级别,是否保持了函数依赖和或无损分解。第74页,共107页,编辑于2022年,星期六一个证明o学生课程成绩设计oER图如图o关系模式n学生(学号A,姓名B,性别C,年龄D)n课程(课程号E,课程名F,学分G,周学时H)n考试(学号,课程号,成绩I)o该分解达到哪个级别?是否保证2个不变?(依赖分析略)o3NF,也到达了BCNF
41、,保持了函数依赖和无损联接。第75页,共107页,编辑于2022年,星期六三、数据库技术发展趋势o教材1.5节o面临挑战:环境变化;数据类型变化;数据来源变化;数据管理要求变化o发展特点:数据模型发展;与其他相关技术结合;面向领域的设计o发展趋势:信息集成;移动数据管理;网格数据管理;传感器数据库;DBMS的自适应性管理。第76页,共107页,编辑于2022年,星期六16周内容o数据库设计系统讨论o全书总结o课程应该提交材料:实验o考试的基本内容第77页,共107页,编辑于2022年,星期六关于模式分解o码对于关系模式的分析和分解具有重要意义和作用o讨论一个关系模式级别时,首先确定关系模式中所
42、有候选码,然后区分主属性和非主属性,通过分析属性与码之间的依赖关系,判定关系模式的级别o理论和设计之间关系。判定无损联接、函数保持的算法,最小依赖集对分解的作用。第78页,共107页,编辑于2022年,星期六关系模式分解概念及举例o关系模式R(U,F)的一个分解是若干个关系模式的集合,其中,nU=Ui,n对每个i,j,Ui不是Uj子集nFi是F在Ui上投影,即Fi=XYF+XY是Ui子集o关系模式的一个分解必须从2个方面衡正确性,即分解与原关系模式R之间是否具有“等价性”。数据等价,即是否表示同样的数据;函数依赖等价,即是否保持了相同函数依赖。o2个判定:无损连接性判定和函数依赖保持判定。第7
43、9页,共107页,编辑于2022年,星期六无损联接的判定o算法见上周ppto举例设R(B,O,I,S,Q,D),F=SD,IB,ISQ,BO,R的一个分解SD,IB,ISQ,BO,这个分解是无损联接性么?第80页,共107页,编辑于2022年,星期六解法o首先根据模式分解的定义,属性是否变化,是否有子集,即包含o判断无损连接的算法o黑板演算o演算的含义解释第81页,共107页,编辑于2022年,星期六总结o了解数据库应用系统设计中目前的重要性,体现在毕业设计时,信息管理系统类的毕业设计较多,数据库设计是基础o数据库设计是针对一个给定的应用环境,根据用户的需求,构建一个性能良好的数据模式,建立数
44、据库及其应用系统,使之能够有效存储数据,满足各种用户的信息要求和处理要求。第82页,共107页,编辑于2022年,星期六设计人员应该具备的素质o计算机学科的基本素质,基础知识和程序设计基础o数据库理论知识。如三个世界2个模型,数据库的三级模式2级映像,数据库历史发展,关系模式,函数依赖/规范化理论,数据库管理系统的具体特征等o软件工程的思想和技术o应用领域的知识第83页,共107页,编辑于2022年,星期六数据库设计内容o数据库结构设计o数据库行为设计第84页,共107页,编辑于2022年,星期六数据库设计方法o直观方法凑,适应简单的,数据库开发人员厉害的o规范设计方法明确阶段,各个阶段任务,
45、与软件工程结合,由外向内,由上到下,逐步求精n基于ER模型设计方法n基于3NF的设计方法(是指需求分析阶段收集了所有的属性及属性间关系,将他们组织在一个单一的关系模式中,然后再分析模式中的不符合3NF的约束,将其分解投影,规范成若干个3NF)n基于视图的设计方法为每个应用建立自己视图,然后再将这些视图汇总合并成整个数据库的概念模式。o计算机辅助设计方法PD,designo自动化设计方法第85页,共107页,编辑于2022年,星期六基本步骤从分体现计算机学科的3+1学科形态o需求分析就是抽象的过程o概念设计理论指导下的设计o逻辑设计o物理设计o数据库实施o运行与维护第86页,共107页,编辑于2
46、022年,星期六充分理解以上各个阶段o工作内容o技术描述手段o重要图表o工作方法o如需求阶段主要技术工具:信息处理的数据流图,数据字典;概念设计阶段ER图之类的,逻辑设计阶段关系模式设计;物理设计阶段存储方法、访问方法、系统配置之类的;实施阶段数据库装入,应用程序编制和运行,运行维护的安全性,转储,改进等。第87页,共107页,编辑于2022年,星期六数据库管理系统o从数据库发展历史,认识数据库管理系统的基本功能,与操作系统关系oDBMS主要功能:数据定义、数据操纵、数据库运行与管理、数据存储管理、数据库保护、数据库与维护o数据库系统定义/主要组成、功能o数据库体系结构三级模式二级映像,数据独
47、立性o数据模型三要素第88页,共107页,编辑于2022年,星期六关系数据库o关系模型o关系操作:关系代数、元组演算、域演算o关系完整性约束o关系模式概念模式、内模式和外模式o关系概念模式是对每个关系的说明,包括关系名、属性名、属性取值范围的说明,关系之间的联系是通过连接属性实现,不必专门指出。o关系的内模式就是基本表o关系的外模式是概念模式的子集,是用户与计算机接口,就是视图。第89页,共107页,编辑于2022年,星期六关系代数o8种运算,5个基本运算o根据语义会写出关系运算。第90页,共107页,编辑于2022年,星期六SQL语言o熟练掌握o3大功能定义/操纵/控制o9个关键动词:cre
48、ate/alter/drop/select/update/insert/delete/grant/revoke第91页,共107页,编辑于2022年,星期六数据库保护o完整性约束o事务与并发调度o封锁机制o故障与回复方法第92页,共107页,编辑于2022年,星期六实验要求o17周前统一提交实验报告o实事求是写,只要曾经努力了,有进步就好o实验报告一方面体现“技术”,自己做的,另外一方面就是文字功夫,希望不要忽略,即严肃的撰写规范的报告,是课程设计,毕业论文,直至专业学科进一步发展的初步训练o是文字功夫,是读者看着文字理解你的意思的功夫,希望珍惜。第93页,共107页,编辑于2022年,星期六
49、设计样例o思路上:需求分析概念设计逻辑设计数据库装入应用程序设计/视图设计等o前一个是后一个输入,从数学角度讲,要理解前一个和后一个的内容,再理解变换手段,即论域/值域/映射关系。o上一步没做好,很难做好下一步,或者,严肃点讲,是不可能。当然经验不可少o如,调研经过抽象形成需求报告,概念设计就是在需求报告中抽取实体及属性,以及他们之间关系,并表示出来,就这个道理,不能多也不能少,当然可以反馈回去,进一步修正。o学好理论,是理性的实践,只有理论的参与,我们才能做的更好。第94页,共107页,编辑于2022年,星期六招聘系统开发数据库设计o需求(略)o概念设计从需求中导出来的,不是另外单独开始的。
50、第95页,共107页,编辑于2022年,星期六Visio的图第96页,共107页,编辑于2022年,星期六续o从CDM到PDM,即从概念设计到逻辑设计,获得的SQl server 2000的关系结构为第97页,共107页,编辑于2022年,星期六关系模式优化o是否达到3NF,每个关系模式是否有部分依赖、传递依赖第98页,共107页,编辑于2022年,星期六生成的表截图第99页,共107页,编辑于2022年,星期六医院管理系统oER图第100页,共107页,编辑于2022年,星期六物理模型第101页,共107页,编辑于2022年,星期六超市关系系统o需求描述o超市有若干个仓库,若干了连锁商店,供