您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第二章 关系数据库基本原理(2014930)
韩华信息科学与工程系《数据库技术》讲义2013.08关系模型2.1关系数据库模式与关系数据库2.22.3第二章关系数据库系统关系代数2.1关系模型关系模型是一种数据模型,它和一般的数据模型一样,由如下三部分组成:关系数据结构关系操作集合关系完整性约束2.1.1关系数据结构单一的数据结构----关系在关系模型中,无论是实体还是实体间的各种联系均用关系来表示数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。1.二维表下图所示的二维表表示的是某个班级的学生名单列名出自相同的域代表一个学生的信息1.二维表(续)对一张二维表可以做以下操作:填表修改删除查询2.关系关系数据库是表的集合,每个表有唯一的名字,表中的一行代表的是一系列值之间的联系。由于一个表就是这种联系的集合,因此表这个概念和数学上的关系这个概念密切相关,这也正是关系数据库名称的由来。2.关系(续)属性列字段关系名表名文件名元组行记录返回域分量关系模式关键字(码)(KEY)二维表对应成关系如下图所示A关系的逻辑结构A简言之,一张二维表。也称表、关系表、数据表。属性:字段行:元组B•属性的原子性•属性的同质性•记录的唯一性•属性次序的无关性•元组次序的无关性•关系的动态性•关系的有限性•不同的列可出自同一个域,但要给予不同的属性名。C•关键词由本关系中的字段组成(一个字段或几个字段的组合)•关键词的作用是标识表中记录,以便于记录查找和操作•关系可能有4种关键词2.关系(续)B关系的性质C关键词在数据库中要区分型和值。关系数据库中,关系模式是型,关系实例是值。2.关系(续)关键词(1)超关键字(2)候选关键字(3)主关键字(4)外关键字关系中能唯一确定一个元组(或记录)的一个或几个属性的组合如,学生表中,(学号,姓名)课程表中,(课程代号,学分,学时)如果K是某关系的超关键字,若从K中减少一个属性就不能唯一确定一个元组,则K是候选关键字如,学生表中,(学号)课程表中,(课程代号)从关系的所有候选关键字中选定一个候选关键字确定为这个关系的先行关键字,称为关键字。设有关系A和B,若属性组合K是A的主关键字,但不是B的关键字,则称K是B相对于A的外关键字。如有关系,学生(学号,姓名,性别,…)成绩(学号,课程号,分数)(学号)是“学生”的主关键字,但不是“成绩”的主关键字,则称(学号)是“成绩”的外关键字。2.关系(续)2.关系(续)关系可以有三种类型:基本关系(通常又称为基本表或基表),基本表是实际存在的表,是实际存储数据的逻辑表示。查询表,是查询结果对应的表。视图表,是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。2.关系(续)在关系模型中,实体以及实体之间的联系都是用关系来表示的。例如雇员、部门、雇员与部门之间的工作关系在关系模型中可以表示如下:雇员(雇员号、姓名、部门、性别、年龄、工作岗位)部门(部门号,部门名)工作关系(雇员号,部门号,工作年限)2.1.2关系操作1)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录2.1.2关系操作(续)2)常用的关系操作数据库操作只实现对数据库中数据的“存”和“取”主要有4种不同类型的操作:1.数据查询2.数据插入3.数据删除4.数据更新根据用户给出的查询条件从数据库中提取数据作为结果的操作插入是向数据库中添加一个或多个元组的操作从数据库中去除一个或多个无须继续在数据库中存储的元组修改数据库中数据,使其具有新值的操作2.1.2关系操作(续)3)关系数据语言的种类关系数据库操作需要关系数据语言支持关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。关系代数语言:用对关系的运算来表达查询要求关系演算语言:用谓词来表达查询要求结构化查询语言SQL2.1.3关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。1实体完整性实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则任何一个元组在属性A上不能取空值(Null)。例如,学生(学号,姓名,性别,出生年月,籍贯,身高)学生关系中,学号是主码,则任何一个元组在属性“学号”上不能取空值。1实体完整性(续)关系模型必须遵守实体完整性规则的原因(1)一个基本关系对应现实世界中的一个实体集。例如,雇员关系对应全体雇员的集合。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识(3)相应地,关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。1实体完整性(续)注意:实体完整性规则规定基本关系的所有主属性都不能取空值例:选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。2参照完整性关系间的引用外码参照完整性规则关系间的引用例子,假设我们具有如下两个关系:学生(学号,姓名,性别,系别,年龄)选课(学号,课程号,成绩)这两个关系的属性之间存在着下图所示的引用关系,即选课关系引用了学生关系的主码“学号”。外码(ForeignKey)如果基本关系R中某属性集F是基本关系S的主码,则对基本关系R而言,F叫做外码(ForeignKey),并称基本关系R为参照关系(ReferencingRelation),基本关系S为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。学生选课系统的概念模型studentsnosnamesagessexsdeptcoursecnocnamecreditscmngrade参照完整性和外键——声明逻辑模型基本关系R的任何一个元组在外码F上的取值要么是空值,要么是被参照关系S中一个元组的主码值显然,参照关系R的外码和目标关系S的主码必须定义在同一个(或一组)域上,但是,外码并不一定要与相应的主码同名。从表主表参照完整性规则(续)同一关系内部属性间也可能存在引用关系。例如在关系:学生2(学号,姓名,性别,系别,年龄,班长)“班长”属性可以取两类值:空值,表示该学生所在班级尚未选出班长;非空值,这时该值必须是本关系中某个元组的学号值。该例中学生2关系既是参照关系也是被参照关系。主码外码保持参照完整性参照完整性的违例–从表•插入从表元组,且外键不为Null•修改从表外键,且不为Null–主表•删除主表元组,其已被参照•修改主表主键,其已被参照•DropTable保持参照完整性——策略RESTRICT前述违例的情况均不能操作这是所有DBMS产品均支持的方式安全的默认方式CASCADE对主表的违例操作所有从表中的相关元组被级联删除或更新SETNULL–对主表的违例操作–从表中相关外键的值均被置为Null(前提是允许为Null)SETDEFAULT–对主表的违例操作–从表中相关外键的值均被置为相应的DefaultValue属性级……snochar(10)Referencesstudent(sno)OnDeleteSetNullOnUpdateCascade,…...表级……ForeignKeysnoReferencesstudent(sno)OnDeleteSetNullOnUpdateCascade,…...3用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。(如触发器或存储过程)用户定义的完整性(续)例:课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}当谈论数据库时,必须区分数据库模式和数据库实例。数据库模式是数据库的逻辑设计,而数据库实例是给定时刻数据库中数据的一个快照。针对关系模型来说,数据库模式和数据库实例就是关系模式和关系实例。2.2关系数据库模式与关系数据库那么什么是关系模式呢?程序设计语言关系模型数据类型变量值关系模式关系关系实例2.3关系代数1.关系代数(一种抽象的查询语言,用对关系的运算来表达查询)2.关系运算的三要素(运算对象、关系运算结果、关系运算符:四类)3.关系代数运算符(集合运算符、专门的关系运算符、算术比较符和逻辑运算符)4.关系代数运算按运算符分类(传统的集合运算和专门的关系运算)集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义关系代数运算符专门的关系运算符σπ÷选择投影连接除逻辑运算符∧∨非与或运算符含义运算符含义关系代数运算符(续)1、关系代数—并Union(∪)R和S的并,R∪S,是在R或S或两者中的元素的集合一个元素在并集中只出现一次R和S必须同类型(属性集相同、次序相同,但属性名可以不同)2.3.1传统的集合运算•运算规则:“并”运算T1=R∪S关系关系关系T1包含R和S的所有元组2.3.1传统的集合运算(续)SQL语句Select*fromRUnionSelect*fromS数据示例商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.00关系R:关系S:商品代码子公司代码品名数量单价1Comp1钢笔5010.005Comp2练习本2003.006comp2信笺10003.00R∪S运算结果商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.005Comp2练习本2003.006comp2信笺10003.002、关系代数—交Intersect(∩)R和S的交,R∩S,是在R和S中都存在的元素的集合一个元素在交集中只出现一次R和S必须同类型(属性集相同、次序相同,但属性名可以不同)2.3.1传统的集合运算(续)•运算规则:“交”运算T3=R∩S关系关系关系T3包含R和S共有的元组2.3.1传统的集合运算(续)SQL语句SelectR.学号fromR,SwhereR.学号=S.学号andR.课程名=S.课程名andR.分数=S.分数或SelectR.学号,R.课程名,R.分数fromRINTERSECTSelectS.学号,S.课程名,S.分数fromS数据示例学号课程名分数1数学801英语851政治902数学852英语802政治90关系S:学号课名分数1数学801英语851政治922数学852英语802政治90R∩S结果:学号课名分数1数学801英语852数学852英语802政治90关系R:3、关系代数—差Minus(-)R和S的差,R-S,是在R中而不在S中的元素的集合R和S必须同类型(属性集相同、次序相同,但属性名可以不同)2.3.1传统的集合运算(续)SQL语句SelectR.学号,R.课程名,R.分数fromREXCEPTSelectS.学号,S.课程名,S.分数fromS或select学号,课程名,分数FromRCWHERE学号NOTIN(SelectR.学号fromR,SwhereR.学号=S.学号andR.课程名=S.课程名andR.分数=S.分数)学号课名分数1政治90数据示例R-S运算结果:4.关系代数—笛卡尔积(×)关系R、S的笛卡尔积是两个关系的元组对的集合所组成的新关系R×S:–属性是R和S的组合(有重复)–元组是R和S所有元组的可能组合–使R、S的无条件连接,使任意两个关系的信息能组合在一起例:student×sc(注意sno的命名)2.3.1传统的集合运算(续)•运算规则:“笛卡尔积”运算T4=R×V关系关系关系T4包含R和V的元组所有可能的配对两个分别为n、m目关系R和S的广义笛卡儿积是一
本文标题:第二章 关系数据库基本原理(2014930)
链接地址:https://www.777doc.com/doc-3175124 .html