工厂数据库管理系统_第1页
工厂数据库管理系统_第2页
工厂数据库管理系统_第3页
工厂数据库管理系统_第4页
工厂数据库管理系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题目系(部)计算机科学与技术系专业(班级)姓名学号指导教师起止日期课程设计任务书课程名称:数据库系统原理设计题目:数据库系统课程设计工厂数据库管理系统1、某工厂需建立一个管理数据库存储以下信息:工厂包括厂名和厂长名。一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。一个车间生产多种产品,产品有产品号、产品名称和价格。一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。一个产品由多种零件组成,一种零件也可装配出多种产品。产品与零件均存入仓库中。厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。2、系统功能的基本要求:按照一定条件查询、统计工人和产品等基本信息,能模拟工厂生产过程中对原材料(零件)、产品检测、库存环节的管理。各阶段具体要求:1、需求分析阶段•定义数据项的含义和取值•定义目标系统的数据流2、概念结构设计阶段•画出实体模型E-R图3、逻辑结构设计阶段•将实体模型转化为关系模型•给出每个关系的主关键字和函数依赖集•分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段•确定所有字段的名称、类型、宽度、小数位数及完整性约束•确定数据库及表的名称及其组成•确定索引文件和索引关键字5、数据库安全及维护设计阶段•设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)•为了实现复杂的数据完整性约束,设计适当的触发器•设计一个适合的数据库备份策略6、实施阶段要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1〜4,第二周完成5〜8,论文同步进行;1)选定题目2)需求分析3)概念结构设计4)逻辑结构设计5)物理设计6)数据库安全及维护设计7)数据库上机实现8)答辩设计工作量:40课时工作计划:见课表指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:

长沙学院课程设计鉴定表姓名学号专业班级设计题目工厂数据库管理系统指导教师指导教师意见:评定等级:教师签名:日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名:日期:系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;根据而今信息时代,信息越来越多,越复杂,这时就需要一种管理数据的软件,本次课程设计运用SQLserver2008来实现数据的管理,本次试验通过SQL语句来实现工厂的流程,使工厂运行效率达到最大值,需要对其进行分析需求,逻辑设计,物理设计,安全性分析,权限设置等操作。关键词:SQL管理数据工厂TOC\o"1-5"\h\z一、引言7\o"CurrentDocument"编写目的7\o"CurrentDocument"参考资料7二、需求规约8\o"CurrentDocument"2.1业务描述8\o"CurrentDocument"2.2需求分析8三、数据库环境说明9四、数据库的命名规则9\o"CurrentDocument"4.1数据库对象命名规则9\o"CurrentDocument"4.2数据项编码规则9\o"CurrentDocument"五、逻辑设计105.1创建数据库系统的关系模型11\o"CurrentDocument"六、物理设计12\o"CurrentDocument"表汇总12表总汇13\o"CurrentDocument"视图的设计19\o"CurrentDocument"存储过程、函数及触发器的设计21七、安全性设计23\o"CurrentDocument"防止用户直接操作数据库的方法24\o"CurrentDocument"用户帐号密码的加密方法24\o"CurrentDocument"角色与权限25八、数据库管理与维护说明25九、总结25十.附录261.1编写目的本文档是数据库系统设计文档的组成部分,编写此数据库设计文档的目的是:根据工人数据库管理系统建立一个数据库存储信息,数据库表名包含工厂,车间,工人,产品,零件,仓库。其中工厂包括多个车间和多个仓库,车间有多个工人,一个车间生产多种产品和多种零件,一个零件也可能为多个车间制造,一个产品由多种零件组成,一种零件也可装配出多种产品,产品和零件均存入仓库中等信息,结合此信息通过sql语言来实现此管理系统的运用,模拟工厂生产过程中队原材料(零件X产品检测、库存环节的管理。本文档遵循《《工人数据库管理系统和开发规范》》。本文档的读者对象是需求人员,系统设计人员,开发人员,测试人员。1.2参考资料列出有关资料的名称、作者、文件编号或版本等。参考资料包括:需求说明书、架构设计说明书等;本项目的其他已发表的文件;引用文件、资料、软件开发标准等。资料名称作者文件编号、版本《数据库系统概论》王珊、萨师煊2006年5月第4版《《数据库系统原理》实验指导书徐长梅、汪祥2011年9月第一版2.1业务描述(1)数据库系统创建的背景运用数据库相关信息来实现工人管理系统的生产和运作。(2)数据库系统要完成的业务流程及工作内容根据工人管理系统模拟生产过程,实现对原材料、产品检测、库存的管理(4)揭示该数据库的资源需求和设计约束根据工人的各个生产所需的阶段,来建立不同的表,并将这些表连接起来,画出实体模型E-R图,确定所有字段的名称、类型、宽度、小数位数及完整性约束,并将实体模型转化为关系模型,并设计关键字,以及设计适当的触发器2.2需求分析(1)分析该业务流程的内在联系分析业务流程后得出:工厂与车间为一对多关系,车间与工人为一对多关系,车间与产品为一对多关系,仓库与产品为一对多关系,仓库与零件为一对多关系,车间与零件为多对多关系,产品和零件为多对多关系,工厂与仓库为一对多关系(2)对象处理如下:对象处理:工厂信息:厂名、厂长名。车间信息:车间号、车间主任姓名、地址和电话。职工信息:职工号、姓名、年龄、性别和工种。产品信息:产品号、产品名称和价格。零件信息:零件号、重量和价格。仓库信息:仓库号、仓库主任姓名和电话。(3)实现功能与分析如下:实现功能:实现功能其中需要注意的是,安全性需要根据其需要来给予其一定程度的安全性,再通过用户授权机制,通过用户登陆来识别用户级别,再根据这个级别来分配用户权限,从而实现更高层次的安全保密功能。完整性要求描述各信息间的关联关系和制约关系,需要根据各个值的实际情况来分析数据的数据范围及注意其是否为NULL(空),根据实际需要来满足要求。分析:此系统首先画出了其E-R图,并用word文档插入表格并写入各个表的信息,在对work(X厂信息)进行给该和查询,包括:创建数据库信息,查询各表信息,更改element(零件表)信息,workman(H人表)信息,建立一个名为manage存储过程,实现修改element(零件表)信息,workman(工人表)信息。对于安全性操作,建立了一个名为chenquanyu的登录名,名为cqy的用户,并赋予其表element(零件表),product(产品表)和storage(仓库表)的privilege(所以权限)操作,对product(产品表)创建一个名为IS_product的视图,对workman(工人信息表)创建一个名为IS_work的视图。并对product(pno)(产品号)和element(eno)创建一个索引,并删除其索引。创建一个名为tri_update_delete_product的触发器,来触发更新产品价格,并触发删除产品号为3的信息。最后创建一个磁盘备份,名字为work_full,地址为'd:beifen\work.bak',并实现完全备份和日记备份。

三、数据库环境说明提示:(1)说明所采用的数据库系统,设计工具,编程工具等(2)详细配置例如:数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明工人数据库管理系统SQLserver2008硬件:2GB内存,512M以上软件:windowsxpMicrosoftOfficeVisio2003和SQLserver2008D盘根目录查询、统计工人和产品基本信息,模拟工厂生产过程四、数据库的命名规则4.1数据库对象命名规则数据库对象命名规则备注表功能描述字符串例如:factory工厂表视图view_功能描述字符串例如:view_factory工厂视图索引index_功能描述字符串例如:index_factory工厂索引存储过程procedure.功能描述字符串例如:procedure_factory工厂存储过程触发器trigger_功能描述字符串例如:trigger_factory工厂触发器4.2数据项编码规则数据项命名规则数据类型长度范围备注车间号车间序号(两位整数00-99)定长字符串10位workshop_no车间号职工姓名姓名(不定长)不定长字符串4位wname职工姓名产品价格价格(不定长)浮点型10pprice产品价格

五、逻辑设计工人一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。给表信息包含如下:工厂(匚名,厂长名)车间(车间号,车间主任姓名,地址,电话)工人(职工号,姓名,年龄,性别,工种)产品(产品号,产品名称,价格)零件(零件号,重量,价格)仓库(仓库号,仓库主任姓名,电话)

生产(车间号.零件号.生产日期)组装(产品号,零件号.组装数)存入(仓库号,产品号■,零件号■.存储量)5・1创建数据库系统的关系模型如下工厂信息表:factory字段中文名字段名数据类型是否为空约束厂名fnovarchar(10)NOTNULLPrimarykey厂长名fdnamevachar(10)//工厂与车间一对多车间信息表:workshop字段中文名字段名数据类型是否为空约束车间号workshop_nochar(10)NOTNULLPrimarykey车间主任姓名wdnamevarchar(10)地址wAddressvarchar(10)电话wtelvarchar(20)厂名fnovarchar(10)NOTNULLForeignkey(外键)〃车间与工人一对多工人信息表:workman字段中文名字段名数据类型是否为空约束职工号wnochar(10)NOTNULLPrimarykey姓名wnamevarchar(10)年龄wageint工种wtypevarchar(10)车间号workshop_nochar(10)NOTNULLForeignkey(外键)〃车间与产品一对多,仓库与产品一对多产品信息表:product字段中文名字段名数据类型是否为空约束产品号pnovarchar(10)NOTNULLPrimarykey名称pnamevarchar(10)价格ppricefloat车间号workshop_nochar(10)NOTNULLForeignkey(外键)仓库号snochar(10)NOTNULLForeignkey(外键)

〃仓库与零件一对多零件信息表:element字段中文名字段名数据类型是否为空约束零件号enochar(10)NOTNULLPrimarykey重量eweightfloat价格epricefloat仓库号snochar(10)NOTNULLForeignkey(外键)〃车间与零件多对多车间与零件信息表:worksho]p_element字段中文名字段名数据类型是否为空约束车间号workshop_nochar(10)NOTNULLPrimarykey零件号enochar(10)NOTNULLPrimarykey〃产品和零件多对多产品与零件信息表:product_element字段中文名字段名数据类型是否为空约束产品号pnovarchar(10)NOTNULLPrimarykey零件号enochar(10)NOTNULLPrimarykey//工厂与仓库一对多仓库信息表:storage字段中文名字段名数据类型是否为空约束仓库号snochar(10)NOTNULLPrimarykey仓库主任姓名sdname电话stel厂名fnovarchar(10)NOTNULLForeignkey(外键)六、物理设计6.1表汇总表名功能说明表element查询,插入,索引,存储过程表product查询,插入,修改,视图,索引,权限设置,创建存储过程表storage查询,更新,删除,权限设置,存储过程6.2工厂表如下:1.工厂信息表:factory表名工厂信息表:factory数据库用户work主键fno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1fnoVarchar(10)N主键2fdnameVarchar(10)sql脚本createtablefactory(fnovarchar(10)NOTNULLprimarykey,fdnamevarchar'10))备注[备注信息、]2.车间信息表:workshop表名车间信息表:workshop数据库用户work主键workshop_no其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1workshop_nochar(10)N主键2wdnamevarchar(10)3waddressvarchar(10)fnovarchar(10)NForeignkey(外键)sql脚本createtableworkshop(workshop_nochar(10NOTNULLprimarykey,wdnamevarchar10),waddressvarchar(10,wtelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))备注工厂与车间一对多

