进销存数据库SQL课程设计_第1页
进销存数据库SQL课程设计_第2页
进销存数据库SQL课程设计_第3页
进销存数据库SQL课程设计_第4页
进销存数据库SQL课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程设计报告 院(系):_电气与信息工程学院_ 专业班级: 010-01 学生姓名: 学 号: 设计地点(单位)_实验楼 I515_ _ _ _ 设计题目:_ 进 销 存 管 理 系 统_ 完成日期: 2010 年 12 月 23 日 指导教师评语: _ _ _ _ _ _ 成绩(百分记分制):_ _ 指导教师(签字):_ _ 课程设计任务书课程设计任务书 设计题目:进销存管理系统设计 学生姓名 崔涌铖 课程名称数据库原理课程设计专业班级 010-01 地 点 I515 起止时间 2010.12.20-2010.12.24 设 计 内 容 及 要 求 内容: 学生根据本课程设计指导

2、书中的题目,进行设计。 (1)产销衔接 完成生产的产品或进购的产品人库的操作与已经销售的产品出 库的操作,包括产品信息的输人、删除、修改等。 完成新类型产品信息入库,已有类型产品信息项目的更改等。 可通过读取现有产品信息文件建立库存信息库。 (2)产品库存管理 主要是针对产品数据库的管理,功能如下: 数据备份:用于数据库中各个表格记录的备份,即当数据库中 的数据发生错误时,可以很快地又进行使用。 数据清除:用于将数据库中各个表格内的数据全部清除掉,以 便从其他地方再次导入新的数据。 数据导入:可以将备份的数据导入到相应的数据库表格中,也 可以将利用其他方式获得的数据导入,例如,一些使用文本文件

3、保存的 数据等。 (3)订单管理 订单维护功能:包括订单信息的输入、修改、删除等操作。 订单查询功能:根据特定的条件来查询订单的内容,例如,可 以根据订单号、客户号等信息进行查询,可以显示或打印订单信息。 订单提醒功能:显示当前时间内还没有完成的订单数及其详细 信息。 (4)客户管理 将所有客户的信息进行保存,以便和客户建立长久的合作关系。 客户信息可以进行添加、修改、删除等操作。 可以根据特定条件进行查询,显示查询结果,并可以进行打印 输出。 (5)发货管理 输入发货计划窗口:可以将新的发货计划输人到数据库中,并 提供修改和删除信息等操作。 设计发货计划窗口:用来显示产品的现有量、尚未完成的

4、订单 信息,根据这些信息确定有哪些订单可以发出去了。 (6)生产计划管理 允许将新制定的计划添加到计划库中,并可以对其中的数据进 行修改和删除等基本操作。 可以查找如今已经完成的计划、正在进行的计划和尚未执行的计划 数目,以及详细内容。 要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、 物理结构设计,使学生掌握数据库应用软件的开发流程,SQL 语句的使用 和存储过程的使用。 设 计 参 数 至少 5 个表结构;3 个存储过程;2 个触发器;3 个视图。 进 度 要 求 19.1 讲课 阅读分析任务书 制订设计计划 19.2-3 需求分析 概念结构设计 19.4-5 概念结构

5、设计准备文挡 20.1-3逻辑结构设计物理结构设计 20.4-5写文挡答辩交设计报告书 参 考 资 料 1雷亮等数据库原理课程设计指导书 2王珊、萨师煊 数据库系统概述(第四版) 北京:高等教育出版 社2006。 3C.J.Date 著孟小峰、王珊等译 数据库系统导论(第 8 版) 北京:机械 工业出版社.2007。 4陈根才等. 数据库课程设计浙江浙江大学出版社2007 其 它 说 明 .本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一 份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在 设计内容、参数、要求等方面应有所区别。 教研室主任: 指导教师

6、: 2010 年 12 月 05 日 摘要 随着高科技的迅猛发展,信息技术己经深入生活中的各个领域。在各种销 售企业中,作为国有经济的主要推动者中小型企业,很有必要进行计算机化 管理,即引进“进销存管理系统” 。本系统是根据企业的特点,集进、销、存、 分析于一体,为企业量身定做的进销存管理软件。在设计过程中最大限度满足 用户的要求,因此,该系统具有较强的实用性和针对性。物力、人力和资金并 称为企业的三大资源。控制物资流是每个企业都需要作好的事情。物资流主要 包括入库、库存和出库三大环节。进销存管理系统,主要包括:数据维护、进货 管理、库存管理、销售管理四个功能模块。 文章首先从系统的开发背景、

