02120数据库及其应用2016年版第02章_第1页
02120数据库及其应用2016年版第02章_第2页
02120数据库及其应用2016年版第02章_第3页
02120数据库及其应用2016年版第02章_第4页
02120数据库及其应用2016年版第02章_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

数据库及其应用

02120

(2016年版)主编张迎新出版社机械工业出版社第二章关系数据库1第二章关系数据库学习目的1、掌握关系模型的基本概念2、掌握实体完整性和参照完整性的概念3、理解关系模型实现数据联系的方法和关系数据库结构特点4、掌握关系代数运算,能够根据实际问题写出关系代数表达式5、了解函数依赖、完全函数依赖、传递函数依赖、第一范式、第二范式、第三范式等概念,能够判断关系的规范化程度,并可将关系规范化到第三范式。2第二章关系数据库第一节

关系数据库的基本概念

第二节

数据完整性规则

第三节

关系模型实现数据联系的方法

第四节

关系代数

第五节

关系的规范化3第一节

关系数据库的基本概念一、关系(Relation)二、关系的性质三、数据类型四、键(Key)4第一节

关系数据库的基本概念

关系模型用二维表表示实体集,利用公共属性实现实体之间的联系。

一个关系数据库由若干个表组成,表与表之间通过在一个表中包含另一个表的主题(公共属性)的方法实现数据之间的联系。5单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。6一、关系(Relation

)78关系(Relation)

关系模型的数据结构单一,是一种二维表格结构。以关系模型建立的数据库就是关系数据库学生信息表学号姓名性别出生年月200942070401吴迪男02-28-80200942070402张杨男06-09-81200942070403李子凡女11-19-82200942070404舒舍予男05-01-80200942070405高大全男11-06-809表结构学号姓名性别出生年月200942070401吴迪男02-28-80200942070402张杨男06-09-81200942070403李子凡女11-19-82200942070404舒舍予男05-01-80200942070405高大全男11-06-80记录字段

表:实体集。即同一类实体。

记录(行):一个具体的实体。

字段(列):实体的属性

表的结构(表头):实体型。关系数据库10关系(Relation)

二维表元组(Tuple)

行属性(Attribute)列域(Domain)属性的取值范围称为域,如性别为“男”或“女”,月份为1~12等。键(Key)唯一标识实体的属性集称为(主)键(关键字),也称码。如教师编号,学生学号。外键

(表A中的一个字段不是A的(主)键,但是另一个表中的(主)键)关系模式关系名(属性名1

,属性名2

,…,属性名n

)关系术语例如:学生信息(学号,姓名,性别,出生年月)11二、关系的性质

关系是一种规范化的二维表,在关系模型中,关系必须满足下列性质:1)每一列中所有数据都是同一类型的,来自同一个域。2)每一列都有唯一的列名3)列名在表中的顺序无关紧要4)表中任意两行不能完全相同5)行在表中的顺序也是无关紧要的6)行与列的交叉点上必须是单值的(不能有一组值)12三、数据类型在定义表的结构时,必须确定列的数据类型。主要的类型有:1、数值2、字符3、日期4、逻辑

实际上,DBMS系统具有更丰富的数据类型。

例如,Access数据库系统中有短文本、长文本、数字、日期/时间、货币、自动编号、是/否、OLE对象、超链接、附件、计算、查阅向导等十几种数据类型。13四、键(Key)在一个关系中任意两个元祖都不允许在键上具有相同的值。在概念上,键可以分为超键、候选键、主键和外键。1、超键(SupperKey)

凡是能够唯一标识一个元祖的属性或属性组,均称为超键。超键能够唯一地标识关系的一个元祖,但是某些超键中可能包含多余的属性。2、候选键(CandidateKey)

候选键是最小超键,它的任意真子集都不能成为主键。3、主键(PrimaryKey)

在一个关系中可能存在多个候选键,选取其中一个候选键作为主键。主键用于唯一地标识关系的每一个元祖。在关系模型中,每一个关系必须有有一个主键,且主键的值是唯一的。主键是一个非常重要的概念。能够成为候选键的属性称为主属性,否则称为非主属性。4、外键(ForeignKey)

在关系数据库中,通过在一个表中包含另一个表主键(公共属性)的方法实现数据之间的联系。

1415

第二节数据完整性规则数据完整性是指数据的准确性和有效性数据完整性规则一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。16

关系数据模型的完整性规则是确保关系的值必须满足的约束条件。数据模型对约束条件的定义反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。17关系模型的三种完整性约束一、实体完整性(EntityIntegrity)二、参照完整性(ReferentialIntegrity)三、用户定义完整性(User-definedIntegrity)18

