长途汽车信息管理系统【课程设计-java-数据库】
运输企业管理系统数据库设计

运输企业管理系统数据库设计运输企业管理系统数据库设计一、系统需求分析报告:1.1背景一方面,企业的业务越来越多,信息量巨大。
另一方面,IT产业和Internet 获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
所以,运输企业也需要信息化的管理。
1.2数据需求运输企业管理信息系统需要完成功能主要有:1 有关司机各种信息的输入,包括司机的基本信息,执照信息2 司机各种信息的查询3 司机各种信息的修改4 车辆信息的输入等5 车辆信息的查询6 车辆信息的修改7 运营信息的输入8 运营信息的查询9 运营信息的修改等10 车辆维修信息的输入11 车辆维修信息的查询12 车辆维修信息的修改等13 事故信息的输入14 事故信息的查询15 事故信息的修改等1.3事物需求(1)在司机信息管理部分,要求:a.可以查询司机信息b.可以对司机信息进行添加及删除的操作(2)在车辆信息管理部分,要求:a.可以查询侧车辆的信息b.可以对车辆信息进行维护,包括添加及删除的操作(3)在运营信息管理部分,要求:a.可以查询运营的信息b.可以对运营信息进行维护,包括修改及删除的操作(4)在车辆维修管理部分,要求:a.可以查询车辆的信息b.可以对车辆信息进行维护,包括添加及修改的操作(5)在事故信息管理部分,要求:a.可以查询事故的信息b.可以对事故信息进行修改及删除操作1.4关系模式(一)司机(司机编号,司机姓名,司机电话,车辆牌照,驾照编号)(二)车辆(车辆牌照,司机编号,车辆型号,车辆载重)(三)运营信息(司机编号,货物重量,路程,客户,日期,价格,客户电话,运营编号)(四)事故(司机编号,事故地点,事故时间,车辆牌照)2. 图表设计2.1.E-R图根据所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
2.1.1 司机信息实体E-R图2.1.2 车辆信息E-R图2.1.3 运营信息实体E-R图司机信息实体司机编号司机姓名司机电话车辆牌照驾照编号车辆信息实体车辆牌照司机编号车辆型号车辆载重2.1.4 事故信息实体E-R图2.1.5 总的信息实体E-R图:运营信息实体司机编号货物重量路程客户日期运营编号客户电话价格事故信息实体车辆牌照司机编号事故地点事故时间2.2 数据表格2.2.1司机信息表表中列名数据类型长度可否为空说明 sjno char 10 not null(主键) 司机编号 sjname varchar 6 not null 司机姓名 sjphone char 20 null 司机电话clno char 10 not null 车辆编号 jznochar20not null驾照编号2.2.2 车辆表信息表表中列名数据类型长度可否为空说明 clno char 10 not null(主键) 车辆编号 sjno char 10 not null(外主键)司机编号 clstyle varchar 10 null 车辆型号 clload char10null车辆载重2.2.3 运营信息表出事故车辆运营司机信息车主任务车辆信息事故信息表中列名数据类型长度可否为空说明ylno char 10 Not null(主键) 运营编号sjno char 10 Not null(外主键) 司机编号ylzl char 10 null 货物重量yllutu varchar 30 null 运货路途ylkehu varchar 10 Null 运营客户yltime char 20 Null 运营时间ylprice char 10 Null 运营价格ylphone char 20 Null 客户电话2.2.4 事故信息表表中列名数据类型长度可否为空说明sjno char 10 not null(主键) 司机编号sgadress char 50 null 事故地点sgtime varchar 20 null 事故时间clno char 10 not null(外主键) 车辆编号2.3 关系图3. 物理实现3.1 数据库建立3.1.1数据库的建立和使用create database pacgouse pacgo3.1.2建立司机表create table sj(sjno char(10) not null, sjname varchar(6) not null, sjphone char(20), clno char(10),jzno c har(20),primary key (sjno))3.1.3建立车辆表create table cl(clno c har(10) primary key,sjno c har(10) not null,clload char(10),foreign key(sjno)references sj(sjno) )3.1.4建立运营信息表create table yl(ylno char(10) primary key, sjno c har(10) not null, ylzl char(10),yllutu varchar(30),ylkehu varchar(10),yltime char(20),ylprice char(10),ylphone char(20),foreign key(sjno) references sj(sjno))3.1.5建立事故信息表create table sg(sjno c har(10) not null,sgtime char(20),clno c har(10) not null,foreign key(sjno) references sj(sjno),foreign key(clno) references cl(clno),)3.2 数据初始化3.2.1司机信息输入insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506101','叶飞','151********','苏A0001','932301') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506102','潘安辰','151********','苏A0002','932302') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506103','张伯远','151********','苏A0003','932303') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506104','桑田','151********','苏A0004','932304') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506105','张坤','151********','苏A0005','932305') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506106','魏良健','151********','苏A0006','932306')3.2.2车辆信息输入insert into cl(clno,sjno,clstyle,clload)values('苏A0001','080506101','奔驰A1','5T')insert into cl(clno,sjno,clstyle,clload)values('苏A0002','080506102','宝马A6','3T')insert into cl(clno,sjno,clstyle,clload)values('苏A0003','080506103','奥迪A6','2T')insert into cl(clno,sjno,clstyle,clload)values('苏A0004','080506104','宝马A6','3T')insert into cl(clno,sjno,clstyle,clload)values('苏A0005','080506105','奥迪A6','2T')insert into cl(clno,sjno,clstyle,clload)values('苏A0006','080506106','奔驰A1','5T')3.2.3运营信息输入insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0001','080506101','580KG','南京至杭州','刘德华','2009/12/28','5000元','151********')insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0002','080506104','980KG','南京至苏州','黎明','2009/12/28','3500元','151525562143')insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0003','080506106','1120KG','南京至徐州','周星驰','2009/12/28','6000元','159********')3.2.4事故信息输入insert into sg(sjno,sgadress,sgtime,clno)values('080506103','解放军理工大学','2009/12/27','苏A0003')4.功能实现创建数据库4.1单表查询4.1.1表sj中查询演示select * from sj-全文完-。
运输车辆管理数据库设计——短学期报告

