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