汽车调度管理系统数据库课程设计报告书.docx

上传人:b****8 文档编号:9690727 上传时间:2023-02-05 格式:DOCX 页数:16 大小:340.44KB
下载 相关 举报
汽车调度管理系统数据库课程设计报告书.docx_第1页
第1页 / 共16页
汽车调度管理系统数据库课程设计报告书.docx_第2页
第2页 / 共16页
汽车调度管理系统数据库课程设计报告书.docx_第3页
第3页 / 共16页
汽车调度管理系统数据库课程设计报告书.docx_第4页
第4页 / 共16页
汽车调度管理系统数据库课程设计报告书.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

汽车调度管理系统数据库课程设计报告书.docx

《汽车调度管理系统数据库课程设计报告书.docx》由会员分享,可在线阅读,更多相关《汽车调度管理系统数据库课程设计报告书.docx(16页珍藏版)》请在冰豆网上搜索。

汽车调度管理系统数据库课程设计报告书.docx

汽车调度管理系统数据库课程设计报告书

汽车调度管理系统

1.需求分析

1.1信息要求:

数据库中需要存储的信息有:

1、车辆的基本数据,包括车辆车辆编码,车牌号,车辆类型,载重,座位数,车辆状态,年检合格,保险到期,备注等信息

2、驾驶员基本数据,包括驾驶员姓名,性别,生日,身份证号,手机号,驾驶证号,驾驶证类型,有无病事假

3、操作人员基本数据,包括车队管理员,车辆管理员,司机管理员的联系方式,地址,身份证号,年龄,性别,系统登录密码等

图1.汽车调度系统功能表

1.2处理要求:

系统管理:

1、可按照职务类型创建用户并对用户权限的定义

2、对登录用户进行密码验证管理

3、车队管理员可创建车辆管理员,司机管理员并进行派车登记的填写;车辆管理员负责车辆的信息包括新车的入库、维修、出库、回库登记;司机管理员负责新司机的加入、司机的出车、病事假、返工的登记;业务员负责申请车辆信息与司机的信息的查询与登记。

1.基本信息管理:

●车辆基本信息登记,登记信息为上述

●司机基本信息登记,登记信息为上述

●职员基本信息登记

2.用车调度管理:

●查出可调度的符合申请要求的车辆

●登记出车信息

●查询正在出车的信息

●查询正在检修的车辆信息

●查询正在请假的司机信息

3.车辆维修管理:

●登记信息包括车牌号,送修日期,送修原因,维保费用,取车备注

●回库登记,登记信息包括车牌号,驾驶员,回库时间,完成情况等信息

●因司机病事假而导致无法正常出车的重新信息调动

4.司机病事假管理:

●登记司机病事假信息,包括姓名,请假原因,请假时长

●因司机病事假而导致无法正常出车的重新信息调动

5.数据查询管理:

●车辆基本信息查询,根据所需车辆要求如载客数,载重数信息查询可用车辆,该车辆应为人数载重满足要求,车辆状态符合:

未出车,未在维修,年检合格,保险未到期

●车辆出车记录查询,可以查询到某辆车的某段间的出车记录

●驾驶员出车记录查询,可以查询到某驾驶员的某段时间的出车信息

1.3安全性与完整性要求

1、系统管理员创建用户,并赋予用户相应的权限

2、进行用户密码管理

3、避免数据冗余,使数据简洁清晰

4、避免误删,空值,重复等数据操作存储错误

1.4数据字典

1.4.1数据项

表1.车辆信息

字段

字段类型大小

范围

约束

车牌号

Char(10)

主码

车型

Char(8)

大型客车(>20)中型客车(9~20)

小型客车(<9)

重型货车(>12t)中型货车(4.5~12t)

轻型货车(<4..5t)微型货车(<0.75t)

车载重

Float(4)

重型货车(>12t)中型货车(4.5~12t)

轻型货车(<4..5t)微型货车(<0.75t)

