长 沙 学 院
课程设计说明书
题目 系(部) 专业(班级) 姓名 学号 指导教师 起止日期
工厂数据库管理系统 数学与计算机科学 软件2班 肖瑶 36 潘怡
2015.—2015.6.26
课程设计任务书
课程名称:数据库系统原理课程设计
设计题目:工厂数据库管理系统、销售订单数据库管理系统、汽车租赁管理系统、火车票预订管理系统(任选一题)。
已知技术参数和设计要求: 题目:工厂数据库管理系统
1、某工厂需建立一个管理数据库存储以下信息: 工厂包括厂名和厂长名。
一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。 一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。 一个车间生产多种产品,产品有产品号、产品名称和价格。
一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。 一个产品由多种零件组成,一种零件也可装配出多种产品。 产品与零件均存入仓库中。
厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。 2、系统功能的基本要求: 按照一定条件查询、统计工人和产品等基本信息,能模拟工厂生产过程中对原材料(零件)、产品检测、库存环节的管理。
各阶段具体要求: 1、需求分析阶段
定义数据项的含义和取值 定义目标系统的数据流 2、概念结构设计阶段 画出实体模型E-R图 3、逻辑结构设计阶段
将实体模型转化为关系模型
给出每个关系的主关键字和函数依赖集
分析你所设计的关系数据库模式是否属于3NF 4、物理设计阶段
确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字 5、数据库安全及维护设计阶段
设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略 6、实施阶段
要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。
设计工作量:
(1)软件设计:完成问题陈述中所提到的所有需求功能。
(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。
工作计划:
安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行; 1) 选定题目 2) 需求分析 3) 概念结构设计 4) 逻辑结构设计 5) 物理设计 6) 数据库安全及维护设计 7) 数据库上机实现 8) 答辩 计划时间 15~16周 15~16周 15~16周 15~16周 注意事项 提交文档
长沙学院课程设计任务书 长沙学院课程设计论文 长沙学院课程设计鉴定表
指导老师 杨刚 潘怡 何可可 钦 班级 13软件1班 13软件2班 13软件3班 13软件4班 (每学生1份) (每学生1份) (每学生1份)
指导教师签名: 日期: 教研室主任签名: 日期: 系主任签名: 日期:
长沙学院课程设计鉴定表
姓名 肖瑶 学号 36 专业 软件工程 班级 2班 潘怡 设计题目 工厂数据库管理系统 指导教师 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级: 答辩小组长签名: 日期: 教研室意见: 教研室主任签名: 日期: 系(部)意见: 系主任签名: 日期: 说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 目 录
1、需求分析阶段 错误!未定义书签。 2、概念结构设计阶段 错误!未定义书签。 3、逻辑结构设计阶段 错误!未定义书签。 4、物理设计阶段 错误!未定义书签。
5、数据库安全及维护设计阶段 错误!未定义书签。 6、实施阶段 错误!未定义书签。 一、引言 错误!未定义书签。
编写目的 错误!未定义书签。 参考资料 错误!未定义书签。
二、需求规约 错误!未定义书签。 业务描述 需求分析
错误!未定义书签。 错误!未定义书签。
错误!未定义书签。
三、数据库环境说明
四、数据库的命名规则 错误!未定义书签。 数据库对象命名规则 错误!未定义书签。 数据项编码规则 错误!未定义书签。 五、逻辑设计 错误!未定义书签。 实体关系E-R图
错误!未定义书签。
创建数据库系统的关系模型 错误!未定义书签。 六、物理设计 错误!未定义书签。 表汇总 错误!未定义书签。 表 错误!未定义书签。
存储过程、函数及触发器的设计 错误!未定义书签。 七、总结 错误!未定义书签。 八、附件 错误!未定义书签。
一、引言
编写目的
根据工人数据库管理系统建立一个数据库存储信息,建立实体并分析实体间的关系通过SQL语言来实现此管理系统的运用,模拟工厂生产过程中对零件、产品检测、库存环节的管理。从而便于用户详细了解整个工厂数据库管理系统。
参考资料
资料名称 《数据库系统概论》
作者 王珊、萨师煊 文件编号、版本 2006年5月第4版 二、需求规约
业务描述
根据工人管理系统模拟生产过程,实现对零件生产、产品检测、库存的管理。
需求分析
数据结构及数据关系
1.数据结构:
工厂 (厂名、厂长)
仓库 (仓库号、仓库主任姓名、电话) 车间 (车间号、车间主任姓名、地址、电话) 工人 (工号、姓名、年龄、性别、工种) 产品 (产品号、产品名称、价格、数量) 零件 (零件号、重量、价格、数量)
2.数据关系:
车间、工人与产品、零件有生产关系,工厂与车间、工厂与仓库、车间与工人有包含关系;产品与零件有组成关系,产品、零件与仓库有库存关系。工厂与车间为一对多关系, 车间与工人为一对多关系, 车间与产品为一对多关系,仓库与产品为一对多关系,仓库与零件为一对多关系, 车间与零件为多对多关系, 产品和零件为多对多关系, 工厂与仓库为一对多关系。
功能分析
1.要求能够插入,管理并更新此系统的车间数据、仓库数据、工人信息、产品信息及零件数据。生产产品用例规约如表所示。
用例名称: 角色: 用例说明: 前置条件: 基本事件流: 添加产品信息 工厂管理人员 工厂生产新的产品 进入软件功能选择页面 点击添加产品 输入产品信息(产品号、产品名称、价格、数量) 输入组成该产品的零件信息(零件号、重量、价格、数量) 该工厂不能生产其中一种零件,生产产品失败。 产品信息添加成功,工厂开始生产该产品 其他事件流: 后置条件: 表产品生产用例规约
2.要求具有完整的查询功能。例如通过仓库号能查询到仓库主任姓名、联系电话等信息;通过车间号能查询到车间主任姓名、地址、联系电话通过产品号能查询到产品名称,产品价格等等;职工信息查询用例规约如表所示。
用例名称: 角色: 用例说明: 前置条件: 基本事件流: 其他事件流: 后置条件: 查询职工信息 工厂管理人员 主管调查人员劳动价值 进入软件功能选择页面 1.选择要查询职工的职工号 2.点击查询 如果没有该职工号,则用况终止 显示该职工的所有信息(姓名,年龄,性别,工种) 表职工信息查询用例规约
三、数据库环境说明
数据库实例 工人数据库管理系统 数据库系统 SQL server2008 数据库部署环境 数据库设计工具 数据库存放位置 说明 硬件:2GB 网络环境:windows xp Microsoft Office D盘根目录 server 2008 查询、统计工人和产品基本信息,模拟工厂生产过程 内存:512M以上 Visio 2003与SQL 四、数据库的命名规则
数据库对象命名规则
数据库对象 表 索引 触发器 存储过程
命名规则 功能描述字符串 index_功能描述字符串 trigger_功能描述字符串 procedure_功能描述字符串 备注 例如: factory 工厂表 例如:index_factory 工厂索引 例如: trigger_factory 工厂触发器 例如: procedure_factory 工厂存储过程 数据项编码规则 数据项 厂名 厂长名 产品名 车间号 仓库号 职工号 产品号 零件号 电话 工种 零件重量 零件价格 零件数量
数据类型 char char char char char char char char char char Int Int Int 长度范围 20 20 20 10 10 10 10 10 11 20 备注 Fname FMname Proname Wno Sno Workno Prono Pno Phone Worktype Pweight Pmoney Pquantity 五、逻辑设计
实体关系E-R图 主任编号 仓库号 存放 1 仓库 n 1 1 电话 包含 存放 零件号 n m 零件 组成 n 产品 n 生产 厂名 工厂 m 1 1 n 生产 地址 车间号 1 包含 n 工人 工号 姓名 性别 年龄 工种 车间 电话 主任编号 n 包含 厂长名 名称 价格 n 产品号 重量 价格 创建数据库系统的关系模型
1.工厂表数据信息 Factory 数据项名 Fname FMname
2.工人表数据信息 含义 厂名 厂长名 数据类型 Char(20) Char(20) 约束 Primary Key \\ 是否为空 Not NULL \\ Worker 数据项名 Wono Woname Woage Wosex Wotype Wno 3.车间表数据信息 Workhome 数据项名 Wno WMno Wadd Wphone Fname
4.产品表数据信息 Product 数据项名 Prno Prname Prmoney Prquantity Sno Wno 含义 产品号 产品名称 产品价格 产品数量 仓库号 车间号 数据类型 char(10) char(20) int int char(10) char(10) 约束 Primary key \\ \\ \\ Foreign key Foreign key 是否为空 NOT NULL \\ \\ \\ \\ \\ 含义 车间号 车间主任编号 地址 电话 厂名 数据类型 char(10) char(20) char(20) char(11) char(20) 约束 Primary key \\ \\ \\ Foreign key 是否为空 NOT NULL \\ \\ \\ \\ 含义 职工号 姓名 年龄 性别 工种 车间号 数据类型 char(10) char(20) smallint char(10) char(20) char(10) 约束 Primary key \\ \\ \\ \\ Foreign key 是否为空 NOT NULL \\ \\ \\ \\ \\
5.零件表数据信息 Part 数据项名 Pano Paweight Pamoney Paquantity Sno
6.仓库表数据信息 Storage 数据项名 Sno SMno Sphone
7.生产表数据信息 Make 数据项名 Wno Pno Mtime Mquantity
8.组成表数据信息 Compose 数据项名 Prno Pano Cquantity 含义 产品号 零件号 组装数 数据类型 char(10) char(10) int 约束 Primary key Primary key \\ 是否为空 NOT NULL NOT NULL \\ 含义 车间号 零件号 生产日期 零件生产数量 数据类型 char(10) char(20) varchar(20) int 约束 Primary key Primary key \\ \\ 是否为空 NOT NULL NOT NULL \\ \\ 含义 仓库号 仓库主任编号 电话 数据类型 char(10) char(20) char(11) 约束 Primary key \\ \\ 是否为空 NOT NULL \\ \\ 含义 零件号 零件重量 零件价格 零件数量 仓库号 数据类型 char(10) int int int char(10) 约束 Primary key \\ \\ \\ Foreign key 是否为空 NOT NULL \\ \\ \\ \\ 9.产品存储表数据信息 Store1 数据项名 Sno Prno Squantity1
10.零件存储表数据信息 Store2 数据项名 Sno Pano Squantity2
含义 仓库号 零件号 零件库存量 数据类型 char(10) char(20) int 约束 Primary key Primary key \\ 是否为空 NOT NULL NOT NULL \\ 含义 仓库号 产品号 产品库存量 数据类型 char(10) char(10) int 约束 Primary key Primary key \\ 是否为空 NOT NULL NOT NULL \\ 六、物理设计
表汇总 表名 表Part 表Product 表Storage 功能说明 查询,插入,索引,存储过程 查询,插入,修改,索引,存储过程 查询,更新,删除,存储过程 表
1.工厂表 表名 数据库用户 主键 序号 字段名称 Factory Work Fno 数据类型(精度范允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 围) 1 2 Fname FMname Char(20) Char(200 ( Fname char(20) Primary Key, FMname char(20) ) 备注 2.工人表 工厂与车间一对多 N Primary key sql脚本 Create table Factory 表名 数据库用户 主键 序号 1 2 3 4 5 字段名称 Wono Woname Woage Wotype Wno Worker work Wono 数据类型(精度范围) char(10) char(20) smallint char(20) char(10) ( 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) ) 允许为空Y/N N N 唯一Y/N Primary key Foreign key 区别度 默认值 约束条件/说明 sql脚本 Create table Worker 备注 车间与工人一对多 3.车间表 表名 数据库用户 主键 序号 1 2 3 4 5 字段名称 Wno WMname Wadd Wphone Fname Workhome work Wno 数据类型(精度范围) char(10) char(20) char(20) Char(11) Char(20) ( Wno char(10)primary Key, WMno char(20), Wadd char(20), Wphone char(11), Fname char(20), Foreign Key(Fname)references Factory(Fname) ) 允许为空Y/N N N 唯一Y/N Primary key Foreign key 区别度 默认值 约束条件/说明 sql脚本 Create table Workhome 备注 4.产品表 工厂与车间一对多 表名 数据库用户 主键 序号 1 2 3 4 5 字段名称 Prno Prname Prmoney Prquantity Wno Product work Prno 数据类型(精度范围) char(10) char(20) int int char(10) ( Prno char(10)Primary Key, Prname char(20), Prmoney int, Prquantity int, Sno char(10), Wno char(10), foreign key(Wno)references Workhome(Wno) ) 允许为空Y/N N N 唯一Y/N Primary key Foreign key 区别度 默认值 约束条件/说明 sql脚本 Create table Product 备注 车间与产品一对多,仓库与产品一对多 5.零件表 表名 数据库用户 主键 序号 1 2 3 4 5 字段名称 Pano Paweight Pamoney Paquantity Sno Part work Pano 数据类型(精度范围) char(10) Varchar(20) int int char(10) ( Pano char(10)primary Key, Paweight varchar(20), Pamoney int, Paquantity int, Sno char(10), Foreign Key(Sno)references Storage(Sno) ) 允许为空Y/N N N 唯一Y/N Primary key Foreign key 区别度 默认值 约束条件/说明 sql脚本 Create table Part 备注 6.生产表 仓库与零件一对多 表名 数据库用户 主键 序号 1 2 3 4 字段名称 Wno Prno Mtime Mquantity Make work Wno ,Prno 数据类型(精度范围) char(10) char(10) varchar(20) int ( 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) ) 允许为空Y/N N N 唯一Y/N Primary key Primary key 区别度 默认值 约束条件/说明 sql脚本 Create table Make 备注 车间与零件多对多 7.组成表 表名 数据库用户 主键 序号 1 2 3 字段名称 Prno Pano Cquantity Compose work Prno,Pano 数据类型(精度范围) char(10) char(10) int ( Prno char(10), Pano char(10), Cquantity int, Primary Key(Prno,Pano), Foreign Key(Prno)references Product(Prno), Foreign Key(Pano)references Part(Pano) ) 允许为空Y/N N N 唯一Y/N Primary key Primary key 区别度 默认值 约束条件/说明 sql脚本 Create table Compose 备注 8.仓库表 表名 数据库用户 主键 序号 1 2 3 字段名称 Sno SMno Sphone 产品和零件多对多 Storage work Sno 数据类型(精度范围) char(10) char(20) char(11) ( Sno char(10)primary Key, SMno char(20), Sphone char(11) ) 允许为空Y/N N 唯一Y/N Primary key 区别度 默认值 约束条件/说明 sql脚本 Create table Storage 备注
工厂与仓库一对多 9.产品存储表 表名 数据库用户 主键 序号 1 2 3 字段名称 Sno Prono Squantity1 Store1 work Sno、Prno 数据类型(精度范围) char(10) char(10) int ( Sno char(10), Prno char(10), Squantity1 int, Primary Key(sno,Prno), Foreign Key(sno)references Storage(sno), Foreign Key(Prno)references Product(Prno) ) 允许为空Y/N N N 唯一Y/N Primary key Primary key 区别度 默认值 约束条件/说明 sql脚本 Create table Store1 备注
10.零件存储表 表名 数据库用户 主键 序号 1 2 3 字段名称 Sno Pano Squantity2 仓库与产品一对多 Store2 work Sno、Pano 数据类型(精度范围) char(10) char(10) int ( Sno char(10), Pano char(10), Squantity2 int, Primary Key(sno,Pano), Foreign Key(sno)references Storage(sno), Foreign Key(Pano)references Part(Pano) ) 允许为空Y/N N N 唯一Y/N Primary key Primary key 区别度 默认值 约束条件/说明 sql脚本 Create table Store2 备注
仓库与零件一对多 存储过程、函数及触发器的设计
存储过程设计
1.工厂表存储过程及数据插入,效果图如图所示
Create procedure C_Factory @Fname char(20), @FMname char(20) as
insert into Factory values(@Fname,@FMname); -------------------------------------------------------------------- exec C_Factory'环球鞋业有限公司','肖瑶'
图
2.车间表存储过程及数据插入,效果图如图所示 create procedure C_Workhome @Wno char(10), @WMno char(20), @Wadd char(20), @Wphone char(11), @Fname char(20) as
insert into Workhome values(@Wno,@WMno,@Wadd,@Wphone,@Fname) ----------------------------------------------------------------------
exec C_Workhome '01','001','洪山路月湖栋','','环球鞋业有限公司' exec C_Workhome '02','002','洪山路月湖栋','','环球鞋业有限公司' exec C_Workhome '03','003','洪山路月湖栋','','环球鞋业有限公司'
图
3.职工表存储过程及数据插入,效果图如图所示 create proc C_Worker @Wono char(10), @Woname char(20),
@Woage smallint, @Wosex char(2), @Wotype char(20), @Wno char(10) as
insert 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'
图
4.仓库表存储过程及数据插入,效果图如图所示 create proc C_Storage @Sno char(10), @SMno char(20), @Sphone char(11) as
insert into Storage values(@Sno,@SMno,@Sphone) ------------------------------------------------------------------------------ exec C_Storage'01','001','7941211' exec C_Storage'02','002','7412255' exec C_Storage'03','003','4566181'
图
5.产品表存储过程及数据插入,效果图如图所示 create proc C_Product @Prno char(10), @Prname char(20), @Prmoney int, @Prquantity int, @Sno char(10), @Wno char(10) as
insert 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.零件存储过程及数据插入,效果图如图所示 Create proc C_Part @Pano char(10), @Paweight varchar(20), @Pamoney int, @Paquantity int, @Sno char(10) as
insert into Part values(@Pano,@Paweight,@Pamoney,@Paquantity,@Sno) --------------------------------------------------------------------------- exec C_Part'01','','13','4000','01' exec C_Part'02','','60','6150','02' exec C_Part'03','','80','3618','03' exec C_Part'04','','80','3618','03' delete from Part where Pano='04'
图
7.生产表存储过程及数据插入,效果图如图所示 Create Proc C_Make @Wno char(10), @Pano char(10), @Mtime varchar(20), @Mquantity int as
insert into Make values(@Wno,@Pano,@Mtime,@Mquantity) --------------------------------------------------------------------------- exec C_Make'01','01',' 08:11:01','120' exec C_Make'02','02',' 09:23:16','160' exec C_Make'03','03',' 11:06:01','210'
图
8.组成表存储过程及数据插入,效果图如图所示 Create Proc C_Compose @Prno char(10), @Pano char(10), @Cquantity int as
insert 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'
图
9.产品存储表存储过程及数据插入,效果图如图所示 Create proc C_Store1 @Sno char(10), @Prno char(10), @Stquantity1 int as
insert into Store1 values(@Sno,@Prno,@Stquantity1) ---------------------------------------------------------------------------- exec C_Store1'01','01','155' exec C_Store1'02','02','211' exec C_Store1'03','03','284'
图
10.零件存储表存储过程及数据插入,效果图如图所示 Create proc C_Store2 @Sno char(10),
@Pano char(10), @Stquantity2 int as
insert into Store2 values(@Sno,@Pano,@Stquantity2) ---------------------------------------------------------------------------- exec C_Store2'01','01','300' exec C_Store2'02','02','416' exec C_Store2'03','03','312'
图
触发器设计
1.产品数量更新,效果图如所示 create trigger T_Product on Product for update as
if UPDATE(Prquantity) begin
declare @no int, @Bo int
select @Bo=Prquantity,@no=Prno from inserted update Store1 set Squantity1=Squantity1+@Bo where Prno=@no end
select Sno as 仓库号,Prno as 产品号,Squantity1 as 产品存储数 from Store1
图
2. 更新产品价格,效果图如图所示 Create trigger T_Product_money on Product for update as
if UPDATE(Prmoney)
begin
select , as 原价, as 现价 from deleted,inserted where = end
图
3. 更新零件价格,效果图如图所示 Create trigger T_Part_money on Part for update as
if UPDATE(Pamoney) begin
select , as 原价, as 现价 from deleted,inserted where = end
图
3. 更新职工职位,效果图如图所示 Create trigger T_worker on Worker for update as
if UPDATE(Wotapy) begin
select , as 原职位, as 现职位 from deleted,inserted where = end
图
4.检查零件重量是否合格,效果图如图所示 Create trigger T_Part on Part for update as
if UPDATE(Paweight) begin
select , as 重量, as 检测 from deleted,inserted where = end
图
七、总结
这次课程设计加深了我对数据库系统概论相关知识和SQL SERVER相关功能的理解。虽然课程设计已经结束了。回想着这个学期自己所学的《数据库系统概论》、以及这次做的课程设计,感触蛮深的。首先,在这次课程设计中,我对建立基本表、视图、索引等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在删除和更新数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。另外我还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的语句正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢。另外比如功能过少等问题,我会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。
八、附件
Create table Factory (
Fname char(20) Primary Key, FMname char(20) )
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) )
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) )
Create table Storage (
Sno char(10)primary Key, SMno char(20), Sphone char(11) )
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) )
Create table Part (
Pano char(10)primary Key, Paweight varchar(20), Pamoney int, Paquantity int, Sno char(10),
Foreign Key(Sno)references Storage(Sno) )
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) )
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) )
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) )
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) )
Create procedure C_Factory @Fname char(20), @FMname char(20) as
insert into Factory values(@Fname,@FMname); ----------------------------------------------------- exec C_Factory'环球鞋业有限公司','肖瑶' select *from Factory
create procedure C_Workhome @Wno char(10), @WMno char(20), @Wadd char(20), @Wphone char(11), @Fname char(20) as
insert into Workhome values(@Wno,@WMno,@Wadd,@Wphone,@Fname) ----------------------------------------------------------
exec C_Workhome '01','001','洪山路月湖栋','','环球鞋业有限公司' exec C_Workhome '02','002','洪山路月湖栋','','环球鞋业有限公司' exec C_Workhome '03','003','洪山路月湖栋','','环球鞋业有限公司'
create proc C_Worker @Wono char(10), @Woname char(20), @Woage smallint, @Wosex char(2), @Wotype char(20), @Wno char(10) as
insert 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' select *from Worker
create proc C_Storage @Sno char(10), @SMno char(20), @Sphone char(11) as
insert into Storage values(@Sno,@SMno,@Sphone) ---------------------------------------------------------------------- exec C_Storage'01','001','7941211' exec C_Storage'02','002','7412255' exec C_Storage'03','003','4566181' select *from Storage
create proc C_Product @Prno char(10), @Prname char(20), @Prmoney int, @Prquantity int, @Sno char(10), @Wno char(10) as
insert 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') select *from Product
Create proc C_Part @Pano char(10), @Paweight varchar(20), @Pamoney int, @Paquantity int, @Sno char(10) as
insert into Part values(@Pano,@Paweight,@Pamoney,@Paquantity,@Sno) ------------------------------------------------------------------------ exec C_Part'01','','13','4000','01' exec C_Part'02','','60','6150','02' exec C_Part'03','','80','3618','03' exec C_Part'04','','80','3618','03'
delete from Part where Pano='04' select *from Part
Create Proc C_Make @Wno char(10), @Pano char(10), @Mtime varchar(20), @Mquantity int as
insert into Make values(@Wno,@Pano,@Mtime,@Mquantity) ----------------------------------------------------------------------- exec C_Make'01','01',' 08:11:01','120' exec C_Make'02','02',' 09:23:16','160' exec C_Make'03','03',' 11:06:01','210' select *from Make
Create Proc C_Compose @Prno char(10), @Pano char(10), @Cquantity int as
insert 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' select *from Compose
Create proc C_Store1 @Sno char(10), @Prno char(10), @Squantity1 int as
insert into Store1 values(@Sno,@Prno,@Squantity1) ----------------------------------------------------------------------- exec C_Store1'01','01','155' exec C_Store1'02','02','211' exec C_Store1'03','03','284'
Create proc C_Store2 @Sno char(10), @Pano char(10), @Squantity2 int as
insert into Store2 values(@Sno,@Pano,@Squantity2) ------------------------------------------------------------------ exec C_Store2'01','01','300' exec C_Store2'02','02','416' exec C_Store2'03','03','312' select *from Store2
create index Factory_index on Factory(Fname) create index Workhome_index on Workhome(Wno) create index Worker_index on Worker(Wono) create index Product_index on Product(Prno) create index Part_index on Part(Pano) create index Storage_index on Storage(Sno)
Create trigger T_Part on Part for update as
if UPDATE(Paweight) begin
select , as 重量, as 检测 from deleted,inserted where = end
----------------------------------------------------------------------- update Part
set Paweight='不合格' where Paweight>'' update Part
set Paweight='' where Pano='01' update Part
set Paweight='' where Pano='02' update Part
set Paweight='' where Pano='03' DROP trigger T_Part
Create trigger T_Product_money on Product for update as
if UPDATE(Prmoney) begin
select , as 原价, as 现价 from deleted,inserted where = end
-------------------------------------------------------------------- update Product set Prmoney='820' where Prno='01'
Create trigger T_Part_money on Part for update as
if UPDATE(Pamoney) begin
select , as 原价, as 现价 from deleted,inserted where = end
--------------------------------------------------------------------- update Part set Pamoney='22' where Pano='01'
Create trigger T_worker on Worker for update as
if UPDATE(Wotapy) begin
select , as 原职位, as 现职位 from deleted,inserted where = end
----------------------------------------------------------------------- update Worker set Wotapy='安保' where wono='001'
create trigger T_Product on Product for update as
if UPDATE(Prquantity) begin
declare @no int, @Bo int
select @Bo=Prquantity,@no=Prno from inserted update Store1 set Squantity1=Squantity1+@Bo where Prno=@no end
select Sno as 仓库号,Prno as 产品号,Squantity1 as 产品存储数 from Store1 ---------------------------------------------------------------------- drop trigger T_Product
update Product set Prquantity='60' where Prno='01'
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务