7、实现意义谈起,然后,重点介绍了系统的分 析、设计和实现。分析部分对系统的概念、特点、运行环境及数据库设计进行 了分析描述。设计部分根据系统的总体描述、模块及结构图,提出了系统的总 体设计方案内容,实现部分介绍了系统中各个模块的实现方法。最后介绍了其 中的功能实现,如存储过程、触发器等功能的实现。 关键词关键词:进销存管理,信息系统,数据库,E-R 目录 1 设计内容和要求.6 1.1 设计背景.6 1.2 开发环境.6 1.3 内容及要求.6 1.3.1 系统目标设计.6 1.3.2 系统功能要求.7 2 需求分析.9 2.1 用户需求.9 2.2 功能模块.10 2.3 数据字典.10 3

8、概念设计.16 3.1 数据流图.16 3.1.1 顶层数据流图.16 3.1.2 一层数据流图.16 3.1.3 二层数据流图.16 3.2 系统 E-R 图.17 3.3 概念模型.18 4 逻辑结构设计.19 4.1 关系模型.19 4.2 物理模型.20 5 物理结构设计.21 5.1 物理结构设计.21 5.2 确定数据库存储结构.22 5.3 功能实现.22 6 设计总结.27 7 致谢.28 8 参考文献.28 1 设计内容和要求设计内容和要求 1.1设计背景设计背景 对于企业的进销存管理都是很烦琐的工作,稍有马虎就会产生很大的损失。 从原料购入到商品销售无论哪个环节出现错误都会

9、给企业带来不小的损失。进 销存是企业都不可避免的事务,同时它是贯穿整个公司业务发展。物力、人力 和资金并称为企业的三大资源。控制物资流是每个企业都需要作好的事情。物 资流主要包括入库、库存和出库三大环节。进销存管理系统,主要包括:数据维 护、进货管理、库存管理、销售管理四个功能模块。本系统是根据企业的特点, 集进、销、存、分析于一体,为企业量身定做的进销存管理软件。该软件的基 本功能是可以协助管理人员轻松完成进销存的管理。 1.2 开发环境开发环境 本工资管理系统(数据库系统)的开发与运行环境如下: 开发环境:Windows XP 辅助工具:PowerDesigner Trial 11 数据库

10、管理系统:SQL Server 2000 运行环境:Windows 2000/XP/2003 1.3 内容及要求内容及要求 1.3.1 系统目标设计系统目标设计 1)实现企业的进销存管理系统化、规范化和自动化。 2)可以和其他管理系统进行连接,例如人事管理系统,工资管理使企业 更加高效地、科学地进行员工管理。 3)尽量地减少手工操作,使企业管理更加现代化。 1.3.2 系统功能要求系统功能要求 (1)产销衔接 完成生产的产品或进购的产品人库的操作与已经销售的产品出库的操 作,包括产品信息的输人、删除、修改等。 完成新类型产品信息入库,已有类型产品信息项目的更改等。 可通过读取现有产品信息文件建

11、立库存信息库。 (2)产品库存管理 主要是针对产品数据库的管理,功能如下: 数据备份:用于数据库中各个表格记录的备份,即当数据库中的数据 发生错误时,可以很快地又进行使用。 数据清除:用于将数据库中各个表格内的数据全部清除掉,以便从其 他地方再次导入新的数据。 数据导入:可以将备份的数据导入到相应的数据库表格中,也可以将 利用其他方式获得的数据导入,例如,一些使用文本文件保存的数据等。 (3)订单管理 订单维护功能:包括订单信息的输入、修改、删除等操作。 订单查询功能:根据特定的条件来查询订单的内容,例如,可以根据 订单号、客户号等信息进行查询,可以显示或打印订单信息。 订单提醒功能:显示当前

12、时间内还没有完成的订单数及其详细信息。 (4)客户管理 将所有客户的信息进行保存,以便和客户建立长久的合作关系。客户 信息可以进行添加、修改、删除等操作。 可以根据特定条件进行查询,显示查询结果,并可以进行打印输出。 (5)发货管理 输入发货计划窗口:可以将新的发货计划输人到数据库中,并提供修 改和删除信息等操作。 设计发货计划窗口:用来显示产品的现有量、尚未完成的订单信息, 根据这些信息确定有哪些订单可以发出去了。 (6)生产计划管理 允许将新制定的计划添加到计划库中,并可以对其中的数据进行修改 和删除等基本操作。 可以查找如今已经完成的计划、正在进行的计划和尚未执行的计划数目, 以及详细内

