汽车租赁数据库设计.docx

上传人:b****6 文档编号:7729493 上传时间:2023-01-26 格式:DOCX 页数:21 大小:482.99KB
下载 相关 举报
汽车租赁数据库设计.docx_第1页
第1页 / 共21页
汽车租赁数据库设计.docx_第2页
第2页 / 共21页
汽车租赁数据库设计.docx_第3页
第3页 / 共21页
汽车租赁数据库设计.docx_第4页
第4页 / 共21页
汽车租赁数据库设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

汽车租赁数据库设计.docx

《汽车租赁数据库设计.docx》由会员分享,可在线阅读,更多相关《汽车租赁数据库设计.docx(21页珍藏版)》请在冰豆网上搜索。

汽车租赁数据库设计.docx

汽车租赁数据库设计

学号:

课程设计

 

题目

汽车租赁数据库设计

学院

计算机

专业

班级

姓名

指导教师

唐祖锴

 

2011

1

10

课程设计任务书

学生姓名:

赵中祥专业班级:

指导教师:

工作单位:

计算机学院

题目:

汽车租赁数据库设计

初始条件:

中兴公司是一家长途汽车出租公司,需要处理如下信息:

●租赁业务(发票号、日期、牌照号、地点、往返里程、行驶时间、客户号、司机号)

●汽车(注册号码、汽车型号、购入日期、价格、维修日期、运行功利、运行小时、租金率)

●司机(司机号、姓名、参加工作年月、基本工资)

●客户(客户号、客户姓名、客户单位、客户电话、客户地址、邮编)

公司需要时刻掌握汽车和司机的状态,尽量满足客户的租车需求。

要求完成的主要任务:

1.根据上述的初始条件,进行调查分析。

设计一个汽车租赁数据库,DBMS可选MsSQLServer、Access、VFP等。

2.完成课程设计说明书,其格式遵守学校今年的新规定。

主要内容包括:

需求分析,概念设计,逻辑设计,物理实现等。

3.基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。

这一项是选作,不作硬性要求。

时间安排:

本学期第18周:

1.消化资料、系统调查1天

2.系统分析1天

3.总体设计,实施计划2天 

4.撰写报告1天

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

汽车租赁数据库设计

1.摘要

伴随着社会的发展,需要记录处理的事物也越来越多。

这就使得数据库在各个领域都得到了极大地应用。

同样,汽车租赁行业要想向现代化发展,必然需要采用一种现代化的管理方式。

如此便可以扩大行业的服务对象范围及领域,建立与现代化汽车社会相适应的专业化、网络化汽车租赁特许经营服务体系,使汽车租凭在中国有序地发展起来。

如何找到一种现代化的管理方式呢?

我们可以建立一个系统,使得汽车租赁公司或企业可以在这个系统中管理整个公司不同店面的物流、资金流和人事流。

汽车租赁数据库系统是一款专用于汽车租赁行业的信息化管理软件。

该软件按照汽车租赁的实际业务流程,结合了租赁行业实际运营特点,能够很好的满足汽车租赁行业的信息化需求。

通过本系统租赁公司可以时刻掌握公司内部汽车和司机的状态,来尽量满足客户的租车需求。

2.需求分析

中兴公司是一家长途汽车出租公司,需要处理如下信息:

●租赁业务(发票号、日期、牌照号、地点、往返里程、行驶时间、客户号、司机号)

●汽车(注册号码、汽车型号、购入日期、价格、维修日期、运行功利、运行小时、租金率)

●司机(司机号、姓名、参加工作年月、基本工资)

●客户(客户号、客户姓名、客户单位、客户电话、客户地址、邮编)

公司需要时刻掌握汽车和司机的状态,尽量满足客户的租车需求。

1.处理订单的流程图:

客户申请出租

公司查看是否有空闲司机和空闲汽车

如果有则为用户安排汽车和司机

为客户服务以及生成发票

结账处理

更新数据库

结束。

