汽车租赁管理系统(DOC41页).doc

上传人:牧羊曲112 文档编号:2092244 上传时间:2023-01-09 格式:DOC 页数:40 大小:534.50KB
返回 下载 相关 举报
汽车租赁管理系统(DOC41页).doc_第1页
第1页 / 共40页
汽车租赁管理系统(DOC41页).doc_第2页
第2页 / 共40页
汽车租赁管理系统(DOC41页).doc_第3页
第3页 / 共40页
汽车租赁管理系统(DOC41页).doc_第4页
第4页 / 共40页
汽车租赁管理系统(DOC41页).doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《汽车租赁管理系统(DOC41页).doc》由会员分享,可在线阅读,更多相关《汽车租赁管理系统(DOC41页).doc(40页珍藏版)》请在三一办公上搜索。

1、长 沙 学 院课程设计说明书题目汽车租赁管理系统学院计数院专业(班级)软件工程姓名学号指导教师杨刚、潘怡起止日期2017/5/29-2017/6/29课程设计任务书课程名称:数据库系统原理课程设计设计题目:汽车租赁管理系统。已知技术参数和设计要求:题目:汽车租赁管理系统1、 某汽车租赁公司汽车租赁管理系统需要如下信息:工作人员信息包括:工号、姓名、性别、联系电话等。客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁状态、购入日期等。车辆类别信息包括:分类号,库存数。其业务规则描述如下:一个工作人员可以对很

2、多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。2、系统功能的基本要求:可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。各阶段具体要求:1、需求分析阶段l 定义数据项的含义和取值l 定义目标系统的数据流2、概念结构设计阶段l 画出实体模型E-R图3、逻辑结构设计阶段l 将实体模型转化为关系模型l 给出每个关系的主关键字和函数依赖集l 分析你所设计的关系数据库模式是否属于

3、3NF4、物理设计阶段l 确定所有字段的名称、类型、宽度、小数位数及完整性约束 l 确定数据库及表的名称及其组成 l 确定索引文件和索引关键字5、数据库安全及维护设计阶段l 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)l 为了实现复杂的数据完整性约束,设计适当的触发器l 设计一个适合的数据库备份策略6、实施阶段l 要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1

4、4,第二周完成58,论文同步进行;1)选定题目2)需求分析3)概念结构设计4)逻辑结构设计5)物理设计6)数据库安全及维护设计7)数据库上机实现8)答辩计划时间指导老师班级1516周潘怡、杨刚15软件1班1516周潘怡、杨刚15软件2班1516周卓琳、田清龙15软件3班1516周卓琳、田清龙15软件4班1516周张肖霞、马丽15软件5班1516周张肖霞、马丽 15软件6班注意事项n 提交电子文档 长沙学院课程设计任务书(每学生1份) 长沙学院课程设计论文(每学生1份) 长沙学院课程设计鉴定表(每学生1份)指导教师签名: 日期: 教研室主任签名: 日期:院长签名: 日期: 长沙学院课程设计鉴定表

5、姓名学号专业班级设计题目指导教师指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 学院意见:院长签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录一、引言71.1编写目的71.2参考资料7二、需求规约72.1 业务描述72.2 需求分析8三、数据库环境说明8四、数据库的命名规则83.1 数据库对象命名规则83.2 数据项编码规则9五、逻辑设计105.1创建与数据库相关的那部分实体关系图(ERD)、表及关系图105.2创建数据库系统的关系模型12六、物理设计126.1表汇总126.2存

6、储过程176.3触发器21七、安全性设计287.1防止用户直接操作数据库的方法287.2角色与权限28八、数据库管理与维护说明29九、附录:源代码30一、引言1.1 编写目的本文档是汽车租赁系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2 参考资料资料名称作者文件编号、版本数据库系统概论王珊、萨师煊2006年5月第4版二、 需求规约2.1 业务描述2.1.1数据库创建背景该数据库建立于sq l server 2008 r2,环境为windows7系统名称:

7、汽车租赁管理系统。系统的开发者:小组成员系统的用户:租车客户以及租赁公司的工作人员。2.1.2 数据库系统要完成的业务流程及工作内容 首先完成需求分析,根据需求关系画出ER-图,并写出关系模式。根据ER图用SQL server创建与数据库相关的表,视图,存储过程以及触发器。系统的功能要求基本实现对车辆,租赁客户的查询。可以查询客户租赁的历史记录。可以查看汽车价格、库存,可以查看汽车的租借、归还、以及费用。2.1.3揭示该数据库的资源需求和设计约束2.2 需求分析2.2.1功能需求(1) 车辆管理 主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本信息,包括车牌号、汽车颜色

