汽车销售管理系统实现与维护实验报告.docx
- 文档编号:9010866
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:36
- 大小:1.19MB
汽车销售管理系统实现与维护实验报告.docx
《汽车销售管理系统实现与维护实验报告.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统实现与维护实验报告.docx(36页珍藏版)》请在冰豆网上搜索。
汽车销售管理系统实现与维护实验报告
电子科技大学
标准实验报告
(实验)课程名称数据库原理综合实验
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名:
学号:
指导教师:
蔡运娟
实验地点:
电子政务可视化再现实验室实验时间:
2017年6月4日
一、实验室名称:
二、实验项目名称:
数据库实现与维护
三、实验学时:
4
四、实验原理:
五、实验目的:
掌握数据库管理系统的安装、使用和维护;掌握在数据库管理系统中创建数据库及对数据库进行维护和数据查询的基本方法;培养动手能力。
六、实验内容:
①建库,命令方式及快捷菜单方式;
②建表,命令方式及快捷菜单方式;
③修改表结构,快捷菜单方式;
④数据关系图,快捷菜单方式
⑤数据编辑:
快捷菜单方式输入测试数据,数据的增删改命令各2句,增删改时专门测试有参照关系的表之间数据增删改的关联变化。
⑥数据的查询,查询功能及其实现(6个)
⑦创建视图,使用视图(2个)
⑧触发器建立及测试(1个)
七、实验器材(设备、元器件):
计算机、MicrosoftVisio2013软件
八、实验步骤:
建库、建表:
如果所建表属性列有参照关系时要先建有别参照关系的表、建视图、设置触发器
九、实验数据及结果分析:
1、建库:
命令语句如下(命令行占地内容较大,详情见附件1)
快捷菜单方式如下:
2、建表:
命令语句如下(见附件2)
3、修改表结构:
4、数据库关系图:
①整体数据库关系图:
②某一部分放大数据库关系图:
5、数据编辑
①所有表:
②数据的增删改命令:
a、快捷方式输入测试数据:
b、数据的增加
当插入数据到业务处理表中,外码的值事先在相应表中没有定义,但是任然可以在联系表中插入数据。
如示例中,在订单结算表中插入’pi00000008’,’sp00000001’,’c0001’,但是’pi0000000008’在支付通知单中没有相应记录,但是插入操作仍可执行。
(触发器?
)
c、数据的修改
当修改列数据为另一个表的外键时会提示错误信息,如在订单结算业务逻辑中供应商号和出纳员编号是当前表的外键,当修改操作设计以上两个属性列时就会出现错误信息:
当修改操作为涉及到主键时就不会弹出错误信息,但是所修改项也不会变,例如当前订单结算表中数据为如下所示
当在支付通知单表中把支付通知单号pi00000001改为pi00000007时,虽然支付通知单表内的数据项会更改,但是订单结算业务表中支付通知单号还为原来的pi00000001.(要用触发器?
)
d、数据的删除:
同样,当试图删除出纳员时,因为出纳员编号作为订单结算外键的存在,不能成功删除,弹出错误信息:
在试图删除支付通知单号为’pi00000001’的支付通知单时,虽然成功删除了指定支付通知单内容,但是在订单结算业务中,关于’pi00000001’的记录仍然存在:
6、数据的查询:
①查询所有供应商信息:
②查询供应商信息及该供应商仓库存货信息:
③查询拥有仓库数量>3个的供应商号:
④按库存递增顺序查询所有供应商仓库库存信息
⑤查询供应商号为’sp00000001’的供应商已存在的订单结算业务细节:
⑥查询仓库号为’wh00000001’的仓库历史入库记录:
7、创建视图,使用视图
①供应商基本信息及对应存货信息视图:
视图的创建:
视图的查询:
②汽车经销商经理合同查询视图:
8、触发器建立及测试
①触发器设置:
该触发器设置到入库单表上,当有插入操作时响应触发器,触发器首先判断插入的入库单涉及到的仓库号和入库车辆名称是否在仓库存货信息中存在对应记录。
如果存在,则把入库车辆数累加到车辆名称对应的库存数量上;如果不存在,就新插入一条记录到仓库存货信息表中。
(触发器代码见附件3)
②触发器测试:
a、插入一条已经在仓库存货信息表中有记录的车辆信息:
插入前:
插入命令:
插入后:
b、插入一条之前在仓库存货信息表中没有记录的车辆信息:
插入命令:
插入后:
9、分离和附加数据库:
①分离:
②附加:
十、实验结论:
本次实验完成了汽车销售管理系统数据库的建立,包括41个表的创建、2个视图的创建以及1个触发器的设置。
当前数据库能够完成表的增删改操作及基本的查询操作。
十一、总结及心得体会:
随着这次实验接近尾声,汽车销售管理系统数据库的功能实现大体完成,因为时间有限,在数据库实现阶段只创建了两个视图和一个触发器,在数据库的物理设计阶段也没有建索引等更多的内容。
没有更加完整的完成这次实验也算一个遗憾。
通过这次实验,掌握了设计数据库的整体流程,从需求分析到概念设计再到逻辑设计,到最后的数据库实现,差不多每一步都花费了很多时间去完成.其中需求分析阶段在我看来是最花费时间同时也是最需要引起注意的一步,它不仅在前期需要投入很多的精力去调查研究,而且随着数据库设计的进行阶段,还需要不断的对需求分析得出的表、字典进行更新修改。
最后的数据库实现阶段一定是最有成就感的,因为经过了前期那么多的努力终于把数据库建好同时一些简单的功能也都可以实现了。
总体来说通过这学期这门课程的学习,自己能够更好的把理论上学到的东西用在实际的项目中,在整个过程中锻炼了自己快速查阅信息和快速学习的能力。
十二、对本实验过程及方法、手段的改进建议:
在本次实验中设置触发器那一步需要用到一些SQL语句,有很多都是没有学过的,常常有想法但是不知道怎么用SQL语言实现。
所以建议老师以后在上数据库理论课的时候适当加一些SQL语言编程的部分。
报告评分:
指导教师签字:
附件一(T-SQL语句建数据库):
createdatabasejx_database
onprimary
(name=jinx,
filename='D:
\jx_database\jinx.mdf',
size=1024mb,
maxsize=2048mb,
filegrowth=50mb)
logon
(name=jinx_log,
filename='D:
\jx_database\jinx_log.ldf',
size=512mb,
maxsize=1024mb,
filegrowth=50mb)
附件二(T-SQL语句建表):
usecarsale
go
createtable汽车经销商
(汽车经销商号char(10)primarykeycheck(汽车经销商号like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
汽车经销商名称nchar(50)notnull,
汽车经销商联系电话char(11)notnullcheck(汽车经销商联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
汽车经销商地址nchar(100)notnull)
go
usecarsale
go
createtable客户
(客户号char(10)primarykeycheck(客户号like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
客户姓名nchar(8)notnull,
性别nchar
(2)check(性别='男'or性别='女')default'男',
年龄intnotnullcheck(年龄>0and年龄<100),
客户地址nchar(100),
客户联系电话char(11)notnullcheck(客户联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable车辆
(发动机编号char(17)primarykey,
车辆名称nchar(50)notnull,
车辆售价floatnotnullcheck(车辆售价>0and车辆售价<100000000),
车辆类型nchar(20)notnull)
go
usecarsale
go
createtable供应商
(供应商号char(10)primarykeycheck(供应商号like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
供应商名称nchar(50)notnull,
供应商联系电话char(11)notnullcheck(供应商联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
供应商地址nchar(100)notnull,
货源信息textnotnull)
go
usecarsale
go
createtable市场专员
(市场专员编号char(5)primarykeycheck(市场专员编号like's[0-9][0-9][0-9][0-9]'),
市场专员联系电话char(11)notnullcheck(市场专员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable采购员
(采购员编号char(5)primarykeycheck(采购员编号like'b[0-9][0-9][0-9][0-9]'),
采购员联系电话char(11)notnullcheck(采购员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable销售顾问
(销售顾问编号char(5)primarykeycheck(销售顾问编号like'sc[0-9][0-9][0-9]'),
销售顾问联系电话char(11)notnullcheck(销售顾问联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
usecarsale
go
createtable出纳员
(出纳员编号char(5)primarykeycheck(出纳员编号like'c[0-9][0-9][0-9][0-9]'),
出纳员联系电话char(11)notnullcheck(出纳员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
usecarsale
go
createtable会计员
(会计员编号char(5)primarykeycheck(会计员编号like'a[0-9][0-9][0-9][0-9]'),
会计员联系电话char(11)notnullcheck(会计员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable库存管理员
(库存管理员编号char(5)primarykeycheck(库存管理员编号like'wh2[0-9][0-9]'),
库存管理员联系电话char(11)notnullcheck(库存管理员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable出入库管理员
(出入库管理员编号char(5)primarykeycheck(出入库管理员编号like'wh2[0-9][0-9]'),
出入库管理员联系电话char(11)notnullcheck(出入库管理员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable售后员
(售后员编号char(5)primarykeycheck(售后员编号like'asc[0-9][0-9]'),
售后员联系电话char(11)notnullcheck(售后员联系电话like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
usecarsale
go
createtable仓库
(仓库号char(10)primarykeycheck(仓库号like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
仓库存货信息text)
go
usecarsale
go
createtable采购数据单
(采购数据单号char(10)primarykeycheck(采购数据单号like'pc[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
采购数据单日期smalldatetimenotnull,
采购数据单内容text)
go
usecarsale
go
createtable库存预警单
(库存预警单号char(10)primarykeycheck(库存预警单号like'sw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
库存预警单日期smalldatetime,
库存预警单内容text)
go
usecarsale
go
createtable车辆订购单
(车辆订购单号char(10)check(车辆订购单号like'od[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
采购员编号char(5)check(采购员编号like'b[0-9][0-9][0-9][0-9]'),
供应商号char(10)check(供应商号like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
订购日期smalldatetime,
订购车型nchar(50)notnull,
订购车辆数smallintcheck(订购车辆数between0and32767),
订购金额floatcheck(订购金额between0.0and100000000.0),
primarykey(车辆订购单号),
foreignkey(采购员编号)references采购员(采购员编号),
foreignkey(供应商号)references供应商(供应商号))
go
usecarsale
go
createtable货物清单
(货物清单号char(10)check(货物清单号like'gl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
供应商号char(10)check(供应商号like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
汽车经销商号char(10)check(汽车经销商号like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
发货日期smalldatetime,
发货车型nchar(50)notnull,
发货车辆数smallintcheck(发货车辆数between0and32767)
primarykey(货物清单号),
foreignkey(供应商号)references供应商(供应商号),
foreignkey(汽车经销商号)references汽车经销商(汽车经销商号))
go
usecarsale
go
createtable入库单
(入库单号char(10)check(入库单号like'iw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
仓库号char(10)check(仓库号like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
入库单日期smalldatetime,
入库车型nchar(50)notnull,
入库车辆数smallintcheck(入库车辆数between0and32767),
primarykey(入库单号),
foreignkey(仓库号)references仓库(仓库号))
go
usecarsale
go
createtable出库单
(出库单号char(10)check(出库单号like'ow[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
仓库号char(10)check(仓库号like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
客户号char(10)check(客户号like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
出库单日期smalldatetime,
出库车型nchar(50)notnull,
出库车辆数smallintcheck(出库车辆数between0and32767),
primarykey(出库单号),
foreignkey(仓库号)references仓库(仓库号),
foreignkey(客户号)references客户(客户号))
go
usecarsale
go
createtable支付通知单
(支付通知单号char(10)check(支付通知单号like'pi[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
供应商号char(10)check(供应商号like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
汽车经销商号char(10)check(汽车经销商号like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
支付通知单明细text,
支付订单金额floatcheck(支付订单金额between0.0and100000000.0),
primarykey(支付通知单号),
foreignkey(供应商号)references供应商(供应商号),
foreignkey(汽车经销商号)references汽车经销商(汽车经销商号))
go
usecarsale
go
createtable合同
(合同号char(10)check(合同号like'sl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
客户号char(10)check(客户号like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
销售顾问编号char(5)check(销售顾问编号like's[0-9][0-9][0-9][0-9]'),
销售日期smalldatetimenotnull,
发动机编号char(17)notnull,
销售车型nchar(50)notnull,
销售车辆数smallintcheck(销售车辆数between0and32767),
销售金额floatcheck(销售金额between0.0and100000000.0),
primarykey(合同号),
foreignkey(客户号)references客户(客户号),
foreignkey(销售顾问编号)references销售顾问(销售顾问编号),
foreignkey(发动机编号)references车辆(发动机编号))
go
usecarsale
go
createtable客户评价单
(客户评价单号char(10)primarykeycheck(客户评价单号like'el[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
客户满意度smallintnotnullcheck(客户满意度between0and100),
客户建议text)
go
usecarsale
go
createtable发票
(发票号char(10)primarykeycheck(发票号like'rcp[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
发票日期smalldatetimenotnull,
汽车经销商号char(10)check(汽车经销商号like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
客户号char(10)check(客户号like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
发票内容textnotnull,
foreignkey(汽车经销商号)references汽车经销商(汽车经销商号),
foreignkey(客户号)references客户(客户号))
go
usecarsale
go
createtable收据
(收据号char(10)primarykeycheck(收据号like'acq[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
收据日期smalldatetimenotnull,
供应商号char(10)check(供应商号like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
汽车经销商号char(10)check(汽车经销商号like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
收据内容textnotnull,
foreignkey(供应商号)references供应商(供应商号),
foreignkey(汽车经销商号)references汽车经销商(汽车经销商号))
go
/*usecarsale
go
createtable库存检查
(库存预警单号char(10)pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 销售 管理 系统 实现 维护 实验 报告