数据库原理及应用报告.docx
《数据库原理及应用报告.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用报告.docx(16页珍藏版)》请在冰豆网上搜索。
![数据库原理及应用报告.docx](https://file1.bdocx.com/fileroot1/2022-11/27/66612cb8-d896-4cfc-a2f9-df620b42a312/66612cb8-d896-4cfc-a2f9-df620b42a3121.gif)
数据库原理及应用报告
实验报告
实验课程:
数据库原理及应用课程设计
实验内容:
汽车销售管理系统
院系:
专业:
班级:
学生姓名:
学号:
、
指导教师:
2019年1月3日
一、实验目的和要求
1)及格标准:
根据课题指定的内容分析提炼出实体和联系及其属
性,画出实体联系图,实体数量不能少于5个,将优化后的实
体联系图转化为关系模式,给出验证和说明数据库范式满足
3NF,在SQLServer2008上创建数据库,定义各个表的主键和
外键,自行定义一些索引,自行录入部分合理数据,创建一个
登录名和数据库账号,并赋予相应的数据库操作权限。
2)良好标准:
满足及格标准,在此基础上,给出三个以上查询,
一个触发器设计并验证。
3)优秀标准:
在良好标准基础上,自行设计一个简单的T-SQL程
序,并运行执行。
4)可选标准(可代替优秀标准):
在及格标准基础上,应用背景
知识,构建web数据库的体系架构,包括:
tomcatweb服务
器,java的开发平台eclipse;在eclipse平台上创建基于JSP的
数据系统前端程序,应用JDBC连接后台数据库,在浏览器页
面上显示连接数据库成功。
二、实验内容
1、总体介绍
汽车销售管理系统共分五大功能。
基础信息管理用于对车辆、厂
商及客户信息的管理;采购信息管理用于对于车辆的采购、入库和维
护;销售信息管理用于车辆的销售和维护;信息查询统计用于对采购
单、销售单、库存信息等的查询和一定时间内收益、销售、库存的情
况的统计;系统维护用于用户的维护及用户权限的设置等。
2、相关功能模块的数据流图如下,学生可合理扩展功能。
图4汽车销售管理的总体数据流图
图5基本信息管理数据流图
图6车辆销售数据流图
其它模块数据流图需要的话,请同学们自行添加。
3、同学们可由子功能模块出发,也可由总体功能出发,设计相应
的数据格式,给出ER图,转换为关系,优化后,设计数据库
三、ER图
用户信息(用户编号,年龄,姓名,性别,联系方式)
车辆信息表(车辆类型,生产日期,颜色,单价)
销售单(销售单号,销售数量,总金额,销售日期,经办人)
销售信息(销售编号,销售单号,车辆类型,数量,售价,销售总金额)
库存信息(车辆类型,库存信息编号,车辆数量)
采购单(采购编号,车辆类型,入库单号,数量,进价,采购总金额)
厂商(厂商编号,生产型号,厂商名,地址)
用户编号→(年龄,姓名,性别,联系方式)
车辆类型→(生产日期,颜色,单价)
销售单号→(销售数量,总金额,销售日期,经办人)
销售编号→(销售单号,车辆类型,数量,售价,销售总金额)
库存信息编号→(车辆类型,车辆数量)
采购编号→(车辆类型,入库单号,数量,进价,采购总金额)
厂商编号→(生产型号,厂商名,地址)
四、实验过程和结果截图
createtable销售单/***********销售单表************/
(销售单号varchar(20)primarykeynotnull,
销售数量intnotnull,
总金额numeric(10,2)notnull,
销售日期datetimenotnull,
经办人varchar(20)notnull
)
insert销售单/**********插入数据**********/
values('2016004068','1','1546545','2018/8/21','张扬')
insert销售单
values('201600406','2','943545','2018/9/22','张飒')
insert销售单
values('2016015118','1','446545','2018/11/11','李虹')
insert销售单
values('2016145108','3','1548565','2018/12/21','李丽')
/**********************************************************************************/
createtable车辆信息表/***********车辆信息表************/
(车辆类型varchar(20)primarykeynotnull,
颜色varchar(20)notnull,
单价numeric(10,2)notnull,
生产日期datetime
)
insert车辆信息表/**********插入数据**********/
values('宝马X1','红','265456','2016/07/28')
insert车辆信息表
values('宝马X3','黑','285456','2016/08/28')
insert车辆信息表
values('宝马X5','黑','378456','2016/09/28')
insert车辆信息表
values('奔驰S320','红','375456','2016/06/28')
insert车辆信息表
values('奔驰S330','黑','395456','2016/09/28')
/********************************************************************************/
createtable销售信息/***********销售信息表************/
(销售编号varchar(20)primarykeynotnull,
销售单号varchar(20)notnull,
车辆类型varchar(20)notnull,
数量intnotnull,
售价numeric(10,2)notnull,
销售总金额numeric(10,2)notnull
)
insert销售信息/**********插入数据**********/
values('516515','2016004068','宝马X1','1','265456','265456')
insert销售信息
values('516516','201600406','宝马X3','2','285456','570912')
insert销售信息
values('516517','2016015118','宝马X5','1','378456','378456')
insert销售信息
values('516518','2016145108','奔驰S320','3','375456','1126368')
/********************************************************************************/
createtable采购单/***********采购单************/
(采购编号varchar(20)primarykeynotnull,
车辆类型varchar(20)notnull,
/*入库单号varchar(20)notnull,*/
数量intnotnull,
进价numeric(10,2)notnull,
采购总金额numeric(15,2)notnull
)
insert采购单/**********插入数据**********/
values('54651','宝马X1','4','205456','8021824')
insert采购单
values('54652','宝马X3','2','215456','430912')
insert采购单
values('54653','宝马X5','1','278456','278456')
insert采购单
values('54654','奔驰S320','3','280000','840000')
/********************************************************************************/
createtable厂商/***********厂商************/
(厂商编号varchar(20)primarykeynotnull,
生产型号varchar(20)notnull,
厂商名varchar(20)notnull,
地址varchar(20)notnull
)
insert厂商/**********插入数据**********/
values('54161','宝马X1','afuha','广西')
insert厂商
values('156561','宝马X3','asda','广东')
insert厂商
values('54611','宝马X5','sdads','珠海')
insert厂商
values('489414','奔驰S320','sadsad','杭州')
insert厂商
values('1614151','奔驰S330','gdfsd','株洲')
/********************************************************************************/
createtable库存信息/***********库存信息表************/
(库存信息编号varchar(20)primarykeynotnull,
车辆类型varchar(20)notnull,
库存数量intnotnull
)
insert库存信息/**********插入数据**********/
values('5161','宝马X1','3')
insert库存信息
values('16561','宝马X3','0')
insert库存信息
values('5611','宝马X5','1')
insert库存信息
values('48914','奔驰S320','2')
insert库存信息
values('16151','奔驰S330','2')
/********************************************************************************/
createtable用户信息/************用户信息表****************/
(用户编号varchar(20)primarykeynotnull,
姓名varchar(20)notnull,
年龄integercheck(年龄between1and130),
性别nchar
(2)check(性别in('男','女')),
联系方式varchar(20)notnull
)
insert用户信息/**********插入数据**********/
values('15525','张斌','29','男','1651561165')
insert用户信息
values('511221','赵虹','28','女','1849841165')
insert用户信息
values('12252','赵勇','34','男','1891561165')
insert用户信息
values('45621','李铭','35','男','1761561165')
/********************************************************************************/
createtrigger更新库存/***************触发器:
更新库存***************/
on采购单/*插入新的采购单后更新库存*/
forinsert
as
declare@amountvarchar(20)
select@amount=数量
frominserted
update库存信息
set库存数量=库存数量+@amount
where车辆类型=(select车辆类型frominserted)
/********************************************************************************/
createtrigger库存更新/**************触发器:
库存更新***************/
on销售信息/*插入新的销售信息后更新库存*/
forinsert
as
declare@amount2varchar(20)
select@amount2=数量
frominserted
update库存信息
set库存数量=库存数量-@amount2
where车辆类型=(select车辆类型frominserted)
/********************************************************************************/
insert/***********增添销售信息***************/
into销售信息
values('156151','154161511','奔驰S330','1','280000','280000')
delete/***********删除销售信息***************/
from销售信息
where销售编号='156151'
insert采购单/***********添加采购单**********/
values('54658','奔驰S320','2','280000','560000')
delete/***********删除采购单**********/
from采购单
where采购编号='54658'
/********************************************************************************/
select车辆信息表.车辆类型,颜色,单价,库存数量/***********查询价格大于且库存大于***************/
from库存信息,车辆信息表
where单价>280000and库存数量>2and车辆信息表.车辆类型=库存信息.车辆类型
orderby单价desc
select车辆信息表.车辆类型,颜色,单价,库存数量/***********查询宝马X5的信息**********/
from车辆信息表,库存信息
where车辆信息表.车辆类型='宝马X5'and车辆信息表.车辆类型=库存信息.车辆类型
and库存信息.车辆类型='宝马X5'
select车辆信息表.车辆类型,颜色,单价,库存数量/********查询价格比宝马X3贵的车辆信息**********/
from库存信息,车辆信息表
where单价>(select单价from车辆信息表where车辆类型='宝马X3')and
车辆信息表.车辆类型=库存信息.车辆类型
orderby单价desc
/********************************************************************************/
createview车辆信息视图/***********车辆管理视图**********/
as
select车辆信息表.车辆类型,单价,颜色,库存数量
from车辆信息表,库存信息
where车辆信息表.车辆类型=库存信息.车辆类型
createview销售信息视图/***********销售信息视图**********/
as
select*
from销售信息
createview库存信息视图/***********库存信息视图**********/
as
select*
from库存信息
createview采购单视图/***********采购单视图***********/
as
select*
from采购单
createview用户信息视图/***********用户信息视图**********/
as
select*
from用户信息
/********************************************************************************/
createprocedure用户信息查询/***********用户信息存储**********/
@姓名varchar(20)
as
select*
from用户信息视图
where@姓名=姓名
exec用户信息查询'赵虹'/******用存储过程查询赵虹的信息******/
createprocedure车辆信息查询/***********车辆信息查询存储**********/
@车辆类型varchar(20)
as
select*
from车辆信息表
where@车辆类型=车辆类型
exec车辆信息查询'宝马X3'/******用存储过程查询宝马X3的信息******/
createprocedure车辆信息增添/***********车辆信息增添存储**********/
(@车辆类型varchar(20),
@颜色varchar(20),
@单价numeric(10,2),
@生产日期datetime)
as
insertinto车辆信息表
(车辆类型,颜色,单价,生产日期)
values(@车辆类型,@颜色,@单价,@生产日期)
/********************************************************************************/
execsp_addlogin'zhaojun','123456','汽车销售系统'/******建立登录名zhaojun,密码为***/
execsp_grantdbaccess'zhaojun','zjx'/*******在登录名zhaojun中创建用户zjx*********/
grantselecton车辆信息表tozjx/*******授予用户zjx拥有车辆信息表的select权限*********/
execsp_addrole'ying'/*******添加数据库角色*********/
execsp_addrolemember'ying','zjx'/*******添加角色为ying的成员zjx****/
/********************************************************************************/