资源简介 (共71张PPT)第1章 数据库系统概述本章目标1.了解数据库技术的相关概念、常用的数据库管理系统、数据库系统的优点和数据库系统的结构。2.了解关系数据库的基本概念和有关理论知识;掌握E-R 图的设计过程。3.掌握1NF、2NF、3NF的定义和关系数据库的规范化理论。4.了解数据库的设计步骤;掌握数据库设计的实际应用。1.1 数据库技术的基本概念信息信息是通过符号(如文字和图像等)、信号(如有某种含义的动作和光电信号等)等具体形式表现出来的内容。信息由意义和符号组成,它是对客观世界中各种事物的变化和特征的反映。2. 数据数据(Data)是载荷或记录信息的按一定规则排列组合的物理符号,可以是数字、文字、图像,也可以是计算机代码。在计算机系统中,各种字母、数字符号的组合,例如语音,图形,图像等统称为数据1.1 数据库技术的基本概念3. 数据库数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、共享的、统一管理的数据集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余、较高的数据独立性和易扩展性,并可为各种用户共享。4. 数据库管理系统数据库管理系统(DataBase Management System,DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。1.1 数据库技术的基本概念5. 数据库管理员数据库管理员(DataBase Administrator,DBA),是一个负责管理和维护数据库服务器的人。数据库管理员负责全面管理和控制数据库系统。7. 数据库系统数据库系统(DataBase Systems),是由数据库及其管理软件组成的系统。数据库系统一般由以下4个部分组成。(1)数据库(2)硬件(3)软件(4)人员数据库系统结构图1.2 数据库技术的特点(1)面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用共享。(2)采用一定的数据模型。数据模型不仅要描述数据本身的特点,而且要描述数据之间的联系。(3)数据冗余小,易修改、易扩充。(4)程序和数据有较高的独立性。(5)具有良好的用户接口,用户可方便地开发和使用数据库。(6)对数据进行统一管理和控制,提供了数据的安全性、完整性,以及并发控制。1.2 数据库技术的特点数据库系统阶段程序与数据的关系图图1 数据库系统阶段应用较多的实时数据库系统:IBM 的DB2OracleSybaseSQL ServerMySQLAccess数据库SQLite1.3 常见的数据库模型,是对客观事物、现象、过程或系统的简化描述。数据模型是数据库系统的核心和基础。1.4.1 信息的三种世界及其描述1.4数据模型数据化系统分析信息化现实世界事物及联系信息世界信息模型计算机世界数据模型数据库设计图2 信息化过程1.5.1 信息的三种世界及其描述现实世界 信息世界 计算机世界实体 实例 记录特征 属性 数据项实体集 对象或实体型 数据或文件实体间的联系 对象间的联系 数据间的联系 概念模型 数据模型表1-1 信息的三种世界术语的对应关系表1.4 数据模型1.4.2 常见的数据模型●概念(数据)模型CDM,Conceptual Data Model面向现实世界建模,主要用来描述现实世界的概念化结构,与具体的DBMS无关。最常用的概念模型是E-R模型。● 逻辑(数据)模型LDM,Logical Data Model面向用户建模,用户从数据库所看到的数据模型。●物理(数据)模型 PDM,Physical Data Model面向具体的DBMS,面向机器,描述数据在存储介质上的组织结构。1.4 数据模型1.4.3 概念模型概念数据模型是面向用户、面向现实世界的数据模型,是与DBMS无关的。它主要用来描述一个单位的概念化结构。采用概念数据模型,数据库设计人员可以在设计的开始阶段,把主要精力用于了解和描述现实世界上,而把涉及DBMS的一些技术性的问题推迟到设计阶段去考虑。1.4 数据模型1.4.3 概念模型(一)基本概念1)实体(Entity)客观存在并可相互区别的事物称为实体。实体可以是物、事、人,也可以是抽象的概念或联系2)属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干属性来刻画。1.4 数据模型1.4 数据模型1.4.3 概念模型3)码(Key)所谓码,是指在实体属性中,可用于区别实体中不同个体的一个属性或几个属性的组合,称为该实体集的“码”,有时也称为关键字。当有多个属性可作为码而选定其中一个时,则称它为该实体的“主码”。若在实体诸属性中,某属性虽非该实体主码,却是另一实体的主码,则称此属性为“外部码”或简称“外码”。1.4 数据模型1.4.3 概念模型4)域(Domain)属性的取值范围称为该属性的域。5)实体型(Entity Type)具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。6)实体集(Entity Set)同型实体的集合称为实体集。1.4.3 概念模型(二)实体联系表示法(E-R方法)概念模型中最常用的方法为实体-联系方法,简称E-R方法。该方法直接从现实世界中抽象出实体和实体间的联系,然后用E-R图来表示数据模型。在E-R图中实体用方框表示;联系用菱形表示,同时用边将其与相应的实体连接起来,并在边上标上联系的类型;属性用椭圆表示,并且用边将其与相应的实体连接起来。对于有些联系,其自身也会有某些属性,同实体与属性的连接类似,用边将联系与其属性连接起来。1.4 数据模型实体名称联系名称属性名称实体:联系:属性:1.4.3 概念模型(三)实体间的联系方式两个不同实体型之间的联系可以分为三类:1)一对一联系(1:1联系)如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1,用图1-6表示:1.4 数据模型实体型A实体型B联系名11图3 1:1联系1.4.3 概念模型2)一对多联系(1:n联系)如果对于实体集A中的每一个实体,实体集B中有n个(n≥0)实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n,用图1-7表示:1.4 数据模型实体型A实体型B联系名1n图 4 1:n联系1.4.3 概念模型3)多对多联系(m:n联系)如果对于实体集A中的每一个实体,实体集B中有n个(n≥0)实体与之联系。反之,对于实体集B中的每一个实体,实体集A中也有m(m≥0)之联系,则称实体集A与实体集B具有多对多联系,记为m:n,用图1-8表示:1.4 数据模型实体型A实体型B联系名mn图5 m:n联系1.4.3 概念模型多个实体集之间的联系。例如: 对于课程、教师与参考书这三个实体集,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的,如图6所示。1.4 数据模型课程讲授教师参考书nm1图6 三个不同实体集间 1:m:n联系1.4.3 概念模型同一个实体集内的各实体之间也存在一对一、一对多、多对多的联系。例如学生实体集内部具有领导与被领导的联系,即某一学生(班长)“领导”若干名学生,而一个学生仅被另外一个学生(班长)直接领导,因此这是同一实体集一对多的联系,如图7所示。1.4 数据模型学生班级---班长1n图7 同一实体集内1:n联系1.4.3 概念模型(四)怎样设计E-R图E-R图的设计分两步来完成,首先设计初步E-R图,其次,对初步E-R图中的冗余进行消除得到基本E-R图。设计初步E-R图的步骤:第一,先设计局部E-R图,也称用户视图,步骤如下:① 确定局部概念模型的范围;② 定义实体;③ 定义联系;④ 确定属性;⑤ 逐一画出所有的局部E-R图,并附以相应的说明文件。第二,综合各局部E-R图,形成总的E-R图,即用户视图的集成。步骤如下:① 确定公共实体类型;② 合并局部E-R图;③ 消除不一致因素;④ 优化全局E-R图;⑤ 画出全局E-R图,并附以相应的说明文件。1.4 数据模型1.4.3 概念模型确定实体与属性的原则:能作为属性的尽量作为属性而不要划为实体;作为属性的数据元素与所描述的实体之间的联系只能是1:n的联系;作为属性的数据项不能再用其他属性加以描述,也不能与其他实体或属性发生联系。例如:一个机械制造厂的简单管理系统。首先按工厂技术部门和工厂供应部门设计两个局部E-R图。工厂技术部门关心的是产品的性能参数及由哪些零件组成,零件的材料和耗用量等;工厂供应部门关心的是产品的价格,使用材料的价格及库存量等。按照部分划分,先单独设计某个部门的E-R图,如图8和图9所示。1.4 数据模型1.4.3 概念模型1.4 数据模型产 品产品号组 成零 件产品名性能参数零件数零件号零件名耗用量产品号mn图8 技术部门mn产品产品号使用材料产品名用量存放量仓库号地点价格存量仓库材料号材料名价格库存量仓库名mn图9 供应部门1.4.3 概念模型以上为局部E-R图,综合这两个分E-R图,得到初步E-R图,如图10所示。1.4 数据模型某种材料耗量每种材料总存量仓库某种材料库存量某种零件所用某种材料耗量产品产品号组成材料产品名用量存放量仓库号地点价格存量仓库材料号材料名价格库存量仓库名性能参数使用零件零件数零件号零件名消耗量组成图10 初步E-R图1.5 关系数据库1. 关系模型关系模型:用二维表的形式表示实体和实体间联系的数据模型。关系模型具有以下优点:(1)数据结构单一 ,一个关系就是一个二维表。(2)关系规范化,并建立在严格的理论基础上(3)概念简单,操作方便例如表1-2 ,学生学籍表是关系模型关系数据库是支持关系模型的数据库系统学号 姓名 性别 出生日期 班级10101001 张永峰 0 1993-8-1 电子商务10110101002 何小丽 1 1992-11-3 电子商务10110101003 张红宇 0 1992-8-21 电子商务10110102001 王斌 1 1991-7-14 网络技术10110102002 包玉明 1 1993-11-15 网络技术10110102003 孙平平 0 1992-2-27 网络技术10110102004 翁静静 0 1992-5-9 网络技术10111101001 刘淑芳 0 1994-6-10 电子商务11111101002 王亚旭 1 1993-3-18 电子商务11111101003 高磊 1 1993-5-11 电子商务111表1-2 学生学籍表1. 关系中的基本名词1) 元组:关系表中的每一横行称作一个元组,组成元组的元素为分量。2) 属性:关系中的每一列称为一个属性。3) 候选码、主码、全码:若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称为它为多属性码。若关系中只有一个候选码,且这个候选码中包括全部属性,则这种候选码为全码。4) 主属性和非主属性:关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。1.5.1 关系模型及其定义1.5.1关系模型及其定义2. 数据库中基本关系的性质1) 同一属性的数据具有同质性,即列是同质的。如表1-3所示,其中,第三条记录(工商系,玉兔精,女,1988-11-22,0824006)就是一个不满足要求的记录,应更正为(0824006,玉兔精,女,1988-11-22,工商系),更正后的结果有效地保证了同一属性的数据是同质的。学号 姓名 性别 出生日期 所在系1122101 孙大圣 男 1990-01-01 计算机系1023003 白骨精 女 1992-02-02 音乐系工商系 玉兔精 女 1988-11-22 0824006表1-31.5.1关系模型及其定义2) 同一关系的属性名具有不能重复性。3) 关系中的列位置具有顺序无关性。4) 关系具有元组无冗余性。如表1-4所示,有阴影的两组记录数据是重复出现,应去掉重复的,保证关系中每个元组具有唯一性。表1-4学号 姓名 性别 出生日期 所在系1122101 孙大圣 男 1990-01-01 计算机系1023003 白骨精 女 1992-02-02 音乐系1023003 白骨精 女 1992-02-02 音乐系0824006 玉兔精 女 1988-11-22 工商系1.5.1关系模型及其定义5) 关系中的元组位置具有顺序无关性。6) 关系中每一个分量都必须是不可分的数据项。如表1-5所示,加阴影的部分在关系中就是不合法的,也就是说,表1-5不是关系型的。学号 姓氏 名字 性别 出生日期 所在系1122101 孙大圣 男 1990-01-01 计算机系1023003 白骨精 女 1992-02-02 音乐系0824006 玉兔精 女 1988-11-22 工商系表1-5三、关系的完整性1. 关系模型的域完整性关系模型的域完整性指属性的取值范围,如性别取值应为男或女。2. 关系模型的实体完整性(Entity Integrity)若属性A是基本关系R的主属性,则属性A的值不能为空值。说明如下:1) 实体完整性能够保证实体的唯一性。2) 实体完整性能够保证实体的可区分性。例如:在课程表(课程号,课程名,教师,周课时数,备注)中,“课程号”属性为主键,则“课程号”不能取相同的值,也不能取空值。1.6 关系数据库3. 关系模型的参照完整性1) 外码和参照关系设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或目标关系。例如,“基层单位数据库”中有“职工”和“部门”两个关系,其关系模式如下:职工(职工号,姓名,工资,性别,部门号);部门(部门号,名称,领导人号)其中:主码用下划线标出,外码用曲线标出。再例,在学生课程体系中,关系模式表示为:学生(学号,姓名,性别,年龄);课程(课程号,课程名,学分);选修(学号,课程号,成绩)其中:主码用下划线标出。1.6 关系数据库2) 参照完整性规则若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(关系R和S不一定是不同的关系),则对于关系R中每个元组在属性F上的值必须为:a.或者取空值(F中的每个属性值均为空);b.或者等于S中某个元组的主键值。例如:职工(职工号,姓名,性别,部门号,上司,工资,佣金) 部门(部门号,名称,地点)其中职工号是“职工”关系的主键,部门号是外键,而“部门”关系中部门号是主键,则职工关系中的每个元组的部门号属性只能取下面两类值:第1类:空值,表示尚未给该职工分配部门;第2类:非空值,但该值必须是部门关系中某个元组的部门号值,表示该职工不可能分配到一个不存在的部门中,即被参照关系“部门”中一定存在一个元组,它的主键值等于该参照关系“职工”中的外键值。1.6 关系数据库4.用户定义的完整性用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。域完整性、实体完整性、参照完整性和用户定义的完整性是关系模型中必须满足的完整性约束条件,只要是关系数据库系统就应该支持域完整性、实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是对某些具体关系数据库的约束条件。例如:选课表(课程号,学号,成绩),在定义关系选课表时,可以对成绩这个属性定义必须大于等于0的约束。1.6 关系数据库1.6 关系数据库学生.学号 姓名 出生日期 所在班级 选课.学号 课程名 成绩11101001 刘淑芳 1994-6-10 电子商务111 11101001 文学欣赏 7811101001 刘淑芳 1994-6-10 电子商务111 11101001 中国历史文化 6710102002 包玉明 1993-11-15 网络技术101 10102002 视频编缉 95学生.学号 姓名 出生日期 所在班级 课程名 成绩11101001 刘淑芳 1994-6-10 电子商务111 文学欣赏 7811101001 刘淑芳 1994-6-10 电子商务111 中国历史文化 6710102002 包玉明 1993-11-15 网络技术101 视频编缉 95学生 选课学生.学号=选课.学号学生 选课1.6.3 关系数据库规范化理论1.6 关系数据库在设计关系数据库时,经常采用一种自下而上的设计方法。这种方法是对涉及的所有数据进行收集,然后按照栏目进行归纳分类。事实上,设计数据库就是为所存储的数据设计一种合适的逻辑结构。在关系数据库中,即是设计出合适的关系表以及表中的属性。如表1-8所示,其关系模式为:学生选课表(学号,姓名,性别,出生日期,所在班级,课程号,课程名,成绩)1.6 关系数据库学号 姓名 性别 出生日期 所在班级 课程号 课程名 成绩10101002 何小丽 1 1992-11-3 电商101 C038 Java语言 7510101002 何小丽 1 1992-11-3 电商101 C220 网页制作 9010101002 何小丽 1 1992-11-3 电商101 C108 Flash 8811101003 高磊 0 1993-5-11 计应111 C060 JSP 8011101003 高磊 0 1993-5-11 计应111 C200 数据结构 6911101003 高磊 0 1993-5-11 计应111 C038 Java语言 93表1-8 学生选课表在该关系模式中存在如下问题:数据冗余插入异常删除异常更新异常1.函数依赖的概念关系模式的完整表示是一个五元组:R〈U,D,Dom,F〉其中:R为关系名;U为关系的属性集合;D为属性集U中属性的数据域;Dom为属性到域的映射;F为属性集U的数据依赖集。函数依赖设R〈U〉是属性集U上的关系模式,X、Y是U的子集。若对于R〈U〉的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y。1.6 关系数据库例如,对于教学关系模式:教学〈U,F〉;U={学号,姓名,年龄,性别,系名,系主任,课程名,成绩};F={学号→姓名,学号→年龄,学号→性别,学号→系名,系名→系主任,(学号,课程名)→成绩}。若X→Y,但Y X,则称X→Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。若 X→Y,但Y X,则称X→Y是平凡的函数依赖。若X→Y,则X叫做决定因素(Determinant),Y叫做依赖因素(Dependent)。若X→Y,Y→X,则记作X Y。若Y不函数依赖于X,则记作X Y。1.6 关系数据库完全函数依赖和部分函数依赖在R〈U〉中,如果X→Y,并且对于X的任何一个真子集X‘,都有X‘ Y,则称Y对X完全函数依赖,记作:X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作: X→Y。例如,在教学关系模式:(学号,课程名)→成绩,(学号,课程名)→姓名传递函数依赖在R〈U〉中,如果X→Y,Y X,Y X,Y→Z,则称Z对X传递函数依赖。传递函数依赖记作X → Z。例如,在教学模式中,因为:学号→系名,系名→系主任;所以:学号 → 系主任。1.6 关系数据库TTFp2.范式和规范化1)1NF(第一范式)和2NF(第二范式)如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,记作R 1NF。若R 1NF,且每一个非主属性完全依赖于码,则R 2NF。在教学关系模式中:属性集={学号,姓名,年龄,系名,系主任,课程名,成绩}。函数依赖集={学号→姓名,学号→年龄,学号→性别,学号→系名,系名→系主任,(学号,课程名)→成绩}。主码=(学号,课程名)。非主属性=(姓名,年龄,系名,系主任,成绩)。非主属性对码的函数依赖:{(学号,课程名)→姓名,(学号,课程名)→年龄,(学号,课程号)→性别 ,(学号,课程名)→系名,(学号,课程名)→系主任;(学号,课程名)→成绩}。显然,教学关系模式不服从2NF,即:教学 2NF。1.6 关系数据库2)3NF(第三范式)设关系模式R〈U,F〉,仅当R是2NF,且每个非主属性都非传递函数依赖于主码,则称R〈U,F〉 3NF。可以证明,若R 3NF,则每一个非主属性既不部分函数依赖于主码,也不传递函数依赖于主码。考查教学关系模式,由于存在:学号→系名,系名→系主任。则: 学号 → 系主任。所以教学 3NF。如果分解为:学生(学号,姓名,年龄,性别,系名);教学系(系名,系主任)。显然分解后的各子模式均属于3NF。1.6 关系数据库T1.7.1 数据库设计的步骤1.7 数据库设计图 1-17 数据库设计步骤需求分析阶段一、系统需求常用的分析方法(1)自顶向下的设计方法。先定义全局概念结构的框架,然后逐步细化为完整的全局概念结构。(2)自底向上的设计方法。先定义各局部应用的概念结构,后将它们集成,得到全局概念结构。(3)逐步扩张的设计方法。先定义最重要的核心部分,后向外扩充,生成其他概念结构。(4)混合策略设计的方法。即采用自顶向下与自底向上相结合的方法。1.7 数据库设计二、系统需求调查的方法(1)开调查会通过与用户座谈的方式来了解业务活动情况及用户需求。(2)设计调查表请用户填写数据库设计人员可以提前设计一个合理的、详细的业务活动及数据要求调查表,并将此表发给相关的用户。(3)查阅现实世界的数据记录查阅与原系统有关的数据记录,包括帐本、档案或文献等。(4)询问对某些调查中的问题,可以找专人询问。(5)请专人介绍请业务熟练的专家或用户介绍业务专业知识和业务活动情况,设计人员从中了解并询问相关问题。(6)跟班作业数据库设计人员亲身参加业务工作。1.7 数据库设计三、系统需求的调查步骤(1)了解现实世界的组织机构情况弄清所设计的数据库系统与哪些部门相关,这些部门以及下属各个单位的联系和职责是什么。(2)了解相关部门的业务活动情况各部门需要输入和使用什么数据;在部门中是如何加工处理这些数据的;各部门需要输出什么信息;输出到什么部门;输出数据的格式是什么。(3)确定新系统的边界哪些功能现在就由计算机完成;哪些功能将来准备让计算机完成;哪些功能或活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。1.7 数据库设计四、系统需求调查的内容(1) 数据库中的信息内容数据库中需存储哪些数据,包括用户将从数据库中直接获得或间接导出的信息内容和性质。(2)数据处理内容用户要完成什么数据处理功能;用户对数据处理响应时间的要求;数据处理的工作方式。(3)数据安全性和完整性要求数据的保密措施和存取控制要求;数据自身的或数据间的约束限制。1.7 数据库设计五、数据字典1.7 数据库设计数据来源数据存储来源数据输出来源处 理数据流处 理数据流处 理图1-18 系统高层抽象图数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。概念结构的设计使用E-R模型来进行概念模型的设计通常分两步进行,首先是建立局部概念模型,然后综合局部概念模型,成为全局概念模型。1.设计分E-R图概念结构设计是利用抽象机制对需求分析阶段收集到的数据分类、组织(聚集),形成实体集、属性和码,确定实体集之间的联系类型(一对一、一对多或多对多的联系),进而设计分E-R图。常用数据抽象的三种方法(1) 分类: 定义某一类概念作为现实世界中一组对象的类型,这些对象具有某些共同的特性和行为。在E-R模型中,实体集就是这种抽象。(2) 聚集:定义某一类型的组成部分,它抽象了对象内部的类型和“组成部分”的语义。(3) 概括:定义类型之间的一种子集联系,它抽象了类型之间的“所属”的语义。1.7 数据库设计2.合并分E-R图,生成初步E-R图(实例请参考“关系模型”中相关内容)合并时主要在以下三个方面进行概念的统一:(1) 属性冲突A.属性域冲突,即属性值的类型、取值范围或取值集合不同。B.属性取值单位冲突。(2) 命名冲突A.同名异义冲突,即不同意义的对象在不同的局部应用中具有相同的名字。B.异名同义冲突,即意义相同的对象在不同的局部应用中有不同的名字。(3) 结构冲突A.同一对象在不同的应用中具有不同的抽象。B.同一实体在不同分E-R图中的属性组成不一致。C.实体之间的联系在不同的分E-R图中呈现不同的类型。3.消除不必要的冗余,设计基本E-R图1.7 数据库设计逻辑结构的设计逻辑结构阶段设计的任务是将基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。其过程为:将概念结构转换为现有DBMS支持的关系、网状或层次模型中的某一种数据模型;从功能和性能要求上对转换的模型进行评价,看它是否满足用户要求;对数据模型进行优化。概念模型向关系模型的转换规则如下:1.实体集的转换规则概念模型中的一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构是关系模式。1.7 数据库设计2.实体集间联系的转换规则(1) 1:1联系的转换方法a) 将1:1联系转换为一个独立的关系:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。b) 将1:1联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。1.7 数据库设计【例3-1】将图1-19中E-R图转换为关系模型。方案1:联系形成的关系独立存在:职工(职工号,姓名,年龄);产品(产品号,产品名,价格);负责(职工号,产品号).方案2:“负责”与“职工”两关系合并:职工(职工号,姓名,年龄,产品号);产品(产品号,产品名,价格);方案3:“负责”与“产品”两关系合并:职工(职工号,姓名,年龄);产品(产品号,产品名,价格,职工号)。负责1产品产品号产品名价格1职工职工号姓名年龄图1-191.7 数据库设计(2) 1:n联系的转换方法一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码;另一种方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。1.7 数据库设计【例3-2】将图1-20含有1:n联系的E-R图转换为关系模型。1.7 数据库设计方案1:联系形成的关系独立存在。仓库(仓库号,地点,面积);产品(产品号,产品名,价格);仓储(仓库号,产品号,数量)。.方案2:联系形成的关系与n端对象合并。仓库(仓库号,地点,面积);产品(产品号,产品名,价格,仓库号,数量)。仓储n产品产品号产品名价格1仓库仓库号地点面积数量图1-20(3) m:n联系的转换方法在向关系模型转换时,一个m:n联系转换为一个关系。转换方法为:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。1.7 数据库设计【例3-4】将图1-21中含有m:n二元联系的E-R图,转换为关系模型。1.7 数据库设计转换的关系模型为:学生(学号,姓名,年龄,性别);课程(课程号,课程名,学时数);选修(学号,课程号,成绩)。学生学号姓名年龄性别课程课程号课程名学时数选修mn成绩图1-21(4) 三个或三个以上实体集间的多元联系的转换方法a) 对于一对多的多元联系,转换为关系模型的方法是修改1端实体集对应的关系,即将与联系相关的其他实体集的码和联系自身的属性作为新属性加入到1端实体集中。b) 对于多对多的多元联系,转换为关系模型的方法是新建一个独立的关系,该关系的属性为多元联系相连的各实体的码以及联系本身的属性,码为各实体码的组合。1.7 数据库设计【例3-6】将图1-22中含有多实体集间的多对多联系的E-R图转换为关系模型。1.7 数据库设计供应商供应商号供应商名地址零件零件号零件名单价产品产品号产品名型号供应nmp数量图1-22 多实体集间多对多联系图1-22转换后的关系模型为:供应商(供应商号,供应商名,地址);零件(零件号,零件名,单价);产品(产品号,产品名,型号);供应(供应商号,零件号,产品号,数量)。物理结构设计系统的物理结构设计是在逻辑设计完成后进行。物理设计是在计算机的物理设备上确定应采取得数据存储结构和存取方法,以及如何分配存储空间等问题。当确定之后,应用系统所选用的DBMS提供的数据定义语言把逻辑设计的结果(数据库结构)描述出来,并将源模式变成目标模式。由于目前使用的DBMS基本上是关系型的,物理设计的主要工作是由系统自动完成的,用户只要关心索引文件的创建即可。尤其是对危机关系数据库用户来说,用户可做的事情很少,用户只需用DBMS提供的数据定义语句建立数据库结构。1.7 数据库设计数据库的实施、运行和维护完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库了,这就是数据库的实施阶段。在数据部分入库后就可以对数据库系统进行联合调试,即数据库的试运行。试运行合格后,数据库的开发工作基本完成,就可以投入正式运行。此后,根据各方面因素的变化,需要不段的对数据库本身做经常性的维护工作,该工作交由DBA来完成,主要包含:数据库的转储和恢复;数据库的安全性、完整性控制;数据库性能的监督、分析和改造;数据库的重组织和重构造四个方面。1.7 数据库设计1.7.2 数据库设计的实例以学生选课系统为例。1. 基本需求分析某学校设计学生教学管理系统(暂不包括教师教学管理部分)。学生实体包括学号、姓名、性别、出生日期、籍贯,每名学生选择一个主修专业,专业包括专业编号、名称和类别,一个专业属于一个院系,一个院系可以有若干个专业。院系信息要存储院系号、院系名、主任。教学管理还要管理课程表和学生成绩。课程表包括课程号、课程名、学分,每门课程由一个院系开设。学生选修的每门课程获得一个成绩。1.7 数据库设计2.概念结构设计阶段1)该系统中各实体的属性组成如图1-23所示。1.7 数据库设计学生学号姓名性别籍贯出生日期专业专业号专业名类别课程课程号课程名学分院系主任院系名院系号图1-23 各实体的属性2)经合并各分E-R图并消除冗余后的基本E-R图如图1-24所示。1.7 数据库设计nmn1学生课程院系选修成绩开设专业主修设置1n1n图1-24 教学管理系统E-R图3.逻辑结构设计阶段由图1-24教学管理系统E-R图转换的关系模型是:学生(学号,姓名,性别,出生日期,籍贯,专业号)专业(专业号,专业,专业类别,院系号)院系(院系号,院系名,主任)课程(课程号,课程名,学分,院系号)成绩(学号,课程号,成绩)1.7 数据库设计4. 物理设计阶段基于sql server 2008的数据库结构设计如下。指定数据库文件的名称,并为设计好的关系模型设计表结构。数据库文件保存在“D:\教学管理系统\db”文件夹中,数据库文件名:教学管理系统.MDB。表包括:院系、专业、学生、课程、成绩单。对应表结构如表1-9至表1-13所示。1.7 数据库设计1.7 数据库设计字段名 类型 宽度 小数 主键/索引 参照表 约束 Null值院系号 char 8 ↑(主)院系名 varchar 16主任 varchar 16 √字段名 类型 宽度 小数 主键/索引 参照表 约束 Null值专业号 char 8 ↑(主)专业 varchar 16专业类别 char 8 ↑院系号 char 8 院系表1-9 院系表1-10 专业1.7 数据库设计字段名 类型 宽度 小数 主键/索引 参照表 约束 Null值学号 char 8 ↑(主)姓名 varchar 8性别 char 2 男 or 女出生日期 smalldatetime专业号 char 8 专业 √籍贯 varnchar 20 √表1-11 学生1.7 数据库设计字段名 类型 宽度 小数 主键/索引 参照表 约束 Null值课程号 char 8 ↑(主)课程名 varchar 20学分 double 1院系号 char 8 院系字段名 类型 宽度 小数 主键/索引 参照表 约束 Null值学号 char 8 ↑ 学生课程号 char 8 ↑ 课程成绩 Float 4 1 >=0 and <=100 √表1-12 课程表1-13 成绩单信息、数据、数据库、数据库管理系统、数据语言、数据库管理员、数据库系统的定义及关系数据库系统的发展阶段:人工管理、文件管理和数据库管理常用关系数据库的应用软件系统E-R图的设计数据模型的种类:层次模型、网状模型和关系模型1NF、2NF、3NF的定义;关系数据库规范化的必要性、方法和过程。数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的运行和维护;掌握各阶段的任务和实现方法本章小结 展开更多...... 收起↑ 资源预览