数据库课程设计(自己做的)
货存控制系统6.1数据库设计概述数据库设计的概念:数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计的特点1、数据库建设是硬件、软件和干件的结合:三分技术、七分管理、十二分基础数据,技术与管理的界面称之为干件。2、数据库设计过程是结构设计和行为设计的密切结合:结构设计是设计数据库结构,行为设计是设计应用程序、事务处理等。数据库设计的方法1、手工试凑法:设计质量与设计人员的经验和水平有直接关系,缺乏科学理论和工程方法的支持,工程质量难保证。2、规范设计法:基本思想是过程迭代和逐步求精。数据库设计的基本步骤准备工作:选定参加设计的人员。分析员:数据库设计的核心人员,自始至终参与数据库设计,其水平决定了数据库系统的质量。用户:主要参加需求分析和数据库的运行维护,用户的积极参与将加速数据库设计,提高数据库设计的质量。程序员:在系统实施阶段参与进来,负责编制程序。操作员:在系统实施阶段参与进来,准备软硬件环境。数据库设计的过程(六个阶段)1、需求分析阶段:准确了解与分析用户需求(包括数据与处理),是整个设计过程的基础,是最困难、最耗费时间的一步。2、概念结构设计阶段:整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型3、逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。4、数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。5、数据库实施阶段:运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库并进行试运行。6、数据库运行和维护阶段:数据库应用系统经过试运行后即可投入正式运行,在运行过程中不断对其进行评价、调整与修改。 设计一个数据库应用系统往往是上述六个阶段的不断反复。数据库设计各阶段的模式形成:1、需求分析阶段:综合各个用户的应用需求。2、概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)。3、逻辑设计阶段:首先将E-R图转换成具体DBMS支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式。4、物理设计阶段:根据DBMS特点和处理需要,进行物理存储安排,建立索引,形成数据库内模式。一、 课程设计题目:货存管理系统 一个公司希望为控制它的货存建立一个数据库,货存中的产品被分为几类,如服装、食品和文具。当产品需要从供应商那里重新订购时,工作人员需要提出一个购买订单。跟踪记录要提供买进、卖出的货物以及其他的费用。实验课程任务与要求目的与任务:1.掌握数据库设计和实现的基本过程2.掌握数据库模式设计、分析和实现的方法3.了解数据库应用系统软件开发的一般过程。实验基本要求: (1) 学习相关的预备知识(2) 按照数据库设计与实现过程完成数据库的设计,应用程序的开发,上机调试、运行(3) 写出课程设计报告二、功能需求分析:根据系统要求分析,本系统功能如下:用户管理:添加用户,修改用户密码。客户管理:添加客户,查询客户信息。供应商管理:添加供应商,查询供应商信息。仓库管理:添加仓库,查询仓库信息。货物管理:添加物品信息,物品类型信息。入库管理:货物的入库信息的添加和修改。出库管理:货物的出库信息的添加和修改。1、CREATE TRIGGER Tr_入库表 ON 入库表after insert,update,deleteASbegin update a set a.库存数量=a.库存数量 +b.入库数量 from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from inserted group by 零件号 ) b -如果每次插入时零件号不重复,则不必聚合 where a.零件号 =b.零件号; go update a set a.库存数量=a.库存数量 -b.入库数量 from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from deleted group by 零件号 ) b -如果每次插入时零件号不重复,则不必聚合 where a.零件号 =b.零件号; goend2、CREATE TRIGGER Tr_出库表 ON 出库表after insert,update,deleteASbegin update a set a.库存数量=a.库存数量 -b.出库数量 from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from inserted group by 零件号 ) b -如果每次插入时零件号不重复,则不必聚合 where a.零件号 =b.零件号; go update a set a.库存数量=a.库存数量 +b.出库数量 from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from deleted group by 零件号 ) b -如果每次插入时零件号不重复,则不必聚合 where a.零件号 =b.零件号; goend库存信息:对货物的现有信息存量查询。三、数据库概念设计:本实例根据根据上面的设计规划出的实体有仓库实体、客户实体、供应商实体、管理员实体、货物实体、货物类型实体、入库实体、出库实体、库存实体。各个实体的E-R图描述如下:仓 库仓库编号仓库名称仓库地址管理员编号仓库面积 仓库实体E-R图供 应 商供应商名称供应商编号供应商地址联系方式邮编 供应商实体E-R图客 户客户名称地址客户编号联系方式 客户实体E-R图管理员管理员编号管理员姓名密码管理员实体E-R图货 物物品名称类型编号物品编号 货物实体E-R图货物类型类型名称类型描述类型编号 货物类型实体E-R图入 库供应商编号物品名称类型名称物品编号入库数量购入单价采购金额入库日期 入库实体E-R图出 库客户编号物品名称类型名称物品编号出库数量出售单价出库金额出库日期 出库实体E-R图 库 存仓库编号物品名称类型名称物品编号物品数量 库存实体E-R图整体E-R图如下所示:四、数据库逻辑设计:关系数据库的数据模型(即关系模型)由一组关系模式组成,因而ER图向关系模型的转换实际上就是将实体(包括实体的属性)和联系转换为关系模式,一般遵循以下基本原则: 1.一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。 2.一个1:X(X为1或n)联系通常与某一端的关系模式合并,其中1:n的联系需要与n端对应的关系模式合并。需要在合并的关系模式的属性中加入另一个关系模式的码和联系本身的属性。 3.一个m:n联系转换为一个关系模式。与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。 4.三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。 5.具有相同码的关系模式可合并。使用SQL server 2000企业管理器建立数据库和表(也可使用SQL语句建立数据库)。数据库包括:1.仓库的数据项描述: Storage数据项名对应英文名数据项含义类型长度说明仓库编号Sno仓库的编号char5主键仓库名称Sname仓库的名称char20仓库地址Saddr仓库的地址char40管理员编号Mno管理员的编号char5外键仓库面积Ssize仓库的大小int2.供应商的数据项描述:Provider数据项名对应英文名数据项含义类型长度说明供应商编号 Pno供应商的识别号码char5主键供应商名称 Pname供应商公司的名称char20供应商地址 Paddr供应商公司的地址char40邮编Postcode公司的邮编char6 电话Ptel公司的电话char113.客户的数据项描述:Client数据项名对应英文名数据项含义类型长度说明客户编号Cno客户的编号char5主键客户名称Cname客户公司的名称char20地址Caddr客户公司的地址char40联系电话Ctel客户联系电话char114货物的数据项描述:Goods数据项名对应英文名数据项含义类型长度说明物品编号Gno物品的编号char5主键物品名称 Gname物品的名称char20类型编号 Tno物品的类型char5外键5.货物类型的数据项描述:Type数据项名对应英文名数据项含义类型长度说明类型编号Tno物品的类型的编号char5主键类型名称 Tname物品的类型的名称char20类型描述 Tdescription物品的类型的描述char506.管理员的数据项描述:Manager数据项名对应英文名数据项含义类型长度说明管理员编号Mno管理员的编号char5主键管理员姓名Mname管理员的姓名char20密码PW该管理员的密码Char67.库存的数据项描述: Stock数据项名对应英文名数据项含义类型长度说明物品编号Gno货物表中物品编号Char5外键、主键仓库编号Sno仓库的编号Char