您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > SQLServer教案第02周-关系模式与关系代数
数据库原理与应用——SQLServer2005邹竞授课日期年月日第2周授课形式讲课授课时数4章节名称第02章关系模型教学目的与要求①理解关系、关系表、属性、元组、超键、候选键、全键、外键的基本概念②理解关系数据库中基本表的性质③理解关系模式概念和表示④理解关系模式的完整性规则⑤掌握关系代数中的基本操作:并、差、笛卡尔积、投影、选择⑥掌握关系代数的其它操作:交、连接、除,以及外连接、外部并。⑦理解SQL语言的概念和特点教学重点关系运算教学难点无教学方法和手段讲授法结合课堂实例分析讨论教学过程与组织导入新课前次课程的学习,我们已经了解了和数据库相关的一些基本概念。数据模型是数据库系统的核心和基础,关系模型是目前应用最广泛的数据模型,是目前应用最广泛的主流数据库──关系数据库的核心和基础。关系模型有两个显著的特点:一是数据结构简单──二维表;二是有扎实的理论基础,它的理论主要关系运算理论和关系模式设计理论。讲授新课第二章关系模型及其运算第01节关系模型的基本概念关系模型创始人:IBM的E.F.Codd,1970年。目前所有厂商推出的DBMS都支持RDB,非关系系统的产品也都加上了关系接口,数据库领域当前的研究工作也都是以关系方法为基础。2.1.1关系模型的结构、操作和完整性约束的基本概念(1)关系模型的数据结构关系模型是建立在严格的数学概念的基础上的。关系模型中数据的逻辑模型是一张二维表,它由行和列组成。在关系模型中,实体以及实体间的联系都是用关系来表示。必须满足一定的规范条件,其中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是不允许表中还有表。(2)关系模型的存储结构在关系模型中,实体及实体间的联系都用“表”来表示。在数据库的物理组织中,“表”以“文件”形式存储。(3)关系模型的操作关系模型的操作主要包括查找、插入、删除和修改数据。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。(4)关系模型的完整性约束关系模型的操作必须满足关系的完整性约束条件。关系的完整性约束条件包括3大类:实体完整数据库原理与应用——SQLServer2005邹竞性、参照完整性和用户定义完整性。2.1.2关系模型的基本术语(1)关系与二维表表2-1是一张学生登记表,这是一张二维表。表2-1学生记表学号姓名性别年龄S0201李兰女17S0202张娜女18S0203张伟男17为简单起见,对表2-1数学化,用字母表示表格的内容,则表2-1可用图2-1的表格表示。二维表的术语关系模型的术语数据库的术语R───列←---------→属性←-----------→字段←─表头←-----→关系模式←-------→记录类型←─行1←-----→元组1←-------→记录1←─行2文件元组2关系(实例)记录2文件←─行3←-----→元组3←-------→记录3列值←-------→属性值←----------→字段值图2-1二维表、关系模型及数据库的对应术语在关系模型中,关系(Relation)就是一个二维表。表中的列称为属性(Attribute)。属性具有型和值两层含义:属性的型指属性名和属性取值域;属性值指属性具体的取值。同一关系中的属性名(即列名)不能相同。属性用于表示实体的特征,一个关系中往往有多个属性。例如表2-1中有4个属性,分别为学号、姓名、性别和年龄。表中的行称为元组(Tuple),组成元组的元素称为分量(Component)。数据库中的一个实体或实体间的一个联系均使用一个元组表示。例如表2-1中有3个元组,它们分别描述3个学生的学号、姓名、性别和年龄。(S0201,李兰,女,17)是一个元组,它由4个分量构成。元组的集合即为关系(relation),或称为实例(instance)。关系中属性个数称为元数(arity),元组个数称为基数(cardinality)。图2-1中,关系R的元数为4,基数为3。实际上我们常常直接称呼关系为表,元组为行,属性为列。关系中每1个属性都有一个取值范围,称为属性的值域。域(Domain)是一组具有相同数据类型的值的集合。例如,整数、{0,1}、{男,女}、{计算机专业,物理专业,外语专业}等,都可以作为域。属性A的值域用DOM(A)表示。每个属性对应一个值域,不同的属性可对应于同一值域。(2)关系的定义可以用集合的观点定义关系:关系是一个元数为K(K1)的元组的集合,是其各属性的值域的笛卡尔积的一个子集。集合中的元素是元组,每个元组的元数相同。(3)键(码)键(码)由1个或几个属性构成,在实际使用中,有下列几种键:①超键(SuperKey):在关系中能惟一标识元组的属性集称为关系模式的超键。②候选键(CandidateKey):不含有多余属性的超键称为候选键。也就是在候选键中,若要再删除属性,就不是键了。一般而言,如不加说明,则键是指候选键。③主键(PrimaryKey):用户选作标识元组的一个候选键称为主键,也称为关键字。如果关系中只有一个候选键,这个惟一的候选键就是主键。表2-1中,(学号,姓名)是关系模式的超键,但不是候选键,而(学号)是候选键。在实际使用中,ABCDa1b1c1d1a2b2c2d2a3b3c3d3数据库原理与应用——SQLServer2005邹竞如果选择(学号)作为插人、删除或查找的操作变量,那么就称(学号)是主键。④全码(All-Key):若关系的候选键中只包含一个属性,则称它为单属性码;若候选键由多个属性构成,则称它为多属性码。若关系中只有一个候选键,且这个候选键中包括全部属性,则称该候选键为全码。全码是候选键的特例,它说明该关系中不存在属性之间相互决定情况。例如,设有以下关系:学生(学号,姓名,性别,出生日期);课程(课程号,课程名,学分);学生选课(学号,课程号)。其中,学生关系的主键为学号,是单属性码;课程关系中课程号是主键;学生选课关系中的学号和课程号相互独立,属性间无依赖关系,该关系的主键是全码。⑤主属性(PrimeAttribute)与非主属性(Non-KeyAttribute):关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。⑥外键(ForeignKey)和参照关系(ReferencingRelation):设FR是关系R的一个或一组属性,但不是关系R的候选键,如果FR与关系S的主键KS相对应,则称FR是关系R的外键,关系R为参照关系,关系S为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。需要指出的是,外键并不一定要与相应的主键同名。但在实际应用中,为便于识别,当外键与相应的主键属于不同关系时,往往给它们取相同的名字。例如,在学生库中有学生、课程和成绩3个表,其关系模式如下(其中主键用下划线标识):学生(学号,姓名,性别,专业号,出生日期)课程(课程号,课程名,学分)选修成绩(学号,课程号,成绩)。在学生表中,学号是主键;在课程表中,课程号是主键;在选修成绩表中,学号和课程号一起为主键。单独的学号或课程号仅为选修成绩表的主属性,而不是选修成绩表的主键。学号和课程号为选修成绩表中的外键,选修成绩表是参照关系,学生表、课程表为被参照关系,它们之间要满足参照完整性规则。(4)数据库中基本关系的性质关系数据库中的基本表具有以下6个性质。①同一属性的数据具有同质性:即同一列中的分量是同一类型的数据,它们来自同一个域。②同一关系的属性名具有不能重复性:指同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的属性名。③关系中的列位置具有顺序无关性,许多关系数据库产品提供的增加新属性的操作只提供插至最后一列的功能。④关系具有元组无冗余性:指关系中的任意两个元组不能完全相同。⑤关系中的元组位置具有顺序无关性。⑥关系中的分量具有原子性:指关系中每一个分量都必须是不可分的数据项。2.1.2关系模式、关系子模式和存储模式关系模型基本上遵循数据库的三级体系结构。在关系模型中,概念模式是关系模式的集合,外模式是关系子模式的集合,内模式是存储模式的集合。(1)关系模式的概念和表示关系的描述称为关系模式(RelationSchema)。关系模式的定义包括模式名、属性名、值域名以及模式的主键。由于不涉及到物理存储方面的描述,因此关系模式仅仅是对数据特性的描述。数据库原理与应用——SQLServer2005邹竞关系模式可以形式化地表示为:R(U,D,Dom,F)其中:R为关系名,是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域的域名;Dom为属性向域的映像的集合;F为属性间数据的依赖关系集合。关系模式通常可以简单记为:R(U,F)或R(U)或R(A1,A2,…,An)其中:R为关系名;F为数据依赖集合;A1,A2,…,An为属性名。例如:在图2-1中,表格上方的R是关系模式名,该关系模式可描述为:R(A,B,C,D)一般而言,关系模式是静态的,关系数据库一旦定义后其结构不能随意改动;而关系的数据是动态的,关系数据库中的数据根据需要而不断增加、修改或删除。(2)关系子模式子模式是用户所用到的那部分数据的描述。除了指出用户的数据外,还应指出模式与子模式之间的对应性。(3)存储模式关系存储时的基本组织方式是文件,元组是文件中的记录。由于关系模式有键,因此存储一个关系可以用散列方法或索引方法实现。如果关系中元组数目较少(100个以内),那么也可以用堆文件方式实现。此外,还可以对任意的属性集建立辅助索引。2.1.3关系模型的3类完整性规则关系模型的完整性规则是对关系的某种约束条件。关系模型中有3类完整性约束:实体完整性(EntityIntegrity)、参照完整性和用户定义的完整性。(1)实体完整性约束关系的实体完整性规则为:若属性A是基本关系R的主属性,则属性A的值不能为空值。注意:该规则规定基本表的所有主属性都不能取空值(空值不是空格值,它是无输入的属性值,用“Null”表示,说明“不知道”或“无意义”),而不仅是主键不能取空值。(2)参照完整性约束关系的参照完整性规则为:若属性(或属性组)FR是基本关系R的外键,它与基本关系S的主键KS相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在FR上的值必须等于S中某个KS值或者取空值。这条规则要求“不引用不存在的实体”。在使用时,有3点应注意:①外键FR和相应的主键KS可以不同名,但数据类型和值域要相同;②关系R和关系S也可以是同一个关系模型,表示属性之间的联系;③外键值是否允许为空,应视具体问题而定。例如:学生实体和专业实体用下面的关系表示,其中主键用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)这两个关系之间存在着属性的引用,学生表中各元组的专业号值必须是专业表中存在的专业号值,或者为空值。数据库原理与应用——SQLServer2005邹竞(3)域完整性约束域完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。DBMS应提供定义和检验这类完整性的机制,而不是由应用程序承担这一功能。例如,百分制下,考试成绩必须在0~100之间。(4)用户自定义约束第02节关系代数关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。任何一种运算都是将一定的运算符作用与一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。集合运算符:并(∪)、差(-)、交(交)比较运算符:、≥、、≤、=、≠专门的关系运算符:广义笛卡尔积(×)、选择(σ)、投影(π)、连接()、除(÷)逻辑运算符:非(┐)、与(∧)、或(∨)关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类,其中传统的集合操作包括:并、差、交、笛卡尔积。专门
本文标题:SQLServer教案第02周-关系模式与关系代数
链接地址:https://www.777doc.com/doc-1815345 .html