数据库课件:关系数据模型1_第1页
数据库课件:关系数据模型1_第2页
数据库课件:关系数据模型1_第3页
数据库课件:关系数据模型1_第4页
数据库课件:关系数据模型1_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

关系数据模型3.1关系模型的数据结构3.2关系数据操作3.3关系的完整性约束3.4关系代数3.5关系演算

3.1关系模型的数据结构关系数据库系统是支持关系模型的数据库系统关系数据结构的基本概念关系关系模式关系数据库3.1.1关系单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。关系模型建立在集合代数的基础上,下面从集合论角度给出关系数据结构的形式化定义。⒈域(Domain)域是一组具有相同数据类型的值的集合。例整数实数指定长度的字符串集合介于某个取值范围的整数{‘男’,‘女’}介于某个取值范围的日期2.笛卡尔积1)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn=

{(d1,d2,…,dn)|di

Di,i=1,2,…,n}

所有域的所有取值的一个组合不能重复笛卡尔积(续)例给出三个域:

D1=SUPERVISOR={张清玫,刘逸}

D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积为:D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),

(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),

(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),

(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),

(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}笛卡尔积(续)2)元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。

3)分量(Component)笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。笛卡尔积(续)4)基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:例给出三个域:

D1=SUPERVISOR={张清玫,刘逸}

D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积D1×D2×D3的基数为多少?基数:2×2×3=12,即D1×D2×D3共有2×2×3=12个元组考考你笛卡尔积(续)5)笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表。

D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),

(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),

(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),

(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),

(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}

表3.13.关系(Relation)1)关系的数学描述D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为

R(D1,D2,…,Dn)

R:关系名

n:关系的目或度(Degree)关系是笛卡尔积的有限子集。一般来说,笛卡儿积是没有实际语义的,只有它的某个子集才有实际含义。例在表3.1的笛卡尔积中取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组{(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),

(刘逸,信息专业,王敏)}

关系(续)2)关系的形式描述关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。表3.2属性元组关系(续)3)属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。关系数据模型的规范性限制(1)元组分量原子性。关系中的每一个属性值都是不可分解的,不允许出现组合数据,更不允许表中有表。(2)元组个数有限性。关系中元组的个数总是有限的。(3)元组的无序性。关系中不考虑元组之间的顺序,元组在关系中应是无序的,即没有行序。因为关系是元组的集合,按集合的定义,集合中的元素无序。(4)元组唯一性。关系中不允许出现完全相同的元组。关系数据模型的规范性限制(5)属性名唯一性。关系中属性名不允许相同。(6)分量值域同一性。关系中属性列中分量具有与该属性相同的值域。(7)属性的无序性。关系中属性也是无序的(但是这只是理论上的无序,在使用时按习惯考虑列的顺序)。几个概念(1)候选键(candidatekey):能唯一地标识元组的属性或属性组,而其任何真子集无此性质,则该属性或属性组称为候选键,有时也称作键。候选键可以有一个或多个,例如:下表中,“学号”即为候选键;若规定学生不同名,则“姓名”也是候选键。几个概念(续)(2)主键(primarykey):若一个关系有多个候选键,则选定其中一个为主键(Primarykey)。一个关系只能有一个主键。在关系模式中,常在主键下加下划线标出,主键的诸属性称为主属性。不包含在任何候选键中的属性称为非键属性

学生选课关系课程关系考考你几个概念(3)超键(superkey):能唯一标识元组的属性集合。例如:表3-1中,“学号”+“姓名”+“性别”+“年龄”、“学号”+“姓名”+“性别”、“学号”+“姓名”、“学号”+“姓名”+“专业号”等都是超键。候选键是不含多余属性的超键。几个概念(续)(4)全键(allkey):在有些关系中,主键不是关系中的一个或部分属性集,而是由所有属性组成,这时主键也称为全键。例:设学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。 用关系模式Teaching(C,T,B)来表示课程C、教师T和参考书B之间的关系。几个概念(续)(5)外键(foreignkey):如果某个关系R中的属性或属性组K是另一关系S的主键,但不是本身的键,则称这个属性或属性组K为此关系R的外键。例如,有以下三个关系:

S(学号,姓名,性别)C(课程号,课程名,学分,选修课程号)