13、容。 要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理 结构设计,使学生掌握数据库应用软件的开发流程,SQL 语句的使用和存储过程 的使用。 2 需求分析需求分析 2.1 用户需求用户需求 产销衔接:完成生产的产品或进购的产品人库的操作与已经销售的产品出库 的操作,包括产品信息的输人、删除、修改等。 完成新类型产品信息入库,已有类型产品信息项目的更改等。 可通过读取现有产品信息文件建立库存信息库。 产品库存管理:主要是针对产品数据库的管理,功能如下: 数据备份:用于数据库中各个表格记录的备份,即当数据库中的数据发生错 误时,可以很快地又进行使用。 数据清除:用于将数据库

14、中各个表格内的数据全部清除掉,以便从其他地方再 次导入新的数据。 数据导入:可以将备份的数据导入到相应的数据库表格中,也可以将利用其他 方式获得的数据导入,例如,一些使用文本文件保存的数据等。 订单管理:订单维护功能:包括订单信息的输入、修改、删除等操作。 订单查询功能:根据特定的条件来查询订单的内容,例如,可以根据订单号、 客户号等信息进行查询,可以显示或打印订单信息。 订单提醒功能:显示当前时间内还没有完成的订单数及其详细信息。 客户管理:将所有客户的信息进行保存,以便和客户建立长久的合作关系。客 户信息可以进行添加、修改、删除等操作。可以根据特定条件进行查询,显 示查询结果, 可以进行打

15、印输出。 发货管理:输入发货计划窗口:可以将新的发货计划输人到数据库中,并提供 修改和删除信息等操作。设计发货计划窗口:用来显示产品的现有量、尚未完 成的订单信息,根据这些信息确定有哪些订单可以发出去了。 生产计划管理:允许将新制定的计划添加到计划库中,并可以对其中的数据进行修改和 删除等基本操作。可以查找如今已经完成的计划、正在进行的计划和尚未执行的计划数目, 以及详细内容。 要求:按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计, 使学生掌握数据库应用软件的开发流程,SQL 语句的使用和存储过程的使用。 2.2 功能模块功能模块 进销存管理系统 产 销 衔 接 产

16、品 库 存 管 理 订 单 管 理 客 户 管 理 发 货 管 理 生 产 计 划 管 理 仓 库 管 理 销 售 管 理 退 货 管 理 员 工 管 理 原 料 管 理 图 2.2.1 2.3 数据字典数据字典 数据项 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分 析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,进销存 管理系统的主要数据见下表。 表 2.3.1 原料信息表 名称名称代码代码数据类型数据类型主外键主外键 原料编号M_idInt主 名称M_nameVchar(20) 原料单位M_unitInt 原料规格M_specVchar(20) 表 2.3

17、.2 原料订单信息表 名称名称 代码代码 数据类型数据类型主外键主外键 原料订单编号 Mo_id Int主 购入单价 Mo_price Money(8) 购入数量 Mo_count Int 应付金额 Mo_needpay Money(8) 实付金额 Mo_pay Money(8) 备注 Mo_remark Vchar(200) 表 2.3.3 原料购入表 名称名称 代码代码 数据类型数据类型主外键主外键 员工编号 E_id Int主外 公司编号 C_id Int主外 原料编号 M_id Int主外 原料订单编号 Mo_id Int主外 表 2.3.4 原料退货表 名称名称 代码代码 数据类型数

18、据类型主外键主外键 员工编号 E_id Int主外 公司编号 C_id Int主外 原料订单编号 Mo_id Int主外 退货编号 Rm_id Int主外 表 2.3.5 原料退货单表 名称名称 代码代码 数据类型数据类型 退货编号 Rm_id Int主 退货数量 Rm_count Int 退货日期 Rm_data Datatime 退货单价 Rm_price Money(8) 已退金额 Rm_haspay Money(8) 退货原因 Rm_result Vchar(400) 应退金额 Rm_needpay Money(8) 表 2.3.6 员工信息表 名称名称 代码代码 数据类型数据类型主外

