SlideShare a Scribd company logo
1 of 95
第 2 章  关系数据库基本原理
本章内容 ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.1  关系数据库概述 ,[object Object],[object Object],表 2-1  关系模型示例 韶山北路 55 号 男 张明华 E005 仓储部 D004 公司集体宿舍 女 肖海燕 E004 销售部 D003 公司集体宿舍 男 郭文斌 E003 市场部 D002 五一北路 25 号 男 东方牧 E002 总经理办 D001 东风路 78 号 男 钱达理 E001 总经理办 D001 住址 性别 员工姓名 员工编号 部门名称 部门编号
关系数据模型 ,[object Object],[object Object],[object Object],[object Object],[object Object]
单一数据结构 ,[object Object],[object Object],[object Object],3 操作系统 04 3 数据库 03 3 C 语言 02 4 数据结构 01 课程 选修 学生 IE 田七 02221 CS 王五 03123 MA 李四 02210 CS 张三 03001 90 02210 02 03123 02 98 03001 03 89 02221 03 03123 04 74 03123 01 88 02210 01 95 03001 01
2.1  关系数据库概述 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.1  关系数据库概述 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.1  关系数据库概述 ,[object Object],[object Object]
2.1  关系数据库概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
关系模型的完整性约束 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
实体完整性 ,[object Object],[object Object],课程(课程号,课程名,学分) 选修(课程号,学号,成绩) 3 数据库 03 3 操作系统 04 3 JAVA 语言 3 C 语言 02 4 数据结构 01 90 02210 02 03123 02 98 03001 03 89 02221 03 03123 04 74 03123 01 88 02210 01 95 03001 01
参照完整性 ,[object Object],Student Department 主码 外码不是 student 的主码,但是 department 的主码 田七 … 李四 张三 Sname 女 … 男 男 Ssex MA 21 02210 … … … IE 20 02221 CS 20 03001 Sdept Sage Sno 数学 C 楼 MA … … … 信息 B 楼 IS 计算机 A 楼 CS Sname Sloc Sdept
用户定义的完整性 ,[object Object],[object Object],[object Object],[object Object]
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],i=1 n
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
笛卡尔积示例 李四 王五 张三 D1 C 语言 高数 D2 高数 李四 C 语言 王五 C 语言 张三 王五 李四 张三 C 语言 高数 高数 D1×D2 高数 李四 C 语言 王五 选修 高数 张三 C 语言 李四
关系中的码 所有属性共同组成关系模式的候选码 全码 不是当前关系的码,但是其他关系中的主码 外码 码含有多个属性 合成码 多个候选码中的主要应用属性组,其中的每个属性都称为主属性,不属于任何候选码的属性称为非码属性 主码 能唯一标示一个元组的属性组 候选码 码
关系模式 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
关系代数 ,[object Object],[object Object]
关系代数运算 ,[object Object],大于等于 大于 小于等于 小于 等于 不等于 ≥ > ≤ < = ≠ 比较运算符 广义笛卡尔积 选择 投影 连接 除 × σ ∏ ∞ % 专门的关系运算符 非 与 或 ┐ Λν 逻辑运算符 并 差 交 ∪ - ∩ 集合运算符 含义 运算符 含义 运算符
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
传统的集合运算 ,[object Object],[object Object],[object Object],R S
传统的集合运算 ,[object Object],[object Object],[object Object],R S
传统的集合运算 ,[object Object],[object Object],[object Object],R S
传统的集合运算 ,[object Object],[object Object],[object Object],R S R  × S
2.2  关系代数的基本原理 ,[object Object],[object Object],A∪B={( 湖南,长沙 ) , ( 河北,石家庄 ) , ( 陕西,西安 ) , ( 湖  北,武汉 ) , ( 广东,广州 ) , ( 广东,深圳 )} A∩B={( 陕西,西安 )} A-B={( 湖南,长沙 ) , ( 河北,石家庄 )}
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],F:A<19 18 16 17 20 19 18 21 16 17
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A=(c,d,f) a b e c d f R c d f
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],R S t r [A] t s [B] 18 19 21 20 16 18 23 17 18 18 19 23 21 23 18 23 20 23 16 16 16 18 23 17 R ∞S A <=B
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],R S A3 A4 18 18 21 20 17 18 23 17 18 18 18 18 17 17 R ∞S A3 =A4
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],[object Object],R S A3 A4 18 18 18 18 17 17 18 18 21 20 17 18 23 17 R  * S
专门的关系运算 ,[object Object],[object Object],[object Object],[object Object],[object Object]
除的示例 C504 07605 C502 07604 C504 07603 C501 07603 C503 07602 C502 07602 C501 07602 C504 07601 C504 C502 07601 C501 C501 07601 cno cno sno 关系 S 关系 R
除的示例 X={sno},Y={cno} R/S={07601,07603} 实际意义是:求至少选修了 C501, C504 课程的学生学号 {C501, C504} {C504} 07605 {C501, C504} {C502} 07604 {C501, C504} {C501,  C504} 07603 {C501, C504} {C501, C502, C503} 07602 {C501, C504} {C501, C502, C504} 07601 S[Y] 象集 Y x X 取 x 值
2.2  关系代数的基本原理 ,[object Object],[object Object],[object Object],[object Object],解: (1)  R={( 钱达理 , 男 , 总经理办 , 东风路 78 号 ) , ( 钱达理 , 男 , 销售部 , 五一北路 25 号 ) , ( 东方牧 , 男 , 总经理办 , 东风路 78 号 ) , ( 东方牧 , 男 , 销售部 , 五一北路 25 号 )} 。 R 是一个包含 4 个元组的 4 元关系。 (2)   ∏ (R)={( 钱达理 , 总经理办 , 东风路 78 号 ) , ( 钱达理 , 销售部 , 五一北路 25 号 ) , ( 东方牧 , 总经理办 , 东风路 78 号 ) , ( 东方牧 , 销售部 , 五一北路 25 号 )} (3)  R[S]={( 钱达理 , 总经理办 , 东风路 78 号 )}
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],表  2-2  一个不好的关系模式 8500.00 2 交换机 周昌  韦力电子实业公司 S003  480.00 5 喷墨打印机 周昌  韦力电子实业公司 S003  10200.00 5 笔记本计算机 方胜力 湘江计算机外设公司 S002  2800.00 5 激光打印机 施宾彬 华科电子有限公司 S001  9800.00 10 笔记本计算机 施宾彬 华科电子有限公司 S001  单价 订货数量 商品名称 联系人 供应商名称 供应商代码
2.3  关系模式的分解 ,[object Object]
关系数据理论 ,[object Object],[object Object],[object Object],[object Object]
关系数据库设计中的异常问题 ,[object Object],[object Object],[object Object],[object Object],[object Object]
示例数据 ,[object Object],[object Object],85 生产管理 李瑞 管理系 丁七 060704 79 技术经济 李瑞 管理系 丁七 060704 75 市场营销 李瑞 管理系 丁七 060704 70 生产管理 李瑞 管理系 王五 060703 93 技术经济 李瑞 管理系 王五 060703 82 市场营销 李瑞 管理系 王五 060703 75 生产管理 李瑞 管理系 李四 060702 88 技术经济 李瑞 管理系 李四 060702 90 市场营销 李瑞 管理系 李四 060702 80 生产管理 李瑞 管理系 张三 060701 78 技术经济 李瑞 管理系 张三 060701 86 市场营销 李瑞 管理系 张三 060701 成绩 (2) 课程名 (10) 系负责人 (8) 系名 (8) 姓名 (8) 学号 (6)
数据冗余 ,[object Object],[object Object],[object Object],[object Object]
更新异常 ,[object Object],[object Object],[object Object],[object Object]
插入异常 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
删除异常 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],ƒ  p   ƒ
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],ƒ  t   t
码 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ƒ
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
范式 ,[object Object],[object Object]
第 1 范式 ,[object Object],[object Object],[object Object],[object Object]
第 2 范式 ,[object Object],[object Object],[object Object],[object Object]
第 2 范式 ,[object Object],[object Object],[object Object],[object Object]
规范化结果 ,[object Object],李瑞 管理系 丁七 060704 李瑞 管理系 王五 060703 李瑞 管理系 李四 060702 李瑞 管理系 张三 060701 系负责人 (8) 系名 (8) 姓名 (8) 学号 (6)
规范化结果 ,[object Object],规范化前总字节数 =  (6+8+8+8+10+2)*12=504B 规范化后总字节数 = (6+8+8+8)*4+(6+10+2)*12= 120B+216B=336B 85 生产管理 060704 79 技术经济 060704 75 市场营销 060704 70 生产管理 060703 93 技术经济 060703 82 市场营销 060703 75 生产管理 060702 88 技术经济 060702 90 市场营销 060702 80 生产管理 060701 78 技术经济 060701 86 市场营销 060701 成绩 (2) 课程名 (10) 学号 (6)
异常问题缓解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
第 3 范式 ,[object Object],[object Object],[object Object]
第 3 范式 ,[object Object],[object Object],[object Object]
规范化结果 ,[object Object],[object Object],[object Object],[object Object],规范化前学生情况表总字节数 = (6+8+8+8)*4=120B 规范化后总字节数 =(8+8)*1+(6+8+8)*4=104B 李瑞 管理系 系负责人 (8) 系名 (8) 管理系 丁七 060704 管理系 王五 060703 管理系 李四 060702 管理系 张三 060701 系名 (8) 姓名 (8) 学号 (6)
异常问题缓解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
进一步优化 ,[object Object],[object Object],优化前总字节数 = (8+8)*1+(6+8+8)*4=104B 优化后总字节数 =  (2+8+8)*1+(6+8+2)*4=82B MD 系号 (2) 李瑞 管理系 系负责人 (8) 系名 (8) MD 丁七 060704 MD 王五 060703 MD 李四 060702 MD 张三 060701 系号 (2) 姓名 (8) 学号 (6)
2.3  关系模式的分解 ,[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3  关系模式的分解 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],图 2-2  E-R 模型到关系模型的转化过程 1 .独立实体到关系模型的转化 一将每个实体集转换为对应的一个关系模式,实体集的属性就是关系的属性。  E - R 模型 关系模型 对问题进行分析 转化
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],图 2-3  学生实体的 E-R 图 学  生 学  号 民  族 籍  贯 姓  名
2.5  数据库的设计方法 ,[object Object],[object Object],图 2-4  1:1  联系到关系模型的转化 1 1 经  理 公  司 领  导 姓  名 住  址 出生年月 电  话 民  族 名  称 电  话 类  型 注册地
E-R 图分析方法 一对一 一对多
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],图 2-5  1:n 关系到关系模型的转化 1 n 学  生 班  级 属  于 姓  名 学  号 民  族 出生年月 名  称 班  号 系 年  级 专  业
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],图 2-6  m:n 关系到关系模型的转化  学  习 m n 学  生 学  号 姓  名 出生年月 民  族 课程号 课程名 学时数 课程 成绩
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 图 2-7  m:n 关系到关系模型的转化
[object Object],[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],图 2-8  自联系关系到关系模型的转化 姓  名 员工号 民  族 基本工资 职  务 住  址 领  导 员  工
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],销售公司 商品 供应商 客户 采购订单 销售订单 库存文件 图 2-8  某销售公司业务流程图
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 员工 销售订单 商品 采购订单 供应商 运输商 客户 图 2-9  数据实体之间的关系
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object]
2.5  数据库的设计方法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
本章小结 ,[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

Viewers also liked (10)

第7章 索引和视图
第7章 索引和视图第7章 索引和视图
第7章 索引和视图
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
 
第5章 sql server表的管理
第5章 sql server表的管理第5章 sql server表的管理
第5章 sql server表的管理
 
Resiliency in the cloud myths versus facts
Resiliency in the cloud myths versus factsResiliency in the cloud myths versus facts
Resiliency in the cloud myths versus facts
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计
 
Resiliency in the cloud myths versus facts
Resiliency in the cloud myths versus factsResiliency in the cloud myths versus facts
Resiliency in the cloud myths versus facts
 
第10章 (续)事务
第10章 (续)事务 第10章 (续)事务
第10章 (续)事务
 
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
 
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
 

第2章 关系数据库基本原理

  • 1. 第 2 章 关系数据库基本原理
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. 笛卡尔积示例 李四 王五 张三 D1 C 语言 高数 D2 高数 李四 C 语言 王五 C 语言 张三 王五 李四 张三 C 语言 高数 高数 D1×D2 高数 李四 C 语言 王五 选修 高数 张三 C 语言 李四
  • 18. 关系中的码 所有属性共同组成关系模式的候选码 全码 不是当前关系的码,但是其他关系中的主码 外码 码含有多个属性 合成码 多个候选码中的主要应用属性组,其中的每个属性都称为主属性,不属于任何候选码的属性称为非码属性 主码 能唯一标示一个元组的属性组 候选码 码
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. 除的示例 C504 07605 C502 07604 C504 07603 C501 07603 C503 07602 C502 07602 C501 07602 C504 07601 C504 C502 07601 C501 C501 07601 cno cno sno 关系 S 关系 R
  • 36. 除的示例 X={sno},Y={cno} R/S={07601,07603} 实际意义是:求至少选修了 C501, C504 课程的学生学号 {C501, C504} {C504} 07605 {C501, C504} {C502} 07604 {C501, C504} {C501, C504} 07603 {C501, C504} {C501, C502, C503} 07602 {C501, C504} {C501, C502, C504} 07601 S[Y] 象集 Y x X 取 x 值
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84. 2.5 数据库的设计方法 图 2-7 m:n 关系到关系模型的转化
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91. 2.5 数据库的设计方法 员工 销售订单 商品 采购订单 供应商 运输商 客户 图 2-9 数据实体之间的关系
  • 92.
  • 93.
  • 94.
  • 95.