




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长 沙 学 院 课程设计说明书 题目汽车租赁管理系统 系(部)数学与计算机科学 专业(班级)软件 03 班 姓名 学号 指导教师黄彩霞、刘欣 起止日期 2016.5.15-2016.5.27 课程设计任务书 课程名称:课程名称:数据库系统原理课程设计 设计题目:设计题目: 汽车租赁管理系统。 已知技术参数和设计要求:已知技术参数和设计要求: 题目:汽车租赁管理系统 1、某汽车租赁公司汽车租赁管理系统需要如下信息: 工作人员信息包括:工号、姓名、性别、联系电话等。 客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。 车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租
2、价格、 租赁状态、购入日期等。 车辆类别信息包括:分类号,库存数。 其业务规则描述如下: 一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车 只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的 车。 2、系统功能的基本要求: 可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统 计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好, 能模拟客户对汽车的租借、归还业务。 各阶段具体要求:各阶段具体要求: 1、需求分析阶段 定义数据项的含义和取值 定义目标系统的数据流 2、概念结构设计阶段 画出实体
3、模型 E-R 图 3、逻辑结构设计阶段 将实体模型转化为关系模型 给出每个关系的主关键字和函数依赖集 分析你所设计的关系数据库模式是否属于 3NF 4、物理设计阶段 确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字 5、数据库安全及维护设计阶段 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略 6、实施阶段 要求所有操作必须在查询分析器中用 SQL 语句或系统存储过程完成。 设计工作量:设计工作量: (1)软件设计:完成问题陈述中所提到的所有需求
4、功能。 (2)论文:要求撰写不少于 3000 个文字的电子文档,详细说明各阶段具体要求。 工作计划:工作计划: 安排两周时间进行课程设计,软件开发步骤如下,第一周完成 14,第二周完成 58, 论文同步进行; 1)选定题目 2)需求分析 3)概念结构设计 4)逻辑结构设计 5)物理设计 6)数据库安全及维护设计 7)数据库上机实现 8)答辩 注意事项注意事项 提交电子文档提交电子文档 长沙学院课程设计任务书(每学生 1 份) 长沙学院课程设计论文(每学生 1 份) 长沙学院课程设计鉴定表(每学生 1 份) 指导教师签名: 日期: 教研室主任签名: 日期: 系主任签名: 日期: 长沙学院课程设计
5、鉴定表 姓名学号专业软件工程班级 03 设计题目汽车租赁管理系统指导教师刘欣、黄彩霞 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级:答辩小组长签名:日期: 教研室意见: 教研室主任签名: 日期: 系(部)意见: 系主任签名:日期: 说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 目 录 一、引言一、引言 .6 6 1.1编写目的 .6 1.2参考资料 .6 二、二、 需求规约需求规约 .7 7 2.1 业务描述.7 2.2 需求分析.7 三、三、 数据库环境说明数据库环境说明 .8 8 四、四、 数据库的命名规则数据库的命名规则 .8 8 4.1
6、 数据库对象命名规则.6 4.2 数据项编码规则.6 五、五、 逻辑设计逻辑设计 .9 9 六、六、 物理设计物理设计 .1 11 1 6.1表汇总 .11 6.1.1表CAR:车辆信息表.12 6.1.2表CARCLASS:汽车分类表表.12 6.1.3表CUSTOMER:客户信息表.13 6.1.4表WORKER1:工作人员表.13 6.1.5表RENT:租赁表.14 6.1.6表MANAGE:管理表.15 6.2视图的设计 .15 6.3存储过程的设计 .17 6.4触发器的设计 .20 6.4JAVA 设计.24 七、七、 安全性设计安全性设计 .2626 7.1防止用户直接操作数据库
7、的方法 .26 7.2用户帐号密码的加密方法 .26 7.3角色与权限 .26 八、八、 数据库管理与维护说明数据库管理与维护说明 .2727 8.1说明 .27 8.2课程设计总结 .28 九、九、 附录附录 源代码源代码.29.29 9.1数据库源代码 .29 9.2连接数据库代码 .40 一、引言一、引言 1.11.1编写目的编写目的 本文档是汽车租赁管理系统的组成部分,编写数据库设计文档的目的是:明确数据 库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象 是需求人员、系统设计人员、开发人员和测试人员。 为了加快汽车租赁管理自动化的步伐,提高汽车租赁的管理业务
8、处理效率,建立汽 车租赁管理系统,并且尽可能地减少汽车租赁管理的重复性和低效性,已变得十分必要。 该课程设计以某汽车租赁应用背景,通过研究当前汽车租赁系统的管理现状、存在 问题以及 现实需求,设计一个针对汽车租赁管理工作的管理信息系统。该系统能 够提供较为完备的 功能,对于提高工作效率、加快汽车租赁管理的自动化具有较为 重要的意义。汽车租赁管理系统是汽车租赁公司提供的一个简单易用的系统,随着科 技的发展,设备和管理的现代化,在实际生活中如何提高工作效率成为一个很重要的 问题,所以建立这种管理系统是非常好的解决方法。 1.21.2参考资料参考资料 资料名称作者文件编号、版本 数据库系统概论王珊、
9、萨师煊2006 年 5 月第 4 版 MySQL 入门经典王雨竹、高飞2013 年 4 月 Java 基础教程吴仁群2009 年 4 月 二、二、需求规约需求规约 2.12.1 业务描述业务描述 2.1.12.1.1 创建背景创建背景 该数据库建立于 MySQL,环境为 windows7 系统名称:汽车租赁管理系统。 系统的开发者:小组成员 系统的用户:租车客户以及租赁公司的工作人员。 2.1.22.1.2 业务流程及工作内容业务流程及工作内容 了解到题目需求后,画好 ER 图,写出其关系模式,并用 MySQL 建立数据库,新建表, 定义好表名,建立视图、存储过程以及触发器。系统功能的基本要求
10、是可以实现对车辆、 租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统计汽车的租赁金额 和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽 车的租借、归还业务。 2.22.2 需求分析需求分析 2.2.12.2.1 功能需求功能需求 (1 1)车辆管理)车辆管理 主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本 信息,包括车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的 汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以及做出更好的 租赁选择。 (2)(2)业务管理业务管理 主要提供对汽车的日常业务进行
11、管理,如查询指定汽车的租赁状态,被租赁的车的 车牌号,所生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车 客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。 (1 1) 统计统计 主要是实现统计某一年龄客户群体对某类汽车的租赁喜好,可以通过客户的年龄算 出所租车辆的种类一共有多少辆,可以按类别统计汽车的租赁金额和剩余的库存数,以 便管理员更好地了解市场行情,从而尽可能获得更大收益。 三、数据库环境说明三、数据库环境说明 3.13.1 数据库环境数据库环境 数据库 实例 数据库 系统 数据库部 署环境 数据库设计工 具 数据库存放位置说明 汽车租 赁 MySQL,
12、 版本 4.0 Windows7Navicat for MySQL D:ProgramFiles MySQL 实例用途说明 四、数据库的命名规则四、数据库的命名规则 4.14.1 数据库对象命名规则数据库对象命名规则 数据库对象命名规则备注 表table 功能描述字符串例如:Car 表 视图View 功能描述字符串例如:V1 视图 存储过程Proc 功能描述字符串例如:P1 存储过程 触发器Trigger 功能描述字符串例如:T1 触发器 4.24.2 数据项编码规则数据项编码规则 数据项命名规则数据类型长度备注 租赁状态 两位二进制码bit2例如:00 车牌号湘 L+(三位整数)+SBvar
13、char10例如:湘 L520SB 客户账号431023+三位整数varchar10例如:431023001 订单号四位整数varchar10例如:1401 租赁日期年-月-日 时间datetime10例如:2016-05-20 04 五、逻辑设计五、逻辑设计 5.15.1 系统系统 E-RE-R 图设计图设计 图 1 E-R 图 图 2 MySQL 中 E-R 图 5.25.2 创建关系模式创建关系模式 1.工作人员(工号、密码、姓名、性别、联系电话) 2.客户信息(身份证号、密码、姓名、性别、所在单位、联系电话) 3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号) 4.
14、车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价 格、品牌) 5.管理(工号、车牌号)备注:(工号和车牌号共同作为管理表的主键,同时也是外键) 6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额) 备注:(主键是加下划线,外键是加波浪线) 完全依赖完全依赖:工号姓名 ,工号密码,工号性别,工号联系电话 客户身份证号客户姓名,客户身份证号密码,客户身份证号客户性别, 客户身份证号客户所在单位,客户身份证号客户联系电话 车牌号品牌,车牌号座位数,车牌号颜色,车牌号购入日期,车牌 号分类号 分类号库存数,分类号日租价格,分类号日租超公里价格,分类号 月租价格
15、,分类号月租超公里价格,分类号品牌 订单号客户身份证号,订单号车牌号,订单号租赁日期,订单号归 还 日期,订单号租赁金额 部分依赖:部分依赖:(工号,车牌号)(分别决定)姓名、密码、性别、联系电话,品牌、座 位数、颜色、租赁状态、购入日期、分类号 传递依赖:传递依赖:订单号(分别决定)客户的姓名、密码、性别、所在单位、联系电话、品 牌、分类号、座位数、颜色、租赁状态、购入日期 六、物理设计六、物理设计 6.16.1 表汇总表汇总 表名功能说明 car 存储车辆的信息 carclass 存储车辆类别的信息 worker1 存储工作人员的信息 rent 存储租赁的信息 customer 存储客户的
16、信息 manage 存储工作人员与车辆的联系 6.1.16.1.1 表表carcar: 车辆信息表车辆信息表 表名 car 数据库用户 Test 主键 CarNo 索引字段 CarClassNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1CarNovarchar(10)NY 高无主键 2CarClassNovarchar(10)NN 高无外键 3CarStatebit(2)NN 低 00 租赁状态 4CardatedateNN 低无购入日期 5CarColorvarchar(10)NN 低无汽车颜色 sql 脚本 DROP TABLE IF EXIS
17、TS 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
18、.26.1.2 表表carclasscarclass: 车辆类别表车辆类别表 表名 carclass 数据库用户 Test 主键 CarClassNo 序 号 字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别 度 默认 值 约束条件/说明 1CarClassNovarchar(10)NY 高无主键 2CarClassCntvarchar(10)NN 低无库存数 3CarClassSeatbit(2)NN 低无座位数 4CarClassDayPrice2dateNN 低无日租价格 5CarClassDayPrice1varchar(10)NN 低无日租超公里价格 6CarClassMont
19、hPricevarchar(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
20、) NOT NULL, CarClassBrand varchar(10) NOT NULL, CarClassseat varchar(10) NOT NULL, PRIMARY KEY (CarClassNo) 6.1.36.1.3 表表customercustomer: 客户信息表客户信息表 表名 customer 数据库用户 Test 主键 CusNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1CusNovarchar(10)NY 高无主键 2CusPasswordvarchar(10)NN 高无登录密码 3CusNamevarchar(10
21、)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 NUL
22、L, CusPhone varchar(20) NOT NULL, CusCompany varchar(20) NOT NULL, CusPassword varchar(10) NOT NULL, PRIMARY KEY (CusNo) ) 6.1.46.1.4 表表worker1worker1: 工作人员信息表工作人员信息表 表名 worker1 数据库用户 Test 主键 WorkNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1WorkNovarchar(10)NY 高无主键 2WorkPassw ord varchar(10)NN 低无密码
23、 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
24、 varchar(10) DEFAULT NULL, PRIMARY KEY (WorkNo) ) 6.1.56.1.5 表表rentrent: 租赁表租赁表 表名 rent 数据库用户 Test 主键 RecordNo 索引CarNo、CusNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别 度 默认 值 约束条件 /说明 1RecordNovarchar(10)NY 高无主键 2CarNovarchar(10)NN 高无外键 3CusNovarchar(10)NN 低无外键 4RecordCostvarchar(10)NN 低无总金额 5RecordRentDatevarch
25、ar(10)NN 低无租赁时间 6RecordReturnDat e varchar(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 NU
26、LL, 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.66.1.6 表表managemanage: 管理表管理表 表名 Wmanage 数据库用户 Test 主键CarNo、WorkNo 索引 CarNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N
27、 区别度默认值约束条件/说 明 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) REFERENC
28、ES car (CarNo), CONSTRAINT WorkNo FOREIGN KEY (WorkNo) REFERENCES worker1 (WorkNo) ) 6.26.2 视图的设计视图的设计 6.2.16.2.1 视图视图V1:V1:按车辆的类别统计汽车的租赁金额和数库存数按车辆的类别统计汽车的租赁金额和数库存数 关键代码: DROP VIEW IF EXISTS v1; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v1 AS select carclass.CarClass
29、No AS CarClassNo,carclass.CarClassCnt AS CarClassCnt from carclass group by carclass.CarClassNo ; 图 3 按类别统计汽车的租赁金额和剩余的库存 6.2.26.2.2 视图视图V2:V2:通过订单号了解到所租车辆的类别号及类别名通过订单号了解到所租车辆的类别号及类别名 关键代码: DROP VIEW IF EXISTS v2; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v2 AS select
30、 rent.RecordNo AS RecordNo,car.CarClassNo AS CarClassNo,carclass.CarClassBrand AS CarClassBrand from (rent join car) join carclass) where (rent.CarNo = car.CarNo) and (car.CarClassNo = carclass.CarClassNo) group by car.CarClassNo ; 图 4 订单号求所租车辆的类别号及类别名 6.2.36.2.3 视图视图V3:V3: 统计某一年龄阶段对汽车类别的喜好,并统计相应人数统
31、计某一年龄阶段对汽车类别的喜好,并统计相应人数 关键代码: DROP VIEW IF EXISTS v3; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v3 AS select customer.CusAge AS CusAge,carclass.CarClassBrand AS CarClassBrand,count(customer.CusAge) AS Count(customer.CusAge) from (carclass join customer) join rent) jo
32、in car) where (customer.CusNo = rent.CusNo) and (rent.CarNo = car.CarNo) and (car.CarClassNo = carclass.CarClassNo) group by carclass.CarClassBrand ; 图 4 统计某一年龄阶段对汽车类别的喜好及相应人数 6.2.36.2.3 视图视图V4:V4: 查询所输入的车牌号的车现在所处查询所输入的车牌号的车现在所处 状态状态 关键代码: DROP VIEW IF EXISTS v4; CREATE ALGORITHM=UNDEFINED DEFINER=r
33、ootlocalhost SQL SECURITY DEFINER VIEW v4 AS select car.CarState AS CarState,car.CarNo AS CarNo,carclass.CarClassBrand AS CarClassBrand from (car join carclass) where (car.CarClassNo = carclass.CarClassNo) ; 图 5 查询所输入车牌号的现在状态 6.36.3 存储过程存储过程 6.3.16.3.1 存储过程存储过程P1P1 功能:查询每辆车的状态和库存数,执行存储过程 关键代码:DROP P
34、ROCEDURE IF EXISTS P1; CREATE DEFINER=rootlocalhost PROCEDURE P1() begin select CarNo,CarState,CarClassBrand,CarClassCnt from car,carclass where car.CarClassNo=carclass.CarClassNo; end; 图 6 执行结果 6.3.26.3.2 存储过程存储过程P2P2 功能: 查询所输入客户账号的租赁历史记录,执行存储过程 关键代码:参数:CusNo varchar(10) DROP PROCEDURE IF EXISTS P2
35、; CREATE PROCEDURE P2(CusNo varchar(10) Begin select rent.RecordNo,rent.RecordRentDate,rent.RecordReturnDate,rent.RecordCost,car.C arNo,carclass.CarClassBrand from rent,car,carclass where CusNo=CusNo and rent.CarNo=car.CarNo and car.CarClassNo=carclass.CarClassNo; end 图 7 输入客户账号执行结果 6.3.36.3.3 存储过程存
36、储过程P3P3 功能: 查询所输入车牌号的被租赁历史记录,执行存储过程 关键代码:参数 CarNo varchar(10) DROP PROCEDURE IF EXISTS P3; CREATE PROCEDURE P3(IN CarNo varchar(10) begin select RecordNo,RecordRentDate,RecordReturnDate,RecordCost,CusNo from rent where CarNo=newCarNo; end 图 8 输入车牌号执行结果 6.3.46.3.4 存储过程存储过程P4P4 功能:通过输入订单号查询订单信息,执行存储过程
37、。 关键代码:参数 newRecordNo varchar(10) DROP PROCEDURE IF EXISTS P5; begin select RecordRentDate,RecordReturnDate,CusNo,CarNo,RecordCost from rent where RecordNo=newRecordNo; end 图 9 执行结果 6.46.4 触发器触发器 6.4.16.4.1 触发器触发器T1T1 功能:当租赁公司新购入一辆汽车时,输入新的车牌号及信息,此车辆所对应车辆类别的 库存数自动增加,购入多辆时增加相应数量的库存。 关键代码:DROP TRIGGER
38、IF EXISTS T1; CREATE TRIGGER T1 AFTER INSERT ON car FOR EACH ROW begin declare c int; set c=(select CarClassCnt from carclass where CarClassNo=new.CarClassNo); update carclass set CarClassCnt=c+1 where CarClassNo=new.CarClassNo; end ;DELIMITER ; 图 10 新增一辆车库存数加一 6.4.26.4.2 触发器触发器T2T2 功能:当租赁公司报废一辆汽车时,
39、删除车牌号及信息,此车辆所对应车辆类别的库存数 自动减少,删除多辆时减少相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T2; CREATE TRIGGER T2 AFTER DELETE ON car FOR EACH ROW begin declare c int; set c=( select CarClassCnt from carclass where CarClassNo=old.CarClassNo); update carclass set CarClassCnt=c-1 where CarClassNo=old.CarClassNo; end 图
40、11 删除一个车辆记录,库存数自动减一 6.4.36.4.3 触发器触发器T3T3 功能:当产生一个新的订单时,订单中所预订车辆所对应车辆类别的库存数自动减少,产 生多个订单号时也减少相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T3; DELIMITER ; CREATE TRIGGER T3 AFTER INSERT ON rent FOR EACH ROW update carclass set CarClassCnt=CarClassCnt-1 where CarClassNo in( select CarClassNo from car where Ca
41、rNo in (select CarNo from rent where CarNo =new.CarNo) ;DELIMITER ; 图 11 增加订单对应类别库存数减少 6.4.46.4.4 触发器触发器T4T4 功能:当产取消一个订单时,订单中所预订车辆所对应车辆类别的库存数自动增加,取消 多个订单号时也增加相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T4; DELIMITER ; CREATE TRIGGER T4 AFTER INSERT ON rent FOR EACH ROW update carclass set CarClassCnt=CarC
42、lassCnt+1 where CarClassNo in( select CarClassNo from car where CarNo in (select CarNo from rent where CarNo =old.CarNo) ;DELIMITER ; 图 12 取消一个订单对应类别库存数增加 6.4.56.4.5 触发器触发器T5T5 功能:当产生一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(00)变为预订 状态(01)。 关键代码:DELIMITER ; DROP TRIGGER IF EXISTS T5; DELIMITER ; CREATE TRIGGER T5
43、AFTER UPDATE ON rent FOR EACH ROW update car set CarState=CarState+1 where CarNo in( select CarNo from rent where CarNo =new.CarNo) ;DELIMITER ; 图 13 新增订单对应车辆的租赁状态改变 6.56.5 JavaJava 模块设计模块设计 6.5.16.5.1 连接数据库连接数据库 图 14 连接 car 表执行结果 6.5.26.5.2 JavaJava 界面设计界面设计 图 15 主界面 图 16 管理员登录界面 图 17 管理员登录成功界面 图 1
44、8 客户登录界面 图 19 客户登录成功界面 7、安全性设计安全性设计 数据库只被少数授权用户访问,必须提供用户名和正确的密码。存储数据库的服务器也只能 让系统管理员 或少数高级管理人员登录。数据库的安全策略,遵从 MYSQL 的安全策略事 7.17.1 防止用户直接操作数据库防止用户直接操作数据库 7 7. .2 2定定义义视视图图,授授予予不不同同角角色色不不同同的的权权限限。 7.37.3 角色与权限角色与权限 角色可以访问的表与列操作权 z 限 可访问所有表完全控制权限 可访问所有表完全控制权限例如:管理员 可访问所有表完全控制权限 只可访问 Car 表完全控制权限 只可访问 Carc
45、lass 表完全控制权限角色 B 只可访问 Rent 表完全控制权限 八、数据库管理与维护说明八、数据库管理与维护说明 (一)完善管理制度,强化监管力度。数据库系统的安全与企业自身内部的安全 机制、内外网络环境、从业人员素质等密切相关。因此,企业应该完善网络系统安全 规章制度,防范因制度缺陷带来的风险;企业应该规范操作流程和故障处理流程,减 少人为失误与故障,提高故障处理速度,缩短故障处理时间;企业应该通过建立科学 合理的责任追究机制,防止出现由于工作态度、工作作风等各种人为因素导致的数据 库安全事故。 (二)采取措施,确保数据库数据的安全。保证数据库数据的安全是数据库日常 管理与维护工作的首
46、要任务,企业需要采取的安全措施主要有:确保网络及操作系统 安全。网络系统是数据库应用的外部环境和基础,网络系统安全是数据库安全的第一 道屏障。从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火 墙、数字签名与认证、入侵检测等。操作系统是数据库系统的运行平台,能够为数据 库系统提供一定程度的安全保护。操作系统的安全控制方法主要是采用隔离控制、访 问控制、信息加密和审计跟踪。主要安全技术有操作系统安全策略、安全管理策略等。 加强用户身份验证。用户身份验证是数据库系统的重要防线。利用窗体身份验证 数据库程序的漏洞,进而获取存储在数据库中的用户身份验证密码,这是目前对网络 数据库攻击最
47、常见的方式。对此,企业信息部门通常使用带有 salt 值的单向密码哈希 值,以避免用户密码在数据库中以明文形式存储,减轻字典攻击带来的威胁。 对重要数据加密。数据加密交换又称密码学,是计算机系统对信息进行保护的一 种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而有效保护信 息的安全不受侵犯。数据库加密要求加解密的粒度是每个记录的字段数据。采用库外 口加密的方式,对密钥的管理较为简单,只需借用文件加密的密钥管理方法,将加密 后的数据块纳入数据库,在算法或数据库系统中做些必要的改动就行。这样有利于公 共数据字典的使用和维护系统的完整性。 做好数据库备份与恢复。数据备份是备份数据库某
48、个时刻的数据状态,当系统出 现意外时用来恢复系统。依靠网络办公的企业,其信息系统很可能随时被破坏而丢失 数据。因此,数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状 态的功能,这就是数据库的恢复技术。 (三)开展数据库健康检查。为及时发现数据库系统存在的问题,在日常管理与 维护中,数据管理员要对数据库开展健康检查。当前,烟草行业内大部分企业使用的 数据库是 IBM DB2,对该数据库进行检查时,检查内容主要包括以下七个方面: 1、系统环境:操作系统版本、文件系统容量、内存交换区使用率、系统性能。 2、数据库环境:数据库和补丁版本、是否有僵尸数据库进程、数据库节点数、是 否有其他数
49、据库产品及版本。 3、日志记录:db2diag.log 报错、db2inst1.nfy 报错、是否有需要处理的 DUM 4、数据库健康状况:表空间利用率和状态、表空间容器利用率和状态、排序 溢出、是否需要收集统计信息、是否需要数据重组、活动日志和日志所在文件系统利 用率、死锁发生率、锁升级发生率、锁等待的百分比、编目 Cache 命中率、包 Cache 命中率、监视堆利用率、数据库堆利用率、数据库缓冲池命中率。 5、数据库维护内容:最近一次统计信息收集时间、最近一次表数据重组时间、最 近一次绑定包时间、最近一次数据库备份时间。 6、权限管理:public 组的权限是否取消。 7、数据库基本信息
50、记录:数据库内存使用、环境变量。数据库管理的意义重 大,关系到企业信息系统的正常运作,仍至整个企业的生死存亡。要做好数据库的日 常管理与维护,不仅要求数据库管理员熟练掌握专业技术,还要有足够的细心和高度 的责任心。 8.18.1 课程设计总结:课程设计总结: 本次课程设计不仅仅是对所学知识的总结,还是一种学习思想的升华。正所谓实践 出真知,然而,当我沿着步骤一步步进行下去的时候,才意识到自己知识的浅薄和视野 的狭窄。 通过这段时间的学习,让我及组员深切体会到了一个完整的管理系统编写的复杂程 度和困难程度,对软件开发的流程也有了一个更清晰的了解,从一开始的可行性分析, 系统需求分析,再到数据库设
51、计,功能模块的设计和界面的设计,到最后的系统运行与 测试。这个过程中,每一个步骤都很重要,缺一不可。当然,由于自身技术能力不足, 缺乏实际开发经验,再加上时间有限,本系统还有许多有待完善的部分。 希望我能今后通过不断地学习和实践来提升自己的各方面能力,学会让所学理论知 识与实际操作的融会贯通,为以后工作及生活中的系统软件设计打下良好的基础。 九、附录九、附录 源代码源代码 9.19.1 数据库源代码数据库源代码 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50523 Sourc
52、e Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50523 File Encoding : 65001 Date: 2016-05-27 23:32:49 */ SET FOREIGN_KEY_CHECKS=0; - - - Table structure for car - - DROP TABLE IF EXISTS car; CREATE TABLE car ( CarNo varchar(10) NOT NULL DEFAULT , Car
53、Color varchar(10) DEFAULT NULL, CarDate date DEFAULT NULL, CarClassNo varchar(10) DEFAULT NULL, CarState bit(2) DEFAULT NULL, PRIMARY KEY (CarNo), KEY CarClassNo (CarClassNo), CONSTRAINT CarClassNo FOREIGN KEY (CarClassNo) REFERENCES carclass (CarClassNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - -
54、Records of car - - INSERT INTO car VALUES (湘 L123SB, 白色, 2016-05-05, 002, ); INSERT INTO car VALUES (湘 L124SB, 红色, 2016-05-20, 003, ); INSERT INTO car VALUES (湘 L125SB, 灰色, 2016-05-06, 004, ); INSERT INTO car VALUES (湘 L126SB, 银色, 2016-05-13, 001, ); INSERT INTO car VALUES (湘 L138SB, 玫瑰红, 2015-01-01
55、, 001, ); INSERT INTO car VALUES (湘 L250SB, 荧光绿, 2014-12-25, 003, ); INSERT INTO car VALUES (湘 L520SB, 宝蓝色, 2015-01-11, 002, ); INSERT INTO car VALUES (湘 L546SB, 绿, 2016-05-01, 001, ); INSERT INTO car VALUES (湘 L565SB, 白, 2016-05-05, 004, ); - - - Table structure for carclass - - DROP TABLE IF EXIST
56、S 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) DEFAULT NULL, CarClassseat varchar(10) DEFAULT NUL
57、L, PRIMARY KEY (CarClassNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - Records of carclass - - INSERT INTO carclass VALUES (001, 1998, 100000, 200000, 6000000, 幻影 X5, 2); INSERT INTO carclass VALUES (002, 01, 150000, 250000, 5000000, 宝马 R8, 2); INSERT INTO carclass VALUES (003, 01, 200000, 300000,
58、6500000, 兰博基尼, 2); INSERT INTO carclass VALUES (004, 01, 90000, 230000, 4500000, 玛 莎拉蒂, 4); - - - Table structure for customer - - 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,
59、CusPhone varchar(20) NOT NULL, CusCompany varchar(20) NOT NULL, CusPassword varchar(10) NOT NULL, PRIMARY KEY (CusNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - Records of customer - - INSERT INTO customer VALUES (431023001, 文兄, 女, 20, 183245, 长 沙学院集团, 111111); INSERT INTO customer VALUES (43102300
60、2, 徐福记, 男, 40, 183255, 长沙学院集团, 222222); INSERT INTO customer VALUES (431023003, 王老吉, 男, 60, 183265, 长沙学院集团, 333333); INSERT INTO customer VALUES (431023004, 刘明, 女, 20, 183653, 腾 讯, 444444); INSERT INTO customer VALUES (431023005, 张益达, 男, 24, 183544, 阿里巴巴, 555555); INSERT INTO customer VALUES (431023
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建厦门市集美区润德实验幼儿园招聘非在编教职工3人笔试备考题库及答案解析
- 2025-2030中国免税零售渠道变革与跨境消费回流趋势分析报告
- 2025-2030中国休闲农业发展模式与区域规划分析报告
- 血管内皮功能改善策略-洞察及研究
- 跨境电商税收-洞察及研究
- 甲状腺功能减退症遗传易感性-洞察及研究
- 运动想象对神经损伤康复效果研究-洞察及研究
- 数据新闻发展路径-洞察及研究
- 非线性风险对冲策略设计-洞察及研究
- 自动驾驶技术-第2篇-洞察及研究
- 智联招聘协议书
- 2025-2030中国细胞分选机行业市场发展趋势与前景展望战略研究报告
- 中国特色社会主义知识点总结中职高考政治一轮复习
- 《界面设计》课件
- 2024年家政服务业职业技能大赛家庭照护赛项技术工作文件
- 北师大版五年级下册分数加减法简便计算400道及答案
- 部编语文八年级培训
- 《思想道德修养与法律基础》整体教学设计
- 联合作战基础知识
- 基于BIM技术的全过程协同与管理课件
- 口腔门诊消防安全培训
评论
0/150
提交评论