您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 关系模型与关系代数PPT
1SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数目录关系模型2.1关系代数2.22SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系模型系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970关系数据库系统是支持关系数据模型的数据库系统。关系数据库管理系统是当今的主流数据库管理系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。3SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系关系模型的数据结构非常简单,它就是二维表,亦称为关系。关系数据库是表的集合,即关系的集合。表是一个实体集,一行就是一个实体,它由共同表示一个实体的有关联的若干属性的值所构成。由于一个表是这种有关联的值的集合(即行的集合),而表这个概念和数学上的关系概念密切相关,因此称为关系模型。关系模型中,现实世界的实体以及实体间的各种联系都是用关系来表示。4SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系数据结构的形式化定义域——是一组具有相同数据类型的值的集合。笛卡尔积给定一组域D1,D2,…,Dn,它们之中可以有相同的域。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}其中,集合中的每一个元素(d1,d2,…,dn)称为一个n元组,简称为元组;元素中的每一个值di称为一个分量。若Di(i=1,2,…,n)为有限集,假设其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:niimM1niimM1niimM1举例:给定两个域:学生的姓名集合:D1={‘李小勇’,‘刘方晨’,‘王红敏’}课程的名称集合:D2={‘数据库系统概论’,‘操作系统’}则D1,D2的笛卡尔积为:D1×D2={(‘李小勇’,‘数据库系统概论’),(‘李小勇’,‘操作系统’),(‘刘方晨’,‘数据库系统概论’),(‘刘方晨’,‘操作系统’),(‘王红敏’,‘数据库系统概论’),(‘王红敏’,‘操作系统’)}niimM15SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系数据结构的形式化定义关系D1×D2×…×Dn的子集称为在域D1,D2,…,Dn上的关系,表示为:r(D1,D2,…,Dn)其中,r表示关系的名字,n是关系的目或度(degree)。当n=1时,称该关系为单元关系;当n=2时,称该关系为二元关系。关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应于关系的一个元组,表的每列对应于关系的一个域。由于域可以相同,为了区别就必须给每列起一个名字,称为属性(attribute)。n目关系共有n个属性。niimM1niimM16SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系数据结构的形式化定义超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码(superkey)。候选码:对于关系r的一个或多个属性的集合A,如果属性集A的任意真子集都不能成为关系r的超码,则称属性集A为候选码(candidatekey)。主码:若一个关系有多个候选码,则可以选定其中的一个候选码作为该关系的主码。空值:所有可能的域的一个取值,表明值未知或不存在。如果某学生的speciality属性值为null,则表示该学生还没有明确所学专业,或不知道他的所学专业。niimM1niimM1举例:Student关系studentNostudentNamesexbirthdayspeciality0701001李小勇男1990-12-21计算机0701008王红男1992-04-26计算机0802002刘方晨女1990-11-11信息系统0802005王红敏女1990-10-01信息系统0703045王红男1992-04-26会计学0703010李宏冰女1992-03-09会计学超码:studentNo,{studentNo,studentName}、{studentNo,sex}、{studentNo,studentName,speciality}、…候选码:studentNo和{studentName,speciality}——与语义有关主码:studentNo7SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系模式对于一个二维表,有表头部分和表体部分,表头部分定义了该表的结构,即定义了该表由哪些列构成(假设由n列构成),每个列的名字和取值范围等;表体就是所有数据行的集合,每一个数据行都是由表头部分规定的n列有关联的取值的集合构成。对应于关系数据库,表的每一个数据行对应于关系的一个元组,表体对应于关系,关系是元组的集合,关系是值的概念;表头部分对应于关系模式,关系模式是型的概念,它定义了元组集合的结构,即定义了一个元组由哪些属性构成(假设由n个属性构成),每个属性的名字和来自的域等.8SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系模式关系的描述称为关系模式(relationschema)。形式化地表示为:r(U,D,DOM,F)r为关系名,U为组成该关系的属性名的集合,D为属性集U中所有属性所来自的域的集合,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合(即体现一个元组的各属性取值之间的“关联”性)。关系模式通常被简记为:r(U)或r(A1,A2,…,An)r为关系名,U为属性名的集合{A1,A2,…,An}9SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系数据结构关系模式关系数据库也有型和值之分,型就是关系数据库模式,即它所包含的所有关系模式的集合;值就是这些关系模式在某一时刻所对应的关系的集合,通常就称为关系数据库实例。在实际应用中,人们经常把关系数据库模式和关系数据库实例都笼统地称为关系数据库。举例:学生成绩管理数据库ScoreDB的模式Class(classNo:char(6),className:varchar(30),institute:varchar(30),grade:smallint,classNum:tinyint)Student(studentNo:char(7),studentName:varchar(20),sex:char(2),birthday:datetime,native:varchar(20),nation:varchar(30),classNo:char(6))Course(courseNo:char(5),courseName:varchar(30),creditHour:numeric,courseHour:int,priorCourse:char(5))Score(studentNo:char(7),courseNo:char(5),term:char(5),score:numeric)说明:基本数据类型请参见P112~11310SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系完整性约束条件实体完整性若属性集A是关系r的主码,则A不能取空值null。例如,关系Student,由于studentNo是关系Student的主码,因此它在任何时候的取值都不能为空值null,但其他属性如sex、birthday、speciality等都可以取空值,表示当时该属性的值未知或不存在。如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。例如,学生成绩管理数据库ScoreDB中的关系Score,它的主码是{studentNo,courseNo,term},因此这3个属性都不能取空值。11SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系完整性约束条件参照完整性设F是关系r的一个属性(或属性集),Ks是关系s的主码。如果F与Ks相对应,则称F是关系r参照关系s的外码(foreignkey),简称F是关系r的外码。并称关系r为参照关系,关系s为被参照关系或目标关系。若属性(或属性集)F是关系r的外码,它与关系s的主码Ks相对应,则对于关系r中的每一个元组在属性F上的取值要么为空值null,要么等于关系s中某个元组的主码值。12SchoolofInformationTechnology,JiangxiUniversityofFinance&Economics数据库系统原理与设计第2章关系模型与关系代数关系完整性约束条件举例:多对一联系的属性引用学生成绩管理数据库ScoreDB中,学生关系Student与班级关系Class之间存在多对一的“归属”联系。多对多联系的联系关系及属性引用学生成绩管理数据库ScoreDB中,假设每一个学生一个学期可以选修若干门课程,每一门课程同时有若干个学生选修,那么学生关系Student与课程关系Course之间存在多对多的“选修”联系,且课程的开课学期term和修读成绩score为联系属性。关系内部属性间的引用联系学生成绩管理数据库ScoreDB中,假设一门课程可能存在先修课程,且关系Course中的priorCourse属性用来存放先修课程的课程编号。课程关系Course中的priorCourse属性需要引用课程关系Course的主码“课程编号”courseNo。Class(classNo,className,institute,grade,classNum)Student(studentNo,studentName,sex,birthday,native,nation,classNo)图2-4实现“多对一”联系的属性引用1nStudent(studentNo,studentName,sex,birthday,native,nation,classNo)Score(studentNo,courseNo,term,score)Course(courseNo,courseName,creditHour,courseHour,priorC
本文标题:关系模型与关系代数PPT
链接地址:https://www.777doc.com/doc-2342758 .html