3.工人信息表:workman表名工人信息表:workman数据库用户work主键wno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1wnochar(10)N主键2wnamevarchar(10)3wageint4wtypevarchar(10)5workshop_nochar(10)NForeignkey(外键)sql脚本createtableworkman(wnochar10)NOTNULLprimarykey,wnamevarchar(10),wageint,wtypevarchar(10),workshop_nochar(10NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no))备注车间与工人一对多

4,产品信息表:product表名产品信息表:product数据库用户work主键pno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1pnovarchar(10)N主键2pnamevarchar(10)3ppricefloat4workshop_nochar(10)NForeignkey(外键)5snochar(10)NForeignkey(外键)sql脚本createtableproduct(pnovarchar(10)NOTNULLprimarykey,pnamevarchar(10),ppricefloat,workshop_nochar(10NOTNULL,snochar10)NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(sno)referencesstorage(sno))备注车间与产品一对多,仓库与产品一对多

5.零件信息表:element表名零件信息表:element数据库用户work主键eno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1enochar(10)N主键2eweightfloat3epricefloat4snochar(10)NForeignkey(外键)sql脚本createtableelement(enochar10)NOTNULLprimarykey,eweightfloat,epricefloat,snochar10)NOTNULL,foreignkey(sno)referencesstorage(sno))备注仓库与零件一对多6.车间与零件信息表:workshop_element表名车间与零件信息表:workshop_element数据库用户work主键workshop_no,eno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1fnoworkshop_nochar(10)N主键2fdnameenochar(10)N主键sql脚本createtableworkshop_element(workshop_nochar(10NOTNULL,enochar10)NOTNULL,primarykey(workshop_no,eno),foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(eno)referenceselement(eno))备注车间与零件多对多