19、键主外键 员工编号 E_id Int主 部门编号 D_id Int外 员工姓名 E_name Vchar(20) 登录名 loginname Vchar(20) 密码 pwd Vchar(20) 性别 sex Vchar(20) 生日 birthday Datatime 家庭电话 phoneH Vchar(20) 手机号 phoneM Vchar(20) 家庭住址 Address Vchar(200) 权限 popedom Vchar(2) 表 2.3.7 商品信息表 名称名称 代码代码 数据类型数据类型主外键主外键 商品编号 G_id Int主 商品名称 G_name Vchar(20) 生

20、产时间 G_time Datatime 商品规格 G_spec Vchar(20) 商品数量 G_count Int 备注 G_remark Vchar(200) 商品单位 G_unit Vchar(20) 表 2.3.8 商品退货表 名称名称 代码代码 数据类型数据类型主外键主外键 员工编号 E_id Int主外 销售订单编号 So_id Int主外 客户编号 Cu_id Int主外 退货编号 Rg_id Int主外 表 2.3.9 商品退货单表 名称名称 代码代码 数据类型数据类型主外键主外键 退货编号 Rg_id Int主 退货数量 Rg_count Int 退货日期 Rg_data D

21、atatime 退货单价 Rg_price Money(8) 应付金额 Rg_needpay Money(8) 已退金额 Rg_haspay Money(8) 退货原因 Rg_result Vchar(400) 表 2.3.10 商品存储表 名称名称 代码代码 数据类型数据类型主外键主外键 商品编号 G_id Int主外 仓库编号 S_id Int主外 表 2.3.11 原料存储表 名称名称 代码代码 数据类型数据类型主外键主外键 原料编号 M_id Int主外 仓库编号 S_id Int主外 表 2.3.12 客户信息表 名称名称 代码代码 数据类型数据类型主外键主外键 客户编号 Cu_id

22、 Int主 客户名称 Cu_name Vchar(20) 联系方式 Cu_phone Vchar(20) 地址 Cu_Addrerss Vchar(20) 负责人 Cu_per Vchar(20) 备注 Cu_remark Vchar(100) 表 2.3.13 仓库信息表 名称名称 代码代码 数据类型数据类型主外键主外键 仓库编号 S_id Int主 仓库名称 S_name Vchar(20) 库存量 S_num Int 库存警报量 S_alarmnum Int 仓库地址 S_address Vchar(200) 仓库电话 S_phone Vchar(20) 表 2.3.14 生产表 名称名

23、称 代码代码 数据类型数据类型主外键主外键 商品编号 G_id Int主外 原料编号 M_id Int主外 计划编号 PP_id Int主外 表 2.3.15 生产计划信息表 名称名称 代码代码 数据类型数据类型主外键主外键 计划编号 PP_id Int主 生产量 pp_count Int 计划开始时间 pp_startime Datatime 计划结束时间 pp_endtiem Datatime 负责人 pp_per Vchar(20) 计划状态 pp_state Vchar(5) 表 2.3.16 员工负责商品表 名称名称 代码代码 数据类型数据类型主外键主外键 员工编号 E_id Int

24、主外 商品编号 G_id Int主外 表 2.3.17 进货公司信息表 名称名称 代码代码 数据类型数据类型主外键主外键 公司编号 C_id Int主外 公司名称 C_name Vchar(20) 联系方式 C_phone Vchar(20) 地址 C_address Vchar(20) 负责人 C_pre Vchar(20) 表 2.3.18 部门信息表 名称名称 代码代码 数据类型数据类型主外键主外键 部门编号 D_id Int主外 部门名称 D_name Vchar(20) 负责人 D_per Vchar(20) 电话 D_phone Vchar(20) 地址 D_add Vchar(2

25、0) 表 2.3.19 销售表 名称名称 代码代码 数据类型数据类型主外键主外键 员工编号 E_id Int主外 商品编号 G_id Int主外 客户编号 Cu_id Int主外 销售订单编号 So_id Int主外 表 2.3.20 商品销售订单表 名称名称 代码代码 数据类型数据类型主外键主外键 销售订单编号 So_id Int主 商品单价 So_price Money(8) 商品数量 So_count Int 应付金额 So_needpay Money(8) 实付金额 So_pay Money(8) 备注 So_remark Vchar(100) 3 概念设计概念设计 3.1 数据流图数

