数据库系统原理与实践 课件 第2章 数据库关系模型_第1页
数据库系统原理与实践 课件 第2章 数据库关系模型_第2页
数据库系统原理与实践 课件 第2章 数据库关系模型_第3页
数据库系统原理与实践 课件 第2章 数据库关系模型_第4页
数据库系统原理与实践 课件 第2章 数据库关系模型_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

2.1关系及其相关概念——关系、实体了解关系模型提出理解“实体”与“关系”概念理解关系特征理解“关系”的数学定义【本节学习目标】1970年,IBM的研究员E.F.Codd博士在刊物《CommunicationoftheACM》上发表了一篇关于数据库模型的学术论文(篇名为“ARelationalModelofDataforLargeSharedDataBanks”),首次提出了关系模型概念及其原理方法。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系模型的12条标准,进一步奠定了关系数据库的数学理论基础。一、关系模型提出关系模型以关系代数理论为数学基础,将数据操作抽象为关系表处理的数据模型。关系模型在当今几乎所有商业数据库中得到广泛应用。实体(entity)——是指包含有数据特征的事物对象在概念模型世界中的抽象名称。实体名称实体属性“雇员”实体例在企业信息系统中,人员信息可以使用“雇员(EMPLOYEE)”实体名称表示,并用实体模型符号可视化表示如下。二、实体、关系的概念1.实体在关系模型中,使用“关系”来存储“实体”中的数据。关系(relation)——是指具有关系特征、用于存放实体数据的二维表。关系也常被称为关系表。“EMPLOYEE”关系表2.关系3.关系特征表中每行存储实体的一个实例数据表中每列包含实体的一项属性数据

表中单元格只能存储单个值不允许有重复的行不允许有重复的列

列顺序可任意行顺序可任意行或元组列或属性表单元有多个条目值问题:下面包含数据的二维表是关系表吗?非关系表Email列中的条目类型不一致问题:下面包含数据的二维表是关系表吗?非关系表问题:下面包含数据的3个二维表是关系表吗?关系表三、关系的数学定义定义:

关系是指在集合域

D1、…、Dn

上运算笛卡儿积的有意义子集,其数学描述为

R⊆D1×…×Dn。

说明:关系R只是该笛卡儿积的有意义子集,即关系R的元组数<=笛卡儿积的元组数。例