其具体流程图如下:

当客户发出租车需求后,公司便从数据库相应数据表项中读取汽车信息和司机信息进行客户需求处理,其中汽车信息包括:

注册号码、汽车型号、购入日期、价格、维修日期、运行功利、运行小时、租金率;司机信息包括:

司机号、姓名、参加工作年月、基本工资。

如果有空闲汽车和司机,那么便给客户进行汽车和司机的分配工作。

分配成功后便根据数据库相应数据表项中的汽车信息和租赁信息开出发票,其中租赁业务信息包括:

发票号、日期、牌照号、地点、往返里程、行驶时间、客户号。

最后的发票若经双方核对后确认无误的话,便进行结账处理。

2.该系统应具有的功能

(1)查询功能

为了刻掌握汽车和司机的状态,尽量满足客户的租车需求,该系统至少应该满足三个查询功能。

1)查询剩余空闲汽车

2)查询剩余空闲司机

3)查询正在执行任务的司机和汽车

(2)添加功能

在建立好该系统后,由于公司或企业不断变动,可能会增加部分新的汽车和司机。

并且接受的任务数目也可能增加(涉及发票的增加)。

所以需要有添加功能。

(3)删除功能

同理,公司或企业不断变动,可能会有部分汽车中途淘汰或者司机离职,某些订单也许会取消或者该订单已完成。

此时就用到了删除功能。

(4)保存功能

每次对数据库进行修改后需要进行保存。

所以需要有保存功能。

3.数据字典

经分析结合题目要求可知要用到四个表:

租赁业务(发票),汽车,司机,客户。

数据结构的定义如下:

数据结构的定义

数据结构名

含义说明

组成

租赁业务

定义了与租赁业务相关的信息

发票号、日期、牌照号、地点、往返里程、行驶时间、客户号、司机号

汽车

定义了与汽车相关的信息

注册号码、汽车型号、购入日期、价格、维修日期、运行功利、运行小时、租金率

司机

定义了与司机相关的信息

司机号、姓名、参加工作年月、基本工资

客户

定义了与客户相关的信息

客户号、客户姓名、客户单位、客户电话、客户地址、邮编

三.概念设计

根据业务流程及数据结构的定义设计E-R图如下:

1.局部E-R图

汽车E-R图

客户E-R图

司机E-R图

2.基本E-R图

注:

由于司机,客户,汽车的属性在部分E-R图中已有,这里就不再表示了。

租赁业务为一个关系。

1)一个租赁业务中一个司机可以对应多个汽车,一个汽车也可以对应多个司机,即司机和汽车为多对多的关系。

2)一个租赁业务中一个客户可以对应多个汽车,一个汽车也可以对应多个客户,即客户和汽车为多对多的关系。

3)一个租赁业务中一个客户可以对应多个司机,一个司机也可以对应多个客户,即司机和客户为多对多的关系。

 

四.逻辑设计

1.E-R图向关系模型转换

将(三)中基本E-R图向转换成关系模型

(1)客户(客户号、客户姓名、客户单位、客户电话、客户地址、邮编)

(2)司机(司机号、姓名、参加工作年月、基本工资)

(3)汽车(注册号码、汽车型号、购入日期、价格、维修日期、运行功利、运行小时、租金率)

(4)租赁业务(发票号、日期、牌照号、地点、往返里程、行驶时间、客户号、司机号)

2.数据模型的优化

将转化的关系模式进行优化,最终达到第三范式。

为了提高数据库应用系统的性能,还应该根据应用需要适当的修改、调整关系模式,这就是数据模型的优化。

规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。

同时为了规范化,我们把表名及表项内容转化为易于理解的英语或英语缩写。

经优化得:

汽车

