




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技术应用复习回顾:一、数据处理的三个阶段二、数据库系统的组成三、数据库系统结构(数据独立性)1、三级模式2、二级映射四、数据模型四、数据模型 数据模型是数据的组织形式,并且可以用一种数据结构来描述。 主要的数据模型有:层次数据模型、网状数据模型、关系数据模型 关系数据模型是在1970年由E.F.Codd提出。 关系数据模型的理论基础是集合论和数理逻辑。 关系模型的特点:(1)数据以表的形式组织(2)表中存放实体本身的属性和表间的关系(3)有严格的数学基础,便于用数学理论进行讨论研究(4)以表的形式组织数据,通俗直观易懂。2.1 关系模型的数据结构关系模型的数据结构1.关系的基本名词关系的
2、基本名词v关系:一张满足某些约束条件的二维表,如表一张满足某些约束条件的二维表,如表2-1 Students关系。关系模型的数据结构是关系。关系。关系模型的数据结构是关系。 v元组:关系中的一行称为一个元组。对应表中的一关系中的一行称为一个元组。对应表中的一行,存放的是客观世界的一个实例,如表行,存放的是客观世界的一个实例,如表Students关关系中的一行,存放的是一个学生的数据系中的一行,存放的是一个学生的数据 。v属性:关系中的一列,称为一个属性。对应表中的关系中的一列,称为一个属性。对应表中的一列。一个属性表示实体的一个特征,如表一列。一个属性表示实体的一个特征,如表 Students
3、关系中的关系中的Sno属性表示学生实体的学号特征属性表示学生实体的学号特征值。值。 v域:关系中一个属性的取值范围。例如,关系中一个属性的取值范围。例如,Ssex的取值的取值范围是范围是M, F,代表性别为男性和女性。,代表性别为男性和女性。 v关系示例关系示例:v关系的等价术语之间的对应关系关系的等价术语之间的对应关系一般用户 关系模型 程序员 表(Table) 关系(Relation) 文件(File) 行(Row) 实体(Entity) 记录(Record) 列(Column) 属性(Attribute) 字段(Field) v关系中每一属性都是最小的关系中每一属性都是最小的。对表而言,
4、每。对表而言,每一个行与列的交叉点上只能存放一个单值一个行与列的交叉点上只能存放一个单值 。v关系中同一属性的所有属性值具有相同的数关系中同一属性的所有属性值具有相同的数据类型。据类型。对表而言,表中同一列中的所有列对表而言,表中同一列中的所有列值都必须属于同一数据类型。例如表值都必须属于同一数据类型。例如表2-1中中Students表的表的Sname列的所有值都是字符串类列的所有值都是字符串类型。型。 v关系中的属性名不能重复。关系中的属性名不能重复。对表而言,表中对表而言,表中每一列都有惟一的列名,不允许有两个列有每一列都有惟一的列名,不允许有两个列有相同的列名。例如表相同的列名。例如表2
5、-1 Students表不允许有表不允许有两个列,列名都叫两个列,列名都叫Sname。 v关系的属性位置从左到右出现的顺序无关紧要关系的属性位置从左到右出现的顺序无关紧要。对表而言,表中的列从左到右出现的顺序无关紧对表而言,表中的列从左到右出现的顺序无关紧要。即列的次序可以任意交换。例如表要。即列的次序可以任意交换。例如表2-1 Students表中,可以把表中,可以把Sname列放在第一列,也列放在第一列,也可以是第二列等等。可以是第二列等等。v关系中任意两个元组不能完全相同关系中任意两个元组不能完全相同。对表而言,对表而言,表中任意两个行不能完全相同,即每一行都是惟表中任意两个行不能完全相
6、同,即每一行都是惟一的,没有重复的行。一的,没有重复的行。v关系中的元组从上到下出现的顺序无关紧要关系中的元组从上到下出现的顺序无关紧要。对对表而言,表中的行从上到下出现的顺序也无关紧表而言,表中的行从上到下出现的顺序也无关紧要,即行的次序可以任意交换。要,即行的次序可以任意交换。v满足上述条件的表才能称作关系。满足上述条件的表才能称作关系。v当我们把关系和表看作是等价的时候,即默认当我们把关系和表看作是等价的时候,即默认此表是满足上述关系的性质的。此表是满足上述关系的性质的。v理解关系的性质:横向上看,一个关系可以看理解关系的性质:横向上看,一个关系可以看作是若干个元组的集合;纵向上看,一个
7、关系作是若干个元组的集合;纵向上看,一个关系可以看作是若干个属性的集合。集合的理论表可以看作是若干个属性的集合。集合的理论表明,集合中不允许包含重复元素的,因而可以明,集合中不允许包含重复元素的,因而可以解释关系的解释关系的6条性质。条性质。3. 关系的候选键与主键关系的候选键与主键v表中某一列(或若干列的最小组合)的值能惟表中某一列(或若干列的最小组合)的值能惟一标识一个行,称该列或列组为候选键。如一标识一个行,称该列或列组为候选键。如Students表的表的Sno列,就是一个候选键。因为,列,就是一个候选键。因为,给定一个给定一个Sno的值,如的值,如20030101,就能确定表中,就能确
8、定表中惟一的一行,第惟一的一行,第4行。行。v对于一个表,可能有多个候选键对于一个表,可能有多个候选键 。v候选键取决于应用范围候选键取决于应用范围,如给定学院哪,没有重如给定学院哪,没有重复的学生姓名,则复的学生姓名,则Sname是是Students表的一个候表的一个候选键。选键。v如果一个表有多个候选键,数据库设计者通如果一个表有多个候选键,数据库设计者通常选择其中一个候选键作为区分行的惟一性常选择其中一个候选键作为区分行的惟一性标识符,称为主键标识符,称为主键(primary key,PK)。如果。如果一个表只有一个候选键,那么这个候选键就一个表只有一个候选键,那么这个候选键就作为主键。
9、例如,在作为主键。例如,在Students表,把表,把Sno作为作为该表的主键。该表的主键。v因为主键是候选键之一,而根据候选键的定因为主键是候选键之一,而根据候选键的定义,候选键列上的各个值都惟一,因此主键义,候选键列上的各个值都惟一,因此主键列上的各个值也都惟一。列上的各个值也都惟一。4. 关系模式关系模式v关系模式是关系的形式化描述。关系模式是关系的形式化描述。v最简单的表示为:最简单的表示为:关系名(属性名关系名(属性名1,属性名属性名2,属性名属性名n) 注意:注意:主键要用下划线表明。但有时,关系模式主键要用下划线表明。但有时,关系模式中并没有表明主键。中并没有表明主键。例如:例如
10、:Students关系的关系模式为:关系的关系模式为:Students(Sno,Sname,Ssex,Sbirthdate,Sdept)v关系模式即是一个表的表头描述。关系模式即是一个表的表头描述。v表头也称为关系的结构、关系的型等。表头也称为关系的结构、关系的型等。v除表头一行以外的所有行的集合除表头一行以外的所有行的集合(即表内即表内容容), 称为关系的值。称为关系的值。v一个关系一个关系(表表),由表头和表内容两部分组,由表头和表内容两部分组成,表头是相对不变的,而表内容是经常成,表头是相对不变的,而表内容是经常改变的。如改变的。如Students表中,当有新学生入表中,当有新学生入学时
11、,就增加若干行,当学生毕业时,就学时,就增加若干行,当学生毕业时,就要删除若干行,所以表是动态的。要删除若干行,所以表是动态的。 5. 关系数据库关系数据库v关系数据库是相互关联的表或者说关系的集合关系数据库是相互关联的表或者说关系的集合v因为一个表存放的是某一应用领域的一个实体或实因为一个表存放的是某一应用领域的一个实体或实体间的联系,如体间的联系,如Students表存放的是学生这个实体表存放的是学生这个实体(集),(集),Courses表存放的是课程这个实体(集),表存放的是课程这个实体(集),Enrollment表存放的学生实体与课程实体之间的联表存放的学生实体与课程实体之间的联系,这
12、里为选课联系。因此关系数据库中存放的是系,这里为选课联系。因此关系数据库中存放的是某一应用领域中的所有实体和实体之间的联系。某一应用领域中的所有实体和实体之间的联系。 v一个关系用一个关系模式表示,所有关系模式集合一个关系用一个关系模式表示,所有关系模式集合构成数据库的模式,它是数据库整体逻辑结构的描构成数据库的模式,它是数据库整体逻辑结构的描述。述。2.2 关系模型的数据完整性关系模型的数据完整性v关系模型的数据完整性指的是完整性关系模型的数据完整性指的是完整性规则。规则。v完整性规则包括实体完整性规则、参完整性规则包括实体完整性规则、参照完整性规则和用户自定义完整性规照完整性规则和用户自定
13、义完整性规则三大类。则三大类。v实体完整性和参照完整性是关系模型实体完整性和参照完整性是关系模型必须满足的两个完整性规则。必须满足的两个完整性规则。 1. 实体完整性规则实体完整性规则v实体完整性规则实体完整性规则是表中任意一行的主键值不能是表中任意一行的主键值不能为空值。为空值。v空值,用空值,用“null”表示,大小写一样。空值是尚表示,大小写一样。空值是尚未确定的值或不确定的值。如未确定的值或不确定的值。如Enrollment表中表中的的Grade值。值。v空值和数值型列的空值和数值型列的0值以及字符型列的空字符串值以及字符型列的空字符串的不同,数值型列的的不同,数值型列的0值与字符型列
14、的空字符串值与字符型列的空字符串都是确定的值。都是确定的值。v根据主键的定义,主键值必须惟一。因此,实根据主键的定义,主键值必须惟一。因此,实体完整性也可定义为:主键值惟一且不能为空体完整性也可定义为:主键值惟一且不能为空值。表中任意一行的主键值不能为空值。值。表中任意一行的主键值不能为空值。v完整性的意义:一个表对应存放一个实体,表完整性的意义:一个表对应存放一个实体,表中的每一行代表实体中的一个实例。如学生表中的每一行代表实体中的一个实例。如学生表用来存放学生实体,该表中的一行代表一个学用来存放学生实体,该表中的一行代表一个学生,一个学生有惟一的一个学号。如果主键值生,一个学生有惟一的一个
15、学号。如果主键值SnoSno为空值,表明该学生的学号不能确定,也就为空值,表明该学生的学号不能确定,也就是说没有惟一确定的学号,这只能说明他是说没有惟一确定的学号,这只能说明他/ /她不她不是学生,因此就不应该存放在学生表中。是学生,因此就不应该存放在学生表中。v实体完整性的作用:一旦定义表的主键,实体完整性的作用:一旦定义表的主键,RDBMS将自动地对该表中的每一行的主键值将自动地对该表中的每一行的主键值进行检查,若发现主键值为空或不惟一,进行检查,若发现主键值为空或不惟一,RDBMS会给出错误信息,这样就能确保表中会给出错误信息,这样就能确保表中的每一行是惟一的,可以区分的。的每一行是惟一
16、的,可以区分的。2. 参照完整性规则参照完整性规则v参照完整性规则参照完整性规则是一个表的外键值可以为空值。是一个表的外键值可以为空值。若不为空值,则必须等于另一个表中主键的某若不为空值,则必须等于另一个表中主键的某个值。个值。 v外键(外键(Foreign Key,FK):若一个表):若一个表R1中的中的一个列或列组对应另一个表一个列或列组对应另一个表R2的主键,那么该的主键,那么该列或列组称为表列或列组称为表R1的外键。的外键。v外键可以由一个或多个列组成,可以有重复值。外键可以由一个或多个列组成,可以有重复值。v外键与主键的关系示例外键与主键的关系示例:图2-1 学生、课程、选课表主键、
17、外键参照关系图v外键的取值的两种情况分析:外键的取值的两种情况分析:图2-2系表、课程表主键、外键参照关系图 v参照完整性的作用:在关系数据库系统中,参照完整性的作用:在关系数据库系统中,一旦定义了表的外键,也即定义了外键与另一旦定义了表的外键,也即定义了外键与另一个表的主键的参照与被参照联系,一个表的主键的参照与被参照联系,RDBMS将根据外键的定义,自动检查表中将根据外键的定义,自动检查表中的每一行,若发现外键值违反外键的规则,的每一行,若发现外键值违反外键的规则,RDBMS会给出错误信息,要求用户纠正,会给出错误信息,要求用户纠正,这样能确保表之间的参照与被参照联系的正这样能确保表之间的
18、参照与被参照联系的正确性。确性。v说明:说明:实体完整性和参照完整性在关系实体完整性和参照完整性在关系模型中是必须实现的。遗憾的是模型中是必须实现的。遗憾的是SQL Server 2000中可以定义没有主键的表,中可以定义没有主键的表,即没有实现实体完整性。另外,即使表即没有实现实体完整性。另外,即使表有外键,也可以不定义为外键,没有实有外键,也可以不定义为外键,没有实现参照完整性。现参照完整性。 3. 用户自定义完整性规则用户自定义完整性规则v用户自定义完整性规则用户自定义完整性规则是表格设计者为了保证是表格设计者为了保证表中某些行、列的数据满足具体应用要求而自表中某些行、列的数据满足具体应
19、用要求而自定义的一些规则。定义的一些规则。v自定义规则往往根据实际的应用背景提出来。自定义规则往往根据实际的应用背景提出来。 例如:在例如:在Students表中,表中,Ssex列的取值范围只列的取值范围只能是能是F/ M, 因为实际情况是性别只能为男因为实际情况是性别只能为男或女。或女。v关系代数关系代数是对关系型数据库操作的抽象语言,也称是对关系型数据库操作的抽象语言,也称查询语言。这里的查询,包括数据的插入、删除、查询语言。这里的查询,包括数据的插入、删除、修改、查找等,即数据的操纵。修改、查找等,即数据的操纵。v关系代数只对数据操纵进行抽象表示,基于关系代关系代数只对数据操纵进行抽象表
20、示,基于关系代数实现的关系型数据库操纵语言,如数实现的关系型数据库操纵语言,如SQL,才能对,才能对数据库中的数据进行实际操作。数据库中的数据进行实际操作。v关系代数的作用只是用来衡量其它实现了的查询语关系代数的作用只是用来衡量其它实现了的查询语言如言如SQL等的查询能力。等的查询能力。2.3 关系模型的数据操作关系模型的数据操作关系代数关系代数v关系代数中,关系代数中,运算运算的对象是关系(表),运算的对象是关系(表),运算的结果是一个新关系(表)。的结果是一个新关系(表)。v关系的运算分为两大类,即传统的集合运算和关系的运算分为两大类,即传统的集合运算和专门的关系运算。专门的关系运算。v传
21、统的集合运算:传统的集合运算:(并运算),(差运(并运算),(差运算),算),(交运算),(交运算),(笛卡儿积运算)。(笛卡儿积运算)。v专门的关系运算:专门的关系运算:(选择),(选择),(投影),(投影),(连接),(连接),(除)。(除)。1. 传统的关系运算传统的关系运算v两个表的兼容性。所谓兼容,即两个表的表头两个表的兼容性。所谓兼容,即两个表的表头结构相同,且对应列的数据类型相同。结构相同,且对应列的数据类型相同。v二元运算:要求有两个表参加运算,并且两个二元运算:要求有两个表参加运算,并且两个表是兼容的。表是兼容的。 v并运算(并运算( RS ):给定两个兼容的表:给定两个兼容
22、的表R和和S,R和和S并运算的结果是一个与并运算的结果是一个与R和和S兼容的新表。兼容的新表。该表由属于该表由属于R的所有行加上属于的所有行加上属于S的所有行组成,的所有行组成,但必须删去重复的行,记作但必须删去重复的行,记作RS。v并运算举例并运算举例运算含义:包含一年级学生或获奖学生的信息运算含义:包含一年级学生或获奖学生的信息 v差运算(差运算( R-S ):给定两个兼容的表:给定两个兼容的表R和和S,R和和S差运算的结果是一个与差运算的结果是一个与R和和S兼兼容的新表。该表由属于容的新表。该表由属于R而不属于而不属于S的所的所有行组成,记作有行组成,记作R-S。举例(见下页)。举例(见
23、下页)v交运算(交运算( RS ):给定两个兼容的表:给定两个兼容的表R和和S,R和和S交运算的结果是一个与交运算的结果是一个与R和和S兼容的新表,该表由既属于兼容的新表,该表由既属于R又属于又属于S的的行组成,记作行组成,记作RS。举例(见下页)。举例(见下页)v差运算举例差运算举例v交运算举例交运算举例v笛卡儿积运算笛卡儿积运算(RS):简称积运算,也要求有两个:简称积运算,也要求有两个表参加运算,但这两个表可以不兼容。表参加运算,但这两个表可以不兼容。v笛卡儿积运算定义:给定两个表笛卡儿积运算定义:给定两个表R和和S,R和和S的积的积运算的结果是一个新表,新表中的行由运算的结果是一个新表
24、,新表中的行由R中的每一中的每一行和行和S中的每一行组合而成。记作中的每一行组合而成。记作RS。v笛卡儿积运算的过程:首先取笛卡儿积运算的过程:首先取R的第一行与的第一行与S的每的每一行组合,然后取一行组合,然后取R的第二行与的第二行与S的每一行组合,的每一行组合,依次类推,直到依次类推,直到R中的所有行处理完毕。中的所有行处理完毕。笛卡儿积运算笛卡儿积运算(RS)v若若R表有表有m个列,个列,S表有表有n个列,则个列,则RS是是一个具有(一个具有(m + n)个列的表,且)个列的表,且RS表表中的任一行的前中的任一行的前m列是列是R表的一个行,后表的一个行,后n列是列是S表的一个行。如果表的
25、一个行。如果R有有i行,行,S有有j行,行,则则RS有(有(ij)行。可见两个表的笛卡)行。可见两个表的笛卡儿积运算结果会很大。儿积运算结果会很大。v新表可能包含重复的列,因此不一定是一新表可能包含重复的列,因此不一定是一个关系个关系 。v笛卡儿积运算举例笛卡儿积运算举例2. 专门的关系运算专门的关系运算 选择运算选择运算:从指定的:从指定的R表中选择某些满足条表中选择某些满足条件的行构成一个新表。记作件的行构成一个新表。记作 F(R) 其中,其中, 是选择运算的符号;是选择运算的符号; F 是选择条件,写成是选择条件,写成的下标;的下标; R 写在括号中,是被选择的表名。写在括号中,是被选择
26、的表名。 举例:举例:从从Students表找出所有女同学的情况表找出所有女同学的情况 Ssex=F(Students) 结果:结果:v在选择运算中在选择运算中关键是写出查询条件关键是写出查询条件v单个查询条件的形式单个查询条件的形式:AiAj 其中,其中,Ai是表是表R中的列名;中的列名;Aj是常量值;是常量值; 是比较运算符,可以是:是比较运算符,可以是:=、!= 、和和之一。之一。例如:学号为例如:学号为20010102的条件为:的条件为: Sno 20010102v又 如 : 所 在 系 为 计 算 机 系 的 条 件 为又 如 : 所 在 系 为 计 算 机 系 的 条 件 为 :S
27、dept=Computer v多个查询条件多个查询条件 用用(逻辑与(逻辑与,也可用也可用and)、)、(逻辑或(逻辑或, or)、)、(逻辑非(逻辑非, not)将几个单个)将几个单个查询条件组合起来构成查询条件组合起来构成 例如:从例如:从Students表查找艺术系女同学的信息表查找艺术系女同学的信息 Sdept=Art SsexF 等价于:等价于:Sdept=Art and SsexF 表示为:表示为: Sdept=Art and Ssex=F(Students) 结果:结果:v投影运算投影运算:从指定的表:从指定的表R中选择某些列构成一个中选择某些列构成一个新表,记作新表,记作A(R
28、)。)。v其中,其中,A是一个列名或多个列名,多个列名之间是一个列名或多个列名,多个列名之间用逗号分隔,用逗号分隔,A写作写作的下标;的下标;R被投影的表名。被投影的表名。v投影结果表中的重复行要消除。投影结果表中的重复行要消除。 例如:从例如:从Students表中选择表中选择Sno、Sname和和Sdept三个列组成新表的投影运算可写成:三个列组成新表的投影运算可写成: vSno,Sname,Sdept(Students)vSno,Sname,SdeptSno,Sname,Sdept(StudentsStudents)结果:)结果:v连接运算连接运算:从:从R与与S的笛卡儿积的笛卡儿积RS
29、中选择满中选择满足连接条件的行。足连接条件的行。 记作记作 : = = ABAB(R RS S) 两种特殊的连接:等值连接和自然连接两种特殊的连接:等值连接和自然连接v等值连接:等值连接:连接条件用连接条件用= =,即,即ABAB A=B A=B 例例 StudentsStudents和和EnrollmentEnrollment的等值连接:的等值连接:v StudentsStudents和和EnrollmentEnrollment的等值连接的结果的等值连接的结果自然连接自然连接:若等值连接的连接条件中列名相:若等值连接的连接条件中列名相同,且结果表中消除了重复列,则把此种等同,且结果表中消除了
30、重复列,则把此种等值连接称为自然连接,记作值连接称为自然连接,记作RSRS。自然连接中不必标注连接条件自然连接中不必标注连接条件。例如:例如:StudentsStudents表和表和EnrollmentEnrollment表的自然连表的自然连 接表示为:接表示为:StudentsEnrollmentStudentsEnrollmentStudents表和表和Enrollment表自然连接的结果表自然连接的结果v自然连接是最常见的连接运算。除非有特别的自然连接是最常见的连接运算。除非有特别的声明,连接一般指的是自然连接。声明,连接一般指的是自然连接。v自然连接的执行:先计算笛卡儿积、再进行选自然
31、连接的执行:先计算笛卡儿积、再进行选择运算、最后进行投影运算,消除重复的列得择运算、最后进行投影运算,消除重复的列得到结果。到结果。v自然运算与等值连接的区别:自然运算与等值连接的区别:自然连接要求连接的两个表有相同的列(公共自然连接要求连接的两个表有相同的列(公共列),等值连接则不要求。列),等值连接则不要求。自然连接结果表中去掉了重复的列,等值连接自然连接结果表中去掉了重复的列,等值连接却可能包含重复的列却可能包含重复的列。v除法运算(除法运算(R RS S)设关系设关系R R定义在属性集定义在属性集A A上,关系上,关系S S定义在属性定义在属性集集B B上,且上,且B B是是A A的子
32、集,的子集,C=A-BC=A-B。则,。则,R RS S运算运算得到了一个在属性集得到了一个在属性集C C上的关系,这个关系的上的关系,这个关系的行与行与S S中每一行的组合(笛卡儿积)能在中每一行的组合(笛卡儿积)能在R R中找中找到。到。除法运算操作步骤:除法运算操作步骤:(1)T1c(R)(2)T2c(( T1 S )-R)(3)T(T1-T2)例 R S RSABa1a2b1b2c1B12Aab2.4 关系代数综合实例关系代数综合实例v本节用到学生选课数据库,包括学生本节用到学生选课数据库,包括学生Students、课程课程Courses、选课(、选课(Enrollment)三个表。)
33、三个表。v每个表的的关系模式如下,数据样本见图每个表的的关系模式如下,数据样本见图2-1 Students(Sno, Sname, Ssex, Sage,Sdept) Courses(Cno, Cname, PreCno, Credits) Enrollment(Sno, Cno, Grade) v用关系代数表示查询。解题步骤:用关系代数表示查询。解题步骤:1.根据题意确定要输出的列以及这些列所在的表,根据题意确定要输出的列以及这些列所在的表,由此确定被操作的表名称,可能有多个。由此确定被操作的表名称,可能有多个。2.根据题意,确定选择条件以及选择条件中用到根据题意,确定选择条件以及选择条件中
34、用到的列在哪个表中,这里又确定一些被操作的表的列在哪个表中,这里又确定一些被操作的表名称。名称。 3.根据根据1、2两步确定的表名称形成所有要操作的两步确定的表名称形成所有要操作的表名集。表名集。 4.若表名集中只有一个表,则如果要输出的列是这若表名集中只有一个表,则如果要输出的列是这个表的全部列,就只用选择运算;否则先用选择,个表的全部列,就只用选择运算;否则先用选择,后用投影选取要输出的(属性)列。后用投影选取要输出的(属性)列。5.如表名集中有两个或多个表,则一般用自然连接如表名集中有两个或多个表,则一般用自然连接将它们连接起来,如果发现不存在公共列,即几将它们连接起来,如果发现不存在公
35、共列,即几个表不能进行自然连接,则要在表名集中加入一个表不能进行自然连接,则要在表名集中加入一个或多个中间表,中间表中含有能进行自然连接个或多个中间表,中间表中含有能进行自然连接的公共列,从而使得表名集中全部表可以进行自的公共列,从而使得表名集中全部表可以进行自然连接;将选择条件作用于自然连接后产生的新然连接;将选择条件作用于自然连接后产生的新表上,之后一般用投影操作选取要输出的列。表上,之后一般用投影操作选取要输出的列。 实例实例【例【例2.1】查询计算机系学生的学号和姓名。】查询计算机系学生的学号和姓名。 1.根据题目确定要输出的列为:Sno,Sname,都在Students表中;2.根据
36、题意,要选择的是计算机系的学生,确定选择条件是:Sdept=Computer, 选择条件中用到的列Sdept也在Students表中;3.根据1,2两步确定的所有的表名,形成表名集为 Students;4.因为表名集中只有一个Students表,并且因为要输出的列不是Students表的全部列,则先用选择,后用投影选取要输出的列Sno,Sname。综上,该查询的关系代数表达式为:综上,该查询的关系代数表达式为:Sno,Sname( Sdept=Computer(Students) )结果:结果: 【例【例2.2】查询选修了课程号为】查询选修了课程号为C2的学生学号、姓名、的学生学号、姓名、所在
37、系。所在系。 1.根据题目确定要输出的列为:Sno,Sname,Sdept,都在Students表中;2.根据题意,课程号为C2,则选择条件是Cno=C2, 因为Cno列在Enrollment表中,所以也用到Enrollment表;3.根据1,2两步确定用到的表名集为Students, Enrollment; 4.因为表名集中有两个表,则用自然连接将它们连接起来,这两个表存在共同的列为Sno,可以进行自然连接。将选择条件Cno=C2作用于自然连接后产生的新表上,并用投影操作选取要输出的列Sno,Sname,Sdept。综上,该查询的关系代数表达式为:综上,该查询的关系代数表达式为:Sno,Sn
38、ame,Sdept(Cno=C2(StudentsEnrollment)结果:结果:【例【例2.3】查询选修了课程名为】查询选修了课程名为Database的学生学号和的学生学号和姓名。姓名。 1.根据题目确定要输出的列为:Sno,Sname,都在Students表中;2.根据题意,课程名为Database,则选择的条件为Cname= Database,因为Cname列在Courses表中,所以也用到Courses表;3.根据1,2两步确定用到的表名集为Students、Courses; 4.因为表名集中有两个表,则要用自然连接将它们连接起来,但因为这两表不存在共同的列,不能进行自然连接。因此要
39、加入中间表,中间表中应含有能与其它两个表进行自然连接的公共列,这个 表 就 是 E n r o l l m e n t 。 将 选 择 条 件Cname=Database作用于自然连接后产生的新表上,并用投影操作选取要输出的列Sno,Sname。综上,该查询的关系代数表达式为,结果:综上,该查询的关系代数表达式为,结果:Students.Sno,Sname,(Cname=Database( StudentsEnrollmentCourses)【例【例2.4】查询选修了课程名为】查询选修了课程名为Database的学生学号、的学生学号、姓名、成绩。姓名、成绩。 1.根据题目确定要输出的列为:Sn
40、o,Sname,Grade,其中Sno,Sname在Students表中,Grade列在Enrollment表中,所以用到Students表和Enrollment表; 2.根据题意,课程名为Database,则选择的条件为Cname=Database,因为Cname列在Courses表中,所以也用到Courses表;3.根据1,2两步确定所用到的表名集为Students, Enrollment, Courses;4.因为表名集中有三个表,则要用自然连接将它们连接起来, Enrollment表中含有与Students表公共的列Sno,含有与Courses表公共的列Cno,从而这三 个 表 可 以
41、 实 现 自 然 连 接 。 将 选 择 条 件Cname=Database作用于自然连接后产生的新表上,并用投影操作选取要输出的列Sno,Sname,Grade。 综上,该查询的关系代数表达式为:综上,该查询的关系代数表达式为:Students.Sno,Sname,Grade(Cname= Database(StudentsEnrollmentCourses)结果:结果: 【例【例2.5】将新入学的学生信息(】将新入学的学生信息( S99205, Sala, F,20, Art)插入)插入Students表中。表中。分析:可以将这一行数据看成由一个元组构成的表,将该表与Students表进行并运算。因此,该插入操作可表示为: Students S99205, S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报书语文
- 课题申报书咋写
- 微课题研究申报书
- 借款合同范本员工向公司
- 医学课题申报书 范文
- 学生旷课课题申报书
- 业务员用车合同范例
- 前后院老屋出租合同范本
- 合同范本文壁纸
- 创新专业研究课题申报书
- Kappa测试数据分析报告
- 矿山地质与安全
- 视知觉原理课件
- 建筑工程计量与计价高职PPT完整全套教学课件
- 网店运营PPT完整全套教学课件
- 用户操作手册-Tagetik合并财务报表系统实施项目
- 畜牧场经营管理
- 【课件】算法及其特征 课件教科版(2019)高中信息技术必修1
- 【课题】《中学道德与法治法治意识培养策略的研究》中期检查表
- 统编人教版高中政治(必修3)第2课第一框《始终坚持以人民为中心》说课稿
- 第七章-创意服装的立体裁剪课件
评论
0/150
提交评论