数据库分析重要.ppt
第六章 数据库设计,学习要点,数据库设计的特点数据库设计的基本步骤,6.1 数据库设计概述,数据库设计对于一个给定的应用环境构造最优的数据库模式数据库应用系统使用数据库的各类系统信息系统信息系统是提供信息,辅助人们对应用环境进行控制和进行决策的系统数据库是信息系统的核心和基础,数据库设计所需技术知识,数据库基本知识和设计技术计算机科学基础知识、程序设计的方法和技巧软件工程的原理和方法应用领域的知识,补充知识,数据库设计的特点,硬件、软件、技术与管理的综合体“三分技术,七分管理,十二分基础数据”数据库设计与应用系统相结合过去的结构化设计和逐步求精设计方法着重于处理过程的特性,而推迟数据结构的设计早期的数据库设计致力于对数据建模法,而忽视行为设计,数据库设计方法简述,手工试凑法和技术人员水平和经验有关规范设计法将数据库设计分阶段进行E-R模型、关系范式理论等方法应用于设计的不同阶段本质上还是手工设计法,基本思想是设计过程迭代、逐步求精自动数据库设计工具Design 2000(ORACLE),PowerDesigner(SYBASE)数据设计和应用设计同时进行很多计算机辅助软件工程(CASE,Computer Aided Software Engineering)工具,Sybase建模工具:PowerDesigner10.0,满足企业对所有业务、数据和对象建模的需求建模工具集数据建模、UML建模和业务流程建模将商业需求与应用技术紧密结合,不论终端用户的技术水平如何保证了所有企业所用来开发软件服务的一种语言或多种语言、组件及应用都能够被全面支持对UML的全面支持扩大了现有的Java,C+,Corba IDL,PowerBuilder和XML的编码生成增加了对Microsoft.Net平台上的最流行语言的支持,数据库设计的基本步骤,需求收集和分析,设计概念结构,设计逻辑结构,数据模型优化,设计物理结构,设计评价,性能预测,物理实现,试验性运行,使用、维护数据库,需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段,数据库实施阶段,数据库运行维护阶段,应用需求(数据、处理),转换规则、DBMS功能、优化方法,应用要求DBMS详细特征,不满意,不满意,需求文档数据字典数据流图等,用E-R图描述的概念模型,某种数据模型并优化,存储安排方法选择存取路径建立,编写模式数据装入数据库试运行,性能检测、转储/恢复数据库重组和重构,按照规范化设计的方法,过程迭代、逐步求精的设计思想,数据库结构设计阶段,数据库的设计必须与数据处理的设计在每一各设计步骤中紧密结合,相互参照,相互补充,设计过程中形成的数据库各级模式,概念模式,逻辑模式,内模式,应用要求,应用要求,应用要求,应用要求,外模式,外模式,外模式,外模式,综合,转换,映象,映象,应用1,应用2,应用3,应用4,应用1,应用2,应用3,应用4,需求分析阶段,概念设计阶段,逻辑设计阶段,逻辑设计阶段,物理设计阶段,6.2 需求分析,需求分析的任务:调查、收集、分析用户对数据库的要求信息要求需存储的数据处理要求要完成的功能、响应时间、处理方式等安全性与完整性要求用户管理、数据管理、数据一致性等,调查用户需求的步骤,调查组织机构情况调查各部门的业务活动情况熟悉业务活动,明确新系统的各种要求确定新系统的边界(需计算机化的部分),调查用户需求的方法,跟班作业开调查会请专人介绍询问填写调查表查阅原系统的工作记录,抽象需求分析的方法,结构化分析(SA)方法自顶向下、逐层分解形成需求文档、数据字典(DD)及多层数据流图(DFD),数据来源,数据存储,数据输出,处理,某一层次的抽象图,需求分析的过程,调查组织机构总体情况,明确用户需求,熟悉业务活动,概念设计,确定系统边界,DFD,DD,用户,设计员,领书单 进书通知,购书单 缺书单,示意:售书系统,学生,教材购销系统,书库保管员,售书系统,顾客,P1销售,P2采购,供应商,F1 配件库存,P3会计,付款,付款,收据,应付款通知,收款通知,到货通知,订货单,订货单,发货单,发货单,例子:销售采购管理系统第1层数据流程图,F2 配件目录,顾客,P1.1编辑订货单,业务员,P1.3确定订货,P1.5产生暂存订货单,P1.2登录新顾客,F3 顾客,P1.4开发货单修改库存,P1.6对照暂存订货单,采购,F4 暂存订货单,P1.8编制销售、库存报表,P1.7检索库存,F1 配件库存,经理,F5 销售历史,F10 应收款明细帐,第2层数据流程图之一(销售),发货单,订货单,不合格,合格,新顾客,不满足的订货,可发的订货,到货通知,F4 暂存订货单,P2.1按配件汇总,P2.2确定订货的配件,P2.5修改库存、待订数量,F6 待订货的配件,P2.6编制到货通知,P2.4核对发货单,F1 配件库存,P2.3按供应商汇总,F8 向供应商的订货单,F9 应付款明细帐,销售,供应商,订货单,发货单,错误发货单,正确发货单,第2层数据流程图之二(采购),顾客,P3.1开收据并修改明细帐,P3.5编制会计报表,经理,P3.4修改总帐,F10 应收款明细帐,F11 总帐,P3.3付款并修改明细帐,P3.2核对付款单,F9 应付款明细帐,供应商,第2层数据流程图之三(会计),应付款通知,付款,收据,数据字典,描述系统中的数据,包括数据项、数据结构、数据流、数据存储和处理过程数据项描述=数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系数据结构描述=数据结构名,含义说明,组成:数据项或数据结构数据流描述=数据流名,说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量数据存储描述=数据存储名,说明,编号,输入的数据流,输出的数据流,组成:数据结构,数据量,存取频度,存取方式处理过程描述=处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明,需求分析,需求分析的结果反馈给用户审定需求分析需要考虑需求变更和扩充,强调用户参与,6.3 概念结构设计,概念结构将在需求分析阶段得到的应用需求抽象为信息世界的结构,常用E-R模型来描述独立于机器概念结构的特点真实充分地反映客观世界易于理解易于更改易于转换成为数据模型,概念结构设计的方法,自顶向下首先定义全局概念结构的框架,然后逐步细化自底向上首先定义各局部应用的概念结构,然后集成逐步扩张首先定义最重要的核心概念结构,然后向外扩充混合策略首先用自顶向下策略设计全局概念结构的框架,再集成用自底向上策略设计的各局部概念结构,P214图,概念结构设计的步骤,需求分析,逻辑结构设计,数据抽象局部视图设计,视图集成,用户反馈直至满意,DDDFD,局部E-R图,总E-R图,数据抽象,数据抽象抽象出对客观世界中的概念、对象的本质特性用于在需求分析阶段将收集到的数据进行分类、组织(聚集),从而形成实体、实体的属性,标识实体的码,确定实体间的联系类型,以便设计相应的E-R图三类数据抽象机制分类聚集概括,数据抽象机制之一,分类将一类具有共同特性和行为的对象定义为一种某类型,在E-R模型中的实体型就是这种抽象,如学生,课程抽象了对象的值和型之间“is member of”语义,学生,“is member of”,张英,王平,赵斌,实体型,课程,“is member of”,C语言,数据库,操作系统,实体型,数据抽象机制之二,聚集定义某类型的组成成分,对应E-R模型中实体的属性抽象了对象类型和其成分之间的“is part of”语义,学生,学号,姓名,专业,班级,仓库号,面积,主任,仓库,姓名,年龄,性别,工资,“is part of”,实体型,属性,数据抽象机制之三,概括定义类型之间的子集联系,形成超(父)类、子类抽象了类型之间“is subset of”语义概括的重要性质:继承,即子类集成超类的所有抽象是E-R模型的抽象机制的扩充,学生,本科生,研究生,概括的E-R表示,“is subset of”,超类,子类,学号,姓名,性别,年龄,专业,综合排名,导师,研究方向,概念设计的第一步,利用抽象机制,对需求分析阶段收集到的数据进行分类、组织(聚集)形成实体,实体的属性,标识实体的码,确定实体间的联系类型设计局部E-R图,局部E-R图设计方法,选择局部应用:中层数据流图为依据如物资管理、人事管理、销售管理等逐一设计局部E-R图根据数据抽象后所的得DD,并参照DFD,标定局部应用中的实体、实体属性、实体码,确定实体间的联系及类型设计准则(某事物作为实体还是作为属性更恰当?)能作为属性对待的事物尽量作为属性对待能作为属性的事物必须不能再具有需要描述的性质不能与其他实体具有联系(E-R图中的联系是实体之间的联系),职工,职工号,姓名,年龄,职称,职工,职工号,姓名,年龄,职称,职称代号号,工资,住房标准,附加福利,聘任,当职称没有需进一步描述的特性时,作属性,当职称有需进一步描述的特性时,作实体,如:,P219,如销售管理子系统的局部E-R图,顾客,应收帐,订单,订单细则,折扣规则,产品描述,组成,参照1,参照2,订货,支付,1,n,n,1,n,1,n,1,n,1,顾客号,顾客名,地址,电话,,顾客号,订单号,发票号,应收金额,支付日期,,订单号,顾客号,订货日期,,订单号,细则号,零件号,订货数,金额,,产品号,产品名,单价,,产品号,订货量,折扣,P220,如公司部门管理系统的E-R图,部门,项目,职工,电话,包括,承担,n,1,n,1,房间号,面积,项目号,预算费,参与,m,n,办公室,包含,1,n,包括,n,1,职务,承担,1,1,部门号,预算费,领导人职工号,电话号码,说明,职工号,姓名,办公电话,工资情况,E-R图集成,集成方式多个局部E-R图一次集成,或以累加方式逐步集成集成步骤合并局部E-R图,生成初步E-R图依靠协商或应用语义消除各局部E-R图之间的属性冲突:如属性的类型、取值范围冲突,或属性取值单位冲突命名冲突:如同名异义,或一义多名结构冲突:如不同应用中,同一对象有不同的抽象或同一实体包含的属性不完全相同修改和重构,生成基本E-R图依据分析和规范化理论来消除冗余,6.4 逻辑结构设计,逻辑结构设计的任务将基本E-R图转换为与选用DBMS所支持的数据模型相符合的逻辑结构逻辑结构设计的步骤,E-R图向关系模型的转换,任务将实体和实体的属性及实体间的联系转换为关系模式确定关系模式的属性和码,E-R图向关系模型的转换原则,一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码对实体间的联系一个1:1联系可以转换为一个独立的关系模式,也可以与任意对应的关系模式合并一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并一个m:n联系转换为一个关系模式三个或三个以上实体间的一个多元联系可以转换为一个关系模式具有相同码的关系模式可以合并,如公司部门管理系统的E-R图及其转换成的关系模式,部门,项目,职工,电话,包括,承担,n,1,n,1,办公室号,面积,项目号,预算费,参与,m,n,办公室,包含,1,n,包括,n,1,职务,承担,1,1,部门号,预算费,领导人职工号,电话号码,说明,职工号,姓名,办公电话,担任时期,工资,分担任务,数据模型的优化,优化通常以规范化理论为指导优化方法确定数据依赖对各个关系模式之间的数据依赖进行极小化处理,消除冗余按照数据依赖的理论对关系模式逐一分析,确定各关系模式属于第几范式按用户需求分析这些模式是否合适,是否需合并或分解对关系模式进行必要的分解,提高数据操作效率和存储空间利用率,设计用户子模式,根据局部应用需求设计用户子模式设计用户子模式的目的保证系统安全性简化用户对系统的使用DBMS中一般采用视图(View)机制,6.5 数据库的物理设计,数据库的物理设计为一个给定的逻辑数据模型选定一个最合适应用要求的物理结构的过程数据库的物理设计的依据应用环境对所需处理的事务、所涉及到的数据,各种操作的运行频率及响应时间等性能要求数据库的物理设计的目标事务响应时间小、存储空间利用率高、事物吞吐率大,数据库的物理设计,数据库的物理结构数据库在物理设备上的存储结构与存取方法依赖于给定的计算机系统关系数据库的物理设计内容设计关系、索引等数据库文件的物理存储结构为关系模式选择存取方法数据库的物理设计步骤确定数据库的物理结构对物理结构进行评价,数据库的物理设计步骤(一),确定数据库的物理结构确定需要存储的数据对象如关系、索引、聚簇、日志、备份等确定数据的存放位置如区分稳定数据和易变数据、经常存取部分和不常存取部分、机密数据和普通数据等,分开存放确定数据的存储结构如顺序结构、随机结构、链表结构、树状结构等确定数据的存取方法如索引(如B树、B+树、R树等)、聚簇、HASH法等确定系统配置如同时使用数据库的最大用户数、同时打开的数据库对象数、内存分配参数、缓冲区分配参数、存储分配参数、物理块大小、物理块装填因子、时间片大小、数据库大小、锁的数目等,对物理结构进行评价分析时间效率、空间效率、维护代价及用户要求等,数据库的物理设计步骤(二),关系模式存取方法选择,一般对同一关系建立多条存取路径以满足多用户系统的不同应用的数据存取要求常用的存取方法索引法为加快按某个属性(组)进行存取的效率,根据该属性(组)建立索引,如B+树索引建立在单个关系上,关系模式存取方法选择(续),聚簇(Cluster)法为提高按聚簇码进行查询的效率,将聚簇码上具有相同值的元组存放在连续物理块一个数据库可以建立多个聚簇,但一个关系只能由一个聚簇聚簇可以建立在单表上,也可建立在进行连接操作的多个表上SQL中与聚簇有关的操作如ORDER BY,GROUP BY,UNION,DISTINCT等HASH法设计合理的HASH函数,根据关键字值计算得到存储地址对可能出现的地址冲突现象设计合理的解决方案当某属性(组)主要出现在等连接条件或相等比较条件中,而且关系的大小可以预知,或关系大小动态变化而DBMS提供了HASH存取方法时,可考虑选用,6.6 数据库的实施和维护,数据库实施阶段的任务模式定义使用选定DBMS支持的DDL语言数据载入手工逐条录入数据转换工具应用程序编码和调试数据库试运行用实验数据测试系统功能和性能,数据库的实施和维护,数据库的运行和维护主要由DBA完成进行数据库转储和恢复,数据库安全、完整性控制,数据库性能监督、分析和改造,数据库重组和重构数据库重组:不改变原设计中的逻辑和物理结构,而对部分表重新组织其存储情况,如重新安排存储位置、回收垃圾等,以提高系统性能数据库重构:部分调整或修改数据库的逻辑和物理结构,以满足新的应用需求。,设计订货系统的数据库,包括顾客、货物和订货单信息,初模式:顾客(顾客号,收货地址,赊购限额,余额,折扣)货物(货物号,制造厂商,实际存货量,规定的最低存货量,货物描述)订货单(订货单号,顾客号,货物号,订货数量,订货细则,未发数量,订货日期,经办人),改进模式:顾客及其地址(顾客号,收货地址)顾客及其余额(顾客号,赊购限额,余额,折扣)货物及其厂商(货物号,制造厂商,实际存货量,规定的最低存货量)货物及其描述-2(货物号,货物描述)订货单(订货单号,顾客号,货物号,订货数量,订货日期,经办人)未发货情况(订货单号,未发货量)订货单细则(订货单号,订货细则),问题分析:顾客模式中,顾客号不能唯一决定收货地址 货物模式中,货物描述部分依赖于码 订货单模式中,未发数量将随发货过程更新,而其他信息相对静态;订货细则有多条,欲设计移动公司手机信息管理系统,用于管理:1、手机销售信息(由营业厅售给用户)2、手机用户档案信息(用户名,证件号码等)3、手机通话信息(每一次通话的详细情况)4、手机话费信息(每月的话费组成)在此基础上实现常用的查询,如:1、每月手机的销售情况 2、每种机型的销售情况 3、每个营业厅的手机销售情况 4、根据手机号码查询其用户信息 5、根据手机号码查询某时间段内的通话情况 6、每月手机话费收入 7、欠费用户查询试设计合适的数据库,并在此基础上用SQL实现所有的查询,设计关系模式如:营业厅(营业厅编号,地址,负责人)销售记录(营业厅编号,机型,数量,日期,经办人)手机销售单价(机型,单价)手机用户信息(手机号码,用户名,住址,证件号码)手机通话记录(手机号码,被叫号码,日期,起始时刻,通话时长)手机话费信息(手机号码,话费,漫游费,短信费)话费缴费信息(手机号码,缴费日期,金额,缴费营业厅),码?销售记录?,