数据库体系概论(第四版 王珊)2.1-2.3关系模型三要素
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系的类型
关系可以分为三种类型: (1)基本表: 是数据库实际存储数据的逻辑表示,是实际存在的表。 (2)视图表: 是由基本表或其他视图表导出的表,不对应实际存储 的数据,是虚表。 (3)查询表: 是对基本表或视图表进行查询,查询结果对应的表。
关系模式
定义:关系的描述称为关系模式。 它可以形式化的表示为: R(U,D,DOM,F) -其中, R 关系名 U 组成该关系的属性名集合 D 属性组U中属性所来自的域 DOM 属性向域的映象集合 F 属性间的数据依赖关系集合 关系模式是型,关系是值
关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对 应一个域。
表 2.2 SAP 关系
SUPERVISOR 张清玫 张清玫 刘逸 SPECIALITY 信息专业 信息专业 信息专业 POSTGRADUATE 李勇 刘晨 王敏
关系中的码
超键 侯选码(键) 在关系中能惟一标识元组的属性集称为 关系模式的超键。 不含多余属性的超键称为候选键 用户选作元组标识的候选键称为主键。 其中的每个属性都称为主属性。而不属 于任何侯选码 的属性叫作非主属性 如果模式R中属性K是其他模式的主键, 那么K在模式R中称为外键。
关系代数
关系演算
如 ALPHA QUEL 如 QBE
SQL
目前关系数据库的标准 数据库语言,如T-SQL
三、关系的完整性
实体完整性(Entity Integrity) 参照完整性(Referential Integrity) 用户定义的完整性(User-defined Integrity)
关系模型
什么是关系模型 用二维表格表示实体集,用码进行数据导航 的数据模型称为关系模型。 关系模型的三要素 关系数据结构 关系操作 关系的完整性
一、 关系数据结构及形式化定义
关系定义 关系模式 关系数据库
数学关系
假设有两个集合D1和D2,其中D1={2,4}, D2 ={1,3,5}。这两个集合的笛卡尔积 D1 × D2=? D1 × D2={(2,1),(2,3),(2,5), (4,1),(4,3),(4,5)} 这个笛卡尔积的任何子集都是一个关系。
学生实体专业实体以及专业与学生间的一对多联系学生学号姓名性别专业号年龄专业专业号专业名28学生课程学生与课程之间的多对多联系学生学号姓名性别专业号年龄课程课程号课程名学分选修学号课程号成绩29课程号课程名学分01数据库02数据结构03编译04pascal学号姓名性别专业号年龄801张三0119802李四0120803012080402208050219学号课程号成绩801049280103788010285802038280204908030488学生学生选课课程30设f是基本关系r的一个或一组属性但不是关系r的码
关系
关系 D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关 系,表示为 R(D1,D2,…,Dn) R:关系名 n:关系的目或度(Degree) (1) 当 n=1 时 , 称 该 关 系 为 单 元 关 系 ( Unary relation)。 (2) 当 n=2 时 , 称 该 关 系 为 二 元 关 系 ( Binary relation)。 说明:笛卡尔积是每个域内所有元素的排列组合,因 此其中的许多元组是无实际意义的,而关系一般是具 有实际意义的元组的组成的。
关系模式-例子
例:学生选修课成绩登记表,定义关系模型SC如下: -SC( -{SNO,CNO,GRADE}, -{N(10),N(3)}, -{(SNO,N(10)),(CNO,N(3)),(GRADE,N(3))}, -{(SNO,CNO) GRADE} -) -其中,SNO表示学号,CNO表示课程号,GRADE表示选修 课成绩。
关系数据语言
关系语言是一种高度非过程化的语言 关系代数、元组关系演算和域关系演算三种语言在表达能力上完 全等价
用对关系的运算来表达查询要求 的方式 用谓词来表达查询要求的方式。 按谓词变元的基本对象分为: 元组关系演算 域关系演算 Structured Query Language具有 关系代数,关系演算的双重特点 如ISBL
4 3 3
02
02 03 03 04 04
02010
02221 03123 02221 03001 02010
98
89
04
编译原理
JAVA语言Leabharlann 3392 88
关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,因 此可能存在着关系与关系间的引用。 例1 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
课程
课程号 01 02 03 04 课程名 数据库 数据结构 编译 PASCAL 学分 4 4 4 2
学生选课
学号 801 801 801 802 802 803 课程号 04 03 02 03 04 04 成绩 92 78 85 82 90 88
外码(Foreign Key)
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本 关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照 关系(ReferencingRelation)基本关系S称为被参照关系 (ReferencedRelation)或目标关系(Target Relation)。
关系数据库
关系数据库也有型和值之分。
也称关系数据库 包括域的定义、 关系数据库的型 的模式 关系模式的定义。
关系数据库的值 也称关系数据库 是关系的集合。
二、关系操作
基本的关系操作 关系数据语言的分类
常用的关系操作
常用的关系操作 查询 选择、投影、连接、除、并、交、差 数据更新 插入、删除、修改 其中选择、投影、并、差、笛卡尔积是五种基本操 作。其他操作可以用基本操作来定义和导出 关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 非关系数据模型的数据操作方式:一次一记录
•
笛卡尔积的表示方法(续)
表 2.1
SUPERVISOR 张清玫 张清玫 张清玫 张清玫 张清玫 张清玫 刘逸 刘逸 刘逸 刘逸 刘逸 刘逸
D1,D2,D3 的笛卡尔积
POSTGRADUATE 李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏
SPECIALITY 计算机专业 计算机专业 计算机专业 信息专业 信息专业 信息专业 计算机专业 计算机专业 计算机专业 信息专业 信息专业 信息专业
用统一的系统的方法处理它们,而不要由应用程序承 担这一功能。 关系模型应提供定义和检验这类完整性的机制。不应 由应用程序承担。
关系间的引用(续)
例2 学生、课程、学生与课程之间的多对 多联系
学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)
学生
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 专业号 01 01 01 02 02 年龄 19 20 20 20 19
第2章 关系数据库
本讲内容
一、关系数据结构及形式化定义 二、关系操作 三、关系的完整性 四*、关系模型的三级体系结构
内容要求
掌握关系模型的三个组成部分及各部分 所包括的主要内容 牢固掌握关系数据结构及其形式化定义 掌握关系的三类完整性约束的概念
关系模型简史
1.关系模型的提出 由E.F.Codd在他的论文“A Relational Model of Data for Large Shared Data Banks”(《大型共享资 料库的关系数据模型》,1970)中首次提出。 2.关系模型的发展推动力 (1)20世纪70年代末,IBM在加利福尼亚州成立了San Jose研究所开发的实验性RDBMS System R。System R 项目推动了两类重大成果:
关键码 主码(键) (key,简称 键)
外码(键
全码
所有属性共同组成关系模式的侯选码。
基本关系的性质
列是同质的(Homogeneous)。 每一列中的分量是同一类型的数据,来自同一个域 不同的列可出自同一个域 列的顺序无所谓 任意两个元组不能完全相同 行的顺序无所谓 分量必须取原子值
结构化查询语言SQL的发展 涌现了各种各样的商业化RDBMS产品,如DB2、Oracle等。
关系模型简史
(2)加州大学伯克利分校开发的INGRES(交互 式制图检索系统)项目,它与System R项目几 乎是同时进行的。它对普及关系概念做出了贡 献,同时也诞生了一些商业化产品。 (3)IBM UK Scientific Centre开发的 Peterlee关系测试工具(1976),这个项目更 偏重理论研究,特别是对查询处理和优化及功 能扩展等问题的研究。 20世纪70年代末至80年代初出现了基于关系模型 的商业系统。
关系定义
笛卡尔积 给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1, D2,…,Dn的笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)|diDi,I=1, 2,…,n},其中每一个元素(d1,d2,…,dn)叫作一个n 元组(n-tuple)或简称元组。 笛卡尔积元素( d1, d2,…, dn)中的每一个值 di叫作一个 分量。 若 Di ( i =1,2,…, n )为有限集,其基数为 mi ( i =1, 2,…,n),则D1×D2×…×Dn的基数M为:
1.实体完整性
规则2.1 实体完整性规则 若属性A是基本关系R的主属 性,则属性A不能取空值。 选修(课程号,学号,成绩)
说明:规则要求关系中元组在组成 主键的属性上不能有空值。
课程(课程号,课程名,学分)
01
03001
01
01 02
03123
02010 03001 80
01 02 03
数据结构 C语言 数据库
例1
学生实体、专业实体以及专业与学生间的1:n联系
F
R S
学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
KS
2.参照完整性
规则2.2
若属性(或属性组)F是基本关系R的外码它 与基本关系S的主码Ks相对应(基本关系R和S不一定是不 同的关系),则对于R中每个元组在F上的值必须为:
• •
M mi i1
n
笛卡尔积(例)
笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中 的每列对应一个域。 例 给出三个域: D1=SUPERVISOR ={ 张清玫,刘逸 } D2=SPECIALITY={计算机专业,信息专业} D3=POSTGRADUATE={李勇,刘晨,王敏} 则D1,D2,D3的笛卡尔积为: D 1 × D 2× D3 = {(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘 晨),(张清玫,计算机专业,王敏),(张清玫,信息专业, 李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业, 王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业, 刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李 勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
关系的基本术语
在关系模型中,字段称为属性,字段值称为属 性值,记录类型称为关系模式。 记录称为元组,元组的集合称为关系或实例, 有时也称关系为表或表格,元组为行,属性为 列。 关系中属性的个数称为元数,元组个数称为基 数。
关系(例)
例 在表2.1 的笛卡尔积中取出有实际意义的元组 来构造关系 关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 关系名,属性名 假设:专业与导师:1:n,导师与研究生:1:n 于是:SAP关系可以包含三个元组 { (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (刘逸,信息专业,王敏) }
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值。
说明:这条规则的实质是不允许引用不存在的实体。
Student
Sno 99101 99103 Sname 张三 李四 Ssex 男 男 Sage 20 19 Sdept CS CS
… 98102
… 王五
… 女
… 19
… IS
外码,不是Student的主码, 但是Department的主码。 Student中Sdept中的值都取 自Deparment表中相应Sdept 的值。 指定外码时,列名不一定要 求相同。
Department
Sdept Sloc Sname
CS
资讯大楼
教四号大楼 综合大楼 ….
计算机科学
信息科学 数学 …
主码
IS MA …
3.用户定义的完整性
用户定义的完整性是针对某一具体关系数据库的约束
条件,反映某一具体应用所涉及的数据必须满足的语 义要求。
关系模型应提供定义和检验这类完整性的机制,以便