数据库设计模块
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超市管理系统概要设计说明书
―数据库设计模块
所属项目:超市管理系统
编写者:
审核者:
1.引言
1.1编写目的
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
1.2背景
a.待开发软件系统的名称:小型超市后台管理系统
b.任务的提出者:梁永霖老师
c.开发者:马文勇李耀初郑伟清
1.3参考资料
陶宏才.《数据库原理及设计》.第1版.北京.清华大学出版社.2004年
范立南《SQL Server 2000 实用教程》第2版.北京.清华大学出版社.2005年
李香敏《SQL Server 2000 编程员指南》第1版.北京.希望电子出版社
Rebecca M.Riordan《轻松搞定SQL Server 2000程序设计》第2版.北京工业出版社.2003年Watts S.Humphrey《软件工程规范》第1版.清华大学出版社.2004年
2. 总体设计
2.1需求规定
A 硬件支持
此软件没有进行远程访问的功能,也就是说软件和数据库服务器均运行与一台及其上面,因此,建议机器至少能顺畅运行SQL服务器。
本程序将在以下硬件系统进行测试:
a.处理器芯片为:Intel Celeron 2.66GHz,内存为:512MB,硬盘为:80GB。
b.处理器芯片为:Intel P 4,主频1.8GHz,内存为:256MB,硬盘为:40GB
c.处理器芯片为:AMD Sempron 2500+,内存为:512MB,硬盘为:80GB
B 软件支持
本软件将在以下环境下编写完成:
操作系统:Windows XP professional
编程软件:Microsoft Visual Basic 6.0 中文版
SQL服务器:Microsoft® SQL Server™ 2000
数据库查询器::SQL查询分析器
2.2运行环境
操作系统:Windows 98以上系统
测试系统:Windows XP Sp2
3.接口设计
3.2外部接口
本系统设有人机操作界面,考虑到操作简单,易于管理方面,主要硬件接口设备为PC,鼠标,键盘。而软件接口主要以Windows平台为基本平台。
系统业务逻辑的独步一时几乎完全封闭在数据存储层实现,中间组件层主要通过调用远程数据库存储过程或用户自定交函数的方式来实现对数据库的访问。数据库设计时,在sql server 2000大型数据库提供的技术下,充分利用约束,视图,存储过程,用户自定义函数及触发器等技术约束业务规则、维护数据完整性和唯一性,并实现市郊的数据存储与访问。
3.3内部接口
程序利用VB下的构造ADO的连接对象的ConnectionString的配置,各cls模块之间相互独立又彼此关联,主要通过函数调用实现各部分的连接。
4.系统数据结构设计
4.1 逻辑结构设计要点
针对一般小型超市后台信息管理系统的需求,通过对商品进出过程的内容和数据流程分析,设计如下面所示的数据项和数据结构,各模块标示符说明如下:
系统数据库表结构
数据库表索引
自定义数据类型(custem)
商品信息表(Goods)
用户表(UserInfo)
销售表(Sale)
进货信息表(Buy)
损坏商品表(Spoilage)
BuyID gxcID 4 F Not null 商品编号Amout Decimal 9 Not null 数量
Reportor gxcTrueName 10 Not null 报损人
Reason gxcRemark 1000 null 损坏原因RegistrarID gxcID 4 Not Null 录入人员号Regdate datetime 8 Datetime登记时间
供货商表(Supplier)
字段名字段类型长度主/外键字段值约束对应中文名SupplierID gxcID 4 P Not null 供货商编号SupplierName gxcCaption 100 Not null 供货商名称Contact gxcRemark 1000 Null 联系方式Introduce gxcRemark 1000 Null 简要介绍Remakr gxcRemark 1000 Null 备注
4.2 关系图约束设计
数据库关系图如下:
4.3.物理结构设计
系统的存储物理结构由数据库来生成。以下为几个例子
查看存在ID字段不为某个值但某个字符型字段等于某个值
/*查看某个数据表中*/
CREATE PROC dbo.ExistNameWithoutID
(
@strTableName varchar(255), --表名
@strIDName varchar(255), --ID字段名
@intIDValue int, --ID字段值
@strFieldName varchar(255), --字符型字段名
@strFieldValue varchar(50), --字符型字段值
@bitResult bit OUTPUT --输出值,0为不存在,1为存在
)
AS
SET NOCOUNT ON
DECLARE @strSQL varchar(3000) --主语句
DECLARE @nCount int --返回记录行数
/*创建存储符合条件的记录数的临时表*/
IF OBJECT_ID('dbo.#tmpTable') IS NULL
CREATE TABLE #tmpTable(tmpField int) --创建临时表
ELSE
TRUNCA TE TABLE #tmpTable --清空临时表
/*在数据库表中检索符合条件的记录数并存储在临时表中*/
SELECT @strSQL = 'SELECT COUNT([' + @strFieldName + ']) FROM [' + @strTableName + '] WHERE [' + @strFieldName + '] = ''' + @strFieldValue + '''' + ' AND ' + @strIDName + ' <> ' + CONVERT(varchar(50),@intIDValue)
SELECT @strSQl = 'INSERT #tmpTable ' + @strSQL
EXEC(@strSQL)
/*在临时表中返回存储的记录数*/
SELECT TOP 1 @nCount = tmpField FROM #tmpTable ORDER BY tmpField
/*删除临时表*/
DROP TABLE #tmpTable
/*输出参数*/
IF @nCount > 0
SELECT @bitResult = 1
ELSE
SELECT @bitResult = 0
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO