您好,欢迎访问三七文档
软件学院自评报告软件学院自评报告1第二章关系数据库软件学院自评报告软件学院自评报告22.1关系模型概述2.2关系数据结构及形式化定义2.3关系的完整性2.4关系代数第二章关系数据库软件学院自评报告软件学院自评报告3第二章关系数据库关系数据库应用数学方法来处理数据库中的数据。1970年6月E.F.Codd美国计算机学会会刊“ARelationalModeofDataforLargeSharedDataBanks”E.F.Codd从1970年起连续发表了多篇论文奠定了关系数据库的理论基础软件学院自评报告软件学院自评报告4关系数据库是支持关系模型的数据库系统2.1关系数据库概述1.关系数据结构2.关系操作3.关系的三类完整性约束:二维表:集合的操作方式关系代数SQL关系演算实体完整性约束参照完整性约束用户自定义的完整性约束软件学院自评报告软件学院自评报告52.2.1.关系及相关概念2.2关系数据结构及形式化定义1.域一组具有相同数据类型的值的集合。例:整数的集合字符串的集合全体学生的集合【0,1】软件学院自评报告软件学院自评报告62.2关系数据结构及形式化定义2.笛卡尔积(CartesianProduct)D1D2…Dn=每个元素(d1,d2,…,dn)称为一个元组Tuple给定一组域D1,D2,…,Dn的笛卡尔积为:{}(d1,d2,…,dn)|diDi,i=1,…,n元组的每一个值di叫做一个分量Component若Di的基数为mi,则笛卡尔积的基数为集合中元素的个数inim1软件学院自评报告软件学院自评报告7D1D2…Dn={}(d1,d2,…,dn)|diDi,i=1,…,n例:假设给出两个域:D1为学生集合(Student)={s1,s2}D2为课程集合(Course)={c1,c2,c3}D1×D2={(s1,c1),(s1,c2),(s1,c3),(s2,c1),(s2,c2),(s2,c3)}则D1×D2是个二元组集合,元组个数为2×3是所有可能的(学生,课程)的组合构成的元组集合。2.2关系数据结构及形式化定义软件学院自评报告软件学院自评报告8D1D2…Dn={}(d1,d2,…,dn)|diDi,i=1,…,n练习:假设给出两个域:D1为学生集合={张三,李四}D2为性别集合={男,女}D1×D2={(张三,男),(张三,女),(李四,男),(李四,女)}2.2关系数据结构及形式化定义软件学院自评报告软件学院自评报告92.2关系数据结构及形式化定义3.关系(Relation)关系是笛卡尔积中有意义的子集,所以关系也可以表示为二维表例:笛卡尔积D1×D2={(张三,男),(张三,女),(李四,男),(李四,女)}姓名性别张三男李四男关系A姓名性别张三女李四男关系B……n目关系必有n个属性关系中属性的个数软件学院自评报告软件学院自评报告102.2关系数据结构及形式化定义4.候选键(CandidateKey)关系中的一个属性(组),其值能唯一标识一个元组。若从属性(组)中去掉任何一个属性,它就不具有这一性质了,这样的属性(组)称作候选键(CK)。能唯一标识一个元组最小的属性组。例:学生关系(学号,姓名,性别,年龄)选课关系(学号,课程号,上课地点,成绩)软件学院自评报告软件学院自评报告112.2关系数据结构及形式化定义例:学生关系(学号,姓名,年龄,班级,专业)假设每个班级不能有重名的学生但同一专业允许学生重名问学生关系的候选键有哪些?(1001,张三,20,A,计算机)(2001,张三,19,B,计算机)(3001,李四,20,A,机械)……(8001,张三,17,A,机械)Ck:学号姓名,班级,专业一个关系的候选键可以有多个。软件学院自评报告软件学院自评报告122.2关系数据结构及形式化定义5.主键(PrimaryKey)如果一个关系有多个候选键,则选定其中的一个作为主键。注:主键是我们在设计数据库时,根据情况选定的。主键可以包含多个属性。软件学院自评报告软件学院自评报告132.2关系数据结构及形式化定义6.主属性(PrimaryAttribute)候选键中的诸属性称作主属性。例:学生关系(学号,姓名,年龄,班级,专业)Ck:学号姓名,班级,专业主属性为学号、姓名、班级、专业软件学院自评报告软件学院自评报告142.2关系数据结构及形式化定义7.关系可以分为三种类型(1)基本关系(2)查询表(3)视图表:实际存在的表:查询结果对应的表虚表:由基本表或其他视图导出来的表虚表软件学院自评报告软件学院自评报告152.2关系数据结构及形式化定义8.关系的性质(1)列是同质的;即每一列中的分量来自同一域,是同一类型的数据。(2)不同的列可来自同一个域,但每列必须有不同的属性名;(3)行列的顺序无关紧要;(4)任意两个元组不能完全相同;(5)每一分量必须是不可再分的数据。关系数据库必须满足的条件软件学院自评报告软件学院自评报告16定义2.1关系的描述称作关系模式(RelationSchema)。它可以形式化的表示为R(U,D,DOM,F)2.2.2关系模式R:关系名U:属性名的集合D:属性组U中所有属性来自的域DOM:属性向域的映像集合F:属性间数据的依赖关系集合通常记作:R(U)或R(A1,A2,……An)软件学院自评报告软件学院自评报告172.2.2关系模式关系模式与关系关系模式是静态的稳定的关系是动态的随时间不断变化的关系是关系模式在某一时刻的状态与内容。软件学院自评报告软件学院自评报告182.2.3关系数据库关系数据库也有型和值之分型:也称关系数据库模式,是对关系数据库的描述包括若干域以及在这些域上定义的若干关系模式值:关系模式在某一时刻对应的关系的集合软件学院自评报告软件学院自评报告192.3关系的完整性关系数据库是支持关系模型的数据库系统1.关系数据结构2.关系操作3.关系的三类完整性约束:二维表:集合的操作方式关系代数SQL关系演算实体完整性约束参照完整性约束用户自定义的完整性约束软件学院自评报告软件学院自评报告20为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:2.3关系的完整性⑴实体完整性⑵参照完整性⑶用户自定义的完整性两个不变性软件学院自评报告软件学院自评报告212.3关系的完整性1.实体完整性(EntityIntegrity)规则2.1实体完整性规则若属性A是基本关系R的主属性,则属性A不能取空值。即,主属性不能取空值。例:选课关系(学号,课程编号,成绩,上课地点)则主属性:学号、课程编号均不能取空值软件学院自评报告软件学院自评报告222.3关系的完整性2.参照完整性(ReferentialIntegrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。外语语种学生课程选课性别姓名学号所在班级号成绩学分课程名课程号mn选课(学号,课程号,成绩,上课地点)学生(学号,姓名,性别,……)课程(课程号,课程名,类别,学分)软件学院自评报告软件学院自评报告232.3关系的完整性例【2.2】学生实体和班级实体可以下面的关系表示:学生(学号,姓名,性别,外语语种,班级编号)班级(班级编号,班级名称,辅导员编号,……)软件学院自评报告软件学院自评报告242.3关系的完整性例【2.3】学生、课程、学生与课程之间的多对多联系可以用下面三个关系来表示:学生(学号,姓名,性别,……)课程(课程号,课程名,类别,学分)选课(学号,课程号,成绩,上课地点)软件学院自评报告软件学院自评报告252.3关系的完整性例【2.4】有学生关系如下:学生(学号,姓名,性别,外语语种,班级编号,班长学号)(1001,章同,男,英语,001,1002)(1002,李飞,男,英语,001,1002)(1003,宋逸,女,英语,001,1002)……(2001,张任,男,日语,002,2001)(2002,王莉,女,日语,002,2001)……软件学院自评报告软件学院自评报告262.3关系的完整性2.参照完整性(ReferentialIntegrity)定义2.2R(A,B,C,F)S(Ks,D,E)R的外键参照关系被参照关系但不是关系R的主键,设F是基本关系R的一个或一组属性,如果F与基本关系S的主键Ks相对应则F称是基本关系R的外键(ForeignKey)并称基本关系R为参照关系(ReferencingRelation)基本关系S为被参照关系(ReferencedRelation)软件学院自评报告软件学院自评报告272.3关系的完整性例【2.2】学生实体和班级实体可以下面的关系表示:学生(学号,姓名,性别,外语语种,班级编号)班级(班级编号,班级名称,辅导员编号,……)学生关系的外键参照关系被参照关系软件学院自评报告软件学院自评报告282.3关系的完整性例【2.3】学生、课程、学生与课程之间的多对多联系可以用下面三个关系来表示:学生(学号,姓名,性别,……)课程(课程号,课程名,类别,学分)选课(学号,课程号,成绩,上课地点)选课关系的外键选课关系的外键参照关系被参照关系被参照关系软件学院自评报告软件学院自评报告292.3关系的完整性例【2.4】有学生关系如下:学生(学号,姓名,性别,外语语种,班级编号,班长学号)学生关系的外键参照关系被参照关系软件学院自评报告软件学院自评报告302.3关系的完整性2.参照完整性(ReferentialIntegrity)R(A,B,C,F)S(Ks,D,E)R的外键参照关系被参照关系规则2.2参照完整性规则R中每个元组在F上的值必须为:S中某个元组的主键值(Ks)或空值软件学院自评报告软件学院自评报告312.3关系的完整性例【2.2】学生实体和班级实体可以下面的关系表示:学生(学号,姓名,性别,外语语种,班级编号)班级(班级编号,班级名称,辅导员编号,……)学生关系的外键参照关系被参照关系软件学院自评报告软件学院自评报告322.3关系的完整性例【2.3】学生、课程、学生与课程之间的多对多联系可以用下面三个关系来表示:学生(学号,姓名,性别,……)课程(课程号,课程名,类别,学分)选课(学号,课程号,成绩,上课地点)选课关系的外键选课关系的外键参照关系被参照关系被参照关系软件学院自评报告软件学院自评报告332.3关系的完整性例【2.4】有学生关系如下:学生(学号,姓名,性别,外语语种,班级编号,班长学号)学生关系的外键参照关系被参照关系P32三张表练习软件学院自评报告软件学院自评报告342.3关系的完整性3.用户自定义的完整性(User-definedIntegrity)针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例:选课关系中成绩应在0到100之间不能为负数学生关系中性别取值为男或女……软件学院自评报告软件学院自评报告352.4关系代数关系数据库是支持关系模型的数据库系统1.关系数据结构2.关系操作3.关系的三类完整性约束:二维表:集合的操作方式关系代数SQL关系演算实体完整性约束参照完整性约束用户自定义的完整性约束软件学院自评报告软件学院自评报告362.4.1关系代数概述2.4.1关系代数概述是一种抽象的查询语言,用对关系的运算来表达查询。运算:运算对象运算结果运算符关系集合运算符专门的关系运算符比较运算符逻辑运算符软件学院自评报告软件学院自评报告37运算符含义运算符含义集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于专门的关系运算符σΠ÷选择投影连接除逻辑运算符∧∨非与或2.4.1关系代数概述软件学院自评报告软件学院自评报告38传统的集合运算是二目运算(两个运算对象)2.4.2传统的集合运算包括并、交、差、广义笛卡尔积将关系看成元组的集合,其运算是从关系的“水平”方向,即行的角度来进行的。软件学院自评报告软件学院自评报告392
本文标题:第3章关系数据库.
链接地址:https://www.777doc.com/doc-2155628 .html