1、数据库设计 本章主要内容 数据库设计(Database Design,简记为DBD)是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立DB结构和DB应用系统。本章主要讨论DBD的方法和步骤,详细介绍DBD的全过程。本章的重点有两个:概念设计中的ER模型设计方法。设计ER模型是一件实用性很强的工作,ER模型应该充分反映用户的需求。逻辑设计中ER模型向关系模型转换的规则。本章主要内容(续)(1)DBS生存期及其7个阶段的任务和工作,DBD过程的输入和输出。(2)概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。(3)ER模型的基本元素,属性的分类,联系的元数、连通词、基数。采
2、用ER方法的概念设计步骤。(4)ER模型到关系模型的转换规则。采用ER方法的逻辑设计步骤。数据库设计7.1 数据库设计概述7.2 规划7.3 需求分析7.4 概念设计7.5 数据库逻辑结构设计及优化7.6 数据库的物理设计 7.7 数据库的实现7.8 数据库的运行与维护工作7.9 Power Designer辅助设计工具本章小结7.1 数据库设计概述软件工程 人们认为,应该用科学知识、工程方面的规范指导软件开发的过程,以提高软件质量和开发效率,降低开发成本。软件生存期从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。数据库系统生存期数据库应用系统从开始规划
3、、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。数据库工程设计方法数据库设计的输入输出隶属关系规划需求分析系统设计 程序编制 调试 运行维护 软件生存期运行和维护 实现 物理设计逻辑设计概念设计需求分析规划数据库生存期7.1.1 数据库系统生存期 7.1.2 数据库设计方法 1)直观设计法 直观设计法主要凭借设计者对整个系统的了解和认识,以及平时所积累的经验和设计技巧,完成对某一数据库系统的设计任务。这样的方法具有周期短、效率高、操作简便、易于实现等优点。这种方法主要是用于简单的小型系统。2)规范化设计法 规范化设计法将数据库设计分为若干阶段,明确规定各阶段的任务,采用“自顶向下、
4、分层实现、逐步求精”的设计原则,结合数据库理论和软件工程设计方法,实现设计过程的每一细节,最终完成整个设计任务。常用的规范化设计方法主要有:基于实体联系的设计方法(常用方法)基于视图概念的数据库设计方法基于3NF的数据库设计方法等。3)计算机辅助设计法 计算机辅助设计法是指在数据库设计的某些过程中,利用计算机和一些辅助设计工具,模拟某一规范设计方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。例如在需求分析完成后,可以使用POWERDESIGNER、E-Rwin等辅助工具产生E-R图,并将E-R图转换为关系数据模型,生成数据库结构,再编制相应的应用程序,从而缩短数据库设计周
5、期。4)自动化设计法 设计人员只要熟悉某种MIS辅助设计软件的使用,通过人机会话,输入原始数据和有关要求,无须人工干预,就可以由计算机系统自动生成数据库结构及相应的应用程序。由于该设计方法基于某一MIS辅助设计系统,从而受限于某种DBMS,使得最终产生的数据库及其软件系统带有一定的局限性。处理需求处理需求DBMSDBMS特征特征总体信息需求总体信息需求第第5步步物理设计物理设计第第3步步概念设计概念设计第第4步步逻辑设计逻辑设计第第1步步规划规划第第2步步需求描述和分析需求描述和分析硬件和硬件和OSOS特征特征物理数据库结构物理数据库结构需求说明书需求说明书 信息结构信息结构(独立于硬件、软件
6、)(独立于硬件、软件)逻辑数据库结构逻辑数据库结构(DBMSDBMS能处理的)能处理的)应用程序说明书应用程序说明书7.1.3 数据库设计的基本步骤 7.2 规划目标进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。规划阶段的三个步骤系统调查:对企业组织作全面的调查,画出组织层次图,以了解企业的组织结构。可行性分析 从技术、经济、效益、法律等方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家进行讨论其可行性。确定数据库系统的总目标和制定项目开发计划分析企业的基本业务功能,确定数据库支持的范围,是建立一个综合的数据库,还是建立若干
7、个专门的数据库。在实际操作中,可以建立一个支持组织全部活动的包罗万象的综合数据库;也可以建立若干个范围不同的公用或专用数据库。子系统子系统1 1子系统子系统2 2子系统子系统n n公用公用数据库数据库1 1公用公用数据库数据库2 2专用专用数据库数据库1 1专用专用数据库数据库m规划报告数据库规划工作完成以后,应写出详尽的可行性分析报告和数据库系统规划纲要,内容包括:信息范围;信息来源;人力资源;设备资源;软件及支持工具资源;开发成本估算;开发进度计划;现行系统向新系统过渡计划等。7.3 需求分析目标对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数
8、据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。需求分析工作分析用户活动产生,产生业务流程图业务流程图确定系统范围,产生系统范围图系统范围图分析用户活动涉及的数据,产生数据流图数据流图分析系统数据,产生数据字典数据字典7.3.1 需求描述与分析 确定全部的用户需求是一件很困难的事情:第一,系统本身的需求是变化的,用户的需求必须不断调整,使之与这种变化一致。第二,由于用户缺少计算机信息系统设计方面的专业知识,要表达他们的需求很困难。特别是很难说清楚某部分工作的功能与处理过程。第三,要调动用户的积极性,使他们能积极参与系统的分析与设计工作相当困难。我们设计
9、人员必须首先认识到在整个需求分析以及系统设计过程中,用户参与的重要性。需求分析中调查分析的方法很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。还应该考虑系统将来要发生的变化,充分考虑到系统可能的扩充和变动,以减少系统维护的代价。7.3.2 需求分析阶段的输入和输出 需求说明书需求说明书总体信息需求总体信息需求处理需求处理需求第第1步:需求分析步:需求分析7.3.3 需求分析的步骤 1)需求信息的收集(1)调查的目的 首先,要了解组织的机构设置,主要业务活动和职能。其次,要确定组织的目标,大致工作流程和任务范围划分。(2)调查的内容 外部要求 业务
10、现状 组织机构等(3)调查方式 开座谈会;跟班作业;请调查对象填写调查表;查看业务记录、票据;个别交谈。2)需求信息的分析整理(1)业务流程分析 业务流程分析的目的是获得业务流程及业务与数据联系的形式描述。一般采用数据流分析法,分析结果以数据流图(data flow diagram,DFD)表示。一个DFD由数据流、处理过程、数据存储等部分组成。输入处理教师成绩登录输出处理原始输入学生成绩表格式化输入输出教务处格式化输出学生1选课2上课3考试教师表课程表教材教室考场试卷选课表成绩表任课教师信息课程介绍选用教材教室安排考场试卷考试成绩平时成绩选课名单已选课程名单选课单允许参加考试申请选课同意/不
11、同意选课教师核对课程表同意/不同意接受考场安排教室安排评定成绩评定考试成绩教室安排成绩单(2)分析结果的描述除了DFD以外,还要用一些规范表格进行补充描述。为了清楚地描述需求分析的结果,需要整理出下列清单:数据项清单:列出每一个数据项的名称、含义、来源、类型和长度等。业务活动清单:列出每一部门中最基本的工作任务,包括任务的定义、操作类型、执行频度、所属部门及涉及的数据项等。完整性、一致性要求。安全性要求。响应时间要求。预期变化的影响。3)评审 评审的目的在于确认某一阶段的任务是否全部完成,以避免重大的疏漏或错误。7.3.4 数据字典 数据字典(data dictionary,DD)是对系统中数
12、据的详尽描述,它提供对数据库数据描述的集中管理。1)数据项 包括数据项名、含义、别名、类型、长度、取值范围以及与其它数据项的逻辑关系。数据项名:数据项名:选课单号选课单号说明:说明:标识每张选课单标识每张选课单类型:类型:CHAR(8)长度:长度:8别名:别名:选课单号选课单号取值范围:取值范围:00000001999999992)数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,或有若干个数据项和数据结构混合组成。它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。数据结构名:考试课程说明:作为考场安排的组成部分,说明某门课程哪位老 师代,以及所选学生人
13、数。组成:课程号 教师号 选课人数3)数据流数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。数据流名:考场安排说明:由各课程所选学生数,选定教室、时间,安排考场来源:考试去向:教师数据结构:考场安排 考试课程 考试时间 教学楼 教室编号4)数据存储 数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、数据量、存取频度和存取方式。数据存储名:课程表说明:对每门课程的名称、学分、先行课程
14、号和摘要描述输出数据流:课程介绍数据描述 :课程号 课程名 学分数 先行课程号 摘要数 量:每年500种存 取 方 式:随机存取5)处理进程 对处理进程的描述包括处理进程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。处理进程:选课说明:对要选某门课程的每一个学生,根据已选修课程 确定其是否可选该课程。再根据学生选课的人数选择适当的教室,制定选课单输入:学生选课 可选课程 已选课程输出:选课单程序提要:a.对所选课程在选课表中查找其是否已选此课程 b.若未选过此课程,则在选课表中查找是否已选此 课程的先行课程 c.若a、b都满足,则在选课表中增加一条选课记录
15、 d.处理完全部学生的选课处理后,形成选课单7.4 概念设计目标概念设计的目标是产生反映企业组织信息需求的数据库概念结构,即概念模式。概念模式是独立于计算机硬件结构,独立于支持数据库的DBMS。为什么需要概念设计概念设计的主要步骤进行数据抽象,设计局部概念模式将局部概念模式综合成全局概念模式评审7.4.1 概念设计的必要性 在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,至少有以下几个好处:各阶段的任务相对单一化,设计复杂程度大大降低,便于组织管理。不受特定的DBMS的限制,也独立于
16、存储安排和效率方面的考虑,因而比逻辑模式更为稳定。概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而才有可能准确地反映用户的信息需求。应用应用1应用应用3应用应用2概念模式概念模式概念要求概念要求概念要求概念要求概念要求概念要求应用应用1 1应用应用3 3应用应用2 2逻辑模式逻辑模式内模式内模式外模式外模式3外模式外模式2外模式外模式1综合综合转换转换映像映像映像映像数据库的各级模式 E-R图设计方法(1)自顶向下 根据用户需求,先定义全局概念结构的框架,然后分层展开,逐步细化。(2)自底向上 根据用户的每一具体需求,先定义各局部应用的概念结构,然后将它们集成,逐步抽象引最
17、终产生全局概念结构。(3)逐步扩张 先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至全局概念结构。(4)混合方式 将自顶向下和自底向上相结合,先用自顶向下方式设计一个全局概念结构框架,再以它选基础,采用自底向上法集成各局部概念结构。7.4.2 概念设计的主要步骤 1)进行数据抽象,设计局部概念模式先从个别用户的需求出发,为每个用户建立一个相应的局部概念结构。设计概念结构时,常用的数据抽象方法是“聚集”和“概括”。2)将局部概念模式综合成全局概念模式综合各局部概念结构就可得到反映所有用户需求的全局概念结构。在综合过程中,主要处理各局部模式对各种对象定义的不一致问
18、题。在结构合并时,解决冗余问题,对信息需求的再调整与分析。3)评审消除了所有冲突后,就可把全局结构提交评审。用户评审DBA及应用开发人员评审7.4.3 采用ER方法的数据库概念设计 在设计数据库概念结构时,为了更好地模拟现实世界,一个有效的策略是“分而治之”,即先分别考虑各个用户的信息需求,形成局部概念结构,然后再综合成全局结构。需求分析结果需求分析结果确定局部结构范围确定局部结构范围实体定义实体定义联系定义联系定义属性分配属性分配还有局部还有局部结构待分析结构待分析有有无无进入全局进入全局ER模式设计模式设计1)设计局部ER模式(1)确定局部结构范围 一种是依据系统的当前用户进行自然划分。例
19、如,对一个企业的综合数据库,按决策部门、销售部门、生产部门、技术部门和供应部门分别设计各自的局部ER模式。另一种是按用户要求数据库提供的服务归纳成几类,为每类应用设计一个局部ER模式。例如,学校的教师数据库可以按提供的服务分为以下几类:教师的档案信息的查询。对教师的专业结构进行分析。对教师的职称、工资变化的历史分析。对教师的学术成果查询分析。局部结构范围的确定要考虑下述因素:范围的划分要自然,易于管理。范围之间的界面要清晰,相互影响要小。范围的大小要适度。(2)确定实体 通常可依据下列两个基本规则来区分实体和属性:实体与属性之间的联系只能是1:n的;属性本身不再具有需要描述的信息或与其他事物具
20、有联系。现实世界中的事物能够作为属性对待的,应尽量作为属性处理,以简化E-R模型。物资物资编号编号名称名称规格规格单价单价仓库号仓库号存放数量存放数量图图(a)仓库作为物资实体的属性仓库作为物资实体的属性 物资物资编号编号名称名称规格规格单价单价仓库号仓库号存放数量存放数量仓库仓库存放存放地点地点面积面积图图(b)仓库作为单独的实体仓库作为单独的实体(3)联系设计 联系集联系集 联系集是联系集是n n(n2n2)个实体集上的)个实体集上的数学关系,这些实体集不必互异。数学关系,这些实体集不必互异。联系的元数联系的元数 一个联系涉及到的实体集个数。一个联系涉及到的实体集个数。联系的连通词联系的连
21、通词 涉及到的实体集之间实体对应的涉及到的实体集之间实体对应的方式方式。实体的基数实体的基数 有两个实体集有两个实体集E1E1和和E2E2,E1E1中每中每个实体与个实体与E2E2中有联系实体的数中有联系实体的数目的最小值目的最小值minmin和最大值和最大值maxmax,称为称为E1E1的基数,用(的基数,用(minmin,maxmax)形式表示形式表示。问题:运动员根据其得分来排定名次。问题:运动员根据其得分来排定名次。在名次排列中,排在他前面只有一个在名次排列中,排在他前面只有一个人排在他后面也只有一个人人排在他后面也只有一个人 运动员运动员编号编号姓名姓名性别性别名次名次顺序顺序11图
22、图7.9 7.9 一元联系中的一元联系中的1:11:1联联系系 职工之间的上下级联系职工之间的上下级联系 职工职工工号工号姓名姓名年龄年龄性别性别领导领导1N图图7.10 7.10 一元联系中的一元联系中的1:N1:N联系联系 工厂的零件之间存在着组合关系,一工厂的零件之间存在着组合关系,一种零件由许多种子零件组成,而一种种零件由许多种子零件组成,而一种零件也可以是其他零件的子零件零件也可以是其他零件的子零件 零件零件零件号零件号零件名零件名规规格格数量数量组成组成MN图图7.11 7.11 一元联系中的一元联系中的M:NM:N联系联系 某商业集团中,商店、仓库、某商业集团中,商店、仓库、商品
23、之间的进货联系商品之间的进货联系 图图7.12 7.12 三元联系中的三元联系中的M:N:PM:N:P联系联系 仓库仓库商品商品商店商店仓库号仓库号仓库名仓库名地址地址数量数量商店号商店号商品名商品名商品号商品号商店名商店名日期日期进货进货MNP学校里规定每学期学生至少选修学校里规定每学期学生至少选修1 1门课程,门课程,最多选修最多选修6 6门课程;每门课程至多有门课程;每门课程至多有5050人人选修,最少可以没人选修选修,最少可以没人选修 图图7.13 7.13 联系的连通词和实体的基数联系的连通词和实体的基数学生学生课程课程选课选课M(1,6)N(0,50)(4)属性分配基本属性和复合属
24、性(可否再分)基本属性和复合属性(可否再分)单值属性和多值属性(对一个实单值属性和多值属性(对一个实体对象是否只能取一个值)体对象是否只能取一个值)多值属性的处理多值属性的处理将原来的多值属性用几个新将原来的多值属性用几个新的单值属性来表示。的单值属性来表示。将原来的多值属性用一个新将原来的多值属性用一个新的实体类型表示的实体类型表示 导出属性导出属性空值空值图图7.4 7.4 地址属性的层次结构地址属性的层次结构邮政编码邮政编码省(市)名省(市)名地地 址址区区 名名街街 道道家庭地址家庭地址门牌号码门牌号码图图7.8 7.8 导出属性的表示导出属性的表示工号工号职职 工工姓名姓名基本工资基
25、本工资奖金奖金房租房租实发工资实发工资图图7.6 7.6 多值属性的变换(多值属性的变换(1 1)零件编码零件编码零零 件件零件名零件名供应商供应商规格规格进货价格进货价格经销价格经销价格代销价格代销价格批发价格批发价格零售价格零售价格图图7.7 7.7 多值属性的变换(多值属性的变换(2 2)零件编码零件编码零零 件件零件名零件名供应商供应商规格规格进货价格进货价格销售性质销售性质售货价格售货价格存在存在销售价格销售价格1N图图7.5 7.5 多值属性的表示多值属性的表示零件编码零件编码零零 件件零件名零件名供应商供应商规格规格进货价格进货价格销售价格销售价格零件编码局部ER模式设计综述 需
26、求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计图7.18 局部ER模式设计范围的划分要自然,易于管理;范围的大小要适度。太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则:属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。属性分配的原则:当多个实体类型用到同一属性时,一般把属性分配给那些使用频
27、率最高的实体类型,或分配给实体值少的实体类型。有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块局部ER图其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析学生子模块导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图其它局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块局部ER图图7.22 课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PNER模型的操作教师号教师号姓名姓名出生日期出
28、生日期职务职务工资工资奖金奖金教师教师(a)教师号教师号姓名姓名出生日期出生日期教师不变信息教师不变信息职务职务工资工资奖金奖金教师号教师号教师变动信息教师变动信息(b)图图7.15 7.15 实体类型的垂直分裂实体类型的垂直分裂教师教师课程课程主讲主讲辅导辅导1MNN图图7.16 7.16 联系类型的分裂联系类型的分裂教师教师课程课程主讲主讲MN(a)(b)图图7.17 7.17 不合法的合并不合法的合并B(a)ACA-CB-CACA-B-C(b)B包括实体类型、联系类型和属性的分裂分裂、合并合并、增删增删等等2)设计全局 ER模式无无图图7.207.20全局全局ERER模式设计模式设计 局
29、部局部ER模式模式确定公共实体类型确定公共实体类型合并两个局部合并两个局部ER模式模式检查并消除冲突检查并消除冲突还有未合还有未合并的局部并的局部模式模式有有还有冲突吗还有冲突吗有有属性冲突:如,重量单位有的用公斤,有的用克。结构冲突:同一对象在不同应用中的不同抽象;同一实体在不同局部ER图中属性的个数或次序不同;实体之间的联系在不同的局部ER图中呈现不同的类型 命名冲突:属性名、实体名、联系名之间存在同名异义或异名同义冲突结构冲突解决方式1 对于同一对象在不同的局部E-R模型中产生不同的抽象:把属性变为实体或实体变为属性,使同一对象具有相同的抽象,变换后产生的结果仍然要遵守7.4.3节中所阐
30、述的两个基本规则。(一是实体与属性之间的联系只能是1:n的;二是属性本身不再具有需要描述的信息或与其他事物具有联系。)学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系专业专业系系编号编号系名系名系主任系主任所在地点所在地点联系电话联系电话属于属于1n结构冲突解决方式2 对于同一实体在不同E-R模型中属性组成不同:取两个分E-R模型属性的并,作为合并后的该实体属性,然后对属性的先后次序作适当调整。学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系专业专业籍贯籍贯政治面貌政治面貌家庭住址家庭住址图图(c)合并后的合并后的E-R模型模型学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系专业专
31、业图图(a)E-R模型模型1 学生学生学号学号姓名姓名籍贯籍贯政治面政治面貌貌家庭住家庭住址址图图(b)E-R模型模型2 2 结构冲突解决方式3 对于实体间的相同联系呈现的不同的类型:根据具体应用的语义,对实体间的联系作适当的综合或调整。产品产品组成组成零件零件数量数量mn图图7-14(a)产品与零件的产品与零件的ER模型模型1图图7-14(b)产品、零件和供应商的产品、零件和供应商的ER模型模型2产品产品组成组成零件零件供应商供应商n数量数量p图图7-14(c)合并后的合并后的E-R模型模型产品产品组成组成零件零件供应商供应商n组成数量组成数量m供应供应pmn供应数量供应数量3)全局ER模式
32、的优化实体类型的合并1:1联系的两个实体类型 具有相同键的实体类型 冗余属性的消除 冗余联系的消除利用规范化理论中函数依赖的概念消除冗余联系 1图图7.24 7.24 合并后的教学管理合并后的教学管理E-RE-R图图1N1P1N1N1N1MMNNNN社会关系社会关系具有具有1NNM1系系聘用聘用承接承接项目项目参加参加设置设置院长院长学院学院主管主管NN111教师教师评定评定职称职称分配分配工作量工作量111N档案材料档案材料归档归档参加参加学会学会1宿舍宿舍住宿住宿教科书教科书担任担任指导指导课程课程选修选修教室教室上课上课有有1班级班级学生学生组成组成N开设开设N管理管理11教师教师管理管
33、理1 11图图7.24 7.24 合并后的教学管理合并后的教学管理E-RE-R图图1N1P1N1N1N1MMNNNN社会关系社会关系具有具有1NNM1系系聘用聘用承接承接项目项目参加参加设置设置院长院长学院学院主管主管NN111教师教师评定评定职称职称分配分配工作量工作量111N档案材料档案材料归档归档参加参加学会学会1宿舍宿舍住宿住宿教科书教科书担任担任指导指导课程课程选修选修教室教室上课上课有有1班级班级学生学生组成组成N开设开设N管理管理11教师教师管理管理1 1例子:三个局部ER图合并成一个ER图1图图7.24 7.24 合并后的教学管理合并后的教学管理E-RE-R图图1N1P1N1N
34、1N1MMNNNN社会关系社会关系具有具有1NNM1系系聘用聘用承接承接项目项目参加参加设置设置院长院长学院学院主管主管NN111教师教师评定评定职称职称分配分配工作量工作量111N档案材料档案材料归档归档参加参加学会学会1宿舍宿舍住宿住宿教科书教科书担任担任指导指导课程课程选修选修教室教室上课上课有有1班级班级学生学生组成组成N开设开设N管理管理11教师教师管理管理1 17.5 数据库逻辑结构设计及优化7.5.1 逻辑设计环境 数数据据库库逻逻辑辑结结构构设设计计独立于独立于DBMS的概念模式的概念模式处理需求处理需求约束条件约束条件DBMS特征特征DBMS可处理的模式和子模式可处理的模式和
35、子模式应用程序设计指南应用程序设计指南物理设计指南物理设计指南7.5.2 逻辑设计的步骤 目标逻辑设计步骤导出初始导出初始DBMS模式说明模式说明概念模式概念模式子模式设计子模式设计应用程序设计草图应用程序设计草图模式评价模式评价处 理 结处 理 结束束模 式 需 要 修模 式 需 要 修正正模式修正模式修正进入物理设计阶段进入物理设计阶段返回到前面阶段返回到前面阶段是是 是是 否否否否7.5.3 ER模型向关系模型的转换 1)转换的一些问题(1)命名和属性域的处理 关系模式的命名,可以采用E-R图中原来的命名,也可以另行命名。(2)非原子属性的处理 E-R数据模型中允许非原子属性,这不符合关
36、系模型的第一范式的条件。对集合属性纵向展开,对元组属性横向展开。(3)弱实体的处理 家属家属性别性别姓名姓名年龄年龄与职工关系与职工关系职工职工职工号职工号姓名姓名出生日期出生日期职工家属职工家属1N(a)ER图图职工号职工号姓名姓名性别性别年龄年龄与职工关系与职工关系(b)关系模式)关系模式(4)联系的转换 E1kr1ahE2bs1l:l 联系联系 可以一个关系模式:可以一个关系模式:R(k,a,h,b,s)名称名称地址地址联系电话联系电话姓名姓名职称职称任期任期学校学校名称名称管理管理1地址地址姓名姓名校长校长职称职称任期任期1联系电话联系电话l:N 联系 E1kr1ahE2bsN转换关系
37、模式为:转换关系模式为:R1(k,a)R2(h,b,k,s)(k为外键为外键)班级班级班号班号属于属于1班名班名学号学号学生学生姓名姓名N性别性别年龄年龄班号班号班名班名学号学号姓名姓名性别性别年龄年龄班号班号M:N 联系 E1krMahE2bsN变换关系模式为:变换关系模式为:R1(k,a)R2(h,b)R3(h,k,s)(k,h组成复合主键,组成复合主键,k、h分别为外键)分别为外键)学生学生学号学号选课选课M姓名姓名课程号课程号课程课程学分学分N教师教师成绩成绩学号学号姓名姓名课程号课程号学分学分教师教师学号学号课程号课程号成绩成绩多元联系 转换的关系模式为:转换的关系模式为:R1(k,
38、a)R2(h,b)R3(j,c)R4(k,h,j,s)(k,h,j 组成复合主健,组成复合主健,k,h,j分别为外键分别为外键)E1krMasNhE2bjE3cP工程工程工程号工程号供应供应M零件零件零件号零件号N公司公司供应量供应量公司名公司名P工程号工程号零件号零件号公司名公司名工程号工程号零件号零件号公司名公司名供应量供应量2)ER模型向关系模型的转换规则 将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。二元联系类型的转换1:1联系:可以在两个实体类型和联系转换成一个关系模式。1:N联系:在N端实体类型转换成的关系模式中加入1端实体类型的键和联
39、系类型的属性。M:N联系:将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。一元联系类型的转换:同二元联系 三元联系类型的转换 总是将三元联系类型转换成关系模式,其属性为三端实体类型的键加上联系类型的属性,而键为三端实体键的组合。3)ER模型到关系模型的转换实例运动员运动员编号编号姓名姓名性别性别名次名次顺序顺序11职工职工工号工号姓名姓名年龄年龄性别性别领导领导1N运动员运动员(编号编号,姓名,性别,名次,姓名,性别,名次,上一名次编号,下一名次编号上一名次编号,下一名次编号)职工职工(工号工号,姓名,年龄,性别,姓名,年龄,性别,经理工号经理工
40、号)ER模型到关系模型的转换实例零件零件零件号零件号零件名零件名规规格格数量数量组成组成MN仓库仓库商品商品商店商店仓库号仓库号仓库名仓库名地址地址数量数量商店号商店号商品名商品名商品号商品号商店名商店名日期日期进货进货MNP零件(零件(零件号零件号,零件名,规格),零件名,规格)组成(组成(零件号,子零件号零件号,子零件号,数量),数量)仓库(仓库(仓库号仓库号,仓库名,地址),仓库名,地址)商店(商店(商店号商店号,商店名),商店名)商品(商品(商品号商品号,商品名),商品名)进货(进货(商店号,商品名,仓库号,日期商店号,商品名,仓库号,日期,数量),数量)例 库存信息管理系统的ER模型
41、及转换P P车车间间仓仓位位产产品品客客户户销销售售员员存存储储出出库库订订单单入入库库M MN NM MP PM MN NP PM MN NN N库存系统库存系统ER图图车间车间(车间号车间号,车间名车间名,主任名主任名)产品产品(产品号产品号,产品名,单价,产品名,单价)仓位仓位(仓位号仓位号,地址,主任名,地址,主任名)客户客户(客户号客户号,客户名,联系人,电话,客户名,联系人,电话,地址,税号,账号地址,税号,账号)销售员销售员(销售员号销售员号,姓名姓名,性别性别,学历学历,业绩)业绩)实体实体入库(入库(入库单号入库单号,入库量入库量,入库日期入库日期,经手人经手人,车间号车间号
42、,仓位号仓位号,产品名产品名)出库(出库(出库单号出库单号,出库量,出库日期,经手人,出库量,出库日期,经手人,客户号,产品名,仓位号客户号,产品名,仓位号)订单(订单(订单号订单号,数量,折扣,总价,订单日期,数量,折扣,总价,订单日期,产品号,客户号,销售员号产品号,客户号,销售员号)存储存储(仓位号仓位号,产品号产品号,核对日期核对日期,核对员核对员,存储量存储量)联系联系学校行政管理系统学校(学校(名称名称,校长姓名校长姓名,地址地址,联系电话联系电话,邮编)邮编)系(系(编号编号,名称名称,系主任系主任,所在地点所在地点,联系电话)联系电话)教研室(教研室(名称名称,地点,电话),地
43、点,电话)教师(教师(教师姓名教师姓名,职称,联系电话),职称,联系电话)学生(学生(学号学号,姓名,性别,年龄,姓名,性别,年龄,班级名班级名)课程(课程(课程编号课程编号,课程名称,学分),课程名称,学分)下属(下属(编号编号,名称),名称)包含(包含(名称名称,编号),编号)拥有(拥有(教师姓名教师姓名,名称),名称)组成(组成(学号学号,编号),编号)讲授(讲授(教师姓名,课程编号教师姓名,课程编号,教材名),教材名)选修(选修(学号学号,课程编号,成绩),课程编号,成绩)7.5.4 用关系规范化理论进行优化(l)确定数据依赖(2)对于各关系模式间的数据依赖进行极小化处理,消除冗余的联
44、系。(3)按照数据依赖与规范化理论对关系模式逐一进行分析。(4)按范式优化每一关系模式。(5)对关系模式的进一步分解或合并。7.6 数据库的物理设计 目标什么是数据库的物理结构物理设计的步骤存储记录结构设计 确定数据存放位置 存取方法的设计 完整性和安全性考虑 程序设计 7.7 数据库的实现目标实现数据库应做的主要工作用DDL定义数据库结构;组织数据入库组织数据入库;对数据量不大的小型系统(人工)主要工作:筛选数据;转换数据格式;输入数据;校验数据。对大中型系统(自动)主要工作:筛选数据;输入数据;校验数据;转换数据;综合数据。编制与调试应用程序;数据库试运行。功能测试性能测试(时空代价)7.8 数据库的运行与维护工作 数据库的转储和恢复 数据库安全性、完整性控制 数据库性能的监督、分析和改进 数据库的重组织和重构造 7.9PowerDesigner 辅助设计工具本章小结数据库的生命周期数据库设计的步骤ER模型基本概念和引进对象后的扩展ER模型的设计方法ER模型向关系模型的转换