【教学课件】第1章数据库相关基础理论知识.ppt
第1章 数据库相关基础理论知识,开始,主讲:,本章的任务,DBMS的基本功能、组成和选择原则关系数据库管理系统的等级数据库的三级模式结构数据库系统的组成关系模型的基本概念E-R模型的建立方法E-R模型转换为关系模型的方法关系的规范化理论,DBMS的基本功能,数据定义功能数据库操纵功能数据控制功能数据库的建立和维护功能,DBMS的组成,数据描述语言数据操纵/查询语言数据库管理例行程序,数据库系统访问数据的步骤,选择DBMS的原则,分析应用环境,确定信息需求 收集各种DBMS资料,分析DBMS的功能和性能 综合衡量,初步筛选 详细考察,确定目标,返回目录,关系数据库管理系统的等级,半关系型DBMS(最小关系型)基本关系型DBMS(关系完备型)完全关系型(全关系型),返回目录,数据库系统的三级模式结构,返回目录,数据库系统的组成,数据库管理员(),数据库管理系统(DBMS),计算机基本系统,数据库,返回目录,关系的直观概念,表(Table),也称关系 列(Field),也称字段、域或者属性 行(Row),也称元组(Tuple)码(Key),也称主键,关系模型的三类完整性,实体完整性:在任何关系的任何一个元组中,主键值的任一分量都不允许为空值。参照完整性:若某个字段或字段组不是A表的主键,但它是另一张B表的主键,则该字段或字段组称为A表的外关键字,或称为外键。在关系模型中,外关键字等于B中某个元组的主键值。例如:“成绩表”的“课程ID”只能取“课程信息表”的“课程ID”已经有的值,即001006中的任何一个值。用户定义完整性:由用户针对某一具体数据库的约束条件,定义完整性。它由应用环境决定,反映了某一具体应用所涉及的数据必须满足的语义要求。例如,性别只能是“男”或“女”两种可能,年龄的取值只能限制在O200之间才合乎情理等。,选择运算,例如,在P11的表1-1中,选择姓名为“张三”的学生基本情况的结果为:,投影运算,例如,在表1-1中,选择学号、姓名、性别字段的投影运算结果为:,联接运算(实例1),M表,N表,MN表(M和N表的笛卡尔积),联结运算(CD)的结果,联接运算(实例2),在表1-2和表1-3中,要选择满足以下条件的元组:“课程信息表”的“课程ID”等于“成绩表”的“课程ID”,其联合运算的结果如下:,返回目录,E-R模型,实体(Entity):实体是客观存在并可相互区分的事物。例如,在学校里,一个学生、一个老师、一门课程都是实体。字段(Field)或属性(Attribute):字段是实体所具有的某一特性,一个实体可由若干字段来刻画。例如,学生实体可由学号、姓名、年龄、性别、年级、系、专业等字段组成。联系(Relationship):现实世界的事物之间是有联系的,这种联系必然要在信息世界中加以反映。学校中教与学的联系,可以用教师实体集与学生实体集两者间的联系表示:教师教学生;学生从教师的讲课中获取知识。,E-R模型,1:1模型,E-R模型,1:n 模型,E-R模型,M:N模型,学生管理系统的E-R模型,返回目录,将E-R模型转换为关系模式,原则1:每个实体集转换为一个关系。实体集中的实体的属性成为该关系的属性,实体的标识符成为该关系的关键字,每个实体由该关系的一个元组表示。,将E-R模型转换为关系模式,原则2:每个实体联系集转换成一个关。该实体联系自身所拥有的非关键字属性,加到该关系中去,而该关系的主键由该联系集所联系的实体集的关键字组成。,将E-R模型转换为关系模式,原则3:如果一个实体联系集的两侧标明的维数是1:n,则在1侧的实体集的关键字应加入到另一侧的实体转换成的关系中。,返回目录,不符合第一范式的实例,学生选修课程的记录:,不符合第一范式存在的问题,1.更新困难 如果1011同学想把选修课程改为Access数据库,专业英语,则系统在处理上面临二义性:(1)修改1011记录的课程属性值(2)把学号属性值扩充为1011,10122.插入困难 无法在此关系中加入“成绩”属性,符合第一范式的实例,将课程属性的属性值拆开,形成如下关系形式:,第一范式的判断方法,检查关系表中每个属性值是否都是不可再分解的最小数据单位。,将非第一范式规范为第一范式的方法,依次检查每个属性的取值,如果是组合情况,即不是最小单位,就进行属性值的最小化拆分。,不符合第二范式的实例,学生选课关系表:主键为:(学号,课号),不符合第二范式存在的问题,插入异常:无法插入还未选课的,由于该学生无课号属性,其相应的码值一部分为空,故该学生的固有信息无法插入;删除异常:某学生只选了一门课,若现在要放弃这门课,由于课号是主键的一部分,整个记录必须删除,该学生的其他信息也删除了;修改复杂:若张茗从计算机系转入动画系,必须修改系负责人,该生选修了多门课,要修改多条记录,符合第二范式的实例,主键(学号,课号)主键(学号),第二范式的判断方法,找出一个关系(表)中的主键单个属性作为主键的情况比较简单,因为主键的作用就是能唯一标识表中的每一行,关系中的非主属性都能完全函数依赖于主键,这样的关系是第二范式。对组合属性作为主键的那些关系,通常要判断每一个非主键属性是否能完全函数依赖于主键,即完全由主键所决定。若每一个非关键字属性能被主键所决定,则是第二范式,否则,就不是。,将非第二范式规范为第二范式的方法,1.将能完全依赖主键的属性从关系中提取出来,同主键一起组成一个关系 如:SC(学号,课号,成绩)2.将剩余的属性同能完全依赖的主键的一部分组成一个关系 SD(学号,姓名,系,系负责人),不符合第三范式的实例,不符合第三范式存在的问题,插入异常:当新成立一个系,该系还没有招收任何学生时,系的有关信息无法插入表中。删除异常:若某个系的全部学生都已毕业,则在删除相应学生信息时,系和系负责人的信息也删除了修改复杂:系和系负责人的信息反复存储,造成数据冗余,引起修改困难,符合第三范式的实例,SND(学号,姓名,系)DM(系,系负责人),第三范式的判断方法,判断关系模式中是否有传递依赖的情况,如果有,不是第三范式,否则是。例如:学号系,系学号,系系负责人 则:学号系负责人,将非第三范式规范为第三范式的方法,继续拆分关系模式,把有传递依赖的属性放在不同的关系中,消除传递依赖。例如:SND(学号,姓名,系)DM(系,系负责人),不符合BCNF范式的实例,STJ(学生,课程,教师),不符合BCNF范式存在的问题,删除异常:当删除信息“学生1011学习软件工程课程时”,将同时失去“赵明老师主讲软件工程课程”的信息。,符合BCNF范式的实例,将关系模式进一步拆分:SJ(学生,课程)TJ(教师,课程),BCNF范式的判断方法,关系模式中是否有某个属性函数依赖另外一个属性,而被依赖的属性不是主键。例如:SJT(学生,课程,教师)中主键是(学生,课程)或(学生,教师)存在:教师课程,而教师不是主键。所以SJT不是BCNF范式。,将非BCNF范式规范为BCNF范式的方法,继续拆分关系,使每个被依赖的属性都是主键。,关系的规范化小结,从第一范式到BCNF范式,规范化程度逐渐提高。规范化程度越高,越能消除插入、删除、修改的异常。规范化程度越高,关系拆分的越多,会增加表间关系的复杂性,增加查询信息所花费的时间。不是规范化程度越高就越好,实际应用中,要在插入、删除、修改异常和查询时间之间做权衡,选择适当的规范化范式。,返回目录,本章小结,从概念上掌握:DBMS的基本功能和组成选择DBMS的原则关系数据库管理系统的等级数据库系统的三级模式结构数据库系统的组成ER模型及其转换为关系模式的方法关系模型的基本概念关系模式的存储异常与数据依赖函数依赖的基本概念从技能上学会:建立简单的E-R模型。关系模式存储异常的判断关系规范化的方法,如何拆分为3NF,