![汽车租赁管理系统原理课程设计最终版[骄阳书屋]_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-3/18/aa8ac9ef-1851-4ed1-b60f-680ece6d8251/aa8ac9ef-1851-4ed1-b60f-680ece6d82511.gif)
![汽车租赁管理系统原理课程设计最终版[骄阳书屋]_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-3/18/aa8ac9ef-1851-4ed1-b60f-680ece6d8251/aa8ac9ef-1851-4ed1-b60f-680ece6d82512.gif)
![汽车租赁管理系统原理课程设计最终版[骄阳书屋]_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-3/18/aa8ac9ef-1851-4ed1-b60f-680ece6d8251/aa8ac9ef-1851-4ed1-b60f-680ece6d82513.gif)
![汽车租赁管理系统原理课程设计最终版[骄阳书屋]_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-3/18/aa8ac9ef-1851-4ed1-b60f-680ece6d8251/aa8ac9ef-1851-4ed1-b60f-680ece6d82514.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学 f1 长 沙 学 院 课程设计说明书 题目汽车租赁管理系统 系(部)数学与计算机科学 专业(班级)软件 03 班 姓名 学号 指导教师黄彩霞、刘欣 起止日期 2016.5.15-2016.5.27 教学 f2 课程设计任务书 课程名称:课程名称:数据库系统原理课程设计 设计题目:设计题目: 汽车租赁管理系统。 已知技术参数和设计要求:已知技术参数和设计要求: 题目:汽车租赁管理系统 1、某汽车租赁公司汽车租赁管理系统需要如下信息: 工作人员信息包括:工号、姓名、性别、联系电话等。 客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。 车辆信息包括:车牌号、品牌、颜色、座位数、日租价
2、格、日租超公里价格、月租价格、 租赁状态、购入日期等。 车辆类别信息包括:分类号,库存数。 其业务规则描述如下: 一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车 只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的 车。 2、系统功能的基本要求: 可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统 计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好, 能模拟客户对汽车的租借、归还业务。 各阶段具体要求:各阶段具体要求: 1、需求分析阶段 定义数据项的含义和取值 定义目标系统的数据流 2、概
3、念结构设计阶段 画出实体模型 E-R 图 3、逻辑结构设计阶段 将实体模型转化为关系模型 给出每个关系的主关键字和函数依赖集 教学 f3 分析你所设计的关系数据库模式是否属于 3NF 4、物理设计阶段 确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字 5、数据库安全及维护设计阶段 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略 6、实施阶段 要求所有操作必须在查询分析器中用 SQL 语句或系统存储过程完成。 设计工作量:设计工作量: (1)软件
4、设计:完成问题陈述中所提到的所有需求功能。 (2)论文:要求撰写不少于 3000 个文字的电子文档,详细说明各阶段具体要求。 工作计划:工作计划: 安排两周时间进行课程设计,软件开发步骤如下,第一周完成 14,第二周完成 58, 论文同步进行; 1)选定题目 2)需求分析 3)概念结构设计 4)逻辑结构设计 5)物理设计 6)数据库安全及维护设计 7)数据库上机实现 8)答辩 注意事项注意事项 提交电子文档提交电子文档 长沙学院课程设计任务书(每学生 1 份) 长沙学院课程设计论文(每学生 1 份) 长沙学院课程设计鉴定表(每学生 1 份) 指导教师签名: 日期: 教研室主任签名: 日期: 系
5、主任签名: 日期: 教学 f4 长沙学院课程设计鉴定表 姓名学号专业软件工程班级 03 设计题目汽车租赁管理系统指导教师刘欣、黄彩霞 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级:答辩小组长签名:日期: 教研室意见: 教研室主任签名: 日期: 教学 f5 系(部)意见: 系主任签名:日期: 说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 目 录 一、引言一、引言 .6 6 1.1编写目的 .6 1.2参考资料 .6 二、二、 需求规约需求规约 .7 7 2.1 业务描述.7 2.2 需求分析.7 三、三、 数据库环境说明数据库环境说明 .8 8
6、四、四、 数据库的命名规则数据库的命名规则 .8 8 4.1 数据库对象命名规则.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 七、七、 安
7、全性设计安全性设计 .2626 7.1防止用户直接操作数据库的方法 .26 7.2用户帐号密码的加密方法 .26 教学 f6 7.3角色与权限 .26 八、八、 数据库管理与维护说明数据库管理与维护说明 .2727 8.1说明 .27 8.2课程设计总结 .28 九、九、 附录附录 源代码源代码.29.29 9.1数据库源代码 .29 9.2连接数据库代码 .40 一、引言一、引言 1.11.1编写目的编写目的 本文档是汽车租赁管理系统的组成部分,编写数据库设计文档的目的是:明确数据 库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象 是需求人员、系统设计人员、开发人
8、员和测试人员。 为了加快汽车租赁管理自动化的步伐,提高汽车租赁的管理业务处理效率,建立汽 车租赁管理系统,并且尽可能地减少汽车租赁管理的重复性和低效性,已变得十分必要。 该课程设计以某汽车租赁应用背景,通过研究当前汽车租赁系统的管理现状、存在 问题以及 现实需求,设计一个针对汽车租赁管理工作的管理信息系统。该系统能 够提供较为完备的 功能,对于提高工作效率、加快汽车租赁管理的自动化具有较为 重要的意义。汽车租赁管理系统是汽车租赁公司提供的一个简单易用的系统,随着科 技的发展,设备和管理的现代化,在实际生活中如何提高工作效率成为一个很重要的 问题,所以建立这种管理系统是非常好的解决方法。 1.2
9、1.2参考资料参考资料 教学 f7 资料名称作者文件编号、版本 数据库系统概论王珊、萨师煊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)车辆管理)车辆管理 主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本 信息,包括车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的 汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以
11、及做出更好的 教学 f8 租赁选择。 (2)(2)业务管理业务管理 主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的 车牌号,所生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车 客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。 (1 1) 统计统计 主要是实现统计某一年龄客户群体对某类汽车的租赁喜好,可以通过客户的年龄算 出所租车辆的种类一共有多少辆,可以按类别统计汽车的租赁金额和剩余的库存数,以 便管理员更好地了解市场行情,从而尽可能获得更大收益。 三、数据库环境说明三、数据库环境说明 3.13.1 数据库环境数据库环境 数据库 实例
12、 数据库 系统 数据库部 署环境 数据库设计工 具 数据库存放位置说明 汽车租 赁 MySQL, 版本 4.0 Windows7Navicat for MySQL D:ProgramFiles MySQL 实例用途说明 四、数据库的命名规则四、数据库的命名规则 4.14.1 数据库对象命名规则数据库对象命名规则 数据库对象命名规则备注 表table 功能描述字符串例如:Car 表 视图View 功能描述字符串例如:V1 视图 存储过程Proc 功能描述字符串例如:P1 存储过程 触发器Trigger 功能描述字符串例如:T1 触发器 教学 f9 4.24.2 数据项编码规则数据项编码规则 数据
13、项命名规则数据类型长度备注 租赁状态 两位二进制码bit2例如:00 车牌号湘 L+(三位整数)+SBvarchar10例如:湘 L520SB 客户账号431023+三位整数varchar10例如:431023001 订单号四位整数varchar10例如:1401 租赁日期年-月-日 时间datetime10例如:2016-05-20 04 教学 f10 五、逻辑设计五、逻辑设计 5.15.1 系统系统 E-RE-R 图设计图设计 图 1 E-R 图 教学 f11 图 2 MySQL 中 E-R 图 5.25.2 创建关系模式创建关系模式 1.工作人员(工号、密码、姓名、性别、联系电话) 2.
14、客户信息(身份证号、密码、姓名、性别、所在单位、联系电话) 3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号) 4.车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价 格、品牌) 5.管理(工号、车牌号)备注:(工号和车牌号共同作为管理表的主键,同时也是外键) 6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额) 备注:(主键是加下划线,外键是加波浪线) 完全依赖完全依赖:工号姓名 ,工号密码,工号性别,工号联系电话 客户身份证号客户姓名,客户身份证号密码,客户身份证号客户性别, 客户身份证号客户所在单位,客户身份证号客户联系电话 车
15、牌号品牌,车牌号座位数,车牌号颜色,车牌号购入日期,车牌 号分类号 分类号库存数,分类号日租价格,分类号日租超公里价格,分类号 月租价格,分类号月租超公里价格,分类号品牌 订单号客户身份证号,订单号车牌号,订单号租赁日期,订单号归 还 日期,订单号租赁金额 部分依赖:部分依赖:(工号,车牌号)(分别决定)姓名、密码、性别、联系电话,品牌、座 教学 f12 位数、颜色、租赁状态、购入日期、分类号 传递依赖:传递依赖:订单号(分别决定)客户的姓名、密码、性别、所在单位、联系电话、品 牌、分类号、座位数、颜色、租赁状态、购入日期 六、物理设计六、物理设计 6.16.1 表汇总表汇总 表名功能说明 c
16、ar 存储车辆的信息 carclass 存储车辆类别的信息 worker1 存储工作人员的信息 rent 存储租赁的信息 customer 存储客户的信息 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 租赁状态 4C
17、ardatedateNN 低无购入日期 5CarColorvarchar(10)NN 低无汽车颜色 教学 f13 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), C
18、ONSTRAINT CarClassNo FOREIGN KEY (CarClassNo) REFERENCES carclass (CarClassNo) 6.1.26.1.2 表表carclasscarclass: 车辆类别表车辆类别表 表名 carclass 数据库用户 Test 主键 CarClassNo 序 号 字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别 度 默认 值 约束条件/说明 1CarClassNovarchar(10)NY 高无主键 2CarClassCntvarchar(10)NN 低无库存数 3CarClassSeatbit(2)NN 低无座位数 4CarC
19、lassDayPrice2dateNN 低无日租价格 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(1
20、0) 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) 教学 f14 6.1.36.1.3 表表customercustomer: 客户信息表客户信息表 表名 customer 数据库用户 Test 主键 CusNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别
21、度默认值约束条件/说 明 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
22、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.46.1.4 表表worker1worker1: 工作人员信息表工作人员信息表 表名 worker1 数据库用户 Test 主键 WorkNo 序号字段名称数据类型允许
23、为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1WorkNovarchar(10)NY 高无主键 2WorkPassw ord varchar(10)NN 低无密码 教学 f15 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(
24、10) DEFAULT NULL, WorkName varchar(10) DEFAULT NULL, WorkSex varchar(10) DEFAULT NULL, WorkPhone 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 高无主键 2CarN
25、ovarchar(10)NN 高无外键 3CusNovarchar(10)NN 低无外键 4RecordCostvarchar(10)NN 低无总金额 5RecordRentDatevarchar(10)NN 低无租赁时间 6RecordReturnDat e varchar(10)NN 低无归还时间 教学 f16 sql 脚本 DROP TABLE IF EXISTS rent; CREATE TABLE rent ( RecordNo varchar(10) NOT NULL, RecordRentDate datetime NOT NULL, RecordReturnDate datet
26、ime 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
27、.66.1.6 表表managemanage: 管理表管理表 表名 Wmanage 数据库用户 Test 主键CarNo、WorkNo 索引 CarNo 序号字段名称数据类型允许为 空 Y/N 唯一 Y/N 区别度默认值约束条件/说 明 1WorkNovarchar(10)NY 高无主键 2CarNovarchar(10)NN 高无主键 教学 f17 sql 脚本 DROP TABLE IF EXISTS manege; CREATE TABLE manege ( WorkNo varchar(10) NOT NULL DEFAULT , CarNo varchar(10) NOT NULL
28、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.26.2 视图的设计视图的设计 6.2.16.2.1 视图视图V1:V1:按车辆的类别统计汽车的租赁金额和数库存数按车辆的类别统计汽车的租赁金额和数库存数 关键代码: DROP VIEW IF EXISTS
29、 v1; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v1 AS select carclass.CarClassNo AS CarClassNo,carclass.CarClassCnt AS CarClassCnt from carclass group by carclass.CarClassNo ; 图 3 按类别统计汽车的租赁金额和剩余的库存 6.2.26.2.2 视图视图V2:V2:通过订单号了解到所租车辆的类别号及类别名通过订单号了解到所租车辆的类别号及类别名 关键代码: D
30、ROP VIEW IF EXISTS v2; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v2 AS select rent.RecordNo AS RecordNo,car.CarClassNo AS CarClassNo,carclass.CarClassBrand AS CarClassBrand from (rent join 教学 f18 car) join carclass) where (rent.CarNo = car.CarNo) and (car.CarClassNo
31、= carclass.CarClassNo) group by car.CarClassNo ; 图 4 订单号求所租车辆的类别号及类别名 6.2.36.2.3 视图视图V3:V3: 统计某一年龄阶段对汽车类别的喜好,并统计相应人数统计某一年龄阶段对汽车类别的喜好,并统计相应人数 关键代码: DROP VIEW IF EXISTS v3; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost SQL SECURITY DEFINER VIEW v3 AS select customer.CusAge AS CusAge,carclass.CarCla
32、ssBrand AS CarClassBrand,count(customer.CusAge) AS Count(customer.CusAge) from (carclass join customer) join rent) join car) where (customer.CusNo = rent.CusNo) and (rent.CarNo = car.CarNo) and (car.CarClassNo = carclass.CarClassNo) group by carclass.CarClassBrand ; 图 4 统计某一年龄阶段对汽车类别的喜好及相应人数 6.2.36.
33、2.3 视图视图V4:V4: 查询所输入的车牌号的车现在所处查询所输入的车牌号的车现在所处 状态状态 关键代码: DROP VIEW IF EXISTS v4; CREATE ALGORITHM=UNDEFINED DEFINER=rootlocalhost 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
34、= carclass.CarClassNo) ; 教学 f19 图 5 查询所输入车牌号的现在状态 6.36.3 存储过程存储过程 6.3.16.3.1 存储过程存储过程P1P1 功能:查询每辆车的状态和库存数,执行存储过程 关键代码:DROP PROCEDURE IF EXISTS P1; CREATE DEFINER=rootlocalhost PROCEDURE P1() begin select CarNo,CarState,CarClassBrand,CarClassCnt from car,carclass where car.CarClassNo=carclass.CarClas
35、sNo; end; 教学 f20 图 6 执行结果 6.3.26.3.2 存储过程存储过程P2P2 功能: 查询所输入客户账号的租赁历史记录,执行存储过程 关键代码:参数:CusNo varchar(10) DROP PROCEDURE IF EXISTS P2; CREATE PROCEDURE P2(CusNo varchar(10) Begin select rent.RecordNo,rent.RecordRentDate,rent.RecordReturnDate,rent.RecordCost,car.C arNo,carclass.CarClassBrand from rent,
36、car,carclass where CusNo=CusNo and rent.CarNo=car.CarNo and car.CarClassNo=carclass.CarClassNo; end 图 7 输入客户账号执行结果 6.3.36.3.3 存储过程存储过程P3P3 功能: 查询所输入车牌号的被租赁历史记录,执行存储过程 关键代码:参数 CarNo varchar(10) DROP PROCEDURE IF EXISTS P3; CREATE PROCEDURE P3(IN CarNo varchar(10) begin select RecordNo,RecordRentDate,
37、RecordReturnDate,RecordCost,CusNo from rent where CarNo=newCarNo; end 教学 f21 图 8 输入车牌号执行结果 6.3.46.3.4 存储过程存储过程P4P4 功能:通过输入订单号查询订单信息,执行存储过程。 关键代码:参数 newRecordNo varchar(10) DROP PROCEDURE IF EXISTS P5; begin select RecordRentDate,RecordReturnDate,CusNo,CarNo,RecordCost from rent where RecordNo=newRec
38、ordNo; end 图 9 执行结果 6.46.4 触发器触发器 6.4.16.4.1 触发器触发器T1T1 功能:当租赁公司新购入一辆汽车时,输入新的车牌号及信息,此车辆所对应车辆类别的 库存数自动增加,购入多辆时增加相应数量的库存。 关键代码:DROP TRIGGER IF EXISTS T1; CREATE TRIGGER T1 AFTER INSERT ON car FOR EACH ROW begin declare c int; 教学 f22 set c=(select CarClassCnt from carclass where CarClassNo=new.CarClass
39、No); update carclass set CarClassCnt=c+1 where CarClassNo=new.CarClassNo; end ;DELIMITER ; 图 10 新增一辆车库存数加一 6.4.26.4.2 触发器触发器T2T2 功能:当租赁公司报废一辆汽车时,删除车牌号及信息,此车辆所对应车辆类别的库存数 自动减少,删除多辆时减少相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T2; CREATE TRIGGER T2 AFTER DELETE ON car FOR EACH ROW begin declare c int; set c
40、=( select CarClassCnt from carclass where CarClassNo=old.CarClassNo); update carclass set CarClassCnt=c-1 where CarClassNo=old.CarClassNo; end 教学 f23 图 11 删除一个车辆记录,库存数自动减一 6.4.36.4.3 触发器触发器T3T3 功能:当产生一个新的订单时,订单中所预订车辆所对应车辆类别的库存数自动减少,产 生多个订单号时也减少相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T3; DELIMITER ; CR
41、EATE TRIGGER T3 AFTER INSERT ON rent FOR EACH ROW update carclass set CarClassCnt=CarClassCnt-1 where CarClassNo in( select CarClassNo from car where CarNo in (select CarNo from rent where CarNo =new.CarNo) ;DELIMITER ; 图 11 增加订单对应类别库存数减少 教学 f24 6.4.46.4.4 触发器触发器T4T4 功能:当产取消一个订单时,订单中所预订车辆所对应车辆类别的库存数
42、自动增加,取消 多个订单号时也增加相应数量的库存。 关键代码: DROP TRIGGER IF EXISTS T4; DELIMITER ; CREATE TRIGGER T4 AFTER INSERT ON rent FOR EACH ROW update carclass set CarClassCnt=CarClassCnt+1 where CarClassNo in( select CarClassNo from car where CarNo in (select CarNo from rent where CarNo =old.CarNo) ;DELIMITER ; 图 12 取消
43、一个订单对应类别库存数增加 6.4.56.4.5 触发器触发器T5T5 功能:当产生一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(00)变为预订 状态(01)。 关键代码:DELIMITER ; DROP TRIGGER IF EXISTS T5; DELIMITER ; CREATE TRIGGER T5 AFTER UPDATE ON rent FOR EACH ROW 教学 f25 update car set CarState=CarState+1 where CarNo in( select CarNo from rent where CarNo =new.CarNo) ;D
44、ELIMITER ; 图 13 新增订单对应车辆的租赁状态改变 教学 f26 6.56.5 JavaJava 模块设计模块设计 6.5.16.5.1 连接数据库连接数据库 图 14 连接 car 表执行结果 教学 f27 6.5.26.5.2 JavaJava 界面设计界面设计 图 15 主界面 图 16 管理员登录界面 教学 f28 图 17 管理员登录成功界面 图 18 客户登录界面 图 19 客户登录成功界面 教学 f29 7、安全性设计安全性设计 数据库只被少数授权用户访问,必须提供用户名和正确的密码。存储数据库的服务器也只能让 系统管理员或少数高级管理人员登录。数据库的安全策略,遵从
45、 MYSQL 的安全策略事 7.17.1 防止用户直接操作数据库防止用户直接操作数据库 7 7. .2 2定定义义视视图图,授授予予不不同同角角色色不不同同的的权权限限。 7.37.3 角色与权限角色与权限 角色可以访问的表与列操作权 z 限 可访问所有表完全控制权限 可访问所有表完全控制权限例如:管理员 可访问所有表完全控制权限 只可访问 Car 表完全控制权限 只可访问 Carclass 表完全控制权限角色 B 只可访问 Rent 表完全控制权限 八、数据库管理与维护说明八、数据库管理与维护说明 (一)完善管理制度,强化监管力度。数据库系统的安全与企业自身内部的安全 机制、内外网络环境、从
46、业人员素质等密切相关。因此,企业应该完善网络系统安全 规章制度,防范因制度缺陷带来的风险;企业应该规范操作流程和故障处理流程,减 少人为失误与故障,提高故障处理速度,缩短故障处理时间;企业应该通过建立科学 合理的责任追究机制,防止出现由于工作态度、工作作风等各种人为因素导致的数据 库安全事故。 教学 f30 (二)采取措施,确保数据库数据的安全。保证数据库数据的安全是数据库日常 管理与维护工作的首要任务,企业需要采取的安全措施主要有:确保网络及操作系统 安全。网络系统是数据库应用的外部环境和基础,网络系统安全是数据库安全的第一 道屏障。从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以
47、分为防火 墙、数字签名与认证、入侵检测等。操作系统是数据库系统的运行平台,能够为数据 库系统提供一定程度的安全保护。操作系统的安全控制方法主要是采用隔离控制、访 问控制、信息加密和审计跟踪。主要安全技术有操作系统安全策略、安全管理策略等。 加强用户身份验证。用户身份验证是数据库系统的重要防线。利用窗体身份验证 数据库程序的漏洞,进而获取存储在数据库中的用户身份验证密码,这是目前对网络 数据库攻击最常见的方式。对此,企业信息部门通常使用带有 salt 值的单向密码哈希 值,以避免用户密码在数据库中以明文形式存储,减轻字典攻击带来的威胁。 对重要数据加密。数据加密交换又称密码学,是计算机系统对信息
48、进行保护的一 种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而有效保护信 息的安全不受侵犯。数据库加密要求加解密的粒度是每个记录的字段数据。采用库外 口加密的方式,对密钥的管理较为简单,只需借用文件加密的密钥管理方法,将加密 后的数据块纳入数据库,在算法或数据库系统中做些必要的改动就行。这样有利于公 共数据字典的使用和维护系统的完整性。 做好数据库备份与恢复。数据备份是备份数据库某个时刻的数据状态,当系统出 现意外时用来恢复系统。依靠网络办公的企业,其信息系统很可能随时被破坏而丢失 数据。因此,数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状 态的功能,这就是数据
49、库的恢复技术。 (三)开展数据库健康检查。为及时发现数据库系统存在的问题,在日常管理与 维护中,数据管理员要对数据库开展健康检查。当前,烟草行业内大部分企业使用的 数据库是 IBM DB2,对该数据库进行检查时,检查内容主要包括以下七个方面: 1、系统环境:操作系统版本、文件系统容量、内存交换区使用率、系统性能。 教学 f31 2、数据库环境:数据库和补丁版本、是否有僵尸数据库进程、数据库节点数、是 否有其他数据库产品及版本。 3、日志记录:db2diag.log 报错、db2inst1.nfy 报错、是否有需要处理的 DUM 4、数据库健康状况:表空间利用率和状态、表空间容器利用率和状态、排
50、序 溢出、是否需要收集统计信息、是否需要数据重组、活动日志和日志所在文件系统利 用率、死锁发生率、锁升级发生率、锁等待的百分比、编目 Cache 命中率、包 Cache 命中率、监视堆利用率、数据库堆利用率、数据库缓冲池命中率。 5、数据库维护内容:最近一次统计信息收集时间、最近一次表数据重组时间、最 近一次绑定包时间、最近一次数据库备份时间。 6、权限管理:public 组的权限是否取消。 7、数据库基本信息记录:数据库内存使用、环境变量。数据库管理的意义重 大,关系到企业信息系统的正常运作,仍至整个企业的生死存亡。要做好数据库的日 常管理与维护,不仅要求数据库管理员熟练掌握专业技术,还要有
51、足够的细心和高度 的责任心。 8.18.1 课程设计总结:课程设计总结: 本次课程设计不仅仅是对所学知识的总结,还是一种学习思想的升华。正所谓实践 出真知,然而,当我沿着步骤一步步进行下去的时候,才意识到自己知识的浅薄和视野 的狭窄。 通过这段时间的学习,让我及组员深切体会到了一个完整的管理系统编写的复杂程 度和困难程度,对软件开发的流程也有了一个更清晰的了解,从一开始的可行性分析, 系统需求分析,再到数据库设计,功能模块的设计和界面的设计,到最后的系统运行与 测试。这个过程中,每一个步骤都很重要,缺一不可。当然,由于自身技术能力不足, 缺乏实际开发经验,再加上时间有限,本系统还有许多有待完善
52、的部分。 希望我能今后通过不断地学习和实践来提升自己的各方面能力,学会让所学理论知 识与实际操作的融会贯通,为以后工作及生活中的系统软件设计打下良好的基础。 教学 f32 九、附录九、附录 源代码源代码 9.19.1 数据库源代码数据库源代码 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50523 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Serve
53、r 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 , CarColor varchar(10) DEFAULT NULL, CarDate date DEFAULT NULL, 教学 f33 CarClassNo varchar(1
54、0) 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; - - - Records of car - - INSERT INTO car VALUES (湘 L123SB, 白色, 2016-05-05, 002, ); IN
55、SERT 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, 001, ); INSERT INTO car VALUES (湘 L250SB, 荧光绿, 2014-12-25, 003, ); INSERT INT
56、O 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 EXISTS carclass; CREATE TABLE carclass ( CarClassNo varchar(10) NOT NULL, CarClassCn
57、t varchar(10) NOT NULL, CarClassDayPrice1 varchar(10) NOT NULL, 教学 f34 CarClassDayPrice2 varchar(10) NOT NULL, CarClassMonthPrice varchar(10) NOT NULL, CarClassBrand varchar(10) DEFAULT NULL, CarClassseat varchar(10) DEFAULT NULL, PRIMARY KEY (CarClassNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - -
58、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, 6500000, 兰博基尼, 2); INSERT INTO carclass VALUES (004, 01, 90000, 230000,
59、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, CusPhone varchar(20) NOT NULL, 教学 f35 CusCompany varchar(20) NOT NULL, C
60、usPassword 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 (431023002, 徐福记, 男, 40, 183255, 长沙学院集团, 222222); INSERT INTO customer VALU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5一个豆荚里的五粒豆(教学设计)2024-2025学年统编版语文四年级上册
- 5 蘑菇和木耳 教学设计-2023-2024学年科学六年级上册青岛版
- 2024-2025学年高中历史 第一单元 第3课 统一多民族封建国家的初步建立教学实录 新人教版必修《中外历史纲要(上)》
- 电子商务物流管理系统设计与优化试题集
- 航空器维护管理技术与程序手册
- 16雷雨 教学设计-2023-2024学年语文二年级下册统编版
- 11《变废为宝有妙招》(第2课时)教学设计-2024-2025学年道德与法治四年级上册统编版
- 12 《富起来到强起来》(教学设计)统编版道德与法治五年级下册
- 2 《祖父的园子》(教学设计)-2023-2024学年统编版语文五年级下册
- 2024年五年级数学上册 1 小数乘法第9课时 解决问题(2)教学实录 新人教版
- 防火封堵施工施工工艺
- 古诗惠崇春江晚景课件市公开课一等奖省赛课微课金奖课件
- 多囊肾的教学查房
- 社会福利 课件 第1、2章 绪论、社会福利理论
- 2024年广州市高三一模高考历史试卷试题答案详解(精校打印)
- 化学品(氩气+二氧化碳混合气)安全技术使用说明书
- 产品质量检验报告样本(范本模板)
- 煤层气开发-第2章-煤层气地质
- 武术公益推广方案
- 黑龙江商业职业学院单招《职业技能测试》参考试题库(含答案)
- 小学数学六年级下册《鸽巢问题》作业设计
评论
0/150
提交评论