26、据流图 3.1.1 顶层数据流图顶层数据流图 对系统整体的数据流图,在系统中的参与者有系统的数据流的传输。 图 3.1.1 顶层数据流图 3.1.2 一层数据流图一层数据流图 对系统的顶层数据流图进行分解处理实现一层数据流图。 图 3.1.2 一层数据流图 3.1.3 二层数据流图二层数据流图 对数据库中的入库管理部分进行分解处理,形成二层数据流图。 图 3.1.3 二层数据流图 3.2 系统系统 E-R 图图 实体关系图 ,对数据中的实体与关系进行描述。 图 3.2E-R 图 3.3 概念模型概念模型 数据库中的概念模型对数据库中的实体的所有属性,实体与实体之间的关系进 行描述。 于 于 于

27、 于 于 于 于 于 1,1 1,1 1,1 1,1 1,1 1,1 于 于 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 VA20 VA20 VA4 D VA20 VA20 VA200 I Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 VA20 VA20 VA20 Identifier_1 于 于 于 于 于 于 于 于 于 于 于

28、于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 I I VA200 VA20 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 D VA20 I VA200 VA20 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA100 VA20 VA200 VA20 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 VA20 VA

29、200 VA20 VA100 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I VA20 VA4 VA20 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I MN8 I MN8 MN8 VA100 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I I D MN8 MN8 VA400 MN8 Identi

30、fier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I MN8 I MN8 MN8 VA100 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I I D MN8 MN8 MN8 VA400 Identifier_1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 I I D D VA20 VA10 Identifier_1 于 于 图 3.

31、3 概念模型 4 逻辑结构设计逻辑结构设计 逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R 图转换为与选用 DBMS 产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为 3 步进行: (1)将概念结构转换为一般的关系、网状、层次模型; (2)将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型 转换; (3)对数据模型进行优化。 4.1 关系模型关系模型 将 E-R 图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之 间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一 个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体

32、型间的联系则有以下不同的情况: (1)一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对 应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个实 体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的 侯选码。如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中 加入另一个关系模式的码和联系本身的属性。 (2)一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的 关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个各实体 的码以及联系本身的属性均转换为关系的属性,而关系的码为 n 端实体的码。 (3)一个 m:n

33、联系转换为一个关系模式。与该联系相连的个实体的码以及 联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一 部分。 (4)3 个或 3 个以上实体间的一个多元联系可以转换为一个关系模式。与 该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实 体的码组成关系的码或关系码的一部分。 4.2 物理模型物理模型 通过建立的概念模型针对概念模型与物理模型之间的转换关系,从而形成物理 模型。在物理模型中实体、关系等都以转换关系为基础形成新的数据库的表。 FK_EMP_DEPARTMEN_DEPARTME FK_STOCK_GO_STOCK_GOO_GOODS FK_STO

34、CK_GO_STOCK_GOO_STOCK FK_EMP_GOOD_EMP_GOODS_EMP FK_EMP_GOOD_EMP_GOODS_GOODS FK_SELL_SELL_EMP FK_SELL_SELL2_GOODS FK_SELL_SELL3_CUSTOMER FK_MATERIAL_MATERIALS_EMP FK_MATERIAL_MATERIALS_COMPANY FK_MATERIAL_MATERIALS_MATERIAL FK_CUN_CUN_MATERIAL FK_CUN_CUN2_STOCK FK_RETURN_M_RETURN_MA_EMP FK_RETURN_M_R

35、ETURN_MA_COMPANY FK_MATERIAL_MATERIALS_MATERIAL FK_RETURN_M_RETURN_MA_MATERIAL FK_RETURN_M_RETURN_MA_RETURN_M FK_SELL_SELL4_SELL_ORD FK_RETURN_G_RETURN_GO_EMP FK_RETURN_G_RETURN_GO_SELL_ORD FK_RETURN_G_RETURN_GO_CUSTOMER FK_RETURN_G_RETURN_GO_RETURN_G FK_PRODECT_PRODECT_GOODS FK_PRODECT_PRODECT2_MAT

36、ERIAL FK_PRODECT_PRODECT3_PRODECTP 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int varchar(20) varchar(20) varchar(20) varchar(4) datetime varchar(20) varchar(20) varchar(200) int 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(20) varchar(20) varchar(20) varchar(20) 于

37、于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(20) int int varchar(200) varchar(20) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(20) datetime varchar(20) int varchar(200) varchar(20) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(100) varchar(20) varchar(

38、200) varchar(20) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int int int 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(20) varchar(20) varchar(200) varchar(20) varchar(100) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int varchar(20) varchar(4) varchar(20) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int

