工厂数据库管理系统课程设计说明书大学论文.doc
长 沙 学 院课程设计说明书题目工厂数据库管理系统系(部)数学与计算机科学专业(班级)软件2班姓名肖瑶学号2013022236指导教师潘怡起止日期20156.152015626课程设计任务书课程名称:数据库系统原理课程设计设计题目:工厂数据库管理系统、销售订单数据库管理系统、汽车租赁管理系统、火车票预订管理系统(任选一题)。已知技术参数和设计要求:题目:工厂数据库管理系统1、某工厂需建立一个管理数据库存储以下信息:工厂包括厂名和厂长名。一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。一个车间生产多种产品,产品有产品号、产品名称和价格。一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。一个产品由多种零件组成,一种零件也可装配出多种产品。产品与零件均存入仓库中。厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。2、系统功能的基本要求:按照一定条件查询、统计工人和产品等基本信息,能模拟工厂生产过程中对原材料(零件)、产品检测、库存环节的管理。各阶段具体要求:1、需求分析阶段l 定义数据项的含义和取值l 定义目标系统的数据流2、概念结构设计阶段l 画出实体模型E-R图3、逻辑结构设计阶段l 将实体模型转化为关系模型l 给出每个关系的主关键字和函数依赖集l 分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段l 确定所有字段的名称、类型、宽度、小数位数及完整性约束 l 确定数据库及表的名称及其组成 l 确定索引文件和索引关键字5、数据库安全及维护设计阶段l 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)l 为了实现复杂的数据完整性约束,设计适当的触发器l 设计一个适合的数据库备份策略6、实施阶段l 要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成14,第二周完成58,论文同步进行;1)选定题目2)需求分析3)概念结构设计4)逻辑结构设计5)物理设计6)数据库安全及维护设计7)数据库上机实现8)答辩计划时间指导老师班级1516周杨刚13软件1班1516周潘怡13软件2班1516周何可可13软件3班1516周刘刚钦13软件4班注意事项n 提交文档Ø 长沙学院课程设计任务书(每学生1份)Ø 长沙学院课程设计论文(每学生1份)Ø 长沙学院课程设计鉴定表(每学生1份)指导教师签名: 日期: 教研室主任签名: 日期:系主任签名: 日期:长沙学院课程设计鉴定表姓名肖瑶学号2013022236专业软件工程班级2班设计题目工厂数据库管理系统指导教师潘怡指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录1、需求分析阶段22、概念结构设计阶段23、逻辑结构设计阶段24、物理设计阶段25、数据库安全及维护设计阶段26、实施阶段3一、引言71.1编写目的71.2参考资料7二、需求规约72.1 业务描述72.2 需求分析7三、数据库环境说明8四、数据库的命名规则94.1 数据库对象命名规则94.2 数据项编码规则9五、逻辑设计105.1实体关系E-R图105.2创建数据库系统的关系模型10六、物理设计136.1表汇总136.2表146.3存储过程、函数及触发器的设计19七、总结26八、附件27一、引言1.1 编写目的根据工人数据库管理系统建立一个数据库存储信息,建立实体并分析实体间的关系通过SQL语言来实现此管理系统的运用,模拟工厂生产过程中对零件、产品检测、库存环节的管理。从而便于用户详细了解整个工厂数据库管理系统。 1.2 参考资料 资料名称作者文件编号、版本数据库系统概论王珊、萨师煊2006年5月第4版二、需求规约2.1 业务描述根据工人管理系统模拟生产过程,实现对零件生产、产品检测、库存的管理。2.2 需求分析2.2.1 数据结构及数据关系1.数据结构:工厂 (厂名、厂长)仓库 (仓库号、仓库主任姓名、电话)车间 (车间号、车间主任姓名、地址、电话)工人 (工号、姓名、年龄、性别、工种)产品 (产品号、产品名称、价格、数量)零件 (零件号、重量、价格、数量)2.数据关系:车间、工人与产品、零件有生产关系,工厂与车间、工厂与仓库、车间与工人有包含关系;产品与零件有组成关系,产品、零件与仓库有库存关系。工厂与车间为一对多关系, 车间与工人为一对多关系, 车间与产品为一对多关系,仓库与产品为一对多关系,仓库与零件为一对多关系, 车间与零件为多对多关系, 产品和零件为多对多关系, 工厂与仓库为一对多关系。2.2.2 功能分析1.要求能够插入,管理并更新此系统的车间数据、仓库数据、工人信息、产品信息及零件数据。生产产品用例规约如表2.1所示。用例名称:添加产品信息角色:工厂管理人员用例说明:工厂生产新的产品前置条件:进入软件功能选择页面基本事件流:1. 点击添加产品2. 输入产品信息(产品号、产品名称、价格、数量)3. 输入组成该产品的零件信息(零件号、重量、价格、数量)其他事件流:该工厂不能生产其中一种零件,生产产品失败。后置条件:产品信息添加成功,工厂开始生产该产品表2.1产品生产用例规约2.要求具有完整的查询功能。例如通过仓库号能查询到仓库主任姓名、联系电话等信息;通过车间号能查询到车间主任姓名、地址、联系电话通过产品号能查询到产品名称,产品价格等等;职工信息查询用例规约如表2.2所示。用例名称:查询职工信息角色:工厂管理人员用例说明:主管调查人员劳动价值前置条件:进入软件功能选择页面基本事件流:1.选择要查询职工的职工号2.点击查询其他事件流:如果没有该职工号,则用况终止后置条件:显示该职工的所有信息(姓名,年龄,性别,工种)表2.2职工信息查询用例规约三、数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明工人数据库管理系统SQL server2008硬件:2GB内存:512M以上网络环境:windows xpMicrosoft Office Visio 2003与SQL server 2008D盘根目录查询、统计工人和产品基本信息,模拟工厂生产过程四、数据库的命名规则4.1 数据库对象命名规则数据库对象命名规则备注表功能描述字符串例如: factory 工厂表索引index_功能描述字符串例如:index_factory 工厂索引触发器trigger_功能描述字符串例如: trigger_factory 工厂触发器存储过程procedure_功能描述字符串例如: procedure_factory 工厂存储过程4.2 数据项编码规则数据项数据类型长度范围备注厂名char20Fname厂长名char20FMname产品名char20Proname车间号char10Wno仓库号char10Sno职工号char10Workno产品号char10Prono零件号char10Pno电话char11Phone工种char20Worktype零件重量IntPweight零件价格IntPmoney零件数量IntPquantity五、逻辑设计5.1实体关系E-R图1n1nn1mnnmnnn1生产11包含存放包含生产性别姓名工人工种年龄工号厂长名厂名价格主任编号车间号电话地址包含工厂仓库号主任编号存放电话仓库重量零件号名称价格产品号车间组成产品零件5.2创建数据库系统的关系模型1.工厂表数据信息Factory数据项名含义数据类型约束是否为空Fname厂名Char(20)Primary KeyNot NULLFMname厂长名Char(20)2.工人表数据信息Worker数据项名含义数据类型约束是否为空Wono职工号char(10)Primary keyNOT NULLWoname姓名char(20)Woage年龄smallintWosex性别char(10)Wotype工种char(20)Wno车间号char(10)Foreign key3.车间表数据信息Workhome数据项名含义数据类型约束是否为空Wno车间号char(10)Primary keyNOT NULLWMno车间主任编号char(20)Wadd地址char(20)Wphone电话char(11)Fname厂名char(20)Foreign key4.产品表数据信息Product 数据项名含义数据类型约束是否为空Prno产品号char(10)Primary keyNOT NULLPrname产品名称char(20)Prmoney产品价格intPrquantity产品数量intSno仓库号char(10)Foreign keyWno车间号char(10)Foreign key5.零件表数据信息Part数据项名含义数据类型约束是否为空Pano零件号char(10)Primary keyNOT NULLPaweight零件重量intPamoney零件价格intPaquantity零件数量intSno仓库号char(10)Foreign key6.仓库表数据信息Storage 数据项名含义数据类型约束是否为空Sno仓库号char(10)Primary keyNOT NULLSMno仓库主任编号char(20)Sphone电话char(11)7.生产表数据信息Make 数据项名含义数据类型约束是否为空Wno车间号char(10)Primary keyNOT NULLPno零件号char(20)Primary keyNOT NULLMtime生产日期varchar(20)Mquantity零件生产数量int8.组成表数据信息Compose数据项名含义数据类型约束是否为空Prno产品号char(10)Primary keyNOT NULLPano零件号char(10)Primary keyNOT NULLCquantity组装数int9.产品存储表数据信息Store1数据项名含义数据类型约束是否为空Sno仓库号char(10)Primary keyNOT NULLPrno产品号char(10)Primary keyNOT NULLSquantity1产品库存量int10.零件存储表数据信息Store2数据项名含义数据类型约束是否为空Sno仓库号char(10)Primary keyNOT NULLPano零件号char(20)Primary keyNOT NULLSquantity2零件库存量int六、物理设计6.1表汇总表名功能说明表Part查询,插入,索引,存储过程表Product查询,插入,修改,索引,存储过程表Storage查询,更新,删除,存储过程6.2表1.工厂表表名Factory数据库用户Work主键Fno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1FnameChar(20)NPrimary key2FMnameChar(200sql脚本Create table Factory(Fname char(20) Primary Key,FMname char(20)备注工厂与车间一对多2.工人表表名Worker数据库用户work主键Wono序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Wonochar(10)NPrimary key2Wonamechar(20)3Woagesmallint4Wotypechar(20)5Wnochar(10)NForeign keysql脚本Create table Worker(wono char(10)Primary Key,Woname char(20),Woage smallint,wosex char(2),Wotapy char(20),Wno char(10),foreign key(Wno)references Workhome(Wno) )备注车间与工人一对多3.车间表表名Workhome数据库用户work主键Wno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Wnochar(10)NPrimary key2WMnamechar(20)3Waddchar(20)4WphoneChar(11)5FnameChar(20)NForeign keysql脚本Create table Workhome( Wno char(10)primary Key, WMno char(20), Wadd char(20), Wphone char(11), Fname char(20), Foreign Key(Fname)references Factory(Fname)备注工厂与车间一对多4.产品表表名Product数据库用户work主键Prno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Prnochar(10)NPrimary key2Prnamechar(20)3Prmoneyint4Prquantityint5Wnochar(10)NForeign keysql脚本Create table Product(Prno char(10)Primary Key,Prname char(20),Prmoney int,Prquantity int,Sno char(10),Wno char(10),foreign key(Wno)references Workhome(Wno) )备注车间与产品一对多,仓库与产品一对多5.零件表表名Part数据库用户work主键Pano序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Panochar(10)NPrimary key2PaweightVarchar(20)3Pamoneyint4Paquantityint5Snochar(10)NForeign keysql脚本Create table Part( Pano char(10)primary Key,Paweight varchar(20),Pamoney int,Paquantity int,Sno char(10),Foreign Key(Sno)references Storage(Sno) )备注仓库与零件一对多6.生产表表名Make数据库用户work主键Wno ,Prno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Wnochar(10)NPrimary key2Prnochar(10)NPrimary key3Mtimevarchar(20)4Mquantityintsql脚本 Create table Make ( Wno char(10), Pano char(10), Mtime varchar(20), Mquantity int, Primary Key(Wno,Pano), Foreign Key(Wno)references Workhome(Wno), Foreign Key(Pano)references Part(Pano) )备注车间与零件多对多7.组成表表名Compose数据库用户work主键Prno,Pano序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Prnochar(10)NPrimary key2Panochar(10)NPrimary key3Cquantityintsql脚本Create table Compose (Prno char(10),Pano char(10),Cquantity int,Primary Key(Prno,Pano),Foreign Key(Prno)references Product(Prno),Foreign Key(Pano)references Part(Pano) )备注产品和零件多对多8.仓库表表名Storage数据库用户work主键Sno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Snochar(10)NPrimary key2SMnochar(20)3Sphonechar(11)sql脚本Create table Storage(Sno char(10)primary Key,SMno char(20),Sphone char(11) )备注工厂与仓库一对多9.产品存储表表名Store1数据库用户work主键Sno、Prno序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Snochar(10)NPrimary key2Pronochar(10)NPrimary key3Squantity1intsql脚本Create table Store1(Sno char(10),Prno char(10),Squantity1 int,Primary Key(sno,Prno),Foreign Key(sno)references Storage(sno),Foreign Key(Prno)references Product(Prno) )备注仓库与产品一对多10.零件存储表表名Store2数据库用户work主键Sno、Pano序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Snochar(10)NPrimary key2Panochar(10)NPrimary key3Squantity2intsql脚本Create table Store2(Sno char(10),Pano char(10),Squantity2 int,Primary Key(sno,Pano),Foreign Key(sno)references Storage(sno),Foreign Key(Pano)references Part(Pano) )备注仓库与零件一对多6.3存储过程、函数及触发器的设计6.3.1存储过程设计1.工厂表存储过程及数据插入,效果图如图6.1所示Create procedure C_Factory Fname char(20), FMname char(20) as insert into Factory values(Fname,FMname); - exec C_Factory'环球鞋业有限公司','肖瑶'图6.12.车间表存储过程及数据插入,效果图如图6.2所示create procedure C_WorkhomeWno char(10),WMno char(20),Wadd char(20),Wphone char(11),Fname char(20)asinsert into Workhome values(Wno,WMno,Wadd,Wphone,Fname)-exec C_Workhome '01','001','洪山路月湖栋','15507485174','环球鞋业有限公司'exec C_Workhome '02','002','洪山路月湖栋','15108245415','环球鞋业有限公司'exec C_Workhome '03','003','洪山路月湖栋','13507451921','环球鞋业有限公司'图6.23.职工表存储过程及数据插入,效果图如图6.3所示create proc C_WorkerWono char(10),Woname char(20),Woage smallint,Wosex char(2),Wotype char(20),Wno char(10)asinsert into worker values(Wono,Woname,Woage,Wosex,Wotype,Wno)-exec C_Worker'001','肖俊俊','19','男','检查员','01'exec C_Worker'002','龙毛毛','20','男','生产员','01'exec C_Worker'003','周勤勤','19','男','安保','01'exec C_Worker'004','黄雷蕾','19','女','保洁员','01'exec C_Worker'005','许小芬','19','男','检查员','02'exec C_Worker'006','叶鹏','20','男','生产员','02'exec C_Worker'007','李强','19','男','安保','02'exec C_Worker'008','罗星','19','女','保洁员','02'exec C_Worker'009','李俊俊','19','男','检查员','03'exec C_Worker'010','李小为','20','男','生产员','03'exec C_Worker'011','扶小冉','19','男','安保','03'exec C_Worker'012','明小顺','21','男','保洁员','03'图6.34.仓库表存储过程及数据插入,效果图如图6.4所示create proc C_StorageSno char(10),SMno char(20),Sphone char(11)asinsert into Storage values(Sno,SMno,Sphone)-exec C_Storage'01','001','7941211'exec C_Storage'02','002','7412255'exec C_Storage'03','003','4566181'图6.45.产品表存储过程及数据插入,效果图如图6.5所示create proc C_ProductPrno char(10),Prname char(20),Prmoney int,Prquantity int,Sno char(10),Wno char(10)asinsert into Product values(Prno,Prname,Prmoney,Prquantity,Sno,Wno)-exec C_Product'01','耐克产品','800','611','01','01'exec C_Product'02','阿迪产品','751','721','02','02'exec C_Product'03','彪马产品','622','611','03','03'insert into product(Prno,Prname,Prmoney,Prquantity,Sno,Wno)values('04','特步产品','211','810','02','02')图6.56.零件存储过程及数据插入,效果图如图6.6所示Create proc C_PartPano char(10),Paweight varchar(20),Pamoney int,Paquantity int,Sno char(10)asinsert into Part values(Pano,Paweight,Pamoney,Paquantity,Sno)-exec C_Part'01','0.2','13','4000','01'exec C_Part'02','0.1','60','6150','02'exec C_Part'03','0.1','80','3618','03'exec C_Part'04','0.1','80','3618','03'delete from Part where Pano='04'图6.67.生产表存储过程及数据插入,效果图如图6.7所示Create Proc C_MakeWno char(10),Pano char(10),Mtime varchar(20),Mquantity intas insert into Make values(Wno,Pano,Mtime,Mquantity)-exec C_Make'01','01','2015.6.22 08:11:01','120'exec C_Make'02','02','2015.6.21 09:23:16','160'exec C_Make'03','03','2015.6.21 11:06:01','210'图6.78.组成表存储过程及数据插入,效果图如图6.8所示Create Proc C_ComposePrno char(10),Pano char(10),Cquantity intasinsert into Compose values(Prno,Pano,Cquantity)-exec C_Compose'01','01','10'exec C_Compose'01','02','10'exec C_Compose'01','03','10'exec C_Compose'02','01','29'exec C_Compose'02','02','29'exec C_Compose'02','03','29'exec C_Compose'03','01','38'exec C_Compose'03','02','38'exec C_Compose'03','03','38'图6.89.产品存储表存储过程及数据插入,效果图如图6.9所示Create proc C_Store1Sno char(10),Prno char(10),Stquantity1 intasinsert into Store1 values(Sno,Prno,Stquantity1)-exec C_Store1'01','01','155'exec C_Store1'02','02','211'exec C_Store1'03','03','284'图6.910.零件存储表存储过程及数据插入,效果图如图6.10所示Create proc C_Store2Sno char(10),Pano char(10),Stquantity2 intasinsert into Store2 values(Sno,Pano,Stquantity2)-