运输公司车辆管理数据库设计一、需求分析系统目标:建立车辆管理系统的目标是实现对车辆的综合管理,实现包括对驾驶员信息、车辆信息、运营信息、出车信息、维修信息、事故信息的查询和修改等。
车辆管理的基本要求是:1.建立车辆信息库,实现车辆基本信息和驾驶员基本信息的统一管理。
2.针对每辆车的出车运营情况进行记录,实现车辆自我调度。
3.对每辆车的事故、违规情况进行记录。
4.针对每辆车的维修情况进行记录。
分析说明:业务流程分析的主要目的是要弄清楚一个公司的业务工作是如何进行的。
在进行业务流程分析时,需要按照原有信息流动过程,逐步的调查分析所用环节的处理业务、处理内容,处理顺序和对处理时间的要求,弄清楚各个环节需要的信息、信息来源、流径去向、处理方法、计算方法、提供信息的时间和信息形态等。
上图为是运输公司车辆管理业务流程图:上图为运输公司车辆管理顶层数据流图上图为运输公司车辆管理运营出车管理二层数据流图数据字典包括数据项、数据结构、数据流、数据存储和处理过程。
a)数据项条目举例名称:驾驶员编号说明:表示驾驶员的编号类型:变长字符串长度:6有关数据结构:驾驶员信息表名称:车辆卡编号说明:表示车辆的编号类型:变长字符串长度:6有关数据结构:车辆登记卡信息表b) 数据结构条目举例名称:驾驶员信息说明:表示公司驾驶员的信息结构:驾驶员编号、姓名、性别、驾驶证号码、身份证号码、联系电话、家庭住址、是否空闲有关的数据流、数据存储:驾驶员信息表、车辆运营信息表、名称:车辆登记卡信息说明:表示公司车辆的信息结构:车辆卡编号、牌照号码、车型、载货量、购车费用总额、是否空闲有关的数据流、数据存储:车辆登记卡信息表、车辆运营信息表c)数据流条目举例名称:车辆维修信息说明:表示公司车辆维修信息的流向数据来源:维修管理部数据流去向:高层领导包含的数据结构:车辆维修表(维修单号、车辆卡编号、维修日期、修理厂名称、报修人、报修费用)名称:车辆登记卡信息说明:表示车辆信息的流向数据来源:车辆管理部数据流去向:高层领导包含的数据结构:车辆登记卡信息表(车辆卡编号、牌照号码、车型、载货量、购车费用总额、是否空闲)d) 数据存储条目举例名称:车辆事故信息表说明:表示记录车辆事故的信息表编号:D4结构:车辆卡编号驾驶证号码、事故发生时间、事故地点、、、、、、、、有关数据流:P4—> D4e) 处理过程条目名称:车辆信息处理说明:当公司有新的运营任务时输入:D4 —> P4.2,P4.2 —> P3输出: P3 —> D1处理:查看D1中公司车辆的信息,作相应的处理二、概念设计1.根据上述需求分析,进行数据库概念设计,得出以下各个E—R模型图:车辆登记卡信息实体E-R图:驾驶员信息实体E-R图:车辆运营信息实体:出车实体E-R图:车辆维修信息实体E-R图:车辆事故信息实体E-R图:以下是总E—R模型图:该系统设计的实体集有:驾驶员信息实体集:具有的属性有驾驶员编号、驾照号码、姓名、性别、身份证号码、家庭住址、联系号码、是否空闲。
车票管理系统程序设计报告

