第2页四川农业大学潘勇浩2016数据库设计概述数据库系统的生存期需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护数据库设计时期数据库的基本知识和数据库设计技术计算机科学的基础知识和程序设计的方法和技巧软件工程的原理和方法应用领域的知识数据库设计应该具备:数据库设计的特点:反复性试探性多步性三分技术七分管理十二分数据新奥尔良法第3页四川农业大学潘勇浩2016需求分析调查组织机构情况熟悉业务活动明确用户需求确定系统边界用户数据库设计员DDDFD跟班作业,开调查会,收集调查表请专人介绍,询问,查阅文档资料信息要求处理要求安全性和完整性要求需求规格说明需求分析是整个设计的基础和起点!第4页四川农业大学潘勇浩2016概念模型E-R模型(EntityRelationshipModel),是最常用的概念数据模型。课程课程号课程名学分教师教工号姓名性别职称参考书书号书名出版社主编学生学号姓名性别年龄班级班号班名选修成绩组成人数讲授mn领导n11nmnp实体联系属性第5页四川农业大学潘勇浩2016概念模型中的基本概念实体(Entity):客观存在并可以相互区别的事物。可以是一个具体的物体或抽象的概念。如一名学生,一门课程,一次选课等。属性(Attributes):实体的某一特性。如学生实体有学号、姓名、年龄等属性,一门课程有课名、课程性质、任课教师等属性。码(Key):唯一标识实体的属性或属性集。实体集:具有相同属性(注意不是属性值)的实体的集合。在不引起混淆时,往往简称为实体。第6页四川农业大学潘勇浩2016概念模型中的基本概念联系(Relationship):实体集之间和实体集内部各实体之间存在的关系。联系分为三种:一对一联系(1:1)一对多联系(1:n)学校与校长班级与学生多对多联系(m:n)课程与学生111nmn第7页四川农业大学潘勇浩2016概念模型的画法课程课程号课程名学分教师教工号姓名性别职称参考书书号书名出版社主编学生学号姓名性别年龄班级班号班名选修成绩组成人数讲授mn领导n11nmnp实体联系属性在仔细研究需求说明的基础上1.首先确定出实体和属性2.确定实体间和实体内部的联系及其类型3.确定联系产生的属性第8页四川农业大学潘勇浩2016概念模型的工具MicrosoftVisio第9页四川农业大学潘勇浩2016概念结构设计概念结构设计是整个设计的关键!抽象数据设计局部视图集成视图现实世界→信息世界DFDDD分E-R图总E-R图第10页四川农业大学潘勇浩2016概念结构设计设计步骤1:选择局部应用,逐一设计分E-R图入学学生班级编码表基本信息学生档案班级班号班名学生学号姓名性别年龄组成1n现实世界中的事物凡能够作为属性对待的应尽量抽象成属性:①属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。②属性不能与其他实体具有联系。联系只发生在实体之间。第11页四川农业大学潘勇浩2016概念结构设计学生学号姓名性别年龄系系学生学号姓名性别年龄系号系名系主任学生数量属于n1“系”作为属性“系”作为实体实际出发仔细分析择优设计设计步骤1:选择局部应用,逐一设计分E-R图第12页四川农业大学潘勇浩2016概念结构设计设计步骤2:视图的集成合并(消除冲突)初步E-R图修改与重构(消除冗余)分E-R图分E-R图分析规范化理论基本E-R图第13页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突①属性冲突协商统一解决类别数据项名称性别别名取值男或女备注类别数据项名称性别别名取值M或F备注域冲突类别数据项名称身高别名取值3位正整数备注单位为cm类别数据项名称身高别名取值0.00~3.00备注单位为m不同单位引起的域冲突第14页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突②命名冲突协商统一解决同名异义职工工号姓名性别单位产品编号品名数量单位生产mn职工工号姓名性别单位职工工号姓名性别部门异名同义第15页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突③结构冲突同一对象在不同应用中有不同的抽象。即一处抽象为实体,另一处抽象为属性。解决:统一成相同的抽象。同一实体在不同应用中属性组成不同。解决:统一取属性的并集。相同的多个实体在不同应用中呈现不同的联系。即一处为1:n,而另一处为m:n。解决:按语义进行实体联系类型的综合或调整。第16页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突③结构冲突班级班号班名学生学号姓名性别年龄组成1n班级班号班名班长学号姓名管理11局部视图1局部视图2第17页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突③结构冲突班级班号班名学生学号姓名性别年龄组成1n集成后的视图班长学号姓名管理11注意班长也是学生,因此该视图存在很多冲突!第18页四川农业大学潘勇浩2016概念结构设计分E-R图之间的冲突③结构冲突班级班号班名学生学号姓名性别年龄组成1n方案1正确集成为:班长班级班号班名学生学号姓名性别年龄组成1n管理1n班长方案2第19页四川农业大学潘勇浩2016逻辑结构设计信息世界→机器世界转化为数据模型基本E-R图逻辑模型优化数据模型转换规则规范化理论其它优化原则建立基于某种DBMS的全局数据逻辑结构!第20页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型每一个实体都转换成一个关系模式。实体的属性就是关系模式的属性;实体的主码就是关系模式的主码(加下划线表示)。班级班号班名学生学号姓名性别年龄组成1n班长学生(学号,姓名,年龄,性别)班级(班号,班名,班长)逻辑结构设计第21页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型一个1:1联系可以和该联系相连的任意一个实体合并成一个关系模式,并且加入另一个实体的主码和联系本身的属性。系(系号,系名,系主任名,任职时间)系主任(姓名,性别,职称)系系号系名系主任姓名性别职称管理11任职时间系(系号,系名)系主任(姓名,性别,职称,系号,任职时间)方案1方案2逻辑结构设计第22页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型一个1:n联系可以和n端实体合并成一个关系模式,并且加入1端实体的主码和联系本身的属性。学校(名称,地址)教师(姓名,性别,年龄,学校名称,聘期)学校名称地址教师姓名性别年龄聘用1n聘期逻辑结构设计第23页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型一个m:n联系转换成一个关系模式,属性包括联系两端的实体的主码以及联系本身的属性,主码为联系两端的实体的主码的组合。课程课程号课程名学分教师教工号姓名性别职称讲授mn讲授(课程号,教工号)逻辑结构设计第24页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型一个m:n联系转换成一个关系模式,属性包括联系两端的实体的主码以及联系本身的属性,主码为联系两端的实体的主码的组合。课程课程号课程名学分学生学号姓名性别年龄选修mn成绩选修(学号,课程号,成绩)逻辑结构设计第25页四川农业大学潘勇浩2016第一步:E-R图转换成数据模型三个或三个以上实体间的一个多元联系在转换为一个关系模式时,属性包括与该多元联系相连的各实体的主码及联系本身的属性,主码为各实体主码的组合。讲授(课程号,教工号,书号,课时)课程课程号课程名学分教师教工号姓名性别职称参考书书号书名出版社主编讲授mnp课时逻辑结构设计第26页四川农业大学潘勇浩2016第二步:数据模型的优化规范化处理——并非规范化程度越高越好!模式评价——功能、性能充分利用视图——外模式设计快照技术等其它优化技术。•数据的正确与完整,符合客观实际;•尽可能小的数据冗余;•操作方便;•尽可能高的效率。优化的主要原则:逻辑结构设计第27页四川农业大学潘勇浩2016优化的几个例子销售记录(发票号,品名,数量,单价,金额)销售记录(发票号,品名,数量,单价)(数量,单价)→金额数据冗余查询效率逻辑结构设计第28页四川农业大学潘勇浩2016优化的几个例子教师(工号,姓名,性别,年龄,职称,类别)正式教师(工号,姓名,性别,年龄,职称)外聘教师(工号,姓名,性别,年龄)数据冗余关系数量类别={正式,外聘}外聘教师无职称逻辑结构设计第29页四川农业大学潘勇浩2016优化的几个例子教师(工号,姓名,性别,年龄,职称,家庭住址,电话)教师基本(工号,姓名,性别,年龄,职称)教师其它(工号,家庭住址,电话)数据使用频度连接代价一般只操作教师的工号、姓名、性别、年龄和职称,家庭住址和电话很少用到。逻辑结构设计第30页四川农业大学潘勇浩2016确定数据库在物理设备上的存储结构和存取方法确定数据库的物理结构逻辑模型物理模型评价数据库的物理结构时空效率存储结构记录格式记录组织访问方法物理结构设计第31页四川农业大学潘勇浩2016数据库的实施与维护定义数据库结构逻辑模型物理模型数据装入编制与调试应用程序数据库试运行数据库系统功能测试性能测试其它测试输入校验第32页四川农业大学潘勇浩2016数据库的实施与维护数据库管理员DBA数据库转储恢复安全性完整性控制性能的监督分析改进重组织重构造