数据库课程设计超市信息管理系统
(总15页)
--本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--
数据库应用课程设计报告书
小型超市信息管理系统
成 绩: 学 号: 姓 名: 指导教师:
2010 年 1月 20日
2
三峡大学
课 程 设 计 任 务 书
学年 学期
课题名称 姓名 学号 指导教师 专业 信息管理 课题概述: 数据库的开发与设计是管理信息系统的重要组成部分,数据库设计的好坏直接影响到系统的开发进度和功能的实现。本课程主要应用已经学到的数据库系统和应用的知识,通过调查分析设计一个小系统的数据库,来提高学生对所学的知识和数据库开发过程的理解和掌握,提高分析问题、解决问题的能力,并为接下来的管理信息系统的课程设计打下基础。 在数据库物理实现阶段主要使用微软的SQL SERVER数据库管理系统。 设计要求: 1、 进行认真、完整的系统调查分析,取得所开发系统的第一手资料。 2、 原则上要求一人一个课题。 3、 设计报告书要求详细具体,对设计的全部内容都要进行详细的说明,并按照要求的格式打印。 主要参考资料: 1、《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版 2、《SQL SERVER 2000教程》,北京希望电子出版社,龚波等译。 设计成果要求: 1、课程设计报告书 2、设计的数据库文件及代码 设起 止 日 期 计内19周星期一 容及19周星期二 进度19周星期三 计划19周星期四 安19周星期五 排 审核(教研室主任)
要 求 完 成 的 内 容 收集资料,进行系统分析和调查 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 3
摘要:随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,因此企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然,可以解决企业账目混乱,库存不准,信息反馈不及时等问题。小型超市引进数据库系统进行管理远优于传统的手工管理。
1 需求调查、分析
1.1 企业介绍
该超市是一个面向生活小区的独家经营的小型自选超市,没有连锁店,超市老板即是超市管理人员。该超市经营各种类别的商品,如服装、家庭日用杂品、家用电器、玩具、家具、蔬菜水果等。该小型超市有自己的仓库,和一定的供应商保持联系,顾客以个人为主,没有预定、赊账、折扣等复杂的财务信息,工作人员也比较固定,没有复杂的人事调动、福利津贴等职工信息。原来的收款方式是使用两台旧式收款机,由收款员按商品价格标签收款。整个超市员工人数并不多。主要管理工作包括进货、填写入库单并记入入库流水帐、定价、印制并粘贴价格标签、商品上架和整理、收款开票并记入销售流水帐、每日收市后作营业结算、每月月末作盘点统计并编制营业报告表。由于是手工管理,并且收款方式落后,因此效率低,劳动强度大,商品流失也比较严重。超市的业务量是:平均每周进货一次,每次可能有不同的货源进货。平均每天顾客数目是1000人。平均每个顾客购买3种商品。按管理规章制度要求,收市后统计分析人员还要根据商品购入流水帐和商品销售流水帐,按商品编号分别累计汇总各种商品当日累计购入入库量、累计销售量和库存结余量等数据,然后把这些数据填入库存台帐。
需求调查及分析
用户需求:该超市管理人员是主要用户,使用频率最高,其他人员也会使用到,但不经常使用,管理人员能看到所有的供应商信息、商品信息、销售信息、职工信息、库存信息、财务信息等。该超市管理人员希望看到商品进货、存入仓库、由仓库到货架、最后销售的一系列活动以便于其管理。超市管理人员能看到商品的各种基本信息及销售好坏和盈利情况以便其决策如何进行销售活动,当一种商品不再销售时应该有相关的历史销售记录,能看到商品的库存量以决定是否进货及进货的种类数量,货架上商品少于一定数目时有工作人员从仓库补充。超市老板能知道一段时间内的盈利情况。顾客能看到商品的大部
4
分基本信息,但不能看到商品的进价信息。收银员要记录销售信息。仓库管理员要能看到库存信息。
功能实现:该系统包含供应商信息,商品信息,库存信息,人事信息,销售信息,财务信息,能够实现用户需求的绝大部分,而货架上如果商品数量不足则由售货员或巡视员通知工作人员从仓库搬运,此过程由人工完成,不由计算机参与。当管理人员决定进一种新商品时必须先录入商品基本信息,然后其它工作人员才能录入进货、库存、财务等其它信息
2 面向对象分析和设计
2.1 用例分析
管理人员进行管理的用例
1. 查询、添加、删除、修改供应商信息 2. 查询进货信息
3. 查询、添加、删除、修改商品的所有信息 4. 查询、添加、删除、修改仓库基本信息 5. 查询商品入库、库存、出库信息 6. 查询、添加、删除、修改人事信息 7. 查询销售信息 8. 查询财务信息 增删改查供应商信 增删改查库存信息 查询进货信息 增删改查商品信息 管理人 查询销售信息 员 增删改查人事信息 查询信息
5
收银员使用的用例 1. 登陆系统
2. 添加商品的销售记录 3. 添加销售商品的财务记录
收银员
仓库管理员使用的用例 1. 登陆系统
2. 查询仓库基本信息
3. 查询、添加、修改商品的入库信息 4. 查询、添加、修改商品的库存信息 5. 查询、添加、修改商品的出库信息 <> 查询仓库信息<>增删改查商品入库信<>仓库管理增删改查商品库存信员 6 <> 添加销售商品的财务记添加商品的销售记<> 登陆系统 登陆系统<> 增删改查商品出库信采购员使用的用例 1. 登陆系统2. 查询供应商基本信息 3. 添加进货信息4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
<>增删改查商品入库信<>仓库管理增删改查商品库存信员 6 <> 添加销售商品的财务记添加商品的销售记<> 登陆系统 登陆系统<> 增删改查商品出库信采购员使用的用例 1. 登陆系统2. 查询供应商基本信息 3. 添加进货信息4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
增删改查商品入库信
<>仓库管理增删改查商品库存信员 6 <> 添加销售商品的财务记添加商品的销售记<> 登陆系统 登陆系统<> 增删改查商品出库信采购员使用的用例 1. 登陆系统2. 查询供应商基本信息 3. 添加进货信息4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
仓库管理
增删改查商品库存信员 6 <> 添加销售商品的财务记添加商品的销售记<> 登陆系统 登陆系统<> 增删改查商品出库信采购员使用的用例 1. 登陆系统2. 查询供应商基本信息 3. 添加进货信息4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
<> 增删改查商品出库信采购员使用的用例 1. 登陆系统2. 查询供应商基本信息 3. 添加进货信息4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
2. 查询供应商基本信息 3. 添加进货信息
4. 添加进货的财务信息 <> 添加进货财务信 添加进货信息 采购员 <> <> 登陆系统 查询供货商信顾客使用的用例 1. 登陆系统2. 查询商品信息登陆系统 7顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
顾客使用的用例 1. 登陆系统
2. 查询商品信息
登陆系统 7
顾客 查询商品信息 <>82.2 类和对象设计商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加93 逻辑结构设计类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价, 数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)10关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间, 数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4 数据库物理结构设计存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:111. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设12计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5 数据库完整性设计主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null13数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计商品销售记录表中的商品号参照商品基本信息表中的商品号商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号15出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号Check约束职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”5.5 触发器设计1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。6 数据库视图设计1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况164. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况6. 创建商品历史销售记录的视图,以便管理人员查看7. 创建商品的视图,以便顾客查看7 数据库存储过程设计创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。8 权限设计用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关17知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。参考资料:1.《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,2000年2月。18 因篇幅问题不能全部显示,请点此查看更多更全内容 查看全文
8
2.2 类和对象设计
商品库存信息 FK商品号 FK仓库号 数量 查询 添加 仓库基本信息 PK仓库号 FK管理员职工号 面积 查询 商品基本信息 PK商品号 商品名 进价 售价 单位 类别 是否销售 说明 查询 添加 修改 删除 供应商基本信息 PK供应商号 名称 地址 电话 E_mail 联系人 查询 添加 修改 删除 入库信息 FK商品号 FK仓库号 数量 日期 查询 添加 进货 FK商品号 FK供应商号 数量 日期 查询 添加 供应商品信息表 FK供应商号 FK供应商品号 查询 职工基本信息 PK职工号 姓名 职务 性别 生日 电话 居住地址 工资 身份证号 查询 添加 修改 删除 出库信息 FK商品号 FK仓库号 数量 日期 查询 添加 商品销售记录 FK商品号 数量 日期 查询 添加
9
3 逻辑结构设计
类和对象向关系模式转换
1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)
2商品销售记录表(商品号,商品名,销售时间,售价, 数量)
3商品库存信息表(商品号,商品名,仓库号,数量)
4入库信息表(商品号,商品名,日期,仓库号,数量)
5出库信息表(商品号,商品名,日期,仓库号,数量)
6仓库基本信息表(仓库号,管理员职工号,面积)
7进货表(商品号,商品名,供应商号,供应商名,日期,数量)
8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)
9供应商品信息表(供应商号,供应商名,供应商品号,商品名)
10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)
10
关系模式优化
注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超
市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。
2商品销售记录表(商品号,销售时间, 数量)
3商品库存信息表(商品号,仓库号,数量)
注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置
4入库信息表(商品号,日期,仓库号,数量)
5出库信息表(商品号,日期,仓库号,数量)
7进货表(商品号,供应商号,日期,数量)
注:当要进一种新商品时先在商品基本信息表中添加信息。
9供应商品信息表(供应商号,供应商品号)
注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且
各供应商供应商品价格即进价都相等。
财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。
4 数据库物理结构设计
存取方法设计
根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:
11
1. 商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(create unique index A on商品基本信息表(商品号) ,create unique index B on商品基本信息表(商品号) )
2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。( create unique index C on 仓库基本信息表(仓库号) )
3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。( create unique index D on 职工基本信息表(职工号) )
4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。( create unique index E on 供应商基本信息表(供应商号) )
5. 商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(create index F on商品销售记录表(商品号) ,create index G on商品库存信息表(商品号) ,create index H on入库信息表(商品号) ,create index I on出库信息表(商品号) ,create index J on进货表(商品号) ,create index K on供应商品信息表(商品号) )
6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(create index L on商品库存信息表(仓库号) ,create index M on入库信息表(仓库号),create index N on出库信息表(仓库号) )
7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。( create index O on进货表(供应商号) ,create index P on供应商品信息表(供应商号) )
存储结构设计
数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设
12
计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。
在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。
5 数据库完整性设计
主键及唯一性索引
唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQL Server 2005就会默认建立一个唯一索引 数据表名称:商品基本信息表 字段名 字段类型 描述 商品号 nchar(10) PK,not null 商品名 nchar(20) not null 进价 float(2) not null 售价 float(2) not null 单位 nchar(10) not null 类别 nchar(10) not null 是否销售 Char(2) not null 说明 nchar(100) null 数据表名称:商品销售记录表 字段名 字段类型 描述 商品号 nchar(10) PK,FK,not null 销售时间 Time PK,not null 数量 Int Not null
13
数据表名称:商品库存信息表 字段名 商品号 仓库号 数量 数据表名称:入库信息表 字段类型 nchar(10) nchar(10) int 描述 PK,FK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 数据表名称:出库信息表 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null Not null 字段名 商品号 日期 仓库号 数量 字段类型 nchar(10) datetime nchar(10) int 描述 PK,FK,not null PK,not null FK,not null not null 数据表名称:仓库基本信息表 字段名 字段类型 仓库号 nchar(10) 管理员职工号 nchar(10) 面积 int 数据表名称:进货表 字段名 字段类型 商品号 nchar(10) 供应商号 nchar(10) 日期 datetime 数量 int 数据表名称:供应商基本信息表 字段名 字段类型 描述 PK,not null FK,not null not null 描述 PK,FK,not null PK,FK,not null PK,not null not null 描述 14
供应商号 nchar(10) 名称 nchar(20) 地址 nchar(100) 电话 char(11) E_mail nchar(20) 联系人 nchar(10) 数据表名称:供应商品信息表 字段名 字段类型 供应商号 nchar(10) 供应商品号 nchar(10) 数据表名称:职工基本信息表 字段名 字段类型 职工号 nchar(10) 姓名 nchar(10) 职务 nchar(10) 性别 char(2) 生日 datetime 电话 char(11) 居住地址 nchar(100) 工资 int 身份证号 char(18)
PK,not null not null not null not null null null 描述 PK,FK,not null PK,FK,not null 描述 PK,not null not null not null not null not null not null not null not null not null 5.2 参照完整性设计
商品销售记录表中的商品号参照商品基本信息表中的商品号
商品库存信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号
入库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号
15
出库信息表中的商品号参照商品基本信息表中的商品号,仓库号参照仓库基本信息表中的仓库号
进货表中的商品号参照商品基本信息表中的商品号,供应商号参照供应商基本信息表中的供应商号
供应商品信息中的供应商号参照供应商基本信息表中的供应商号,供应商品号商品基本信息表中的商品号
Check约束
职工基本信息表中属性“性别”取值为“男”或“女” check ( 性别 in (‘男’, ‘女’) )
商品基本信息表中属性“是否销售”取值为“是”或“否” check ( 是否销售in (‘是’ ,‘否’) ) Default约束
职工基本信息表中属性“性别”默认值为“男” 商品基本信息表中属性“是否销售”默认值为“是”
5.5 触发器设计
1. 在入库信息表上创建商品入库的触发器:当某种商品入库时检查仓库中是否有该商品,如果有则放在一起,如果没有则重新选择存放的仓库号。即:入库信息表添加记录时检查商品号是否存在于库存信息表中,若存在则修改库存信息表中的数量,若不存在则在库存信息表中添加相应记录。
2. 在出库信息表上创建商品出库的触发器:当某种商品出库时修改该商品的库存数量(工作人员可以从仓库运出的商品数量一定小于等于库存数量)。即:当出库信息表中添加记录时在库存信息表中修改相应商品数量。
6 数据库视图设计
1. 创建进货支出的财务视图,以便管理人员可以查询某种商品的进货指出情况
2. 创建工资的财务视图,以便管理人员可以查询某职工的工资情况
3. 创建销售额的财务视图,以便管理人员可以看到每天的销售情况
16
4. 创建日盈利财务统计的视图,以便管理人员可以看到每天的盈利情况
5. 创建月盈利财务统计的视图,以便管理人员可以看到每月的盈利情况
6. 创建商品历史销售记录的视图,以便管理人员查看
7. 创建商品的视图,以便顾客查看
7 数据库存储过程设计
创建某商品不再销售的存储过程:当管理人员决定一种商品不再销售时(此时该商品的库存数量应该为0)删除库存信息表中相应的商品记录并修改商品基本信息表中相应商品的记录。
8 权限设计
用户 管理人员 仓库管理员 数据库对象 所有 表、视图 table入库信息表 table出库信息表 table库存信息表 table仓库基本信息表 table商品销售记录表 table供应商基本信息表 table进货表 view商品 允许操作类型 all privileges select insert update select select insert select select insert select 能否转授权 能 否 收银员 采购员 否 否 顾客 否 9 总结
经过一周的课程设计,使我对数据库有了更深一层的了解。我设计的是小型超市信息管理系统。整个设计的过程也是我不断学习的一个过程,我在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关
17
知识方面的空白。通过这次课程设计,也许认为只是完成了一个学识上的考核。让我掌握到了我应该掌握住的知识也让我们体会到了生活中我们应该体会到的东西。相信在今后的学习和工作中,在面临成功与挫折,失败与教训时,都一样有着今天我所收获到的东西,和所经历并记住的一切。
这次课程设计我做的程序也让我学到了很多东西。对数据库系统设计有了更具体的认识,让我们复习了以前学过的知识,也让我们对数据库系统设计更深刻的认识,这次的设计使我受益颇深。
由于本人目前能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:人事信息和财务信息设计得太过简单,很多地方可能设计的不恰当,有些地方考虑的还不周全等。对于以上出现的问题,我深表歉意,如发现还有其它问题,希望老师批评指正。
参考资料:
1.
《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版,
2000年2月。
18
因篇幅问题不能全部显示,请点此查看更多更全内容