1、工厂物资管理数据库系统设计报告班级:11级信班 学号:31112300510 姓名: 贺媛目录一、设计任务说明1二、需求分析1三、概念模型设计21.实体E-R图设计22。实体联系描述43.全局概念结构E-R图设计4四、逻辑模型设计5五、物理模型设计61.数据库设计62.数据表描述:63触发器:84.视图:85.存储过程:8六、数据库实施81。创建数据库:82。创建备份文件:93。创建数据表文件93。创建索引124.创建触发器:125。创建视图:136。修改语句14七、总结15八、参考文献16一、设计任务说明1.理解数据库应用与工厂物资管理体系;2.掌握模型设计定义以及如何用数据库实现创建;3。
2、掌握数据库实现管理以及语句、数据上的修改;二、需求分析通过对工厂物资管理工作过程及数据流图的认真分析,得到如下的有用信息: 1. 工厂物资管理设计多种零件的存放。2. 每件零件需要记录零件号码、条形码、类别、价格、出厂日期等基本信息。3. 除此之外,还需要记录零件的其他相关信息,如零件供应商的信息,存放的仓库信息、何种项目需要使用何种零件等.4. 同时需要提供对信息的添加、编辑、删除等操作。5. 供应商(supplier)信息,包括的数据项有:供应商号、姓名、账号、地址、电话号码。 6. 项目(project)信息,包括的数据项有:项目号、预算、开工日期。7. 零件(part)信息,包括的数据
3、项有:零件号、名称、规格、单价、描述.8. 仓库(warehouse )信息,包括的数据项有:仓库号、面积、地址、电话号码. 9. 职工(staff)信息,包括的数据项有:职工号、姓名、性别、年龄、职称三、概念模型设计1。实体E-R图设计(1)供应商:供应商号、姓名、地址、电话号、账号。供应商号账号姓名地址电话号供应商图3。1供应商实体ER图(2)零件:编号、名称、仓库号、描述、单价、规格。零件号单价描述名称规格零件、图3.2零件商实体ER图(3)项目:项目号、预算、开工日期。开工日期预算项目号项目图3.3项目实体ER图(4)仓库:仓库号、面积、电话号、管理号、职工号.面积仓库号电话号仓库图3
4、.4仓库实体E-R图(5)职工:姓名、年龄、名称、职工号.职称姓名职工号年龄职工图3。5职工实体E-R图2.实体联系描述采购部门与供应商的联系,为多个项目提供多种零件,供应商、项目和零件三者之间具有多对多的联系。仓库管理部门主要记录零件数量情况,一间仓库可以存放多种零件,一种零件可以存放在多建仓库中,因此仓库和零件之间具有多对多的联系,用数量来表示某种零件在某建仓库中的数量.人事部门要安排职工的工作任务,一间仓库有多个职工当仓库保管员,一个职工只能在一间仓库工作,因此仓库和职工之间存在一对多的联系.职工之间具有领导-被领导关系,即仓库主任领导若干保管员,因此直供实体具有一对多的联系。3。全局概
5、念结构ER图设计供应供应商供应商号账号电话地址姓名供应量项目项目号预算开工日期零件库存名称描述零件号规格单价仓库面积仓库号电话号职工姓名年龄职工号库存量职称领导工作图3.6仓库系统整体ER图四、逻辑模型设计下面是“工厂物资管理”的ER数据模型转换成关系模型的所有模型(1)根据规则1,5实体对应以下5个关系模式.l 仓库资料(仓库号、面积、电话号码),主键为仓库号。l 零件资料(零件号,名称,规格,单价,描述),主键为零件号。l 供应商资料(供应商号,姓名,地址,电话,账号),主键为供应商号。l 项目资料(项目号,预算,开工日期),主键为项目号.l 职工资料(职工号,姓名,年龄,职称),主键为职
6、工号.(2)根据规则2,仓库与零件之间存在多对多的关系,对应关系模式如下。l 库存量(仓库号,零件号,库存量),主键为仓库库与零件号的组合。(3)根据规则3,仓库与职工实体之间存在一对多的二元联系,对应的关系模式如下.l 工作情况表(职工号、仓库号、工作时间),主键为职工号。(4)根据规则5,供应商、项目与零件三实体之间的三元联系,对应的关系模式如下。l 供应情况表(供应商号、零件号、项目号 供应量),主键为项目号,供应商号与零件号的组合.(5)根据规则7,将职工实体拆分为普通员工和班长两个子集,两子集之间存在一对多的联系,对应的关系模式如下。l 普通员工(职工号,姓名,年龄),主键为职工号.
7、l 班长(工号,姓名,年龄),主键为工号.l 领导(职工号),主键为职工号。五、物理模型设计1。数据库设计(1)逻辑数据库名称:goodsManagment(2)数据文件:goods DAT。MDF,始初大小为3MB,最大空间为20MB,增加量为2MB。(3)日志文件:goods LOG。LDF,始初大小为1MB,最大空间为20MB,增加量为2MB。(4)备份设置名:BACKUP;goodsbackup。dat。2。数据表描述:项目资料表字段类型长度可否为空备注项目号Int否主键预算Int可开工日期datetime否仓库资料表字段类型长度可否为空备注仓库号Int否主键面积Int否电话号码Cha
8、r15否零件资料表字段类型长度可否为空备注零件号Int否主键名称Varchar30否规格Varchar20否电话号码Char15可描述Text可单价int否职工资料表字段类型长度可否为空备注职工号Int否主键姓名char8否年龄Int可职称char8可供应商资料表字段类型长度可否为空备注供应商号Int否主键姓名char8否地址Varchar20否电话号码char7账号Int库存情况表字段类型长度可否为空备注仓库Int否主键零件Int否库存量int否供应情况表字段类型长度可否为空备注供应商号Int否主键零件号Int否项目号Int否供应量Int工作情况表字段类型长度可否为空备注职工号Int否主键仓
9、库号Int否工作时间datetime否3触发器:(1)要求供应商资料中的供应商号被修改时,供应情况表中的供应商号也被修改.名称:goodsid、(2)要求零件资料中的零件号被修改时,供应情况表与库存情况表中的零件号也被修改。名称:goodsid1、(3)要求项目资料中的项目号被修改时,供应情况表中的项目号也被修改.名称:goodsid2、(4)要求供应商资料中的供应商号只有在供应情况表中的相应供应商号不存在时,方可删除。名称:goodsid3、(5)要求零件商资料中的零件号只有在供应情况表与库存情况表中的相应零件号不存在时,方可删除。名称:goodsid4、(6)要求项目资料中的项目号只有在供
10、应情况表中的相应项目号不存在时,方可删除.名称:goodsid5。4.视图:为用户提供包含供应商姓名、零件号、项目号、和零件总价格的视图.名称: project5.存储过程:根据用户所提交的职工号,为用户提供职工信息。名称 :lookworker.六、数据库实施1。创建数据库:create database goodsManagmenton(name = goosaDAT,filename = c:SQLgoodsDAT.MDF,size = 3,maxsize=20,filegrowth = 2)LOG on(name = 物资管理LOG,filename=c:SQLgoodsLOG。ldf
11、,size=1,maxsize=20,filegrowth=2)2。创建备份文件:sp_addumpdevicedisk,BACKUP1,D:sqlgoodsbackup1。datgobackup database goodsManagment to BACKUP13。创建数据表文件create table 仓库资料(仓库号int primary key,面积int,电话号码char(15)图6。1仓库数据表显示图create table 零件资料(零件号int primary key,名称varchar(30),规格varchar(20),电话号码char(15),描述Text,单价int)
12、图6。2零件数据表显示图create table 项目资料(项目号int primary key,预算int,开工日期datetime)图6.3项目数据显示图create table 职工资料(职工号int primary key,姓名char(8),年龄int,职称char(8)图6。4职工数据显示图create table 供应商资料(供应商号int primary key,姓名char(8),地址varchar(20),电话号码char(7),账号int)图6。5供应商数据显示图create table 库存情况表(仓库号int,零件号int,库存量int)图6。6仓库情况表显示图cre
13、ate table 供应情况表(供应商号int references 供应商资料(供应商号),零件号int references 零件资料(零件号),项目号int references 项目资料(项目号),供应量int)图6。7供应商情况表显示图create table 工作情况表(职工号int references 职工资料(职工号),仓库号int references 仓库资料(仓库号),工作时间datetime)图6。8工作情况表显示图3。创建索引create nonclusteredindex IX_仓库号on 仓库资料(仓库号asc)create nonclusteredindex
14、IX_零件号on 零件资料(零件号asc)create nonclusteredindex IX_项目号on 项目资料(项目号asc)create nonclusteredindex IX_职工号on 职工资料(职工号asc)create nonclusteredindex IX_供应商号on 供应商资料(供应商号asc)create nonclusteredindex IX_仓库号on 库存情况表(仓库号asc)create nonclusteredindex IX_供应商号on 供应情况表(供应商号asc)create nonclusteredindex IX_职工号on 工作情况表(职工
15、号asc)4。创建触发器:(1)create trigger goodid on 供应商资料for updateasbeginif (columns_updated()01)0update 供应情况表set 供应情况表。供应商号= (select a.供应商号from inserted a)where 供应情况表。供应商号= (select b。供应商号from deleted b)end(2)create trigger good_1 on 零件资料for updateasbeginif(columns_updated()01)0update 供应情况表set 供应情况表。零件号=(sele
16、ct 零件号from inserted)where 供应情况表。零件号=(select 零件号from deleted)update 库存情况表set 库存情况表。零件号=(select 零件号from inserted)where 库存情况表。零件号=(select 零件号from deleted)end(3)create trigger good_2 on 项目资料for update asbeginif(columns_updated()01)0update 供应情况表set 供应情况表。项目号=(select 项目号from inserted)where 供应情况表.项目号=(sele
17、ct 项目号from deleted)end(4)create trigger good_3 on 供应商资料for delete asif exists(select 供应商号from deleted awhere a.供应商号in(select 供应情况表。供应商号from 供应情况表))beginraiserror(因在供应商资料中存在,不得删除此条记录!,16,1)rollback transactionend(5)create trigger good_5 on 零件资料for delete asif exists(select 零件号from deleted awhere a.零件
18、号in(select 供应情况表.零件号from 供应情况表) or a。零件号in(select 库存情况表。零件号from 库存情况表)beginraiserror(因在零件资料中存在,不得删除此条记录!,16,1)rollback transactionend(6)create trigger good_4 on 项目资料for delete asif exists(select 项目号from deleted awhere a。项目号in(select 供应情况表。项目号from 供应情况表)beginraiserror(因在零件资料中存在,不得删除此条记录!,16,1)rollbac
19、k transactionend5。创建视图:create VIEW project(供应商姓名,零件名,项目号,零件总价格)asselect 姓名,名称,项目号,供应量 单价from 供应商资料,供应情况表,零件资料where 供应商资料.供应商号= 供应情况表。供应商号and 供应情况表。零件号= 零件资料。零件号创建存储过程:create procedure lookworkerid intasselect 职工号from 职工资料where 职工资料。职工号= id6.修改语句(1)use goodsManagementgoupdate 供应商资料set 供应商号= 1002where
20、 供应商号= 2001go select from 供应商资料图6.9供应商修改显示图(2) use goodsManagementgoupdate 项目资料set 项目号= 8where 项目号= 1go select from 项目资料图6.10项目修改显示图(3) use goodsManagementgoupdate 零件资料set 零件号= 106where 零件号= 102go select from 零件资料图6。11零件修改显示图(4) use goodsManagementgodelete from 供应商资料where 供应商号=1002goselect*from 供应商资
21、料(5)use goodsManagementgodelete from 零件资料where 零件号=101goselectfrom 零件资料(6) use goodsManagementgodelete from 项目资料where 项目号=3goselect*from 项目资料七、总结本系统是一个典型的信息管理系统,其主要通过数据库系统设计方法进行课题选择、需求分析、系统设计等步骤实现。开发本系统的过程中,首先要对工厂物资管理进行系统调研,熟悉其中的零件的存储管理、零件的使用管理和供应记录管理流程、步骤,完成需求分析;其次在系统需求分析的基础上,发现工厂物资管理中需要解决的各种问题,并在总
22、体设计把握好对问题的分析、理解,进而解决问题;使用数据库设计方法的步骤,经过需求分析、概念模型设计、逻辑模型设计、物理模型设计、数据库实施及创建等,使用SQL Server 2005系统创建实施了工厂物资管理数据库系统。这次的实验让我理解了数据库应用与工厂物资管理体系、掌握了模型设计定义以及如何用数据库实创建、掌握了数据库实现管理以及语句、数据上的修改。SQL Server数据库的实验学习使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。因此,我感谢数据库老师给了我有用的知识,以便我在以后学习或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸收新的东西。希望在今后中,SQL Server能给我更多帮助。感谢学校开设这样一门优秀使用的课程,让我对数据库有了更深的了解。八、参考文献1。JSP的SQLServer数据库访问技术肖遥20092.基于JSP的教务管理系统设计史志国20083。数据库原理及应用钱雪忠主编北京邮电大学出版社2007,8第二版4。SQLserver2000数据仓库与AnalysisServicesBainT著中国电力出版社20035。 SOL Server2005入门与提高.文龙,张自辉等。北京:清华大学出版社,200712