数据库系统基础教程

上传人:每**** 文档编号:60394800 上传时间:2022-03-07 格式:PPT 页数:509 大小:6.28MB
返回 下载 相关 举报
数据库系统基础教程_第1页
第1页 / 共509页
数据库系统基础教程_第2页
第2页 / 共509页
数据库系统基础教程_第3页
第3页 / 共509页
点击查看更多>>
资源描述
1第一章第一章 数据库系统的世界数据库系统的世界The Worlds of Database SystemsThe Worlds of Database Systems 数据库系统的发展数据库系统的发展 数据库管理系统的结构数据库管理系统的结构 未来的数据库系统未来的数据库系统221.1 1.1 数据库系统的发展数据库系统的发展c c一、术语一、术语1.1.数据库数据库是长期储存在计算机内是长期储存在计算机内的、有组织的、可共享的、有组织的、可共享的数据的集合。的数据的集合。332.2.数据库管理系统数据库管理系统4DBMS - DataBase Management SystemDBMS - DataBase Management System是 处 理 数 据 库 访 问 的 软 件 。是 处 理 数 据 库 访 问 的 软 件 。提 供 数 据 库 的 用 户 接 口 。提 供 数 据 库 的 用 户 接 口 。DBMSDBMS的目的:的目的:提供一个可以方便地、有效地存取数据提供一个可以方便地、有效地存取数据库信息的环境库信息的环境55 3. 3.数据库系统数据库系统是指在计算机系统中引入数据库后的系统是指在计算机系统中引入数据库后的系统66数据库数据库最终用户最终用户应用系统应用系统应用开发工具应用开发工具DBMS操作系统操作系统数据库管理员数据库管理员DBA数据库系统构成数据库系统构成应用程序员应用程序员77z保存信息的两种不同方法:保存信息的两种不同方法:永久性的系统文件、数据库系统。永久性的系统文件、数据库系统。z文件方式的问题:文件方式的问题:y数据的冗余和不一致数据的冗余和不一致y数据访问困难数据访问困难y数据孤立数据孤立y完整性问题完整性问题y原子性问题原子性问题y并发访问异常并发访问异常y安全性问题安全性问题二、文件系统与数据库系统二、文件系统与数据库系统88z数据库方法能较好地解决以上的问题数据库方法能较好地解决以上的问题y数据的独立性数据的独立性y有效地访问数据有效地访问数据y减少应用程序的开发时间减少应用程序的开发时间y数据的一致性和安全性数据的一致性和安全性y统一的数据管理统一的数据管理y并发的数据访问并发的数据访问三、为什么用数据库三、为什么用数据库99z几种模型:几种模型:y基于树的层次模型基于树的层次模型y基于图的网状模型基于图的网状模型物理相关、无高级查询语言物理相关、无高级查询语言y基于表的关系模型基于表的关系模型物理无关、支持高级查询语言,物理无关、支持高级查询语言,y基于对象的面向对象模型基于对象的面向对象模型OOOOOROR四、数据库模型的发展四、数据库模型的发展定长记录定长记录1010关系数据库系统关系数据库系统accountNOBalanceType123451000.00Savings678902846.92Checking属性属性元组元组1111z关查询语言关查询语言ySQLSQL语言语言SELECT balanceSELECT balanceFROM AccountsFROM AccountsWHERE accountNO = 67890;WHERE accountNO = 67890;关系数据库系统关系数据库系统1212zDBMSDBMS的组成的组成y数据、元数据数据、元数据y存储管理程序存储管理程序y事务管理程序事务管理程序y查询处理程序查询处理程序1.2 1.2 数据库管理系统的结构数据库管理系统的结构数据数据元数据元数据存储存储管理程序管理程序查询查询处理程序处理程序事务事务管理程序管理程序模式更新模式更新更新更新查询查询1313z数据、元数据数据、元数据y关于数据结构的信息(关于数据的数据)关于数据结构的信息(关于数据的数据)y索引(索引(INDEXINDEX)DBMSDBMS的组成的组成1414z存储管理程序存储管理程序y文件管理程序文件管理程序y缓冲区管理查程序缓冲区管理查程序DBMSDBMS的组成的组成1515z查询处理程序查询处理程序y查询优化查询优化磁盘访问,是查询的主要代价;磁盘访问,是查询的主要代价;索引是查询优化的利器索引是查询优化的利器DBMSDBMS的组成的组成1616z事务管理程序事务管理程序y事务:是用户定义的一个数据库操作序列事务:是用户定义的一个数据库操作序列y事务的四个特性事务的四个特性原子性原子性A A一致性一致性C C隔离性隔离性I I持久性持久性D DDBMSDBMS的组成的组成1717z客户客户- -服务器程序体系结构服务器程序体系结构z浏览器浏览器- -服务器体系结构服务器体系结构DBMSDBMS的组成的组成1818z客户客户- -服务器程序体系结构服务器程序体系结构z浏览器浏览器- -服务器体系结构服务器体系结构1.3 1.3 未来的数据库系统未来的数据库系统192020数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现2121数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析y用户关心什么用户关心什么y用户要什么结果用户要什么结果z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现2222数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构y存什么存什么y关系(联系)如何关系(联系)如何yODLODL或或E/RE/R图,是各种数据模型的共同基础图,是各种数据模型的共同基础z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现2323数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构y用什么数据模型用什么数据模型y数据库的模式(数据库的模式(database schemadatabase schema)y用户子模式用户子模式z设计物理结构设计物理结构z物理实现物理实现2424数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构y数据怎么存数据怎么存y根据根据DBMSDBMS产品、环境特点产品、环境特点z物理实现物理实现2525数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现y运行运行DDLDDLy装入测试数据装入测试数据y应用程序应用程序2626数据库的设计步骤数据库的设计步骤想法想法需求需求ODLODLE / RE / R关系关系RDBMSOODBMS27272.1 ODL2.1 ODLz对象定义语言对象定义语言y Object Definition LanguageObject Definition Languagey以面向对象的观点、方法,说明数据库的概以面向对象的观点、方法,说明数据库的概念结构念结构y可方便地直接转换成可方便地直接转换成 OODBMS OODBMS 的说明的说明y经过努力,可以转换成经过努力,可以转换成 RDBMS RDBMS 的说明的说明2828面向对象的设计面向对象的设计z对象标识对象标识 OID OIDy对象与对象的区别对象与对象的区别z类类y具有相同特性的对象归为一类具有相同特性的对象归为一类y对象的归并必须有意义对象的归并必须有意义y属于同一类的对象其特性必须相同属于同一类的对象其特性必须相同2929面向对象的设计面向对象的设计z对象的三个特性对象的三个特性y属性:特性属性:特性y联系:引用联系:引用y方法:函数方法:函数z接口说明接口说明interface interface 3030z属性属性y对象某方面的特征,属性就是数据对象某方面的特征,属性就是数据y只由基本数据类型构成只由基本数据类型构成y属性的类型,不能是类、也不能从类中构造属性的类型,不能是类、也不能从类中构造Interface Movie /Movie Class 的ODL说明attribute stringtitle;attribute integer year;attribute integer length;attribute enum Film color, blackAndWhite filmType;3131Interface Star Interface Star attribute stringattribute stringname;name;attribute Structattribute StructAddrAddr string street,string city string street,string city address;address;记录结构类型记录结构类型3232z联系联系y对象的引用对象的引用y对象的关联对象的关联y对象集合的引用(对象集合的引用(1:N1:N)Relationship Set stars;Relationship Set stars;y单一对象集合的引用(单一对象集合的引用(1:11:1)Relationship Star starOf;Relationship Star starOf;3333z反向联系反向联系yODLODL要求显式表示存在的反向联系要求显式表示存在的反向联系Interface Movie Interface Movie /Movie Class /Movie Class 的的ODLODL说明说明attribute stringattribute stringtitle;title;attribute integerattribute integer year;year;attribute integerattribute integer length;length;attribute enum Film color, attribute enum Film color, blackAndWhite filmType;blackAndWhite filmType;relationship Set starsrelationship Set stars inverse Star : starredIn; /Star inverse Star : starredIn; /Star与与MovieMovie的联系的联系;3434z联系的多重性联系的多重性yN:NN:Nx在联系中,每个在联系中,每个C C都和都和D D的集合有关,而在的集合有关,而在反向联系中,每个反向联系中,每个D D都和都和C C的集合有关的集合有关yN:1N:1x在联系中,每个在联系中,每个C C都和唯一的都和唯一的D D有关,而在有关,而在反向联系中,每个反向联系中,每个D D都和都和C C的集合有关的集合有关y1:1 1:1 x在联系中,每个在联系中,每个C C都和唯一的都和唯一的D D有关,而在有关,而在反向联系中,每个反向联系中,每个D D都和唯一的都和唯一的C C有关有关3535zInterface MoiveInterface Moiverelationship Set starsrelationship Set starsinverse Star : staredIn;inverse Star : staredIn;relationship Studio ownedByrelationship Studio ownedByinverse Studio : owns;inverse Studio : owns;zInterface StarInterface Starrelationship Set staredInrelationship Set staredIninverse Moive : stars; inverse Moive : stars; ;zInterface StudioInterface Studiorelationship Set ownsrelationship Set ownsinverse Moive : ownedBy; inverse Moive : ownedBy; ; ; NNN13636zODLODL中的类型中的类型y基本类型基本类型x原子类型原子类型x接口类型接口类型y结构类型,可由以下类型组合而成结构类型,可由以下类型组合而成x集合集合无重复,次序无关无重复,次序无关x包包可重复,次序无关可重复,次序无关x列表列表可重复,次序相关可重复,次序相关x数组数组x结构结构37372.2 2.2 实体联系图(实体联系图(E/RE/R)z用图形的方法,描述实体及实体间的联系用图形的方法,描述实体及实体间的联系z世界由一组称作实体的基本对象及这些对象间世界由一组称作实体的基本对象及这些对象间的联系组成的联系组成z元素元素y实体(实体(EntityEntity)x客观存在并可相互区别的事件或物体客观存在并可相互区别的事件或物体x对应于对应于ODLODL中的对象中的对象y实体集(实体集(Entity SetEntity Set)x同类(具有相同类型、相同性质)实体的同类(具有相同类型、相同性质)实体的集合集合x对应于对应于ODLODL中的类中的类x用矩形表示用矩形表示38382.2 2.2 实体联系图(实体联系图(E/RE/R)z元素元素y属性(属性(AttributeAttribute)x实体所具有的某一特性实体所具有的某一特性x用与实体集相连的椭圆表示用与实体集相连的椭圆表示y联系(联系(RelationshipRelationship)x实体集之间的关联实体集之间的关联x可涉及多个实体集可涉及多个实体集x可表示双向的联系可表示双向的联系x用与相应的实体集相连的菱形表示用与相应的实体集相连的菱形表示3939MoviesMoviesStarsStarsStars-inStars-inlenghtlenghtfilmTypefilmTypetitletitleyearyearnamenameaddressaddress4040zE/RE/R联系的多重性联系的多重性yN N与与1 1的表示的表示MoviesMoviesStarsStarsStars-inStars-inStudiosStudiosPresidentsPresidentsRunsRunsMoviesMoviesStudioStudios sOwnsOwns4141z联系的多向性联系的多向性yE/RE/R图能方便地描述两个以上实体集间的联图能方便地描述两个以上实体集间的联系系StarsMoviesContractsStudios一个制片公司与一位特定的影星签约来演一部特定的电影一个制片公司与一位特定的影星签约来演一部特定的电影 4242z联系中的角色联系中的角色y实体集在联系中的作用实体集在联系中的作用y参与联系的实体集互异参与联系的实体集互异x只标注联系名只标注联系名y同一实体集在一个联系中多次出现同一实体集在一个联系中多次出现x标注联系名及角色名标注联系名及角色名Sequel-ofMoviesOriginalSequelStarsMoviesContractsStudiosStudio of starProducing studio4343z联系中的属性联系中的属性y联系中可以包含属性联系中可以包含属性x由联系而产生的属性由联系而产生的属性y可为由联系产生的属性建立实体集可为由联系产生的属性建立实体集StarsStarsMovieMovies sContractsContractsStudiStudiosossalarysalary4444z将多向联系转换成二元联系将多向联系转换成二元联系y新增连接实体集新增连接实体集y引入连接实体集至原实体集的多对一的联系引入连接实体集至原实体集的多对一的联系45452.3 2.3 设计原则设计原则z真实性真实性y设计应当忠于规范设计应当忠于规范y存什么存什么z避免冗余避免冗余y任何事物只表达一次任何事物只表达一次z避免引入过多的元素避免引入过多的元素z选择合适的元素类型选择合适的元素类型y属性?属性?y类类/ /实体集?实体集?y联系集?联系集?46462.4 2.4 子类子类z特殊化与概括特殊化与概括z子类与超类子类与超类z属性的继承属性的继承4747zODLODL中的子类中的子类y子类继承其超类的所有特性子类继承其超类的所有特性x属性属性x联系联系Interface Cartoon : Movie Interface Cartoon : Movie relationship set voices;relationship set voices; 4848zODLODL中的多重继承中的多重继承y类的层次类的层次y一个类可以有多个超类一个类可以有多个超类Interface MurderMystery : MovieInterface MurderMystery : Movieattribute string weapon;attribute string weapon; Interface Cartoon-MurderMystery : Interface Cartoon-MurderMystery : Cartoon,MurderMystery Cartoon,MurderMystery 4949zE/RE/R中的子类中的子类yIsaIsazE/RE/R中的继承中的继承50502.5 2.5 对约束的建模对约束的建模z建模包含对现实世界的对象及联系的描述,也建模包含对现实世界的对象及联系的描述,也包含对它们的一些约束包含对它们的一些约束y键码键码y单值约束单值约束y参照完整性约束参照完整性约束y域的约束域的约束y一般约束一般约束5151z键码键码y在类的范围内唯一标识一个对象(或者在实在类的范围内唯一标识一个对象(或者在实体集的范围内唯一标识一个实体)的属性或体集的范围内唯一标识一个实体)的属性或属性集属性集y一个类中的两个对象(或一个实体集中的两一个类中的两个对象(或一个实体集中的两个实体)在构成键码的属性集上取值不能相个实体)在构成键码的属性集上取值不能相同同yODLODL中键码的表示中键码的表示interface Movie interface Movie ( key (title,year) ) ( key (title,year) ) 5252z超码超码y一个或多个属性的集合,能在一个实体集中一个或多个属性的集合,能在一个实体集中唯一地标识一个实体唯一地标识一个实体y一个类(或实体集)中可能有多个超码一个类(或实体集)中可能有多个超码z候选码候选码y其任意真子集都不为超码的超码其任意真子集都不为超码的超码y一个类(或实体集)中可能有多个候选码一个类(或实体集)中可能有多个候选码z主码主码y从候选码中选取的一个,一个类(实体集)从候选码中选取的一个,一个类(实体集)中只有一个主码中只有一个主码yE / RE / R图中只能表示主码:主码属性名加上图中只能表示主码:主码属性名加上下划线下划线5353z单值约束单值约束y要求某个角色的值是唯一的,如键码要求某个角色的值是唯一的,如键码y当一个属性为单值时当一个属性为单值时x可以要求该属性值存在(可以要求该属性值存在(not nullnot null)x可以允许该属性值任选(可以允许该属性值任选(nullnull)y构成键码的属性,必须有值存在(构成键码的属性,必须有值存在(not nullnot null)5454z参照完整性约束参照完整性约束y要求由某个对象引用的值在数据库中确实存要求由某个对象引用的值在数据库中确实存在在y参照与被参照、引用与被引用参照与被参照、引用与被引用y参照完整性约束的操作(各产品不同)参照完整性约束的操作(各产品不同)x禁止删除被引用的对象禁止删除被引用的对象x级联删除级联删除 / / 修改修改yE/RE/R图中参照完整性的表示图中参照完整性的表示MoviesStudiosOwns55552.6 2.6 弱实体集弱实体集z弱实体集的属性不足以形成主码弱实体集的属性不足以形成主码z有主码的实体集称为强实体集有主码的实体集称为强实体集z弱实体集只有作为一对多联系的一部分(多)弱实体集只有作为一对多联系的一部分(多)才有意义才有意义z弱实体集与其拥有者之间的联系是标识性联系弱实体集与其拥有者之间的联系是标识性联系CrewsUnit-ofStudiosnumbernameaddr56562.7 2.7 关于联系集关于联系集z联系集的成份联系集的成份y参加联系的实体集的主码参加联系的实体集的主码y联系集的属性联系集的属性z联系中属性的决策联系中属性的决策( (二元联系二元联系) )y1:1 1:1 联系集的属性:放到任意一端联系集的属性:放到任意一端y1:N 1:N 联系集的属性:放到联系集的属性:放到 N N 端端yN:MN:M联系集的属性:只能留在联系集联系集的属性:只能留在联系集中中5757z联系集的取舍(二元联系)联系集的取舍(二元联系)y1:11:1联系:将一端的主码作为另一端的属性联系:将一端的主码作为另一端的属性y1:N1:N联系:将一端的主码作为联系:将一端的主码作为 N N 端的属性端的属性yN:MN:M联系:必须保留联系集联系:必须保留联系集z联系集的键码(二元联系)联系集的键码(二元联系)y1 1:1:1联系:任意一端的主码联系:任意一端的主码y1:N1:N联系:联系:N N端的主码端的主码yN:MN:M联系:参加联系的所有实体集的主码联系:参加联系的所有实体集的主码5858zODLODL、E/RE/R建模建模y关心:存什么数据、关系如何关心:存什么数据、关系如何y不关心:用什么数学模型、不关心:用什么数学模型、DBMSDBMS产品产品y透过透过E/RE/R图,便于与用户交流图,便于与用户交流5959z作业作业y思考所有带思考所有带* *的练习,并上网查阅解答的练习,并上网查阅解答y练习练习2.1.7 / 2.2.8 / 2.3.2 / 2.5.3 / 2.1.7 / 2.2.8 / 2.3.2 / 2.5.3 / 2.5.4 /2.6.4(a)2.5.4 /2.6.4(a)606161zODLODL、E/RE/R到关系模型的转换到关系模型的转换z关系模型的设计理论关系模型的设计理论62623.1 3.1 关系模型的基本概念关系模型的基本概念z逻辑数据模型逻辑数据模型y是用户从数据库所看到的数据模型是用户从数据库所看到的数据模型y与与DBMSDBMS有关有关y层次、网状、关系、面向对象层次、网状、关系、面向对象6363z关系数据模型关系数据模型y数据结构数据结构x两维的扁平表两维的扁平表y数据操作数据操作x关系代数关系代数x关系演算关系演算y数据的完整性数据的完整性x实体完整性实体完整性x参照完整性参照完整性x用户定义的完整性用户定义的完整性6464z现实世界的实体以及实体间的各种联系均用现实世界的实体以及实体间的各种联系均用关系表示关系表示z关系数据库系统是建立在关系模型上的数据关系数据库系统是建立在关系模型上的数据库系统库系统z关系数据库是表的集合关系数据库是表的集合6565z模型和模式模型和模式y数据模型是描述数据的手段数据模型是描述数据的手段y数据模式是用给定的数据模型对具体数据数据模式是用给定的数据模型对具体数据的描述的描述z属性属性z元组元组z域域y型型y值值z联系联系y关系的联系是通过关联属性的值连接的关系的联系是通过关联属性的值连接的6666SnoSnoSnameSname SsexSsexSageSagesdeptsdept9500195001张三张三男男2525CSCS9500295002李四李四女女2424CSCS9610196101王五王五男男2323MAMA9600196001赵六赵六男男2323CSCS关系关系( 表表 )属性属性(列、字段列、字段)元组元组(行、记录行、记录)域域(string,男,女男,女)Student ( sno, sname, ssex, sage, sdept )Student ( sno, sname, ssex, sage, sdept )6767z关系实例关系实例y关系关系 实体集、类实体集、类y关系的实例关系的实例 元组的集合元组的集合y元组元组 实体、对象实体、对象y数据库实例数据库实例 给定时刻数据库中数据的给定时刻数据库中数据的一个快照一个快照68683.2 3.2 从从ODLODL设计到关系设计设计到关系设计zODLODL设计是概念设计的产物设计是概念设计的产物 ( Using OO ) ( Using OO )zODLODL描述描述 关系模式关系模式 实现实现6969zODLODL属性属性 关系属性关系属性y原子属性原子属性x类类 关系关系x属性属性 属性属性y非原子属性(复杂数据类型)非原子属性(复杂数据类型)x必须转换成原子属性必须转换成原子属性x记录结构记录结构结构的每个结构的每个itemitem对应一个属性对应一个属性x多值集合多值集合针对每个值建立一个元组针对每个值建立一个元组会产生冗余会产生冗余 需规范化需规范化7070zODLODL属性属性 关系属性关系属性 (续)(续)y其他类型属性其他类型属性x(包、数组、列表)(包、数组、列表)针对每个元素建立一个元组针对每个元素建立一个元组增加一个记数属性,表示包的成员号增加一个记数属性,表示包的成员号x定长数组定长数组扩展为多个属性扩展为多个属性7171zODLODL联系联系 关系描述关系描述y单值联系单值联系x联系的类型为一个类联系的类型为一个类x增加一个(组)属性,存放相关类的增加一个(组)属性,存放相关类的键码属性(组)键码属性(组)x将类之间的联系将类之间的联系 关系之间的联系关系之间的联系7272zODLODL联系联系 关系描述(续)关系描述(续)y多值联系多值联系x联系的类型为某个类的集合类型联系的类型为某个类的集合类型x1 : N1 : N、N : MN : Mx增加一个键码属性增加一个键码属性x为集合的每个成员建立一个元组为集合的每个成员建立一个元组x其他原始属性重复多次(与集合成员其他原始属性重复多次(与集合成员的个数相等)的个数相等)x导致大量的冗余,需要规范化导致大量的冗余,需要规范化7373z键码是必需的键码是必需的y选择合适的属性(组)作为键码选择合适的属性(组)作为键码x学号、工号、身份证号学号、工号、身份证号.x增加计数属性增加计数属性z联系与反向联系联系与反向联系y在联系的双方均有联系的描述在联系的双方均有联系的描述 冗余冗余yODLODL:双向描述:双向描述yE/RE/R:相关的键码值进行连接:相关的键码值进行连接74743.3 3.3 从从E/RE/R图到关系的设计图到关系的设计zE/RE/R与与ODLODL描述的差异描述的差异y联系作为独立的概念联系作为独立的概念 联系嵌套在类联系嵌套在类定义中定义中y结构化数据结构化数据 允许使用集合、聚集类允许使用集合、聚集类型型y联系可以有属性联系可以有属性 联系无属性联系无属性zE/R E/R 关系模式关系模式 实现实现7575z实体集到关系的转换实体集到关系的转换y非弱实体集非弱实体集x实体集名实体集名 关系名关系名x属性属性 属性属性y弱实体集弱实体集x为弱实体集建立关系为弱实体集建立关系x属性:弱实体集的属性属性:弱实体集的属性 + + 辅助实体集的键辅助实体集的键码码7676zE/RE/R联系到关系的转换联系到关系的转换y用关系表示联系用关系表示联系x联系名联系名 关系名关系名x属性属性 属性属性 + + 相关实体集的键码属相关实体集的键码属性(集)性(集)y多向联系的转换多向联系的转换x注意,属性的命名注意,属性的命名77773.4 3.4 子类结构到关系的转换子类结构到关系的转换zODLODL中的子类中的子类y一个对象完全属于一个类一个对象完全属于一个类y子类继承其超类的特性子类继承其超类的特性zE/RE/R中的子类中的子类y分层结构通过与分层结构通过与ISAISA联系有关的实体集进联系有关的实体集进行扩展行扩展7878z用关系表示用关系表示ODLODL子类子类y每个子类都有自己的关系每个子类都有自己的关系y包含包含该子类的所有特性该子类的所有特性(含继承特性)(含继承特性)y在一个关系中含有所有属性在一个关系中含有所有属性Movie(title,year,length,filmType,studioName,Movie(title,year,length,filmType,studioName,starName)starName)CartoonCartoon(title,year,length,filmType,studioName,star(title,year,length,filmType,studioName,starName,voice)Name,voice)MurderMysteryMurderMystery(title,year,length,filmType,studioName,star(title,year,length,filmType,studioName,starName,weapon)Name,weapon)Cartoon- MurderMysteryCartoon- MurderMystery(title,year,length,filmType,studioName,star(title,year,length,filmType,studioName,starName,voice, weapon)Name,voice, weapon)7979z在关系模型中表示在关系模型中表示 isa isa 联系联系y子类的信息被分散到上层的几个关系中子类的信息被分散到上层的几个关系中y与与ISAISA联系有关的实体集拥有相同的键码联系有关的实体集拥有相同的键码Movie(title,year,length,filmType)Movie(title,year,length,filmType)Cartoon(title,year)Cartoon(title,year)MurderMystery(title,year, weapon)MurderMystery(title,year, weapon)Voice(title,year,name)Voice(title,year,name)8080z使用使用NULLNULL值合并关系值合并关系y将关系描述成一个将关系描述成一个全集全集y属性:所有可能的属性属性:所有可能的属性y描述:允许描述:允许NullNull值值x层次越高,取层次越高,取NullNull值的属性越多值的属性越多Movie Movie (title,year,length,filmType,studioName,sta(title,year,length,filmType,studioName,starName,voice, weapon)rName,voice, weapon)y只是一种方法而已只是一种方法而已8181z作业作业y思考所有带思考所有带* *的练习,并上网查询解答的练习,并上网查询解答y练习练习3.2.3 / 3.3.1 / 3.4.1 / 3.5.3 / 3.2.3 / 3.3.1 / 3.4.1 / 3.5.3 / 82823.5 3.5 函数依赖函数依赖z数据依赖数据依赖y函数依赖函数依赖y多值依赖多值依赖z数据依赖是针对数据模式,而不是特定的实例数据依赖是针对数据模式,而不是特定的实例8383z函数依赖(函数依赖(FDFD)y属性之间的联系属性之间的联系y假设给定假设给定 X X 属性的值,就知道属性的值,就知道 Y Y的值,那么的值,那么 X X 函数决定函数决定 Y Yy如果如果R R的两个元组在属性的两个元组在属性A A1 1,A,A2 2,A,An n上一致,上一致,则它们在另一个属性则它们在另一个属性B B上也一致,那么上也一致,那么 A A1 1,A,A2 2,A,An n函数决定函数决定B B,记作,记作A A1 1A A2 2AAn nBByif Aif A1 1A A2 2AAn nBB1 1thenthen A A1 1A A2 2AAn nBB2 2A A1 1A A2 2AAn n B B1 1 B B2 2 . B. Bm m A A1 1A A2 2AAn nBBm m8484z关系的键码关系的键码如果一个或多个属性的集合如果一个或多个属性的集合AA1 1A A2 2AAn n 满足如满足如下条件,则该集合为关系下条件,则该集合为关系R R的键码:的键码:1.1.这些属性函数决定该关系的所有其他属性这些属性函数决定该关系的所有其他属性2. A2. A1 1A A2 2AAn n 的任何真子集都不能函数决定的任何真子集都不能函数决定R R的所有其他属性的所有其他属性8585z超键码超键码y包含键码的属性集称为超键码包含键码的属性集称为超键码8686z寻找关系的键码(来自寻找关系的键码(来自E/RE/R)y来自实体集的关系的键码就是该实体集的键来自实体集的关系的键码就是该实体集的键码属性码属性y对于二元联系对于二元联系R R:xN N:M M,相关两个实体的键码都是,相关两个实体的键码都是R R的键码的键码属性属性xN N:1 1,多端实体集的键码是,多端实体集的键码是R R的加码属性的加码属性x1 1:1 1,任意一端实体集的键码是,任意一端实体集的键码是R R的键码的键码y对于多向联系对于多向联系R R:x如果多向联系如果多向联系R R有一个箭头指向实体集有一个箭头指向实体集E E,则响应的关系中,除了则响应的关系中,除了E E的键码以外,至少的键码以外,至少还存在一个键码。还存在一个键码。8787z寻找关系的键码(来自寻找关系的键码(来自ODLODL)y来自来自ODLODL的关系的键码不一定就是该类的键码的关系的键码不一定就是该类的键码属性属性y对于单值联系对于单值联系R R:x类类C C有一个指向类有一个指向类D D的单值联系,的单值联系,C C的关系的关系中包含中包含D D的键码。的键码。C C的键码仍是相应关系的的键码仍是相应关系的键码键码y对于多值联系对于多值联系R R:x被引用类的键码加入到引用类的键码组合被引用类的键码加入到引用类的键码组合称为键码称为键码88883.6 3.6 函数依赖规则函数依赖规则z分解规则分解规则A A1 1A A2 2AAn n B B1 1 B B2 2 . B. Bm m等价于等价于A A1 1A A2 2AAn n B Bi i z合并规则合并规则A A1 1A A2 2AAn n B Bi i等价于等价于A A1 1A A2 2AAn n B B1 1 B B2 2 . B. Bm m8989z平凡的函数依赖平凡的函数依赖y如果对于函数依赖如果对于函数依赖 A A1 1A A2 2AAn n B B,B B是是A A中的中的一个,则该函数依赖就是平凡的函数依赖一个,则该函数依赖就是平凡的函数依赖y平凡依赖是永恒的平凡依赖是永恒的ytitle,year titletitle,year titlez非平凡非平凡y如果如果B B中至少有一个属性不在中至少有一个属性不在A A中中ytitle,year year,lengthtitle,year year,lengthz完全非平凡完全非平凡y如果如果B B中没有一个属性在中没有一个属性在A A中中ytitle,year lengthtitle,year length9090z计算属性的闭包计算属性的闭包y闭包闭包xF F的闭包是指的闭包是指F F逻辑蕴涵的所有函数依赖的逻辑蕴涵的所有函数依赖的集合,记作集合,记作F F+ +y闭包的意义闭包的意义x检验给定的函数依赖是否蕴涵于某个函数检验给定的函数依赖是否蕴涵于某个函数依赖集依赖集S Sx从给定的函数依赖,可以推导出蕴涵的函从给定的函数依赖,可以推导出蕴涵的函数依赖数依赖y求闭包求闭包x例:对关系例:对关系R R(A,B,C,D,E,FA,B,C,D,E,F), ,给定函数给定函数依赖依赖ABC,BCAD,DE,CFB,ABC,BCAD,DE,CFB,求求 A A,BB+ +9191z关系的基与最小基关系的基与最小基y任何一个能从中导出关系的所有依赖的给定任何一个能从中导出关系的所有依赖的给定依赖集,称为该关系的一个基依赖集,称为该关系的一个基y如果一个基的任何真子集都不能推导出该关如果一个基的任何真子集都不能推导出该关系的依赖全集,则称此基为最小基系的依赖全集,则称此基为最小基y求函数依赖的最小基求函数依赖的最小基x例:对关系例:对关系R R(A,B,C,DA,B,C,D),有),有ABC,BC,A B,AB C,AC D,ABC,BC,A B,AB C,AC D,求最小求最小函数依赖集函数依赖集92923.7 3.7 关系数据库模式设计关系数据库模式设计z什么是好的数据库设计什么是好的数据库设计y体现客观世界的信息体现客观世界的信息y无过度的冗余无过度的冗余y无插入异常无插入异常y无更新复杂无更新复杂y无删除异常无删除异常9393titleyearlengthfilmTypestudioNamestarNameStar Wars1977124colorFoxCarrie FisherStar Wars1977124colorFoxMark HamillStar Wars1977124colorFoxHarrison FordMighty Ducks1991104colorDisneyEmilio EstevezWaynes World199195colorParamountDana CarveyWaynes World199295colorParamountMike Meyers冗余冗余!更新复杂更新复杂! !删除异常删除异常! !9494z异常的原因异常的原因y数据依赖的约束数据依赖的约束z解决方法解决方法y数据库设计的规范化数据库设计的规范化分解分解 9595z范式范式(Normal Forms)(Normal Forms)y规范化规范化y一个关系满足某个范式所规定的一系列一个关系满足某个范式所规定的一系列条件时条件时, ,它就属于该范式它就属于该范式y可以用规范化要求来设计数据库可以用规范化要求来设计数据库y也可以用来验证设计结果的合理性,用也可以用来验证设计结果的合理性,用其指导优化过程其指导优化过程z1NF2NF3NFBCNF4NF1NF2NF3NFBCNF4NF9696z第一范式第一范式(1NF)(1NF)y当且仅当一个关系当且仅当一个关系R R中,每一个元组的每中,每一个元组的每一个属性只含有一个值时,该关系属于第一个属性只含有一个值时,该关系属于第一范式。一范式。y要求属性是原子的要求属性是原子的9797z第二范式第二范式(2NF)(2NF)y对于关系对于关系R R,若,若R1NFR1NF,且每一个非主属,且每一个非主属性完全函数依赖于码,则性完全函数依赖于码,则R2NFR2NF。y不能部分依赖于码不能部分依赖于码sc(sc(snosno,sname,sname,cnocno,grade),grade)sno,cnogradesno,cnogradesnosnamesnosnamesnocnogradesname完全依赖完全依赖非完全依赖非完全依赖9898z第三范式第三范式(3NF)(3NF)y对于关系对于关系R R,若,若R2NFR2NF,且每个非主属性,且每个非主属性都不传递依赖于码,则都不传递依赖于码,则R3NFR3NF。y主属性可以传递依赖于码主属性可以传递依赖于码student(student(snosno,sname,sdept,dept_manager),sname,sdept,dept_manager)snosname,sdept snosname,sdept sdeptdept_managersdeptdept_manager传递依赖:传递依赖:snodept_managersnodept_managersnosdeptsnamedept_manager9999zBoyce/CoddBoyce/Codd范式范式(BCNF)(BCNF)y对于关系对于关系R R,若,若R1NFR1NF,且所有非平凡的函数,且所有非平凡的函数依赖,其决定因素是候选码,则依赖,其决定因素是候选码,则RBCNFRBCNF。sct(s,c,t)sct(s,c,t)/学生,课程,教师学生,课程,教师tctc/每位教师只上一门课每位教师只上一门课(s,c)(s,c)t t (s,t)(s,t)cc/每门课有若干位教师每门课有若干位教师sctstcsct3NF,sctBCNF100100z最高范式最高范式yBCNFBCNF是基于函数依赖的最高范式是基于函数依赖的最高范式y但不是数据库模式设计的最高范式但不是数据库模式设计的最高范式101101z范式优化范式优化y分解分解xAA1 1,A,A2 2,A,An n = = BB1 1,B,B2 2,B,Bn nCC1 1,C,C2 2,C,Cn n y分解的要求分解的要求x无损连接无损连接BCBBCB或或BCCBCCx保持依赖保持依赖x范式要求范式要求BC C CF FB BF FA AF F102102z分解到高层范式(基于分解到高层范式(基于FDFD)y 找出一个不符合范式要求的找出一个不符合范式要求的FDFD(XYXY),并),并使其右端的属性尽可能地多(求出使其右端的属性尽可能地多(求出X X+ +)y 创建新的模式,包含上述创建新的模式,包含上述FDFD的所有(左右)的所有(左右)属性(属性(X X+ +的所有属性)的所有属性)y 创建另一模式,包含前述创建另一模式,包含前述FDFD中的决定因素及中的决定因素及剩余的所有属性剩余的所有属性(U-X(U-X+ +)X)X)1.1. 反复反复1313,直至符合范式要求,直至符合范式要求1031033.8 3.8 多值依赖多值依赖zBCNFBCNFy仍有异常仍有异常namestreetcitytitleyearC.Fisher123 maple St.HollywoodStar Wars1977C.Fisher5 Locust Ln.MailbuStar Wars1977C.Fisher123 maple St.HollywoodEmpire Strikes Back1980C.Fisher5 Locust Ln.MailbuEmpire Strikes Back1980C.Fisher123 maple St.HollywoodReturn of the Jedi1983C.Fisher5 Locust Ln.MailbuReturn of the Jedi1983104104z多值依赖(多值依赖(MVDMVD) 按按P.110P.110的定义的定义XYZta1aiai+1ajaj+1anua1aibi+1bjbj+1bnva1aiai+1ajbj+1bnwa1aibi+1bjaj+1an105105z多值依赖(多值依赖(MVDMVD)y设设R(U)R(U)是属性集是属性集U U上的一个关系。上的一个关系。X X、Y Y、Z Z是是U U的子集,且的子集,且Z=U-X-YZ=U-X-Y。关系。关系R(U)R(U)中多值依赖中多值依赖XYXY成立,当且仅当对成立,当且仅当对R(U)R(U)的任一元组的任一元组r r,给定一对给定一对(x,z)(x,z)值,有一组值,有一组y y的值,这组值仅的值,这组值仅仅取决于仅取决于x x值,而与值,而与z z值无关。值无关。y对给定对给定X X的值,则的值,则Y Y的取值与的取值与Z Z的取值无关的取值无关106106z给定一对给定一对(x,z)(x,z)值,有一组值,有一组y y的值的值XYZta1aiai+1ajaj+1anwa1aibi+1bjaj+1anua1aibi+1bjbj+1bnva1aiai+1ajbj+1bn107107namestreetcitytitleyearC.Fisher123 maple St.HollywoodStar Wars1977C.Fisher123 maple St.HollywoodEmpire Strikes Back1980C.Fisher123 maple St.HollywoodReturn of the Jedi1983C.Fisher5 Locust Ln.MailbuStar Wars1977C.Fisher5 Locust Ln.MailbuEmpire Strikes Back1980C.Fisher5 Locust Ln.MailbuReturn of the Jedi1983nametitle,yearnametitle,year108108z平凡的多值依赖平凡的多值依赖y 如果如果X X包含包含Y Y或或 XY=UXY=U,则,则XYXY是平凡的多是平凡的多值依赖值依赖z性质性质y If XY,and YZ then XZ-YIf XY,and YZ then XZ-Yy If XY,and Z=U-X-Y then XZIf XY,and Z=U-X-Y then XZy If XY then XYIf XY then XYz 无分解无分解/ /合并规则合并规则109109z第四范式(第四范式(4NF4NF)y 对于关系对于关系R R,若,若R1NFR1NF,且所有非平凡的多值,且所有非平凡的多值依赖,其决定因素是候选码,则依赖,其决定因素是候选码,则R4NFR4NF。y 基于数据依赖的最高范式基于数据依赖的最高范式y 分解要求分解要求x无损连接无损连接x保持依赖保持依赖x4NF4NF1101101983Return of the JediHollywood123 maple St.C.Fisher1980Empire Strikes BackHollywood123 maple St.C.Fisher1983Return of the JediMailbu5 Locust Ln.C.Fisher1980Empire Strikes BackMailbu5 Locust Ln.C.Fisher1977Star WarsMailbu5 Locust Ln.C.Fisher1977Star WarsHollywood123 maple St.C.Fisheryeartitlecitystreetnamenametitle,yearnametitle,yearnamestreet,citynamestreet,cityAll KeyAll Keyis BCNFis BCNFisnt 4NFisnt 4NFR1(name,title,year)R1(name,title,year)R2(name,street,city)R2(name,street,city)All KeyAll Keyis 4NFis 4NF111111z范式间的联系范式间的联系y 高层范式包含低层范式高层范式包含低层范式y 分解特性分解特性特性特性3NFBCNF4NF消除消除 FD 引起的冗余引起的冗余大部分大部分是是是是消除消除 MVD 引起的冗余引起的冗余否否否否是是保持保持 FD是是可能可能可能可能保持保持 MVD可能可能可能可能可能可能112112z作业作业y思考所有带思考所有带* *的练习,并上网查询解答的练习,并上网查询解答y练习练习3.7.5/3.8.3/3.7.5/3.8.3/113第四章第四章 关系模型中的运算关系模型中的运算114114概述z数据库的核心应用是数据库的查询数据库的核心应用是数据库的查询z查询语言查询语言y用户用来从数据
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!