第三章数据库系统的设计方法目录上一页下一页退出目录上一页下一页退出2数据库设计概述数据库设计是研制数据库及其应用系统的技术,是数据库在应用领域中主要的研究课题。数据库设计:–是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)–数据库设计通常是在一个通用的DBMS支持下进行的,即利用现成的DBMS为基础要点目录上一页下一页退出3数据库和信息系统从使用者角度看,信息系统是提供信息,辅助人们对环境进行控制和进行决策的系统数据库是信息系统的核心和基础。它把信息系统中大量的数据按一定的模型组织起来一个信息系统的各个部分能否紧密地结合在一起以及如何结合,关键在数据库。因此只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的信息系统要点目录上一页下一页退出4数据库设计的必备知识大型数据库的设计是一个庞大的工程,属于软件工程的范畴,要应用软件工程的方法和原理进行数据库设计对从事数据库设计的人来讲,应该具备多方面的技术和知识,主要有:–计算机科学基础知识和程序设计技术;–数据库基础知识和数据库设计技术;–软件工程的原理和方法;–应用领域的知识;–其中:应用领域的专业知识随着应用系统的不同而不同。数据库设计人员必须深入实际,对应用环境专业业务有了具体的了解要点目录上一页下一页退出5数据库设计的特点“三分技术、七分管理,十二分基础数据”是数据库建设的基本规律。技术与管理的界面(称之为‘干件’)十分重要–数据库建设是硬件、软件和干件的结合–数据库设计应该和应用系统设计相结合–即整个设计过程中要把结构(数据)设计和行为设计(处理)设计密切结合起来要点现实世界数据分析概念设计逻辑设计物理设计子模式设计建立数据功能分析功能说明功能模型事务设计程序说明应用程序设计程序编码调试目录上一页下一页退出6数据库设计方法新奥尔良法:设计分为需求分析、概念设计、逻辑设计和物理设计四个步骤在数据库设计的不同阶段中使用的方法有–基于ER模型的概念设计方法–基于3NF的逻辑设计方法–基于抽象语法规范的物理设计方法本质上是基于手工设计基本思想:过程迭代和逐步求精数据库设计工具:Oracle公司的Design2000和Sybase公司的PowerDesigner要点目录上一页下一页退出7数据库设计的基本步骤六个阶段:–需求分析:整个设计的基础,充分了解用户的数据和处理的要求–概念结构设计:整个设计的关键,独立于DBMS建立ER模型–逻辑结构设计:转换成某个DBMS支持的数据模型,并利用规范化理论进行优化–物理结构设计:选择适合的物理结构(存储结构和存取方法)–数据库的实施:利用DBMS提供的语言和工具建立数据库和编写程序,装入数据,试运行–数据库的运行和维护:正式运行后不断进行评价、调整和修改要点目录上一页下一页退出8设计过程和使用工具要点设计描述数据处理设计阶段需求分析数据字典、全系统中数据项、数据流、数据存储数据流图和判定表、数据字典中处理过程的描述概念结构设计概念模型(E-R)图,数据字典系统说明书。包括:(1)新系统要求、方案和概图(2)翻印新鲜系统信息流的数据流图逻辑结构设计某种数据模型如关系模型关系系统结构图(模块结构图)物理设计存储安排、存储方法选择、存储路径建立模块设计、IPO图实施阶段编写模块、装入数据、数据库试运行程序编码、编译联接、测试运行、维护性能检测、转储/恢复、数据库重组和重构新旧系统转换、运行、维护(修正性、适应性、改善性维护非关系模型IPO表输入:输出:处理:分区1分区2:Main(){……}Create…Load…目录上一页下一页退出9需求分析从系统的观点考虑、分类和收集用户数据及处理要求,并作为下一步概念设计的基础–调查对象:原有的旧系统–调查目标:新系统的功能–调查重点:数据和处理•信息要求、处理要求、安全性和完整性要求–调查步骤:•了解组织机构、各部门业务情况和确定系统边界–分析和表达方法:•结构化方法(SA):自顶向下、逐层分解,使用数据流图和数据字典工具•面向对象方法(OOA)要点目录上一页下一页退出10数据流图DFD用途:表达数据和处理之间的关系系统功能的划分可用层次结构描述,每层子功能对应各级数据流图,故每个系统都是由若干分层的数据流图来描述的一般结构:要点数据来源处理数据输出数据存储输入数据流输出数据流“数据来源”和“数据输出”:一般是系统外部数据源,如“客户”、“显示屏”、“财务部”等“数据存储”:对应计算机中的存储文件,如数据表、自由表“数据流”:处理动作需要的数据,如“待核对工资数据”经过“核对”形成“已核对工资数据”除了“处理”要用动词描述外,其他都要用名词描述目录上一页下一页退出11数据字典数据字典------对系统中数据的详尽文字描述,是各类数据属性的清单,进行详细的数据收集和数据分析所获得的主要结果五个组成部分:–数据项:最小单位–数据结构:是若干数据项有意义的集合–数据流:可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出–数据存储:处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;–处理过程:描述具体的处理方法,常常是算法的描述要点目录上一页下一页退出12需求分析文档主要内容系统目标、需求定义、功能说明、系统结构、计算机处理的边界与流程、工作量与经费预算。确定哪些功能由计算机完成或将来准备让计算机完成–系统功能结构图(各子系统之间的联系和构成)–业务流程图(反映各业务部门的信息联系)–数据字典(数据描述的集合)–数据流图(数据和处理过程的关系)DFD建立工具:–手工绘制–PowerDesignor中ProcessAnalyst工具,文件扩展名为.PAM要点目录上一页下一页退出13图书管理系统顶层数据流图借阅信息借阅卡维护信息借阅人维护信息出版社维护信息图书维护信息借阅人信息出版社信息图书信息1图书管理图书出版社借阅人图书表出版社表借阅人表借阅卡表借阅信息表要点目录上一页下一页退出14图书管理系统第二层数据流图借阅人信息被借图书信息[借阅人维护信息][借阅卡维护信息][借阅信息][图书维护信息][出版社维护信息]借阅人信息图书信息[借阅人信息][出版社信息][图书信息]图书出版社借阅人图书表出版社表借阅人表借阅卡表借阅信息表1.1出版社维护1.2图书维护1.3借阅登记1.4借阅人维护要点目录上一页下一页退出15“借阅登记”分层数据流图已借图书数量复本数量[借阅信息][被借图书信息][借阅人信息]合法信息请求信息[借阅人信息][图书信息]图书借阅人借阅信息表图书表借阅人表1.3.1借还请求1.3.2信息查询1.3.3借还图书要点目录上一页下一页退出16需求分析总结需求分析的结果是得到一组基础数据(数据字典表达)和一组数据流图–数据流图描述系统中数据的输入、处理和输出的过程–数据字典描述各类元素的含义和表示方式注意:–收集将来涉及的数据,充分考虑将来可能的扩展和要求–强调用户的参与要点目录上一页下一页退出17概念结构设计概念设计------根据需求分析结果抽象出系统的信息结构即概念模型的过程特性:–独立于机器,更稳定、易理解、易更改、易转换方法:–自顶向下:整体局部–自底向上:局部整体(最常采用的方法)–逐步扩张:核心–混合策略:结合前两种方法设计工具:ER图(分ER图合成总ER图)–PowerDesigner中DataArchitect工具要点目录上一页下一页退出18需求分析与概念设计的关系一般采用自顶向下的需求分析方法和自底向上的概念设计方法:整体局部分析分ER总ER–每个子系统对应一个分ER图,最终可得到整个系统的ER图需求需求1需求n。。。。。。需求1。1需求1。2需求n。1需求n。2概念模式1.1概念模式1.2概念模式n.1概念模式n.2概念模式1概念模式n。。。。。。全局概念模式(应用1)(应用n)需求分析(自顶向下)概念结构设计(自底向上)要点目录上一页下一页退出19三种数据抽象依据抽象方法和原理来逐级建立ER图分类抽象:Classfication–定义对象值与型之间“ismemberof”的语义,实体型就是分类抽象:•如“学生”是实体型,张三是其中一员,表达语义“ismemberof学生”,张三具有和所有学生共同的行为(学习某门课程)和特征(具有学号、班号等)–描述方法如右图所示:要点学生张三李四“ismemberof”–用途:定义某类实体型的成员目录上一页下一页退出20聚集抽象用途:定义实体的成份表达语义:对象内部类型和成份之间“ispartof”的含义,即实体和属性之间的关系要点学生学号姓名性别专业“ispartof”仓库号面积主任姓名年龄性别工资还可以表示更复杂的聚集,如右图,一个实体的属性是聚集成另一个实体的属性:目录上一页下一页退出21概括抽象用途:定义实体型间子类的关系,“issubsetof”的语义要点学生本科生研究生“issubsetof”超类子类–这里子类继承父类的所有属性,在绘制ER图时,子类不用再画出父类的所有属性,只要画出自身特有的属性即可目录上一页下一页退出22概括抽象另一种表示方法:实体之间的包含联系–ISA=“isa”,表示高层实体和低层实体之间的“父类-子类”联系。本科生研究生学生硕士博士ISAISA姓名学号DissertationPapers军训要点目录上一页下一页退出23概念设计的实质利用抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型,设计局部E-R图具体步骤和方法:–选择局部应用:每层数据流图DFD作为局部ER图的设计出发点–逐层设计分ER图:依据数据字典确定实体、属性和联系,局部ER图汇总成分ER图,最终分ER图总ER图–划分实体和属性的原则:•属性不能再分,不能是另一些属性的聚集•属性不能与实体有任何联系•例:职工有“电话号码”属性,但如果一个人有多个电话号码,就要抽象出“电话”实体另外描述要点职工职工号电话号码电话类别号码目录上一页下一页退出24局部ER图和全局ER图由需求分析所得的数据流图,确定和识别系统中的实体,定义属性,最后确定联系–系统中实体有:借阅人、借阅卡、图书、借阅全局ER图设计–逐步合成初步ER图:解决属性冲突、命名冲突和结构冲突–重构ER图,生成基本ER图要点11nn1对应n1借阅卡借阅人1借阅对应图书对应对应出版社目录上一页下一页退出25PowerDesigner中建立的概念模型要点扩展名为.CDM实体中不表示外键在转换成物理模型时自动生成外键分类出版对应对应拥有图书表图书编号VA12书名VA40作者VA20单价MN6,2复本数量I库存量I是否新书BL日罚金MN6,2出版社表出版社编号VA20出版社名VA20所在城市VA10联系地址VA50联系人VA10联系电话VA20EMAILVA30借阅人表借阅人编号VA20借阅人姓名VA20是否新书BL密码VA20已借数量IEMAILVA30电话号码VA30借阅卡表借阅卡编号VA20借阅信息表流水号VA20借阅日期D是否续借BL续借日期D是否归还BL归还日期D图书分类表分类编号VA20分类名VA20目录上一页下一页退出26逻辑结构设计根据概念模型选择具体的DBMS向数据模型转化,确定全局逻辑结构,采用规范化理论优化模型步骤–ER模型层次、网状或关系模型中的一种–向特定的DBMS支持的数据模型转化(因数据类型、约束等各DBMS有所不同)–规范化要点目录上一页下一页退出27ER模型关系模型转换规则:–实体型关系模式:实体的属性就是关系的属性,实体的码就是关系的码;–联系关系模式:与该联系相连的各实体的码以及联系的属性转换为关系的属性,该关系的码则有四种情况:•1:1联系:每个实体的码均为该关系的候选码;该联系转化成的关系模式可与任一端实体合并•1:n联系:关系的码为n端实体的码;该联系转化成的关系模式可与n端实体合并•m:n联系:关系的码为诸实体码的组合;只能是独