汽车租赁管理系统.doc_第1页
汽车租赁管理系统.doc_第2页
汽车租赁管理系统.doc_第3页
汽车租赁管理系统.doc_第4页
汽车租赁管理系统.doc_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_ 精品资料 长 沙 学 院 课 程 设 计 说 明 书 题目汽车租赁管理系统 学院计数院 专业(班级)软件工程 姓名 学号 指导教师杨刚、潘怡 起止日期2017/5/29-2017/6/29 _ 精品资料 课程设计任务书 课课程名称:程名称:数据库系统原理课程设计 设计题设计题目:目:汽车租赁管理系统。 已知技已知技术术参数和参数和设计设计要求:要求: 题目:汽车租赁管理系统 1 某汽车租赁公司汽车租赁管理系统需要如下信息: 工作人员信息包括:工号、姓名、性别、联系电话等。 客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。 车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁 状态、购入日期等。 车辆类别信息包括:分类号,库存数。 其业务规则描述如下: 一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只 能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。 2、系统功能的基本要求: 可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统计汽 车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模 拟客户对汽车的租借、归还业务。 各各阶阶段具体要求:段具体要求: 1、需求分析阶段 定义数据项的含义和取值 _ 精品资料 定义目标系统的数据流 2、概念结构设计阶段 画出实体模型 E-R 图 3、逻辑结构设计阶段 将实体模型转化为关系模型 给出每个关系的主关键字和函数依赖集 分析你所设计的关系数据库模式是否属于 3NF 4、物理设计阶段 确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字 5、数据库安全及维护设计阶段 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略 6、实施阶段 要求所有操作必须在查询分析器中用 SQL 语句或系统存储过程完成。 设计设计工作量:工作量: (1)软件设计:完成问题陈述中所提到的所有需求功能。 (2)论文:要求撰写不少于 3000 个文字的电子文档,详细说明各阶段具体要求。 工作工作计计划:划: _ 精品资料 安排两周时间进行课程设计,软件开发步骤如下,第一周完成 14,第二周完成 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 班 注意事注意事项项 提交提交电电子文档子文档 长沙学院课程设计任务书(每学生 1 份) 长沙学院课程设计论文(每学生 1 份) 长沙学院课程设计鉴定表(每学生 1 份) 指导教师签名: 日期: _ 精品资料 教研室主任签名: 日期: 院长签名: 日期: 长沙学院课程设计鉴定表 姓名学号 专业 班级 设计题目指导教师 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级: 答辩小组长签名: 日期: 教研室意见: _ 精品资料 教研室主任签名: 日期: 学院意见: 院长签名: 日期: 说明课程设计成绩分“优秀”、 “良好”、 “及格”、 “不及格”四类; 目 录 一、引言一、引言.7 1.1编写目的.7 1.2参考资料.7 二、二、 需求需求规约规约.7 2.1 业务描述.7 2.2 需求分析.8 三、三、 数据数据库环库环境境说说明明.8 四、四、 数据数据库库的命名的命名规则规则.8 3.1 数据库对象命名规则.8 3.2 数据项编码规则.9 五、五、逻辑设计逻辑设计.10 5.1 创建与数据库相关的那部分实体关系图(ERD)、表及关系图.10 5.2 创建数据库系统的关系模型.12 六、六、物理物理设计设计.12 6.1 表汇总.12 6.2 存储过程.17 6.3 触发器.21 _ 精品资料 七、安全性七、安全性设计设计.28 7.1 防止用户直接操作数据库的方法.28 7.2 角色与权限.28 八、数据八、数据库库管理与管理与维护说维护说明明.29 九、附九、附录录:源代:源代码码.30 一、引言一、引言 1.1编编写目的写目的 本文档是汽车租赁系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、 字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、 开发人员、测试人员。 1.2参考参考资资料料 资料名称作者文件编号、版本 数据库系统概论王珊、萨师煊2006 年 5 月第 4 版 、 需求需求规约规约 2.1 业务业务描述描述 2.1.1 数据库创建背景 该数据库建立于 sq l server 2008 r2,环境为 windows7 系统名称:汽车租赁管理系统。 系统的开发者:小组成员 系统的用户:租车客户以及租赁公司的工作人员。 2.1.2 数据库系统要完成的业务流程及工作内容 首先完成需求分析,根据需求关系画出 ER-图,并写出关系模式。根据 ER 图用 SQL server 创建与 数据库相关的表,视图,存储过程以及触发器。 系统的功能要求基本实现对车辆,租赁客户的查询。可以查询客户租赁的历史记录。可以查看汽车 价格、库存,可以查看汽车的租借、归还、以及费用。 2.1.3 揭示该数据库的资源需求和设计约束 _ 精品资料 2.2 需求分析需求分析 2.2.1 功能需求 1 车辆管理 主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本信息,包括 车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的汽车基本信息,以便更快的 投入租赁市场,方便客户了解最新车辆信息以及做出更好的租赁选择。 (2)业务管理 主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的车牌号,所 生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车客户的基本信息,以便于管 理员更好的管理车辆系统,保障系统安全性。 、 数据数据库环库环境境说说明明 数据库实 例 数据库系 统 数据库部 署环境 数据库设 计工具 数据库存放位 置 说明 汽车租赁Sql server 2008 r2 Windows 7Sql server 2008 r2 Microsoft office visio 2003 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 位 汽车类型号字母Varchar 类型10 位 _ 精品资料 、 逻辑设计逻辑设计 5.1 创建与数据库相关的那部分实体关系图(ERD)、表及关系图 表 customers CusNo PYVarchar(10) NOT Null CusNameVarchar(10) NOT Null _ 精品资料 CusSexVarchar(2) NOT Null CusAgeVarchar(4) NOT Null CusPhoneVarchar(10) CusCompanyVarchar(10) NOT Null CusIdentityVarchar(10) NOT Null 表 rent Record PYVerchar(10)Not null RentDatedateNot null ReturnDatedateNot null CusNo Verchar(10)Not null CarNo Verchar(10)Not null RecordcostVerchar(100Not Null 表 car CarNo PYVerchar(10)Not null CarColorVerchar(10)Not null CarDatedateNot null CarClassNo FYVerchar(10)Not null CarStatebitNot null 表 carclass CarClassNo PYVerchar(10)Not null CarClassCntVarchar(10)Not null CarClassDayPriceVerchar(10)Not null CarClassDayPriceExceedVerchar(100Not null CarClassMonthPrice Verchar(10)Not null CarClassSeat Verchar(10)Not null 表 worker WorkNo PYVerchar(10)Not null WorkPassWordVerchar(10)Not null WorkNameVerchar(10)Not null WorkSexVerchar(2)Not null WorkPhoneVerchar(10) 表 manage WorkNo PYVerchar(10)Not null CarNo PYVerchar(10)Not null _ 精品资料 5.2 创建数据库系统的关系模型 1.工作人员(工号、密码、姓名、性别、联系电话) 2.客户信息(身份证号、密码、姓名、性别、所在单位、联系电话)、 3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号) 4 车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公 里价格、品牌) 5.管理(工号、车牌号)备注:(工号和车牌号共同作为管理表的主键,同时也是外 键) 6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额) 、 物理物理设计设计 6.1 表表汇总汇总 表名功能说明 _ 精品资料 car 存储车辆信息 carclass 存储车辆类别的信息 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 EXISTS 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.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低无月租价格 7CarClassBrandvarchar(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, CarClassseat 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低无 客户电话 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, PRIMARY KEY (CusNo) ) 6.1.4 表表worker: :工作人工作人员员信息表信息表 表名worker 数据库用户 Car_rent 主键 WorkNo 序号字段名称 数据类型允许为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1WorkNovarchar(10)NY高无 主键 2WorkPassw ord varchar(10)NN低无 密码 3WorkNamevarchar(10)NN低无姓名 4WorkSexvarchar(10)NN低无 性别 5WorkPhonevarchar(10)NN低无 电话 sql 脚本DROP TABLE IF EXISTS worker1; CREATE TABLE worker1 ( WorkNo varchar(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 区别 度 默认 值 约束条件/ 说明 1RecordNovarchar(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 NOT 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: :管理表管理表 表名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 (CarNo), 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_rent go CREATE PROCEDURE proc_car as select car.CarNo,car.CarState,carclass.CarClassCnt from car,carclass where car.CarClassNo=carclass.CarClassNo 6.2.2 查询查询所所输输入客入客户账户账号的租号的租赁历赁历史史记录记录 关键代码 use car_rent go _ 精品资料 create procedure proc_customers (CusNo varchar(10) as select rent.Record,rent.RentData,rent.RetunDate,rent.RecordCost,rent.CusNo, car.CarNo,carclass.CarClassBrand from rent,car,carclass where CusNo=CusNo and rent.CarNo=car.CarNo and car.CarClassNo=carclass.CarClassNo; 执行 exec proc_customers A01 6.2.3 查询输查询输入客入客户账户账号的租号的租赁历赁历史史记录记录 关键代码 use car_rent go create procedure proc_car_rent (CarNo varchar(10) as select rent.Record,rent.RentData,rent.RetunDate,rent.CarNo,rent.CusNo,rent.RecordCost from rent where rent.CarNo=CarNo; 执行 exec proc_car_rent 湘A8888 6.2.4 查询查询通通过输过输入入订单订单号号查询订单查询订单信息信息 关键代码 use car_rent go create procedure proc_record (Record varchar(10) as select rent.Record,rent.RentData,rent.RetunDate,rent.CusNo,rent.RecordCost from rent where rent.Record=Record; _ 精品资料 执行 exec proc_record 1 6.2.5 通通过输过输入入类别统计类别统计汽汽车车的租的租赁赁金金额额和剩余的和剩余的库库存数存数 关键代码 use car_rent go create procedure proc_carclassno (carclassno varchar(10) as select carclass.CarClassDayPrice1,carclass.CarClassCnt from carclass where carclass.CarClassNo=carclassno; 执行 exec proc_carclassno A 6.2.6 删删除一除一辆车辆车 关键代码 use car_rent go create procedure proc_delete_car (carno varchar(10) as delete from car where car.CarNo=carno 执行 exec proc_delete_car 湘 B8888 _ 精品资料 6.2.7 删删除一条除一条记录记录 关键代码 use car_rent go create procedure proc_delete_rent (record varchar(10) as delete from rent where rent.Record=record 执行 exec proc_delete_rent 2 6.2.8 还车还车(修改(修改还车还车日期,默日期,默认认没没还车还车前,前,还车还车日期等于借日期等于借车车日期日期, 只有当没只有当没还过车还过车的的时时候才能修改候才能修改还车还车日期)日期) 关键代码 use car_rent go create procedure proc_return_car (record varchar(10), returndate date) as update rent set RetunDate=returndate wherereturndaterent.RetunDateand DATEDIFF(DAY,rent.RentData,rent.RetunDate)=0 执行 exec proc_return_car 1,2016-8-17 _ 精品资料 6.3 触触发发器器 6.3.1 输输入新的入新的车车牌号及信息,此牌号及信息,此车辆车辆所所对应车辆类别对应车辆类别的的库库存数自存数自动动 增加增加 关键代码 use car_rent go Create Trigger add_newcar On car after insert As UPDATE carclass SET CarClassCnt=CarClassCnt+1 WHERE carclass.CarClassNo IN (SELECT CarClassNo from INSERTED i) GO _ 精品资料 6.3.2 删删除除车车牌号及信息,此牌号及信息,此车辆车辆所所对应车辆类别对应车辆类别的的库库存数自存数自动动减少减少 关键代码 use car_rent go Create Trigger delete_car On car after delete As UPDATE carclass SET CarClassCnt=CarClassCnt-1 WHERE carclass.CarClassNo IN (SELECT CarClassNo from deleted i) GO 6.3.3 :当当产产生一个新的生一个新的订单时订单时, ,订单订单中所中所预订车辆预订车辆所所对应车辆类别对应车辆类别 的的库库存数自存数自动动减少。减少。(借借车时车时) 关键代码 use car_rent _ 精品资料 go Create Trigger rent_car On rent after insert As UPDATE carclass SET CarClassCnt=CarClassCnt-1 where CarClassNo in(select CarClassNo from car where CarNo in (select CarNo from rent where CarNo in (select CarNo from inserted ) GO 6.3.4 修改修改订单还车订单还车日期日期时时时时, ,订单订单中所中所预订车辆预订车辆所所对应车辆类别对应车辆类别的的 库库存数自存数自动动增加。增加。(还车时还车时) 关键代码 use car_rent go Create Trigger return_car On rent after update As UPDATE carclass SET CarClassCnt=CarClassCnt+1 where CarClassNo in (select CarClassNo from car where CarNo in (select CarNo from deleted )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论