Car(Reg_id[char(10)],Car_mod[char(10)],Buy_date[char(20)],Price[char(10)],M_date[char(30)],Run_uti[char(20)],Run_hour[char(10)],R_rate[char(10)]

客户

Custom(C_id[char(10)],C_name[char(10)],C_unit[char(30)],C_tele[char(20)],C_addr[char(30)],Z_code[char(10)]).

司机

Driv(D_id[char(10),D_name[char(10)],Job_date[char(30)],B_wage[char(10)]

租赁业务

Inv(Invoice_id[char(20)],inv_date[char(20)],Lp_num[char(10)],Adrr[char(30)],Rt_mei[char(10)],Time[char(10)],C_id[char(20)],D_id[char(20)])

3.数据库的结构

根据各表功能及各字段存储信息形式确定各表结构:

1)汽车

字段名

数据类型

长度

约束

描述

Reg_id

char

10

主键

注册号码

Car_mod

char

10

null

汽车类型

Buy_date

char

20

null

购入日期

Price

char

10

null

价格

M_date

char

30

null

维修日期

Run_uti

char

20

null

运行功利

R_rate

char

10

null

租金率

Run_hour

char

10

null

运行小时

2)客户

字段号

数据类型

长度

约束

描述

C_id

char

10

主键

客户号

C_name

char

10

null

客户姓名

C_unit

char

30

null

客户单位

C_tele

char

20

null

客户电话

C_addr

char

30

null

客户地址

Z_code

char

10

null

邮政编码

3)司机

字段号

数据类型

长度

约束

描述

D_id

char

10

主键

司机号

D_name

char

10

null

司机姓名

ob_date

char

30

null

参加工作年月

B_wage

char

10

null

基本工资

4)租赁业务

字段号

数据类型

长度

约束

描述

Invoice_id

char

20

主键

发票号

inv_date

char

20

null

日期

Lp_num

char

10

外键

牌照号

Adrr

char

30

null

地点

Rt_mei

char

10

null

往返里程

Time

char

10

null

行驶里程

C_id

char

20

外键

客户号

D_id

char

20

外键

司机号

五.物理实现

1.数据表框架

1)创建表

.CREATETABLECars

(Reg_idchar(10)primarykey,

Car_modchar(10),

Buy_datechar(20),

Pricechar(10),

M_datechar(30),

Run_utichar(20),

Run_hourchar(10),

R_ratechar(10),

);

.CREATETABLECustom

C_idchar(10)primarykey,

C_namechar(10),

C_unitchar(30),

C_telechar(20),

C_addrchar(30),

Z_codechar(10),

.CREATETABLEDriv

D_idchar(10)primarykey,

D_namechar(10),

Job_datechar(30),

B_wagechar(10),

.CREATETABLEInv

Invoice_idchar(20)primarykey,

inv_datechar(20),

Lp_numchar(10)notnull,

Addrchar(30),

Rt_meichar(10),

Timechar(10),

C_idchar(20)notnull,

D_idchar(20)notnull,

2.向表中插入部分数据

有两种方法

1)用SQl语句

INSERT

INTO<表名>[属性列1,属性列2,.........]

VALUES(常量1,常量2,.........)

2)直接在数据库的表中插入

为了简洁操作采用第二种方法。

.汽车

.客户

.司机

.租赁业务

 

3.用C#与数据库连接

本项目中使用SqlConnection对象与SQlServer进行连接,程序员需要制定一个连接字符串,其格式由一系列关键字和值组成,各关键字之间用分号隔开,关键自不区分大小写。

在本次项目中系统自动生成了一个连接字符串CarRentalConnectionString。

对数据库数据的操作有两种方法。

在保持连接的情况下操作数据的一般步骤是:

1)创建SqlConnection连接

2)创建SqlCommand实例

3)打开连接

4)执行命令

5)关闭连接

在断开连接方式操作数据库的一般步骤是:

1)创建SqlConnection实例

2)创建SqlDataAdapter的实例

3)创建DataSet的实例

4)使用Fill方法将数据库中的表填充到DataSet的表中

5)利用DataGirdView或者其他控件编辑或显示数据

6)根据需要使用Update方法更新数据库

在本项目中采用的时断开连接的方式。