车座位数

Int

(2)

大型客车(>20)中型客车(9~20)

小型客车(<9)

入库时间

DateTime

 

表2.司机信息

字段

字段类型大小

范围

约束

司机姓名

Char(8)

非空

司机联系方式

Char(11)

非空

驾驶证号

Char(11)

主码

驾驶证类别

Char

(2)

A1,A2,A3,B1,B2,C1

非空

 

表3.请假信息

字段

字段类型大小

范围

约束

请假编号

Char(8)

主码

司机姓名

Char(10)

非空

驾驶证号

Char(18)

外码

请假日期

DateTime

非空

返工时间

DateTime

非空

表4.维修信息

字段列名

字段类型大小

范围

约束

维修编号

Char(10)

非空

主码

车牌号

Char(10)

外码参照表1CCard

送修日期

DateTime

非空

表5.出车登记信息

字段列名

字段类型大小

范围

约束

登记编号

Char(10)

非空

主码

车牌号

Char(10)

非空

外码参照表1

车型

司机姓名

Char(8)

司机联系方式

Char(11)

驾驶证号

Char(18)

非空

外码参照表2

申请时间

DateTime

返库时间

DateTime

客户姓名

Char(8)

客户联系方式

Char(11)

表6.用户信息

字段列名

字段类型大小

范围

约束

用户编号

Char(8)

非空

主码

用户姓名

Char(8)

非空

用户身份证号

Char(18)

非空

用户联系方式

Char(11)

非空

用户职位

Char(10)

非空

 

1.4.2数据流,数据存储及处理过程如下图:

图2.汽车调度系统数据流图

图3.汽车调度管理系统用户关系图

3、

概念设计

图4.汽车管理E-R图

图5.司机管理E-R图

图6.调度管理E-R图

图7.申请管理E-R图

3.逻辑设计

3.1关系模型

将E-R图转换成对应的关系模型,关系的码用下横线标出

1.车辆信息表(车牌号,车型,车载重,车座位数,入库时间)

2.司机信息(司机姓名,司机联系方式,驾驶证号,驾驶证类别)

3.请假信息(请假编号,司机姓名,驾驶证号,请假日期,返工时间)

4.维修信息(维修编号,车牌号,送修日期,返库时间)

5.出车登记信息(登记编号,车牌号,车型,司机姓名,司机联系方式,驾驶证号,申请时间,返库时间,客户姓名,客户联系方式)

6.用户信息(用户编号,用户姓名,用户身份证号,用户联系方式,用户职位)

 

3.2视图设计(设计用户子模式)

3.2.1供业务员查看的视图:

