1、 淮阴师范学校1004班级 文档编号 版本 A1 密级 商密A 项目名称 超市管理系统 项目来源 DR-RD-020(V1.1) 超市管理系统 数据库设计说明书 (内部资料 请勿外传) 编 写: 丁东亚 日 期: 2013-12-03 检 查: 日 期: 审 核: 日 期: 批 准: 日 期: 淮阴师范学校 超市管理系统 1 数据库设计说明书 1 1 引言 2 1.1 编写目的 2 1.2 术语表 2 1.3 参考资料 3
2、 2 数据库环境说明 3 3 数据库的命名规则 3 4 逻辑设计 3 5 物理设计 4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色与权限 7 7 优化 7 8 数据库管理与维护说明 7 1 引言 1.1 编写目的 本需求的编写目的在于研究超市管理系统软件的开发途径和应用方法。 本需求的预期读者是与超市管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本
3、项目的领导和公司人员,软件验证者。 1.2 术语表 定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。 序号 术语或缩略语 说明性定义 1 ENO 企业编号 2 ANO 收银员编号 3 BNO 小票编号 4 CNO 商品编号 1.3 参考资料 2 数据库环境说明 提示: (1)说明所采用的数据库系统,设计工具,编程工具等 (2)详细配置 例如: 数据库实例 数据库系统 数据库部署环境 数据库设计工具 数据库存放位置 说明 实例名,文件名 名称:如MySql,版本:4.0 软硬件、网络环境 例如:
4、pb,visio,rose 存放位置,绝对路径/相对路径 实例用途说明 3 数据库的命名规则 提示: (1)说明本数据库的命名规则,例如:本数据库设计完全按照《xx数据库设计规范》命名。 (2)如果本数据库的命名规则与公司的标准不完全一致的话,请作出解释。 4 逻辑设计 数据实体-关系图 (说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,建立本数据库的每一幅用户视图。) 例: 地址 店名 企业编号 超市 性别 姓名 收银员编号 工资 收银员
5、 商品编号 收银员编号 商品单价 小票编号 收银小票 商品名称 个数 总价 商品名称 单价 商品编号 商品库存量 供货商名 库存量 雇佣 超市 收银员 1 n m 1 收费 包含 n 1 m n 对应 商品库存量 收银小票 数据实体描述 (数据实体中文名,数据库表名 ,据实体描述 ) 例: 转化为SQL支持的表格式(拆分联系)即为: CustomerInfo (CID, name,
6、 gender, birthday, telephone, address); 分别对应:客户号、姓名、性别、出生日期、联系电话、通信地址 超市表(企业编号,店名,地址),主键为企业编号,符合三范式。 收银员表(收银员编号,姓名,性别,工资),主键为收银员编号号,符合三范式。 收银小票表(小票编号,商品编号,收银员编号,商品名称,单价,个数,总价)主键 为小票编号,符合三范式。 商品库存表(商品编号,商品名称,单价,库存量,供货商名)主键为商品编号号,符 合三范式。 实体关系描述 (描述每个实体间的关系) 实体1:实体2 (1:1,1:n, m:n)关系描述:
7、 雇佣 超市 收银员 1 n 商品库存量 存量 包含 超市 1 1 收银小票 收费 收银员 m n 对应 商品库存量 收银小票 n m 5 物理设计 提示: (1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。 (2)对表结构进行规范化处理(第三范式)。 超市表(企业编号,店名,地址),主键为企业编号,符合三范式。 收银员表(收银员编号,姓名,性别,工资),主键
8、为收银员编号号,符合三范式。 收银小票表(小票编号,商品编号,收银员编号,商品名称,单价,个数,总价)主键 为小票编号,符合三范式。 商品库存表(商品编号,商品名称,单价,库存量,供货商名)主键为商品编号号,符 合三范式。 5.1 表汇总 表名 功能说明 表A 表B 表C 5.2 表[X]:[XXX表] 表3-1 超市表SHOP 列名 含义 长度 类型 NULL DEFAULT ENO 企业编号 10 Char() no no SNAME 店名 30 Char() no no ADDRESS 地址 30
9、Char() no no 表3-2 收银员表ASSISTANT 列名 含义 长度 类型 NULL DEFAULT ANO 收银员编号 10 Char() no no ANAME 姓名 6 Char() no no SEX 性别 2 Char() no no SALARY 工资 8 INT no no 表3-3收银小票 表BILL 列名 含义 长度 类型 NULL DEFAULT BNO 小票编号 20 Char() no no CNO 商品编号 8 Char() no no
10、ANO 收银员编号 8 Char() no no CNAME 商品名称 8 Char() no no PRICE 单价 8 Float() no no QUANTITY 个数 3 Int no no TOTAL 总价 10 Float () no no 表3-4 商品库存表RESERVR 列名 含义 长度 类型 NULL DEFAULT CNO 商品编号 8 Char() no no CNAME 商品名称 8 Char() no no PRICE 单价 8 Float() no n
11、o LIST 库存量 8 Int no no PROFESSINAL 供货商名 20 Char() yes no 5.3 索引及视图的设计 (1)商品库存表商品编号索引 CREATE UNIQUE INDEX CRESERVE ON RESERVE(CNO ); (2)收银小票表小票编号索引 CREATE UNIQUE INDEX BBILL ON BILL (BNO); (3)收银员表中收银员编号索引 CREATE UNIQUE INDEX AASSISTANT ON ASSISTANT (ANO); 某种商品的销售量和库存量的视图 GRE
12、ATE VIEW COMMODITY (CNO,CNAME,MARKET,LIST) AS SELECT RESERVR .CNO,RESERVR .CNAME,SUM(QUANTITY),LIST FROM RESERVR ,BILL GROUP BY BILL.CNO 5.4 存储过程、函数及触发器的设计 利用存储过程来实现,当某商品卖出时,它的商品库存量相应的减少. CREATE PROCEDURE SELL ( BCNO CHAR, QLIST INT) AS DECLARE BEGIN SELECT TIST
13、
FROM RESERVE
WHERE BCNO =RESERVE.CNO;
IF LIST IS NULL THEN
ROLLBACK;
RETURN;
END IF;
IF LIST 14、HERE BCNO=RESERVE.CNO;
COMMIT;
END;
定义一个触发器,当商品库存表中,供货商为空时,自动改为”本店制作”。
CREATE TRIGGER UDLIST
BEFORE UPDATE OR TNSERT ON RESERVR
FOR EACH ROW
AS BEGIN
IF PROFESSINAL IS NULL THEN
PROFESSINAL:=’本店制作’;
END IF;
END;
6 安全性设计
1、事务故障的恢复策略
(1)反向扫 15、描日志文件,查找该事务的更新操作.
(2)对事务的更新操作执行逆操作.
(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理.
(4)如此处理下去,直到读到此事务的开始标记,事务故障恢复就完成了.
2、系统故障的恢复策略
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做队列.同时找出故障发生时尚未完成的事务,将其事务标识记入撤消队列.
(2)对撤消队列中的各个事务进行撤消处理.
(3)对重做队列中的各个事务进行重做处理.
3、介质故障恢复策略
(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时一致性状态.
(2)装入相应的日志文件副本,重做已完成的事务.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818