数据库系统基础教程 PPT 完整版

上传人:新**** 文档编号:28876160 上传时间:2021-09-17 格式:PPT 页数:508 大小:5.25MB
返回 下载 相关 举报
数据库系统基础教程 PPT 完整版_第1页
第1页 / 共508页
数据库系统基础教程 PPT 完整版_第2页
第2页 / 共508页
数据库系统基础教程 PPT 完整版_第3页
第3页 / 共508页
点击查看更多>>
资源描述
第一章第一章 数据库系统的世界数据库系统的世界The Worlds of Database Systems 数据库系统的发展数据库系统的发展 数据库管理系统的结构数据库管理系统的结构 未来的数据库系统未来的数据库系统21.1 1.1 数据库系统的发展数据库系统的发展c c一、术语一、术语1.数据库数据库是长期储存在计算机内的、是长期储存在计算机内的、有组织的、可共享的数据有组织的、可共享的数据的集合。的集合。32.数据库管理系统数据库管理系统DBMS - DBMS - D DataataB Base ase MManagement anagement S Systemystem是 处 理 数 据 库 访 问 的 软 件 。是 处 理 数 据 库 访 问 的 软 件 。提 供 数 据 库 的 用 户 接 口 。提 供 数 据 库 的 用 户 接 口 。DBMSDBMS的目的:的目的:提供一个可以方便地、有效地存取数据库信提供一个可以方便地、有效地存取数据库信息的环境息的环境数 据 库 系 统 基 础 教 程数 据 库 系 统 基 础 教 程A First Course in Database Systems5 3.数据库系统数据库系统是指在计算机系统中引入数据库后的系统是指在计算机系统中引入数据库后的系统6数据库数据库最终用户最终用户应用系统应用系统应用开发工具应用开发工具DBMS操作系统操作系统数据库管理员数据库管理员DBA数据库系统构成数据库系统构成应用程序员应用程序员7z保存信息的两种不同方法:保存信息的两种不同方法:永久性的系统文件、数据库系统永久性的系统文件、数据库系统。z文件方式的问题:文件方式的问题:y数据的冗余和不一致数据的冗余和不一致y数据访问困难数据访问困难y数据孤立数据孤立y完整性问题完整性问题y原子性问题原子性问题y并发访问异常并发访问异常y安全性问题安全性问题二、文件系统与数据库系统二、文件系统与数据库系统8z数据库方法能较好地解决以上的问题数据库方法能较好地解决以上的问题y数据的独立性数据的独立性y有效地访问数据有效地访问数据y减少应用程序的开发时间减少应用程序的开发时间y数据的一致性和安全性数据的一致性和安全性y统一的数据管理统一的数据管理y并发的数据访问并发的数据访问三、为什么用数据库三、为什么用数据库9z几种模型:几种模型:y基于树的层次模型基于树的层次模型y基于图的网状模型基于图的网状模型物理相关、无高级查询语言物理相关、无高级查询语言y基于表的关系模型基于表的关系模型物理无关、支持高级查询语言,物理无关、支持高级查询语言,y基于对象的面向对象模型基于对象的面向对象模型OOOR四、数据库模型的发展四、数据库模型的发展定长记录定长记录10关系数据库系统关系数据库系统accountNOBalanceType123451000.00Savings678902846.92Checking属性属性元组元组11z关查询语言关查询语言ySQL语言语言SELECT balanceFROM AccountsWHERE accountNO = 67890;关系数据库系统关系数据库系统12zDBMS的组成的组成y数据、元数据数据、元数据y存储管理程序存储管理程序y事务管理程序事务管理程序y查询处理程序查询处理程序1.2 1.2 数据库管理系统的结构数据库管理系统的结构数据数据元数据元数据存储存储管理程序管理程序查询查询处理程序处理程序事务事务管理程序管理程序模式更新模式更新更新更新查询查询13z数据、元数据数据、元数据y关于数据结构的信息(关于数据的数据)关于数据结构的信息(关于数据的数据)y索引(索引(INDEX)DBMSDBMS的组成的组成14z存储管理程序存储管理程序y文件管理程序文件管理程序y缓冲区管理查程序缓冲区管理查程序DBMSDBMS的组成的组成15z查询处理程序查询处理程序y查询优化查询优化磁盘访问,是查询的主要代价;磁盘访问,是查询的主要代价;索引是查询优化的利器索引是查询优化的利器DBMSDBMS的组成的组成16z事务管理程序事务管理程序y事务:是用户定义的一个数据库操作序列事务:是用户定义的一个数据库操作序列y事务的四个特性事务的四个特性原子性原子性A一致性一致性C隔离性隔离性I持久性持久性DDBMSDBMS的组成的组成17z客户客户-服务器程序体系结构服务器程序体系结构z浏览器浏览器-服务器体系结构服务器体系结构DBMSDBMS的组成的组成18z客户客户-服务器程序体系结构服务器程序体系结构z浏览器浏览器-服务器体系结构服务器体系结构1.3 1.3 未来的数据库系统未来的数据库系统20数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现21数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析y用户关心什么用户关心什么y用户要什么结果用户要什么结果z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现22数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构y存什么存什么y关系(联系)如何关系(联系)如何yODL或或E/R图,是各种数据模型的共同基础图,是各种数据模型的共同基础z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现23数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构y用什么数据模型用什么数据模型y数据库的模式(数据库的模式(database schema)y用户子模式用户子模式z设计物理结构设计物理结构z物理实现物理实现24数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构y数据怎么存数据怎么存y根据根据DBMS产品、环境特点产品、环境特点z物理实现物理实现25数据库的设计步骤数据库的设计步骤z需求收集和分析需求收集和分析z设计概念结构设计概念结构z设计逻辑结构设计逻辑结构z设计物理结构设计物理结构z物理实现物理实现y运行运行DDLy装入测试数据装入测试数据y应用程序应用程序26数据库的设计步骤数据库的设计步骤想法想法需求需求ODLE / R关系关系RDBMSOODBMS272.1 ODL2.1 ODLz对象定义语言对象定义语言y Object Definition Languagey以面向对象的观点、方法,说明数据库的概以面向对象的观点、方法,说明数据库的概念结构念结构y可方便地直接转换成可方便地直接转换成 OODBMS 的说明的说明y经过努力,可以转换成经过努力,可以转换成 RDBMS 的说明的说明28面向对象的设计面向对象的设计z对象标识对象标识 OIDy对象与对象的区别对象与对象的区别z类类y具有相同特性的对象归为一类具有相同特性的对象归为一类y对象的归并必须有意义对象的归并必须有意义y属于同一类的对象其特性必须相同属于同一类的对象其特性必须相同29面向对象的设计面向对象的设计z对象的三个特性对象的三个特性y属性:特性属性:特性y联系:引用联系:引用y方法:函数方法:函数z接口说明接口说明interface 30z属性属性y对象某方面的特征,属性就是数据对象某方面的特征,属性就是数据y只由只由基本基本数据类型构成数据类型构成y属性的类型,不能是类、也不能从类中构造属性的类型,不能是类、也不能从类中构造Interface Movie /Movie Class 的ODL说明attribute stringtitle;attribute integer year;attribute integer length;attribute enum Film color, blackAndWhite filmType;31Interface Star attribute stringname;attribute StructAddr string street,string city address;记录结构类型记录结构类型32z联系联系y对象的引用对象的引用y对象的关联对象的关联y对象集合的引用(对象集合的引用(1:N)Relationship Set stars;y单一对象集合的引用(单一对象集合的引用(1:1)Relationship Star starOf;33z反向联系反向联系yODL要求显式表示存在的反向联系要求显式表示存在的反向联系Interface Movie /Movie Class 的的ODL说说明明attribute stringtitle;attribute integeryear;attribute integerlength;attribute enum Film color, blackAndWhite filmType;relationship Set stars inverse Star : starredIn; /Star与与Movie的联系的联系;34z联系的多重性联系的多重性yN:Nx在联系中,每个在联系中,每个C都和都和D的集合有关,而在反向的集合有关,而在反向联系中,每个联系中,每个D都和都和C的集合有关的集合有关yN:1x在联系中,每个在联系中,每个C都和唯一的都和唯一的D有关,而在反向有关,而在反向联系中,每个联系中,每个D都和都和C的集合有关的集合有关y1:1 x在联系中,每个在联系中,每个C都和唯一的都和唯一的D有关,而在反向有关,而在反向联系中,每个联系中,每个D都和唯一的都和唯一的C有关有关35zInterface Moiverelationship Set starsinverse Star : staredIn;relationship Studio ownedByinverse Studio : owns;zInterface Starrelationship Set staredIninverse Moive : stars; ;zInterface Studiorelationship Set ownsinverse Moive : ownedBy; ; NNN136zODL中的类型中的类型y基本类型基本类型x原子类型原子类型x接口类型接口类型y结构类型,可由以下类型组合而成结构类型,可由以下类型组合而成x集合集合 无重复,次序无关无重复,次序无关x包包 可重复,次序无关可重复,次序无关x列表列表 可重复,次序相关可重复,次序相关x数组数组x结构结构372.2 2.2 实体联系图(实体联系图(E/RE/R)z用图形的方法,描述实体及实体间的联系用图形的方法,描述实体及实体间的联系z世界由一组称作世界由一组称作实体实体的基本对象及这些对象间的基本对象及这些对象间的的联系联系组成组成z元素元素y实体(实体(Entity)x客观存在并可相互区别的事件或物体客观存在并可相互区别的事件或物体x对应于对应于ODL中的对象中的对象y实体集(实体集(Entity Set)x同类(具有相同类型、相同性质)实体的集合同类(具有相同类型、相同性质)实体的集合x对应于对应于ODL中的类中的类x用矩形表示用矩形表示382.2 2.2 实体联系图(实体联系图(E/RE/R)z元素元素y属性(属性(Attribute)x实体所具有的某一特性实体所具有的某一特性x用与实体集相连的椭圆表示用与实体集相连的椭圆表示y联系(联系(Relationship)x实体集之间的关联实体集之间的关联x可涉及多个实体集可涉及多个实体集x可表示双向的联系可表示双向的联系x用与相应的实体集相连的菱形表示用与相应的实体集相连的菱形表示39MoviesStarsStars-inlenghtfilmTypetitleyearnameaddress40zE/R联系的多重性联系的多重性yN与与1的表示的表示MoviesStarsStars-inStudiosPresidentsRunsMoviesStudiosOwns41z联系的多向性联系的多向性yE/R图能方便地描述两个以上实体集间的联系图能方便地描述两个以上实体集间的联系StarsMoviesContractsStudios一个制片公司与一位特定的影星签约来演一部特定的电影一个制片公司与一位特定的影星签约来演一部特定的电影 42z联系中的角色联系中的角色y实体集在联系中的作用实体集在联系中的作用y参与联系的实体集互异参与联系的实体集互异x只标注联系名只标注联系名y同一实体集在一个联系中多次出现同一实体集在一个联系中多次出现x标注联系名及角色名标注联系名及角色名Sequel-ofMoviesOriginalSequelStarsMoviesContractsStudiosStudio of starProducing studio43z联系中的属性联系中的属性y联系中可以包含属性联系中可以包含属性x由联系而产生的属性由联系而产生的属性y可为由联系产生的属性建立实体集可为由联系产生的属性建立实体集StarsMoviesContractsStudiossalary44z将多向联系转换成二元联系将多向联系转换成二元联系y新增连接实体集新增连接实体集y引入连接实体集至原实体集的多对一的联系引入连接实体集至原实体集的多对一的联系452.3 2.3 设计原则设计原则z真实性真实性y设计应当忠于规范设计应当忠于规范y存什么存什么z避免冗余避免冗余y任何事物只表达一次任何事物只表达一次z避免引入过多的元素避免引入过多的元素z选择合适的元素类型选择合适的元素类型y属性?属性?y类类/实体集?实体集?y联系集?联系集?462.4 2.4 子类子类z特殊化与概括特殊化与概括z子类与超类子类与超类z属性的继承属性的继承47zODL中的子类中的子类y子类继承其超类的所有特性子类继承其超类的所有特性x属性属性x联系联系Interface Cartoon : Movie relationship set voices;48zODL中的多重继承中的多重继承y类的层次类的层次y一个类可以有多个超类一个类可以有多个超类Interface MurderMystery : Movieattribute string weapon;Interface Cartoon-MurderMystery : Cartoon,MurderMystery 49zE/R中的子类中的子类yIsazE/R中的继承中的继承502.5 2.5 对约束的建模对约束的建模z建模包含对现实世界的对象及联系的描述,也建模包含对现实世界的对象及联系的描述,也包含对它们的一些约束包含对它们的一些约束y键码键码y单值约束单值约束y参照完整性约束参照完整性约束y域的约束域的约束y一般约束一般约束51z键码键码y在类的范围内唯一标识一个对象(或者在实体集的在类的范围内唯一标识一个对象(或者在实体集的范围内唯一标识一个实体)的属性或属性集范围内唯一标识一个实体)的属性或属性集y一个类中的两个对象(或一个实体集中的两个实体)一个类中的两个对象(或一个实体集中的两个实体)在构成键码的属性集上取值不能相同在构成键码的属性集上取值不能相同yODL中键码的表示中键码的表示interface Movie ( key (title,year) ) 52z超码超码y一个或多个属性的集合,能在一个实体集中唯一地一个或多个属性的集合,能在一个实体集中唯一地标识一个实体标识一个实体y一个类(或实体集)中可能有多个超码一个类(或实体集)中可能有多个超码z候选码候选码y其任意真子集都不为超码的超码其任意真子集都不为超码的超码y一个类(或实体集)中可能有多个候选码一个类(或实体集)中可能有多个候选码z主码主码y从候选码中选取的一个,一个类(实体集)中只有从候选码中选取的一个,一个类(实体集)中只有一个主码一个主码yE / R图中只能表示主码:主码属性名加上下划线图中只能表示主码:主码属性名加上下划线53z单值约束单值约束y要求某个角色的值是唯一的,如键码要求某个角色的值是唯一的,如键码y当一个属性为单值时当一个属性为单值时x可以要求该属性值存在(可以要求该属性值存在(not null)x可以允许该属性值任选(可以允许该属性值任选(null)y构成键码的属性,必须有值存在(构成键码的属性,必须有值存在(not null)54z参照完整性约束参照完整性约束y要求由某个对象引用的值在数据库中确实存要求由某个对象引用的值在数据库中确实存在在y参照与被参照、引用与被引用参照与被参照、引用与被引用y参照完整性约束的操作(各产品不同)参照完整性约束的操作(各产品不同)x禁止删除被引用的对象禁止删除被引用的对象x级联删除级联删除 / 修改修改yE/R图中参照完整性的表示图中参照完整性的表示MoviesStudiosOwns552.6 2.6 弱实体集弱实体集z弱实体集弱实体集的属性不足以形成主码的属性不足以形成主码z有主码的实体集称为有主码的实体集称为强实体集强实体集z弱实体集只有作为一对多联系的一部分(多)弱实体集只有作为一对多联系的一部分(多)才有意义才有意义z弱实体集与其拥有者之间的联系是弱实体集与其拥有者之间的联系是标识性联系标识性联系CrewsUnit-ofStudiosnumbernameaddr562.7 2.7 关于联系集关于联系集z联系集的成份联系集的成份y参加联系的实体集的主码参加联系的实体集的主码y联系集的属性联系集的属性z联系中属性的决策联系中属性的决策(二元联系二元联系)y1:1 联系集的属性:放到任意一端联系集的属性:放到任意一端y1:N 联系集的属性:放到联系集的属性:放到 N 端端yN:M联系集的属性:只能留在联系集中联系集的属性:只能留在联系集中57z联系集的取舍(二元联系)联系集的取舍(二元联系)y1:1联系:将一端的主码作为另一端的属性联系:将一端的主码作为另一端的属性y1:N联系:将一端的主码作为联系:将一端的主码作为 N 端的属性端的属性yN:M联系:必须保留联系集联系:必须保留联系集z联系集的键码(二元联系)联系集的键码(二元联系)y1:1联系:任意一端的主码联系:任意一端的主码y1:N联系:联系:N端的主码端的主码yN:M联系:参加联系的所有实体集的主码联系:参加联系的所有实体集的主码58zODL、E/R建模建模y关心:存什么数据、关系如何关心:存什么数据、关系如何y不关心:用什么数学模型、不关心:用什么数学模型、DBMS产品产品y透过透过E/R图,便于与用户交流图,便于与用户交流59z作业作业y思考所有带思考所有带*的练习,并上网查阅解答的练习,并上网查阅解答y练习练习2.1.7 / 2.2.8 / 2.3.2 / 2.5.3 / 2.5.4 /2.6.4(a)61zODL、E/R到关系模型的转换到关系模型的转换z关系模型的设计理论关系模型的设计理论623.1 3.1 关系模型的基本概念关系模型的基本概念z逻辑数据模型逻辑数据模型y是用户从数据库所看到的数据模型是用户从数据库所看到的数据模型y与与DBMS有关有关y层次、网状、关系、面向对象层次、网状、关系、面向对象63z关系数据模型关系数据模型y数据结构数据结构x两维的扁平表两维的扁平表y数据操作数据操作x关系代数关系代数x关系演算关系演算y数据的完整性数据的完整性x实体完整性实体完整性x参照完整性参照完整性x用户定义的完整性用户定义的完整性64z现实世界的实体以及实体间的各种联系均用现实世界的实体以及实体间的各种联系均用关系表示关系表示z关系数据库系统是建立在关系模型上的数据关系数据库系统是建立在关系模型上的数据库系统库系统z关系数据库是表的集合关系数据库是表的集合65z模型和模式模型和模式y数据模型是描述数据的手段数据模型是描述数据的手段y数据模式是用给定的数据模型对具体数据数据模式是用给定的数据模型对具体数据的描述的描述z属性属性z元组元组z域域y型型y值值z联系联系y关系的联系是通过关联属性的值连接的关系的联系是通过关联属性的值连接的66SnoSnoSnameSnameSsexSsexSageSagesdeptsdept9500195001张三张三男男2525CSCS9500295002李四李四女女2424CSCS9610196101王五王五男男2323MAMA9600196001赵六赵六男男2323CSCS关系关系( 表表 )属性属性(列、字段列、字段)元组元组(行、记录行、记录)域域(string,男,女男,女)Student ( sno, sname, ssex, sage, sdept )67z关系实例关系实例y关系关系 实体集、类实体集、类y关系的实例关系的实例 元组的集合元组的集合y元组元组 实体、对象实体、对象y数据库实例数据库实例 给定时刻数据库中数据的给定时刻数据库中数据的一个快照一个快照683.2 3.2 从从ODLODL设计到设计到关系设计关系设计zODL设计是概念设计的产物设计是概念设计的产物 ( Using OO )zODL描述描述 关系模式关系模式 实现实现69zODL属性属性 关系属性关系属性y原子属性原子属性x类类 关系关系x属性属性 属性属性y非原子属性(复杂数据类型)非原子属性(复杂数据类型)x必须转换成原子属性必须转换成原子属性x记录结构记录结构结构的每个结构的每个item对应一个属性对应一个属性x多值集合多值集合针对每个值建立一个元组针对每个值建立一个元组会产生冗余会产生冗余 需规范化需规范化70zODL属性属性 关系属性关系属性 (续)(续)y其他类型属性其他类型属性x(包、数组、列表)(包、数组、列表)针对每个元素建立一个元组针对每个元素建立一个元组增加一个记数属性,表示包的成员号增加一个记数属性,表示包的成员号x定长数组定长数组扩展为多个属性扩展为多个属性71zODL联系联系 关系描述关系描述y单值联系单值联系x联系的类型为一个类联系的类型为一个类x增加一个(组)属性,存放相关类的键码属增加一个(组)属性,存放相关类的键码属性(组)性(组)x将类之间的联系将类之间的联系 关系之间的联系关系之间的联系72zODL联系联系 关系描述关系描述(续)(续)y多值联系多值联系x联系的类型为某个类的集合类型联系的类型为某个类的集合类型x1 : N、N : Mx增加一个键码属性增加一个键码属性x为集合的每个成员建立一个元组为集合的每个成员建立一个元组x其他原始属性重复多次(与集合成员的个数其他原始属性重复多次(与集合成员的个数相等)相等)x导致大量的冗余,需要规范化导致大量的冗余,需要规范化73z键码是必需的键码是必需的y选择合适的属性(组)作为键码选择合适的属性(组)作为键码x学号、工号、身份证号学号、工号、身份证号.x增加计数属性增加计数属性z联系与反向联系联系与反向联系y在联系的双方均有联系的描述在联系的双方均有联系的描述 冗余冗余yODL:双向描述:双向描述yE/R:相关的键码值进行连接:相关的键码值进行连接743.3 3.3 从从E/RE/R图到图到关系的设计关系的设计zE/R与与ODL描述的差异描述的差异y联系作为独立的概念联系作为独立的概念 联系嵌套在类定义中联系嵌套在类定义中y结构化数据结构化数据 允许使用集合、聚集类型允许使用集合、聚集类型y联系可以有属性联系可以有属性 联系无属性联系无属性zE/R 关系模式关系模式 实现实现75z实体集到关系的转换实体集到关系的转换y非弱实体集非弱实体集x实体集名实体集名 关系名关系名x属性属性 属性属性y弱实体集弱实体集x为弱实体集建立关系为弱实体集建立关系x属性:弱实体集的属性属性:弱实体集的属性 + 辅助实体集的键辅助实体集的键码码76zE/R联系到关系的转换联系到关系的转换y用关系表示联系用关系表示联系x联系名联系名 关系名关系名x属性属性 属性属性 + 相关实体集的键码属性(集)相关实体集的键码属性(集)y多向联系的转换多向联系的转换x注意,属性的命名注意,属性的命名773.4 3.4 子类结构到关系的转换子类结构到关系的转换zODL中的子类中的子类y一个对象完全属于一个类一个对象完全属于一个类y子类继承其超类的特性子类继承其超类的特性zE/R中的子类中的子类y分层结构通过与分层结构通过与ISA联系有关的实体集进联系有关的实体集进行扩展行扩展78z用关系表示用关系表示ODL子类子类y每个子类都有自己的关系每个子类都有自己的关系y包含包含该子类的所有特性该子类的所有特性(含继承特性)(含继承特性)y在一个关系中含有所有属性在一个关系中含有所有属性Movie(title,year,length,filmType,studioName,starName)Cartoon(title,year,length,filmType,studioName,starName,voice)MurderMystery(title,year,length,filmType,studioName,starName,weapon)Cartoon- MurderMystery(title,year,length,filmType,studioName,starName,voice, weapon)79z在关系模型中表示在关系模型中表示 isa 联系联系y子类的信息被分散到上层的几个关系中子类的信息被分散到上层的几个关系中y与与ISA联系有关的实体集拥有相同的键码联系有关的实体集拥有相同的键码Movie(title,year,length,filmType)Cartoon(title,year)MurderMystery(title,year, weapon)Voice(title,year,name)80z使用使用NULL值合并关系值合并关系y将关系描述成一个将关系描述成一个全集全集y属性:所有可能的属性属性:所有可能的属性y描述:允许描述:允许Null值值x层次越高,取层次越高,取Null值的属性越多值的属性越多Movie (title,year,length,filmType,studioName,starName,voice, weapon)y只是一种方法而已只是一种方法而已81z作业作业y思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答y练习练习3.2.3 / 3.3.1 / 3.4.1 / 3.5.3 / 823.5 3.5 函数依赖函数依赖z数据依赖数据依赖y函数依赖函数依赖y多值依赖多值依赖z数据依赖是针对数据模式,而不是特定的实例数据依赖是针对数据模式,而不是特定的实例83z函数依赖(函数依赖(FD)y属性之间的联系属性之间的联系y假设给定假设给定 X 属性的值,就知道属性的值,就知道 Y的值,那么的值,那么 X 函数决定函数决定 Yy如果如果R的两个元组在属性的两个元组在属性A1,A2,An上一致,上一致,则它们在另一个属性则它们在另一个属性B上也一致,那么上也一致,那么 A1,A2,An函数决定函数决定B,记作,记作A1A2AnByif A1A2AnB1then A1A2AnB2A1A2An B1 B2 . Bm A1A2AnBm84z关系的键码关系的键码如果一个或多个属性的集合如果一个或多个属性的集合A1A2An满足满足如下条件,则该集合为关系如下条件,则该集合为关系R的键码:的键码:1.这些属性函数决定该关系的所有其他属性这些属性函数决定该关系的所有其他属性2. A1A2An的任何真子集都不能函数决定的任何真子集都不能函数决定R的所有其他属性的所有其他属性85z超键码超键码y包含键码的属性集称为超键码包含键码的属性集称为超键码86z寻找关系的键码(来自寻找关系的键码(来自E/R)y来自实体集的关系的键码就是该实体集的键来自实体集的关系的键码就是该实体集的键码属性码属性y对于二元联系对于二元联系R:xN:M,相关两个实体的键码都是,相关两个实体的键码都是R的键码属性的键码属性xN:1,多端实体集的键码是,多端实体集的键码是R的加码属性的加码属性x1:1,任意一端实体集的键码是,任意一端实体集的键码是R的键码的键码y对于多向联系对于多向联系R:x如果多向联系如果多向联系R有一个箭头指向实体集有一个箭头指向实体集E,则响,则响应的关系中,除了应的关系中,除了E的键码以外,至少还存在一的键码以外,至少还存在一个键码。个键码。87z寻找关系的键码(来自寻找关系的键码(来自ODL)y来自来自ODL的关系的键码的关系的键码不一定不一定就是该类的键就是该类的键码属性码属性y对于单值联系对于单值联系R:x类类C有一个指向类有一个指向类D的单值联系,的单值联系,C的关系中包的关系中包含含D的键码。的键码。C的键码仍是相应关系的键码的键码仍是相应关系的键码y对于多值联系对于多值联系R:x被引用类的键码加入到引用类的键码组合称为键被引用类的键码加入到引用类的键码组合称为键码码883.6 3.6 函数依赖规则函数依赖规则z分解规则分解规则A1A2An B1 B2 . Bm等价于等价于A1A2An Bi z合并规则合并规则A1A2An Bi等价于等价于A1A2An B1 B2 . Bm89z平凡的函数依赖平凡的函数依赖y如果对于函数依赖如果对于函数依赖 A1A2An B,B是是A中中的一个,则该函数依赖就是平凡的函数依赖的一个,则该函数依赖就是平凡的函数依赖y平凡依赖是永恒的平凡依赖是永恒的ytitle,year titlez非平凡非平凡y如果如果B中至少有一个属性不在中至少有一个属性不在A中中ytitle,year year,lengthz完全非平凡完全非平凡y如果如果B中没有一个属性在中没有一个属性在A中中ytitle,year length90z计算属性的闭包计算属性的闭包y闭包闭包xF的闭包是指的闭包是指F逻辑蕴涵的所有函数依赖的集合,逻辑蕴涵的所有函数依赖的集合,记作记作F+y闭包的意义闭包的意义x检验给定的函数依赖是否蕴涵于某个函数依赖集检验给定的函数依赖是否蕴涵于某个函数依赖集Sx从给定的函数依赖,可以推导出蕴涵的函数依赖从给定的函数依赖,可以推导出蕴涵的函数依赖y求闭包求闭包x例:对关系例:对关系R(A,B,C,D,E,F),给定函数依赖给定函数依赖ABC,BCAD,DE,CFB,求求 A,B+91z关系的基与最小基关系的基与最小基y任何一个能从中导出关系的任何一个能从中导出关系的所有所有依赖的依赖的给定给定依赖集依赖集,称为该关系的一个,称为该关系的一个基基y如果一个基的任何如果一个基的任何真子集真子集都不能推导出该关都不能推导出该关系的依赖全集,则称此基为系的依赖全集,则称此基为最小基最小基y求函数依赖的最小基求函数依赖的最小基x例:对关系例:对关系R(A,B,C,D),有),有ABC,BC,A B,AB C,AC D,求最小函数依赖集求最小函数依赖集923.7 3.7 关系数据库模式设计关系数据库模式设计z什么是好的数据库设计什么是好的数据库设计y体现客观世界的信息体现客观世界的信息y无过度的冗余无过度的冗余y无插入异常无插入异常y无更新复杂无更新复杂y无删除异常无删除异常93titleyearlengthfilmTypestudioNamestarNameStar Wars1977124colorFoxCarrie FisherStar Wars1977124colorFoxMark HamillStar Wars1977124colorFoxHarrison FordMighty Ducks1991104colorDisneyEmilio EstevezWaynes World199195colorParamountDana CarveyWaynes World199295colorParamountMike Meyers冗余冗余!更新复杂更新复杂!删除异常删除异常!94z异常的原因异常的原因y数据依赖的约束数据依赖的约束z解决方法解决方法y数据库设计的规范化数据库设计的规范化分解分解 95z范式范式(Normal Forms)y规范化规范化y一个关系满足某个范式所规定的一系列一个关系满足某个范式所规定的一系列条件时条件时,它就属于该范式它就属于该范式y可以用规范化要求来设计数据库可以用规范化要求来设计数据库y也可以用来验证设计结果的合理性,用也可以用来验证设计结果的合理性,用其指导优化过程其指导优化过程z1NF2NF3NFBCNF4NF96z第一范式第一范式(1NF)y当且仅当一个关系当且仅当一个关系R中,每一个元组的每中,每一个元组的每一个属性只含有一个值时,该关系属于第一个属性只含有一个值时,该关系属于第一范式。一范式。y要求属性是原子的要求属性是原子的97z第二范式第二范式(2NF)y对于关系对于关系R,若,若R1NF,且每一个非主,且每一个非主属性完全函数依赖于码,则属性完全函数依赖于码,则R2NF。y不能部分依赖于码不能部分依赖于码sc(sno,sname,cno,grade)sno,cnogradesnosnamesnocnogradesname完全依赖完全依赖非完全依赖非完全依赖98z第三范式第三范式(3NF)y对于关系对于关系R,若,若R2NF,且,且每个每个非主属非主属性都不传递依赖于码,则性都不传递依赖于码,则R3NF。y主属性可以传递依赖于码主属性可以传递依赖于码student(sno,sname,sdept,dept_manager)snosname,sdept sdeptdept_manager传递依赖:传递依赖:snodept_managersnosdeptsnamedept_manager99zBoyce/Codd范式范式(BCNF)y对于关系对于关系R,若,若R1NF,且,且所有所有非平凡的函非平凡的函数依赖,其决定因素是候选码,则数依赖,其决定因素是候选码,则RBCNF。sct(s,c,t)/学生,课程,教师学生,课程,教师tc/每位教师只上一门课每位教师只上一门课(s,c)t (s,t)c/每门课有若干位教师每门课有若干位教师sctstcsct3NF,sctBCNF100z最高范式最高范式yBCNF是基于函数依赖的最高范式是基于函数依赖的最高范式y但不是数据库模式设计的最高范式但不是数据库模式设计的最高范式101z范式优化范式优化y分解分解xA1,A2,An = B1,B2,BnC1,C2,Cny分解的要求分解的要求x无损连接无损连接BCB或或BCCx保持依赖保持依赖x范式要求范式要求BC C CF FB BF FA AF F102z分解到高层范式(基于分解到高层范式(基于FD)1. 找出一个不符合范式要求的找出一个不符合范式要求的FD(XY),),并使其右端的属性尽可能地多(并使其右端的属性尽可能地多(求出求出X+)2. 创建新的模式,包含上述创建新的模式,包含上述FD的所有(左右)的所有(左右)属性(属性(X+的所有属性的所有属性)3. 创建另一模式,包含前述创建另一模式,包含前述FD中的决定因素及中的决定因素及剩余的所有属性剩余的所有属性(U-X+)X)4. 反复反复13,直至符合范式要求,直至符合范式要求1033.8 3.8 多值依赖多值依赖zBCNFy仍有异常仍有异常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 Jedi1983104z多值依赖(多值依赖(MVD) 按按P.110的定义的定义XYZta1aiai+1ajaj+1anua1aibi+1bjbj+1bnva1aiai+1ajbj+1bnwa1aibi+1bjaj+1an105z多值依赖(多值依赖(MVD)y设设R(U)是属性集是属性集U上的一个关系。上的一个关系。X、Y、Z是是U的子集,且的子集,且Z=U-X-Y。关系。关系R(U)中多值中多值依赖依赖XY成立,当且仅当对成立,当且仅当对R(U)的任一的任一元组元组r,给定一对给定一对(x,z)值,有一组值,有一组y的值的值,这,这组值仅仅取决于组值仅仅取决于x值,而与值,而与z值无关。值无关。y对给定对给定X的值,则的值,则Y的取值与的取值与Z的取值无关的取值无关106z给定一对给定一对(x,z)值,有一组值,有一组y的值的值XYZta1aiai+1ajaj+1anwa1aibi+1bjaj+1anua1aibi+1bjbj+1bnva1aiai+1ajbj+1bn107namestreetcitytitleyearC.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,year108z平凡的多值依赖平凡的多值依赖y 如果如果X包含包含Y或或 XY=U,则,则XY是平凡是平凡的多值依赖的多值依赖z性质性质y If XY,and YZ then XZ-Yy If XY,and Z=U-X-Y then XZy If XY then XYz 无分解无分解/合并规则合并规则109z第四范式(第四范式(4NF)y 对于关系对于关系R,若,若R1NF,且,且所有所有非平凡的多非平凡的多值依赖,其决定因素是候选码,则值依赖,其决定因素是候选码,则R4NF。y 基于数据依赖的最高范式基于数据依赖的最高范式y 分解要求分解要求x 无损连接无损连接x 保持依赖保持依赖x 4NF1101983Return 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,yearnamestreet,cityAll Keyis BCNFisnt 4NFR1(name,title,year)R2(name,street,city)All Keyis 4NF111z范式间的联系范式间的联系y 高层范式包含低层范式高层范式包含低层范式y 分解特性分解特性特性特性3NFBCNF4NF消除消除 FD 引起的冗余引起的冗余大部分大部分是是是是消除消除 MVD 引起的冗余引起的冗余否否否否是是保持保持 FD是是可能可能可能可能保持保持 MVD可能可能可能可能可能可能112z作业作业y思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答y练习练习3.7.5/3.8.3/第四章第四章 关系模型中的运算关系模型中的运算114概述z数据库的核心应用是数据库的核心应用是数据库的查询数据库的查询z查询语言查询语言y用户用来从数据库中请求获取信息的语言用户用来从数据库中请求获取信息的语言y关系代数关系代数是过程化的查询语言是过程化的查询语言y关系代数是一种关系代数是一种抽象抽象的查询语言的查询语言1154.1 4.1 关系代数关系代数z运算对象:关系运算对象:关系z运算结果:关系运算结果:关系116关系代数z关系代数的运算关系代数的运算y普通的集合运算普通的集合运算x并、交、差并、交、差y删除部分关系的运算删除部分关系的运算x选择、投影选择、投影y合并两个关系元组的运算合并两个关系元组的运算x连接、积连接、积y改名运算改名运算117关系代数 并Union ()zR和和S的并,的并,RS,是在,是在R或或S或两者中的或两者中的元素的集合元素的集合z一个元素在并集中只出现一次一个元素在并集中只出现一次zR和和S必须同类型(属性集相同、次序相同,必须同类型(属性集相同、次序相同,但属性名可以不同)但属性名可以不同)118关系代数 交Intersect ()zR和和S的交,的交,RS,是在,是在R和和S中都存在的中都存在的元素的集合元素的集合z一个元素在交集中只出现一次一个元素在交集中只出现一次zR和和S必须同类型(属性集相同、次序相同,必须同类型(属性集相同、次序相同,但属性名可以不同)但属性名可以不同)119关系代数 差Minus (-)zR和和S的差,的差,R-S,是在,是在R中而不在中而不在S中的元中的元素的集合素的集合zR和和S必须同类型(属性集相同、次序相同,必须同类型(属性集相同、次序相同,但属性名可以不同)但属性名可以不同)120关系代数投影Projection()z从关系从关系R中选择若干属性组成新的关系中选择若干属性组成新的关系zA1,A2,An(R),表示从表示从R中选择属性集中选择属性集A1,A2,An组成新的关系组成新的关系z列的运算列的运算z投影运算的结果中投影运算的结果中,也要去除可能的重复元也要去除可能的重复元组组z例例: ssex,sage(student) ?121关系代数选择Selection()z从关系从关系R中选择符合条件的元组构成新中选择符合条件的元组构成新的关系的关系zC(R),表示从表示从R中选择满足条件中选择满足条件(使逻辑使逻辑表达式表达式C为真为真)的元组的元组z行的运算行的运算z例例: sage = 23 AND sdep = CS(student) ?z例例:列出列出CS系的学号及姓名系的学号及姓名sno,sname(sdep = CS(student) )122关系代数笛卡儿积()z关系关系R、S的笛卡儿积是两个关系的元组对的笛卡儿积是两个关系的元组对的集合所组成的新关系的集合所组成的新关系zRS:y属性属性是是R和和S的组合(有重复)的组合(有重复)y元组元组是是R和和S所有元组的可能组合所有元组的可能组合y是是R、S的无条件连接,使任意两个关系的无条件连接,使任意两个关系的信息能组合在一起的信息能组合在一起z例例: student sc (注意注意sno的命名的命名)123关系代数自然连接( )z从从RS的结果集中,选取在某些的结果集中,选取在某些公共属性公共属性上具有相同值的元组,组成新的关系上具有相同值的元组,组成新的关系zR、S的公共属性的公共属性y属性集的交集(属性集的交集(名称及类型相同名称及类型相同)z公共属性在结果中只出现一次公共属性在结果中只出现一次z等值连接等值连接z例例: student sc (注意注意sno的命名的命名)124关系代数条件连接( )z从从RS的结果集中,选取在指定的属性集的结果集中,选取在指定的属性集上满足上满足条件的元组,组成新的关系条件的元组,组成新的关系z是一个关于属性集的逻辑表达式是一个关于属性集的逻辑表达式zR C S125关系代数改名( )z对关系对关系R实施改名运算,可显式地改变关实施改名运算,可显式地改变关系名及属性名系名及属性名z将关系将关系R改名为改名为S:s(R)z将关系将关系R(B1,B2,Bn)改名)改名S(A1,A2,An):): S(A1,A2,An)(R)126关系代数查询中的复合运算z例:找出比例:找出比95001年龄大的学生的学年龄大的学生的学号和姓名、年龄号和姓名、年龄s.sno,s.sname,s.sage(s(student) s.sage stu.sage (stu.sno=95001(stu(student)127关系代数查询中的复合运算z例:找出比例:找出比95001年龄大的学生的学号年龄大的学生的学号和姓名、年龄(与前例的结果有何差异?)和姓名、年龄(与前例的结果有何差异?)s.sno,s.sname,s.sage(stu.sno=95001 and s.sage stu.sage (s(student)(stu(student)128关系代数外连接z是连接运算的扩展,可以处理缺失信息是连接运算的扩展,可以处理缺失信息z保留非匹配元组保留非匹配元组z外连接外连接y左外连接左外连接y右外连接右外连接y全外连接全外连接129关系代数左外连接z取出左侧关系中取出左侧关系中所有所有与右侧关系的任一元组与右侧关系的任一元组都不匹配的元组,用都不匹配的元组,用空值空值填充所有来自右侧填充所有来自右侧关系的属性,再把产生的元组加到关系的属性,再把产生的元组加到自然连接自然连接的结果上的结果上z例:列出影星的当官情况(是影星,可能不例:列出影星的当官情况(是影星,可能不是官)是官)MovieStar MovieExec130关系代数右外连接z与左外连接对称与左外连接对称z例:列出行政长官的从影情况(是长官,可例:列出行政长官的从影情况(是长官,可能不是影星)能不是影星)MovieStar MovieExec131关系代数全外连接z左外连接与右外连接的合成左外连接与右外连接的合成z例:列出所有行政长官和所有影星的关系例:列出所有行政长官和所有影星的关系MovieStar MovieExec1324.5 4.5 对关系的约束对关系的约束z关系数据模型关系数据模型y数据结构数据结构y关系操作关系操作y关系的完整性约束关系的完整性约束x实体完整性实体完整性x参照完整性参照完整性x用户定义的完整性用户定义的完整性133用关系代数作为约束语言用关系代数作为约束语言z用关系代数可以表达约束用关系代数可以表达约束yR = 0; R 0yR S;R-S = 0134参照完整性约束参照完整性约束z如果对象(实体)如果对象(实体)A与对象(实体)与对象(实体)B相关,相关,那么那么B必须存在必须存在z如果一个关系如果一个关系R的一个元组有个分量值为的一个元组有个分量值为v,那么期望那么期望v将出现在另一个关系将出现在另一个关系S的某个元的某个元组的特定分量中组的特定分量中zv(R) v(S)135参照完整性约束参照完整性约束例例zMovie关系中,每部电影的制片人必须出现在关系中,每部电影的制片人必须出现在MovieExec关系中关系中Movie(title,year,length,incolor,studioName,producerC#)MoiveExec(name,address,cert#,networth)每个Movie元组的producerC#分量必须出现在MovieExec元组的cert#分量中producerC#(Movie) cert#(MovieExec)producerC#(Movie) -cert#(MovieExec)=0136参照完整性约束参照完整性约束例例z影星只能于存在的影星只能于存在的Movie中出演角色中出演角色Movie(title,year,length,incolor,studioName,producerC#)s
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


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

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


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