精编汽车租赁管理系统原理课程设计最终版.docx
- 文档编号:6052017
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:35
- 大小:30.48KB
精编汽车租赁管理系统原理课程设计最终版.docx
《精编汽车租赁管理系统原理课程设计最终版.docx》由会员分享,可在线阅读,更多相关《精编汽车租赁管理系统原理课程设计最终版.docx(35页珍藏版)》请在冰豆网上搜索。
精编汽车租赁管理系统原理课程设计最终版
汽车租赁管理系统原理课程设计最终版
长沙学院
课程设计说明书
题目
汽车租赁管理系统
系(部)
数学与计算机科学
专业(班级)
软件03班
姓名
学号
指导教师
黄彩霞、刘欣
起止日期
2016.5.15-2016.5.27
课程设计任务书
课程名称:
数据库系统原理课程设计
设计题目:
汽车租赁管理系统。
已知技术参数和设计要求:
题目:
汽车租赁管理系统
1、某汽车租赁公司汽车租赁管理系统需要如下信息:
工作人员信息包括:
工号、姓名、性别、联系电话等。
客户信息包括:
身份证号、姓名、性别、所在单位、联系电话等。
车辆信息包括:
车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁状态、购入日期等。
车辆类别信息包括:
分类号,库存数。
其业务规则描述如下:
一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。
2、系统功能的基本要求:
可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。
可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。
各阶段具体要求:
1、需求分析阶段
●定义数据项的含义和取值
●定义目标系统的数据流
2、概念结构设计阶段
●画出实体模型E-R图
3、逻辑结构设计阶段
●将实体模型转化为关系模型
●给出每个关系的主关键字和函数依赖集
●分析你所设计的关系数据库模式是否属于3NF
4、物理设计阶段
●确定所有字段的名称、类型、宽度、小数位数及完整性约束
●确定数据库及表的名称及其组成
●确定索引文件和索引关键字
5、数据库安全及维护设计阶段
●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)
●为了实现复杂的数据完整性约束,设计适当的触发器
●设计一个适合的数据库备份策略
6、实施阶段
●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。
设计工作量:
(1)软件设计:
完成问题陈述中所提到的所有需求功能。
(2)论文:
要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。
工作计划:
安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;
1)选定题目
2)需求分析
3)概念结构设计
4)逻辑结构设计
5)物理设计
6)数据库安全及维护设计
7)数据库上机实现
8)答辩
注意事项
⏹提交电子文档
Ø长沙学院课程设计任务书(每学生1份)
Ø长沙学院课程设计论文(每学生1份)
Ø长沙学院课程设计鉴定表(每学生1份)
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
学号
专业
软件工程
班级
03
设计题目
汽车租赁管理系统
指导教师
刘欣、黄彩霞
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
一、引言6
1.1编写目的6
1.2参考资料6
二、需求规约7
2.1业务描述7
2.2需求分析7
三、数据库环境说明8
四、数据库的命名规则8
4.1数据库对象命名规则6
4.2数据项编码规则6
五、逻辑设计9
六、物理设计11
6.1表汇总11
6.1.1表[car]:
[车辆信息表]12
6.1.2表[carclass]:
[汽车分类表表]12
6.1.3表[customer]:
[客户信息表]13
6.1.4表[worker1]:
[工作人员表]13
6.1.5表[rent]:
[租赁表]14
6.1.6表[manage]:
[管理表]15
6.2视图的设计15
6.3存储过程的设计17
6.4触发器的设计20
6.4JAVA设计24
七、安全性设计26
7.1防止用户直接操作数据库的方法26
7.2用户帐号密码的加密方法26
7.3角色与权限26
八、数据库管理与维护说明27
8.1说明27
8.2课程设计总结28
九、附录源代码...........................................................29
9.1数据库源代码29
9.2连接数据库代码40
一、引言
1.1编写目的
本文档是汽车租赁管理系统的组成部分,编写数据库设计文档的目的是:
明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。
本文档的读者对象是需求人员、系统设计人员、开发人员和测试人员。
为了加快汽车租赁管理自动化的步伐,提高汽车租赁的管理业务处理效率,建立汽车租赁管理系统,并且尽可能地减少汽车租赁管理的重复性和低效性,已变得十分必要。
该课程设计以某汽车租赁应用背景,通过研究当前汽车租赁系统的管理现状、存在问题以及现实需求,设计一个针对汽车租赁管理工作的管理信息系统。
该系统能够提供较为完备的功能,对于提高工作效率、加快汽车租赁管理的自动化具有较为重要的意义。
汽车租赁管理系统是汽车租赁公司提供的一个简单易用的系统,随着科技的发展,设备和管理的现代化,在实际生活中如何提高工作效率成为一个很重要的问题,所以建立这种管理系统是非常好的解决方法。
1.2参考资料
资料名称
作者
文件编号、版本
《数据库系统概论》
王珊、萨师煊
2006年5月第4版
《MySQL入门经典》
王雨竹、高飞
2013年4月
《Java基础教程》
吴仁群
2009年4月
二、需求规约
2.1业务描述
2.1.1创建背景
该数据库建立于MySQL,环境为windows7
系统名称:
汽车租赁管理系统。
系统的开发者:
小组成员
系统的用户:
租车客户以及租赁公司的工作人员。
2.1.2业务流程及工作内容
了解到题目需求后,画好ER图,写出其关系模式,并用MySQL建立数据库,新建表,定义好表名,建立视图、存储过程以及触发器。
系统功能的基本要求是可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。
可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。
2.2需求分析
2.2.1功能需求
(1)车辆管理
主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本信息,包括车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以及做出更好的租赁选择。
(2)业务管理
主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的车牌号,所生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。
(1)统计
主要是实现统计某一年龄客户群体对某类汽车的租赁喜好,可以通过客户的年龄算出所租车辆的种类一共有多少辆,可以按类别统计汽车的租赁金额和剩余的库存数,以便管理员更好地了解市场行情,从而尽可能获得更大收益。
三、数据库环境说明
3.1数据库环境
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
汽车租赁
MySQL,版本4.0
Windows7
NavicatforMySQL
D:
\ProgramFiles\
MySQL
实例用途说明
四、数据库的命名规则
4.1数据库对象命名规则
数据库对象
命名规则
备注
表
table功能描述字符串
例如:
Car表
视图
View功能描述字符串
例如:
V1视图
存储过程
Proc功能描述字符串
例如:
P1存储过程
触发器
Trigger功能描述字符串
例如:
T1触发器
4.2数据项编码规则
数据项
命名规则
数据类型
长度
备注
租赁状态
两位二进制码
bit
2
例如:
00
车牌号
湘L+(三位整数)+SB
varchar
10
例如:
湘L520SB
客户账号
431023+三位整数
varchar
10
例如:
431023001
订单号
四位整数
varchar
10
例如:
1401
租赁日期
年-月-日时间
datetime
10
例如:
2016-05-2004
五、逻辑设计
5.1系统E-R图设计
图1E-R图
图2MySQL中E-R图
5.2创建关系模式
1.工作人员(工号、密码、姓名、性别、联系电话)
2.客户信息(身份证号、密码、姓名、性别、所在单位、联系电话)
3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号)
4.车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价格、品牌)
5.管理(工号、车牌号)备注:
(工号和车牌号共同作为管理表的主键,同时也是外键)
6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额)
备注:
(主键是加下划线,外键是加波浪线)
完全依赖:
工号→姓名,工号→密码,工号→性别,工号→联系电话
客户身份证号→客户姓名,客户身份证号→密码,客户身份证号→客户性别,客户身份证号→客户所在单位,客户身份证号→客户联系电话
车牌号→品牌,车牌号→座位数,车牌号→颜色,车牌号→购入日期,车牌号→分类号
分类号→库存数,分类号→日租价格,分类号→日租超公里价格,分类号→
月租价格,分类号→月租超公里价格,分类号→品牌
订单号→客户身份证号,订单号→车牌号,订单号→租赁日期,订单号→归还
日期,订单号→租赁金额
部分依赖:
(工号,车牌号)→(分别决定)姓名、密码、性别、联系电话,品牌、座位数、颜色、租赁状态、购入日期、分类号
传递依赖:
订单号→(分别决定)客户的姓名、密码、性别、所在单位、联系电话、品牌、分类号、座位数、颜色、租赁状态、购入日期
六、物理设计
6.1表汇总
表名
功能说明
car
存储车辆的信息
carclass
存储车辆类别的信息
worker1
存储工作人员的信息
rent
存储租赁的信息
customer
存储客户的信息
manage
存储工作人员与车辆的联系
6.1.1表[car]:
[车辆信息表]
表名
car
数据库用户
Test
主键
CarNo
索引字段
CarClassNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
CarNo
varchar(10)
N
Y
高
无
主键
2
CarClassNo
varchar(10)
N
N
高
无
外键
3
CarState
bit
(2)
N
N
低
00
租赁状态
4
Cardate
date
N
N
低
无
购入日期
5
CarColor
varchar(10)
N
N
低
无
汽车颜色
sql脚本
DROPTABLEIFEXISTS`car`;
CREATETABLE`car`(
`CarNo`varchar(10)NOTNULL,
`CarColor`varchar(10)NOTNULL,
`CarDate`dateNOTNULL,
`CarSta`bit(10)NOTNULL,
`CarClassNo`varchar(10)NOTNULL,
PRIMARYKEY(`CarNo`),
KEY`CarClassNo`(`CarClassNo`),
CONSTRAINT`CarClassNo`FOREIGNKEY(`CarClassNo`)REFERENCES`carclass`(`CarClassNo`))
6.1.2表[carclass]:
[车辆类别表]
表名
carclass
数据库用户
Test
主键
CarClassNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
CarClassNo
varchar(10)
N
Y
高
无
主键
2
CarClassCnt
varchar(10)
N
N
低
无
库存数
3
CarClassSeat
bit
(2)
N
N
低
无
座位数
4
CarClassDayPrice2
date
N
N
低
无
日租价格
5
CarClassDayPrice1
varchar(10)
N
N
低
无
日租超公里价格
6
CarClassMonthPrice
varchar(10)
N
N
低
无
月租价格
7
CarClassBrand
varchar(10)
N
N
低
无
车辆品牌
sql脚本
DROPTABLEIFEXISTS`carclass`;
CREATETABLE`carclass`(
`CarClassNo`varchar(10)NOTNULL,
`CarClassCnt`varchar(10)NOTNULL,
`CarClassDayPrice1`varchar(10)NOTNULL,
`CarClassDayPrice2`varchar(10)NOTNULL,
`CarClassMonthPrice`varchar(10)NOTNULL,
`CarClassBrand`varchar(10)NOTNULL,
`CarClassseat`varchar(10)NOTNULL,
PRIMARYKEY(`CarClassNo`))
6.1.3表[customer]:
[客户信息表]
表名
customer
数据库用户
Test
主键
CusNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
CusNo
varchar(10)
N
Y
高
无
主键
2
CusPassword
varchar(10)
N
N
高
无
登录密码
3
CusName
varchar(10)
N
N
低
无
客户姓名
4
CusSex
varchar(10)
N
N
低
无
客户性别
5
CusAge
varchar(10)
N
N
低
无
客户年龄
6
CusPhone
varchar(10)
N
N
低
无
客户电话
7
CusCompany
varchar(10)
N
N
低
无
公司
sql脚本
DROPTABLEIFEXISTS`customer`;
CREATETABLE`customer`(
`CusNo`varchar(10)NOTNULL,
`CusName`varchar(10)NOTNULL,
`CusSex`varchar
(2)NOTNULL,
`CusAge`varchar(4)NOTNULL,
`CusPhone`varchar(20)NOTNULL,
`CusCompany`varchar(20)NOTNULL,
`CusPassword`varchar(10)NOTNULL,
PRIMARYKEY(`CusNo`)
)
6.1.4表[worker1]:
[工作人员信息表]
表名
worker1
数据库用户
Test
主键
WorkNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
WorkNo
varchar(10)
N
Y
高
无
主键
2
WorkPassword
varchar(10)
N
N
低
无
密码
3
WorkName
varchar(10)
N
N
低
无
姓名
4
WorkSex
varchar(10)
N
N
低
无
性别
5
WorkPhone
varchar(10)
N
N
低
无
电话
sql脚本
DROPTABLEIFEXISTS`worker1`;
CREATETABLE`worker1`(
`WorkNo`varchar(10)NOTNULLDEFAULT'',
`WorkPassword`varchar(10)DEFAULTNULL,
`WorkName`varchar(10)DEFAULTNULL,
`WorkSex`varchar(10)DEFAULTNULL,
`WorkPhone`varchar(10)DEFAULTNULL,
PRIMARYKEY(`WorkNo`)
)
6.1.5表[rent]:
[租赁表]
表名
rent
数据库用户
Test
主键
RecordNo
索引
CarNo、CusNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
RecordNo
varchar(10)
N
Y
高
无
主键
2
CarNo
varchar(10)
N
N
高
无
外键
3
CusNo
varchar(10)
N
N
低
无
外键
4
RecordCost
varchar(10)
N
N
低
无
总金额
5
RecordRentDate
varchar(10)
N
N
低
无
租赁时间
6
RecordReturnDate
varchar(10)
N
N
低
无
归还时间
sql脚本
DROPTABLEIFEXISTS`rent`;
CREATETABLE`rent`(
`RecordNo`varchar(10)NOTNULL,
`RecordRentDate`datetimeNOTNULL,
`RecordReturnDate`datetimeNOTNULL,
`CusNo`varchar(10)NOTNULL,
`CarNo`varchar(10)NOTNULL,
`RecordCost`varchar(10)DEFAULTNULL,
PRIMARYKEY(`RecordNo`),
KEY`CusNo`(`CusNo`),
KEY`CarNo`(`CarNo`),
CONSTRAINT`CarNo`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),
CONSTRAINT`CusNo`FOREIGNKEY(`CusNo`)REFERENCES`customer`(`CusNo`)
)
6.1.6表[manage]:
[管理表]
表名
Wmanage
数据库用户
Test
主键
CarNo、WorkNo
索引
CarNo
序号
字段名称
数据类型
允许为空Y/N
唯一
Y/N
区别度
默认值
约束条件/说明
1
WorkNo
varchar(10)
N
Y
高
无
主键
2
CarNo
varchar(10)
N
N
高
无
主键
sql脚本
DROPTABLEIFEXISTS`manege`;
CREATETABLE`manege`(
`WorkNo`varchar(10)NOTNULLDEFAULT'',
`CarNo`varchar(10)NOTNULLDEFAULT'',
PRIMARYKEY(`WorkNo`,`CarNo`),
KEY`CarNo`(`CarNo`),
CONSTRAINT`manege_ibfk_1`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),
CONSTRAINT`WorkNo`FOREIGNKEY(`WorkNo`)REFERENCES`worker1`(`WorkNo`)
)
6.2视图的设计
6.2.1视图[V1]:
按车辆的类别统计汽车的租赁金额和数库存数
关键代码:
DROPVIEWIFEXISTS`v1`;
CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`v1`ASselect`carclass`.`CarClassNo`AS`CarClassNo`,`carclass`.`CarClassCnt`AS`CarClassCnt`from`carclass`groupby`carclass`.`CarClassNo`;
图3按类别统计汽车的租赁金额和剩余的库存
6.2.2视图[V2]:
通过订单号了解到所租车辆的类别号及类别名
关键代码:
DROPVIEWIFEXISTS`v2`;
CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`v2`ASselect`rent`.`RecordNo`AS`RecordNo`,`car`.`CarClassNo`AS`CarClassNo`,`carclass`.`CarClassBrand`AS`CarClassBrand`from((`rent`join`car`)join`carclass`)where((`rent`.`CarNo`=`car`.`CarNo`)and(`car`.`CarClassNo`=`carclass`.`CarClassNo`))groupby`car`.`CarClassNo`;
图4订单号求所租车辆的类别号及类别名
6.2.3视图[V3]:
统计某一年龄阶段对汽车类别的喜好,并统计相应人数
关键代码:
DROPVIEWIFEXISTS`v3`;
CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`v3`ASselect`customer`.`CusAge`AS`CusAge`,`carclass`.`CarClassBrand`AS`CarClassBrand`,count(`customer`.`CusAge`)AS`Count(customer.CusAge)`from(((`carclass`join`customer`)join`rent`)join`car`)where((`customer`.`CusNo`
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精编 汽车 租赁 管理 系统 原理 课程设计 最终版