第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算* 2.6关系数据库管理系统
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统
2.1关系数据库概述 ·关系数据库系统是支持关系模型的数据库系统 。 关系理论是建立在集合代数理论基础上的,关系 的定义和各种操作运算可以用集合代数给出 ·关系模型的三要素 -关系数据结构:二维表 关系操作:选择、投影、连接、除、并,交、差等查 询以及增、删、改 一完整性约束:实体、参照、自定义
2.1关系数据库概述 • 关系数据库系统是支持关系模型的数据库系统 • 关系理论是建立在集合代数理论基础上的,关系 的定义和各种操作运算可以用集合代数给出 • 关系模型的三要素 – 关系数据结构:二维表 – 关系操作:选择、投影、连接、除、并,交、差等查 询以及增、删、改 – 完整性约束 :实体、参照、自定义
关系数据语言 关系代数语言 ISBL 关系演算语言 元组关系演算语言 ALPHA,QUEL 域关系演算语言 QBE 具有关系代数和关系演算双重特点的语言SQL
关系数据语言 • 关系代数语言 ISBL • 关系演算语言 – 元组关系演算语言 ALPHA,QUEL – 域关系演算语言 QBE • 具有关系代数和关系演算双重特点的语言 SQL
2.2关系数据结构 。2.2.1关系 一域:域是一组具有相同数据类型的值的集合。值的个数 称为域的基数 -笛卡儿乘积:给定一组域:D1,D2,..Dn,域可以相 同,定义D1D2..Dn的笛卡儿乘积为: D1 XD2X......XDn={(d1,d2,......dn)diEDi,i=1, 2,.n};(d1,d2,...dn)称为一个元组 -关系(Relation):笛卡儿乘积D1×D2×...×Dn的任一 子集D',称作D1,D2,..Dn上的关系。 用R(D1,D2..Dn)来表示 D'中的每个元素(d1,d2,..dn)是关系的一个元组 实际应用中关系往往是笛卡儿乘积中有意义的子集构成 n=1是单元关系/一元关系;n=2是二元关系
2.2关系数据结构 • 2.2.1关系 – 域:域是一组具有相同数据类型的值的集合。值的个数 称为域的基数 – 笛卡儿乘积 :给定一组域:D1,D2,……Dn,域可以相 同,定义D1D2……Dn的笛卡儿乘积为: D1×D2×……×Dn={(d1,d2,……dn) |di∈Di,i=1, 2,……n} ; (d1,d2,……dn)称为一个元组 –关系(Relation):笛卡儿乘积D1×D2×……×Dn的任一 子集D’,称作D1,D2,……Dn上的关系。 用R(D1,D2……Dn)来表示 D’中的每个元素(d1,d2,……dn)是关系的一个元组 实际应用中关系往往是笛卡儿乘积中有意义的子集构成 n=1是单元关系/一元关系;n=2是二元关系
举例 ·域 -性别集={男、女}。基数=2 -月份集={1,2,3,4,5,6,7,8,9,10,11,12},基数=12 。 笛卡儿乘积 -D1=姓名集合={赵一平,钱峰,孙英} -D2=性别集合={男,女} -D3=年龄集合={16,17,18} ·关系 姓名 性别 年龄 赵一平 男 16 钱峰 男 17 孙英 女 17
举例 • 域 –性别集={男、女}。基数=2 –月份集={1,2,3,4,5,6,7,8,9,10,11,12},基数=12 • 笛卡儿乘积 –D1=姓名集合={赵一平,钱峰,孙英} –D2=性别集合={男,女} –D3=年龄集合={16,17,18} • 关系 姓名 性别 年龄 赵一平 男 16 钱峰 男 17 孙英 女 17
2.2.2关系模式 -关系的描述称为关系模式(Relation schema),一般表示 为R(U,D,DOM,F)其中,R是关系名,U是组成该关系的 属性集合,D为属性组U中属性所来自的域,DOM是属 性向域的映象集合,F是属性间数据的依赖关系集合。 2.2.3关系数据库 -在一个给定的现实世界领域里,所有实体及实体间的联 系的关系所构成的集合是一个关系数据库 -关系数据库有型和值之分:关系数据库的型也称关系数 据库模式,是对关系数据库的描述它包括若干域的定义 以及在这些域上定义的若干关系模式;关系数据库的值 也称为关系数据库,是这些关系模式在某一时刻对应的 关系的集合 -关系数据库的值与关系数据库模式通称为关系数据库
2.2.2关系模式 –关系的描述称为关系模式(Relation schema),一般表示 为R(U,D,DOM,F) 其中,R是关系名,U是组成该关系的 属性集合,D为属性组U中属性所来自的域,DOM是属 性向域的映象集合,F是属性间数据的依赖关系集合。 2.2.3关系数据库 –在一个给定的现实世界领域里,所有实体及实体间的联 系的关系所构成的集合是一个关系数据库 –关系数据库有型和值之分:关系数据库的型也称关系数 据库模式,是对关系数据库的描述它包括若干域的定义 以及在这些域上定义的若干关系模式;关系数据库的值 也称为关系数据库,是这些关系模式在某一时刻对应的 关系的集合 –关系数据库的值与关系数据库模式通称为关系数据库
2.3关系的完整性 实体完整性 -若属性A是基本关系R的主属性,则A不能取空值 参照完整性 -若属性(或属性组)F是基本关系R的外码,它与基本 关系S的主码Ks相对应(关系R、S不一定是不同的关 系),则对于R中的每一个元组在F上的取值必须: ·取空值(F的每个属性值均取空值) ·等于$中某个元组的主码值] ·自定义完整性
2.3关系的完整性 实体完整性 –若属性A是基本关系R的主属性,则A不能取空值 参照完整性 –若属性(或属性组)F是基本关系R的外码,它与基本 关系S的主码Ks相对应(关系R、S不一定是不同的关 系),则对于R中的每一个元组在F上的取值必须: • 取空值(F的每个属性值均取空值) • 等于S中某个元组的主码值 ] • 自定义完整性
2.4关系代数 ·关系代数由一组关系运算组成,是对于关系的操作集。关系 运算以一个或多个关系作为操作的对象,运算结果是一个新 的关系。用关系运算实现查询 ·关系代数运算符 -集合运算符:U(并)一(差)∩(交)×(笛卡儿积) -专门运算符:o选择Ⅱ投影冈连接÷除 -比较运算符:>≥《≤=≠ -逻辑运算符:非∧与V或 ·常用的关系运算 -交、并、差、笛卡儿积、投影、选择、连接、除 ·基本关系运算有 -并、差、笛卡儿积、投影、选择 ·同类关系:具有相同的度,且两个关系每个属性属同一个域
2.4关系代数 • 关系代数由一组关系运算组成,是对于关系的操作集。关系 运算以一个或多个关系作为操作的对象,运算结果是一个新 的关系。用关系运算实现查询 • 关系代数运算符 –集合运算符:∪(并)-(差)∩(交)×(笛卡儿积) –专门运算符:σ选择 П 投影 连接 ÷ 除 –比较运算符: > ≥ < ≤ = ≠ –逻辑运算符: 非 ∧与 ∨或 • 常用的关系运算 –交、并、差、笛卡儿积、投影、选择、连接、除 • 基本关系运算有 –并、差、笛卡儿积、投影、选择 • 同类关系:具有相同的度,且两个关系每个属性属同一个域
2.4.1传统的集合运算 假设: R Name Sex Age Zhang F 22 Wang M 25 Lu M 37 Chen F 27 S Name Sex Age Zhang F 22 Wang M 25 Lu F 30 Sun M 28
2.4.1传统的集合运算 假设: Name Sex Age Zhang F 22 Wang M 25 Lu M 37 Chen F 27 R Name Sex Age Zhang F 22 Wang M 25 Lu F 30 Sun M 28 S
并(Union): -同类关系R和S的并记为RUS,或R union S -定义:RUS=tt∈RVt∈S}注意去除重复元组 RUS Name Sex Age Zhang F 22 Wang M 25 Lu M 37 Chen F 27 Lu F 30 Sun M 28
并(Union): – 同类关系R和S的并记为R∪S,或R union S – 定义:R∪S={t|t∈R ∨ t∈S}注意去除重复元组 Name Sex Age Zhang F 22 Wang M 25 Lu M 37 Chen F 27 Lu F 30 Sun M 28 R∪S