intindex=listBox1.SelectedIndex;

selectedTable=carRentalDataSet1.Tables[index];

stringqueryString=“SQL语句”+selectedTable.TableName

adapter=newSqlDataAdapter(queryString,Properties.settings.Defaut.CarRentalConnectionString);

SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);

adapter.InsertCommand=builder.GetInsertCommand();

adapter.DeleteCommand=builder.GetDeleteCommand();

adapter.UpdateCommand=builder.GetUpdateCommand();

adapter.Fill(selectedTable);

adapter.Fill(selectedTable);

bindingSource1.DataSource=selectedTable;

dataGridView1.DataSource=bindingSource1;

SqlDataAdapter对象通过SelectedCommand,InsertCommand,UpdateCommand和DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。

一般情况下,只需要向SqlDataAdapter对象提供SELECT语句和连接字符串参数,然后利用SqlCommandBuilder对象让其自动生成InsertCommand,updateCommand和DeleteCommand。

本系统的主界面如下:

1)添加

点击添加即可在相应的表中添加数据,点保存即可保存。

2)删除

选中数据行,点击删除,再点保存即可删除。

3)查看剩余空闲司机

4)查看剩余可用司机

5)查看正在执行的任务

6.小结

1.特点

本系统能够使公司时刻掌握汽车和司机的情况。

当有客户申请租赁业务时能够即时查看汽车和司机状况,实时为客户安排租赁业务。

并且当汽车,司机,订单情况变化时,能够实时更改数据库的内容。

2.不足

本系统仅仅实现了基本的数据管理模块。

1.客户信息管理2.汽车信息管理3.租赁信息管理4.司机信息管理。

没有注意租赁业务的过程中遇到的问题。

比如当汽车租赁过程中汽车出现故障,没有为客户安排第二套方案,当出现交通事故时或超时的情况时,如何进行赔偿,如何查询历史记录等等一些问题。

总之来说,此系统还有很多方面有待完善。

3.体会

通过将近一星期的训练,最终完成了此系统。

借此训练使我进一步实践了书上所学的数据库设计的一般步骤。

“纸上得来终觉浅,绝知此事要躬行”按照书上数据库设计的一般步骤:

1.需求分析2.概念结构设计3.逻辑结构设计4.物理结构设计5.数据库的建立与测试6.数据库的运行与维护完成了此系统——使我体会到了这种设计方法的科学性。

它不仅能使我们在设计数据库的过程中比较严谨的实现所需要的功能,还进一步照顾到后续数据库的扩充与改进。

同时这相对前面的实验来说,这次得到的训练更全面——从需求分析到数据库实施都得到了训练。

再者,在本次训练过程中,对Sql语句的理解和巩固有了一定的提高,这是对数据库知识学习的第一个较全面的训练。

在这次训练中,不仅仅巩固了数据库知识,还进一步学习了前面学过的C#语言的一些关于数据库方面的知识。

前面学习了一些基本的C#知识。

借此机会学习了数据库怎样与C#连接,以及怎样在应用程序中对数据库进行操作。

感觉通过对这些的学习使自己受益匪浅。

最后,尽管任务书中的功能基本实现了,但由于自己对数据库的学习不够深刻以及数据库与应用程序怎样连接也是刚刚学习的,所以导致一些方面做得不够完善。

还有许多更深的理论,方法需要学习。

我们要认清自己的不足,在不足的基础上做进一步的学习。

 

本科生课程设计成绩评定表

序号

评分项目

满分

实得分

1

学习态度认真、遵守纪律

10

2

设计分析合理性

10

3

设计方案正确性、可行性、创造性

20

4

设计结果正确性

40

5

设计报告的规范性

10

6

设计验收

10

总得分/等级

评语:

注:

最终成绩以五级分制记。

优(90-100分)、良(80-89分)、中(70-79分)、

及格(60-69分)、60分以下为不及格

 

                      指导教师签名:

                  20年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1