SC(学号,课程号,成绩)其中S是学生的情况,C是课程的情况,SC是学生选课情况,下划线表示主键。在关系SC中,属性“学号”是引用了关系S的主键,属性“课程号”是引用了关系C的主键,但都不是本身的键,故这两个属性是外键。3.1.2关系模式关系模式是对关系的描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义完整性约束条件属性间的数据依赖关系集合1.什么是关系模式关系模型与关系模式考考你2.定义关系模式关系的描述称为关系模式,它可以形式化地表示为:

R(U,D,dom,F)

R关系名

U

组成该关系的属性名集合

D

属性组U中属性所来自的域

dom属性向域的映象集合

F

属性间的数据依赖关系集合。定义关系模式(续)关系模式通常可以简记为

R(U)

或R(A1,A2,…,An)R关系名A1,A2,…,An属性名3.关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别。

关系模式是型关系是值3.1.3关系数据库定义:在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。3.1关系模型的数据结构3.2关系数据操作3.3关系的完整性约束3.4关系代数3.5关系演算

考考你什么是数据模型?数据模型的三要素是什么?3.2关系数据操作1.数据查询(DataQuery)。包括选择、投影、连接、除、并、差、交、笛卡尔积等。(1)一个关系内的属性指定。(2)一个关系内的元组选择。(3)两个关系的合并。2.数据更新(DataChange)

(1)数据删除(datadelete)

(2)数据插入(datainsert)

(3)数据修改(dataupdate)3.2.2空值处理在关系元组中允许出现空值以表示信息的空缺。空值通常具有以下两个含义:(1)未知的值。(2)不可能出现的值。在出现空值的元组分量中一般可用NULL表示。两个限制:(1)主键中不允许出现空值(2)定义有关空值的计算。在算术运算中如出现空值,则结果也为空值;在比较运算中如出现空值,则结果为F(假)。3.2.3关系代数和关系演算在关系操作中如果以集合方法作为关系运算的基础,则数据操作语言称为关系代数语言,相应的运算就是关系代数运算。如果将关系的基本组成成分作为变元,以其作为基本运算单位,并且以数理逻辑中的谓词演算作为相应的关系演算的理论基础,就是关系演算语言。在关系演算中如果谓词中的变元是关系中的元组,则称为元组关系演算。如果谓词变元是关系中的域,则称之为域关系演算。关系代数、元组关系演算和域关系演算的理论基础是相同的,3类关系运算可以相互转换,它们对数据操作的表达能力也是等价的。3.2.4关系数据语言

关系代数、元组关系演算和域关系演算实质上都是抽象的关系操作语言,简称关系数据语言。(1)关系代数:用对关系的运算来表达查询要求的方式。(2)关系演算:用谓词来表达查询要求的方式。(3)结构化查询语言(StructuredQueryLanguage,简称SQL):不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询(Query)、数据定义语言(DDL)、数据管理语言(DML)和数据控制语言(DCL)于一体的关系数据语言。由于SQL充分体现了关系数据语言的优点与长处,现在已经成为关系数据库的标准语言。关系数据语言的分类一些说明:(1)关系代数、元组关系演算和域关系演算3种语言在表达能力上是完全等价的。(2)关系代数、元组关系演算和域关系演算均是抽象的查询语言,这些抽象的语言与具体的DBMS中实现的实际语言并不完全一样。但它们能作为评估实际系统中查询语言能力的标准或基础。(3)适用中的查询语言除了提供关系代数和关系演算的功能外,还提供了许多附加功能,例如聚集函数、关系赋值、算术运算等。3.1关系模型的数据结构3.2关系数据操作3.3关系的完整性约束

3.4关系代数3.5关系演算

3.3关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。3.3.1实体完整性实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值。例:选修(学号,课程号,成绩)“学号、课程号”为主键,则学号和课程号两个属性都不能取空值实体完整性(续)关系模型必须遵守实体完整性规则的原因(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或实体间的联系。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以候选键作为唯一性标识。(4)候选键中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。3.3.2参照完整性1.关系间的引用2.外键3.参照完整性规则1.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体以及专业与学生间的一对多联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系

学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)

学生选修课程关系间的引用(续)例3学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业号,年龄,班长)2.外键外键设F是基本关系R的一个或一组属性,但不是关系R的键。如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(ForeignKey)基本关系R称为参照关系;基本关系S称为被参照关系或目标关系。外键(续)说明关系R和S不一定是不同的关系。目标关

温馨提示

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

评论

0/150

提交评论