实体完整性参照完整性用户定义完整性数据的完整性约束关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。1、主键的字段不能为空2、主键字段值唯一不引用不存在的实体

根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。19一.实体完整性(EntityIntegrity)指主关系键的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。20二.参照完整性(Referentialintegrity)如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。如下图所示,学生关系中某个学生(如s1)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。如果某个学生(如s11)“系别”取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值21S(学生关系)

D(系别关系)

学生表和系别表

SNO学号SN姓名SEX性别AGE年龄DEPT所在系

DEPT所在系ADDR地址S1赵亦女17计算机

计算机1号楼S2钱尔男18信息

信息1号楼…

自动化2号楼S11王威男19

22三.用户定义完整性(User-definedIntegrity)用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。23第三节关系模型实现数据联系的方法

关系模型的基本结构是表(Table),表又称为关系。表是由行/列组成的矩阵,表与表之间的联系是通过公共属性(外键)实现的。两个不同的表,各自有许多相同或不同的属性(字段),可以通过这两个表的公共属性(如果有的话)建立两个表之间数据的联系。这个“公共属性”是一个表的主键和另一个表的外键,这是关系数据模型实现数据之间联系的主要特点。2425第四节

关系代数

关系代数运算是以一个或者两个关系作为输入,生成一个新关系的运算。关系代数的5种基本运算:

选择、投影、并、差、笛卡尔积关系代数的3种扩展运算:

交、联接、除(3种扩展运算可以用基本运算定义)

关系代数运算时关系操作的理论基础,学习关系代数运算的概念有利于理解关系数据库操作的基本原理。2627

3、差(Difference):R

S={t|t∈R∧t∈S}

第一类、传统的集合运算

1、并(Union):R

S={t|t∈R∨t∈S}

2、交(Intersection):R

S={t|t∈R∧t∈S}

关系代数的运算对象是关系,运算结果也为关系。其运算按运算符的不同也可分为如下两类:(可略讲)4、笛卡尔积(广义):R

S={trts|tr∈

R∧ts∈

S}28第二类、专门的关系运算

1、选择(Selection),又称限制(Restriction)

(R):F在关系R中选出满足条件F的所有元组形成一个新关系。条件表达式2、投影(Projection)(R)A:在R中选出若干属性列组成一个新关系。属性组投影后若有重复行,则自动保留一个从行的角度的运算从列的角度的运算29当为等号且A、B两属性相同时,称为自然连接,记作3、连接(Join)RSAB:从两个关系的笛卡尔积中选取属性间满足条件AB的元组。R中属性S中属性比较运算符说明:RSAB=

(RS)AB

RS自然连接将去掉重复属性连接是同时处理多个关系的重要运算若仅有为等号的条件,称为等值连接30?4、除(Division)

R(X,Y)

S(Y,Z):把R按X的值分组,若某一组中属性组Y的值包含S在Y上投影的全部元组,则该X的值作为商关系的一个元组属性组例:求至少选修C1、C3课程的学生号码设一临时关系K:C#C1C3关系代数表达式(SC)K=S#,C#{S1,…}S#C#GS1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2BS3C3CS3C4BS4C1BS4C3ASC:按S1分组(包含C1、C3)31?4、除(Division)

R(X,Y)

S(Y,Z):把R按X的值分组,若某一组中属性组Y的值包含S在Y上投影的全部元组,则该X的值作为商关系的一个元组属性组例:求至少选修C1、C3课程的学生号码设一临时关系K:C#C1C3关系代数表达式(SC)K=S#,C#{S1,…}S#C#GSC:按S2分组S1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2BS3C3CS3C4BS4C1BS4C3A(不包含C1、C3)32?4、除(Division)

R(X,Y)

S(Y,Z):把R按X的值分组,若某一组中属性组Y的值包含S在Y上投影的全部元组,则该X的值作为商关系的一个元组属性组例:求至少选修C1、C3课程的学生号码设一临时关系K:C#C1C3关系代数表达式(SC)K=S#,C#{S1,…}S#C#GSC:按S3分组S1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2BS3C3CS3C4BS4C1BS4C3A(不包含C1、C3)334、除(Division)

R(X,Y)

S(Y,Z):把R按X的值分组,若某一组中属性组Y的值包含S在Y上投影的全部元组,则该X的值作为商关系的一个元组属性组例:求至少选修C1、C3课程的学生号码设一临时关系K:C#C1C3关系代数表达式(SC)K=S#,C#S#C#GSC:按S4分组S1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2BS3C3CS3C4BS4C1BS4C3A{S1,S4}(包含C1、C3)本书按如下两种分类进行讲解1、关系代数的5种基本运算:

选择、投影、并、差、笛卡尔积2、关系代数的3种扩展运算:

交、联接、除34一、关系代数的基本运算1、选择(Select)2、投影(Project)3、并(Union)4、差(Difference)5、笛卡尔积(Product)6、基本关系代数的应用

选择和投影是对一个关系进行运算,称为一元运算。

并、差和笛卡尔积是对两个关系进行运算,称为二元运算。35361、选择(Select)

37从行的角度的运算例2.3检索客户编号为“C1”,且订单状态为“完成”的订单信息。σ客户编号=“C1”AND订单状态=“完成”(订单)运算结果如图2.8b所示。38订单号签单日期发货日期客户编号送货地址收货人订单状态职工号D12015/8/72015/8/12C1武汉市长江路3号江芳芳完成E3D22015/8/92015/8/15C1长沙市南湖路7号康何敏加工中E4订单号签单日期发货日期客户编号送货地址收货人订单状态职工号D12015/8/72015/8/12C1武汉市长江路3号江芳芳完成E3图2.8a)选择运算示例图2.8b)选择运算示例选择运算举例ABC367257723443R

A<5(R)

ABC367257443

A<5AND

C=7(R)

ABC367257(关系R,有属性A、B、C)39选择运算举例查询年龄不小于20的男学生(关系S,有属性AGE代表年龄,SEX代表性别)

AGE≥20AND

SEX=‘male’(S)402.投影(Projection)投影运算是从关系中选择某些属性构成一个新的关系,投影的结果将消除重复元组。记作:

A,B(R),其中

是投影运算的运算符,A和B是以下标形式表示的属性名(或列的序号),括号中的R是参数关系。例2.4列出订单关系中所有订单号及其订单状态。

订单号,订单状态(订单)或

2,7(订单)41订单号订单状态D1完成D2加工中D3完成D4完成投影举例投影的结果中要去掉相同的行cbcfedcbaCBABCbcef

R

B,C(R)42投影举例查询所有学生的姓名和年龄

SN,AGE(S)查询001号学生所选修的课程号

KCH(XSH=‘001’(SC))(嵌套,先求

XSH=‘001’(SC))433.并(Union)设关系R和关系S的都是n列属性,且所有对应属性相同。关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:

R∪S={t|t∈RORt∈S}对于关系数据库,记录的插入和添加可通过并运算实现。R

S44并运算范例ABC367257723443RABC345723SABC367257723443345R∪S

45

4.差(Difference)设关系R与关系S都是n目关系关系,且所有属性相同。R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:

R-S={t|t∈Randt∈S}通过差运算,可实现关系数据库记录的删除R

S46差运算范例ABC367257723443RABC345723SABC367257443R-S

ABC367S-R475.笛卡尔积(Product)两个分别为n列和m列关系R和S的笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的笛卡尔积有k1*k2个元组,记R×SR×S={tr+ts|tr∈RANDts∈S,

tr是R的元祖,

ts是S的元祖}关系的笛卡尔积可用于两关系的连接操作。48笛卡尔积运算示例AB

12rCD

10102010EaabbsAB

11112222CD

1019201010102010Eaabbaabbrx

s49【笛卡尔积运算举例】

如图(a)、(b)所示的两个关系R与S,求R与S的笛卡尔积。

R

S

(a)

(b)

ABC

ABCa1b1c1

a1b1c1a1b1c2

a2b2c1a2b2c1

a2b3c250R×S

R.AR.BR.CS.AS.BS.Ca1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2R与S的笛卡尔积5152536.基本关系代数运算的应用综合应用选择、投影、并、差、笛卡尔积5种基本运算,可以表达复杂的查询操作。例2.6列出订购“P1”商品的订单号。(教材P41---42)

订单号(商品编码=“P1”(订单明细))=

订单号

商品编码=“P1”(订单明细)(嵌套,先求

商品编码=“P1”(订单明细))

订单号D1D254例2.7列出所有订单的订单号、客户名称、订单日期。(教材P42)

订单号,客户名称,订单日期

客户.客户编号=订单.客户编号(客户X订单)=

订单号,客户名称,订单日期

(

客户.客户编号=订单.客户编号(客户X订单))操作:1、先作笛卡尔积---客户X订单

2、选择:

客户.客户编号=订单.客户编号(客户X订单)3、

订单号,客户名称,订单日期(客户.客户编号=订单.客户编号(客户X订单))订单号客户名称订单日期D1光明纺织公司2015/8/7D2光明纺织公司2015/8/9D3大洋制衣公司2015/8/10D4磐新家纺公司2015/8/10二、扩展的关系代数运算1、交(Intersect)2、联接(Join)3、除运算(Divide)关系代数的基本足以表达任何关系代数的查询操作。但是,对于某些常见的查询操作使用基本运算表达可能会显得冗长。如果使用扩展的关系代数运算,可以简化这类查询的关系代数表达式。551.交(Intersection)设关系R与关系S都是n列关系,且对应的属性相同。关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n列关系。记作:

R∩S={t|t∈RANDt∈S}如果两个关系没有相同的元组,那么它们的交为空。交运算可以用差运算来表示:

R∩S=R-(R-S)R

S56交运算范例ABC367257723443RABC345723SABC723R∩S

5758当为等号且A、B两属性相同时,称为自然连接,记作2.联接(Join)运算RSAB:从两个关系的笛卡尔积中选取属性间满足条件AB的元组。R中属性S中属性比较运算符说明:RSAB=

(RS)AB

RS自然连接将去掉重复属性连接是同时处理多个关系的重要运算若仅有为等号的条件,称为等值连接。使用其它运算符,则称为非等值联接。592.联接(Join)运算

联接运算,也称为连接运算。

----从两个关系的笛卡儿积中选取给定属性间满足一定条件的元组。联接运算可以用笛卡尔积、选择和投影运算表达。RSABABRS---联接运算符---表示关系R和关系S进行联接运算---A是R中属性,B是S中属性,

是比较运算符,有:=、>、<、>=、<=、<>(或!=)60联接运算一般有4种:1、内联接(InnerJoin)2、自然连接(NaturalJoin)3、左外联接(LeftOuterJoin)4、右外联接(RightOuterJoin)6162例2.8为了方便显示,将图2-7种的客户和订单关系简化为R与S,如图2-10所示。求解:(教材P43---44)1)R与S内连接,运算结果如图2-11a所示2)自然连接,运算结果如图2-11b所示3)左外连接R*,运算结果如图2-11c所示客户编号客户名称联系人C1光明纺织公司李明生C2大洋制衣公司王志军C3磐新家纺公司田丽萍C4蓝鸟家纺公司关和宇订单号签单日期客户编号订单状态D12015/8/7C1完成D22015/8/9C1加工中D32015/8/10C2在途D42015/8/10C3完成R(客户)S(订单)图2-10关系R和SRS

S63643.除运算(Divide)(可选讲)由于除运算的定义比较复杂,举例说明。问题:假设在关系R中找出同时购买“P1”和“P4”两种商品的订单号。构造关系S,如图2-12.被除数是订单关系R,除数是关系S。记作:R÷S商品编号订单号P1D1P2D1P4D1P1D2P4D2P2D3P4D3商品编号P1P4订单号D1D2÷=SR÷SR图2-12除运算实例除法(Division)

R÷S

R能被S除的充分必要条件是:

R中的属性包含S中的所有属性;R中有一些属性不出现在S中。65R÷S的运算步骤是:①T=π1,2,…,R-S(R)(取在R中不在S中的属性,构成关系T)②W=(T×S)-R(计算T×S中不在R中的元组,构成关系W);③V=π1,2,…,R-S(W)(取W中那些在R不在S中的属性,构成关系T)④R÷S=T-V。即R÷S=π1,2,…,R-S(R)-

π1,2,…,R-S((π1,2,…,R-S(R)×S-R)66除运算举例1ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR

AB(R)S

AB(R)

CD(S)

AB(R)

CD(S)-R

ABCDbccdR

S=ABabbcedABbc-=67除运算举例2

课程数学物理=姓名课程成绩张军物理93王红数学86张军数学93王红物理92

课程数学物理姓名课程张军物理王红数学张军数学王红物理姓名张军王红=姓名成绩张军93选修了全部课程并且成绩都相同的学生选修了全部课程的学生68第五节关系的规范化

关系规范化是利用关系模式中属性与属性之间的函数依赖性,判断关系模式的合理性,解决数据库设计的优化问题。关系规范化是用于解决数据库相关问题的,诸如数据冗余、数据操作异常等.

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余等问题。一、函数依赖1、函数依赖的定义2、函数依赖图3、完全函数依赖4、传递函数依赖二、关系的规范化1、非规范化的关系2、第一范式3、第二范式4、第三范式5、关系规范化的应用实例691.数据冗余同一个数据多次重复出现2.操作异常

(1)修改异常修改复杂,产生不一致现象(2)插入异常由于完整性约束,有些数据不能插入(3)删除异常删除数据时,会引起删除了不该删除的数据关系模式的冗余和异常问题7071一、函数依赖(FunctionalDependency,简记为FD)关系规范化实际上是围绕着函数依赖进行的。函数依赖就是关系中属性之间取值的依赖情况,就是关系

温馨提示

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

评论

0/150

提交评论