第2章 关系模型精选文档.ppt
《第2章 关系模型精选文档.ppt》由会员分享,可在线阅读,更多相关《第2章 关系模型精选文档.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章关系模型本讲稿第一页,共八十页本章主要内容本章主要内容u关系模型的数据组织方式关系模型的数据组织方式数据结构数据结构u按关系模型组织的数据必须满足的约束按关系模型组织的数据必须满足的约束条件条件数据完整性数据完整性u按关系模型组织的数据所允许的操作按关系模型组织的数据所允许的操作数据操作数据操作 本讲稿第二页,共八十页引言vE.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖v关系理论是建立在集合代数理论基础上的,有着坚实的数学基础v早期代表系统System:由IBM研制INGRES:由加州Berkeley分校研制v目前主流的商业数据库系统都为关系型:Orac
2、le,Informix,Sybase,SQLServer,DB2Access,Foxpro,Foxbase本讲稿第三页,共八十页2.1 关系模型的数据结构关系模型的数据结构1.关系的基本名词关系的基本名词v关系:一张满足某些约束条件的二维表,如表一张满足某些约束条件的二维表,如表2-1 Students关系。关系模型的数据结构是关系。关系。关系模型的数据结构是关系。v元组:关系中的一行称为一个元组。对应表中的一行,存放关系中的一行称为一个元组。对应表中的一行,存放的是客观世界的一个的是客观世界的一个实例实例,如表,如表Students关系中的一行,关系中的一行,存放的是一个学生的数据存放的是一
3、个学生的数据。v属性:关系中的一列,称为一个属性。对应表中的一列。一个关系中的一列,称为一个属性。对应表中的一列。一个属性表示实体的一个特征,如表属性表示实体的一个特征,如表 Students关系中的关系中的Sno属性属性表示学生表示学生实体实体的学号特征值。的学号特征值。本讲稿第四页,共八十页v实体实体(Entity):实体是客观存在的并且相互区分的事务。实体可以实体是客观存在的并且相互区分的事务。实体可以是实际事务,也可以是抽象事件。例如,一个职工、一个部门等是实际事务,也可以是抽象事件。例如,一个职工、一个部门等属于实际的事务;一次订货、借阅若干本图书、一场比赛等活动属于实际的事务;一次
4、订货、借阅若干本图书、一场比赛等活动是比较抽象的事件。是比较抽象的事件。v实体集(实体集(Entity Set):同型实体的集合称为实体集。例如全体职同型实体的集合称为实体集。例如全体职工集合,全馆图书等。工集合,全馆图书等。v实体型(实体型(Entity Type):具有相同属性的实体具有共同的特征):具有相同属性的实体具有共同的特征和性质,用实体名及其属性名来抽象和刻画同类实体称为实体和性质,用实体名及其属性名来抽象和刻画同类实体称为实体型。例如实体型型。例如实体型“职工职工”表示全体职工的概念,并不具体指职表示全体职工的概念,并不具体指职工甲或职工乙。每个职工是职工实体工甲或职工乙。每个
5、职工是职工实体“型型”的一个具体的一个具体“值值”,必须明确区分,必须明确区分“型型”与与“值值”的概念。在数据模型中的实体的概念。在数据模型中的实体均是指均是指“型型”而言的。以后在不致引起混淆的情况下,说而言的。以后在不致引起混淆的情况下,说实体实体即是实体型。即是实体型。本讲稿第五页,共八十页v一个二维表就是一个关系学生表属性属性元组元组男女男性别192221年龄D01李红1002D02王伟1003D01张军1001系号姓名学号记录字段本讲稿第六页,共八十页v域:关系中一个属性的取值范围。例如,关系中一个属性的取值范围。例如,Ssex的取值范围是的取值范围是M,F,代表性别为男性和女性。
6、,代表性别为男性和女性。v关系示例关系示例:本讲稿第七页,共八十页v关系的等价术语之间的对应关系关系的等价术语之间的对应关系一般用户 关系模型 程序员 表(Table)关系(Relation)文件(File)行(Row)实体(Entity)记录(Record)列(Column)属性(Attribute)字段(Field)2.2.关系的性质关系的性质v关系中每一属性都是最小的关系中每一属性都是最小的。对表而言,每一个。对表而言,每一个行与列的交叉点上只能存放一个单值行与列的交叉点上只能存放一个单值 。本讲稿第八页,共八十页v关系中同一属性的所有属性值具有相同的数据类型。关系中同一属性的所有属性值
7、具有相同的数据类型。对表而言,表中同一列中的所有列值都必须属于同对表而言,表中同一列中的所有列值都必须属于同一数据类型。例如表一数据类型。例如表2-1中中Students表的表的Sname列的列的所有值都是字符串类型。所有值都是字符串类型。v关系中的属性名不能重复。关系中的属性名不能重复。对表而言,表中每一对表而言,表中每一列都有惟一的列名,不允许有两个列有相同的列名。列都有惟一的列名,不允许有两个列有相同的列名。例如表例如表2-1 Students表不允许有两个列,列名都叫表不允许有两个列,列名都叫Sname。本讲稿第九页,共八十页v关关系系的的属属性性位位置置从从左左到到右右出出现现的的顺
8、顺序序无无关关紧紧要要。对对表表而而言言,表表中中的的列列从从左左到到右右出出现现的的顺顺序序无无关关紧紧要要。即即列列的的次次序序可可以以任任意意交交换换。例例如如表表2-1 Students表表中中,可可以把以把Sname列放在第一列,也可以是第二列等等。列放在第一列,也可以是第二列等等。v关关系系中中任任意意两两个个元元组组不不能能完完全全相相同同。对对表表而而言言,表表中中任任意意两两个个行行不不能能完完全全相相同同,即即每每一一行行都都是是惟惟一一的的,没有重复的行。没有重复的行。v关关系系中中的的元元组组从从上上到到下下出出现现的的顺顺序序无无关关紧紧要要。对对表表而而言言,表表中
9、中的的行行从从上上到到下下出出现现的的顺顺序序也也无无关关紧紧要要,即即行行的的次次序序可以任意交换。可以任意交换。本讲稿第十页,共八十页v满足上述条件的表才能称作关系。满足上述条件的表才能称作关系。v当我们把关系和表看作是等价的时候,即默认此表当我们把关系和表看作是等价的时候,即默认此表是满足上述关系的性质的。是满足上述关系的性质的。v理解关系的性质:横向上看,一个关系可以看作是若理解关系的性质:横向上看,一个关系可以看作是若干个元组的集合;纵向上看,一个关系可以看作是若干个元组的集合;纵向上看,一个关系可以看作是若干个属性的集合。集合的理论表明,集合中不允许包干个属性的集合。集合的理论表明
10、,集合中不允许包含重复元素的,因而可以解释关系的含重复元素的,因而可以解释关系的6条性质。条性质。本讲稿第十一页,共八十页3.关系的候选键与主键关系的候选键与主键v表表中中某某一一列列(或或若若干干列列的的最最小小组组合合)的的值值能能惟惟一一标标识识一一个个行行,称称该该列列或或列列组组为为候候选选键键。如如Students表表的的Sno列列,就就是是一一个个候候选选键键。因因为为,给给定定一一个个Sno的的值值,如如20030101,就能确定表中惟一的一行,第,就能确定表中惟一的一行,第4行。行。v对于一个表,可能有多个候选键对于一个表,可能有多个候选键。v候候选选键键取取决决于于应应用用
11、范范围围,如如给给定定条条件件,没没有有重重复复的的学学生姓名,则生姓名,则Sname是是Students表的一个候选键。表的一个候选键。本讲稿第十二页,共八十页v如如果果一一个个表表有有多多个个候候选选键键,数数据据库库设设计计者者通通常常选选择择其其中中一一个个候候选选键键作作为为区区分分行行的的惟惟一一性性标标识识符符,称称为为主主键键(primary key,PK)。如如果果一一个个表表只只有有一一个个候候选选键键,那那么么这这个个候候选选键键就就作作为为主主键键。例例如如,在在Students表,把表,把Sno作为该表的主键。作为该表的主键。v因因为为主主键键是是候候选选键键之之一一
12、,而而根根据据候候选选键键的的定定义义,候候选选键键列列上上的的各各个个值值都都惟惟一一,因因此此主主键键列列上上的的各各个个值值也都惟一。也都惟一。本讲稿第十三页,共八十页4.关系模式关系模式v关系模式是关系的形式化描述。关系模式是关系的形式化描述。v最简单的表示为:最简单的表示为:关系名(属性名关系名(属性名1,属性名属性名2,属性名属性名n)注注意意:主主键键要要用用下下划划线线表表明明。但但有有时时,关关系系模模式式中中并并没没有表明主键。有表明主键。例如:例如:Students关系的关系模式为:关系的关系模式为:Students(Sno,Sname,Ssex,Sbirthdate,S
13、dept)本讲稿第十四页,共八十页v关系模式即是一个表的表头描述。关系模式即是一个表的表头描述。v表头也称为关系的结构、关系的型等。表头也称为关系的结构、关系的型等。v除除表表头头一一行行以以外外的的所所有有行行的的集集合合(即即表表内内容容),称为关系的值。称为关系的值。v一一个个关关系系(表表),由由表表头头和和表表内内容容两两部部分分组组成成,表表头头是是相相对对不不变变的的,而而表表内内容容是是经经常常改改变变的的。如如Students表表中中,当当有有新新学学生生入入学学时时,就就增增加加若若干干行行,当当学学生生毕毕业业时时,就就要删除若干行,所以表是动态的。要删除若干行,所以表是
14、动态的。本讲稿第十五页,共八十页5.关系数据库关系数据库v关系数据库是相互关联的表或者说关系的集合关系数据库是相互关联的表或者说关系的集合v因因为为一一个个表表存存放放的的是是某某一一应应用用领领域域的的一一个个实实体体或或实实体体间间的的联联系系,如如Students表表存存放放的的是是学学生生这这个个实实体体,Courses表表存存放放的的是是课课程程这这个个实实体体,Enrollment表表存存放放的的学学生生实实体体与与课课程程实实体体之之间间的的联联系系,这这里里为为选选课课联联系系。因因此此关关系系数数据据库库中中存存放放的的是是某某一一应应用用领领域域中中的的所所有有实实体体和和
15、实实体体之之间间的联系。的联系。v一一个个关关系系用用一一个个关关系系模模式式表表示示,所所有有关关系系模模式式集集合合构构成成数数据库的模式,它是数据库整体逻辑结构的描述。据库的模式,它是数据库整体逻辑结构的描述。本讲稿第十六页,共八十页2.2 关系模型的数据完整性关系模型的数据完整性v关系模型的数据完整性指的是完整性关系模型的数据完整性指的是完整性规则。规则。v完整性规则包括实体完整性规则、参完整性规则包括实体完整性规则、参照完整性规则和用户自定义完整性规照完整性规则和用户自定义完整性规则三大类。则三大类。v实体完整性和参照完整性是关系模型实体完整性和参照完整性是关系模型必须满足的两个完整
16、性规则。必须满足的两个完整性规则。本讲稿第十七页,共八十页1.实体完整性规则实体完整性规则v实体完整性规则实体完整性规则是表中任意一行的主键值不能为空值。是表中任意一行的主键值不能为空值。v空空值值,用用“null”表表示示,大大小小写写一一样样。空空值值是是尚尚未未确确定的值或不确定的值。如定的值或不确定的值。如Enrollment表中的表中的Grade值。值。v空空值值和和数数值值型型列列的的0值值以以及及字字符符型型列列的的空空字字符符串串的的不不同同,数值型列的数值型列的0值与字符型列的空字符串都是确定的值。值与字符型列的空字符串都是确定的值。本讲稿第十八页,共八十页v根根据据主主键键
17、的的定定义义,主主键键值值必必须须惟惟一一。因因此此,实实体体完完整整性性也也可可定定义义为为:主主键键值值惟惟一一且且不不能能为为空空值值。表表中中任任意一行的主键值不能为空值。意一行的主键值不能为空值。v完完整整性性的的意意义义:一一个个表表对对应应存存放放一一个个实实体体,表表中中的的每每一一行行代代表表实实体体中中的的一一个个实实例例。如如学学生生表表用用来来存存放放学学生生实实体体,该该表表中中的的一一行行代代表表一一个个学学生生,一一个个学学生生有有惟惟一一的的一一个个学学号号。如如果果主主键键值值SnoSno为为空空值值,表表明明该该学学生生的的学学号号不不能能确确定定,也也就就
18、是是说说没没有有惟惟一一确确定定的的学学号号,这这只只能能说说明明他他/她她不不是是学学生生,因因此此就就不不应应该该存存放放在在学学生生表表中。中。本讲稿第十九页,共八十页如果主键值如果主键值SnoSno为空值,出现错误为空值,出现错误本讲稿第二十页,共八十页v实实体体完完整整性性的的作作用用:一一旦旦定定义义表表的的主主键键,RDBMS将将自自动动地地对对该该表表中中的的每每一一行行的的主主键键值值进进行行检检查查,若若发发现现主主键键值值为为空空或或不不惟惟一一,RDBMS会会给给出出错错误误信信息息,这样就能确保表中的每一行是惟一的,可以区分的。这样就能确保表中的每一行是惟一的,可以区
19、分的。本讲稿第二十一页,共八十页2.参照完整性规则参照完整性规则v参参照照完完整整性性规规则则是是一一个个表表的的外外键键值值可可以以为为空空值值。若若不不为为空空值值,则则必必须须等等于于另另一一个个表表中中主主键键的的某某个个值。值。v外外键键(Foreign Key,FK):若若一一个个表表R1中中的的一一个个列列或或列列组组对对应应另另一一个个表表R2的的主主键键,那那么么该该列列或或列列组组称为表称为表R1的外键。的外键。v外键可以由一个或多个列组成,可以有重复值。外键可以由一个或多个列组成,可以有重复值。本讲稿第二十二页,共八十页v外键与主键的关系示例:外键与主键的关系示例:图2-
20、1 学生、课程、选课表主键、外键参照关系图本讲稿第二十三页,共八十页Sno列输入“20010108”在Students表中不存在,出现错误本讲稿第二十四页,共八十页Cno列输入“C5”在Courses表中不存在,出现错误本讲稿第二十五页,共八十页本讲稿第二十六页,共八十页v外键的取值的两种情况分析:外键的取值的两种情况分析:图2-2系表、课程表主键、外键参照关系图 本讲稿第二十七页,共八十页v参照完整性的作用:在关系数据库系统中,一旦参照完整性的作用:在关系数据库系统中,一旦定义了表的外键,也即定义了外键与另一个表的定义了表的外键,也即定义了外键与另一个表的主键的参照与被参照联系,主键的参照与
21、被参照联系,RDBMS将根据外键将根据外键的定义,自动检查表中的每一行,若发现外键的定义,自动检查表中的每一行,若发现外键值违反外键的规则,值违反外键的规则,RDBMS会给出错误信息,要会给出错误信息,要求用户纠正,这样能确保表之间的参照与被参照联求用户纠正,这样能确保表之间的参照与被参照联系的正确性。系的正确性。本讲稿第二十八页,共八十页v说明:说明:实体完整性和参照完整性在关系实体完整性和参照完整性在关系模型中是必须实现的。遗憾的是模型中是必须实现的。遗憾的是SQL Server 2000中可以定义没有主键的表,中可以定义没有主键的表,即没有实现实体完整性。另外,即使表即没有实现实体完整性
22、。另外,即使表有外键,也可以不定义为外键,没有实有外键,也可以不定义为外键,没有实现参照完整性。现参照完整性。本讲稿第二十九页,共八十页3.用户自定义完整性规则用户自定义完整性规则v用用户户自自定定义义完完整整性性规规则则是是表表格格设设计计者者为为了了保保证证表表中中某某些些行行、列列的的数数据据满满足足具具体体应应用用要要求求而而自自定定义义的一些规则。的一些规则。v自定义规则往往根据实际的应用背景提出来。自定义规则往往根据实际的应用背景提出来。例例如如:在在Students表表中中,Ssex列列的的取取值值范范围围只只能能是是F/M,因为实际情况是性别只能为男或女。因为实际情况是性别只能
23、为男或女。本讲稿第三十页,共八十页Ssex列输入“B”时超出了取值范围“F”或“M”出现错误本讲稿第三十一页,共八十页v关关系系代代数数是是对对关关系系型型数数据据库库操操作作的的抽抽象象语语言言,也也称称查查询询语语言言。这这里里的的查查询询,包包括括数数据据的的插插入入、删删除除、修修改改、查找等,即数据的操纵。查找等,即数据的操纵。v关关系系代代数数只只对对数数据据操操纵纵进进行行抽抽象象表表示示,基基于于关关系系代代数数实实现现的的关关系系型型数数据据库库操操纵纵语语言言,如如SQL,才才能能对对数数据据库库中中的的数数据据进进行实际操作。行实际操作。v关关系系代代数数的的作作用用只只
24、是是用用来来衡衡量量其其它它实实现现了了的的查查询询语语言言如如SQL等等的查询能力。的查询能力。2.3 关系模型的数据操作关系模型的数据操作关系代数关系代数本讲稿第三十二页,共八十页v关关系系代代数数中中,运运算算的的对对象象是是关关系系(表表),运运算算的的结结果果是一个新关系(表)。是一个新关系(表)。v关关系系的的运运算算包包含含两两部部分分,即即传传统统的的集集合合运运算算和和特特殊殊的关系运算。的关系运算。v传传统统的的集集合合运运算算:(并并运运算算),(差差运运算算),(交运算),(交运算),(笛卡儿积运算)。(笛卡儿积运算)。v4个个特特殊殊的的关关系系运运算算:(选选择择)
25、,(投投影影),(连接),(连接),(除)。(除)。本讲稿第三十三页,共八十页本讲稿第三十四页,共八十页1.传统的关系运算传统的关系运算v两两个个表表的的兼兼容容性性。所所谓谓兼兼容容,即即两两个个表表的的表表头头结结构构相相同,且对应列的数据类型相同。同,且对应列的数据类型相同。v并并、差差、交交运运算算都都要要求求有有两两个个表表参参加加运运算算,并并且且两两个个表是兼容的。表是兼容的。v并并运运算算:给给定定两两个个兼兼容容的的表表R和和S,R和和S并并运运算算的的结结果果是是一一个个与与R和和S兼兼容容的的新新表表。该该表表由由属属于于R的的所所有有行行加加上上属属于于S的的所所有有行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 关系模型精选文档 关系 模型 精选 文档
限制150内