车票管理系统程序设计报告一、引言车票管理系统是一个用于管理车票信息的软件系统。
该系统旨在提供方便快捷的购票、查询、退票等功能,以满足用户的出行需求。
本报告将详细介绍车票管理系统的设计思路、功能模块、数据结构以及程序实现等内容。
二、需求分析1. 功能需求车票管理系统需要具备以下功能:- 用户注册与登录:用户可以通过注册账号并登录系统,以便进行购票、查询等操作。
- 车票购买:用户可以根据出发地、目的地、日期等条件查询车票,并进行购买。
- 车票查询:用户可以根据出发地、目的地、日期等条件查询车票的余票情况。
- 车票退票:用户可以在购票后一定时间内申请退票,并进行退款。
- 车票管理:管理员可以对车票信息进行管理,包括添加、修改、删除等操作。
2. 性能需求车票管理系统需要满足以下性能需求:- 响应速度:系统应能够在用户购票、查询等操作时快速响应,提供流畅的用户体验。
- 安全性:系统应具备一定的安全机制,保护用户的个人信息和交易数据不被泄露或篡改。
- 扩展性:系统应具备一定的扩展性,方便后续对功能进行升级和扩展。
三、系统设计1. 架构设计车票管理系统采用三层架构设计,包括表示层、业务逻辑层和数据访问层。
表示层负责与用户进行交互,接收用户的请求并展示相应的界面;业务逻辑层负责处理用户的请求,进行业务逻辑的处理;数据访问层负责与数据库进行交互,进行数据的读取和写入操作。
2. 功能模块设计车票管理系统包括以下功能模块:- 用户模块:负责用户的注册、登录、个人信息管理等操作。
- 车票模块:负责车票的购买、查询、退票等操作。
- 管理员模块:负责管理员对车票信息的管理操作。
3. 数据结构设计车票管理系统的数据结构包括以下表:- 用户表:保存用户的基本信息,包括用户名、密码、手机号等。
- 车票表:保存车票的详细信息,包括车次、出发地、目的地、日期、余票数量等。
- 订单表:保存用户购票的订单信息,包括用户ID、车票ID、购票时间等。
客运站信息管理系统