39、int int int 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int int int 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int int int 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int money int money money varchar(100) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int

40、 datetime money money varchar(400) money 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int money int money money varchar(100) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int datetime money money money varchar(400) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于

41、于 于 于 于 于 int int datetime datetime varchar(20) varchar(10) 于 于 于 于 于 于 于 于 于 于 于 于 于 于 int int int 于 于 于 于 于 于 于 于 于 于 int int 于 于 于 于 于 于 于 于 于 于 int int 于 于 于 于 于 于 于 于 于 于 int int 图 4.2 物理模型 5 物理结构设计物理结构设计 5.1 物理结构设计物理结构设计 确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定 关系、索引、聚簇、日志、备份等的存储安排和存储结构;确定系统配置等。 确定数据的存

42、放位置和存储结构要综合考虑存取时间、存储空间利用率和 维护代价三方面的因素。这三个方面常常是相互矛盾的,因此需要进行权衡, 选择一个折中方案。 1确定数据的存放位置 为了提高系统性能,应该根据应用情况将数据的易变部分与稳定部分、经 常存取部分和存取频率较低部分分开存放。 例如,目前许多计算机都有多个磁盘,因此可以将表和索引放在不同的磁盘上, 在查询时,由于两个磁盘驱动器并行工作,可以提高物理 IO 读写的效率;也 可以将比较大的表分放在两个磁盘上,以加快存取速度,这在多用户环境下特 别有效;还可以将日志文件与数据库对象(表、索引等)放在不同的磁盘上以改 进系统的性能。此外,数据库的数据备份和日

43、志文件备份等只在故障恢复时才 使用,而且数据量很大,可以存放在磁带上。 由于各个系统所能提供的对数据进行物理安排的手段、方法差异很大,因 此设计人员应仔细了解给定的 RDBMS 提供的方法和参数,针对应用环境的要求, 对数据进行适当的物理安排。 2确定系统配置 DBMS 产品一般都提供了一些系统配置变量、存储分配参数,供设计人员和 DBA 对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的缺 省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新 对这些变量赋值,以改善系统的性能。 系统配置变量很多,例如:同时使用数据库的用户数,同时打开的数据库 对象数,内存分配参数

44、,缓冲区分配参数(使用的缓冲区长度、个数),存储分 配参数,物理块的大小,物理块装填因子,时间片大小,数据库的大小,锁的 数目等。这些参数值影响存取时间和存储空间的分配,在物理设计时就要根据 应用环境确定这些参数值,以使系统性能最佳。 在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据 系统实际运行情况做进一步的调整,以期切实改进系统性能。 5.2 确定数据库存储结构确定数据库存储结构 由于本系统的日志对于系统有很高的要求,所以数据存储采用的是一个磁 盘的两个分区的方式进行存储。一个分区存储日志文件,另一个分区存储住数 据库文件。 5.3 功能实现功能实现 完成数据库的物理设计之

45、后,就在此基础上编写各个表相关的触发器和存 储过程。 触发器 触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义, 任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在 DBMS 核心层进行集中的完整性控制。由于本系统的触发器比较多,在这里我只写出 了其中的一部分触发器,具体如下所示。 触发器: 报警处理: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - = - Author: - Create date: - Description: - = CREATE TRIGGER s_update on dbo.Stock

46、for update AS BEGIN declare a int, count int set a =(select Inserted.S_num from Inserted) set count=(select Inserted.S_alarmnum from Inserted) IF(countcount) print 警报商品到达警戒线请处理 END GO 产销衔接: - = - Author: - Create date: - Description: - = ALTER TRIGGER so_insert on dbo.sell_order for insert AS BEGIN

47、declare So_id int, a int, count int set a =(select Inserted.So_count from Inserted) set So_id=(select Inserted.So_id from Inserted) if(a4000) insert into prodectpanning (pp_count,pp_startime,pp_state)values(a,getdate(),未处理 计划) END 存储过程: 完成客户添加功能 /* 对象: StoredProcedure dbo.inset_Customer 脚本日期: 12/24/2010 11:47:45 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - = - Author: - 客户管理 - Description: - = ALTER procedure dbo.inset_Customer ( Cu_name varchar(20), Cu_phone varchar(20), Cu_Addrerss varchar(20), Cu_per var

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论