若一个“学生”实体有(学号,姓名,性别)三个属性。我们可以使用D1、D2、D3域来定义它们,并假定它们的域值范围如下:D1={2017010001,2017010002,2017010003}D2={刘京,夏岷,周小亮}D3={男,女}在本例中,D1,D2,D3的笛卡儿积为:D1×D2×D3={(2017010001,刘京,男),(2017010001,刘京,女),(2017010001,夏岷,男),(2017010001,夏岷,女),…,(2017010003,周小亮,女)}。共计18个元组。在上面描述“学生”实体的笛卡尔积元组集合中,只有如下元组构成的子集,才能成为“学生”关系的数据,如下表所示。“学生”关系本节学习结束!2.1-2关系及其相关概念——关系键、关系模式理解“键”、“复合键”、“候选键”概念理解“主键”、“代理键”、“外键”概念掌握关系模式语句表示方法【本节学习目标】一、关系的键定义在关系中,可以用来唯一标识元组的属性列,称为键(Key),其它属性列都为非键列。键非键1.复合键复合键(CompoundKey)——是指关系中用来唯一标识元组的多列作为键。(学号,课程编号)—复合键学号课程编号成绩20100201001902010020300188201002060019020100209001872010020100290201002030028020100201003942.候选键候选键(CandidateKey)——关系中可能有多个列均适合作为键,将其中每个都称为候选键。候选键候选键主键(Primarykey)是关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。3.主键主键主键作用:唯一标识关系表的每行(元组)与关联表的外键建立联系,实现关系表之间连接数据库文件使用主键值来组织关系表的数据存储数据库使用主键索引快速检索数据主键定义操作实例:在PostgreSQL数据库中定义Employee关系表主键设置主键设置非空4.代理键代理键——采用DBMS自动生成的数字序列作为关系表的主键。代理键有什么用途?由DBMS自动生成的数字序列作为主键,可替代复合主键,以便获得更高性能的数据访问操作处理。实例:在房产信息Property关系表中定义代理键代理键二、关系模式语句表示RELATION_NAME(Colunm01,Colunm02,…,LastColunm)关系名称属性名关系模式语句中主键表示方法:关系名(主键属性,属性2,…,属性x)EMPLOYEE(EmployeeNumber,FirstNmae,LastName,Department,Email,Phone)该关系模式的语句表示为:EMPLOYEE关系例:EMPLOYEE关系表的关系模式语句表示本节学习结束!2.2关系模型原理——数据结构、数据操作理解关系模型组成原理掌握关系模型的数据操作方法【本节学习目标】一、关系模型及其组成关系模型(RelationModel)——是一种基于二维表结构存储数据实体及实体间联系的数据模型。该模型的二维表都应具有关系特征。1.数据结构集合运算包括交(intersection)、并(union)、差(difference)、笛卡尔乘积(Cartesianproduct)等。2.数据操作专门关系运算包括关系的选择(select)、投影(project)、连接(join)、插入(Insert)、修改(Update)、删除(Delete)操作。集合运算操作专门关系操作基于关系代数的集合运算和专门关系运算对关系表中数据进行操作处理。关系数据库关系表在关系模型中,数据约束是指关系表中实体数据完整性、关联表之间数据一致性、属性列取值约束等要求。一般由业务规则来确定关系表中数据约束。3.数据约束在关系模型中,以下内容均是关系表的数据约束:属性列取值类型属性列取值范围属性列取值是否唯一属性列是否允许空值关联列之间的数据一致性关系数据模型二、关系模型的集合运算R关系、S关系的数据关系模型采用关系代数的并、交、差、笛卡尔乘积集合运算对两个关系进行数据操作。1.关系“并运算∪”集合操作R∪S={t|t∈R∨t∈S}关系并运算∪的结果集是由属于R或属于S的所有元组组成。关系并运算∪的前提:关系R与关系S需有相同属性组成。2.关系“交运算∩”集合操作R∩S={t|t∈R∧t∈S} 关系交运算∩的结果集是由既属于R又属于S的所有元组组成。关系差运算∩的前提:关系R与关系S需有相同属性组成。3.关系“差运算-”集合操作R-S={t|t∈R∧t∉S} 关系差运算-的结果集是由属于R,而不属于S的所有元组组成。关系差运算—的前提:关系R与关系S需有相同属性组成。4.关系“笛卡尔积x”集合操作R×S={(d1,d2)|d1∈R,d2∈S}笛卡儿积运算的结果集是由所有属于R的元组与所有属于S的元组进行组合而成。练习:关系R与关系S的数据见下表所示,请分别给出R∪S、R∩S、R-S运算的结果数据R∪S运算R∩S运算R—S运算三、关系模型的专门关系操作1.关系的选择运算选择运算是在关系R中使用σ(西格玛)运算操作,选择出满足给定条件C的元组集,其运算表达式如下:σC(R)={t|t∈R∧C(t)='真'}

C为选择条件的逻辑表达式,其值为逻辑“真”或“假”值;t是R中某元组。当R代入条件C时,如果某元组代入的结果为真,则这个元组就是σC(R)的一个元组,否则此元组就不在结果集中。2.关系的投影运算投影运算是在关系R中使用Π(派)运算操作,投影出部分属性列组成一个新的关系,其运算表达式如下:ΠA(R)={t[A]|t∈R

}式中,A为R中的部分属性列。例

有一个TEACHER(教师)关系表,如表2-4所示。表2-5和表2-6分别给出选择与投影运算表达式。例

对表2-4所示的TEACHER关系,查询出职称为“教授”的教师基本信息(TeacherNumber,Name,Email),其关系运算表达式为:ΠTeacherNumber,Name,Email(σTitle='教授'(TEACHER))3.关系的复合运算关系复合运算是指对一个关系同时进行多种运算,如选择、投影。TeacherNumberNameEmailA01203王亚周A01203@A01206周丽丽A01206@4.关系的连接运算连接运算是将两个关系组合成一个新的关系,连接有θ连接、自然连接和外连接等形式。1)θ连接θ连接是指从R和S的笛卡尔积中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组集合组成新关系,记作下式:σAθB(R×S)

A和B分别为关系R和S上度数相等且具有可以比较值的属性组,θ为比较运算符,它包括{<,≤,=,>,≥}。例

R关系元组数据为求职人员的薪水要求信息,S关系元组数据为公司招聘职位的薪水标准信息,如下图所示。现需要找出公司招聘职位的薪水标准满足求职人员薪水要求的候选面试人员列表。通过使用θ连接运算σR.Wage≤S.Salary(R×S)来实现处理。2)自然连接自然连接是一种特殊的等值连接运算(θ为=),它不但要求结果集元组在两个关系的关联列具有相同值,并且还要在结果集中把重复的属性列去掉,记作如下表达式。R∞S例