8、、购入日期、类别及租赁状态等,也可以添加新购进来的汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以及做出更好的租赁选择。(2)业务管理主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的车牌号,所生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。三、 数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明汽车租赁Sql server 2008 r2Windows 7Sql server 2008 r2Microsoft office visio 2003

9、E:sqlSQL实例用途说明四、 数据库的命名规则3.1 数据库对象命名规则:数据库对象命名规则备注表英文命名例如:car汽车表存储过程proc_功能描述字符串例如:proc_car汽车查询的存储过程触发器功能命名例如:delete_car删除汽车视图View_功能描述字符串例如:view_rent查看租借信息表3.2 数据项编码规则: 数据项命名规则数据类型长度范围备注汽车编号所在地+字母号+数字Varchar类型10位租赁状态True or falseBit 类型订单号流水号Varchar类型10位客户号字母+数字编号Varchar类型10位工作人员编号数字Varchar类型10 位汽车类

10、型号字母Varchar类型10位五、 逻辑设计5.1创建与数据库相关的那部分实体关系图(ERD)、表及关系图表customersCusNo PYVarchar(10) NOTNullCusNameVarchar(10) NOTNullCusSexVarchar(2) NOTNullCusAgeVarchar(4)NOTNullCusPhoneVarchar(10)CusCompanyVarchar(10)NOTNullCusIdentityVarchar(10)NOTNull表rentRecord PYVerchar(10)Not nullRentDatedateNot nullReturnD

11、atedateNot nullCusNo Verchar(10)Not nullCarNo Verchar(10)Not nullRecordcostVerchar(100Not Null表carCarNo PYVerchar(10)Not nullCarColorVerchar(10)Not nullCarDatedateNot nullCarClassNo FYVerchar(10)Not nullCarStatebitNot null表carclassCarClassNo PYVerchar(10)Not nullCarClassCntVarchar(10)Not nullCarClas

12、sDayPriceVerchar(10)Not nullCarClassDayPriceExceedVerchar(100Not nullCarClassMonthPrice Verchar(10)Not nullCarClassSeat Verchar(10)Not null表workerWorkNo PYVerchar(10)Not nullWorkPassWordVerchar(10)Not nullWorkNameVerchar(10)Not nullWorkSexVerchar(2)Not nullWorkPhoneVerchar(10)表manageWorkNo PYVerchar

13、(10)Not nullCarNo PYVerchar(10)Not null5.2创建数据库系统的关系模型1.工作人员(工号、密码、姓名、性别、联系电话)2.客户信息(身份证号、密码、姓名、性别、所在单位、联系电话)、3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号)4车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价格、品牌)5.管理(工号、车牌号)备注:(工号和车牌号共同作为管理表的主键,同时也是外键)6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额)六、 物理设计6.1表汇总表名功能说明car存储车辆信息carclass存储

14、车辆类别的信息rent存储租赁的信息customers存储客户信息worker存储工作人员的信息manage存储工作人员和车辆之间的关系6.1.1表car:车辆信息表表名car数据库用户Car_rent主键CarNo索引字段CarClassNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1CarNovarchar(10)NY高无主键2CarClassNovarchar(10)NN高无外键3CarStatebit(2)NN低00租赁状态4CardatedateNN低无购入日期5CarColorvarchar(10)NN低无汽车颜色sql脚本DROP TABLE IF E

