第2章 关系数据库系统模型.ppt
《第2章 关系数据库系统模型.ppt》由会员分享,可在线阅读,更多相关《第2章 关系数据库系统模型.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第2章章 关系数据库系统模型关系数据库系统模型2.1 关系模型关系模型2.2 关系代数关系代数2.3 SQL介绍介绍数据库原理与应用(基于MySQL)22.1 2.1 关系模型关系模型关系数据库系统采用关系模型作为数据的组织方式,关系模型由关系数据结构、关系操作和关系完整性三部分组成。2.1.1 关系数据结构关系数据结构1)域(Domain)定义定义2.1 域是一组具有相同数据类型的值的集合。例如,整数、正整数、实数、大于等于0且小于等于100的正整数、0,1,2,3,4等都可以是域。2.)笛卡尔积(CartesianProduct)定定义义2.2 设定一组域D1,D2,Dn,在这组域中可
2、以是相同的域。定义D1,D2,Dn,的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n其中每一个元素(d1,d2,dn)叫做一个n元组(n-tuple)或简称元组(Tuple),元素中的每个值di(i=1,2,n)叫做一个分量(Component)。数据库原理与应用(基于MySQL)32.1 2.1 关系模型关系模型如果Di(i=1,2,n)为有限集,其基数(Cardinalnumber)为mi(i=1,2,n),则D1D2Dn 的基数为笛卡尔积可以表示为一个二维表,表中每一行对应一个元组,每一列的值来自一个域。【例2.1】笛卡尔积举例给出3个域:D1=学号集合sno=1
3、91001,191002D2=姓名集合sname=刘清泉,张慧玲D3=性别集合speciality=计算机,通信则D1,D2,D3 的笛卡尔积为:D1D2 D3 =(191001,刘清泉,计算机),(191001,刘清泉,通信),(191001,张慧玲,计算机),(191001,张慧玲,通信),(191002,刘清泉,计算机),(191002,刘清泉,通信),(191002,张慧玲,计算机),(191002,张慧玲,通信)数据库原理与应用(基于MySQL)42.1 2.1 关系模型关系模型其中(191001,刘清泉,计算机),(191001,刘清泉,通信),(191001,张慧玲,计算机),(
4、191001,张慧玲,通信)等都是元组,191001,191002,刘清泉,张慧玲,计算机,通信等都是分量,这个笛卡尔积的基数是222=8,即共有8个元组,可列成一张二维表,如表2.1所示。数据库原理与应用(基于MySQL)表2.1 D1 D2 D3 的笛卡尔积52.1 2.1 关系模型关系模型3.)关系(Relation)定定义义2.3 笛卡尔积D1D2Dn 的子集称为D1,D2,Dn 上的关系,表示为 R(D1,D2,Dn)这里的R 表示关系的名称,n 是关系的目或度(Degree)。当n=1时,称该关系为单元关系或一元关系。当n=2时,称该关系为二元关系。当n=m 时,称该关系为m元关系
5、。关系中的每个元素是关系中的元组,通常用t 表示。在一般情况下,D1,D2,Dn 的笛卡尔积是没有实际意义的,只有它的某个子集才有实际意义,举例如下。【例2.2】关系举例在例2.1的笛卡尔积中,许多元组是没有意义的,因为一个学号只标识一个学生的姓名,一个学生只有一个性别,表2.1的一个子集才有意义,才可以表示学生关系,将学生关系取名为S,表示为S(sno,sname,speciality),列成二维表如表2.2所示。数据库原理与应用(基于MySQL)62.1 2.1 关系模型关系模型(1)关系的元组、属性和候选码关系是笛卡尔积的有限子集,所以关系也是一个二维表。元组(Tuple)表的每一行,对
6、应一个元组。属性(Attribute)表的每一列,对应一个域,由于域可以相同,为了加以区分,必须对每一列起一个唯一的名字,称为属性。候选码(Candidatekey)若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。数据库原理与应用(基于MySQL)表2.2 S 关系72.1 2.1 关系模型关系模型候选键码中的诸属性称为为主属性(Primeattribute),不包含在任何候选码中的属性称为非主属性(Non-primeattribute)或非码属性(Non-keyattribute)。在最简单的情况下,候选码只包含一个属性,在最极端的情况下,关系模式的所有属性组成这个关系模式
7、的候选码,称为全码(All-key)。主码(Primarykey)在一个关系中有多个候选码,从中选定一个作为主码。(2)关系的类型关系有3种类型:基本关系(又称基本表或基表)、查询表和视图表。基本关系:实际存在的表,是实际存储数据的逻辑表示查询表:查询结果对应的表视图表:由基本表或其它视图标导出的表,是虚表,不对应实际存储的数据数据库原理与应用(基于MySQL)82.1 2.1 关系模型关系模型(3)关系的性质关系具有以下的性质:列的同质性:每一列中的分量是同一类型的数据,来自同一个域。列名唯一性:每一列具有不同的属性名,但不同列的值可以来自同一个域。元组相异性:关系中任意两个元组的候选码不能
8、相同。行序的无关性:行的次序可以互换。列序的无关性:列的次序可以互换。分量原子性:分量值是原子的,即每一个分量都必须是不可分的数据项。(4)规范化关系模型要求关系必须是规范化(normalization)的,规范化要求关系必须满足一定的规范条件,而在规范条件中最基本的一条是每一个分量必须是不可分的数据项。规范化的关系简称为范式(NormalForm)。数据库原理与应用(基于MySQL)92.1 2.1 关系模型关系模型例如,表2.3所示的关系就是不规范的,存在”表中有表”的现象。2.关系模式关系模式在关系数据库中,关系模式是型,关系是值。关系是元组的集合,关系模式是对关系的描述,所以关系模式必
9、须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域。定义定义2.4关系模式(RelationSchema)可以形式化地表示为 R(U,D,DOM,F)其中:R 是关系名,U 是组成该关系的属性名集合,D 是属性所来自的域,DOM是属性向域的映象集合,F 是属性间的数据依赖关系集合。数据库原理与应用(基于MySQL)表2.3非规范化关系102.1 2.1 关系模型关系模型关系模式通常可以简记为 R(U)或R(A1,A2,An)其中,R是关系名,A1,A2,An 为属性名。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在
10、不断地更新着数据库中的数据。在实际应用中,我们常常把关系模式和关系统称为关系。3.关系数据库关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型称为关系数据库模式,是对关系数据库的描述,包括若干域的定义和在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合。数据库原理与应用(基于MySQL)112.1 2.1 关系模型关系模型2.1.2关系操作关系操作1.基本的关系操作基本的关系操作关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。查询操作是关系操作
11、最重要的部分,可分为选择(Select)、投影(Project)、连 接(Join)、除(Devide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积等。其中的5种基本操作是并、差、笛卡尔积,选择、投影,其它操作可由基本操作来定义和导出。关系操作的特点是集合操作方式,即操作的对象与结果都是集合。这种操作方式亦称为一次一集合(set-at-a-time)方式,相应地,非关系模型的数据操作方式则为一次一记录(record-at-a-time)方式。2.关系操作语言关系操作语言关系操作语言是数据库管理系统提供的用户接口,是用户用来操作数据库的工具,关系操作语言灵活方
12、便,表达能力强大,可分为关系代数语言、关系演算语言和结构化查询语言三类。数据库原理与应用(基于MySQL)122.1 2.1 关系模型关系模型(1)关系代数语言用对关系的运算来表达查询要求的语言,如ISBL。(2)关系演算语言用谓词来表达查询要求的语言,又分为元组关系演算语言和域关系演算语言,前者如ALPHA,后者QBE。(3)结构化查询语言介于关系代数和关系运算之间,具有关系代数和关系演算双重特点,如SQL。以上三种语言,在表达能力上是完全等价的。关系操作语言是一章高度非过程化语言,存取路径的选择由数据库管理系统的优化机制自动完成。2.1.3 关系的完整性关系的完整性关系模型的完整性规则是对
13、关系的某种约束条件。关系的值在不断变化,为了维护数据库中的数据与现实世界的一致性,任何关系在任何时刻都应满足这些约束条件。数据库原理与应用(基于MySQL)132.1 2.1 关系模型关系模型关系模型的三种完整性约束为:实体完整性,参照完整性和用户定义完整性。任何关系数据库都应支持实体完整性和参照完整性,此外,不同关系数据库系统根据实际情况需要一些特殊约束条件形成用户定义完整性。1.实体完整性实体完整性(Entity Integrity)规规则则2.1 实实体体完完整整性性规规则则 若属性(一个或一组属性)A是基本关系R的主属性,则A不能取空值。空值(nullvalue)指”不知道”或”不存在
14、”的值。例如,在学生关系S(sno,sname,speciality)中,学号sno是这个关系的主码,则sno不能取空值。又如在选课关系选课(学号,课程号,分数)中,”学号,课程号”为主码,则”学号”和”课程号”两个属性都不能取空值。实体完整性规则说明如下:(1)实体完整性规则是针对基本关系而言。一个基本表通常对应现实世界的一个实体集。数据库原理与应用(基于MySQL)142.1 2.1 关系模型关系模型(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。2.参照完整性参照完整性(Referential
15、 Integrity)在现实世界中实体之间存在的联系,在关系模型中都是用关系来描述,自然存在关系与关系间的引用,参照完整性一般指多个实体之间的联系,一般用外码实现,举例如下。【例2.3】学生实体与学院实体可用以下关系表示,其中的主码用下划线标识。学生(学号,姓名,性别,出生日期,专业,总学分,学院号)学院(学院号,学院名,院长)这两个关系存在属性的引用,学生关系引用了学院关系的主码”学院号”,学生关系”学院号”必须是确实存在的学院的学院号,即学院关系有该学院的记录。数据库原理与应用(基于MySQL)152.1 2.1 关系模型关系模型【例2.4】学生、课程、学生与课程之间的联系可用以下3个关系
16、表示,其中的主码用下划线标识。学生(学号,姓名,性别,出生日期,专业,总学分)课程(课程号,课程名,学分)选课(学号,课程号,分数)这3个关系存在属性的引用,选课关系引用了学生关系的主码”学号”和课程关系的主码”课程号”,选课关系”学号”和”课程号”的取值需要参照学生关系的”学号”取值和课程关系的”课程号”取值。【例2.5】学生关系的内部属性之间存在引用关系,其中的主码用下划线标识。学生(学号,姓名,性别,出生日期,专业,总学分,班长学号)在该关系中,”学号”属性是主码,”班长学号”属性是所在班级班长的学号,它引用了本关系”学号”属性,即”班长学号”必须是确实存在的学生学号。数据库原理与应用(
17、基于MySQL)162.1 2.1 关系模型关系模型定定义义2.5 设F 是基本关系R 的一个或一组属性,但不是关系R 的码,Ks 是基本关系S 的主码。如果F 与Ks 相对应,则称F 是R 的外码(ForeignKey)。并称基本关系R 为参照关系(ReferencingRelation),基本关系S 为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。关系R 和S 不一定是不同的关系。在例2.3中,学生关系的”学院号”与学院关系的主码”学院号”相对应,所以,”学院号”属性是学生关系的外码,学生关系是参照关系,学院关系是被参照关系。在例2.4中,选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 关系数据库系统模型 关系 数据库 系统 模型
限制150内