课程设计报告

发布 2022-10-04 10:11:28 阅读 2576

关系数据库原理及应用课程设计报告。

家电售后服务系统。

一、需求分析。

通过对实际市场系统的分析,要求本数据库具有以下功能:

1.统一友好的操作界面,用以保证数据库的易用性。

2.规范、完善的基础信息管理。

3.对客户的销售信息、维修信息信息进行全面的管理。

4.提供根据客户姓名查询和根据客户编号删除客户信息功能。

5.能够输出各种实用的视图。

二、e-r图。

三、关系模式。

客户表(customer):客户编号cno、客户姓名cn、客户**tel、购买电器pn、数量cnum、维修时间rtime、维修状态rstate、维修工编号rno

商店表(products):产品编号pno、电器名pn、库存量pnum、生产日期(pdate)

销售表(sale):客户编号cno、产品编号pno、销售编号sno、销售时间saledate、销售量snum

售后表(repair):维修工编号rno、姓名rn、联系**rtel

四、创建数据表。

创建数据库。

create database 家电售后服务系统。

on primary

name=家电售后服务系统,filename='d:\胡沈钢\家电售后服务系统。mdf',size=10,maxsize=50,filegrowth=5

log on

name=study_log,filename='d:\胡沈钢\家电售后服务系统。ldf',size=5,maxsize=unlimited,filegrowth=10%

use 家电售后服务系统。

go创建数据表。

create table products --商店表。

pno char(6) primary key, -产品编号。

pn varchar(20电器名。

pnum smallint库存量。

pdate datetime生产日期。

constraint ck_products_pnum check(pnum>=0)

create table repair --售后表。

rno char(6) primary key, -维修工编号。

rn varchar(18维修工姓名。

rtel char(15) unique --联系**。

create table customer --客户表。

cno char(6) primary key, -客户编号。

cn varchar(18) not null, -客户姓名。

ctel char(15) unique, -客户**。

pn varchar(20购买电器。

cnum smallint数量。

rtime datetime维修时间。

rstate varchar(8维修状态。

rno char(6维修工编号。

constraint ck_customer_cnum check(cnum>0),constraint ck_customer_rstate check(rstate in('待维修','正在维修','维修完成','维修失败'))

create table sale --销售表。

cno char(6客户编号。

pno char(6产品编号。

sno char(6销售编号。

saledate datetime销售时间。

snum smallint销售量。

constraint pk_sale primary key(cno,pno),constraint fk_sale_customer foreign key(cno) references customer(cno),constraint fk_sale_products foreign key(pno) references products(pno)

五、视图。创建视图。

1)创建有过维修记录的客户信息视图。

create view 有维修记录的客户信息。

asselect cno 客户编号,cn 客户姓名,ctel 客户**,rstate 维修状态,rn 维修工,rtel 维修工**。

from customer inner join repair

on where is not null

2)创建维修信息视图。

create view 维修信息。

asselect cn 客户姓名, 电器,rstate 维修状态, 维修工编号,rn 维修工。

from customer,repair

where

3)创建30天内的销售信息视图。

create view 销售信息--(30天内)

asselect 产品编号,pn 电器名,sum(snum) 总销售量 from products,sale

where and saledate between dateadd(dd,-30,getdate())and getdate()

group by

4)创建正在维修的维修工信息视图。

create view 维修工信息。

asselect 维修工编号,rn 维修工姓名,rtel 联系**,rstate 维修状态 from repair,customer

where and rstate ='正在维修'

六、存储过程。

创建存储过程。

1)创建存储过程,根据提供的参数向客户表中添加记录。

create procedure insertrecord

cno char(6),cn varchar(18),ctel char(15),pn varchar(20),cnum smallint,rtime datetime,

rstate varchar(8),rno char(6)

asinsert into customer

values(@cno,@cn,@ctel,@pn,@cnum,@rtime,@rstate,@rno)

2)创建存储过程,根据客户编号找客户信息。

create procedure search

cno char(6),cn varchar(18) output,ctel char(15) output,pn varchar(20) output,cnum smallint output

asselect @cn=cn,@ctel=ctel,@pn=pn,@cnum=cnum

from customer

where cno=@cno

3)创建存储过程,根据提供的客户名删除表中的一条客户信息。

create procedure dele(@cn varchar(18))

asdelete from customer

where cn=@cn

4)创建存储过程,根据提供的日期找出生产日期在此之前的产品信息。

create procedure proc4(@pdate datetime)

asselect pno 产品编号,pn 电器名,pnum 库存量 from products

where pdate<@pdate

七、数据库用户。

创建数据库用户。

exec sp_addlogin 'mike','1234'

exec sp_adduser 'mike','jack'

exec sp_addrolemember 'db_owner','jack'

八、触发器。

创建触发器。

1)创建触发器,要求客户表中的“购买电器”参照于商店表中的“电器名”

create trigger tr1

on customer

for insert,update

asdeclare @pn1 varchar(20),@pn2 varchar(20)

select @pn1=pn from insterd

select @pn2=pn from products

if(@pn1!=@pn2)

beginrollback

print '输入的电器名不在商店表中!'

end2)创建触发器,商店表中的库存量随销售表的销售量变化。

create trigger tr2

on sale

for insert,update

asdeclare @snum smallint

select @snum=snum from inserted

update products

set pnum=pnum-@snum

where pno=(select pno from inserted)

3)创建触发器,购买的电器的库存量为0时,打印“库存量为0,无法购买!”

create trigger tr3

on sale

for insert,update

asdeclare @pno char(6),@pnum smallint

select @pno=pno from inserted

select @pnum=pnum from products where pno=@pno

if(@pnum=0)

beginrollback

print '库存量为,无法购买!'

end4)创建触发器,不允许删除客户表中维修状态为“正在维修”或“待维修”的客户信息。

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...