汽车租赁标准管理系统样本.docx
《汽车租赁标准管理系统样本.docx》由会员分享,可在线阅读,更多相关《汽车租赁标准管理系统样本.docx(49页珍藏版)》请在冰豆网上搜索。
汽车租赁标准管理系统样本
汽车租赁标准管理系统
长沙学院
课程设计说明书
题目
汽车租赁管理系统
学院
计数院
专业(班级)
软件工程
姓名
学号
指导教师
杨刚、潘怡
起止日期
2017/5/29-2017/6/29
课程设计任务书
课程名称:
数据库系统原理课程设计
设计题目:
汽车租赁管理系统。
已知技术参数和设计要求:
题目:
汽车租赁管理系统
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)答辩
计划时间
指导老师
班级
15~16周
潘怡、杨刚
15软件1班
15~16周
潘怡、杨刚
15软件2班
15~16周
卓琳、田清龙
15软件3班
15~16周
卓琳、田清龙
15软件4班
15~16周
张肖霞、马丽
15软件5班
15~16周
张肖霞、马丽
15软件6班
注意事项
⏹提交电子文档
Ø长沙学院课程设计任务书(每学生1份)
Ø长沙学院课程设计论文(每学生1份)
Ø长沙学院课程设计鉴定表(每学生1份)
指导教师签名:
日期:
教研室主任签名:
日期:
院长签名:
日期:
长沙学院课程设计鉴定表
姓名
学号
专业
班级
设计题目
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
学院意见:
院长签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
一、引言
1.1编写目的
本文档是汽车租赁系统设计文档的组成部分,编写数据库设计文档的目的是:
明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。
本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。
1.2参考资料
资料名称
作者
文件编号、版本
《数据库系统概论》
王珊、萨师煊
2006年5月第4版
二、需求规约
业务描述
该数据库建立于sqlserver2008r2,环境为windows7
系统名称:
汽车租赁管理系统。
系统的开发者:
小组成员
系统的用户:
租车客户以及租赁公司的工作人员。
数据库系统要完成的业务流程及工作内容
首先完成需求分析,根据需求关系画出ER-图,并写出关系模式。
根据ER图用SQLserver创建与数据库相关的表,视图,存储过程以及触发器。
系统的功能要求基本实现对车辆,租赁客户的查询。
可以查询客户租赁的历史记录。
可以查看汽车价格、库存,可以查看汽车的租借、归还、以及费用。
需求分析
(1)车辆管理
主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本信息,包括车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以及做出更好的租赁选择。
(2)业务管理
主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的车牌号,所
生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。
三、数据库环境说明
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
汽车租赁
Sqlserver2008r2
Windows7
Sqlserver2008r2
Microsoftofficevisio2003
E:
\sql\SQL
实例用途说明
四、数据库的命名规则
数据库对象命名规则
:
数据库对象
命名规则
备注
表
英文命名
例如:
car汽车表
存储过程
proc_功能描述字符串
例如:
proc_car汽车查询的存储过程
触发器
功能命名
例如:
delete_car删除汽车
视图
View_功能描述字符串
例如:
view_rent查看租借信息表
数据项编码规则
:
数据项
命名规则
数据类型
长度范围
备注
汽车编号
所在地+字母号+数字
Varchar类型
10位
租赁状态
Trueorfalse
Bit类型
订单号
流水号
Varchar类型
10位
客户号
字母+数字编号
Varchar类型
10位
工作人员编号
数字
Varchar类型
10位
汽车类型号
字母
Varchar类型
10位
五、逻辑设计
(ERD)、表及关系图
表customers
CusNoPY
Varchar(10)NOT Null
CusName
Varchar(10) NOT Null
CusSex
Varchar
(2) NOT Null
CusAge
Varchar(4) NOT Null
CusPhone
Varchar(10)
CusCompany
Varchar(10) NOT Null
CusIdentity
Varchar(10) NOT Null
表rent
RecordPY
Verchar(10)
Notnull
RentDate
date
Notnull
ReturnDate
date
Notnull
CusNo
Verchar(10)
Notnull
CarNo
Verchar(10)
Notnull
Recordcost
Verchar(100
NotNull
表car
CarNoPY
Verchar(10)
Notnull
CarColor
Verchar(10)
Notnull
CarDate
date
Notnull
CarClassNoFY
Verchar(10)
Notnull
CarState
bit
Notnull
表carclass
CarClassNoPY
Verchar(10)
Notnull
CarClassCnt
Varchar(10)
Notnull
CarClassDayPrice
Verchar(10)
Notnull
CarClassDayPriceExceed
Verchar(100
Notnull
CarClassMonthPrice
Verchar(10)
Notnull
CarClassSeat
Verchar(10)
Notnull
表worker
WorkNoPY
Verchar(10)
Notnull
WorkPassWord
Verchar(10)
Notnull
WorkName
Verchar(10)
Notnull
WorkSex
Verchar
(2)
Notnull
WorkPhone
Verchar(10)
表manage
WorkNoPY
Verchar(10)
Notnull
CarNoPY
Verchar(10)
Notnull
(工号、密码、姓名、性别、联系电话)
(身份证号、密码、姓名、性别、所在单位、联系电话)、
(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号)
4车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价格、品牌)
(工号、车牌号)备注:
(工号和车牌号共同作为管理表的主键,同时也是外键)
(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额)
六、物理设计
表名
功能说明
car
存储车辆信息
carclass
存储车辆类别的信息
rent
存储租赁的信息
customers
存储客户信息
worker
存储工作人员的信息
manage
存储工作人员和车辆之间的关系
[car]:
[车辆信息表]
表名
car
数据库用户
Car_rent
主键
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`))
[carclass]:
[车辆类别表]
表名
carclass
数据库用户
Car_rent
主键
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`))
[customer]:
[客户信息表]
表名
customer
数据库用户
Car_rent
主键
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`)
)
[worker]:
[工作人员信息表]
表名
worker
数据库用户
Car_rent
主键
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`)
)
[rent]:
[租赁表]
表名
rent
数据库用户
Car_rent
主键
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`)
)
[manage]:
[管理表]
表名
Wmanage
数据库用户
Car_rent
主键
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查询每辆车的状态和库存数
关键代码
usecar_rent
go
CREATEPROCEDUREproc_car
as
select,,
fromcar,carclass
where=
关键代码
usecar_rent
go
createprocedureproc_customers
(@CusNovarchar(10))
as
select,,,,,,
fromrent,car,carclass
where@CusNo=CusNoand=and=;
执行
execproc_customers'A01'
查询输入客户账号的租赁历史记录
关键代码
usecar_rent
go
createprocedureproc_car_rent
(@CarNovarchar(10))
as
select,,,,,
fromrent
where=@CarNo;
执行
execproc_car_rent'湘A8888'
查询通过输入订单号查询订单信息
关键代码
usecar_rent
go
createprocedureproc_record
(@Recordvarchar(10))
as
select,,,,
fromrent
where=@Record;
执行
execproc_record'1'
关键代码
usecar_rent
go
createprocedureproc_carclassno
(@carclassnovarchar(10))
as
select,
fromcarclass
where=@carclassno;
执行
execproc_carclassno'A'
删除一辆车
关键代码
usecar_rent
go
createprocedureproc_delete_car
(@carnova