




已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代制造信息技术基础第一部分数据库系统概论数据库设计 徐世新北京航空航天大学机械学院7202002年7月 数据库设计 对于一个给定的应用环境 构造最优的数据库模式 建立数据库及其应用系统 使之能够有效地存储数据 满足各种用户的应用要求 信息要求和处理要求 主要内容 数据库设计概述 数据库和信息系统数据库设计的特点数据库设计方法概述数据库设计的基本步骤 需求分析的任务需求分析的方法数据字典 概念结构概念结构设计的方法与步骤数据抽象与局部视图设计视图的集成 E R图向关系模型的转换数据模型的优化设计用户子模式 数据库的物理设计的内容和方法关系模式存取方法选择确定数据库的存储结构评价物理结构 数据的载入和应用程序的调试数据库的试运行数据库的运行和维护 需求分析 概念结构设计 逻辑结构设计 数据库的物理设计 数据库的实施和维护 数据库设计概述 数据库和信息系统 数据库是信息系统的核心和基础 数据库把信息系统中大量的数据按一定的模型组织起来 提供存储 维护 检索数据的功能 使信息系统可以方便 及时 准确地从数据库中获得所需的信息 大型数据库的建设必须应用软件工程的原理和方法 对于从事数据库设计的专业人员来讲 应具备多方面的技术和知识 数据库的基础知识和数据库设计技术计算机科学的基础知识和程序设计的方法和技巧软件工程的原理和方法应用领域的知识 1 特点之一 数据库建设是硬件 软件和干件的结合 2 特点之二 数据库设计应该和应用系统设计相结合 即 整个设计过程中要把结构 数据 设计和行为 处理 设计密切结合起来 数据库设计的特点 规范设计法中比较著名的有新奥尔良方法 它将数据库设计分为四个阶段 需求分析 概念设计 逻辑设计和物理设计 规范设计法从本质上看是手工设计方法 其基本思想是过程迭代和逐步求精 数据库设计工具软件可以自动地或辅助设计人员完成数据库设计过程中的很多任务 数据设计方法简述 数据库设计的基本步骤 将概念结构转换为某个DBMS所支持的数据模型 并对其进行优化 为逻辑数据模型选一个最适合应用环境的物理结构 包括存取结构和存取方法 建立数据库 编制与调试应用程序 组织数据入库 并进行试运行 首先必须准确了解与分析用户需求 包括数据与处理 通过对用户需求进行综合 归纳与抽象 形成一个独立于具体DBMS的概念模型 数据库设计的基本步骤 需求分析 需求分析的任务 需求分析就是分析用户的要求 其任务是通过详细调查现实世界要处理的对象 组织 部门 企业等 充分了解原系统 手工系统或计算机系统 工作概况 明确用户的各种需求 然后在此基础上确定新系统的功能 通过调查 收集与分析 获得用户对数据库的如下要求 1 信息要求 指用户需要从数据库中获得信息的内容与性质 由信息要求可以导出数据要求 即在数据库中需要存储哪些数据 2 处理要求 指用户要完成什么处理功能 对处理的响应时间有什么要求 处理方式是批处理还是联机处理 3 安全性与完整性要求 调查用户需求的具体步骤是 1 调查组织机构情况 2 调查各部门的业务活动情况 3 在熟悉业务活动的基础上 协助用户明确对新系统的各种要求 4 确定新系统的边界 需求分析的方法 在调查过程中 可以根据不同的问题和条件 使用不同的调查方法 常用的调查方法有 1 跟班作业 2 开调查会 3 请专人介绍 4 询问 设计调查表请用户填写 查阅记录 分析和表达用户的需求 结构化分析方法 SA方法 它是由E Yourdon TomDemarco等人倡导的一种面向数据流的分析方法 SA方法使用数据流图 数据字典 结构化英语 判定表和判定树等工具 来建立软件需求说明书 它将软件系统抽象为一系列的逻辑加工单元 这些逻辑加工单元接受输入数据流 经过加工 使之变换为输出数据流 数据模型用数据流图表示 并用数据字典进行说明 自顶向下逐层分解的原则SA方法从最上层的系统组织机构入手 采用自顶向下 逐层分解的方式分析系统 软件需求说明书 一套分层的数据流图 数据字典 补充材料 需求分析的方法 需求分析的方法 需求分析的方法 数据流图由四种元素组成 数据流 处理 数据存储和数据源宿 数据流 由一组成分固定的数据组成 它具有名称和流向 用标有名字的箭头表示 处理 表示对数据所进行的加工和变换 用圆圈表示 处理的名称是一个动词短语 数据存储 表示用文件方式或数据库方式所存储的数据 数据源宿 表示数据输入的源点和数据输出的汇点 它们分别表示对系统提供输入数据流的外部实体及接收系统输出数据流的外部实体 数据流图的绘制 确定系统的输入输出 由外向里画系统的顶层数据流图 自顶向下逐层分解 绘出分层数据流图 需求分析的方法 需求分析的方法 绘分层数据流图应注意的问题 编号 父图和子图的平衡 平衡 是指子图中所有的输入数据流必须是父图中相应的加工的输入数据流 子图中所有的输出数据流必须是父图中相应加工的输出数据流 分解的深度和层次 检查数据流的输入和输出 一个加工所产生的某个输出数据在加工中既没有被产生 也没有作为输入数据输入到这个加工 则这个数据一定是在加工过程中被遗漏了 一个加工的某个输入既没有在加工中参加变换 又没有被输出 则一般应将此输入数据去掉以简化加工之间的联系 决定比赛名单 这个加工是根据输入 项目 和 运动员名单 来产生输出 项目参加者 的 若有运动员名单 姓名 单位 项目项目参加者 姓名 项目 运动员号码 决定比赛名单 这个加工需要输出 运动员号码 但此加工本身是不产生 运动员号码 的 在输入数据中也不包含它 则可肯定 此数据一定是在输入中被遗漏了 应在输入流中加入 运动员名单 姓名 单位 运动员号码 项目 尽量简化处理间的联系 并注意处理分解的均匀 需求分析的方法 加工 开发票 是根据输入数据流 订货单 和 价格 文件来产生输出数据流 发票 的 若这些数据流的组成如下 订货单 单位名 货名 货号 数量价格 货名 单价发票 单位名 货名 单价 数量 总计可以发现 这个加工中并不使用 货号 这个数据 故可在输入数据流 订货单 中去掉它 订货单 单位名 货名 数量 数据项是不可再分的数据单位数据项描述 数据项名 数据项含义说明 别名 数据类型 长度 取值范围 取值含义 与其他数据项的逻辑关系 数据项之间的联系 示例 数据项名 m别名 齿轮的模数含义说明 齿轮的模数m p 互相啮合的两齿轮 其模数相等 采用标准模数可以减少加工齿轮刀具的数量数据类型 枚举数据长度 1字节取值范围 1 1 25 1 5 2 2 5 3 4 5 6 8 10 12 16 20 25 32 40 50 与其他数据项的逻辑关系 齿轮的模数m确定后 可算出轮齿的基本尺寸 如齿距 齿高等 注释 模数采用第一系列 单位为mm 数据字典 数据字典是系统中各类数据描述的集合 是进行详细的数据收集和数据分析所获得的主要成果 数据字典通常包括数据项 数据结构 数据流 数据存储和处理过程五个部分 数据结构反映了数据之间的组合关系数据结构描述 数据结构名 含义说明 组成 数据项或数据结构 示例 数据结构名 斜齿轮含义说明 斜齿圆柱齿轮的基本参数组成 法项模数 mn 齿数 z 螺旋角 数据流是数据结构在系统内传输的路径数据流描述 数据流名 说明 数据流来源 数据流去向 组成 数据结构 平均流量 高峰期流量 示例 数据流名 链传动已知条件数据流来源 设计要求 数据源S数据流去向 处理1 设计链传动 组成 小链轮转速 n1 传动比 i 大链轮转速 n2 小链轮传动功率 P 中心距要求 数据字典 数据存储是数据结构停留或保存的地方 也是数据流的来源和去向之一数据存储描述 数据存储名 说明 编号 输入的数据流 输出的数据流 组成 数据结构 数据量 存取频度 存取方式 示例 数据存储名 传动比系数说明 ki输出数据流 已知条件组成 传动比 i 传动比系数 ki 数据存储名 定期帐目组成 帐号 户名 款额 存期 存入日期 利息 储户地址存取方式 按帐号递增顺序排列 数据字典 处理过程的具体逻辑一般用判定表或判定树来描述处理过程描述 处理过程名 说明 输入 数据流 输出 数据流 处理 简要说明 示例 处理过程名 处方划价说明 计算患者的付费金额输入 收费价目表 处方 患者类型输出 付费金额 付费明细表处理 按收费价目表 根据处方上的药品数量和处置 计算总额 根据患者类型 公费 自费等 确定付费比例 然后由上面的总额计算实际付费金额处理过程名 设计链传动输入 已知条件输出 传动参数 结构参数 轴压力处理 依照 中的方法 数据字典 数据字典 数据字典是关于数据库中数据的描述 即元数据 而不是数据本身 需求分析这一阶段收集到的基础数据 用数据字典来表达 和一组数据流程图是下一步进行概念设计的基础 强调两点 需求分析阶段一个重要而困难的任务是收集将来应用所涉及的数据 设计者应充分考虑到可能的扩充和修改 使设计易于更改 系统易于扩充 必须强调用户的参与 数据库应用系统和广泛的用户有密切的联系 许多人要使用数据库 数据库的建立又可能对更多人的工作环境产生重要影响 逻辑描述工具 结构化语言 结构化语言适合于逻辑加工关系简单的描述 它的结构通常分为内外两大层 外层可有多层 并可相互嵌套 具有较固定的格式 常见的语句有IF THEN ELSE DO WHILE ENDWHILE DOCASE ENDCASE等 用于描述顺序 选择和重复的控制结构 内部则比较灵活 可以使用数据词典中定义过的词汇 运算符 关系符和一些易于理解的名词等 例 某航空公司行李托运收费计算方法 用自然语言描述如下 乘客可以免费携带30kg重的行李 超过30kg 国内乘客 乘坐头等舱 超重部分每千克收费4元 乘坐其他舱超重部分每千克收费6元 超过30kg 国外乘客 乘坐头等舱 超重部分每千克收费8元 乘坐其他舱超重部分每千克收费12元 逻辑描述工具 结构化语言 IF行李重量 30kg托运费 0 免交托运费ELSEIF是国内乘客IF是头等舱托运费 W 30 4 国内乘客 头等舱ELSE托运费 W 30 6 国内乘客 其他舱ENDIFELSEIF是头等舱托运费 W 30 8 国外乘客 头等舱ELSE托运费 W 30 12 国外乘客 其他舱ENDIFENDIFENDIF 逻辑描述工具 判定表 一张判定表通常由四部分组成 左上部列出的是所有的条件 左下部为所有可能的操作 右上部表示各种条件组合的一个矩阵 右下部是对应于每种条件组合应有的操作 逻辑描述工具 判定表 逻辑描述工具 判定树 逻辑描述工具 判定树 概念结构设计 概念结构的主要特点 能真实 充分地反映现实世界 包括事物和事物之间的联系 能满足用户对数据的处理要求 是对现实世界的一个真实模型易于理解 从而可以用它和不熟悉计算机的用户交换意见 用户的积极参与是数据库设计成功的关键易于更改 当应用环境和应用要求改变时 容易对概念模型修改和扩充易于向关系 网状 层次等各种数据模型转换 概念结构 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础 它比数据模型更独立于机器 更抽象 从而更加稳定 描述概念模型的有力工具是E R模型 概念结构设计的方法与步骤 设计概念结构通常有四类方法 1 自顶向下 即首先定义全局概念结构的框架 然后逐步细化 2 自底向上 即首先定义各局部应用的概念结构 然后将它们集成起来 得到全局概念结构 3 逐步扩张 首先定义最重要的核心概念结构 然后向外扩充 以滚雪球方式生成其他概念结构 直至总体概念结构 混合策略 即将自顶向下和自底向上相结合 用自顶向下策略生成一个全局概念结构框架 以它为骨架集成由自底向上策略中设计的各局部概念结构 策略 自顶向下分析需求与自底向上设计概念结构 概念结构设计的方法与步骤 概念结构设计的方法与步骤 自底向上设计概念结构的步骤 抽象数据并设计局部视图 集成局部视图 得到全局的概念结构 一般有三种数据抽象 分类 定义某一类概念作为现实世界中的一组对象的类型 这些对象具有某些共同的特性和行为 它抽象了对象值和型之间的 ismemberof 的语义 数据抽象与局部视图设计 聚集 定义某一类型的组成部分 它抽象了对象内部类型和成分之间的 ispartof 的语义 概括 定义类型之间的一种子集联系 它抽象了类型之间的 issubsetof 的语义 概括具有继承性 数据抽象与局部视图设计 概念结构设计的第一步是对需求分析阶段收集到的数据进行分类 组织 形成实体 标识实体的码 确定实体之间的联系类型 设计分E R图 选择局部应用 根据某个系统的具体情况 在多层的数据流图中选择一个适当层次的数据流图 作为设计分E R图的出发点 让这组图的每一部分对应一个局部应用 人们往往以中层数据流图作为设计分E R图的依据 逐一设计分E R图 将局部应用所涉及的数据从数据字典中取出来 参照数据流图 标定局部应用中的实体 实体的属性 标识实体的码 确定实体之间的联系及其类型 为了简化E R图的处置 现实世界的事物能作为属性对待的 尽量作为属性对待 本来 实体与属性之间并没有形式上可截然划分的界限 但可给出两条准则 作为 属性 不能再具有需要描述的性质 属性 必须是不可分的数据项 不能包含其他属性 属性 不能与其他实体具有联系 即E R图中所表示的联系是实体之间的联系 数据抽象与局部视图设计 例 在医院中 一个病人只能住在一个病房 病房号可以作为病人实体的一个属性 但若病房还要与医生实体发生联系 即一个医生负责若干病房的病人的医疗工作 则病房应作为一个实体 数据抽象与局部视图设计 数据抽象与局部视图设计 例 若一种货物只存放在一个仓库 则可以把存放货物的仓库号作为描述货物存放地点的属性 但若一种货物可存放在多个仓库中 或仓库本身又用面积作为属性 或与职工发生管理上的联系 则就应把仓库作为一个实体 数据抽象与局部视图设计 实例 销售管理子系统分E R图的设计 主要功能 处理顾客和销售员送来的订单 工厂是根据订货安排生产的 交出货物同时开出发票 收到顾客付款后 根据发票存根和信贷情况进行应收款处理 数据抽象与局部视图设计 数据抽象与局部视图设计 接收订单 视图抽象与局部视图设计 处理订单 视图抽象与局部视图设计 开发票 视图抽象与局部视图设计 支付过帐 视图抽象与局部视图设计 分E R图的框架 每张订单由订单号 若干头信息和订单细节组成 订单细节又有订货的零件号 数量等来描述 订单细节不应作为订单的属性处理而应该上升为实体 一张订单可以定若干产品 故订单与订单细节两实体之间是一对多的联系 原订单和产品的联系实际上是订单细节和产品的联系 工厂对大宗订货给予优惠 每种产品都规定了不同订货数量的折扣 应增加一个 折扣规则 实体存放这些信息 视图抽象与局部视图设计 销售管理子系统的分E R图 对每个实体定义的属性如下 顾客 顾客号 顾客名 地址 电话 信贷状况 帐目余额 订单 订单号 顾客号 订货项数 订货日期 交货日期 工种号 生产地点 订单细则 订单号 细则号 零件号 订货数 金额 应收帐款 顾客号 订单号 发票号 应收金额 支付日期 支付金额 当前余额 贷款限额 产品描述 产品号 产品名 单价 重量 折扣规则 产品号 订货量 折扣 视图的集成 每次集成局部E R图时需要分两步 1 合并 解决各分E R图之间的冲突 将各分E R图合并起来生成初步E R图 2 修改和重构 消除不必要的冗余 生成基本E R图 视图的集成可以有两种方式 多个分E R图一次集成 逐步集成 用累加的方式一次集成两个分E R图 视图的集成 合并分E R图 生成初步E R图 1 属性冲突属性域冲突 即属性值的类型 取值范围或取值集合不同属性取值单位冲突 2 命名冲突 3 结构冲突同一对象在不同应用中具有不同的抽象 解决方法通常是把属性变为实体或把实体变为属性 使同一对象具有相同的抽象 同一实体在不同分E R图中所包含的属性个数和属性排列次序不完全相同 解决方法是使该实体的属性取各分E R图中属性的并集 再适当调整属性的次序 视图的集成 视图的集成 消除不必要的冗余 生成基本E R图 1 分析方法 消除冗余主要采用分析方法 即以数据字典和数据流图为依据 根据数据字典中关于数据项之间逻辑关系的说明来消除冗余 Q3 Q1 Q2 Q4 Q5 故Q3 Q4是冗余数据 可以消去 产品与材料间m n的冗余联系也应消去 视图的集成 2 规范化理论 确定分E R图实体之间的数据依赖求函数依赖集FL与其最小覆盖GL的差集D 然后逐一考察D中的函数依赖 确定是否是冗余的联系 若是 就把它去掉 由于规范化理论受到泛关系假设的限制 应注意下面两个问题 冗余的联系一定在D中 而D中的联系不一定是冗余的联系当实体之间存在多种联系时 要将实体之间的联系在形式上加以区分 如 负责人 职工号 部门号 部门号 负责人 职工号 视图的集成 实例 某工厂管理信息系统的视图集成 逻辑结构设计 逻辑结构设计的步骤 1 将概念结构转换为一般的关系 网状 层次模型 2 将转换来的模型向特定DBMS支持下的数据模型转换 3 对数据模型进行优化 E R图向关系模型的转换 E R图转换为关系模式一般遵循如下原则 一个实体型转换为一个关系模式 实体的属性就是关系的属性 实体的码就是关系的码 一个1 1联系可以转换为一个独立的关系模式 也可以与任意一端对应的关系模式合并 一个1 n联系可以转换为一个独立的关系模式 也可以与n端对应的关系模式合并 若转换为一个独立的关系模式 则与该实体相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为n端实体的码一个m n联系转换为一个关系模式 与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为实体的码三个或三个以上实体间的一个多元联系可以转换为一个关系模式 与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为各实体码的组合 具有相同码的关系模式可以合并 实例 E R图转换为关系模型部门 部门号 部门名 经理的职工号 职工 职工号 职工名 部门号 职务 产品 产品号 产品名 产品组长的职工号 供应商 供应商号 姓名 零件 零件号 零件名 职工工作 职工号 产品号 工作天数 供应 产品号 供应商号 零件号 供应量 E R图向关系模型的转换 数据模型的优化 数据库逻辑设计的结果不是唯一的 为了进一步提高数据库应用系统的性能 还应该根据应用需要适当地修改 调整数据模型的结构 这就是数据模型的优化 关系模型的优化通常以规范化理论为指导 确定数据依赖 按需求分析阶段所得到的语义 分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依赖 对于各个关系模式之间的数据依赖进行极小化处理 消除冗余的联系 按照数据依赖的理论对关系模式逐一进行分析 考察是否存在部分函数依赖 传递函数依赖 多值依赖等 确定各关系模式分别属于第几范式 按照需求分析阶段得到的处理要求 分析这些模式对于这样的应用环境是否合适 确定是否要对某些模式进行合并或分解 对关系模式进行必要的分解 提高数据操作的效率和存储空间的利用率 常用的两种分解方法是水平分解和垂直分解 水平分解是把 基本 关系的元组分为若干子集合 定义每个子集合为一个子关系 以提高系统的效率垂直分解是把关系模式R的属性分解为若干子集合 形成若干子关系模式 其原则是经常在一起使用的属性从R中分解出来形成一个子关系模式 设计用户外模式 将概念模型转换为全局逻辑模型后 还应根据局部的应用要求 结合具体DBMS的特点 设计用户的外模式 在RDBMS中可以利用视图设计更符合局部用户需要的外模式 在定义外模式时可以注重考虑用户的习惯与方便 包括 1 使用更符合用户习惯的别名 2 可对不同级别的用户定义不同的视图 以保证系统的安全性 3 简化用户对系统的使用 产品 产品号 产品名 规格 单价 生产车间 生产负责人 产品成本 产品合格率 质量等级 为一般顾客建立视图 产品1 产品号 产品名 规格 单价 为销售部门建立视图 产品2 产品号 产品名 规格 单价 生产成本 数据库的物理设计 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构 它依赖于给定的计算机系统为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程 就是数据库的物理设计 确定数据库的物理结构 在关系数据库中主要指存取方法和存储结构 对物理结构进行评价 评价的重点是时间和空间效率 数据库的物理设计的内容和方法 首先 对要运行的事物进行详细分析 获得选择物理数据库设计所需要的参数其次 要充分了解所用的DBMS的内部特性 特别是系统提供的存取方法和存储结构 对于数据库查询事物 需要得到如下信息 查询的关系 查询条件所涉及的属性 连接条件所涉及的属性 查询的投影属性对于数据更新事物 需要得到如下信息 被更新的关系 每个关系上的更新操作 修改操作要修改的属性值 通常对于关系数据库物理设计的内容主要包括 为关系模式选择存取方法 设计关系 索引等数据库文件的物理存储结构 关系模式存取方法选择 索引存取方法的选择 根据应用要求确定对关系的哪些属性列建立索引 哪些属性列建立组合索引 哪些索引要设计为唯一索引等 如果一个 或一组 属性经常在查询条件中出现 则考虑在这个 或这组 属性上建立索引 或组合索引 如果一个属性值经常作为最大值和最小值等聚集函数的参数 则考虑在这个属性上建立索引 如果一个 或一组 属性经常在连接操作的连接条件中出现 则考虑在这个 或这组 属性上建立索引 关系模式存取方法选择 为了提高某个属性 或属性组 的查询速度 把这个或这些属性 聚簇码 上具有相同值的元组集中存放在连续的物理块称为聚簇聚簇存取方法的选择 确定需要建立多少个聚簇 每个聚簇中包括哪些关系 首先 设计侯选聚簇 对经常在一起进行连接操作的关系可以建立聚簇 若一个关系的一组属性经常出现在相等比较条件中 则该单个关系可建立聚簇 若一个关系的一个 或一组 属性上的值重复率很高 则此单个关系可建立聚簇 然后 检查侯选聚簇中的关系 取消其中不必要的关系 从聚簇中删除经常进行全表扫描的关系 从聚簇中删除更新操作远多于连接操作的关系 不同的聚簇中可能包含相同的关系 一个关系可以在某一个聚簇中 但不能同时加入多个聚簇 要从这多个聚簇方案中选择一个较优的 即在这个聚簇上运行各种事物的总代价最小 确定数据库的存储结构 确定数据库物理结构主要指确定数据的存放位置和存储结构 包括确定关系 索引 聚簇 日志 备份等的存储安排和存储结构 确定系统配置等 确定数据的存放位置 为了提高系统性能 应该根据应用情况将数据的易变部分与稳定部分 经常存取部分和存取频率较低部分分开存放 确定系统配置 DBMS产品一般都提供了一些系统配置变量 存储分配参数 供设计人员和DBA对数据库进行物理优化 评价物理结构 数据库物理设计过程中需要对时间效率 空间效率 维护代价和各种用户要求进行权衡 其结果可以产生多种方案 数据库设计人员必须对这些方案进行细致的评价 从中选择一个较优的方案作为数据库的物理结构 评价物理数据库的方法完全依赖于所选用的DBMS 主要是从定量估算各种方案的存储空间 存取时间和维护代价入手 对估算结果进行权衡 比较 选择出一个较优的合理的物理结构 若该结构不符合用户需求 则需要修改设计 数据库的实施和维护 数据的载入和应用程序的调试 数据的载入和应用程序的调试 数据的载入 数据的转换 组织数据入库 若原系统是手工系统 尽量设计一个数据录入子系统 若原系统是数据库系统 尽量使用DBMS的数据转换工具 应用程序的编码和调试数据库的试运行 应分期分批地组织数据入库 先输入小批量数据做调试用 应首先调试DBMS的恢复功能 做好数据库的转储和恢复工作 数据库的运行和维护 在数据库运行阶段 对数据库经常性的维护工作是由DBA完成的 它包括 数据库的转储和恢复数据库的安全性 完整性控制数据库性能的监督 分析和改造数据库的重组织与重构造 习题 设计一个图书馆数据库 此数据库中对每个借阅者保存读者记录 包括 读者号 姓名 地址 性别 年龄 单位 对每本书存有 书号 书名 作者 出版社 对每本被借出的书存有读者号 借出日期和应还日期 要求 给出E R图 再将其转换为关系模型 分析 这里涉及读者和书两个实体 每位读者可借阅多本书 而每本书在一段时间内只能被一位读者借阅 所以读者与书之间的联系是一对多的联系 习题 对每个实体定义的属性如下 读者 读者号 姓名 地址 性别 年龄 单位 书 书号 书名 作者 出版社 E R图转换为关系模式一般遵循的原则 只列出与此题有关的 一个实体型转换为一个关系模式 实体的属性就是关系的属性 实体的码就是关系的码 一个1 n联系可以转换为一个独立的关系模式 也可以与n端对应的关系模式合并 若转换为一个独立的关系模式 则与该实体相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为n端实体的码具有相同码的关系模式可以合并 将上面的E R图转换为关系模型 读者 读者号 姓名 地址 性别 年龄 单位 书 书号 书名 作者 出版社 读者号 借出日期 应还日期 读者 读者号 姓名 地址 性别 年龄 单位 书 书号 书名 作者 出版社 借阅 书号 读者号 借出日期 应还日期 数据库应用开发实例 系统的需求分析 现要开发一个简化的教务管理系统 下面是用户对系统的陈述 该系统主要包括学生信息查询 教务信息维护和学生选课等三部分 其中前两项功能主要为教务人员使用 使用时要核对用户名和口令 学生信息查询 主要是按指定系检索该系的学生信息 其中包括所有的学生记录和学生总数 教务信息维护 主要是维护学生 系 课程和学生选课及成绩等方面的基本信息 包括增 删 改 查等功能 学生选课 是为学生提供选课界面 该界面要列出所有课程信息供学生查询和选课 学生进入该界面后 首先要输入自己的学号 该界面核对学号后即显示该生姓名和已获得的学分 同时显示出该同学的选课课表 课表反映该生选课情况 学生选课要受到一些条件的约束 如课程名额限制 课程时间冲突等 该界面允许学生选课和退选 系统的需求分析 系统的顶层数据流图 系统的需求分析 经过细化后得到系统的第二层数据流图 系统的需求分析 编写数据字典 主要数据流定义如下 数据流名称 注册信息位置 教务员 P1定义 注册信息 教务员注册名 口令说明 查询 和 维护 功能仅对教务员 所以教务员使用这些功能时 要输入合法的注册名及口令 以获得操作权 数据流名称 验证信息位置 P1 教务员定义 验证信息 登录成功 用户名未注册 口令错误 说明 告知用户登录的情况 若成功可直接进入操作界面 数据流名称 查询要求位置 教务员 P2定义 查询要求 指定系说明 用户通过选择指定要查询的系及学生 系统的需求分析 数据流名称 查询结果位置 P2 教务员定义 查询结果 系记录 系统计人数 学生记录 说明 查询结果包括指定系的信息 系学生数 统计结果 和学生记录 可同时显示多条记录 数据流名称 修改要求位置 教务员 P3定义 修改要求 系 学生 课程 选课 说明 指定要维护的对象 然后输入修改信息 增 删 改 数据流名称 选课要求位置 学生 P4定义 选课要求 学号 指定课程说明 学生在选课界面要首先输入学号 然后要指定选 退 课 数据流名称 选课结果位置 P4 学生定义 选课结果 出错信息 已选学分 新课表说明 出错信息包括学号错 授课时间冲突 名额限制 操作错误等 系统的需求分析 数据存储定义如下 数据存储名称 教务员注册表D1输入 输出 P1数据结构 教务员注册名 口令说明 该注册信息由专人维护 该维护功能不在本系统范围内 数据存储名称 系记录D2输入 P3输出 P2 P3数据结构 系号 系名 电话说明 系号 系名都是唯一 数据存储名称 学生记录D3输入 P3输出 P2 P3 P4数据结构 学号 姓名 性别 出生年月 系名说明 学号唯一 系统的需求分析 数据存储名称 课程记录D4输入 P3 P4输出 P3 P4数据结构 课程号 课程名 学分 上课时间 名额说明 课程号 课程名都是唯一 数据存储名称 选课记录D5输入 P3 P4输出 P3 P4数据结构 学号 课程号 成绩说明 学完课程后 成绩以百分制填入 没有成绩表示为新选课程 数据项定义如下 教务员注册表 系统的需求分析 系记录 学生记录 系统的需求分析 课程记录 选课记录 系统的概念结构设计 根据对数据流图和数据字典的分析 确定该应用中的实体 属性和实体之间的联系 并画出E R图 对每个实体定义的属性如下 教务员 注册名 口令 系 系号 系名 电话 学生 学号 姓名 性别 出生年月 系号 课程 课程号 课程名 学分 授课时间 名额 选课 学号 课程号 成绩 系统的逻辑结构设计 将上面的E R图转换为关系模型 教务员 注册名 口令 系 系号 系名 电话 学生 学号 姓名 性别 出生年月 系号 课程 课程号 课程名 学分 授课时间 名额 选课 学号 课程号 成绩 将上面一般的关系数据模型向特定的RDBMS的模型转换 利用CREATE语句建立上述关系 并定义好完整性约束 例如 教务员administrants account password 系departments Dno Dname Dphone 学生students Sno Sname Ssex Sbirth SDno 课程courses Cno Cname Credit Ctime Quota 选课studCourse Sno Cno Grade 系统的逻辑结构设计 例如 在ACCESS2000上建立上面各个表的CREATE语句如下 系CREATETABLEdepartments DnoCHAR 4 PRIMARYKEY DnameCHAR 16 UNIQUE DphoneCHAR 8 UNIQUE 教务员CREATETABLEadministrants accountCHAR 16 PRIMARYKEY passwordCHAR 8 学生CREATETABLEstudents SnoCHAR 8 PRIMARYKEY SnameCHAR 16 SsexBIT SbirthDATE SDnoCHAR 4 CONSTRAINTFK SDREFERENCESdepartments Dno 系统的逻辑结构设计 课程CREATETABLEcourses CnoCHAR 8 PRIMARYKEY CnameCHAR 16 CreditSMALLINT CtimeSMALLINT QuotaINT 选课CREATETABLEstudCourse SnoCHAR 8 CONSTRAINTFK SC SREFERENCESstudents Sno CnoCHAR 8 CONSTRAINTFK SC CREFERENCEScourses Cno GradeSMALLINT CONSTRAINTTab SCPRIMARYKEY Sno Cno 系统的软件结构设计 根据数据流图分析 现采用结构图来描述本系统的软件结构 系统主要由四个模块组成 主界面模块 提供教务管理系统的主界面 本系统的唯一入口和出口 该界面提供用户选择并调用各子模块 对于进入教务员管理功能还要核对用户名和口令 系统的软件结构设计 学生信息查询模块 提供学生信息查询界面 用户可以选择一个系 该模块查询并显示该系的学生信息 并统计该系总学生数教务信息维护模块 该模块允许用户先选择一个维护对象 如课程 然后进行维护工作 增 删 改 该界面还提供一般的信息浏览学生选课模块 提供选课界面 每个学生进入该界面后 先输入自己的学号 该模块会检查学号合法性 如果正确 则显示出该生的选课表等有关信息 该界面允许学生查询课程 并进行选课 退课等操作 该模块对选课过程进行一系列必要的检查 如出现课程已选 授课时间冲突 没有名额等情况时 都会给出错误信息 系统的详细设计与编码 此系统开发语言采用VisualBasic6 RDBMS采用ACCESS2000 数据库访问接口采用ADO ActiveXDataObjects 在具体进行系统的开发时 用到的库 DLL 有MicrosoftActiveXDataObjects2 7Library msado15 dll 使用的主要组件 component 有MicrosoftADODataControl6 0 OLEDB MSADODC OCX MicrosoftDataGridControl6 0 OLEDB MSDATGRD OCX MicrosoftHierarchicalFlexGridControl6 0 OLEDB MSHFLXGD OCX 注意 测试此系统时 请将数据库文件 EAS mdb 和执行文件 教务管理系统 exe 拷贝到目录D 制造信息技术讲义 中 1 连接数据库 Module1 bas 使用两个全局变量 GlobalGlobalConnAsADODB ConnectionGlobalGlobalRSAsADODB Recordset一个函数 PublicFunctionConnectDB AsIntegerSetGlobalConn NewADODB ConnectionGlobalConn CursorLocation adUseClientGlobalConn Open Provider Microsoft Jet OLEDB 4 0 DataSource D 制造信息技术讲义 EAS mdb PersistSecurityInfo False SetGlobalRS NewADODB RecordsetConnectDB 0EndFunction程序入口 SubMain SetfMainForm NewfrmMainfMainForm ShowCallConnectDBEndSub 系统的详细设计与编码 系统的详细设计与编码 2 主界面 frmMain frm 进入子模块的程序入口 例如进入 查询系和学生信息 的程序如下 PrivateSubCommand1 Click DimfLoginAsNewfrmLoginfLogin ShowvbModalIfNotfLogin OKThenExitSubEndIfUnloadfLoginLoadfrmDeptStudfrmDeptStud ShowvbModal MeEndSub退出系统时 要断开数据库的连接 释放全局变量占用的存储空间 IfNotGlobalRS State adStateClosedThenGlobalRS CloseSetGlobalRS NothingIfNotGlobalConn State adStateClosedThenGlobalConn CloseSetGlobalConn Nothing 系统的详细设计与编码 3 帐户及口令检验界面 frmLogin frm 若检验通过 此窗体的私有变量 模块级变量 OK的值为True 否则为False 使用如下语句打开记录集 GlobalRS OpensqlString GlobalConn adOpenForwardOnly adLockReadOnly其中字符串sqlString为SQL语句 例如检验帐户xxx时 查询xxx的口令 使用如下SQL语句 SELECTpasswordFROMadministrantsWHEREaccount xxx 处理按钮OK事件的过程为PrivateSubcmdOK Click EndSub 系统的详细设计与编码 4 查询系及学生信息界面 frmDeptStud frm 使用MSHFLEXGRID控件显示某一个系的学生信息 查询处理 事件Combo1 Click 步骤 查询指定系的信息 例如指定系D1 SELECTDname DphoneFROMdepartmentsWHEREDno D1 计算指定系的学生总数 例如指定系D1 SELECTCOUNT FROMstudentsWHERESDno D1 查询学生信息 SELECTSnoAS学号 SnameAS姓名 SsexAS性别 SbirthAS生日FROMstudentsWHERESDno D1 系统的详细设计与编码 5 基本信息维护界面 frmTabMaint frm 使用ADODC控件和DATAGRID控件查询及操作数据库 对事件Combo1 Click的处理 PrivateSubCombo1 Click Dimtable nameAsStringSelectCaseCombo1 ListIndexCase0table name students Case1table name courses Case2table name studCourse Case3table name department
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版大学生实习就业指导家教服务合同
- 管理新挑战讲座
- 护理责任与输液安全的法律问题
- 胸部外伤患者护理查房经验
- 卒中后康复护理查房
- 穿刺部位护理中的无菌技术
- 多重用药管理中的安全护航
- 局机关微信保密管理制度
- 2025年度高一历史下学期期末模拟试卷及答案(四)
- 市政工程施工技术课件
- 2025年明火操作证考试试题及答案
- XX林场20XX年度森林质量精准提升项目实施方案(范文)
- 竹木产业发展情况的调研报告2
- 商业数据分析的数字化工具与应用
- 旅行社与游客协议旅游合同
- 先天性甲状腺功能减退症诊治指南(2025)解读
- 2025-2030付费自习室行业市场深度分析及竞争格局与投资价值研究报告
- (二模)淮北市和淮南市2025届高三第二次质量检测英语试题(含答案详解)
- 腾讯入职合同协议
- 新产品导入流程图
- 生产经理考试试题及答案
评论
0/150
提交评论