客运站信息管理系统在现代社会,交通运输的便捷与高效对于人们的出行和经济的发展起着至关重要的作用。
客运站作为交通运输的重要枢纽,承担着旅客运输的组织和服务工作。
为了提高客运站的运营效率和服务质量,客运站信息管理系统应运而生。
客运站信息管理系统是一个综合性的信息化平台,它将客运站的各项业务流程进行数字化整合和管理,涵盖了票务销售、车辆调度、旅客服务、财务管理等多个方面。
通过这个系统,客运站能够实现信息的实时共享和协同工作,提高运营管理的科学性和准确性。
首先,票务销售是客运站的核心业务之一。
传统的售票方式往往需要旅客到售票窗口排队购票,不仅费时费力,还容易出现错误。
而客运站信息管理系统的票务模块则提供了多种便捷的售票渠道,包括窗口售票、网上售票、自助售票机售票等。
旅客可以根据自己的需求选择合适的购票方式,大大提高了购票的效率和便利性。
同时,系统能够实时更新票务信息,包括车次、座位、票价等,让旅客能够及时了解到准确的出行信息。
车辆调度是确保客运站正常运营的关键环节。
通过信息管理系统,调度人员可以清晰地了解每辆车的运行状态、发车时间、到达时间等信息。
根据客流量和路况等因素,科学合理地安排车辆的发车顺序和路线,提高车辆的利用率和运营效率。
此外,系统还能够对车辆进行实时监控,一旦出现故障或异常情况,及时采取措施进行处理,保障旅客的出行安全。
旅客服务是客运站的重要职责之一。
客运站信息管理系统为旅客提供了全方位的服务支持。
例如,旅客可以通过系统查询车次信息、候车室位置、检票口等。
系统还能够提供实时的车次晚点通知、失物招领等信息,让旅客能够及时掌握自己的行程动态。
对于特殊旅客,如残疾人、老年人、孕妇等,系统可以提前进行登记和安排,提供个性化的服务,体现客运站的人文关怀。
财务管理也是客运站信息管理系统的重要组成部分。
系统能够自动统计票务收入、车辆运营成本、人员工资等各项财务数据,生成准确的财务报表。
这不仅减轻了财务人员的工作负担,还提高了财务管理的透明度和准确性。
车票管理系统课程设计

车票管理系统课程设计一、课程目标知识目标:1. 理解车票管理系统的基本原理和功能需求;2. 掌握车票管理系统中数据库的设计与操作方法;3. 学会运用编程语言实现车票管理系统的核心功能;4. 了解车票管理系统的实际应用场景和发展前景。
技能目标:1. 能够运用所学知识设计并搭建一个简单的车票管理系统;2. 熟练使用数据库管理工具进行数据查询、更新和删除操作;3. 掌握基本的编程技巧,实现车票管理系统的功能模块;4. 能够分析实际问题,提出合理的解决方案,优化车票管理系统。
情感态度价值观目标:1. 培养学生对车票管理系统及相关技术领域的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 增强学生的实践操作能力,使其具备解决实际问题的信心;4. 引导学生关注车票管理系统在现实生活中的应用,认识到科技对生活的影响。
课程性质:本课程为信息技术学科的教学内容,以实践操作为主,理论讲解为辅。
学生特点:六年级学生具有一定的计算机操作基础,对新鲜事物充满好奇,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的动手能力和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 车票管理系统的基本原理与功能模块介绍- 系统需求分析- 功能模块划分- 数据库设计基本原理2. 数据库设计与操作- 数据表创建与维护- 数据查询、更新和删除操作- 数据库管理工具的使用3. 编程语言实现车票管理系统功能- 常用编程语言的介绍与选择- 编程实现车票预订、查询、退票等功能- 代码调试与优化4. 车票管理系统的实际应用案例与拓展- 系统在实际场景中的应用案例分析- 系统功能的拓展与优化- 车票管理系统的发展趋势教学内容安排与进度:第一周:车票管理系统的基本原理与功能模块介绍第二周:数据库设计与操作第三周:编程语言实现车票管理系统功能第四周:车票管理系统的实际应用案例与拓展教材章节及内容列举:第一章:信息技术基础1.1 计算机系统组成1.2 计算机网络基础1.3 数据库基本概念第二章:数据库技术2.1 数据库设计2.2 数据库操作2.3 数据库管理工具第三章:编程语言3.1 编程语言概述3.2 程序设计基础3.3 编程实现车票管理系统功能第四章:车票管理系统实际应用与拓展4.1 车票管理系统案例4.2 系统功能拓展4.3 车票管理系统发展趋势三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用以下多样化的教学方法:1. 讲授法:通过生动的语言和形象的表达,讲解车票管理系统的基本原理、功能模块和数据库设计等理论知识,为学生奠定扎实的基础。
车辆管理系统数据库表设计案例

车辆管理系统数据库表设计案例1. 车辆信息表(Vehicle Information Table):- 车辆编号(Vehicle ID)- 车牌号(License Plate Number)- 车辆类型(Vehicle Type)- 车辆品牌(Vehicle Brand)- 车辆颜色(Vehicle Color)- 车辆购买日期(Purchase Date)- 车辆当前状态(Current Status)2. 车辆维护记录表(Vehicle Maintenance Record Table): - 记录编号(Record ID)- 车辆编号(Vehicle ID)- 维护日期(Maintenance Date)- 维护项目(Maintenance Item)- 维护费用(Maintenance Cost)3. 驾驶员信息表(Driver Information Table):- 驾驶员编号(Driver ID)- 驾驶员姓名(Driver Name)- 驾驶员性别(Driver Gender)- 驾驶员年龄(Driver Age)- 驾驶员驾龄(Driver Experience)4. 驾驶员驾驶记录表(Driver Driving Record Table): - 记录编号(Record ID)- 驾驶员编号(Driver ID)- 车辆编号(Vehicle ID)- 开始日期(Start Date)- 结束日期(End Date)- 行驶里程(Mileage)5. 车辆违章记录表(Vehicle Violation Record Table): - 记录编号(Record ID)- 车辆编号(Vehicle ID)- 违章日期(Violation Date)- 违章地点(Violation Location)- 违章类型(Violation Type)- 罚款金额(Fine Amount)6. 保险信息表(Insurance Information Table):- 保险编号(Insurance ID)- 车辆编号(Vehicle ID)- 保险公司(Insurance Company)- 保险起始日期(Start Date)- 保险终止日期(End Date)- 保险费用(Insurance Cost)7. 加油记录表(Fueling Record Table):- 记录编号(Record ID)- 车辆编号(Vehicle ID)- 加油日期(Fueling Date)- 加油量(Fuel Amount)- 加油费用(Fuel Cost)8. 维修记录表(Repair Record Table):- 记录编号(Record ID)- 车辆编号(Vehicle ID)- 维修日期(Repair Date)- 维修项目(Repair Item)- 维修费用(Repair Cost)9. 车辆调度记录表(Vehicle Dispatch Record Table): - 记录编号(Record ID)- 车辆编号(Vehicle ID)- 调度日期(Dispatch Date)- 调度起始地点(Start Location)- 调度目的地(Destination)- 预计行驶里程(Estimated Mileage)10. 车辆位置记录表(Vehicle Location Record Table):- 记录编号(Record ID)- 车辆编号(Vehicle ID)- 记录日期(Record Date)- 经度(Longitude)- 纬度(Latitude)- 位置描述(Location Description)以上是车辆管理系统数据库表设计案例,包括车辆信息、维护记录、驾驶员信息、驾驶记录、违章记录、保险信息、加油记录、维修记录、车辆调度记录和车辆位置记录等表。
java语言课程设计实验报告汽车租赁系统

java语言课程设计实验报告汽车租赁系统实验名称:汽车租赁系统设计与实现一、实验目的本实验以汽车租赁系统为背景,旨在通过设计和实现一个基于Java语言的汽车租赁系统,加深对面向对象程序设计思想和Java语言的应用和理解,锻炼学生分析、设计和实现软件系统的能力,提高学生的实际编程能力和解决实际问题的能力。
二、系统功能需求1.用户功能:a.用户注册:用户可以通过用户名、密码和联系方式等信息注册一个个人账号。
b.用户登录:用户可以通过注册的用户名和密码进行登录。
c.车辆选择:用户可以浏览系统中的车辆信息,并选择自己需要的车辆进行租赁。
d.订单管理:用户可以查看自己的订单信息,包括订单状态、租赁时长、费用等。
e.个人信息管理:用户可以修改自己的个人信息。
2.管理员功能:a.车辆管理:管理员可以添加、删除或修改系统中的车辆信息。
b.订单管理:管理员可以查看所有用户的订单信息,并进行订单状态的管理。
c.用户管理:管理员可以查看用户信息,并进行用户账号的管理。
三、系统设计1.类设计:a.用户类(User):包括用户名、密码、联系方式等属性,并提供注册、登录、修改个人信息等方法。
b.车辆类(Car):包括车辆型号、价格、可租赁时长等属性。
c.订单类(Order):包括用户、车辆、租赁时长、费用等属性。
d.管理员类(Admin):具有管理员特权的用户,可以进行车辆和订单管理。
2.系统架构:系统采用客户端-服务器(C/S)架构,客户端通过图形用户界面(GUI)与服务器进行通信,服务器接收客户端的请求并进行相应的处理和响应。
3.数据库设计:采用关系型数据库管理系统(RDBMS)存储系统数据,包括用户信息、车辆信息、订单信息等。
使用SQL语言进行数据库的设计和操作。
四、系统实现1.技术选型:a.服务器端:采用Java语言,使用Spring框架搭建服务器,并使用Spring JDBC进行数据库操作。
b.客户端:采用Java语言,使用Swing框架实现图形用户界面。
长途客运站管理信息系统

