《数据库原理及应用》课程设计报告题目:汽车租赁管理系统的数据库设计学号:姓名:指导教师:2012年1月目录1.项目背景 01.1选题背景 01.2系统目标和实现技术 02.需求分析 (1)2.1业务流程分析 (1)2.1.1车辆信息查询 (1)2.1.2创建车辆租借记录 (2)2.1.3车辆归还 (3)2.1.4续租 (4)2.2数据流程分析 (6)2.2.1汽车租借系统的顶层数据流程图 (6)2.2.2汽车租借系统第二层数据流程图 (7)2.3数据字典 (8)2.3.1数据流的描述 (8)2.3.2处理逻辑的描述 (9)2.3.3数据存储的描述 (10)3.概念结构设计 (11)3.1CDM图 (11)4.逻辑结构设计 (11)4.1PDM图 (12)5.物理结构设计 (12)6.总结 (15)7.参考文献 (16)1.项目背景1.1选题背景随着车辆工业的发展和汽车的普及,汽车租赁成为近年来兴起的一个新兴行业,使用汽车租赁管理系统可以规范企业的管理和经营行为,减少企业的经营成本,提高工作效率。
另外,随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公,即从原来的人工记录管理模式转变为电脑一体化管理。
原来的数据处理手工操作,工作量大,出错率高,出错后不易更改。
租车公司采取手工方式对车辆租借情况进行人工管理,由于信息比较多,信息的管理工作混乱而又复杂,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
1.2系统目标和实现技术我立足于以上原则建立了一个租车公司车辆管理系统,使车辆管理工作规范化,系统化,程序化,避免车辆管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的实现对车辆信息的管理。
本系统用户面向各租赁汽车企业的工作人员和相关领导,主要功能包括系统用户管理、日常业务信息管理和车辆及客户信息管理等。
汽车租赁管理就是对车辆信息和客户信息的管理,主要包括车辆的出租状态、车辆的基本信息、客户信息的管理等。
由于这些过程间的关系复杂,有一对一的关系,一对多的关系,也有多对多的关系,所有这些工作使汽车车管理工作变得量大而又复杂,以前包括现在还有很多租赁公司采用人工管理,直接导致了错误的产生,服务质量的低下。
汽车租赁管理系统的开发使得这一状况得到了根本的改善。
这套管理系统包括涵盖了车辆租赁业务的各个方面。
使得汽车租赁服务可以快速、规范地完成,节省了人力物力,提高了服务质量和经济效益。
此数据库系统为了实现汽车出租公司的汽车,人员,汽车租借等数据的管理而设计的系统。
系统主要提供了车辆信息查询,车辆租借记录,车辆归还和续租四个功能。
本系统提供将按照现代数据库开发设计过程进行分析设计并实现。
2.需求分析这个题目中需要实现的系统功能有车辆信息查询,创建车辆租借记录,车辆归还和续租2.1业务流程分析数据库系统将支持车辆查询,创建车辆租借记录,车辆归还,逾期罚款和续租四个功能,以下是详细分析:2.1.1车辆信息查询:功能简要说明:根据客户需要(例如:车颜色,出租价格,类型),查询出租的车辆信息。
详细过程:1.客户输入需要查询的车辆信息,如:车类型,车颜色,价格2.系统查询数据库并返回符合用户查询条件的结果数据库实现方案:该功能实现起来比较简单,只需要建立起一张汽车信息的表,然后进行单表查询,查询完后将结果返回给用户就可以了。
查询条件查询过程查询结果图2_12.1.2创建车辆租借记录:简要分析:当客户选择了租借的车辆,并办理相关手续后,系统将生产一条租借记录详细过程:1.客户与公司签署汽车租借合同并付款2.员工将车辆,客户,合同,押金等信息录入数据库3.员工给客户一张借车单,客户就可以开走车辆数据库实现方案:实现此功能需要建立一张汽车租借记录表,当员工办理完一次租借业务后,就会将这次租借信息输入数据库中,输入的信息包括:客户的信息,车的信息,和办理员工的信息。
并且,被出租的车辆状态会被标识为已被出租。
汽车租借合同被出租车辆的ID修改已被出租汽车的状态图2_22.1.3车辆归还:简要分析:当客户使用完车后,将车辆归还的过程详细过程:1.客户将车辆归还公司2.公司相关人员检查车辆是否完整,不完整的会与公司相关人员协商赔偿(划分在数据库业务范畴之外)3.如果完整,则直接办理归还手续数据库实现方案:此功能中大部分业务逻辑都是在数据库系统之外完成的,唯一和本系统有关的操作就是当归还成功后,归还车辆的汽车表中的状态将该为可出租,归还汽车的ID 归还汽车的ID 归还汽车的ID 归还汽车的ID检测归还汽车完整性(是否损坏)生成“已完成交易记录”修改归还汽车出租状态汽车有无损坏删除正在出租车辆的记录图2_32.1.4续租:简要分析:如果客户需要继续续租汽车,则联系相关人员可直接办理详细过程:1.客户联系工作人员,要求续租,并给予工作人员续租车辆的ID2.工作人员根据汽车的ID办理汽车续租合同3.完成续租合同后就可以将续租记录输入数据库数据库实现方案:出于让数据库实现更简单,方便,易于维护的目的。
本数据库就简单的在车辆出租记录中添加了“续租天数”字段,如果需要续租,只需要在“汽车出租”表中添加“续租天数”就可以了。
公司可以根据“汽车出租”表中“出租天数”,“续租天数”等字段计算租借价格。
办理续租合同租借记录ID图2_42.1.5逾期罚款:简要分析:为了节约人力,公司的软件系统应该具备自动查找逾期车辆,并罚款的功能,如果客户没有按预期的时间归还车辆,那么系统会根据逾期天数,生成罚款金额详细过程:1.软件链接数据库查找逾期未还汽车2.处理逾期未还,产生处理结果3.将处理结果输入数据库数据库实现方案:为了实现此功能,我在数据库的“汽车租借记录”表中添加了“租借起始日”,“预期归还日”,和“罚款”三个字段。
只需要对此表中的三个字段进行相应修改就可以实现此功能。
汽车租借记录ID处理逾期未还图2_52.2数据流程分析2.2.1汽车租借系统的顶层数据流程图:图2_52.2.2汽车租借系统第二层数据流程图:图2_62.3数据字典2.3.1数据流的描述:2.3.2处理逻辑的描述2.3.3数据存储的描述3.概念结构设计3.1CDM 图:1,n1,n1,n1,n1,n1,n员工员工编号员工姓名性别职位<pi>Integer Characters (20)Characters (4)Characters (20)<M>Identifier_1...<pi>汽车汽车牌照汽车型号汽车颜色种类品牌状态车辆状况其他<pi>Integer Characters (20)Characters (20)Characters (20)Characters (20)Boolean Text Text <M>Identifier_1...<pi>客户客户编号客户姓名性别身份证号联系电话其他<pi>Integer Characters (20)Characters (4)Integer Text Text <M>Identifier_1...<pi>出租记录员工编号出租记录编号客户编号汽车牌照起始日预期到期日押金续租天数Integer Integer Integer Integer Date Date Integer Integer已完成交易记录交易编号交易金额完成交易时间员工编号客户编号汽车编号Integer MoneyDate & Time Integer Integer Integer图3_14.逻辑结构设计4.1PDM图:FK_已完成交易记录_已完成交易记录2_客户员工员工编号员工姓名性别职位...intchar(20)char(4)char(20)<pk>汽车汽车牌照汽车型号汽车颜色种类品牌状态车辆状况其他...intchar(20)char(20)char(20)char(20)bittexttext<pk>客户客户编号客户姓名性别身份证号联系电话其他...intchar(20)char(4)inttexttext<pk>出租记录员工_员工编号客户_客户编号汽车_汽车牌照员工编号出租记录编号客户编号汽车牌照起始日预期到期日押金续租天数...intintintintintintintdatetimedatetimeintint<pk,fk1><pk,fk2><pk,fk3>已完成交易记录员工_员工编号客户_客户编号汽车牌照交易编号交易金额完成交易时间员工编号客户编号汽车编号...intintintintmoneydatetimeintintint<pk,fk1><pk,fk2><pk,fk3>图4_15.物理结构设计/*==============================================================*/ /* DBMS name: Microsoft SQL Server 2005 *//* Created on: 2012/1/10 21:00:32 *//*==============================================================*/已省去头文件信息/*==============================================================*//* Table: 出租记录*//*==============================================================*/create table 出租记录(员工_员工编号int not null,客户_客户编号int not null,汽车_汽车牌照int not null,员工编号int null,出租记录编号int null,客户编号int null,汽车牌照int null,起始日datetime null,预期到期日datetime null,押金int null,续租天数int null,constraint PK_出租记录primary key (员工_员工编号, 客户_客户编号, 汽车_汽车牌照) )go/*==============================================================*//* Index: 出租记录_FK *//*==============================================================*/create index 出租记录_FK on 出租记录(员工_员工编号ASC)go/*==============================================================*//* Index: 出租记录2_FK *//*==============================================================*/create index 出租记录2_FK on 出租记录(客户_客户编号ASC)go/*==============================================================*//* Index: 出租记录3_FK *//*==============================================================*/create index 出租记录3_FK on 出租记录(汽车_汽车牌照ASC)go/*==============================================================*//* Table: 员工*//*==============================================================*/create table 员工(员工编号int not null,员工姓名char(20) null,性别char(4) null,职位char(20) null,constraint PK_员工primary key nonclustered (员工编号))go/*==============================================================*//* Table: 客户*//*==============================================================*/create table 客户(客户编号int not null,客户姓名char(20) null,性别char(4) null,身份证号int null,联系电话text null,其他text null,constraint PK_客户primary key nonclustered (客户编号))go/*==============================================================*//* Table: 已完成交易记录*//*==============================================================*/create table 已完成交易记录(员工_员工编号int not null,客户_客户编号int not null,汽车牌照int not null,交易编号int null,交易金额money null,完成交易时间datetime null,员工编号int null,客户编号int null,汽车编号int null,constraint PK_已完成交易记录primary key (员工_员工编号, 客户_客户编号, 汽车牌照) )go/*==============================================================*//* Index: 已完成交易记录_FK *//*==============================================================*/create index 已完成交易记录_FK on 已完成交易记录(员工_员工编号ASC)go/*==============================================================*//* Index: 已完成交易记录2_FK *//*==============================================================*/create index 已完成交易记录2_FK on 已完成交易记录(客户_客户编号ASC)go/*==============================================================*//* Index: 已完成交易记录3_FK *//*==============================================================*/create index 已完成交易记录3_FK on 已完成交易记录(汽车牌照ASC)go/*==============================================================*//* Table: 汽车*//*==============================================================*/create table 汽车(汽车牌照int not null,汽车型号char(20) null,汽车颜色char(20) null,种类char(20) null,品牌char(20) null,状态bit null,车辆状况text null,其他text null,constraint PK_汽车primary key nonclustered (汽车牌照))go6.总结这次课程设计我的题目是汽车租赁管理系统,通过这次可视化编程课程设计,我了解了一个完整的数据库系统设计的步骤,掌握了租车公司汽车租赁系统的业务流程及管理,巩固了我在课堂上所学的理论知识,开拓了自己的知识面,同时也让我看到了自己的不足,很多东西单独用可以做出来,可是连贯起来就出现了很多错,还有很多不足之处需要在今后的学习和工作中继续努力。