1、2 问题描述问题描述某企业为实现现代化管理准备开发一套仓库管理系统,实现如下功能:1、材料情况登记(每一材料入库前的详细情况登记)2、材料库存信息登记3、材料入库信息登记4、材料出库信息登记5、仓库信息登记 现要求对“企业仓库管理系统”进行数据库的设计并实现,数据库保存在D:project目录下,文件增长率为20%。3问题分析-1材料信息表材料信息表material:Material_noVarchar(6)Not null 材料号(主键),自动产生,可修改Material_nameVarchar(20)Not null 材料名称Material_xhVarchar(6)null型号规格Mat
2、erial_manufactureVarchar(20)Null生产厂家Product_dwVarchar(8)Not null 单位(米、只、个)Material_priceMoneyNull参考价格(默认0)4问题分析-2材料库存信息表材料库存信息表Material_kc:Material_idVarchar(6)Not Null材料号(主键,外键)Kc_balancefloatNull期初余额Kc_amoutfloatNull现有库存Kc_pcfloatNull盘库数量Kc_pcykfloatNull盘库盈亏(=盘库数量-现有库存)Kc_pctimeDatetimeNull盘库时间(盘库
3、时系统自动产生,不能修改)Stor_noVarchar(2)Not null仓库号(外键)5问题分析-3材料入库信息表材料入库信息表Material_rk_1:Cgdd_noVarchar(7)Not采购订单号(外键),自动产生入库单号Materialrkd_noVarchar(7)Not 入库单号(主键)可修改SpeopleVarchar(10)Null 送货人Rk_indateDatetimeNull 入库日期(自动产生可修改)Stor_noVarchar(2)Not 仓库号Audit_noVarchar(6)Null 审核人号Has_Auditedbitnull审核否,默认为未审核Rk_
4、demoTextnull备注信息6问题分析-4材料入库信息表材料入库信息表Material_rk_2:Materialrkd_noVarchar(7)Not null入库单号(主键一,外键),可修改,但要保证一次入库单业务中的入库单号是一致的Material_idVarchar(6)Not null材料号(主键二、外键)Rk_amoutfloatNot Null入库数量7问题分析-5材料出库信息表材料出库信息表Material_ck_1:Materialckd_noVarchar(7)Not出库单号(主键),自动产生,可修改GetpeopleVarchar(10)Null提货人ck_dateD
5、atetimeNull出库时间(系统自动入)ck_amoutfloatNull出库数量user_deptVarchar(20)Null使用部门Cgpeople_noVarchar(6)Not仓库管理员号audit_noVarchar(6)Null审核人号,引用emp_noHas_AuditedbitNull是否审核,默认未审核Ck_memoTextNull备注信息8问题分析-6材料出库信息表材料出库信息表Material_ck_2:Materialckd_noVarchar(7)Not null出库单号(主键一,外键),自动产生,可修改,但要保证一次出库单业务中的出库单号是一致的Materia
6、l_idVarchar(6)Not null材料号(主键二、外键)ck_amoutfloatNull出库数量9问题分析-7仓库信息表仓库信息表Store:Stor_noVarchar(2)Not null仓库号(主键)Stor_nameVarchar(20)NOT Null仓库名Manager_noVarchar(6)NOT Null负责人号,引用自yg表中的”emp_no”Stor_totalIntNull仓位数Stor_areaFloatNull面积(平方米)10难点分析-1q 设计ER图、建库、建表、加约束、建关系部分 建库语句:建库语句:CREATE DATABASE project
7、DB ON(NAME=,FILENAME=,SIZE=,FILEGROWTH=)LOG ON(.)建表语句:建表语句:CREATE TABLE 表名(Material_no IDENTITY(1,1),Material_name CHAR(8)NOT NULL,.)11难点分析-2q 设计ER图、建库、建表、加约束、建关系部分 建约束语句:建约束语句:ALTER TABLE material ADD CONSTRAINT PK_ deptID PRIMARY KEY(deptID),CONSTRAINT DF_ Material_price default(“0”)for Material_p
8、rice .主键约束默认约束12子查询:SELECT.FROM WHERE Material_name=(SELECT FROM)SQL编程:DECLARE Material_name char(6)SELECT Material_name=Material_name from.where(Material_no=XX)视图:CREATE VIEW view_userInfo AS -SQL语句GO难点分析-4声明变量q 插入测试数据、常规业务模拟、创建索引视图部分 给变量赋值的两种方法:SELECT或SET测试视图:SELECT .FROM view_userInfo 13创建存储过程:创建
9、存储过程:CREATE PROCEDURE proc_takeproduct ID char(8),type char(4),AS .SQL语句语句GO难点分析-6q 存储过程部分1:存储过程的参数14阶段划分q 第一阶段(45分钟)利用PowerDesigner设计E-R图q 第二阶段(60分钟)利用SQL语句实现建库、建表、加约束、建关系q 第三阶段(45分钟)利用SQL语句插入测试数据、模拟常规业务操作 q 第四阶段(60分钟)利用SQL语句创建索引和视图、创建触发器 q 第五阶段(60分钟)利用SQL语句创建存储过程并测试 q 第六阶段(30分钟)利用SQL语句创建产品流通事务并测试
10、q 第七阶段(30分钟)利用SQL语句创建系统维护帐号并授权 15第一阶段q第一阶段(45分钟)利用PowerDesigner设计E-R图q要求学生自己动手操作,老师解答难点16阶段检查q针对第一阶段抽查学生的操作结果q老师给出点评或集中演示难点部分17第二阶段q第二阶段(60分钟)利用SQL语句实现建库、建表、加约束、建关系q要求学生自己动手编写SQL语句,老师解答学生提出的问题18阶段检查q针对第二阶段抽查学生的编码结果q老师给出点评或集中演示难点部分19第二阶段标准代码演示-1q建库IF exists(SELECT*FROM sysdatabases WHERE name=project
11、DB)DROP DATABASE projectDBGOCREATE DATABASE projectDB ON(NAME=projectDB_data,FILENAME=d:projectprojectDB_data.mdf,SIZE=1mb,FILEGROWTH=15%)LOG ON(.检验数据库是否存在,如果为真,删除此数据库 创建建库projectDB20第二阶段标准代码演示-2q建表:USE projectDBGOCREATE TABLE material 材料信息表 (Material_no INT IDENTITY(1,1),Material_name VARCHAR(20)NO
12、T NULL,Material_xh VARCHAR(6)NOT NULL,Material_manufacture VARCHAR(20)GO21第三阶段q第三阶段(45分钟):利用SQL语句实现插入测试数据、常规业务操作 q要求学生自己动手操作,教师解答学员提出的问题22阶段检查q针对第三阶段抽查学生的编码结果q抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q教师给出点评23第三阶段标准代码演示-1q 部门A和部门B信息登记:SET NOCOUNT ON -不显示受影响的条数信息INSERT INTO material(Material_name,Material_xh,Mate
13、rial_manufacture,Product_dw,Material_price)VALUES(铁皮,A4,杭州钢铁厂,平方米,60)INSERT INTO material(Material_name,Material_xh,Material_manufacture,Product_dw,Material_price)VALUES(铁皮,A5,杭州钢铁厂,平方米,80)SELECT*FROM materialGO24第四阶段q第四阶段(60分钟):利用SQL语句创建索引和视图 q要求学生自己动手操作,教师解答学员提出的问题25阶段检查q针对第四阶段抽查学员的编码结果q抽查学生编写的完整代
14、码,要求学生上台讲解,并演示运行结果q教师给出点评26第四阶段标准代码演示-1q 创建视图:.创建视图:查询各表要求字段全为中文字段名。create VIEW view_material-材料信息表材料信息表信息表视图(其他表同理)AS select Material_no as 材料,Material_name as 材料名称,Material_xh as 型号规格,Material_manufacture as 生产厂家,Product_dw as 生产单位,Material_price as 参考价格 from materialGO27第五阶段q第五阶段(60分钟):利用SQL语句创建存
15、储过程并测试q要求学生自己动手操作,教师解答学员提出的问题28阶段检查q针对第五阶段抽查学生的编码结果q抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q教师给出点评29第五阶段标准代码演示-1q 产品入库存储过程产品入库存储过程CREATE PROCEDURE proc_takematerial Name char(19).AS print 入库入库正进行,请稍后.if(.)begin endGO30第六阶段q第六阶段(30分钟):利用SQL语句创建转帐事务的存储过程并测试q要求学生自己动手操作,教师解答学员提出的问题31阶段检查q针对第六阶段抽查学员的编码结果q抽查学生编写的完整代
16、码,要求学生上台讲解,并演示运行结果q教师给出点评32第六阶段标准代码演示-1q 出入库事务的存储过程出入库事务的存储过程create procedure proc_material.AS begin tran print 开始,请稍后.if(errors0)begin print 失败!rollback tran end else begin print 成功!commit tran endGO 33第七阶段q第七阶段(30分钟):利用SQL语句创建系统维护帐号并授权q要求学生自己动手操作,教师解答学员提出的问题34阶段检查q针对第七阶段抽查学员的编码结果q抽查学生编写的完整代码,要求学生上
17、台讲解,并演示运行结果q教师给出点评35第七阶段标准代码演示-1q 添加系统维护帐号添加系统维护帐号sysAdmin,并授权,并授权-1.添加添加SQL登录帐号登录帐号If not exists(SELECT*FROM master.dbo.syslogins WHERE loginname=sysAdmin)begin EXEC sp_addlogin sysAdmin,1234 -添加添加SQL登录帐号登录帐号 EXEC sp_defaultdb sysAdmin,projectDB -修改登录的默认数据修改登录的默认数据库为库为bankDB end go-2.创建数据库用户创建数据库用户
18、 EXEC sp_grantdbaccess sysAdmin,sysAdminDBUser GO-3.-给数据库用户授权给数据库用户授权 -为为sysAdminDBUser分配对象权限分配对象权限(增删改查的权限增删改查的权限)GRANT SELECT,insert,update,delete,select ON material TO sysAdminDBUser GRANT SELECT,insert,update,delete,select ON Material_kc TO sysAdminDBUser GRANT SELECT,insert,update,delete,select
19、 ON Material_rk_1 TO sysAdminDBUser .GO依依却却奔奔村村坊坊精精拼拼 命命丧丧抖抖磨磨希希精心精心 希望希望 依然依然 飞舞飞舞 拼命拼命 抖动抖动 寻找寻找 磨坊磨坊继续继续 奔跑奔跑 大惊失色大惊失色 千呼万唤千呼万唤 垂头丧气垂头丧气10 10 风筝风筝 10 10 风筝风筝 我们去放风筝。一个人用手托着,我们去放风筝。一个人用手托着,另一个人牵着线,站在远远的地方,说另一个人牵着线,站在远远的地方,说声声“放放”,那线一紧一松,风筝就凌空,那线一紧一松,风筝就凌空飞起,渐渐高过树梢了。牵线人飞快地飞起,渐渐高过树梢了。牵线人飞快地跑起来。风筝越飞越
20、高,在空中翩翩飞跑起来。风筝越飞越高,在空中翩翩飞舞着,我们快活地喊叫着,在田野里拼舞着,我们快活地喊叫着,在田野里拼命地奔跑。村里人看见了,说:命地奔跑。村里人看见了,说:“放得放得这么高!这么高!”10 10 风筝风筝 从早晨玩到下午,我们还是歇从早晨玩到下午,我们还是歇不下来,牵着风筝在田野里奔跑。不下来,牵着风筝在田野里奔跑。风筝越飞越高,似乎飞到了云彩上。风筝越飞越高,似乎飞到了云彩上。兴奋快乐喜悦愉快兴奋快乐喜悦愉快乐滋滋美滋滋乐呵呵乐滋滋美滋滋乐呵呵欣喜若狂兴高采烈欣喜若狂兴高采烈 10 10 风筝风筝 从早晨玩到下午,我们还是歇从早晨玩到下午,我们还是歇不下来,牵着风筝在田野里
21、奔跑。不下来,牵着风筝在田野里奔跑。风筝越飞越高,似乎飞到了云彩上。风筝越飞越高,似乎飞到了云彩上。10 10 风筝风筝 我们快活地喊叫着,在田野里我们快活地喊叫着,在田野里拼命地奔跑。拼命地奔跑。从早晨玩到下午,我们还是歇从早晨玩到下午,我们还是歇不下来,牵着风筝在田野里奔跑。不下来,牵着风筝在田野里奔跑。10 10 风筝风筝 忽然吹来一阵风,线嘣地断了。忽然吹来一阵风,线嘣地断了。风筝在空中抖动了一下,便极快地风筝在空中抖动了一下,便极快地飞走了。我们大惊失色,千呼万唤,飞走了。我们大惊失色,千呼万唤,那风筝越来越小,倏地便没了踪影。那风筝越来越小,倏地便没了踪影。10 10 风筝风筝 忽
22、然吹来一阵风,线嘣地断了。忽然吹来一阵风,线嘣地断了。风筝在空中抖动了一下,便极快地风筝在空中抖动了一下,便极快地飞走了。我们飞走了。我们大惊失色,千呼万唤大惊失色,千呼万唤,那风筝越来越小,倏地便没了踪影。那风筝越来越小,倏地便没了踪影。10 10 风筝风筝 忽然吹来一阵风,线嘣忽然吹来一阵风,线嘣地断了。风筝在空中抖动了地断了。风筝在空中抖动了一下,便极快地飞走了。我一下,便极快地飞走了。我们大惊失色,们大惊失色,千呼万唤千呼万唤,那,那风筝越来越小,倏地便没了风筝越来越小,倏地便没了踪影。踪影。10 10 风筝风筝 1、默读、默读58自然段,画出表现自然段,画出表现“我们我们”心情的句子
23、或词语。心情的句子或词语。2、想一想你从这些句子或词语中、想一想你从这些句子或词语中体会到了什么?体会到了什么?10 10 风筝风筝 我们都哭了,在田野里四处寻我们都哭了,在田野里四处寻找,找了半个下午,还是没有踪影。找,找了半个下午,还是没有踪影。我们垂头丧气地坐在田埂上,一抬我们垂头丧气地坐在田埂上,一抬头,看见远远的水面上半沉半浮着头,看见远远的水面上半沉半浮着一个巨大的木轮,不停地转着,将一个巨大的木轮,不停地转着,将水扬起来,半圈儿水在闪着白光。水扬起来,半圈儿水在闪着白光。那里是我们村的水磨坊。那里是我们村的水磨坊。10 10 风筝风筝 我们都哭了,在田野里四处寻我们都哭了,在田野
24、里四处寻找,找了半个下午,还是没有踪影。找,找了半个下午,还是没有踪影。我们我们垂头丧气垂头丧气地坐在田埂上,一抬地坐在田埂上,一抬头,看见远远的水面上半沉半浮着头,看见远远的水面上半沉半浮着一个巨大的木轮,不停地转着,将一个巨大的木轮,不停地转着,将水扬起来,半圈儿水在闪着白光。水扬起来,半圈儿水在闪着白光。那里是我们村的水磨坊。那里是我们村的水磨坊。10 10 风筝风筝 我们都哭了,在田野里四处寻我们都哭了,在田野里四处寻找,找了半个下午,还是没有踪影。找,找了半个下午,还是没有踪影。10 10 风筝风筝 我们我们垂头丧气垂头丧气地坐在田埂上,一地坐在田埂上,一抬头,看见远远的水面上半沉半
25、浮着一抬头,看见远远的水面上半沉半浮着一个巨大的木轮,不停地转着,将水扬起个巨大的木轮,不停地转着,将水扬起来,半圈儿水在闪着白光。那里是我们来,半圈儿水在闪着白光。那里是我们村的水磨坊。村的水磨坊。“那儿找过了吗?那儿找过了吗?”“没找过,说不定没找过,说不定幸福鸟幸福鸟就落就落在那儿呢。在那儿呢。”大家说。大家说。我们向那房子跑去,继续寻找我们我们向那房子跑去,继续寻找我们的的“幸福鸟幸福鸟”10 10 风筝风筝 童年的时候,我们这些孩子,童年的时候,我们这些孩子,最大的快乐就是做风筝,放风筝。最大的快乐就是做风筝,放风筝。10 10 风筝风筝 快乐写话:快乐写话:下课了,我们冲出教室,在操场上玩(下课了,我们冲出教室,在操场上玩()的游戏,的游戏,。布置作业:布置作业:1、抄写文中喜欢的句子。、抄写文中喜欢的句子。2、继续了解风筝的资料。、继续了解风筝的资料。