长途客运站管理信息系统一、系统功能在交通运输系统高度发达繁忙的今天,人们在各地不同的城市之间的往返更加的频繁,极大地增加了旅客对于长途汽车的需求。
为了广大旅客能够方便快捷的找到所需要的长途汽车的信息。
1、本系统的功能主要包括以下几个方面:(1)路线查询可以查询通往目的地的不同路线,一边选择最佳路线。
(2)汽车查询这个功能主要是使乘客更好的选择合适的汽车。
(3)车票查询可以根据所了解的路线编号或汽车编号来查询是否还有剩余的车票,以便购买正确的车票。
二、功能模块设计1、长途客运站管理信息系统由以下四个模块组成,具体如下: (1)路线管理系统可以浏览、查询路线信息。
(2)汽车信息管理系统 可以浏览、查询汽车信息。
(3)车票信息系统可以浏览、查询车票信息。
(4)系统用户管理系统可以浏览、增加、修改、删除、更新用户信息。
2、长途客运站管理信息系统的系统功能结构如图1所示。
图1 系统功能结构图长途客运站管理信息系统路线管理 汽车管理 车票管理 用户管理 浏览查询浏览查询删除修改查询浏览查询浏览更新三、数据库设计1、需求分析长途客运管理系统方便用户查询汽车的需求,方便用户查询信息,可以随时掌握客运站发车的信息以及路线的选择。
方便了用户在客运站外查询,还明确了客户自身的需求,加快了客流量。
对用这个系统的用户来说也很容易,方便。
2、根据系统的数据流分析,通过对数据流的细划,得到了各抽象层次的分层数据流图。
从分层数据流图中不难导出初步的数据库关系模式。
通过关系规范化和优化设计,我们在长途客运站管理系统数据库中建立了以下表,主要的表和所属字段如下:路线信息表(编号、起始城市、到达城市、起始日期、起始时间、到达时间、价格); 汽车信息表(编号、型号、购买时间、使用时间、座位数、有无电视、空调); 车票信息表(编号、起始城市、到达城市、购票日期、时间、价格); 用户信息表(姓名、年龄、性别、证件号、密码); 3、逻辑设计:把把概念模式转换成DBMS 能处理的模式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长途汽车信息管理系统2021年12月长途汽车信息管理系统2. 3.数据库结构设计 2. 3.1.需求分析(1)系统管理对象长途汽车信息管理系统涉及的人有2类,登录系统希望买票的乘客、系统管理员,管 理的事务有车辆、路线信息、订单信息、车票信息。
(2)实体间联系实体之间主要事务联系如下:用户向管理员提出实名认证申请。
用户可查询相应的路线、车票、订单信息,可修改个人用户信息。
管理员审核实名认证信息,管理用户信息。
管理员维护车辆信息、增删改路线信息及车票信息管理员可对车辆信息、车票信息、订单信息等进行统计分析。
(3) 功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供管理员对车辆、路线、车票、订单信息的添加、插入、 删除、更新、查询操作;同时实现用户对车辆、路线、车票、订单的查询,以及对个人用 户信息的修改、查询功能。
(4)安全性与完整性需求对于长途汽车信息管理系统而言,涉及的实体较多,要维护好不同实体表之间的管理 关系,涉及相应的外围程序,保证数据输入的完整性。
同时要对注入信息进行识别并拦截, 防止数据库被恶意破坏。
图3. 3系统组成设计图实名认证申请2. 3. 2.概念结构设计根据上文分析,本系统主要实体有乘客(用户)、管理员、车辆信息、路线信息、订单信息、车票信息。
主要涉及的实体间联系有:用户、车票信息与订单信息之间存在“订购”的联系,且一个用户可购买多种车票,一种车票可被多位顾客购买,故涉及的关系为多对多关系。
车票信息与车辆信息之间存在“承载”关系,说明该车票所应搭乘的汽车,一类车票搭乘一辆汽车,汽车可承载多路车票的运行,所有车票信息与车辆信息之间为多对一关系。
车票与路线之间存在“经由”关系,一类车票具有唯一确定的路线,一条路线可由不同时段的多种车票经由,所以车票信息与路线信息为多对一关系。
各实体所涉及的属性如下:乘客(乘客ID,姓名,性别,联系方式,身份证号,登录密码)车辆(车辆ID,车牌号,座位数,总里程,运行状态,投用时间)路线(路线ID,始发站,终点站,总距离)车票(车票ID,数量,始发时间,到达时间,车票价格)订单(订单ID,生成时间,支付状况)根据以上设计,可以得到实体联系ER图及概念模型图如图3.4和图3.5所示。
图3. 4实体联系ER图图3. 5概念模型2. 3. 3.逻辑结构设计(1)概念模型转换为逻辑模型完成了概念模型的设计,以下将利用概念模型转换为逻辑模型的六条原则,对上述概念模型进行处理。
根据设计原则一,将各实体转换为关系表,各表结构如下:>乘客(乘客ID,姓名,性别,联系方式,身份证号,登录密码)■.gender.contactJd.card)>车辆(车辆ID,车牌号,座位数,总里程,投用时间)■Bus(Bid,busNum)seats,total_dis)bir_time)>路线(路线ID,始发站,终点站,总距离)■Route(Rid,start_station,end_station,totalDis)>车票(车票ID,数量,始发时间,到达时间,车票价格)■Ticket(Tid,number,depart_time,arr_time,price)>订单(订单ID,生成时间,支付状况)■Porder(Oid,genTime,ispay)根据多对一关系的设计转换原则,将车票与车辆之间多对一的承载关系,转化为将车辆的主键作为外键,吸取到车票信息中;同理,将车票与路线之间的多对一“运行于”关系,转化为将路线的主键作为外键,吸取到车票信息中。
因此,“车票”的新结构如下:车票(车票ID,车辆ID,路线ID,数量,始发时间,到达时间,车票价格)•Ticket(Tid,Bid,Rid,number,departjjme,air_timeprice)F K:Bid,Rid根据多对多关系的设计转换规则,将乘客与车票之间多对多的“购买”关系,转换为一个新的“订单”表,并吸取“乘客”的主键及“车票”的主键作为“订单”表的外键。
据此,“订单”表的结构如下:>订单(订单ID,乘客1D,车票1D,生成时间,支付状况)・Porder(Oid,Pid,Tid,genTime,ispay) FK:Pid,Tid(2)关系模型定义根据以上分析,该此数据库设计关系定义模型如下:>乘客(乘客ID,登录密码,姓名,性别,联系方式,身份证号)•.gender.contact.ld.card)主键为Pid,属性间的函数依赖关系:FD: {Pid,ld_card->pwd,name,gender,contact}>车辆(车辆ID,车牌号,座位数,总里程,投用时间)■Bus(Bid1busNum,seats,total_dis,bir_time)主键为Bid,属性间的函数依赖关系:FD: (Bid,busNum->seats I total_dis,bir_time)>路线(路线ID,始发站,终点站,总距离)•Route(Rid,start_station,end_station,totalDis)主键为Rid,属性间的函数依赖关系:FD: (Rid,start_station,end_station ->totalDis)>车票(车票ID,车辆ID,路线ID,数量,始发时间,到达时间,车票价格) ,Ticket(Tid,Bid,Rid,number,depart_time,arr_time,price)主键为Tid、Bid、Rid三个属性够成的表间依赖FK1:Bid依赖于bus表,FK2:Rid 依赖于route表。
属性间的函数依赖关系:FD: (Tid,Bid,Rid,depart_time,arr_time ->number,price)>订单(订单ID,乘客ID,车票ID,生成时间,支付状况) ■Porder(Oid,Pid,Tid,qenTime,ispay)主键为Oid、Bid、Tid三个属性够成的表间依赖FK1:Bid依赖于Bus表,FK2:Tid 依赖于Ticket表。
属性间的函数依赖关系:FD: (Oid.Pid.Tid.genTime ->ispay)2. 3. 4.物理模型根据以上设计得到该数据库设计的物理模型如图3.6所示:图3. 6物理模型根据得到的关系逻辑模型定义,“长途汽车信息管理系统”的全部标识符、 约束信息如下:Passenger :r )k>BusHid seats total dis bir_time busNum<Dk><nk>Tid Bid Rid number pricedepart lime arr timeint int int float datetime datetimeRouteRMstart_stat ion end station totalDi sint3k >varchar(20) varchar(20) float4、数据库实施与数据准备4.1数据库平台简介木次数据库设计使用了PowerDesigner,服务实现使用Mysql Community Serve 8.0o PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。
PowerDesigner独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与.NET、Workspace> PowerBuilder、Java> Eclipse等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。
MySQL是一款安全、跨平台、高效的,并与PHP、Java等主流编程语言紧密结合的数据库系统。
该数据库系统是由瑞典的MySQL AB公司开发、发布并支持,由MySQL的初始开发人员David Axmark 和Michael Monty Widenius 于1995 年建立的。
MySQL 的象征符号是一只名为Sakila的海豚,代表着MySQL数据库的速度、能力、精确和优秀本质。
4. 2程序实现/* DBMS name: MySQL 5.0 */ /* Created on: 2021/7/5 2:09:36 */ /*==============================================================*/drop table if exists Bus;drop table if exists POrder;drop table if exists Passenger;drop table if exists Route;drop table if exists Ticket:/*==============================================================*/,* Table: Bus *//*==============================================================*/create table Bus(Bid int not null AUTO_INCREMENT,seats int,totaldis float,bir_time date,busNum varchar(7),primary key (Bid));/* 二二二二二二二二二二==二二二二二二二==二二二二二==二二二二二二二二二二二二二二二二二二二二二==二二二 */* Table: POrder *//*二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二*/ create table POrder(Oid int not null AUTO INCREMENT,Pid int,Tid int,isPay char (1),genTime TIMESTAMP,primary key (Oid));/*==============================================================*//* Table: Passenger *//*==============================================================*/create table PassengerPid int not null AUT(LINCREMENT,pwd varchar(20),name varchar(20),gender char (1),contact varchar(11),Id_card Vcirchar (20),primary key (Pid));/*===========================================================*//* Table: Route *//*==============================================================*/create table Route(Rid int not null AUT0_INCREMENT,startstation varchar(20),end_station varchar(20),totalDis float,primary key (Rid) );/*二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二*/ /* Table: Ticket *//*===========================================================*/create table Ticket(Tid int not null AUTO_INCREMENT,Bid int,Rid int,number int,price float,depart_time TIMESTAMP,arr_time TIMESTAMP,primary key (Tid));alter table POrder add constraint FKbooking foreign key (Pid) references Passenger (Pid) on delete restrict on update restrict;alter table POrder add constraint FKrelateTo foreign key (Tid) references Ticket (Tid) on delete restrict on update restrict;alter table Ticket add constraint FK_board foreign key (Bid) references Bus (Bid) on delete restrict on update restrict;alter table Ticket add constraint FK travalOn foreign key (Tid) references Route (Rid) on delete restrict on update restrict;4. 3数据库触发器设计>在用户进行实名认证时,用户需要输入相应的身份证号码,为了保证身份证号码的正确性,须设置检验的触发器,检验身份证号码位数:CREATE TRIGGER 'client_ID_judge' BEFORE UPDATE ON 'passenger* FOR EACH ROWBEGINIF(CHAR_LENGTH(NEW.Id_card)==18)THENSET new.Id_card=old.Id_card;END IF;>在用户输入手机号码后,需要对用户输入的手机号码位数进行检验,故在用户信息表中创建关于手机号码位数检验的触发器。