您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > 中国科技大学MBA电子商务
0第二章关系数据库2.1关系数据结构2.2关系的完整性2.3关系代数2.4关系数据库管理系统1第二章关系数据库关系数据库系统是目前应用最普遍、最有发展前途的数据库系统,而关系数据库系统的基础即是关系模型。与其它模型相比,关系模型具有坚实的理论基础——关系运算理论。因此本章是这门课程的重点内容,也是后面所有介绍关系数据库概念的基础知识。关系模型是由关系数据结构、关系操作集合和关系的完整性三部分组成。22.1关系数据结构从用户的角度看,关系模型的数据结构是一张二维表,由于关系模式是建立在集合代数的基础上,这里从集合论角度给出关系数据结构的形式化定义,以及有关关系模式、关系、元组、属性、候选码、主码、外码等相关概念。1.关系(1)域(domain)定义2.1域是一组具有相同数据类型的值的集合。32.1关系数据结构-关系(2)笛卡尔积(Cartesianproduct)定义2.2给定一组域D1,D2,…,Dn,这些域可以完全不同,也可以部分或全部相同。D1,D2,…,Dn的笛卡尔积为:其中每一个元素(d1,d2,…,dn)叫作一个n元组,简称元组,元素中的每一个值di叫作一个分量。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为()12n12niiDDDd,d,,ddD,i1,2,,n1niiMm42.1关系数据结构-关系【例1】D1={陈新,刘成宾}(导师集合)D2={计算机,信息}(专业集合)D3={李勇,刘英,韩小海}(研究生集合)D1×D2×D3={(陈新,计算机,李勇),(陈新,计算机,刘英),(陈新,计算机,韩小海),(陈新,信息,李勇),(陈新,信息,刘英),(陈新,信息,韩小海),(刘成宾,计算机,李勇),(刘成宾,计算机,刘英),(刘成宾,计算机,韩小海),(刘成宾,信息,李勇),(刘成宾,信息,刘英),(刘成宾,信息,韩小海)}基数为:2×2×3=12是元组是分量是分量是分量52.1关系数据结构笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。导师专业研究生陈新计算机李勇陈新计算机刘英陈新计算机韩小海陈新信息李勇陈新信息刘英陈新信息韩小海刘成宾计算机李勇刘成宾计算机刘英刘成宾计算机韩小海刘成宾信息李勇刘成宾信息刘英刘成宾信息韩小海62.1关系数据结构-关系(3)关系(relation)定义2.3笛卡尔积的子集叫作在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示。其中R为关系名,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。关系是笛卡尔积的一个有意义的子集,所以关系也是一张二维表。表中的每行对应一个元组,每列对应一个域。因为域可以相同,必须为域取名,称为属性,n目关系必有n个属性。72.1关系数据结构-关系在关系DB中,码是关系模型的一个重要概念。候选码:关系中的某一属性组,若它的值唯一地标识了一个元组,而其真子集不行,则该属性组称为候选码。主码:若关系中有多个候选码,则选定其中一个为关系的主码。主属性与非主属性:包含在任何一个候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。82.1关系数据结构-关系【例2】从前面例1的笛卡尔积中选取一个有意义的子集。(由于一个研究生只师从于一个导师,学习某一个专业,所以笛卡尔积中许多元组没有实际意义,我们从中选出有实际意义的元组来构造关系)假设导师与专业是1:1的关系,导师与研究生是1:n的关系。则得到下列表:导师专业研究生陈新计算机李勇陈新计算机刘英刘成宾信息韩小海SPAKey=研究生92.1关系数据结构-关系关系的类型:基本关系:实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:是由基本表或其他视图表导出地表,是虚表,不对应实际存储的数据。102.1关系数据结构-关系关系的性质属性值是原子的,不可分解没有重复元组没有行序理论上没有列序,为方便,使用时有列序列是同质的112.1关系数据结构2.关系模式关系模式是“型”的概念,是对关系的描述。关系是“值”的概念,是关系模式在某一时刻的状态或内容。关系模式是静态的、相对稳定的。而关系是动态的,随时间的变化而不断变化。因为关系操作在不断更新着数据库中的数据,以使得数据库能真实地反映现实世界的最新状态。122.1关系数据结构-关系模式关系需要描述哪些方面?因为关系是元组的集合,也就是笛卡尔积的一个子集,所以关系模式必须指出这些元组集合的结构(即属性的构成、属性来自的域、属性与域之间的映射关系)。其次,关系模式的关系随时间而变化,但客观世界许多既有事实限定了这种变化必须满足一定的完整性约束条件,这些约束条件或者通过对属性取值范围的限定,或者通过属性间的相互关连反映出来,所以关系模式应当刻划这些完整性约束条件。132.1关系数据结构-关系模式关系模式应当是一个五元组,可形式化地表示为:R(U,D,DOM,F)属性名集合关系名U中属性来自的域属性间数据的依赖关系集属性向域的映象集合简记为:R(U)或R(A1,A2,…,An)142.1关系数据结构-关系模式3.关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库也有型与值之分。关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。15第二章关系数据库2.1关系数据结构2.2关系的完整性2.3关系代数2.4关系数据库管理系统162.2关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户自定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,是由关系系统自动支持的。172.2关系的完整性1.实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则要求关系中的元组在组成主码的属性上不能取空值。若取空值,则主码的唯一性将遭到破坏,这是对关系主码的约束。所谓空值就是“不知道”或“无意义”的值。例:在学生选课关系:SC(学号,课号,成绩)中,(学号,课号)为主码,则学号和课号两个属性都不能取空值。182.2关系的完整性2.参照完整性现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述。这就自然存在着关系与关系间的引用。先看几个例子。192.2关系的完整性-参照完整性【例1】设有学生和专业两个关系,其中主码用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中专业号的取值,必须是确实存在的专业的专业号,即专业关系中有该专业的记录。也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。202.2关系的完整性-参照完整性【例2】“学生课程”数据库中有三个关系:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)这三个关系之间也存在着属性的引用,即选修关系引用了学生关系的主码“学号”和课程关系的主码“课程号”。因此,选修关系中某些属性的取值需要参照学生关系和课程关系的属性取值。212.2关系的完整性-参照完整性不仅两个或两个以上的关系之间可以存在引用关系,同一关系内部属性间也可能存在引用关系。【例3】设有关系学生2(学号,姓名,性别,专业号,年龄,班长)其中“学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系“学号”属性,即“班长”必须是确实存在的学生的学号。222.2关系的完整性-参照完整性定义2.4设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。关系R和S不一定是不同的关系。学生关系专业关系专业号课程关系选修关系学号课程号学生关系参照关系被参照关系专业号是学生关系的外码学号和课程号是选修关系的外码参照关系被参照关系被参照关系232.2关系的完整性-参照完整性让一个关系的主码出现在另一个关系中,以实现关系中数据的联系,这些在另一个关系中起联系作用的属性组,就称为外码。在关系DB中,表之间的联系是通过公共属性实现的,这个公共属性就是一个表的主码和另一个表的外码。这是关系DB的特点。242.2关系的完整性-参照完整性参照完整性规则就是定义外码与主码之间的引用规则参照完整性规则:若属性F(或属性组)是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。规则要求:外码值必须是另一个关系的主码的有效值,或者是“空值”。这是对关系外码的约束。外码值是否允许为空值,应视具体情况而言。252.2关系的完整性-参照完整性对照前例:【例1】:学生关系中的专业号可取两类值:空值,表示尚未给该学生分配专业非空值,必须是专业关系中某个元组的专业号值【例2】:按参照完整性,选修关系中的学号和课号也可取两类值,空值或被参照关系中已存在的值。但由于学号和课号是选修关系中的主属性,按实体完整性不能取空值,所以实际上学号和课号只有一种取值。【例3】:学生2关系中的班长属性也可取两类值:空值,表示尚未选出班长非空值,必须是本关系中某个元组的学号值262.2关系的完整性3.用户自定义完整性用户自定义完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。27第二章关系数据库2.1关系数据结构2.2关系的完整性2.3关系代数2.4关系数据库管理系统282.3关系代数关系代数是关系数据库系统查询语言的理论基础,而关系的数据查询语言是关系代数的具体实现。关系模型给出了关系操作的能力,这个能力是用关系数据语言来表示的。关系数据语言包括:关系代数语言:是用对关系的运算来表达查询要求的方式关系演算语言:是用谓词来表达查询要求的方式具有关系代数和关系演算双重特征特点的语言SQL292.3关系代数关系代数运算符集合运算符:∪,-,∩,×专门的关系运算符:σ,π,⊳⊲,÷比较运算符:<,>,≤,≥,=,≠逻辑运算符:∨,∧,¬302.3关系代数引入记号:R(A1,A2,…,An)是关系模式,R为一个关系,t∈R表示t是R的一个元组,t[Ai]表示元组t中相应于属性Ai的一个分量。若A={Ai1,Ai2,…,Aik},则A称为属性列,t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。Ā表示{A1,A2,…,An}去掉{Ai1,Ai2,…,Aik}后剩余的部分属性组。312.3关系代数R为n目关系,S为m目关系。tr∈R,ts∈S。trts称为元组的连接。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。给定一个关系R(X,Z),X和Z是属性组,定义t[X]=x时,x在R中的象集为:Zx={t[Z]∣t∈R,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合322.3关系代数1.传统的集合运算关系的并:R∪S={t∣t∈R∨t∈S}由属于R或属于S的元组组成。即由关系R和S的所有元组合并,再除去重复元组,组成的一个新关系。关系的差:R-S={t∣t∈R∧¬t∈S}由属于R而不属于S的所有元组组成。即关系R中除去与S关系中相同的元组,组成的一个新关系。关系的交:R∩S={t∣t∈R∧t∈S}由即属于R又属于S的元组组成。即在两个关系R与S中取相同的元组,组成的一个新关系。332.3关系代数-传统的集合运算广义笛卡尔积:R×S={trts∣
本文标题:中国科技大学MBA电子商务
链接地址:https://www.777doc.com/doc-30768 .html