1、 数据库原理课 程 设 计 报 告 书题 目: 水果售卖管理系统 学 号: 121007318 学生姓名: 马深圳 专 业: 网络工程 指导教师: 王红梅 2014 年 5 月 31 日目 录1题目来源 .12 需求分析 33 设计的表图 44 实现的功能 45心的体会 .56 评分标准61.题目来源这个题目来自于一般的超市管理或者网店的管理系统,我发现在超市的日常管理中有许多的数据需要去保存和处理,那么就会用到数据库,通过数据库来实现对这些数据的存储,查询和删除操作,以及修改等操作。2.需求分析为了实现自动水果售卖的功能,需要系统具有简单的查询功能,如顾客可以查询某种水果的销售价格,以及所卖
2、的水果种类,管理员可以查询所有水果的剩余量和销售情况,以及某种水果的进价和售价,当售出某种水果后,这种水果相应的库存量应该减少,当进入某种水果后,此水果的库存量也应该增加。某会员买了水果后,他的会员卡中的金额要相应的减少。3.设计的表图水果表水果编号 水果名水果余量 最少余量进货表水果编号 水果进价水果名顾客表顾客名 卡上余额销售表顾客姓名 水果编号水果名水果售价销售表水果表 进货表(1)新建水果表顾客表create table Fruit( Fno char(5) primary key,Fname char(10) unique,Flast char(5),Fmin char(5),(2)
3、新建进价表create table Intt(Fno char(5),Fname char(10),Inprice char(5),primary key (Fno,Fname,Inprice),);(3)新建顾客表create table Custom(Cname char(10),Money char(5),primary key (Cname,Money);(4)新建销售表create table Sale(Cname char(10),Fno char(5),Fname char (10),Sprice char(5),primary key (Cname,Fno,Fname,Spri
4、ce);4.实现的功能(1) 新建存储过程在水果表中添加新的水果类型create procedure fruit_insertparam1 char(5),param2 char(10),param3 char(5),param4 char(5)asbegininsert into Fruit(Fno,Fname,Flast,Fmin) values(param1,param2,param3,param4)endexec fruit_insert 06,李子,45,20(2) 新建存储过程在进价表中添加水果进价create procedure Intt_insertparam1 char(10
5、),param2 char(5),param3 char(5)asbegininsert into Intt(Fno,Fname,Inprice ) values(param1,param2,param3)end(3)新建存储过程查询某种水果售价create procedure lookFno char(5)asselect Fno,Fname,Spricefrom Salewhere Fno=Fno(4)新建存储过程查询水果的余量create procedure kanFno char(5)asselect Fruit.Fno,Fruit.Fname,Flastfrom Fruitwhere
6、 Fno=Fnogo);(5)新建触发器,若Fmin小于20则提醒需要进货create trigger Fruit_insert2 on Fruitfor INSERT ,UPDATEASDECLARE fr tinyintSELECT fr=inserted.Fmin from insertedIF (fr0 and fr20)BEGINRAISERROR (该类型水果需要进货,16,1)END(6) 新建触发器实现新进某水果相应的库存量加1create TRIGGER trigger_Intt_InsertON Inttfor insertas begindeclare Fno char(
7、5)select Fno=Fnofrom insertedupdate FruitSET Flast=Flast+1where Fno=FnoEND;(7)新建触发器Sale表中更新操作时,Custom表中Money减少1create TRIGGER trigger_lost_Customon Salefor updateas begindeclare Fno char(5)select Fno=Fnofrom insertedupdate Customset Money=Money-1end更新操作insertinto Sale(Cname,Fno,Fname,Sprice)values(李
8、青,03,桃子,4.0);(8)新建触发器防止修改水果表中水果名create trigger no_F_updon Fruitfor updateasif update(Fname)beginraiserror(不能修改水果名称,16,10)rollback transactionendgo(9)新建存储过程实现对水果表的删除操作create procedure 删除Fno char (5)asdelete from Fruitwhere Fno=Fnoexec 删除 075.心得体会在这次课程设计中我对数据库设计有了重新的认识,刚开始设计不知道数据库要实现怎样的功能,然后就是在建立触发器的时
9、候,不会实现相应的功能,不过最终还是借助网络建立了几个简单的触发器,这次所做的水果销售系统并不完善,还有许多功能没有实现,当然也就没有了使用的意义,比如无法实现会员买水果后,水果库存量减少,且会员卡中金额减少,由于对于这类触发器没能掌握,导致最重要的功能没有实现,希望在以后的学习中能把这部分掌握,然后把这个水果售卖系统的功能真正完善起来。教师评分表评分细则 分数理解功能及基本原理程度。 (20 分)报告文字、图、表格式规范、整齐程度。 (15 分)报告内容完整、逻辑性程度。 (15 分)程序代码是否有注释、是否有语法错误。 (10 分)程序运行是否正常。 (20 分)程序运行界面是否美观。 (15 分)是否有创新思考、做法等。 (5 分)其他说明:总分:成绩:指导老师签名:日期: