3F 汽车销售信息管理系统.docx
- 文档编号:3779170
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:17
- 大小:215.19KB
3F 汽车销售信息管理系统.docx
《3F 汽车销售信息管理系统.docx》由会员分享,可在线阅读,更多相关《3F 汽车销售信息管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
3F汽车销售信息管理系统
目录
一、需求分析1
1.1 业务描述1
1.2 数据分析1
1.3人员分工2
二、概念模型设计2
三、逻辑模型设计3
3.1关系模型:
3
3.2规范化分析3
3.3视图设计4
四、物理设计4
4.1表汇总4
4.2索引的设计5
五.物理实现5
5.1基本表的创建6
5.2视图的创建6
5.3存储过程、函数及触发器的设计6
5.4基本查询7
5.5数据更新7
六、安全性设计7
6.1防止用户直接操作数据库的方法7
6.2角色与权限7
七、系统特点与不足8
7.1优点8
7.2需进一步改进的地方8
八、总结8
8.1课程设计主要问题及解决办法8
8.2收获与建议8
一、需求分析
1.1业务描述
1、某汽车销售信息管理系统需要如下信息:
轿车信息:
轿车编号、型号、颜色、生产厂家、出厂日期、生产价格等。
员工信息:
员工编号、姓名、性别、年龄、籍贯、学历等。
客户信息:
客户名称、身份证号、联系方式、地址等。
销售信息:
销售日期、销售数量、销售价格等
要求:
一辆轿车只有一个编号,一个编号只能表示一辆轿车。
一辆轿车可以有多种型号,轿车可以根据型号有多种颜色。
一辆轿车只有一个生产厂家,一个生产厂家可以有多种型号轿车。
一个轿车只有一个出厂日期,一个出厂日期可以有多种型号轿车。
一个轿车有一个价格,一个生产价格可以有多种汽车。
一个员工可以有多个客户,一个客户只有一个员工。
2、系统功能的基本要求:
按照一定条件查询、统计符合条件的轿车、员工、客户、销售信息等。
例如轿车出厂日期型号颜色、客户购车信息、汽车销售历史等,能够模拟完成汽车销售查询业务。
1.2数据分析
1、数据项分析:
数据项
含义
类型
长度
备注
Car_no
轿车编号
varchar
10
Car_type
轿车型号
varchar
10
Car_color
轿车颜色
char
4
Car_factory
生产厂家
varchar
40
Car_time
出厂日期
time
Car_price
生产价格
money
Staff_no
员工编号
varchar
10
Staff_name
员工姓名
varchar
10
Staff_sex
员工性别
char
2
Staff_age
员工年龄
smallint
Staff_from
员工籍贯
char
2
Staff_edu
员工学历
char
6
Client_name
客户姓名
varchar
10
Client_ID
身份证号
char
18
Client_tel
客户电话
char
12
Client_address
客户地址
varchar
40
Sell_time
销售日期
time
Sell_num
销售数量
int
Sell_price
销售价格
int
10
2、 数据结构分析:
数据结构
组成成员
轿车
汽车编号+型号+颜色+生产厂家+出厂日期+生产价格
员工
员工编号+姓名+性别+年龄+籍贯+学历
客户
客户姓名+身份证号+客户电话+地址
1.3人员分工
尹宇森:
物理设计,物理实现,安全性设计。
杨涛:
需求分析,概念模型设计,逻辑模型设计,系统特点与不足,总结。
二、概念模型设计
E-R图,如图1所示。
图1基本ER图
2、用PowerDesigner绘制图1所示ER图对应的ConcepturalDataModal,如图2所示。
图2CDM图
三、逻辑模型设计
3.1关系模型:
轿车(汽车编号(PK),型号,颜色,生产厂家,出厂日期,生产价格)
员工(员工编号(PK),姓名,性别,年龄,籍贯,学历)
客户(客户姓名(PK),身份证号,联系方式,地址)
销售(编号(PK),汽车编号,客户身份证号,员工编号,销售日期,销售数量,销售价格)
3.2规范化分析
1、 轿车关系中轿车编号为主键,其中函数依赖有:
轿车编号→型号, 轿车编号→颜色,轿车编号 →生产厂家 ,轿车编号→出厂日期,轿车编号→价格,因为在轿车关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以轿车关系是属于3NF。
2、客户关系中身份证号可作为主键,在此选用客户身份证号为主键。
其中函数依赖有:
身份证号→客户名称,身份证号→联系方式,身份证号→地址,因为客户关系中不存在非主属性对码的部分函数依赖和传递函数依赖关系,所以客户关系是属于3NF。
3、员工关系中员工编号为主键,其中函数依赖有:
员工编号→姓名,员工编号→性别,员工编号→年龄,员工编号→籍贯,员工编号→学历,因为员工关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以业务员关系是属于3NF。
4、轿车销售关系中(轿车编号,员工编号,身份证号,销售日期)作为主键,是一个全码关系,为便于管理,在关系中增加编号属性作为该关系的码。
3.3视图设计
CreateviewviewCar_As
Select轿车编号=Car_no,轿车型号=Car_type,轿车颜色=Car_color,生产厂家=Car_factory,出厂日期=Car_time,出厂价格数=Car_price;
CreateviewviewStaff_as
Select员工编号=Staff_no,员工姓名=Staff_name,员工性别=Staff_sex,员工年龄=Staff_age,员工籍贯=Staff_from,员工学历=Staff_edu;
CreateviewviewClient_as
Select客户姓名Client_name,身份证号=Client_ID,客户电话=Client_tel,客户地址=Client_address;
create view view_ticket as
Select轿车编号=Car_no,销售日期=Sell_time,身份证号=Client_ID,员工编号=Staff_name,销售价格=Sell_time,销售数量=Sell_num,编号=Sell_no;
四、物理设计
4.1表汇总
数据库中涉及的表
表名
对应关系
说明
Tbl_car
轿车
Tbl_staff
员工
Tbl_client
客户
Tbl_sales
销售
Tbl_car表
数据项
含义
类型
长度
备注
Car_no
轿车编号
varchar
10
主键
Car_type
轿车型号
varchar
10
不为空
Car_color
轿车颜色
char
4
不为空
Car_factory
生产厂家
varchar
40
不为空
Car_time
出厂时间
datetime
不为空
Car_price
轿车价格
money
不为空
Tbl_staff表
数据项
含义
类型
长度
备注
Staff_no
员工编号
varchar
10
主键
Staff_name
员工姓名
varchar
10
不为空
Staff_sex
员工性别
char
2
不为空
Staff_age
员工年龄
smallint
不为空
Staff_from
员工籍贯
varchar
10
Staff_edu
员工学历.
char
6
Tbl_client表
数据项
含义
类型
长度
备注
Client_name
客户姓名
varchar
10
不为空
Client_ID
身份证号
char
18
主键
Client_tel
客户电话
char
12
不为空
Client_address
客户地址
varchar
40
不为空
Tbl_sell表
数据项
含义
类型
长度
备注
Car_no
轿车编号
varchar
10
不为空
Sell_time
销售日期
datetime
不为空
Client_ID
身份证号
char
18
不为空
Staff_no
员工编号
varchar
10
不为空
Sell_price
销售价格
int
不为空
Sell_num
销售数量
int
不为空
Sell_no
编号
int
主键
五.物理实现
5.1基本表的创建
(具体系统内截图)
写入数据:
轿车:
客户与员工:
5.2视图的创建
1. 建立品牌为大众的视图:
createview汽车品牌
AS
SELECTCar_no,Car_color,Car_factory,Car_time,Car_price
FROMTbl_Car
WHERECar_typelike'大众%'
2.建立将要退休的员工视图:
createview退休员工
AS
SELECTStaff_no,Staff_name,Staff_from,Staff_edu
FROMTbl_Staff
WHEREStaff_age>=54
5.3存储过程、函数及触发器的设计
1.触发器:
轿车的价格不得低于十五万,低于自动改为十五万。
CREATETRIGGERtri_job_salary1
ONTbl_CarFORINSERT,UPDATE
as
IFEXISTS(SELECT*FROMINSERTED
WHERECar_price<150000)
BEGIN
PRINT'轿车价格必须大于等于150000'
ROLLBACK
END
2.函数:
创建一个用户自定义函数,用于输出同一个厂家的轿车信息
createfunctionCar_factory(@所属厂家varchar(30))
returnstable
return(select*fromTbl_carwhereCar_factory=@所属厂家)
函数执行:
select*fromCar_factory('上海大众厂')
3.存储过程:
查询轿车的品牌信息
createprocpro_car@brandvarchar(10)
as
if((selectCar_typefromTbl_car)=@brand)select*fromTbl_carwhereCar_type=@brand
else
print'没有该品牌或者输入错误'
--dropprocpro_staffexecpro_staff'大众'
存储过程:
查询员工的姓名信息
createprocpro_staff@namevarchar(10)
as
if((selectstaff_namefromTbl_staff)=@name)select*fromTbl_staffwherestaff_name=@name
else
print'没有该人员或者输入错误'
--dropprocpro_staffexecpro_staff'何千华'
5.4基本查询
1.select*
fromTbl_Car
2.selectClient_name,Client_ID
fromTbl_Client
3.selectStaff_name,Staff_age
fromTbl_Staff
orderbyStaff_ageasc
4.selectStaff_name,Staff_age,Staff_from
fromTbl_Staff
orderbyStaff_agedesc
5.selectStaff_name,2015-Staff_age
fromTbl_Staff
6.select*
fromTbl_Staff
whereStaff_sex='女'
7.selectClient_name,Client_tel
fromTbl_Client,Tbl_Sell
whereTbl_Client.Client_ID=Tbl_Sell.Client_ID
8.selectStaff_name,Staff_age
fromTbl_Staff,Tbl_Sell
whereTbl_Staff.Staff_no=Tbl_Sell.Staff_no
9.selectCar_type,Car_factory
fromTbl_Car,Tbl_Sell
whereTbl_Car.Car_no=Tbl_Sell.Car_no
10.selectsum(Car_price)as汽车总进价
fromTbl_Car
5.5数据更新
1.插入数据:
insert
intoTbl_Car(Car_no,Car_type,Car_color,Car_factory,Car_time,Car_price)
values('021','丰田A1','黑色','日本厂','2015-8-9',800000000)
2.更新数据:
updateTbl_Staff
setStaff_age=27
whereStaff_no='A001'
3.删除数据:
updateTbl_Staff
setStaff_age=27
whereStaff_no='A001'
六、安全性设计
6.1防止用户直接操作数据库的方法
用户只能用帐号登陆到应用软件,通过应用软件访问数据库,不能通过其他途径操作数据库。
6.2角色与权限
角色
可以访问的表与列 操作权限
管理员
可访问所有表 完全控制权限 可访问所有的试图 完全控制 可使用所有的存储过程
完全控制
角色B
可访问轿车表、客户表 查看轿车表、修改客户表 可访问轿车视图、客户视图 查看轿车视图、修改客户视图
可使用预定、退订存储过程
执行
创建登陆名 USE master
CREATE LOGIN yangtao WITH PASSWORD='5011213523' --将yangtao用户映射到登录名
USE 汽车销售信息管理系统 CREATE USER yangtao FOR LOGIN yangtao --将用户yangtao设置为db_owner身份 USE 汽车销售信息管理系统
EXEC sp_addrolemember 'db_owner', 'yangtao' USE 汽车销售信息管理系统
--创建角色B
CREATE ROLE B AUTHORIZATION guest
--授予角色B查看轿车视图的权限
GRANT select ON 汽车品牌 TO B
--授予角色B查看客户视图的权限
GRANT select ON 退休员工 TO B
--授予角色B修改客户视图的权限
GRANT ALTER ON 退休员工 TO B
--授予角色B查看客户表的权限
GRANT select ON Tbl_client TO B
--授予角色B修改客户表的权限
GRANT ALTER ON Tbl_client TO B
--授予角色B查看轿车表的权限
GRANT select ON Tbl_carTOB
七、系统特点与不足
7.1优点
随着企业间竞争的日益加强,企业在管理方面出现分散的、不连贯的客户信息使企业管理者或企业相关人员无法看到客户的全部资料及相关资料,信息的分散使得产生的结果也无法保持一致和完整,而随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们深刻认识。
它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机的一部分,使用计算机对汽车销售信息进行管理,具有手工管理所无法比拟的优点。
例如,检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等。
这些优点能够极大地提高汽车销售管理的效率,也使得企业可以进行科学化,正规化管理,这是与世界接轨的重要条件,并且本系统又运用了先进的计算处理方式,使该系统具有了功能非常强大的数据处理和综合查询统计功能,大大减少了人力资源,增加了信息分析的准确性。
作为销售管理系统,可以对商品进行查询,浏览,入库出库,对提高工作效率有重要意义。
本系统还具有良好的灵活性、开放性。
7.2需进一步改进的地方
对于内部的查询信息还不够完善,在有些信息没有能够表达出来,对于触发器的应用还不是很熟悉,在系统内没有将加密,用户名及密码用运用进去。
八、总结
8.1课程设计主要问题及解决办法
在设计过程中一开始关系比较模糊,后来小组一起从头梳理,理出了轿车,员工,客户以及销售之间的关系;在设计过程中还遇到了触发器的应用,在触发器的设计不知道该如何去做,上课时没有能够理解触发器的应用,后来经过查书以及上网查资料和咨询同学,解决了这一问题。
在建表的过程中,对于数据属性以及数据类型存在了一些疑问,后来经过查书以及上网解决了这一问题。
8.2收获与建议
有关于数据库实验的心得体会,总的来说,受益匪浅。
在这些天中,我们学到了很多东西,包括建表,导入数据,查询,插入。
最重要的是我们有机会用电脑自己进行实践,没接触的时候总是觉得它比较深奥或是不可接近的新型语言,尽管自己对C语言非常感兴趣,但还是有些心理上的陌生感。
学习数据库就和我们平时的其它科目学习一样感觉它有永无止境的知识,数据库是我在高中时候听过,到了大学渐渐了解了些,但就其原理性的内容还不知道,也就是根本就不清楚什么是数据库,只是知道一个所谓的中国字典里的名词。
我认识它是我接触实验运作开始的,刚开始就是建立数据库,两种验证模式,没什么东西但还觉得不错。
进而就是操作语言了,紧接着就是触发器的使用,进而对数据库高级的使用,等等。
开始知道数据库的时候想学,不知道从何而起,不懂的话怎么问,从什么地方学起。
后来到大三开学后有数据库原理必修课,非常高兴。
当时感觉SQL Sever数据库管理既然是单
独一门课程一定会讲的比较细,也能学到真正实用的内容。
学了这门课以后发现和我想的基
本是一样的,老师对学生也比较和蔼可亲,对我们要求也不是很紧。
让每个人都觉得轻轻松
松就能把这门课程学完,没有多么紧张的作业,也没有太苛刻的要求。
当老师在最后说这个课程结束了,回顾一下以前老师给我们讲过的东西,真的有很多是我们应该去注意的。
学习完SQL Sever数据库后感觉可分两大块,一块是开发,一块是管理。
开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。
有点类似于程序员。
开发还需要有较强的逻辑思维和创造能力,自己没有真正做过,但感觉应该会比较辛苦,是青春饭;管理则需要对SQL Sever数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会弄掉整个数据库,相对前者来说,后者更看重经验。
这些东西都是从老师哪里和朋友的讨论中得到的心得,也希望其他朋友能多多向老师和朋友请教,如果是个人单独靠自己来完成一个完美的数据库我觉得比较困难,现在基本上都是团队类型的,而且他们的效率高开发的周期也快。
由于数据库管理的责任重大,很少公司愿意请一个刚刚接触SQL Sever的人去管理数据库。
对于我们这些初出茅庐的新手而且软件的专业,个人认为可以先选择做管理,有一定经验后转型,去做数据库的开发。
当然,这个还是要看人个的实际情况来定。
对于学习SQL Server数据库从网络上找资料我认为是比较好的,现在的网络又这么的发达应该去充分利用。
这里有SQL Server的各种版本的数据库、应用工具和权威的官方文档。
虽然我是个新手,但是常到哪些相关的数据库论坛或是网站觉得每次的收获都不小,网络对我来说可是个重要的东西,除了SQL Server数据库对于其它的一些电脑知识都从网络里学习了不少,我常用的一个搜索网站就是大家都熟悉的XX了。
以前没接触过它,现在认识了它才知道SQL Server的体系很庞大,要学习它,首先要了解的SQL Server框架。
它有物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成),逻辑结构(表空间、段、区、块),内存分配(SGA和PGA)算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写,后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程),SCN(System Change Number)。
这些东西感觉都比较专业,我对它们也就是个知道,想要真真去认识我还得努力去做。
虽然懂得还不是很多,起码会了基本的软件操作,老师说我们用的都是客户端,服务端看不到,也不知道服务端是什么样的,只知道客户端就挺多东西的,没有真正的去学习利用是很难掌握的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3F 汽车销售信息管理系统 汽车 销售 信息管理 系统