您好,欢迎访问三七文档
第2章关系数据模型主讲人:颜颖Email:yanying@hqu.edu.cn2主要内容2.1数据模型概述2.2关系模型基础2.3在SQL中定义关系模式2.4代数查询语言2.5关系上的约束3数据模型数据模型对现实世界数据特征的模拟和抽象数据模型三要素(1)数据结构(静态特性)(2)数据操作(动态特性)(3)数据上的约束4(1)数据结构(静态特性)描述数据库的组成对象以及对象之间的联系。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如:层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。5(2)数据操作(动态特性)数据操作是指对数据库中数据允许执行的操纵的集合及规则。数据库主要操作查询更新(包括插入、删除、修改)6(3)数据上的约束数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。例如:可以限定一周中的每一天只能是1-7的整数7一些重要的数据模型关系数据模型(本书重点)包括对象关系模型的拓展现行所有商业数据库管理系统中都有出现半结构化数据模型最主要的是XML是大多数关系DBMS的一个附加特征其他数据模型层次模型、网状模型(早期模型)8几种建模方法的比较半结构化模型比关系模型更具灵活性但DBMS中采用最多的仍是关系模型因为在关系模型中能够实现数据访问修改的高效性和数据易用性:关系模型提供一种简单的、有限的方法来对数据进行建模,而且功能全面,因此现实中的任何事情都可以有效地进行模型化。关系模型还提供了一套有限但又很有效的操作集。9主要内容2.1数据模型概述2.2关系模型基础2.3在SQL中定义关系模式2.4代数查询语言2.5关系上的约束10关系模型的组成(1)关系数据结构(2)关系操作集合(3)关系完整性约束11(1)关系数据结构在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。例如:学生信息表学号姓名性别年龄980010101张涛男18980010102李明男18980010103刘心女19……………………12基本概念关系属性域元组,分量模式关系的键(候选码、主属性、非主属性、主码、全码)关系的等价描述关系实例13关系关系是命名的二维表,用来描述事物及事物间的联系。示例:关系Movies(描述电影信息的二维表)14关系示例2学生(描述学生信息的二维表)学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影20010915关系示例3学生选课(描述学生选课信息的二维表)学号课程号成绩010802c01A010802c03B010801c02B010801c04C010801c01A010901c02D010901c03B16属性属性:关系中的各列。属性名即列名.属性名17属性示例2如:学生关系中有学号姓名年龄班级4个属性(属性组/属性集合)学号姓名年龄班级010801张雨200108010802李新190108010803陈辰190108010901刘影20010918关系和属性的约定P1219模式关系模式:关系名和其属性集合的组合称为这个关系的模式(schema)。注意:关系模式中的属性是集合(无序),不是列表(有序)。描述一个关系模式时,先给出关系名,其后是用圆括号括起来的所有属性。关系模式的一般表示形式为:关系名(属性1,属性2,...,属性n)示例:Movies关系模式Movies(title,year,length,filmType)20关系数据库模式一项关系模型设计包括一个或多个关系模式。这个关系模式的集合就叫做关系数据库模式,或者就称作数据库模式。例如:学生、课程、学生与课程之间的多对多联系在关系模型中可以表示如下:学生(学号,姓名,年龄,性别,专业)课程(课程号,课程名,学分)选修(学号,课程名,成绩)21域域:属性的数据类型、取值范围例如:关系Movies中,title的域为字符串集合还可规定人的年龄的域是(0-160)关系中任一元组的分量值必须属于对应列的域现在可以将每个属性的域包含在一个关系模式中。方法是在每个属性后面加上冒号和数据类型Movies(title:string,year:integer,length:integer,filmType:boolen)22元组元组:关系表中除首行外其他每一行均是一个元组。分量:每个元组均有一个分量对应于关系的每个属性一个元组:(StarWars,1977,124,color)元组中每个分量都有特定次序(属性在关系模式中的排列次序)一个元组一个分量,对应属性filmType23关系上的键键:关系的某个属性(组),可唯一地确定一个元组,且若从属性组中去掉任何一个属性,它就不具有这一性质了,这个属性(组)就称为该关系的键。例如:Movies(title,year,length,filmType)本例中Movies的键为属性组(title,year),表示语义上认为用电影的名称和年份可唯一地确定一部电影。其他:可以用学号来唯一确定一个华大学生也可以用一卡通号来唯一确定一个华大学生还可以用身份证号来唯一确定一个华大学生24候选码从上例可见,数据库中往往有多个键可供选择候选码:如果在一个关系中,存在多个属性(组)都能唯一标识该关系的元组,且若从属性组中去掉任何一个属性,它就不具有这一性质了。这些属性(组)都称为该关系的候选码。主属性:包含在候选码中的属性。非主属性:不包含在任何候选码中的属性称为非码属性或非主属性。25主码(主键)在若干个候选码中指定作为码(键)的属性(组)称为该关系的主码(主键)。每个表只能有惟一主键,且不能为空主键可唯一地确定一个元组,即可以保证关系实例上任何两个元组在键上取值不同。在关系模式中通常用下划线标记主键。例如:Movies(title,year,length,filmType)本例中Movies的主键为属性组(title,year)全码:如果一个关系的所有属性一起才能构成该关系的码,则称为全码。26外部关键字(外键)在关系模型中,为了实现表与表之间的联系,通常将一个表的主键作为数据之间联系的纽带放到另一个表中,这个起联系作用的属性称为外部关键字。27外键示例学号姓名性别出生年月专业01001王为男1981-04-21计算机应用01002黄若红女1982-08-10工商管理01003赵大力男1982-03-02电气技术01004陈述男1980-12-25计算机应用01005林静庭女1981-10-06电气技术学号课程号成绩01001C00487.0001001A01270.0001002C00762.5001003B01091.0001004B00674.0001004C00453.0001005B01085.50学生表成绩表通过公共属性实现两个表的联系“学号”是学生表的主键“学号”是成绩表的外键28关系的等价描述关系是元组的集合,而不是列表。因此关系中元组出现的顺序无关,属性次序也无关。即关系中行和列均无序,每一种排列对应该关系的一种等价描述。注意:改变属性次序时,也要改变它们所在列的次序,同时元组分量也应相应移动,与属性的排列方式一致。29关系实例关系实例(instance):一个给定关系中元组的集合。当前实例(currentinstance):通常的数据库系统仅仅只维护关系的一个版本,即关系的“当前”元组集合,这个关系实例称作当前实例。模式和实例的区别模式是关系名和关系属性,是相对不变的实例是关系元组的集合,是经常变化的Movies(title,year,length,filmType)30关系模型的组成(1)关系数据结构(2)关系操作集合常用的关系操作包括查询、插入、删除、修改等。(3)关系完整性约束31关系模型的组成(1)关系数据结构(2)关系操作集合(3)关系完整性约束实体完整性约束参照完整性约束用户定义的完整性需自行定义的约束条件必须满足的完整性约束条件321实体完整性约束现实世界中的实体是可区分的,具有某种唯一性标识;相应地,关系模型中以主码作为唯一性标识,主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界相矛盾,因此这个实体一定不是一个完整的实体。这就是实体的完整性规则。实体完整性定义:若属性A是基本关系R的主属性,则属性A不能取空值。332参照完整性约束在关系模型中,实体及实体间的联系都是用关系来描述的,这样就需要在关系与关系之间通过某些属性建立起它们之间的联系。例如:对于以下三个关系模式:学生信息(学号,姓名,性别,年龄)主码:学号课程(课程号,课程名,学分)主码:课程号选修(学号,课程号,成绩)主码:(学号,课程号)选修关系的学号必须在学生信息关系中存在的学号,而选修关系的课程号也必须是一个在课程关系中存在的课程号。34参照完整性定义设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系。例如,设有以下两个关系模式:职工(职工编号,姓名,性别,部门编号)(关系R-参照关系)部门(部门编号,名称,地址,简介)(关系S-被参照关系)属性F关系R的主码关系S的主码关系R的外码35参照完整性规则若属性(组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:空值(F的每个属性值均为空值);等于S中某个元组的主码值。参照完整性规则就是定义外码与主码之间的引用规则职工(职工编号,姓名,性别,部门编号)(关系R-参照关系)部门(部门编号,名称,地址,简介)(关系S-被参照关系)关系S的主码关系R的外码363用户定义的完整性针对某一具体应用所涉及的数据必须满足的语义要求,对关系数据库中的数据定义的约束条件。例如:对于以下关系模式可以定义:学生信息(学号,姓名,性别,年龄)性别字段的值只能为“男”和“女”年龄字段的值只能为大于0的整数37关系模式实例Movies(title:string,year:integer,length:sring,genre:string,studioName:string,producerC#:integer)MovieStar(name:string,address:string,gender:char,birthdate:date)StarIn(movieTitle:string,movieYear:integer,starName:string)MovieExec(name:string,address:string,cert#:integer,netWorth:integer)Studio(name:string,address:string,presC#:integer)38主要内容2.1数据模型概述2.2关系模型基础2.3在SQL中定义关系模式2.4代数查询语言2.5关系上的约束39SQL简介结构化查询语言(StructuredQueryLanguage-SQL)SQL已经成了关系数据库的标准语言,其主要特点:(1)综合统一(2)高度非过程化(3)用同一种语法结构提供两种使用方式(4)语言简洁,易学易用40(1)综合统一SQL语言的核心包括如下数据语言⑴数据定义语言(DataDefinitionLanguage-DDL)定义数据库的逻辑结构,是对关系模式一级的定义,包括
本文标题:第2章关系数据模型
链接地址:https://www.777doc.com/doc-2154868 .html