R关系为员工元组数据,S关系为部门元组数据,见下图所示。现需要通过R与S关系自然连接运算得到员工部门信息表。R∞S3)外连接内连接是指将两个关系中符合匹配条件的元组构成结果集。外连接是在内连接基础上增加未匹配元组的连接操作,包括左外连接、右外连接和全外连接。R∞S左外连接针对与左侧关系不匹配的右侧关系元组,用空值(NULL)填充所有来自右侧关系的属性列,再把产生的连接元组添加到自然连接的结果集中。左外连接右外连接针对与右侧关系不匹配的左侧关系元组,用空值(NULL)填充所有来自左侧关系的属性列,再把产生的连接元组添加到自然连接的结果集中。右外连接全外连接是指同时完成左外连接和右外连接的运算。全外连接RS本节学习结束!2.2关系模型原理——完整性约束理解关系模型完整性约束理解实体完整性理解参照完整性理解用户自定义完整性【本节学习目标】关系模型完整性是指在关系数据模型中对关系实施的完整性约束。关系模型完整性约束分类:实体完整性约束——消除关系表的元组重复存储参照完整性约束——保持关联表的数据一致性用户自定义完整性约束——实现业务数据规则1.实体完整性实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。实体完整性约束规则:实体关系表中的主键属性列都不允许为空值(NULL),否则就不可能标识实体。实体关系表中的元组是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。例选课注册关系表(Register)的实体完整性定义Teacher关系表的实体完整性约束定义设置主键设置非空问题探讨:在表2-7、表2-8、表2-9所示的成绩关系表中,请判断哪些表符合实体完整性约束、哪些表不符合实体完整性约束?参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列之间的数据一致性。参照完整性约束规则:若关系R中的外键F与关系S中的主键K相关联,则R中外键F值必须与S中主键K值一致。外键(Foreignkey)——在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。2.参照完整性主键外键例

在下面的出版社、书名关系表中,它们通过相同的“出版社编号”属性列进行关联。这两个表之间的参照完整性约束是指“书名”关系表的“出版社编号”列值必须与“出版社”关系表中的“出版社编号”值匹配,即需要维持它们之间数据一致性。用户自定义完整性是指用户根据具体业务数据处理要求对关系中属性施加的数据约束。用户可以定义如下类型的完整性约束:定义列的数据类型与取值范围定义列的缺省值定义列是否允许取空值定义列取值唯一性定义列之间的数据依赖性3.用户自定义完整性例

在下面表2-10所示的成绩关系表中,业务要求分数字段Score的取值范围为0-100或为空值。本节学习结束!2.3PostgreSQL数据库关系操作实践掌握创建PostgreSQL关系数据库方法掌握在PostgreSQL数据库中创建关系表方法掌握在PostgreSQL数据库中定义关系表的主键、代理键与外键方法掌握在PostgreSQL数据库中定义关系表的实体完整性、参照完整性、用户自定义完整性方法【本节学习目标】本节将围绕“选课管理系统”项目案例,在PostgreSQL数据库中创建关系表及其完整性约束,并理解本章所学习的关系模型基本概念和关系操作原理。课程表(COURSE)教师表(TEACHER)开课计划表(PLAN)学生表(STUDENT)选课注册表(REGISTER)学院信息表(COLLEGE)一、项目案例——选课管理系统数据库关系表实践选课管理数据库(CurriculaDB)课程表(COURSE)字段名称字段编码数据类型字段大小必填字段是否为键课程编号CourseID文本4是主键课程名CourseName文本20是否课程类别CourseType文本10否否学分CourseCredit数字短整型否否学时CoursePeriod数字短整型否否考核方式TestMethod文本10否否教师表(TEACHER)字段名称字段编码数据类型字段大小必填字段是否为键教师编号TeacherID文本4是主键姓名TeacherName文本10是否性别TeacherGender文本2否否职称TeacherTitle文本6否否所属学院CollegeID文本3否外键联系电话TeacherPhone文本11否否开课计划表(PLAN)字段名称字段编码数据类型字段大小必填字段是否为键开课编号CoursePlanID自动编号长整型是代理键课程编号CourseID文本4是外键教师编号TeacherID文本4是外键地点CourseRoom文本30否否时间CourseTime文本30否否备注Note文本50否否学生表(STUDENT)字段名称字段编码数据类型字段大小必填字段是否为键学号StudentID文本13是主键姓名StudentName文本10是否性别StudentGender文本2否否出生日期BirthDay日期短日期否否专业Major文本30否否手机号StudentPhone文本11否否选课注册表(REGISTER)字段名称字段编码

温馨提示

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

评论

0/150

提交评论