1 / 54

第六章 数据库设计

第六章 数据库设计. 学习要点. 数据库设计的特点 数据库设计的基本步骤. 6.1 数据库设计概述. 数据库设计 对于一个给定的应用环境构造最优的数据库模式 数据库应用系统 使用数据库的各类系统 信息系统 信息系统是提供信息,辅助人们对应用环境进行控制和进行决策的系统 数据库是信息系统的核心和基础. 数据库设计所需技术知识. 数据库基本知识和设计技术 计算机科学基础知识、程序设计的方法和技巧 软件工程的原理和方法 应用领域的知识. 补充知识. 结构特性 ( 数据分析 ). 行为特性 ( 功能分析 ). 数据库设计的特点.

alcina
Download Presentation

第六章 数据库设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 数据库设计

  2. 学习要点 • 数据库设计的特点 • 数据库设计的基本步骤

  3. 6.1 数据库设计概述 • 数据库设计 • 对于一个给定的应用环境构造最优的数据库模式 • 数据库应用系统 • 使用数据库的各类系统 • 信息系统 • 信息系统是提供信息,辅助人们对应用环境进行控制和进行决策的系统 • 数据库是信息系统的核心和基础

  4. 数据库设计所需技术知识 • 数据库基本知识和设计技术 • 计算机科学基础知识、程序设计的方法和技巧 • 软件工程的原理和方法 • 应用领域的知识 补充知识

  5. 结构特性(数据分析) 行为特性(功能分析) 数据库设计的特点 • 硬件、软件、技术与管理的综合体 • “三分技术,七分管理,十二分基础数据” • 数据库设计与应用系统相结合 • 过去的结构化设计和逐步求精设计方法 • 着重于处理过程的特性,而推迟数据结构的设计 • 早期的数据库设计 • 致力于对数据建模法,而忽视行为设计(P204图)

  6. 数据库设计方法简述 • 手工试凑法 • 和技术人员水平和经验有关 • 规范设计法 • 将数据库设计分阶段进行 • E-R模型、关系范式理论等方法应用于设计的不同阶段 本质上还是手工设计法,基本思想是设计过程迭代、逐步求精 • 自动数据库设计工具 • Design 2000(ORACLE), PowerDesigner(SYBASE) • 数据设计和应用设计同时进行 • 很多计算机辅助软件工程(CASE,Computer Aided Software Engineering)工具

  7. Sybase建模工具:PowerDesigner10.0 • 满足企业对所有业务、数据和对象建模的需求 • 建模工具集 • 数据建模、UML建模和业务流程建模 • 将商业需求与应用技术紧密结合,不论终端用户的技术水平如何 • 保证了所有企业所用来开发软件服务的一种语言或多种语言、组件及应用都能够被全面支持 • 对UML的全面支持 • 扩大了现有的Java, C++, Corba IDL, PowerBuilder和XML的编码生成 • 增加了对Microsoft .Net平台上的最流行语言的支持

  8. 按照规范化设计的方法 数据库设计的基本步骤 需求文档 数据字典 数据流图等 需求收集和分析 需求分析阶段 应用需求 (数据、处理) 概念设计阶段 设计概念结构 用E-R图描述 的概念模型 转换规则、 DBMS功能、 优化方法 设计逻辑结构 逻辑设计阶段 某种数据模型 并优化 数据模型优化 应用要求 DBMS详细特征 设计物理结构 存储安排 方法选择 存取路径建立 物理设计阶段 设计评价,性能预测 不满意 物理实现 编写模式 数据装入 数据库试运行 数据库实施阶段 试验性运行 不满意 数据库运行维护阶段 使用、维护数据库 性能检测、转储/恢复 数据库重组和重构 过程迭代、逐步求精的设计思想

  9. 数据库结构设计阶段 • 数据库的设计必须与数据处理的设计在每一各设计步骤中紧密结合,相互参照,相互补充

  10. 设计过程中形成的数据库各级模式 应用1 应用2 应用3 应用4 外模式 外模式 外模式 外模式 逻辑设计 阶段 映象 应用要求 应用1 内模式 概念模式 逻辑模式 应用2 应用要求 应用要求 应用3 映象 转换 应用要求 应用4 综合 需求分析 阶段 概念设计 阶段 逻辑设计 阶段 物理设计 阶段

  11. 6.2 需求分析 • 需求分析的任务:调查、收集、分析用户对数据库的要求 • 信息要求 • 需存储的数据 • 处理要求 • 要完成的功能、响应时间、处理方式等 • 安全性与完整性要求 • 用户管理、数据管理、数据一致性等

  12. 调查用户需求的步骤 • 调查组织机构情况 • 调查各部门的业务活动情况 • 熟悉业务活动,明确新系统的各种要求 • 确定新系统的边界(需计算机化的部分)

  13. 调查用户需求的方法 • 跟班作业 • 开调查会 • 请专人介绍 • 询问 • 填写调查表 • 查阅原系统的工作记录

  14. 抽象需求分析的方法 • 结构化分析(SA)方法 • 自顶向下、逐层分解 • 形成需求文档、数据字典(DD)及多层数据流图(DFD) 数据存储 处理 数据输出 数据来源 某一层次的抽象图

  15. 需求分析的过程 调查组织 机构总体 情况 熟悉 业务活动 明确 用户需求 确定 系统边界 概念 设计 用户 设计员 DD DFD

  16. 示意:售书系统 教材 购销 系统 购书单缺书单 学 生 书库保管员 领书单进书通知

  17. 生 1 销售 2 采购 书库 保管员 F1教材存量表 购书单             缺书单 进书通知 领书单          进书通知 F2缺书登记表 售书系统

  18. P1 销售 到货通知 P2 采购 订货单 订货单 顾客 供应商 发货单 发货单 收款通知 F1 配件库存 P3 会计 应付款通知 收据 付款 付款 例子:销售采购管理系统 第1层数据流程图

  19. F2 配件目录 业务员 P1.1 编辑 订货单 不合格 P1.3 确定 订货 P1.5 产生暂存 订货单 订货单 不满足的订货 合格 采购 顾客 新顾客 可发的订货 发货单 F4 暂存订货单 到货通知 P1.2 登录 新顾客 F3 顾客 P1.4 开发货单 修改库存 P1.6 对照暂存 订货单 P1.7 检索 库存 F1 配件库存 P1.8 编制销售、 库存报表 经理 F5 销售历史 F10 应收款明细帐 第2层数据流程图之一(销售)

  20. P2.3 按供应商汇总 F4 暂存订货单 F6 待订货的配件 订货单 P2.1 按配件汇总 P2.5 修改库存、待订数量 供应商 F8 向供应商的订货单 P2.2 确定订货的配件 发货单 P2.4 核对 发货单 正确发货单 F1 配件库存 错误发货单 P2.6 编制到货通知 销售 F9 应付款明细帐 第2层数据流程图之二(采购)

  21. P3.1 开收据并 修改明细帐 P3.5 编制会计报表 付款 顾客 经理 收据 P3.4 修改总帐 F11 总帐 F10 应收款明细帐 F9 应付款明细帐 P3.2 核对 付款单 P3.3 付款并修改明细帐 供应商 应付款通知 第2层数据流程图之三(会计)

  22. 数据依赖 数据完整性约束 数据完整性约束 数据字典 • 描述系统中的数据,包括数据项、数据结构、数据流、数据存储和处理过程 • 数据项描述= {数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系} • 数据结构描述= {数据结构名,含义说明,组成:{数据项或数据结构}} • 数据流描述= {数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量} • 数据存储描述= {数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式} • 处理过程描述= {处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}

  23. 需求分析 • 需求分析的结果反馈给用户审定 • 需求分析需要考虑需求变更和扩充,强调用户参与

  24. 6.3 概念结构设计 • 概念结构 • 将在需求分析阶段得到的应用需求抽象为信息世界的结构,常用E-R模型来描述 • 独立于机器 • 概念结构的特点 • 真实充分地反映客观世界 • 易于理解 • 易于更改 • 易于转换成为数据模型

  25. 概念结构设计的方法 P214图 • 自顶向下 • 首先定义全局概念结构的框架,然后逐步细化 • 自底向上 • 首先定义各局部应用的概念结构,然后集成 • 逐步扩张 • 首先定义最重要的核心概念结构,然后向外扩充 • 混合策略 • 首先用自顶向下策略设计全局概念结构的框架,再集成用自底向上策略设计的各局部概念结构

  26. 概念结构设计的步骤 需求分析 DD DFD 数据抽象 局部视图设计 局部E-R图 用户反馈 直至满意 总E-R图 视图集成 逻辑结构设计

  27. 数据抽象 • 数据抽象 • 抽象出对客观世界中的概念、对象的本质特性 • 用于在需求分析阶段将收集到的数据进行分类、组织(聚集),从而形成实体、实体的属性,标识实体的码,确定实体间的联系类型,以便设计相应的E-R图 • 三类数据抽象机制 • 分类 • 聚集 • 概括

  28. 数据抽象机制之一 • 分类 • 将一类具有共同特性和行为的对象定义为一种某类型,在E-R模型中的实体型就是这种抽象,如学生,课程 • 抽象了对象的值和型之间“is member of”语义 实体型 学生 实体型 课程 “is member of” “is member of” 张英 王平 赵斌 数据库 操作系统 C语言

  29. 数据抽象机制之二 • 聚集 • 定义某类型的组成成分,对应E-R模型中实体的属性 • 抽象了对象类型和其成分之间的“is part of”语义 实体型 仓库 仓库号 面积 主任 学生 “is part of” 姓名 年龄 性别 工资 属性 学号 姓名 专业 班级

  30. 数据抽象机制之三 • 概括 • 定义类型之间的子集联系,形成超(父)类、子类 • 抽象了类型之间“is subset of”语义 • 概括的重要性质:继承,即子类集成超类的所有抽象 • 是E-R模型的抽象机制的扩充 学号, 姓名, 性别, 年龄 超类 学生 “is subset of” 研究生 本科生 子类 专业, 综合排名 导师, 研究方向 概括的E-R表示

  31. 概念设计的第一步 • 利用抽象机制,对需求分析阶段收集到的数据进行分类、组织(聚集) • 形成实体,实体的属性,标识实体的码,确定实体间的联系类型 • 设计局部E-R图

  32. 局部E-R图设计方法 • 选择局部应用:中层数据流图为依据 • 如物资管理、人事管理、销售管理等 • 逐一设计局部E-R图 • 根据数据抽象后所的得DD,并参照DFD,标定局部应用中的实体、实体属性、实体码,确定实体间的联系及类型 • 设计准则(某事物作为实体还是作为属性更恰当?) • 能作为属性对待的事物尽量作为属性对待 • 能作为属性的事物必须 • 不能再具有需要描述的性质 • 不能与其他实体具有联系(E-R图中的联系是实体之间的联系)

  33. P219 如: 职工 职工号 姓名 年龄 职称 当职称没有需进一步描述的特性时,作属性 聘任 职工 职称 职工号 姓名 年龄 职称代号号 工资 住房标准 附加福利 当职称有需进一步描述的特性时,作实体

  34. P220 如销售管理子系统的局部E-R图 顾客号,顾客名, 地址,电话,… 1 n 顾客 支付 应收帐 1 顾客号,订单号,发票号, 应收金额,支付日期,… 订货 n 订单 订单号,顾客号,订货日期,… 1 组成 n 1 n n 1 订单细则 折扣规则 参照1 参照2 产品描述 产品号,订货量,折扣 订单号,细则号, 零件号,订货数, 金额,… 产品号,产品名,单价,…

  35. 如公司部门管理系统的E-R图 部门号,预算费, 领导人职工号 房间号,面积 项目号,预算费 1 n n 1 部门 承担 项目 办公室 包含 1 1 n 包括 包括 参与 n m n 电话 电话号码,说明 1 承担 职务 1 职工 职工号,姓名,办公电话 工资情况

  36. E-R图集成 • 集成方式 • 多个局部E-R图一次集成,或以累加方式逐步集成 • 集成步骤 • 合并局部E-R图,生成初步E-R图 • 依靠协商或应用语义消除各局部E-R图之间的 • 属性冲突:如属性的类型、取值范围冲突,或属性取值单位冲突 • 命名冲突:如同名异义,或一义多名 • 结构冲突:如不同应用中,同一对象有不同的抽象或同一实体包含的属性不完全相同 • 修改和重构,生成基本E-R图 • 依据分析和规范化理论来消除冗余

  37. 优化的 数据模型 概念模型 基本E-R图 一般数据模型 关系、网状、层次 特定DBMS支 持的数据模型 转换规则 DBMS的 特点和限制 优化方法 6.4 逻辑结构设计 • 逻辑结构设计的任务 • 将基本E-R图转换为与选用DBMS所支持的数据模型相符合的逻辑结构 • 逻辑结构设计的步骤

  38. E-R图向关系模型的转换 • 任务 • 将实体和实体的属性及实体间的联系转换为关系模式 • 确定关系模式的属性和码

  39. E-R图向关系模型的转换原则 • 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码 • 对实体间的联系 • 一个1:1联系可以转换为一个独立的关系模式,也可以与任意对应的关系模式合并 • 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并 • 一个m:n联系转换为一个关系模式 • 三个或三个以上实体间的一个多元联系可以转换为一个关系模式 • 具有相同码的关系模式可以合并

  40.  部门(部门号,部门预算费,领导人职工号)  职工(职工号,姓名,办公电话,部门号)  办公室(办公室号,面积,部门号)  项目(项目号,项目预算费,部门号)  电话(电话号码,说明,办公室号)  项目承担情况(职工号,项目号,分担任务)  工资历史(职工号,职务,担任时期,工资) 部门(D#, Buget, MgrE#) 职工(E#, D#, J#, Phone#) 项目(J#, D#, JBuget) 办公室(O#, D#, Area) 电话(Phone#, O#, Owner) 工资史(E#, 职务, 工资) 如公司部门管理系统的E-R图及其转换成的关系模式 部门号,预算费, 领导人职工号 办公室号,面积 项目号,预算费 1 n n 1 部门 承担 项目 办公室 包含 1 1 n 包括 包括 参与 分担任务 n m n 电话 1 承担 职务 1 职工 电话号码,说明 职工号,姓名,办公电话 担任时期,工资

  41. 数据模型的优化 • 优化通常以规范化理论为指导 • 优化方法 • 确定数据依赖 • 对各个关系模式之间的数据依赖进行极小化处理,消除冗余 • 按照数据依赖的理论对关系模式逐一分析,确定各关系模式属于第几范式 • 按用户需求分析这些模式是否合适,是否需合并或分解 • 对关系模式进行必要的分解,提高数据操作效率和存储空间利用率

  42. 设计用户子模式 • 根据局部应用需求设计用户子模式 • 设计用户子模式的目的 • 保证系统安全性 • 简化用户对系统的使用 • DBMS中一般采用视图(View)机制

  43. 6.5 数据库的物理设计 • 数据库的物理设计 • 为一个给定的逻辑数据模型选定一个最合适应用要求的物理结构的过程 • 数据库的物理设计的依据 • 应用环境对所需处理的事务、所涉及到的数据,各种操作的运行频率及响应时间等性能要求 • 数据库的物理设计的目标 • 事务响应时间小、存储空间利用率高、事物吞吐率大

  44. 数据库的物理设计 • 数据库的物理结构 • 数据库在物理设备上的存储结构与存取方法 • 依赖于给定的计算机系统 • 关系数据库的物理设计内容 • 设计关系、索引等数据库文件的物理存储结构 • 为关系模式选择存取方法 • 数据库的物理设计步骤 • 确定数据库的物理结构 • 对物理结构进行评价

  45. 数据库的物理设计步骤(一) • 确定数据库的物理结构 • 确定需要存储的数据对象 • 如关系、索引、聚簇、日志、备份等 • 确定数据的存放位置 • 如区分稳定数据和易变数据、经常存取部分和不常存取部分、机密数据和普通数据等,分开存放 • 确定数据的存储结构 • 如顺序结构、随机结构、链表结构、树状结构等 • 确定数据的存取方法 • 如索引(如B树、B+树、R树等)、聚簇、 HASH法等 • 确定系统配置 • 如同时使用数据库的最大用户数、同时打开的数据库对象数、内存分配参数、缓冲区分配参数、存储分配参数、物理块大小、物理块装填因子、时间片大小、数据库大小、锁的数目等

  46. 数据库的物理设计步骤(二) • 对物理结构进行评价 • 分析时间效率、空间效率、维护代价及用户要求等

  47. 关系模式存取方法选择 • 一般对同一关系建立多条存取路径以满足多用户系统的不同应用的数据存取要求 • 常用的存取方法 • 索引法 • 为加快按某个属性(组)进行存取的效率,根据该属性(组)建立索引,如B+树 • 索引建立在单个关系上

  48. 关系模式存取方法选择(续) • 聚簇(Cluster)法 • 为提高按聚簇码进行查询的效率,将聚簇码上具有相同值的元组存放在连续物理块 • 一个数据库可以建立多个聚簇,但一个关系只能由一个聚簇 • 聚簇可以建立在单表上,也可建立在进行连接操作的多个表上 • SQL中与聚簇有关的操作如ORDER BY, GROUP BY, UNION, DISTINCT等 • HASH法 • 设计合理的HASH函数,根据关键字值计算得到存储地址 • 对可能出现的地址冲突现象设计合理的解决方案 • 当某属性(组)主要出现在等连接条件或相等比较条件中,而且关系的大小可以预知,或关系大小动态变化而DBMS提供了HASH存取方法时,可考虑选用

  49. 6.6 数据库的实施和维护 • 数据库实施阶段的任务 • 模式定义 • 使用选定DBMS支持的DDL语言 • 数据载入 • 手工逐条录入 • 数据转换工具 • 应用程序编码和调试 • 数据库试运行 • 用实验数据测试系统功能和性能

  50. 数据库的实施和维护 • 数据库的运行和维护 • 主要由DBA完成 • 进行数据库转储和恢复,数据库安全、完整性控制,数据库性能监督、分析和改造,数据库重组和重构 • 数据库重组:不改变原设计中的逻辑和物理结构,而对部分表重新组织其存储情况,如重新安排存储位置、回收垃圾等,以提高系统性能 • 数据库重构:部分调整或修改数据库的逻辑和物理结构,以满足新的应用需求。

More Related