15、XISTS car;CREATE TABLE car ( CarNo varchar(10) NOT NULL, CarColor varchar(10) NOT NULL, CarDate date NOT NULL, CarSta bit(10) NOT NULL, CarClassNo varchar(10) NOT NULL, PRIMARY KEY (CarNo), KEY CarClassNo (CarClassNo), CONSTRAINT CarClassNo FOREIGN KEY (CarClassNo) REFERENCES carclass (CarClassNo)6.

16、1.2表carclass:车辆类别表表名carclass数据库用户Car_rent主键CarClassNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1CarClassNovarchar(10)NY高无主键2CarClassCntvarchar(10)NN低无库存数3CarClassSeatbit(2)NN低无座位数4CarClassDayPrice2dateNN低无日租价格5CarClassDayPrice1varchar(10)NN低无日租超公里价格6CarClassMonthPricevarchar(10)NN低无月租价格7CarClassBrandvarcha

17、r(10)NN低无车辆品牌sql脚本DROP TABLE IF EXISTS carclass;CREATE TABLE carclass ( CarClassNo varchar(10) NOT NULL, CarClassCnt varchar(10) NOT NULL, CarClassDayPrice1 varchar(10) NOT NULL, CarClassDayPrice2 varchar(10) NOT NULL, CarClassMonthPrice varchar(10) NOT NULL, CarClassBrand varchar(10) NOT NULL, CarC

18、lassseat varchar(10) NOT NULL, PRIMARY KEY (CarClassNo)6.1.3表customer:客户信息表表名customer数据库用户Car_rent主键CusNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1CusNovarchar(10)NY高无主键2CusPasswordvarchar(10)NN高无登录密码3CusNamevarchar(10)NN低无客户姓名4CusSexvarchar(10)NN低无客户性别5CusAgevarchar(10)NN低无客户年龄6CusPhonevarchar(10)NN低无客户电

19、话7CusCompanyvarchar(10)NN低无公司sql脚本DROP TABLE IF EXISTS customer;CREATE TABLE customer ( CusNo varchar(10) NOT NULL, CusName varchar(10) NOT NULL, CusSex varchar(2) NOT NULL, CusAge varchar(4) NOT NULL, CusPhone varchar(20) NOT NULL, CusCompany varchar(20) NOT NULL, CusPassword varchar(10) NOT NULL,

20、PRIMARY KEY (CusNo)6.1.4表worker:工作人员信息表表名worker数据库用户Car_rent主键WorkNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1WorkNovarchar(10)NY高无主键2WorkPasswordvarchar(10)NN低无密码3WorkNamevarchar(10)NN低无姓名4WorkSexvarchar(10)NN低无性别5WorkPhonevarchar(10)NN低无电话sql脚本DROP TABLE IF EXISTS worker1;CREATE TABLE worker1 ( WorkNo v

21、archar(10) NOT NULL DEFAULT , WorkPassword varchar(10) DEFAULT NULL, WorkName varchar(10) DEFAULT NULL, WorkSex varchar(10) DEFAULT NULL, WorkPhone varchar(10) DEFAULT NULL, PRIMARY KEY (WorkNo)6.1.5表rent:租赁表表名rent数据库用户Car_rent主键RecordNo索引CarNo、CusNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1RecordNovarcha

22、r(10)NY高无主键2CarNovarchar(10)NN高无外键3CusNovarchar(10)NN低无外键4RecordCostvarchar(10)NN低无总金额5RecordRentDatevarchar(10)NN低无租赁时间6RecordReturnDatevarchar(10)NN低无归还时间sql脚本DROP TABLE IF EXISTS rent;CREATE TABLE rent ( RecordNo varchar(10) NOT NULL, RecordRentDate datetime NOT NULL, RecordReturnDate datetime NO

23、T NULL, CusNo varchar(10) NOT NULL, CarNo varchar(10) NOT NULL, RecordCost varchar(10) DEFAULT NULL, PRIMARY KEY (RecordNo), KEY CusNo (CusNo), KEY CarNo (CarNo), CONSTRAINT CarNo FOREIGN KEY (CarNo) REFERENCES car (CarNo), CONSTRAINT CusNo FOREIGN KEY (CusNo) REFERENCES customer (CusNo)6.1.6表manage

24、:管理表表名Wmanage数据库用户Car_rent主键CarNo、WorkNo索引CarNo序号字段名称数据类型允许为空Y/N唯一Y/N区别度默认值约束条件/说明1WorkNovarchar(10)NY高无主键2CarNovarchar(10)NN高无主键sql脚本DROP TABLE IF EXISTS manege;CREATE TABLE manege ( WorkNo varchar(10) NOT NULL DEFAULT , CarNo varchar(10) NOT NULL DEFAULT , PRIMARY KEY (WorkNo,CarNo), KEY CarNo (Ca

25、rNo), CONSTRAINT manege_ibfk_1 FOREIGN KEY (CarNo) REFERENCES car (CarNo), CONSTRAINT WorkNo FOREIGN KEY (WorkNo) REFERENCES worker1 (WorkNo)6.2 存储过程6.2.1 查询每辆车的状态和库存数关键代码use car_rentgoCREATE PROCEDURE proc_carasselect car.CarNo,car.CarState,carclass.CarClassCntfrom car,carclasswhere car.CarClassNo=

26、carclass.CarClassNo6.2.2查询所输入客户账号的租赁历史记录关键代码use car_rentgocreate procedure proc_customers(CusNo varchar(10)asselect rent.Record,rent.RentData,rent.RetunDate,rent.RecordCost,rent.CusNo, car.CarNo,carclass.CarClassBrandfrom rent,car,carclasswhere CusNo=CusNo and rent.CarNo=car.CarNo and car.CarClassNo

27、=carclass.CarClassNo; 执行exec proc_customers A016.2.3 查询输入客户账号的租赁历史记录关键代码use car_rentgocreate procedure proc_car_rent(CarNo varchar(10)asselect rent.Record,rent.RentData,rent.RetunDate,rent.CarNo,rent.CusNo,rent.RecordCostfrom rentwhere rent.CarNo=CarNo; 执行exec proc_car_rent 湘A88886.2.4 查询通过输入订单号查询订单

28、信息关键代码use car_rentgocreate procedure proc_record(Record varchar(10)asselect rent.Record,rent.RentData,rent.RetunDate,rent.CusNo,rent.RecordCostfrom rentwhere rent.Record=Record;执行exec proc_record 16.2.5通过输入类别统计汽车的租赁金额和剩余的库存数关键代码use car_rentgocreate procedure proc_carclassno(carclassno varchar(10)ass

29、elect carclass.CarClassDayPrice1,carclass.CarClassCntfrom carclasswhere carclass.CarClassNo=carclassno; 执行exec proc_carclassno A6.2.6 删除一辆车关键代码use car_rentgocreate procedure proc_delete_car(carno varchar(10)asdelete from carwhere car.CarNo=carno执行exec proc_delete_car 湘B88886.2.7 删除一条记录关键代码use car_re

30、ntgocreate procedure proc_delete_rent(record varchar(10)asdelete from rentwhere rent.Record=record执行exec proc_delete_rent 26.2.8还车(修改还车日期,默认没还车前,还车日期等于借车日期,只有当没还过车的时候才能修改还车日期)关键代码use car_rentgocreate procedure proc_return_car(record varchar(10), returndate date)asupdate rentset RetunDate=returndatew

31、herereturndaterent.RetunDateand DATEDIFF(DAY,rent.RentData,rent.RetunDate)=0执行exec proc_return_car 1,2016-8-176.3触发器6.3.1输入新的车牌号及信息,此车辆所对应车辆类别的库存数自动增加关键代码use car_rentgoCreate Trigger add_newcar On car after insert As UPDATE carclassSET CarClassCnt=CarClassCnt+1WHERE carclass.CarClassNo IN (SELECT Ca

32、rClassNo from INSERTED i) GO6.3.2删除车牌号及信息,此车辆所对应车辆类别的库存数自动减少关键代码use car_rentgoCreate Trigger delete_car On car after delete As UPDATE carclassSET CarClassCnt=CarClassCnt-1WHERE carclass.CarClassNo IN (SELECT CarClassNo from deleted i) GO6.3.3 :当产生一个新的订单时,订单中所预订车辆所对应车辆类别的库存数自动减少。(借车时)关键代码use car_rent

33、goCreate Trigger rent_car On rent after insert As UPDATE carclassSET CarClassCnt=CarClassCnt-1where CarClassNo in(select CarClassNo from car where CarNo in (select CarNo from rent where CarNo in (select CarNo from inserted )GO6.3.4修改订单还车日期时时,订单中所预订车辆所对应车辆类别的库存数自动增加。(还车时)关键代码use car_rentgoCreate Trig

34、ger return_car On rent after update As UPDATE carclassSET CarClassCnt=CarClassCnt+1where CarClassNo in (select CarClassNo from car where CarNo in (select CarNo from deleted )Go6.3.5当产取消一个订单时,订单中所预订车辆所对应车辆类别的库存数自动增加关键代码use car_rentgoCreate Trigger delete_rent_car On rent after delete As UPDATE carcla

35、ssSET CarClassCnt=CarClassCnt+1where CarClassNo in(select CarClassNo from car where CarNo in (select CarNo from deleted where car.CarState=false)GO6.3.6当产生一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(ture)变为预订状态(false)(借车时)关键代码use car_rentgoCreate Trigger rent_state_car On rent after insert As update carset CarState=

36、falsewhere CarNo in(select CarNo from rent where CarNo in (select CarNo from inserted );GO6.3.7改订单还车日期时时,订单中所预订车辆的租赁状态由预订状态(false)变为空闲状态(ture)。(还车时)关键代码use car_rentgoCreate Trigger return_state_car On rent after update As UPDATE carset CarState=truewhere CarClassNo in (select CarClassNo from car where CarNo in (select CarNo from deleted )Go6.3.8当取消一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(false)变为预订状态(ture)关键代码use car_rentgoCreate Trigger delete_rent_state_car On rent after delete As update carset CarState=truewhere CarNo in (select CarNo from deleted where car.CarState=false );GO6.3.9修改订单还车日期时时,更新实际花费。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号