数据库系统基础教程_第1页
数据库系统基础教程_第2页
数据库系统基础教程_第3页
数据库系统基础教程_第4页
数据库系统基础教程_第5页
已阅读5页,还剩503页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章第一章 数据库系统的世界数据库系统的世界 the worlds of database systems 数据库系统的发展数据库系统的发展 数据库管理系统的结构数据库管理系统的结构 未来的数据库系统未来的数据库系统 2 1.1 1.1 数据库系统的发展数据库系统的发展c c 一、术语一、术语 1.数据库数据库 是长期储存在计算机内的、是长期储存在计算机内的、 有组织的、可共享的数据的有组织的、可共享的数据的 集合。集合。 3 2.数据库管理系统数据库管理系统 dbms - dbms - d dataatab base ase mmanagement anagement s systemys

2、tem 是 处 理 数 据 库 访 问 的 软 件 。是 处 理 数 据 库 访 问 的 软 件 。 提 供 数 据 库 的 用 户 接 口 。提 供 数 据 库 的 用 户 接 口 。 dbmsdbms的目的:的目的: 提供一个可以方便地、有效地存取数据库信息提供一个可以方便地、有效地存取数据库信息 的环境的环境 数 据 库 系 统 基 础 教 程数 据 库 系 统 基 础 教 程 a first course in database systems 5 3.数据库系统数据库系统 是指在计算机系统中引入数据库后的系统是指在计算机系统中引入数据库后的系统 6 数据库数据库 最终用户最终用户 应

3、用系统应用系统 应用开发工具应用开发工具 dbms 操作系统操作系统 数据库管理员数据库管理员 dba 数据库系统构成数据库系统构成 应用程序员应用程序员 7 z保存信息的两种不同方法:保存信息的两种不同方法: 永久性的系统文件、数据库系统永久性的系统文件、数据库系统。 z文件方式的问题:文件方式的问题: y数据的冗余和不一致数据的冗余和不一致 y数据访问困难数据访问困难 y数据孤立数据孤立 y完整性问题完整性问题 y原子性问题原子性问题 y并发访问异常并发访问异常 y安全性问题安全性问题 二、文件系统与数据库系统二、文件系统与数据库系统 8 z数据库方法能较好地解决以上的问题数据库方法能较好

4、地解决以上的问题 y数据的独立性数据的独立性 y有效地访问数据有效地访问数据 y减少应用程序的开发时间减少应用程序的开发时间 y数据的一致性和安全性数据的一致性和安全性 y统一的数据管理统一的数据管理 y并发的数据访问并发的数据访问 三、为什么用数据库三、为什么用数据库 9 z几种模型:几种模型: y基于树的层次模型基于树的层次模型 y基于图的网状模型基于图的网状模型 物理相关、无高级查询语言物理相关、无高级查询语言 y基于表的关系模型基于表的关系模型 物理无关、支持高级查询语言,物理无关、支持高级查询语言, y基于对象的面向对象模型基于对象的面向对象模型 oo or 四、数据库模型的发展四、

5、数据库模型的发展 定长记录定长记录 10 关系数据库系统关系数据库系统 accountnobalancetype 123451000.00savings 678902846.92checking 属性属性 元组元组 11 z关查询语言关查询语言 ysql语言语言 select balance from accounts where accountno = 67890; 关系数据库系统关系数据库系统 12 zdbms的组成的组成 y数据、元数据数据、元数据 y存储管理程序存储管理程序 y事务管理程序事务管理程序 y查询处理程序查询处理程序 1.2 1.2 数据库管理系统的结构数据库管理系统的结构