7.产品与零件信息表:product_element表名产品与零件信息表:product_element数据库用户work主键pno,eno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1pnovarchar(10)N主键2enochar(10)N主键sql脚本createtableproduct_element(pnovarchar(10)NOTNULL,enochar10)NOTNULL,primarykey(pno,eno),foreignkey(pno)referencesproduct(pno),foreignkey(eno)referenceselement(eno))备注产品和零件多对多8.仓库信息表:storage表名仓库信息表:storage数据库用户work主键sno其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1snochar(10)N主键2sdnamevarchar(10)stelvarchar(20)fnovarchar(10)NForeignkey(外键)sql脚本createtablestorage(snochar10)NOTNULLprimarykey,sdnamevarchar10),stelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))备注工厂与仓库一对多6.3视图的设计各表关系图如下:workshop'A'urkshcip-nowdnamewaddresswtelfriQworkman■ATIU■ATiarriewagewtype'A'urkshcip-noelementworkshop_eIement电叫口山5卜||叩|_「|匚|修eno图6.3.1创建视图过程如下(1)给产品表创建一个拥有paname(产品名称),price(产品价格),以及外键的sno(仓库号)的视图createviewIS_productasselectsno,pname,ppricefromproduct效果图如下:圈product平(所有列)Lpno〔TABLE:prpnamepprice'.■vorkshop^iusno列别名表输出snoproduct0pnameproduct0ppriceproduct0图6.3.1(2)给工人信息表创建一个包含有workman(生产表)的所有信息的视图createviewISworkmanasselect*fromworkman效果图如下:|gvork>an□平(所有列)wno■ATiame'A'dge叵wtypework5hop_no列别名表输出►wnoworkman0'■■■■.TiarriBworkman0wageworkman0wtypeworkman0work5hop_noworkman0图6.3.26.4存储过程、函数及触发器的设计6.4.1存储过程代码如下:createproceduremanage--创建一个名字为manage的存储过程(@enochar(10),--定义一些参数@wnamevarchar(10),@sdnamechar(10),@snochar(10))asdeclare@eweight1float=80.4--申明一个变量@eweight1ifexists(selecteweightfromelementwhereeweight<@eweight1)updateelementseteweight=80.4--将element(零件)表中的eweight都定义为80.4select*fromelementselectepricefromelementwhereeno=@enoupdateworkmansetwage=10wherewname=@wnameselect*fromworkmanupdatestoragesetsdname=@sdnamewheresno=@snoselect*fromstorageprint'修改后的零件表'execmanage@eno='e03',--当eno中为e03时,再查询此时此刻的pprice(价格)@wname='贺江平',@sdname='张攀攀',@sno='B2'首先创建了一个名字为manage的存储过程,定义一些可以用到得相关参数,如@eno,@wname,@sdname,@sno,通过这些参数传递确定的数据,利用SQL语句结合在存储过程从而实现想要更改,删除,插入等相关的操作.存储过程执行后的效果图为:J结果消息Iepricersb■,jwnownamewagewtypeworkshop_no1[AOl'l贺江平10软件工程师ATOC\o"1-5"\h\z'A02…彭成辉20劳力活AA03张卉卉19顾问AA04尹京伟20总经理AA05刘清波20总监Asnosdnamestelfno1|B■“)张擎壑120法拉利2'■孩…张擎攀1130法拉利图6.4.16.4.2索引的建立建立索引使查询的时候按顺序排列createuniqueindexpropnoonproduct(pno)--为product表的pno(产品号)建立索引createuniqueindexeenoonelement(eno)--为element表的eno(零件号)建立索引6.4.3触发器的建立与实现操作为product表创建一个基于update操作和delete操作的复合型触发器,当修改了该表的pprice(价格)或者删除了pno(产品号)时,触发器被激活生效,显示相关的操作信息(1)创建触发器createtriggertri_update_delete_product--创建触发器onproductforupdate,deleteasifupdate(pprice)--更新价格beginselectinserted.pno,deleted.ppriceas原价格,inserted.ppriceas新价格fromdeleted,insertedwheredeleted.pno=inserted.pnoendelseifcolumns_updated()=0beginselectdeleted.pnoas被删除的产品号,deleted.pname,deleted.ppriceas原价格fromdeletedend(2)触发触发器在查询命令窗口中输入以下update语句,修改产品号为’01’的价格,激发触发器updateproductsetpprice=pprice+1wherepno='01'视图如下:J结果消息pno原价格新价格J_01100000100001I2.在查询命令窗口中输入以下delete语句,删除产品为号为’03’的记录,激发触发器deleteproductwherepno='03'视图如下:被删除的产品号pname原价格103法拉利A如300000删除新创建的触发器droptriggertri_update_delete_product视图如下:-droptriggertriupdatedeleteproduct_J]消息命令已成功完成七、安全性设计SQL包括了windows认证和sqlserver混合认证,其中sqlserver混合认证提供了用户登录方式,而用户登录后想更改操作的话,必须分配给用户名权限,才能对数据库的表进行相关操作。以下是用SQL语句实现的用户名登录,和受权操作:execsp_grantdbaccess'chenquanyu','cqy'//允许新建登录名和用户,其中chenquanyu是登录名,cqy是用户execsp_addlogin'chenquanyu','123456','work'//用户名登录,密码为123456,默认数据库为workexecsp_addsrvrolemember'chenquanyu','sysadmin'//授予用户名chenquanyu一些数据库操作的权限GRANTALLprivilegesonproducttocqyGRANTALLprivilegesonelementtocqygrantupdateonstoragetocqy//将product产品表和零件表的所有权限授予给cqy用户,仓库信息表的更新权限授予给cqy用户使用查询分析器管理备份设备和备份数据库//创建一个磁盘备份设备,名字为work_full,地址为'd:beifen\work.bak'execsp_addumpdevice'disk',,work_full,,,d:\beifen\work.bak,backupdatabaseworktowork_fullwithinit--完全备份备份执行如下:_J]消息已为数据库'work1,文件'work1(位于文件1上)处理了Z16页。已为数据库EZ,文件《位于文件1上)处理了Z页。BACKUPDATABASE成功处理了Z1S页,花赛0.Z13秒(7.963ME/■秒"backuplogworktowork_fullwithnoinit--日记备份,使用备份语句backup来备份数据库日记备份执行如下:r国消息已为数据库'work',文件'work-log1(位于文件Z上)处理了Z页口BACKUPLOG成功处理了Z页,花费0.0Z4秒(0.SZSME/■秒"7.1防止用户直接操作数据库的方法不授予用户操作的权限。用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库。7.2用户帐号密码的加密方法用户账户密码加密是在程序里实现的,将用户密码通过某种算法加密转换后再存入数据库。对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。7.3角色与权限确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。角色可以访问的表与列操作权限例如:管理员可访问所有表完全控制权限角色BProduct表可操作此表全部信息element表可操作此表全部信息Storage表只能操作update权限八、数据库管理与维护说明提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。在运行数据库的同时先要在脑海里想好需求分析,然后再根据要求画出E-R图,然后再根据逻辑结构在word文档下根据表的信息,依次完成各信息表,然后根据表与表对应的1:1,1:n或n:m关系确定好表的主外键,注:多对多的表还要另外创建一表来表示两表之间的关系。完成表的建立后,接下来的操作就是往各个表中插入相关实际信息,以及利用SQL语句来实现表的插入,插入完毕后,可运用建立一个存储过程来完成表的更新,删除,插入等操作,操作完毕后可,用SQL语句建立视图,好让操作员更能体会表与表之间的关系,而且看不出关键隐私代码,这样就能很好的维护数据库的管理和专利。在设置安全性的时候,注意用户必须要授权才能对各表进行操作,备份需要用语句实现。九、总结本次数据库课程设计让我深刻体会到了,书本前后的衔接性,这次课程设计涉及到了书本几乎全部知识点,而在本次课程设计之前,我一直都没搞懂很多知识点,而且运用起来很生疏,尽管刚刚做得时候困难重重,思路非常不明确。但是经过我请教老师和同学之后,我从学习中逐渐找到了清晰的思路,并把知识点连接了起来,从自己亲自实践之后才能发现,只有自己动手过才能深刻理解书本知识,而不是单独的死记硬背。在本次课程设计当中,我多次遇到错误,而每次当自己埋头思考和向同学老师请教的过程中,问题总能解决,我在学习当中磨练了自己的独立思考能力和动手能力,这也是我这次课程设计的一个很大的收获。我也从本次课程设计中深深的体会到了,学习过程中不能有一点马虎,每个完美的课程设计都是严谨的作风和清晰的思路创造出来的,所以以后无论学什么,态度是最重要的,态度端正,学习认真严谨,这样才能学好很多东西,以上是我本次课程设计的总的收获十、附录createdatabasework//创建work(工厂)数据库创建工厂信息表useworkgocreatetablefactory(fnovarchar(10)NOTNULLprimarykey,fdnamevarchar(10))车间信息表useworkgocreatetableworkshop(workshop_nochar(10)NOTNULLprimarykey,wdnamevarchar(10),waddressvarchar(10),wtelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))工人信息表useworkgocreatetableworkman(wnochar(10)NOTNULLprimarykey,wnamevarchar(10),wageint,wtypevarchar(10),workshop_nochar(10)NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no))产品信息表useworkgocreatetableproduct(pnovarchar(10)NOTNULLprimarykey,pnamevarchar(10),ppricefloat,workshop_nochar(10)NOTNULL,snochar(10)NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(sno)referencesstorage(sno))零件信息表useworkgocreatetableelement(enochar(10)NOTNULLprimarykey,eweightfloat,epricefloat,snochar(10)NOTNULL,foreignkey(sno)referencesstorage(sno))仓库信息表useworkgocreatetablestorage(snochar(10)NOTNULLprimarykey,sdnamevarchar(10),stelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))车间与零件表useworkgocreatetableworkshop_element(workshop_nochar(10)NOTNULL,enochar(10)NOTNULL,primarykey(workshop_no,eno),foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(eno)referenceselement(eno))产品与零件表useworkgocreatetableproduct_element(pnovarchar(10)NOTNULL,enochar(10)NOTNULL,primarykey(pno,eno),foreignkey(pno)referencesproduct(pno),foreignkey(eno)referenceselement(eno))插入数据给各个表:insertintofactoryvalues('法拉利','陈泉宇')select*/*查询factory表的所用信息*/fromfactory插入数据给workshop表insertintoworkshopvalues('A','胡灵敏','无锡区','110','法拉利')insertintofactory//插入数据给insert表values('法拉利','陈泉宇')插入数据给workman表insertintoworkmanvalues('A01','贺江平','20','软件工程师','A')insertintoworkmanvalues('A02','彭成辉','20','劳力活','A')insertintoworkmanvalues('A03','张卉卉','19','顾问','A')insertintoworkmanvalues('A04','尹京伟','20','总经理','A')insertintoworkmanvalues('A05','刘清波','20','总监','A')插入数据给product表insertintoproductvalues('01','法拉利A10','100000','A','B')insertintoproductvalues('02','法拉利A20','200000','A','B')insertintoproductvalues('03','法拉利A30','300000','A','B')insertintoproductvalues('04','法拉利A40','400000','A','B')insertintoproductvalues('05','法拉利A40','400000','A','B')插入数据给element表insertintoelementvalues('e01','80.8',T00','B')insertintoelementvalues('e02','80.2','200','B')insertintoelementvalues('e03','80.3','300','B')insertintoelementvalues('e04','80.4','400','B')insertintoelementvalues('e05','80.5','500','B')插入数据给workshop_element表insertintoworkshop_elementvalues('A','e01')插入数据给product_element表insertintoproduct_elementvalues('01','e01')插入数据给storage表insertintostoragevalues('B','张攀','120','法拉利')insertintostoragevalues('B2','张攀2','130','法拉利')//创建存储过程manage(管理)createproceduremanage--创建一个名字为manage的存储过程(@enochar(10),--定义一些参数@wnamevarchar(10),@sdnamechar(10),@snochar(10))asdeclare@eweight1float=80.4--申明一个变量@eweight1ifexists(selecteweightfromelementwhereeweight<@eweight1)updateelements

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论