




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书题目 工人数据库管理系统系(部) 计算机科学与技术系专业(班级) 姓名 学号 指导教师 起止日期 课程设计任务书课程名称:数据库系统课程设计设计题目:工厂数据库管理系统已知技术参数和设计要求:l工厂数据库管理系统1、某工厂需建立一个管理数据库存储以下信息:工厂包括厂名和厂长名。一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。一个车间生产多种产品,产品有产品号、产品名称和价格。一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。一个产品由多种零件组成,一种零件也可装配出多种产品。
2、产品与零件均存入仓库中。厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。2、系统功能的基本要求:按照一定条件查询、统计工人和产品等基本信息,能模拟工厂生产过程中对原材料(零件)、产品检测、库存环节的管理。各阶段具体要求:1、需求分析阶段l 定义数据项的含义和取值l 定义目标系统的数据流2、概念结构设计阶段l 画出实体模型E-R图3、逻辑结构设计阶段l 将实体模型转化为关系模型l 给出每个关系的主关键字和函数依赖集l 分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段l 确定所有字段的名称、类型、宽度、小数位数及完整性约束 l 确定数据库及表的名称及其组成 l 确定索引文件和索引关键字
3、5、数据库安全及维护设计阶段l 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)l 为了实现复杂的数据完整性约束,设计适当的触发器l 设计一个适合的数据库备份策略6、实施阶段l 要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成14,第二周完成58,论文同步进行;1)选定题目2)需求分析3)概念结构设计4)逻辑结构设计5)物理设计6)数据库安全及维护设计7)数据库上机实现8
4、)答辩计划时间指导老师学生1516周徐长梅 10软件B班1516周张肖霞10软件2班1516周潘怡10软件9班1516周孟志刚10软件E班1516周胡易波10软件4班10软件7班10软件C班1516周曾尖10软件1班10软件3班1516周毛伟10软件5班10软件D班1516周汪祥10软件8班10软件A班1516周胡灵敏10软件6班注意事项n 提交文档 长沙学院课程设计任务书(每学生1份) 长沙学院课程设计论文(每学生1份) 长沙学院课程设计鉴定表(每学生1份)指导教师签名: 日期: 教研室主任签名: 日期:系主任签名: 日期:长沙学院课程设计鉴定表姓名邹胤屏学号2010022615专业软件工程
5、班级06设计题目工厂数据库管理系统指导教师胡灵敏指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录课程设计任务书2课程名称:2设计题目:2已知技术参数和设计要求:2各阶段具体要求:21、需求分析阶段22、概念结构设计阶段23、逻辑结构设计阶段24、物理设计阶段25、数据库安全及维护设计阶段26、实施阶段3设计工作量:3工作计划:3注意事项4长沙学院课程设计鉴定表5一、引言71.1编写目的71.2参考资料7二、需求规
6、约72.1 业务描述72.2 需求分析7三、数据库环境说明8四、数据库的命名规则94.1 数据库对象命名规则94.2 数据项编码规则9五、逻辑设计9六、物理设计116.1表汇总116.2表X:XXX表126.3视图的设计166.4存储过程、函数及触发器的设16七、安全性设计17源程代码:17一、引言1.1 编写目的本次做的题目是工厂管理系统,通过这次设计编写数据库设计文档明白数据库的表名、字段名等数据信息,同时明白在数据库中是如何对表、视图进行建立、修改、更新。通过这次简单的设计为后来的数据库脚本的开发做基础。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2 参考资料 资料
7、名称作者文件编号、版本数据库系统概论王珊、萨师煊2006年5月第4版二、 需求规约2.1 业务描述(1)数据库系统创建的背景 工厂数据库管理系统(2)数据库系统要完成的业务流程及工作内容1对工厂里的职工人的信息进行修改2对职工、产品、零件、仓库、车间的信息查询3在表中建立视图4在职工表中建立索引(职工号,姓名)5 在表中建立存储过程,触发等(3)揭示该数据库的资源需求和约束设计 每一个属性都是所需求的,在每个表中都有主键约束,同时对某些属性的设计是不能为空值,再某些表与表之间通过一个或多个外键来进行联系,像职工表中的性别就只能是男或女这个利用了列级check来进行检测。2.2 需求分析将业务流
8、程节点抽象成数据库对象,并描述各个节点的依赖关系在数据上的反映。三、 数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明实例名,文件名名称:如MySql,版本:4.0软硬件、网络环境例如:pb,visio,rose存放位置,绝对路径/相对路径实例用途说明工人管理系统sql server2008软硬件、网络环境microsoft word2003、microsoft visio 2003桌面如:对职工表进行查询、修改、更新建立视图、索引等四、 数据库的命名规则4.1 数据库对象命名规则数据库对象命名规则备注表关系名对应的英文例如:factory工厂表视图view_表
9、名例如:view_shop车间视图索引index_表名例如:index_worker职工索引存储过程prco_表名例如:prco_part 零件信息等存储触发器tig_表名例如:tig_worker 职工触发4.2 数据项编码规则数据项命名规则数据类型长度范围备注职工号(wno)车间号+工种号+序列号(两位整数00-99)varchar10位是职工表(worker)中的主码车间号(sno)两位整数00-99五、 逻辑设计(1) 创建与数据库相关的那部分实体关系图(ERD)。(2) 创建数据库系统的关系模型。 工厂信息表:factory字段名字段中文名字段类型是否允许NULL备注fname工厂名
10、CHAR40NOT NULL主键fcname厂长名VACHAR20NOT NULL 车间信息表:shop字段名字段中文名字段类型是否允许NULL备注sno车间号CHAR10NOT NULL主键sname车间主任名VACHAR40NOT NULLsadd车间地址char(40)sphone车间电话char(12)fname工厂名varchar(40)外键(factory) 工人信息表:worker字段名字段中文名字段类型是否允许NULL备注wno职工号CHAR15NOT NULL主键wname职工姓名VACHAR20NOT NULLwage职工年龄char(4)wsex职工性别char(2)wt
11、ype职工工种char(10)sno车间号char(10)外键(shop) 产品信息表:products字段名字段中文名字段类型是否允许NULL备注prno产品号CHAR10NOT NULL主键prname产品名称VACHAR30NOT NULLpride产品价格smallintsno车间号char10外键(shop) 零件信息表:part字段名字段中文名字段类型是否允许NULL备注pano零件号CHAR10NOT NULL主键weight零件重量smallintNOT NULLppride零件价格smallintdno仓库号CHAR10NOT NULL外键(depot) 产品_零件信息表:(
12、pr_pa)字段名字段中文名字段类型是否允许NULL备注prno产品号CHAR10NOT NULL主键pano零件号CHAR10NOT NULL主键 仓库信息表:depot字段名字段中文名字段类型是否允许NULL备注dno仓库号CHAR10NOT NULL主键dname仓库主任姓名VACHAR40NOT NULLdphone仓库电话char10fname工厂名varchar(40)外键(factory) 零件_仓库信息表:part_depot字段名字段中文名字段类型是否允许NULL备注pano零件号CHAR10NOT NULL主键sno车间号CHAR10NOT NULL主键 产品_仓库信息表:
13、products_depot字段名字段中文名字段类型是否允许NULL备注prno产品号CHAR10NOT NULL主键dno仓库号CHAR10NOT NULL主键六、 物理设计6.1表汇总表名功能说明工厂(factory)存储职工(worker)查询,存储,索引车间(shop)数据更新,存储仓库(depot)查询,存储,视图零件(part)查询,存储,触发,视图,索引产品(products)查询,存储,视图,索引产品_零件(products_ part)存储产品_仓库(products_depot)查询,存储,触发零件_仓库(part_ depot)存储,触发6.2 表X:XXX表表名fact
14、ory数据库用户factory主键fname varchar(40)其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1工厂名varchar(40)N主键2厂长名varchar(20)Nsql脚本create table factory( fname varchar(40) primary key, fcname varchar(20) not null ) 备注备注信息表名shop数据库用户factory主键sno char(10) 其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1车间
15、号varchar(40)N主键2车间主任名varchar(20)N3车间地址char(40)4车间电话char(12)5工厂名varchar(40)N外键sql脚本create table shop( sno char(10) primary key, sname varchar(20) not null, sadd char(40) , sphone char(12), fname varchar(40) ) foreign key(fname) references factory(fname) 备注备注信息表名worker数据库用户factory主键wno char(15)其他排序字段索
16、引字段wno,wname序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1职工号char(15)N主键2职工姓名char(20)N3职工年龄char(4)4职工性别char(2)check(wsex in(男,女)5工种wtype6车间号sno外键sql脚本create table worker (wno char(15) primary key, wname char(20) not null, wage char(4), wsex char(2) check(wsex in(男,女), wtype char(10), sno char(10) )creat
17、e index index_worker on worker(wno,wname)备注备注信息表名products数据库用户factory主键wno char(15) 其他排序字段index_productsprno,prname序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1产品号char(10)N主键2产品名称varchar(30)N3产品价格smallint4车间号char(10)N外键sql脚本create table products (prno char(10) primary key, prname varchar(30) not null,
18、pride smallint, sno char(10) ) foreign key(sno) references shop(sno)create index index_products on products(prno,prname)表名part数据库用户factory主键pano char(10) 其他排序字段索引字段pano序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1零件号char(10)N主键2零件重量smallintN3零件价格smallint4工厂名varchar(40)N外键sql脚本create table part (pano ch
19、ar(10) primary key, weight smallint not null, ppride smallint, sno char(10) )foreign key(sno) references shop(sno) create index index_part on part(pano)备注备注信息表名products_part数据库用户factory主键sno char(10) prno char(10)其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1产品号char(10)N主键2零件号char(10)N主键sql脚本c
20、reate table products_part (pano char(10), prno char(10), primary key(pano,prno), )foreign key(prno) references products(prno),foreign key(pano) references part(pano)备注备注信息表名depot数据库用户factory主键dno char(10)其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1仓库号varchar(40)N主键2仓库名char(40)N3仓库电话char(12)4
21、工厂名varchar(40)N外键sql脚本create table depot (dno char(10) primary key, dname char(40), dphone char(10), fname varchar(40) ) foreign key(fname) references factory(fname) 备注备注信息表名products_depot数据库用户factory主键prno char(10) dno char(10)其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1产品号char(10)N主键、外键2仓库
22、号char(10)N主键、外键3产品名称varchar(30)Nsql脚本create table products_depot (prno char(10), dno char(10), prname varchar(30) not null, primary key(prno,dno), )foreign key(dno) references depot(dno),foreign key(prno) references products(prno)备注备注信息表名part_depot数据库用户factory主键dno char(10) pano char(10)其他排序字段索引字段序号
23、字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1仓库号char(10)N主键、外键2零件号char(10)N主键、外键sql脚本create table part_depot (dno char(10), pano char(10), primary key(dno,pano), foreign key(pano) references part(pano), foreign key(dno) references depot(dno) )备注备注信息6.3视图的设计对于工人管理数据系统,如果想要知道零件或者产品在工厂的哪个车间仓库,而这两个信息又不是在同一个表
24、中,因此为了减少语句的使用,去掉些不必要查询的属性就在这两个上建立了视图,通过查询视图可以就快的能显示。对于仓库我也产品名称及其对应的储存数量创建了一个仓库视图。6.4存储过程、函数及触发器的设存储过程:我每一个表中信息的插入都是通过存储过程实现的触发器 :触发器我一共做了两个,一个是产品触发,别一个是零件触发,当你在仓库中放入或者拿出产品时就会触发,若仓库中无产品你无法拿出产品并输出一条提示信息;若仓库到达一定的数量那就 不能放入产品存储并输出提示信息。相应的零件触发也是一样的触发功能。七、 安全性设计(1)创建了一个factory登录名,密码是123456exec sp_addlogin
25、factory,123456(2)创建一个数据完全备份把factory数据库备份backup database factory to factory_full with init源程代码:use factory -工厂信息表create table factory( fname varchar(40) primary key, fcname varchar(20) not null ) -车间信息表create table shop( sno char(10) primary key, sname varchar(20) not null, sadd char(40) , sphone cha
26、r(12), fname varchar(40) foreign key(fname) references factory(fname) ) -工人信息表 create table worker (wno char(15) primary key, wname char(20) not null, wage char(4), wsex char(2) check(wsex in(男,女), wtype char(10), sno char(10) foreign key(sno) references shop(sno) ) -建立职工索引 create index index_worker
27、 on worker(wno,wname) -产品信息表 create table products (prno char(10) primary key, prname varchar(30) not null, pride smallint, sno char(10) foreign key(sno) references shop(sno) ) -建立产品索引 create index index_products on products(prno,prname) -零件信息表 create table part (pano char(10) primary key, weight sm
28、allint not null, ppride smallint, sno char(10) foreign key(sno) references shop(sno) ) -建立零件索引 create index index_part on part(pano) -产品_零件信息表 create table products_part (pano char(10), prno char(10), primary key(pano,prno), foreign key(prno) references products(prno), foreign key(pano) references p
29、art(pano) ) -仓库信息表 create table depot (dno char(10) primary key, dname char(40), dphone char(10), fname varchar(40), foreign key(fname) references factory(fname) ) -产品_仓库信息表 create table products_depot (prno char(10), dno char(10), prname varchar(30) not null, primary key(prno,dno), foreign key(dno)
30、 references depot(dno), foreign key(prno) references products(prno) ) -零件_仓库信息表 create table part_depot (dno char(10), pano char(10), primary key(dno,pano), foreign key(pano) references part(pano), foreign key(dno) references depot(dno) ) -建立视图- -产品视图 create view view_products(产品号,产品名称,产品价格,产品车间,产品仓
31、库) as select products.prno,products.prname,pride,sno,dno from products,products_depot where products.prno=products_depot.prno -零件视图 create view view_part(零件号,零件重量,零件价格,零件车间,零件仓库) as select part.pano,weight,ppride,sno,dno from part,part_depot where part .pano=part_depot.pano -产品仓库视图 create view view_
32、products_depot (产品名称,产品数量) as select prname 产品名称,COUNT (prname)产品数量 from products_depot group by prname -插入信息存储过程- -插入工厂信息 create proc proc_factory_add fname varchar(40), fcname varchar(20) as begin insert into dbo.factory values(fname,fcname) print 插入成功 end - 插入车间信息 create proc proc_shop_add sno ch
33、ar(10), sname varchar(20), sadd char(40) , sphone char(12), fname varchar(40) as begin insert into dbo.shop values(sno,sname,sadd,sphone,fname) print 插入成功 end -插入职工信息 create proc proc_worker_add wno char(15), wname char(20), Wwage char(4), wsex char(2), wtype char(10), sno char(10) as begin insert i
34、nto dbo.worker values(wno,wname,Wwage,wsex,wtype, sno) print 插入成功 end - 插入产品信息 create proc proc_products prno char(10), prname varchar(30), pride smallint, sno char(10)asbegin insert into ducts values(prno, prname,pride, sno) print 插入成功end -插入零件信息 create proc proc_part pano char(10), weight s
35、mallint, ppride smallint, sno char(10) as begin insert into dbo.part values (pano, weight, ppride, sno) print 插入成功 end - 插入仓库信息 create proc proc_depot_add dno char(10), prno char(40), prname char(10) as begin insert into dbo.depot values(dno,prno ,dphone) print 插入成功 end -插入产品仓库信息 create proc proc_pr
36、oducts_depot prno char(10), dno char(10), prname varchar(30) as begin insert into ducts_depot values(prno,dno,prname) print 插入成功 end -插入零件仓库信息 create proc proc_part_depot dno char(10), pano char(10) as begin insert into dbo.part_depot values(dno,pano) print 插入成功 end -插入产品零件信息 create proc proc
37、_products_part pano char(10), prno char(10) as begin insert into ducts_part values(pano,prno ) print 插入成功 end -删除职工信息存储 create procedure proc_worker_delet wno char(15) output as begin delete from worker where wno=wno end -删除产品仓库信息存储 create procedure proc_products_depot_delet prno char(10) out
38、put, dno char(10)output as begin delete from products_depot where products_depot.prno=prno and products_depot.dno=dno end -删除零件仓库信息存储 create proc proc_part_depot_delet pano char(10) output, dno char(10)output as begin delete from part_depot where part_depot.dno=dno and part_depot.pano=pano end -查询存储
39、过程- -产品信息查询 create proc proc_view_products prno char(10) as begin select * from view_products where 产品号=prno end -零件信息查询 create proc proc_view_part pano char(10) as begin select * from view_part where 零件号=pano end -职工信息查询 create proc proc_worker wno char(15) as begin select * from worker where wno=w
40、no end-仓库信息查询 create proc proc_depot prno char(10), dno char(10), prname char(20) as begin select prname 产品名称,COUNT (prname)产品数量 from products_depot group by prname having prname=prname or prname in (select prname from products_depot where prno=prno) end-触发器- - 仓库产品出品触发 drop trigger tri_products_depot create trigger tri_products_depot on products_depot for delete as if not exists(select count(prname) from products_depot) begin print 仓库中没有这种产品 end else begin delete from products_depot where prno in (select prno from deleted) s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工安全报告编写的要点考题及答案
- 农业机械化智能化2025年农业科技创新与产业升级研究报告
- 2024-2025学年成都市金牛区初三二诊语文试题(含答案)
- 江西信息应用职业技术学院《英美影视英语》2023-2024学年第一学期期末试卷
- 新能源汽车的商业化推广研究试题及答案
- 学法用法考试题及答案
- 电动汽车与传统汽车的技术差异试题及答案
- 施工现场安全技术措施试题及答案
- 安全工程师2025年重点考题解析
- 江苏省无锡市滨湖区2024-2025学年小升初数学高频考点检测卷含解析
- 甘肃民族师范学院招聘工作人员考试真题2024
- 药学创新创业项目
- 大数据在汽车行业的创新应用研究
- 西安特教面试试题及答案
- 2025年河南省商丘市柘城县中考一模英语试题(原卷版+解析版)
- 2025年安全培训考核试题及答案
- 2025年医保知识考试题库:医保基金监管案例及答案解析试卷
- 第5课《妙想逐飞天》课件- 2024-2025学年岭南美版(2024) 初中美术七年级下册
- 《建设工程施工合同(示范文本)》(GF-2017-0201)条款
- 2025年《机械制造工艺学》考试题库及参考答案
- 2025届山东省济南市历下区中考二模生物试题含解析
评论
0/150
提交评论