6、 数据数据 元数据元数据 存储存储 管理程序管理程序 查询查询 处理程序处理程序 事务事务 管理程序管理程序 模式更新模式更新 更新更新查询查询 13 z数据、元数据数据、元数据 y关于数据结构的信息(关于数据的数据)关于数据结构的信息(关于数据的数据) y索引(索引(index) dbmsdbms的组成的组成 14 z存储管理程序存储管理程序 y文件管理程序文件管理程序 y缓冲区管理查程序缓冲区管理查程序 dbmsdbms的组成的组成 15 z查询处理程序查询处理程序 y查询优化查询优化 磁盘访问,是查询的主要代价;磁盘访问,是查询的主要代价; 索引是查询优化的利器索引是查询优化的利器 db

7、msdbms的组成的组成 16 z事务管理程序事务管理程序 y事务:是用户定义的一个数据库操作序列事务:是用户定义的一个数据库操作序列 y事务的四个特性事务的四个特性 原子性原子性a 一致性一致性c 隔离性隔离性i 持久性持久性d dbmsdbms的组成的组成 17 z客户客户-服务器程序体系结构服务器程序体系结构 z浏览器浏览器-服务器体系结构服务器体系结构 dbmsdbms的组成的组成 18 z客户客户-服务器程序体系结构服务器程序体系结构 z浏览器浏览器-服务器体系结构服务器体系结构 1.3 1.3 未来的数据库系统未来的数据库系统 20 数据库的设计步骤数据库的设计步骤 z需求收集和分

8、析需求收集和分析 z设计概念结构设计概念结构 z设计逻辑结构设计逻辑结构 z设计物理结构设计物理结构 z物理实现物理实现 21 数据库的设计步骤数据库的设计步骤 z需求收集和分析需求收集和分析 y用户关心什么用户关心什么 y用户要什么结果用户要什么结果 z设计概念结构设计概念结构 z设计逻辑结构设计逻辑结构 z设计物理结构设计物理结构 z物理实现物理实现 22 数据库的设计步骤数据库的设计步骤 z需求收集和分析需求收集和分析 z设计概念结构设计概念结构 y存什么存什么 y关系(联系)如何关系(联系)如何 yodl或或e/r图,是各种数据模型的共同基础图,是各种数据模型的共同基础 z设计逻辑结构

9、设计逻辑结构 z设计物理结构设计物理结构 z物理实现物理实现 23 数据库的设计步骤数据库的设计步骤 z需求收集和分析需求收集和分析 z设计概念结构设计概念结构 z设计逻辑结构设计逻辑结构 y用什么数据模型用什么数据模型 y数据库的模式(数据库的模式(database schema) y用户子模式用户子模式 z设计物理结构设计物理结构 z物理实现物理实现 24 数据库的设计步骤数据库的设计步骤 z需求收集和分析需求收集和分析 z设计概念结构设计概念结构 z设计逻辑结构设计逻辑结构 z设计物理结构设计物理结构 y数据怎么存数据怎么存 y根据根据dbms产品、环境特点产品、环境特点 z物理实现物理

10、实现 25 数据库的设计步骤数据库的设计步骤 z需求收集和分析需求收集和分析 z设计概念结构设计概念结构 z设计逻辑结构设计逻辑结构 z设计物理结构设计物理结构 z物理实现物理实现 y运行运行ddl y装入测试数据装入测试数据 y应用程序应用程序 26 数据库的设计步骤数据库的设计步骤 想法想法 需求需求 odl e / r 关系关系rdbms oodbms 27 2.1 odl2.1 odl z对象定义语言对象定义语言 y object definition language y以面向对象的观点、方法,说明数据库的概念以面向对象的观点、方法,说明数据库的概念 结构结构 y可方便地直接转换成可

11、方便地直接转换成 oodbms 的说明的说明 y经过努力,可以转换成经过努力,可以转换成 rdbms 的说明的说明 28 面向对象的设计面向对象的设计 z对象标识对象标识 oid y对象与对象的区别对象与对象的区别 z类类 y具有相同特性的对象归为一类具有相同特性的对象归为一类 y对象的归并必须有意义对象的归并必须有意义 y属于同一类的对象其特性必须相同属于同一类的对象其特性必须相同 29 面向对象的设计面向对象的设计 z对象的三个特性对象的三个特性 y属性:特性属性:特性 y联系:引用联系:引用 y方法:函数方法:函数 z接口说明接口说明 interface 30 z属性属性 y对象某方面的

12、特征,属性就是数据对象某方面的特征,属性就是数据 y只由只由基本基本数据类型构成数据类型构成 y属性的类型,不能是类、也不能从类中构造属性的类型,不能是类、也不能从类中构造 interface movie /movie class 的odl说明 attribute stringtitle; attribute integer year; attribute integer length; attribute enum film color, blackandwhite filmtype; ; 31 interface star attribute stringname; attribute s

13、tructaddr string street,string city address; ; 记录结构类型记录结构类型 32 z联系联系 y对象的引用对象的引用 y对象的关联对象的关联 y对象集合的引用(对象集合的引用(1:n) relationship set stars; y单一对象集合的引用(单一对象集合的引用(1:1) relationship star starof; 33 z反向联系反向联系 yodl要求显式表示存在的反向联系要求显式表示存在的反向联系 interface movie /movie class 的的odl说明说明 attribute stringtitle; att

14、ribute integeryear; attribute integerlength; attribute enum film color, blackandwhite filmtype; relationship set stars inverse star : starredin; /star与与movie的的 联系联系 ; 34 z联系的多重性联系的多重性 yn:n x在联系中,每个在联系中,每个c都和都和d的集合有关,而在反向联的集合有关,而在反向联 系中,每个系中,每个d都和都和c的集合有关的集合有关 yn:1 x在联系中,每个在联系中,每个c都和唯一的都和唯一的d有关,而在反向联

15、有关,而在反向联 系中,每个系中,每个d都和都和c的集合有关的集合有关 y1:1 x在联系中,每个在联系中,每个c都和唯一的都和唯一的d有关,而在反向联有关,而在反向联 系中,每个系中,每个d都和唯一的都和唯一的c有关有关 35 zinterface moive relationship set stars inverse star : staredin; relationship studio ownedby inverse studio : owns; ; zinterface star relationship set staredin inverse moive : stars; ;

16、zinterface studio relationship set owns inverse moive : ownedby; ; n n n 1 36 zodl中的类型中的类型 y基本类型基本类型 x原子类型原子类型 x接口类型接口类型 y结构类型,可由以下类型组合而成结构类型,可由以下类型组合而成 x集合集合 无重复,次序无关无重复,次序无关 x包包 可重复,次序无关可重复,次序无关 x列表列表 可重复,次序相关可重复,次序相关 x数组数组 x结构结构 37 2.2 2.2 实体联系图(实体联系图(e/re/r) z用图形的方法,描述实体及实体间的联系用图形的方法,描述实体及实体间的联系

17、 z世界由一组称作世界由一组称作实体实体的基本对象及这些对象间的的基本对象及这些对象间的 联系联系组成组成 z元素元素 y实体(实体(entity) x客观存在并可相互区别的事件或物体客观存在并可相互区别的事件或物体 x对应于对应于odl中的对象中的对象 y实体集(实体集(entity set) x同类(具有相同类型、相同性质)实体的集合同类(具有相同类型、相同性质)实体的集合 x对应于对应于odl中的类中的类 x用矩形表示用矩形表示 38 2.2 2.2 实体联系图(实体联系图(e/re/r) z元素元素 y属性(属性(attribute) x实体所具有的某一特性实体所具有的某一特性 x用与

18、实体集相连的椭圆表示用与实体集相连的椭圆表示 y联系(联系(relationship) x实体集之间的关联实体集之间的关联 x可涉及多个实体集可涉及多个实体集 x可表示双向的联系可表示双向的联系 x用与相应的实体集相连的菱形表示用与相应的实体集相连的菱形表示 39 moviesstarsstars-in lenghtfilmtype title year nameaddress 40 ze/r联系的多重性联系的多重性 yn与与1的表示的表示 moviesstarsstars-in studios presidents runs movies studios owns 41 z联系的多向性联系的

19、多向性 ye/r图能方便地描述两个以上实体集间的联系图能方便地描述两个以上实体集间的联系 starsmovies contracts studios 一个制片公司与一位特定的影星签约来演一部特定的电影一个制片公司与一位特定的影星签约来演一部特定的电影 42 z联系中的角色联系中的角色 y实体集在联系中的作用实体集在联系中的作用 y参与联系的实体集互异参与联系的实体集互异 x只标注联系名只标注联系名 y同一实体集在一个联系中多次出现同一实体集在一个联系中多次出现 x标注联系名及角色名标注联系名及角色名 sequel-of movies original sequel stars movies c

20、ontracts studios studio of starproducing studio 43 z联系中的属性联系中的属性 y联系中可以包含属性联系中可以包含属性 x由联系而产生的属性由联系而产生的属性 y可为由联系产生的属性建立实体集可为由联系产生的属性建立实体集 starsmovies contracts studios salary 44 z将多向联系转换成二元联系将多向联系转换成二元联系 y新增连接实体集新增连接实体集 y引入连接实体集至原实体集的多对一的联系引入连接实体集至原实体集的多对一的联系 45 2.3 2.3 设计原则设计原则 z真实性真实性 y设计应当忠于规范设计应当

21、忠于规范 y存什么存什么 z避免冗余避免冗余 y任何事物只表达一次任何事物只表达一次 z避免引入过多的元素避免引入过多的元素 z选择合适的元素类型选择合适的元素类型 y属性?属性? y类类/实体集?实体集? y联系集?联系集? 46 2.4 2.4 子类子类 z特殊化与概括特殊化与概括 z子类与超类子类与超类 z属性的继承属性的继承 47 zodl中的子类中的子类 y子类继承其超类的所有特性子类继承其超类的所有特性 x属性属性 x联系联系 interface cartoon : movie relationship set voices; 48 zodl中的多重继承中的多重继承 y类的层次类的

22、层次 y一个类可以有多个超类一个类可以有多个超类 interface murdermystery : movie attribute string weapon; interface cartoon-murdermystery : cartoon,murdermystery 49 ze/r中的子类中的子类 yisa ze/r中的继承中的继承 50 2.5 2.5 对约束的建模对约束的建模 z建模包含对现实世界的对象及联系的描述,也包建模包含对现实世界的对象及联系的描述,也包 含对它们的一些约束含对它们的一些约束 y键码键码 y单值约束单值约束 y参照完整性约束参照完整性约束 y域的约束域的约束

23、 y一般约束一般约束 51 z键码键码 y在类的范围内唯一标识一个对象(或者在实体集的范在类的范围内唯一标识一个对象(或者在实体集的范 围内唯一标识一个实体)的属性或属性集围内唯一标识一个实体)的属性或属性集 y一个类中的两个对象(或一个实体集中的两个实体)一个类中的两个对象(或一个实体集中的两个实体) 在构成键码的属性集上取值不能相同在构成键码的属性集上取值不能相同 yodl中键码的表示中键码的表示 interface movie ( key (title,year) ) 52 z超码超码 y一个或多个属性的集合,能在一个实体集中唯一地标一个或多个属性的集合,能在一个实体集中唯一地标 识一个

24、实体识一个实体 y一个类(或实体集)中可能有多个超码一个类(或实体集)中可能有多个超码 z候选码候选码 y其任意真子集都不为超码的超码其任意真子集都不为超码的超码 y一个类(或实体集)中可能有多个候选码一个类(或实体集)中可能有多个候选码 z主码主码 y从候选码中选取的一个,一个类(实体集)中只有一从候选码中选取的一个,一个类(实体集)中只有一 个主码个主码 ye / r图中只能表示主码:主码属性名加上下划线图中只能表示主码:主码属性名加上下划线 53 z单值约束单值约束 y要求某个角色的值是唯一的,如键码要求某个角色的值是唯一的,如键码 y当一个属性为单值时当一个属性为单值时 x可以要求该属

25、性值存在(可以要求该属性值存在(not null) x可以允许该属性值任选(可以允许该属性值任选(null) y构成键码的属性,必须有值存在(构成键码的属性,必须有值存在(not null) 54 z参照完整性约束参照完整性约束 y要求由某个对象引用的值在数据库中确实存在要求由某个对象引用的值在数据库中确实存在 y参照与被参照、引用与被引用参照与被参照、引用与被引用 y参照完整性约束的操作(各产品不同)参照完整性约束的操作(各产品不同) x禁止删除被引用的对象禁止删除被引用的对象 x级联删除级联删除 / 修改修改 ye/r图中参照完整性的表示图中参照完整性的表示 movies studios

26、owns 55 2.6 2.6 弱实体集弱实体集 z弱实体集弱实体集的属性不足以形成主码的属性不足以形成主码 z有主码的实体集称为有主码的实体集称为强实体集强实体集 z弱实体集只有作为一对多联系的一部分(多)才弱实体集只有作为一对多联系的一部分(多)才 有意义有意义 z弱实体集与其拥有者之间的联系是弱实体集与其拥有者之间的联系是标识性联系标识性联系 crewsunit-ofstudios numbernameaddr 56 2.7 2.7 关于联系集关于联系集 z联系集的成份联系集的成份 y参加联系的实体集的主码参加联系的实体集的主码 y联系集的属性联系集的属性 z联系中属性的决策联系中属性的

27、决策(二元联系二元联系) y1:1 联系集的属性:放到任意一端联系集的属性:放到任意一端 y1:n 联系集的属性:放到联系集的属性:放到 n 端端 yn:m联系集的属性:只能留在联系集中联系集的属性:只能留在联系集中 57 z联系集的取舍(二元联系)联系集的取舍(二元联系) y1:1联系:将一端的主码作为另一端的属性联系:将一端的主码作为另一端的属性 y1:n联系:将一端的主码作为联系:将一端的主码作为 n 端的属性端的属性 yn:m联系:必须保留联系集联系:必须保留联系集 z联系集的键码(二元联系)联系集的键码(二元联系) y1:1联系:任意一端的主码联系:任意一端的主码 y1:n联系:联系

28、:n端的主码端的主码 yn:m联系:参加联系的所有实体集的主码联系:参加联系的所有实体集的主码 58 zodl、e/r建模建模 y关心:存什么数据、关系如何关心:存什么数据、关系如何 y不关心:用什么数学模型、不关心:用什么数学模型、dbms产品产品 y透过透过e/r图,便于与用户交流图,便于与用户交流 59 z作业作业 y思考所有带思考所有带*的练习,并上网查阅解答的练习,并上网查阅解答 y练习练习2.1.7 / 2.2.8 / 2.3.2 / 2.5.3 / 2.5.4 /2.6.4(a) 61 zodl、e/r到关系模型的转换到关系模型的转换 z关系模型的设计理论关系模型的设计理论 62

29、 3.1 3.1 关系模型的基本概念关系模型的基本概念 z逻辑数据模型逻辑数据模型 y是用户从数据库所看到的数据模型是用户从数据库所看到的数据模型 y与与dbms有关有关 y层次、网状、关系、面向对象层次、网状、关系、面向对象 63 z关系数据模型关系数据模型 y数据结构数据结构 x两维的扁平表两维的扁平表 y数据操作数据操作 x关系代数关系代数 x关系演算关系演算 y数据的完整性数据的完整性 x实体完整性实体完整性 x参照完整性参照完整性 x用户定义的完整性用户定义的完整性 64 z现实世界的实体以及实体间的各种联系均用关现实世界的实体以及实体间的各种联系均用关 系表示系表示 z关系数据库系

30、统是建立在关系模型上的数据库关系数据库系统是建立在关系模型上的数据库 系统系统 z关系数据库是表的集合关系数据库是表的集合 65 z模型和模式模型和模式 y数据模型是描述数据的手段数据模型是描述数据的手段 y数据模式是用给定的数据模型对具体数据的数据模式是用给定的数据模型对具体数据的 描述描述 z属性属性 z元组元组 z域域 y型型 y值值 z联系联系 y关系的联系是通过关联属性的值连接的关系的联系是通过关联属性的值连接的 66 snosnosnamesnamessexssexsagesagesdeptsdept 9500195001张三张三男男2525cscs 9500295002李四李四女

31、女2424cscs 9610196101王五王五男男2323mama 9600196001赵六赵六男男2323cscs 关系关系 ( 表表 ) 属性属性 (列、字段列、字段) 元组元组 (行、记录行、记录) 域域(string,男,女男,女) student ( sno, sname, ssex, sage, sdept ) 67 z关系实例关系实例 y关系关系 实体集、类实体集、类 y关系的实例关系的实例 元组的集合元组的集合 y元组元组 实体、对象实体、对象 y数据库实例数据库实例 给定时刻数据库中数据的一给定时刻数据库中数据的一 个快照个快照 68 3.2 3.2 从从odlodl设计到

32、设计到关系设计关系设计 zodl设计是概念设计的产物设计是概念设计的产物 ( using oo ) zodl描述描述 关系模式关系模式 实现实现 69 zodl属性属性 关系属性关系属性 y原子属性原子属性 x类类 关系关系 x属性属性 属性属性 y非原子属性(复杂数据类型)非原子属性(复杂数据类型) x必须转换成原子属性必须转换成原子属性 x记录结构记录结构 结构的每个结构的每个item对应一个属性对应一个属性 x多值集合多值集合 针对每个值建立一个元组针对每个值建立一个元组 会产生冗余会产生冗余 需规范化需规范化 70 zodl属性属性 关系属性关系属性 (续)(续) y其他类型属性其他类

33、型属性 x(包、数组、列表)(包、数组、列表) 针对每个元素建立一个元组针对每个元素建立一个元组 增加一个记数属性,表示包的成员号增加一个记数属性,表示包的成员号 x定长数组定长数组 扩展为多个属性扩展为多个属性 71 zodl联系联系 关系描述关系描述 y单值联系单值联系 x联系的类型为一个类联系的类型为一个类 x增加一个(组)属性,存放相关类的键码属性增加一个(组)属性,存放相关类的键码属性 (组)(组) x将类之间的联系将类之间的联系 关系之间的联系关系之间的联系 72 zodl联系联系 关系描述关系描述(续)(续) y多值联系多值联系 x联系的类型为某个类的集合类型联系的类型为某个类的

34、集合类型 x1 : n、n : m x增加一个键码属性增加一个键码属性 x为集合的每个成员建立一个元组为集合的每个成员建立一个元组 x其他原始属性重复多次(与集合成员的个数相其他原始属性重复多次(与集合成员的个数相 等)等) x导致大量的冗余,需要规范化导致大量的冗余,需要规范化 73 z键码是必需的键码是必需的 y选择合适的属性(组)作为键码选择合适的属性(组)作为键码 x学号、工号、身份证号学号、工号、身份证号. x增加计数属性增加计数属性 z联系与反向联系联系与反向联系 y在联系的双方均有联系的描述在联系的双方均有联系的描述 冗余冗余 yodl:双向描述:双向描述 ye/r:相关的键码值

35、进行连接:相关的键码值进行连接 74 3.3 3.3 从从e/re/r图到图到关系的设计关系的设计 ze/r与与odl描述的差异描述的差异 y联系作为独立的概念联系作为独立的概念 联系嵌套在类定义中联系嵌套在类定义中 y结构化数据结构化数据 允许使用集合、聚集类型允许使用集合、聚集类型 y联系可以有属性联系可以有属性 联系无属性联系无属性 ze/r 关系模式关系模式 实现实现 75 z实体集到关系的转换实体集到关系的转换 y非弱实体集非弱实体集 x实体集名实体集名 关系名关系名 x属性属性 属性属性 y弱实体集弱实体集 x为弱实体集建立关系为弱实体集建立关系 x属性:弱实体集的属性属性:弱实体

36、集的属性 + 辅助实体集的键码辅助实体集的键码 76 ze/r联系到关系的转换联系到关系的转换 y用关系表示联系用关系表示联系 x联系名联系名 关系名关系名 x属性属性 属性属性 + 相关实体集的键码属性(集)相关实体集的键码属性(集) y多向联系的转换多向联系的转换 x注意,属性的命名注意,属性的命名 77 3.4 3.4 子类结构到关系的转换子类结构到关系的转换 zodl中的子类中的子类 y一个对象完全属于一个类一个对象完全属于一个类 y子类继承其超类的特性子类继承其超类的特性 ze/r中的子类中的子类 y分层结构通过与分层结构通过与isa联系有关的实体集进行联系有关的实体集进行 扩展扩展

37、 78 z用关系表示用关系表示odl子类子类 y每个子类都有自己的关系每个子类都有自己的关系 y包含包含该子类的所有特性该子类的所有特性(含继承特性)(含继承特性) y在一个关系中含有所有属性在一个关系中含有所有属性 movie(title,year,length,filmtype,studioname,starna me) cartoon (title,year,length,filmtype,studioname,starname,v oice) murdermystery (title,year,length,filmtype,studioname,starname,w eapon) c

38、artoon- murdermystery (title,year,length,filmtype,studioname,starname,v oice, weapon) 79 z在关系模型中表示在关系模型中表示 isa 联系联系 y子类的信息被分散到上层的几个关系中子类的信息被分散到上层的几个关系中 y与与isa联系有关的实体集拥有相同的键码联系有关的实体集拥有相同的键码 movie(title,year,length,filmtype) cartoon(title,year) murdermystery(title,year, weapon) voice(title,year,name)

39、80 z使用使用null值合并关系值合并关系 y将关系描述成一个将关系描述成一个全集全集 y属性:所有可能的属性属性:所有可能的属性 y描述:允许描述:允许null值值 x层次越高,取层次越高,取null值的属性越多值的属性越多 movie (title,year,length,filmtype,studioname,starname, voice, weapon) y只是一种方法而已只是一种方法而已 81 z作业作业 y思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答 y练习练习3.2.3 / 3.3.1 / 3.4.1 / 3.5.3 / 82 3.5 3.5 函数依赖函

40、数依赖 z数据依赖数据依赖 y函数依赖函数依赖 y多值依赖多值依赖 z数据依赖是针对数据模式,而不是特定的实例数据依赖是针对数据模式,而不是特定的实例 83 z函数依赖(函数依赖(fd) y属性之间的联系属性之间的联系 y假设给定假设给定 x 属性的值,就知道属性的值,就知道 y的值,那么的值,那么 x 函数决定函数决定 y y如果如果r的两个元组在属性的两个元组在属性a1,a2,an上一致,上一致, 则它们在另一个属性则它们在另一个属性b上也一致,那么上也一致,那么 a1,a2,an函数决定函数决定b,记作,记作a1a2anb yif a1a2anb1then a1a2anb2a1a2an

41、b1 b2 . bm a1a2anbm 84 z关系的键码关系的键码 如果一个或多个属性的集合如果一个或多个属性的集合a1a2an满足如满足如 下条件,则该集合为关系下条件,则该集合为关系r的键码:的键码: 1.这些属性函数决定该关系的所有其他属性这些属性函数决定该关系的所有其他属性 2. a1a2an的任何真子集都不能函数决定的任何真子集都不能函数决定r 的所有其他属性的所有其他属性 85 z超键码超键码 y包含键码的属性集称为超键码包含键码的属性集称为超键码 86 z寻找关系的键码(来自寻找关系的键码(来自e/r) y来自实体集的关系的键码就是该实体集的键码来自实体集的关系的键码就是该实体

42、集的键码 属性属性 y对于二元联系对于二元联系r: xn:m,相关两个实体的键码都是,相关两个实体的键码都是r的键码属性的键码属性 xn:1,多端实体集的键码是,多端实体集的键码是r的加码属性的加码属性 x1:1,任意一端实体集的键码是,任意一端实体集的键码是r的键码的键码 y对于多向联系对于多向联系r: x如果多向联系如果多向联系r有一个箭头指向实体集有一个箭头指向实体集e,则响应,则响应 的关系中,除了的关系中,除了e的键码以外,至少还存在一个键的键码以外,至少还存在一个键 码。码。 87 z寻找关系的键码(来自寻找关系的键码(来自odl) y来自来自odl的关系的键码的关系的键码不一定不

43、一定就是该类的键码就是该类的键码 属性属性 y对于单值联系对于单值联系r: x类类c有一个指向类有一个指向类d的单值联系,的单值联系,c的关系中包含的关系中包含d 的键码。的键码。c的键码仍是相应关系的键码的键码仍是相应关系的键码 y对于多值联系对于多值联系r: x被引用类的键码加入到引用类的键码组合称为键码被引用类的键码加入到引用类的键码组合称为键码 88 3.6 3.6 函数依赖规则函数依赖规则 z分解规则分解规则 a1a2an b1 b2 . bm 等价于等价于 a1a2an bi z合并规则合并规则 a1a2an bi 等价于等价于 a1a2an b1 b2 . bm 89 z平凡的函

44、数依赖平凡的函数依赖 y如果对于函数依赖如果对于函数依赖 a1a2an b,b是是a中的中的 一个,则该函数依赖就是平凡的函数依赖一个,则该函数依赖就是平凡的函数依赖 y平凡依赖是永恒的平凡依赖是永恒的 ytitle,year title z非平凡非平凡 y如果如果b中至少有一个属性不在中至少有一个属性不在a中中 ytitle,year year,length z完全非平凡完全非平凡 y如果如果b中没有一个属性在中没有一个属性在a中中 ytitle,year length 90 z计算属性的闭包计算属性的闭包 y闭包闭包 xf的闭包是指的闭包是指f逻辑蕴涵的所有函数依赖的集合,逻辑蕴涵的所有函

45、数依赖的集合, 记作记作f+ y闭包的意义闭包的意义 x检验给定的函数依赖是否蕴涵于某个函数依赖集检验给定的函数依赖是否蕴涵于某个函数依赖集s x从给定的函数依赖,可以推导出蕴涵的函数依赖从给定的函数依赖,可以推导出蕴涵的函数依赖 y求闭包求闭包 x例:对关系例:对关系r(a,b,c,d,e,f),给定函数依赖给定函数依赖 abc,bcad,de,cfb,求求 a,b+ 91 z关系的基与最小基关系的基与最小基 y任何一个能从中导出关系的任何一个能从中导出关系的所有所有依赖的依赖的给定依给定依 赖集赖集,称为该关系的一个,称为该关系的一个基基 y如果一个基的任何如果一个基的任何真子集真子集都不

46、能推导出该关系都不能推导出该关系 的依赖全集,则称此基为的依赖全集,则称此基为最小基最小基 y求函数依赖的最小基求函数依赖的最小基 x例:对关系例:对关系r(a,b,c,d),有),有abc,bc,a b,ab c,ac d,求最小函数依赖集求最小函数依赖集 92 3.7 3.7 关系数据库模式设计关系数据库模式设计 z什么是好的数据库设计什么是好的数据库设计 y体现客观世界的信息体现客观世界的信息 y无过度的冗余无过度的冗余 y无插入异常无插入异常 y无更新复杂无更新复杂 y无删除异常无删除异常 93 titleyearlengthfilmtypestudionamestarname sta

47、r wars1977124colorfoxcarrie fisher star wars1977124colorfoxmark hamill star wars1977124colorfoxharrison ford mighty ducks1991104colordisneyemilio estevez waynes world199195colorparamountdana carvey waynes world199295colorparamountmike meyers 冗余冗余! 更新复杂更新复杂! 删除异常删除异常! 94 z异常的原因异常的原因 y数据依赖的约束数据依赖的约束 z

48、解决方法解决方法 y数据库设计的规范化数据库设计的规范化分解分解 95 z范式范式(normal forms) y规范化规范化 y一个关系满足某个范式所规定的一系列条一个关系满足某个范式所规定的一系列条 件时件时,它就属于该范式它就属于该范式 y可以用规范化要求来设计数据库可以用规范化要求来设计数据库 y也可以用来验证设计结果的合理性,用其也可以用来验证设计结果的合理性,用其 指导优化过程指导优化过程 z1nf2nf3nfbcnf4nf 96 z第一范式第一范式(1nf) y当且仅当一个关系当且仅当一个关系r中,每一个元组的每中,每一个元组的每 一个属性只含有一个值时,该关系属于第一个属性只含

49、有一个值时,该关系属于第 一范式。一范式。 y要求属性是原子的要求属性是原子的 97 z第二范式第二范式(2nf) y对于关系对于关系r,若,若r1nf,且每一个非主属,且每一个非主属 性完全函数依赖于码,则性完全函数依赖于码,则r2nf。 y不能部分依赖于码不能部分依赖于码 sc(sno,sname,cno,grade) sno,cnograde snosname sno cno grade sname 完全依赖完全依赖 非完全依赖非完全依赖 98 z第三范式第三范式(3nf) y对于关系对于关系r,若,若r2nf,且,且每个每个非主属性非主属性 都不传递依赖于码,则都不传递依赖于码,则r3

50、nf。 y主属性可以传递依赖于码主属性可以传递依赖于码 student(sno,sname,sdept,dept_manag er) snosname,sdept sdeptdept_manager 传递依赖:传递依赖:snodept_manager sno sdept sname dept_manager 99 zboyce/codd范式范式(bcnf) y对于关系对于关系r,若,若r1nf,且,且所有所有非平凡的函数非平凡的函数 依赖,其决定因素是候选码,则依赖,其决定因素是候选码,则rbcnf。 sct(s,c,t)/学生,课程,教师学生,课程,教师 tc/每位教师只上一门课每位教师只上

51、一门课 (s,c)t (s,t)c/每门课有若干位教师每门课有若干位教师 s c t s t c sct3nf,sctbcnf 100 z最高范式最高范式 ybcnf是基于函数依赖的最高范式是基于函数依赖的最高范式 y但不是数据库模式设计的最高范式但不是数据库模式设计的最高范式 101 z范式优化范式优化 y分解分解 xa1,a2,an = b1,b2,bnc1,c2,cn y分解的要求分解的要求 x无损连接无损连接 bcb或或bcc x保持依赖保持依赖 x范式要求范式要求 bc c c f f b b f f a a f f 102 z分解到高层范式(基于分解到高层范式(基于fd) 1. 找

52、出一个不符合范式要求的找出一个不符合范式要求的fd(xy),),并并 使其右端的属性尽可能地多(使其右端的属性尽可能地多(求出求出x+) 2. 创建新的模式,包含上述创建新的模式,包含上述fd的所有(左右)的所有(左右) 属性(属性(x+的所有属性的所有属性) 3. 创建另一模式,包含前述创建另一模式,包含前述fd中的决定因素及中的决定因素及 剩余的所有属性剩余的所有属性(u-x+)x) 4. 反复反复13,直至符合范式要求,直至符合范式要求 103 3.8 3.8 多值依赖多值依赖 zbcnf y仍有异常仍有异常 namestreetcitytitleyear c.fisher123 map

53、le st.hollywoodstar wars1977 c.fisher5 locust ln.mailbustar wars1977 c.fisher123 maple st.hollywoodempire strikes back1980 c.fisher5 locust ln.mailbuempire strikes back1980 c.fisher123 maple st.hollywoodreturn of the jedi1983 c.fisher5 locust ln.mailbureturn of the jedi1983 104 z多值依赖(多值依赖(mvd) 按按p.1

54、10的定义的定义 xyz ta1aiai+1ajaj+1an ua1aibi+1bjbj+1bn va1aiai+1ajbj+1bn wa1aibi+1bjaj+1an 105 z多值依赖(多值依赖(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

55、的取值与的取值与z的取值无关的取值无关 106 z给定一对给定一对(x,z)值,有一组值,有一组y的值的值 xyz ta1aiai+1ajaj+1an wa1aibi+1bjaj+1an ua1aibi+1bjbj+1bn va1aiai+1ajbj+1bn 107 namestreetcitytitleyear c.fisher123 maple st.hollywoodstar wars1977 c.fisher123 maple st.hollywoodempire strikes back1980 c.fisher123 maple st.hollywoodreturn of the

56、jedi1983 c.fisher5 locust ln.mailbustar wars1977 c.fisher5 locust ln.mailbuempire strikes back1980 c.fisher5 locust ln.mailbureturn of the jedi1983 nametitle,year 108 z平凡的多值依赖平凡的多值依赖 y 如果如果x包含包含y或或 xy=u,则,则xy是平凡的是平凡的 多值依赖多值依赖 z性质性质 y if xy,and yz then xz-y y if xy,and z=u-x-y then xz y if xy then xy

57、 z 无分解无分解/合并规则合并规则 109 z第四范式(第四范式(4nf) y 对于关系对于关系r,若,若r1nf,且,且所有所有非平凡的多非平凡的多 值依赖,其决定因素是候选码,则值依赖,其决定因素是候选码,则r4nf。 y 基于数据依赖的最高范式基于数据依赖的最高范式 y 分解要求分解要求 x 无损连接无损连接 x 保持依赖保持依赖 x 4nf 110 1983return of the jedihollywood123 maple st.c.fisher 1980empire strikes backhollywood123 maple st.c.fisher 1983return o

58、f the jedimailbu5 locust ln.c.fisher 1980empire strikes backmailbu5 locust ln.c.fisher 1977star warsmailbu5 locust ln.c.fisher 1977star warshollywood123 maple st.c.fisher yeartitlecitystreetname nametitle,year namestreet,city all key is bcnf isnt 4nf r1(name,title,year) r2(name,street,city) all key

59、is 4nf 111 z范式间的联系范式间的联系 y 高层范式包含低层范式高层范式包含低层范式 y 分解特性分解特性 特性特性3nfbcnf4nf 消除消除 fd 引起的冗余引起的冗余大部分大部分是是是是 消除消除 mvd 引起的冗余引起的冗余否否否否是是 保持保持 fd是是可能可能可能可能 保持保持 mvd可能可能可能可能可能可能 112 z作业作业 y思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答 y练习练习3.7.5/3.8.3/ 第四章第四章 关系模型中的运算关系模型中的运算 114 概述 z数据库的核心应用是数据库的核心应用是数据库的查询数据库的查询 z查询语言查

60、询语言 y用户用来从数据库中请求获取信息的语言用户用来从数据库中请求获取信息的语言 y关系代数关系代数是过程化的查询语言是过程化的查询语言 y关系代数是一种关系代数是一种抽象抽象的查询语言的查询语言 115 4.1 4.1 关系代数关系代数 z运算对象:关系运算对象:关系 z运算结果:关系运算结果:关系 116 关系代数 z关系代数的运算关系代数的运算 y普通的集合运算普通的集合运算 x并、交、差并、交、差 y删除部分关系的运算删除部分关系的运算 x选择、投影选择、投影 y合并两个关系元组的运算合并两个关系元组的运算 x连接、积连接、积 y改名运算改名运算 117 关系代数 并union ()

温馨提示

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

评论

0/150

提交评论