●一周内业务信息视图(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

CreatViewWork_Info(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

AS

Select*

From出车登记信息

3.2.2供车队管理员查看的视图

●无病假司机视图(司机姓名,司机联系方式,驾驶证号,驾驶证类别)

CreatViewHeathDriver_Info(司机姓名,司机联系方式,驾驶证号,驾驶证类别)

AS

Select*

From司机信息

Where司机姓名NOTExists请假信息.司机姓名AND

GETDATE()=<返工时间

●无维修车辆视图(车牌号,车型,车载重,车座位数)

CreatViewHeathCar_Info(车牌号,车型,车载重,车座位数)

AS

Select*

From车辆信息

Where车牌号NOTExists维修信息.车牌号AND

GETDATE()=<返库时间

●正在执行业务车辆视图(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间)

CreateViewOnWorkCar_Info(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

AS

Select*

From出车登记信息

Where返库时间>=GETDATE()

3.2.3供车辆管理员查看的视图

●查询B类车近期业务:

CreateViewCar1_Task_Info(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

AS

Select*

From出车登记信息

Where车型=‘B’

3.2.4供司机管理员查看的视图

●查询张三近期业务(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

CreateViewDrive1_Work_Info(登记编号,车牌号,车型,司机姓名,司机联系方式,申请时间,返库时间,客户姓名,客户联系方式)

AS

Select*

From出车登记信息

Where司机姓名=‘张三’

4.物理设计

4.1索引设计

为了加快查询速度,在基本表上建立了3个最经常用到的查询,加快查询速度。

CreateClusterCarInfoIndexON车辆信息表(车型)

CreateUniqueTaskInfoIndexON出车登记信息(登记编号)

CreateClusterDriverInfoIndexON司机信息(驾驶证类别)

数据库Sql语句

selectdistinct汽车信息.车牌号,汽车信息.车型

from申请信息,出车登记信息,汽车信息

where申请信息.车型=汽车信息.车型

and汽车信息.车牌号notin

(select汽车信息.车牌号

from出车登记信息,维修信息,汽车信息

where((汽车信息.车牌号=出车登记信息.车牌号and出车登记信息.返库时间isnull)

or(汽车信息.车牌号=维修信息.车牌号and维修信息.返库时间isnull)

**********************************************************************************

++++++++++++++++++++++++++++++++++++++++++++++++

selectdistinct司机信息.司机姓名,司机信息.驾驶证号,司机信息.司机联系方式

from申请信息,出车登记信息,司机信息

where申请信息.驾驶证类型=司机信息.驾驶证类型

and司机信息.驾驶证号notin

(select司机信息.驾驶证号

from出车登记信息,请假信息,司机信息

where((司机信息.驾驶证号=出车登记信息.驾驶证号and出车登记信息.返库时间isnull)

or(司机信息.驾驶证号=请假信息.驾驶证号and请假信息.返工时间isnull)

))

***********************************************************************************

++++++++++++++++++++++++++++++++++++++++++++++++

Java连接数据库

importjava.sql.*;

importjavax.swing.*;

importjava.awt.*;

importjavax.swing.JOptionPane;

publicclassdatabase

{

protectedstaticStringdriver="net.sourceforge.jtds.jdbc.Driver";

protectedstaticStringurl="jdbc:

jtds:

sqlserver:

//localhost:

1433;DatabaseName=database_zbg";

protectedstaticStringusername="sa";

protectedstaticStringpassword="1234";

protectedstaticConnectionconn=null;

privatedatabase()

{

try

{

if(conn==null)

{

Class.forName(driver);

conn=DriverManager.getConnection(url,username,password);

}elsereturn;

}

catch(Exceptione)

{

e.printStackTrace();

}

}

//数据库查询操作

publicstaticResultSetexecuteQuery(Stringsql)

{

try

{

if(conn==null)newdatabase();

returnconn.createStatement().executeQuery(sql);

}

catch(SQLExceptione)

{

e.printStackTrace();

returnnull;

}

}

//数据库更新

publicstaticintexecuteUpdate(Stringsql)

{

try

{

if(conn==null)newdatabase();

returnconn.createStatement().executeUpdate(sql);

}

catch(SQLExceptione)

{

System.out.println(e.getMessage());

return-1;

}

finally{}

}

}

importjava.sql.ResultSet;

importjava.sql.SQLException;

publicclasslogin{

publicstaticvoidmain(String[]args)throwsSQLException{

Stringsqlstr="SELECT*FROMps";

ResultSetresult=database.executeQuery(sqlstr);

while(result.next())

{

Strings1,s2,s3,s4,s5,s6,s7;

s1=result.getString

(1);

s2=result.getString

(2);

s3=result.getString(3);

s4=result.getString(4);

s5=result.getString(5);

s6=result.getString(6);

s7=result.getString(7);

System.out.print(s1+"\t\t");

System.out.print(s2+"\t\t");

System.out.print(s3+"\t\t");

System.out.print(s4+"\t\t");

System.out.print(s5+"\t\t");

System.out.print(s6+"\t\t");

System.out.println(s7);

}

}

}

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

当前位置:首页 > 外语学习 > 法语学习

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

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