首页 汽车租赁管理系统,DOC

汽车租赁管理系统,DOC

举报
开通vip

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

汽车租赁管理系统,DOC
长沙学院课程设计 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 书 题目 汽车租赁管理系统 学院 计数院 专业(班级) 软件工程 姓名 学号 指导教师 杨刚、潘怡 起止日期 2017/5/29-2017/6/29课程设计任务书课程名称:数据库系统原理课程设计设计题目:汽车租赁管理系统。已知技术参数和设计要求:题目:汽车租赁管理系统1、某汽车租赁公司汽车租赁管理系统需要如下信息:工作人员信息包括:工号、姓名、性别、联系电话等。客户信息包括:身份证号、姓名、性别、所在单位、联系电话等。车辆信息包括:车牌号、品牌、颜色、座位数、日租价格、日租超公里价格、月租价格、租赁状态、购入日期等。车辆类别信息包括:分类号,库存数。其业务规则描述如下:一个工作人员可以对很多辆车辆进行管理,一辆车也可以被多个工作人员管理;一辆车只能属于一种车辆类别,而一种车辆类别可以包含多辆车;一个客户可以租多辆不同的车。2、系统功能的基本要求:可以实现对车辆、租赁客户的查询,可以查询汽车、客户租赁历史记录。可以按类别统计汽车的租赁金额和剩余的库存数,可以统计某一年龄客户群体对某类汽车的租赁喜好,能模拟客户对汽车的租借、归还业务。各阶段具体要求:1、需求分析阶段·定义数据项的含义和取值·定义目标系统的数据流2、概念结构设计阶段·画出实体模型E-R图3、逻辑结构设计阶段·将实体模型转化为关系模型·给出每个关系的主关键字和 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数依赖集·分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段·确定所有字段的名称、类型、宽度、小数位数及完整性约束·确定数据库及 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的名称及其组成·确定索引文件和索引关键字5、数据库安全及维护设计阶段·设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)·为了实现复杂的数据完整性约束,设计适当的触发器·设计一个适合的数据库备份策略6、实施阶段·要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。 工作计划 幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划 :安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;1)选定题目2)需求分析3)概念结构设计4)逻辑结构设计5)物理设计6)数据库安全及维护设计7)数据库上机实现8)答辩 计划时间 指导老师 班级 15~16周 潘怡、杨刚 15软件1班 15~16周 潘怡、杨刚 15软件2班 15~16周 卓琳、田清龙 15软件3班 15~16周 卓琳、田清龙 15软件4班 15~16周 张肖霞、马丽 15软件5班 15~16周 张肖霞、马丽 15软件6班注意事项·提交电子文档·长沙学院课程设计任务书(每学生1份)·长沙学院课程设计论文(每学生1份)·长沙学院课程设计鉴定表(每学生1份)指导教师签名:      日期:    教研室主任签名:       日期:        院长签名:         日期:        长沙学院课程设计鉴定表 姓名 学号 专业 班级 设计题目 指导教师 指导教师意见:评定等级:教师签名:日期: 答辩小组意见:评定等级:     答辩小组长签名:     日期:     教研室意见:教研室主任签名:日期:  学院意见:院长签名:        日期:      说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目录一、引言7编写目的7参考资料7二、需求规约7业务描述7需求分析8三、数据库环境说明8四、数据库的命名规则8数据库对象命名规则8数据项编码规则9五、逻辑设计10创建与数据库相关的那部分实体关系图(ERD)、表及关系图10创建数据库系统的关系模型12六、物理设计12表汇总12存储过程17触发器21七、安全性设计28防止用户直接操作数据库的方法28角色与权限28八、数据库管理与维护说明29九、附录:源代码30一、引言1.1编写目的本文档是汽车租赁系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2参考资料 资料名称 作者 文件编号、版本 《数据库系统概论》 王珊、萨师煊 2006年5月第4版2、需求规约业务描述该数据库建立于sqlserver2008r2,环境为windows7 系统名称:汽车租赁管理系统。 系统的开发者:小组成员 系统的用户:租车客户以及租赁公司的工作人员。数据库系统要完成的业务 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 及工作内容首先完成需求分析,根据需求关系画出ER-图,并写出关系模式。根据ER图用SQLserver创建与数据库相关的表,视图,存储过程以及触发器。系统的功能要求基本实现对车辆,租赁客户的查询。可以查询客户租赁的历史记录。可以查看汽车价格、库存,可以查看汽车的租借、归还、以及费用。揭示该数据库的资源需求和设计约束需求分析 (1)车辆管理  主要是表示管理员可以对租赁公司现有的汽车的具体信息进行管理,修改汽车基本信息,包括车牌号、汽车颜色、购入日期、类别及租赁状态等,也可以添加新购进来的汽车基本信息,以便更快的投入租赁市场,方便客户了解最新车辆信息以及做出更好的租赁选择。(2)业务管理 主要提供对汽车的日常业务进行管理,如查询指定汽车的租赁状态,被租赁的车的车牌号,所生成的订单号,所租车的种类,租车时间、归还时间及租赁金额,查询租车客户的基本信息,以便于管理员更好的管理车辆系统,保障系统安全性。3、数据库环境说明 数据库实例 数据库系统 数据库部署环境 数据库设计工具 数据库存放位置 说明 汽车租赁 Sqlserver2008r2 Windows7 Sqlserver2008r2Microsoftofficevisio2003 E:\sql\SQL 实例用途说明4、数据库的命名规则数据库对象命名规则: 数据库对象 命名规则 备注 表 英文命名 例如:car汽车表 存储过程 proc_功能描述字符串 例如:proc_car汽车查询的存储过程 触发器 功能命名 例如:delete_car删除汽车 视图 View_功能描述字符串 例如:view_rent查看租借信息表数据项编码规则: 数据项 命名规则 数据类型 长度范围 备注 汽车编号 所在地+字母号+数字 Varchar类型 10位 租赁状态 Trueorfalse Bit类型 订单号 流水号 Varchar类型 10位 客户号 字母+数字编号 Varchar类型 10位 工作人员编号 数字 Varchar类型 10位 汽车类型号 字母 Varchar类型 10位 5、逻辑设计创建与数据库相关的那部分实体关系图(ERD)、表及关系图 表customers CusNoPY Varchar(10)NOT Null CusName Varchar(10) NOT Null CusSex Varchar(2)    NOT Null CusAge Varchar(4)  NOT Null CusPhone Varchar(10)   CusCompany Varchar(10)   NOT Null CusIdentity Varchar(10)   NOT Null 表rent RecordPY Verchar(10) Notnull RentDate date Notnull ReturnDate date Notnull CusNo Verchar(10) Notnull CarNo Verchar(10) Notnull Recordcost Verchar(100 NotNull 表car CarNoPY Verchar(10) Notnull CarColor Verchar(10) Notnull CarDate date Notnull CarClassNoFY Verchar(10) Notnull CarState bit Notnull 表carclass CarClassNoPY Verchar(10) Notnull CarClassCnt Varchar(10) Notnull CarClassDayPrice Verchar(10) Notnull CarClassDayPriceExceed Verchar(100 Notnull CarClassMonthPrice Verchar(10) Notnull CarClassSeat Verchar(10) Notnull 表worker WorkNoPY Verchar(10) Notnull WorkPassWord Verchar(10) Notnull WorkName Verchar(10) Notnull WorkSex Verchar(2) Notnull WorkPhone Verchar(10) 表manage WorkNoPY Verchar(10) Notnull CarNoPY Verchar(10) Notnull创建数据库系统的关系模型1.工作人员(工号、密码、姓名、性别、联系电话)2.客户信息(身份证号、密码、姓名、性别、所在单位、联系电话)、3.车辆信息(车牌号、品牌、座位数、颜色、租赁状态、购入日期、分类号) 4车辆类别(分类号、库存数、日租价格、日租超公里价格、月租价格、月租超公里价格、品牌)5.管理(工号、车牌号)备注:(工号和车牌号共同作为管理表的主键,同时也是外键) 6.租赁(订单号、身份证号、车牌号、租赁日期、归还日期、租赁总金额)6、物理设计表汇总 表名 功能说明 car 存储车辆信息 carclass 存储车辆类别的信息 rent 存储租赁的信息 customers 存储客户信息 worker 存储工作人员的信息 manage 存储工作人员和车辆之间的关系 表名 car 数据库用户 Car_rent 主键 CarNo 索引字段 CarClassNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 CarNo varchar(10) N Y 高 无 主键 2 CarClassNo varchar(10) N N 高 无 外键 3 CarState bit(2) N N 低 00 租赁状态 4 Cardate date N N 低 无 购入日期 5 CarColor varchar(10) N N 低 无 汽车颜色 sql脚本 DROPTABLEIFEXISTS`car`;CREATETABLE`car`(`CarNo`varchar(10)NOTNULL,`CarColor`varchar(10)NOTNULL,`CarDate`dateNOTNULL,`CarSta`bit(10)NOTNULL,`CarClassNo`varchar(10)NOTNULL,PRIMARYKEY(`CarNo`),KEY`CarClassNo`(`CarClassNo`),CONSTRAINT`CarClassNo`FOREIGNKEY(`CarClassNo`)REFERENCES`carclass`(`CarClassNo`)) 表名 carclass 数据库用户 Car_rent 主键 CarClassNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 CarClassNo varchar(10) N Y 高 无 主键 2 CarClassCnt varchar(10) N N 低 无 库存数 3 CarClassSeat bit(2) N N 低 无 座位数 4 CarClassDayPrice2 date N N 低 无 日租价格 5 CarClassDayPrice1 varchar(10) N N 低 无 日租超公里价格 6 CarClassMonthPrice varchar(10) N N 低 无 月租价格 7 CarClassBrand varchar(10) N N 低 无 车辆品牌 sql脚本 DROPTABLEIFEXISTS`carclass`;CREATETABLE`carclass`(`CarClassNo`varchar(10)NOTNULL,`CarClassCnt`varchar(10)NOTNULL,`CarClassDayPrice1`varchar(10)NOTNULL,`CarClassDayPrice2`varchar(10)NOTNULL,`CarClassMonthPrice`varchar(10)NOTNULL,`CarClassBrand`varchar(10)NOTNULL,`CarClassseat`varchar(10)NOTNULL,PRIMARYKEY(`CarClassNo`)) 表名 customer 数据库用户 Car_rent 主键 CusNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 CusNo varchar(10) N Y 高 无 主键 2 CusPassword varchar(10) N N 高 无 登录密码 3 CusName varchar(10) N N 低 无 客户姓名 4 CusSex varchar(10) N N 低 无 客户性别 5 CusAge varchar(10) N N 低 无 客户年龄 6 CusPhone varchar(10) N N 低 无 客户电话 7 CusCompany varchar(10) N N 低 无 公司 sql脚本 DROPTABLEIFEXISTS`customer`;CREATETABLE`customer`(`CusNo`varchar(10)NOTNULL,`CusName`varchar(10)NOTNULL,`CusSex`varchar(2)NOTNULL,`CusAge`varchar(4)NOTNULL,`CusPhone`varchar(20)NOTNULL,`CusCompany`varchar(20)NOTNULL,`CusPassword`varchar(10)NOTNULL,PRIMARYKEY(`CusNo`)) 表名 worker 数据库用户 Car_rent 主键 WorkNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 WorkNo varchar(10) N Y 高 无 主键 2 WorkPassword varchar(10) N N 低 无 密码 3 WorkName varchar(10) N N 低 无 姓名 4 WorkSex varchar(10) N N 低 无 性别 5 WorkPhone varchar(10) N N 低 无 电话 sql脚本 DROPTABLEIFEXISTS`worker1`;CREATETABLE`worker1`(`WorkNo`varchar(10)NOTNULLDEFAULT'',`WorkPassword`varchar(10)DEFAULTNULL,`WorkName`varchar(10)DEFAULTNULL,`WorkSex`varchar(10)DEFAULTNULL,`WorkPhone`varchar(10)DEFAULTNULL,PRIMARYKEY(`WorkNo`)) 表名 rent 数据库用户 Car_rent 主键 RecordNo 索引 CarNo、CusNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 RecordNo varchar(10) N Y 高 无 主键 2 CarNo varchar(10) N N 高 无 外键 3 CusNo varchar(10) N N 低 无 外键 4 RecordCost varchar(10) N N 低 无 总金额 5 RecordRentDate varchar(10) N N 低 无 租赁时间 6 RecordReturnDate varchar(10) N N 低 无 归还时间 sql脚本 DROPTABLEIFEXISTS`rent`;CREATETABLE`rent`(`RecordNo`varchar(10)NOTNULL,`RecordRentDate`datetimeNOTNULL,`RecordReturnDate`datetimeNOTNULL,`CusNo`varchar(10)NOTNULL,`CarNo`varchar(10)NOTNULL,`RecordCost`varchar(10)DEFAULTNULL,PRIMARYKEY(`RecordNo`),KEY`CusNo`(`CusNo`),KEY`CarNo`(`CarNo`),CONSTRAINT`CarNo`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),CONSTRAINT`CusNo`FOREIGNKEY(`CusNo`)REFERENCES`customer`(`CusNo`)) 表名 Wmanage 数据库用户 Car_rent 主键 CarNo、WorkNo 索引 CarNo 序号 字段名称 数据类型 允许为空Y/N 唯一Y/N 区别度 默认值 约束条件/说明 1 WorkNo varchar(10) N Y 高 无 主键 2 CarNo varchar(10) N N 高 无 主键 sql脚本 DROPTABLEIFEXISTS`manege`;CREATETABLE`manege`(`WorkNo`varchar(10)NOTNULLDEFAULT'',`CarNo`varchar(10)NOTNULLDEFAULT'',PRIMARYKEY(`WorkNo`,`CarNo`),KEY`CarNo`(`CarNo`),CONSTRAINT`manege_ibfk_1`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),CONSTRAINT`WorkNo`FOREIGNKEY(`WorkNo`)REFERENCES`worker1`(`WorkNo`))6.2存储过程6.2.1查询每辆车的状态和库存数关键代码usecar_rentgoCREATEPROCEDUREproc_caras,,fromcar,carclass=查询所输入客户账号的租赁历史记录关键代码usecar_rentgocreateprocedureproc_customers(@CusNovarchar(10))as,,,,,,fromrent,car,carclasswhere@CusNo==执行execproc_customers'A01'查询输入客户账号的租赁历史记录关键代码usecar_rentgocreateprocedureproc_car_rent(@CarNovarchar(10))as,,,,,fromrent=@CarNo;执行execproc_car_rent'湘A8888'查询通过输入订单号查询订单信息关键代码usecar_rentgocreateprocedureproc_record(@Recordvarchar(10))as,,,,fromrent=@Record;执行execproc_record'1'通过输入类别统计汽车的租赁金额和剩余的库存数关键代码usecar_rentgocreateprocedureproc_carclassno(@carclassnovarchar(10))as,fromcarclass=@carclassno;执行execproc_carclassno'A'删除一辆车关键代码usecar_rentgocreateprocedureproc_delete_car(@carnovarchar(10))asdeletefromcar=@carno执行execproc_delete_car'湘B8888'删除一条记录关键代码usecar_rentgocreateprocedureproc_delete_rent(@recordvarchar(10))asdeletefromrent=@record执行execproc_delete_rent'2'还车(修改还车日期,默认没还车前,还车日期等于借车日期,只有当没还过车的时候才能修改还车日期)关键代码usecar_rentgocreateprocedureproc_return_car(@recordvarchar(10),@returndatedate)asupdaterentsetRetunDate=@returndatewhere@returndate>(DAY,,=0执行execproc_return_car'1','2016-8-17'触发器输入新的车牌号及信息,此车辆所对应车辆类别的库存数自动增加关键代码usecar_rentgoCreateTriggeradd_newcarOncarafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1(SELECTCarClassNofromINSERTEDi)GO删除车牌号及信息,此车辆所对应车辆类别的库存数自动减少关键代码usecar_rentgoCreateTriggerdelete_carOncarafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1(SELECTCarClassNofromdeletedi)GO当产生一个新的订单时,订单中所预订车辆所对应车辆类别的库存数自动减少。(借车时)关键代码usecar_rentgoCreateTriggerrent_carOnrentafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted)))GO修改订单还车日期时时,订单中所预订车辆所对应车辆类别的库存数自动增加。(还车时)关键代码usecar_rentgoCreateTriggerreturn_carOnrentafterupdateAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))Go当产取消一个订单时,订单中所预订车辆所对应车辆类别的库存数自动增加关键代码usecar_rentgoCreateTriggerdelete_rent_carOnrentafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted='false'))GO当产生一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(ture)变为预订状态(false)(借车时)关键代码usecar_rentgoCreateTriggerrent_state_carOnrentafterinsertAsupdatecarsetCarState='false'whereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted));GO改订单还车日期时时,订单中所预订车辆的租赁状态由预订状态(false)变为空闲状态(ture)。(还车时)关键代码usecar_rentgoCreateTriggerreturn_state_carOnrentafterupdateAsUPDATEcarsetCarState='true'whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))Go当取消一个新的订单时,订单中所预订车辆的租赁状态由空闲状态(false)变为预订状态(ture)关键代码usecar_rentgoCreateTriggerdelete_rent_state_carOnrentafterdeleteAsupdatecarsetCarState='true'whereCarNoin(selectCarNofromdeleted='false');GO修改订单还车日期时时,更新实际花费。(还车时)关键代码usecar_rentgoCreateTriggerreturn_car_priceOnrentafterupdateAsdeclare@pricevarchar(10)select@price=(selectCarClassDayPrice1fromCarClasswhereCarClassNoin(selectCarClassNofromCarwhereCarNoin,deleted=)))UPDATErentSETRecordCost=@price*(DATEDIFF(DAY,,+1)whereRecordin,deleted=)Go7、安全性设计防止用户直接操作数据库的方法关键代码execsp_addlogin'1','123456','car_rent'--worker管理员execsp_grantdbaccess'1','worker'execsp_addlogin'A01','123456','car_rent'--customers用户execsp_grantdbaccess'A01','customers'角色与权限关键代码worker拥有所有权限grantalloncartoworkerwithgrantoptiongrantalloncarclasstoworkerwithgrantoptiongrantallonrenttoworkerwithgrantoptiongrantallonworkertoworkerwithgrantoptiongrantallonmanagetoworkerwithgrantoptiongrantalloncustomerstoworkerwithgrantoption用户拥有查看customer和car的权限grantallonselect_customerstocustomersgrantallonselect_cartocustomers 角色 可以访问的表与列 操作权限 Worker 可访问所有表 完全控制权限 Customers 查看客户表视图 查看 查看汽车表视图 查看 查看租赁表视图 查看8、数据库管理与维护说明要保证数据库的安全和可靠就需要对其日常管理进行全面的掌控和及时的维护,以此获得更加安全的数据库环境。具体的做法有以下几点:(1)定期对用户和密码进行维护前面提及的管理的安全性是十分重要的,因此对数据库的用户和密码应当进行定期的维护和管理,借助动态化的变更来获得安全性的提高。为了保证系统的安全性,系统管理人员应当按照系统运行的实际情况,对系统进行强制性的维护,执行一系列的安全保证措施。其中定期修改用户密码就是一种较为有效的措施,操作是通过调用系统过程中的sp-password来完成的。通过这个操作对原有的老的密码进行更换,并形成新的密码供用户使用。在完成一个SQL Server的安装后,就会有一个对应的管理员用户sa出现,其拥有的是最高的管理权限,通常为系统的管理人员拥有,这个sa的重要性前面已经提及,所以在管理中对sa级别的密码也应当注意定期的修改。(2)授权给信息表用户设置密码和用户验证的手段是控制用户访问数据库的合法性,而为每个数据库中的信息表用户进行授权就是为了保证用户的合法权利,即对不同的信息表用户划定某种访问的特权。所以给信息表用户授权是一种实时化确定访问用户权限的措施,是有效的提高系统安全性的重要手段。同时也是系统管理员需要进行的一项日常管理工作。(3)对数据库数据资料的维护数据库随着计算机技术的发展而变得越来越庞大,同时在与网络相结合实现了网络连接和访问的功能,数据的备份和恢复工作就成为了数据库数据资料管理的重要内容。因为数据资料是数据库的核心,对其保护和备份显然是数据库管理的核心。1)数据库备份管理每个数据库都应当在创建后就进行卸出,从而提供一个装入度的基点。在此后就会按照一定的时间点进程周期表卸出。除了按照计划的卸出管理之外,还应当对每次运行没有日志的操作后进行卸出数据库的操作。这是保证数据库资料得到及时备份的重要操作过程,也是对日常管理的要求2)数据库事务日志的备份在系统管理中,事务日志的备份空间要远远小于备份数据库的资源空间,因此在对其进行备份的时候,操作频率要大于对数据库的备份,即频繁操作是其突出特征,以此便于随时掌控访问的记录,减少丢失数据的可能性。通常都是采用DUMP TRAN的命令来执行单独备份日志3)数据库系统恢复管理数据库在完成各项操作和功能的时候,就会涉及到数据库重装,然后在装入前完成卸出日志。对数据库的备份和事务日志备份,就是为了防止出现意外的时候,可以完整的恢复数据库。当出现意外发生时,已经完成操作的数据和日志都可以被恢复,只有还没有被提交的事务才会丢失。从而将数据库恢复到没有出现问题前的状态,将数据的丢失控制在最小的范围内。这也是日常维护工作的核心目标。(4)对系统状况的监控1)控制用户1)利用系统过程:sp-who说明:此过程是显示当前系统中所有的注册用户的进程信息,且为实时化,显示的为进程号、当前状态、注册用户、机主名称、占有资源、数据库名称、执行指令等。如果监控是发现进程总数接近系统最大允许数量,系统则会对一些无关进程进行关闭,保证系统正常。2)控制占用空间九、实验总结本次实验熟练掌握了对T-sql语言和数据库的掌握,进一步了解了存储过程、触发器、视图的语法结构以及表的完整性约束,列完整性约束。十、附录:源代码建库建表----------------------------CREATEDATABASEcar_rent--------------------------CREATEDATABASEcar_rentONPRIMARY(NAME=car_data,FILENAME='f:\sql\',SIZE=20MB,MAXSIZE=30MB,FILEGROWTH=1MB)LOGON(NAME=car_log,FILENAME='f:\sql\',SIZE=10MB,MAXSIZE=15MB,FILEGROWTH=1MB)----------------------------------createtableworker--------------------------------usecar_rentcreatetableworker(WorkNovarchar(10)notnullCONSTRAINTWorkNOPRIMARYKEY,WorkPassWordvarchar(10)null,WorkNamevarchar(10)null,WorkSexvarchar(10)null,WorkPhonevarchar(10)null,)--------------------dataofworker------------------INSERTINTOworkerINSERTINTOworker----------------------------------createtablemanage--------------------------------usecar_rentcreatetablemanage(WorkNovarchar(10)notnullCONSTRAINTWorkNo_FKFOREIGNKEYREFERENCESworker(WorkNo),CarNovarchar(10)notnullCONSTRAINTCarNo_FKFOREIGNKEYREFERENCEScar(CarNo),PRIMARYKEY(WorkNo,CarNo),)--------------------dataofmanage----------------------------------------------------createtablecar--------------------------------usecar_rentcreatetablecar(CarNovarchar(10)notnullCONSTRAINTCarNoPRIMARYKEY,CarColorvarchar(10)null,CarDatedatenull,CarClassNovarchar(10)notnullCONSTRAINTCarClassNo_FKFOREIGNKEYREFERENCEScarclass(carclassno),CarStatebitnull,)--------------------dataofcar------------------INSERTINTOcarvalues('湘A8888','黑色','2017-05-31','A','true');INSERTINTOcarvalues('湘A6666','白色','2017-06-01','A','true');INSERTINTOcarvalues('湘B8888','蓝色','2017-05-31','B','true');----------------------------------createtablecarclass--------------------------------usecar_rentcreatetablecarclass(CarClassNovarchar(10)notnullCONSTRAINTCarClassNOPRIMARYKEY,CarClassCntintNOTNULL,CarClassDayPrice1varchar(10)NOTNULL,CarClassDayPrice2varchar(10)NOTNULL,CarClassMonthPricevarchar(10)NOTNULL,CarClassBrandvarchar(10)NULL,CarClassseatvarchar(10)NULL,)--------------------dataofcarclass------------------INSERTINTOcarclassvalues('A','0','200','20','1000','大众库','4');INSERTINTOcarclassvalues('B','0','300','20','2000','奥迪库','4');----------------------------------createtablerent--------------------------------usecar_rentcreatetablerent(Recordvarchar(10)notnullCONSTRAINTRecordPRIMARYKEY,RentDatadatenotnull,RetunDatedatenotnull,CusNovarchar(10)notnullCONSTRAINTCusNo_FKFOREIGNKEYREFERENCEScustomers(CusNo),CarNovarchar(10)notnullCONSTRAINTCarNo_rent_FKFOREIGNKEYREFERENCEScar(CarNo),RecordCostvarchar(10)notnull,)--------------------dataofrent------------------usecar_rentINSERTINTOrentvalues('1','2016-06-17','2016-06-17','A01','湘A8888','0000')INSERTINTOrentvalues('2','2016-05-17','2016-05-17','A01','湘A6666','0000')INSERTINTOrentvalues('3','2016-07-18','2016-07-18','A02','湘A8888','0000')----------------------------------createtablecustomers--------------------------------usecar_rentcreatetablecustomers(CusNovarchar(10)notnullCONSTRAINTCusNOPRIMARYKEY,CusNamevarchar(10)notnull,CusSexvarchar(2)notnull,CusAgevarchar(4)notnull,CusPhonevarchar(20)notnull,CusCompanyvarchar(20)notnull,CusPasswordvarchar(10)notnull,)--------------------dataofcustomers------------------usecar_rentINSERTINTOcustomersvalues('A01','马云','男','40','1888888','阿里巴巴','123456')INSERTINTOcustomersvalues('A02','小明','男','50','122222','汽修厂','222222')存储过程--系统功能的基本要求:--可以实现对车辆、租赁客户的查询,--可以查询汽车、客户租赁历史记录。--可以按类别统计汽车的租赁金额和剩余的库存数,--模拟客户对汽车的租借、归还业务-----------------------------------------存储过程---------------------------------------------------------------------------------------------------------------------------:查询每辆车的状态和库存数usecar_rentgoCREATEPROCEDUREproc_caras,,fromcar,carclass=execproc_cardropprocedureproc_car--------------------------------------------------------------------------------------:查询所输入客户账号的租赁历史记录usecar_rentgocreateprocedureproc_customers(@CusNovarchar(10))as,,,,,,fromrent,car,carclasswhere@CusNo=='A01'dropprocedureproc_customers----------------------------------------------------------------------------------------:查询所输入车牌号的被租赁历史记录usecar_rentgocreateprocedureproc_car_rent(@CarNovarchar(10))as,,,,,fromrent=@CarNo;execproc_car_rent'湘A8888'dropprocedureproc_car_rent---------------------------------------------------------------------------------------:通过输入订单号查询订单信息usecar_rentgocreateprocedureproc_record(@Recordvarchar(10))as,,,,fromrent=@Record;execproc_record'1'dropprocedureproc_record-------------------------------------------------------------------------------------------:通过输入类别统计汽车的租赁金额和剩余的库存数usecar_rentgocreateprocedureproc_carclassno(@carclassnovarchar(10))as,fromcarclass=@carclassno;execproc_carclassno'A'dropprocedureproc_carclassno-----------------------------------------------------------------------------------------:报废一辆车usecar_rentgocreateprocedureproc_delete_car(@carnovarchar(10))asdeletefromcar=@carnoexecproc_delete_car'湘B8888'-------------------------------------------------------------------------------------------:撤销租赁记录usecar_rentgocreateprocedureproc_delete_rent(@recordvarchar(10))asdeletefromrent=@recordexecproc_delete_rent'1'-------------------------------------------------------------------------------------------:还车(修改还车日期,默认没还车前,还车日期等于借车日期,只有当没还过车的时候才能修改还车日期)usecar_rentgocreateprocedureproc_return_car(@recordvarchar(10),@returndatedate)asupdaterentsetRetunDate=@returndatewhere@returndate>(DAY,,=0execproc_return_car'1','2016-8-17'dropprocedureproc_return_car------------------------------------------------------------------------------------------------触发器------------------------------------------------------------------------------------------------------------------------------------------------------:当租赁公司新购入一辆汽车时,输入新的车牌号及信息,此车辆所对应车辆类别的库存数自动增加,usecar_rentgoCreateTriggeradd_newcarOncarafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1(SELECTCarClassNofromINSERTEDi)GO:当租赁公司报废一辆汽车时,删除车牌号及信息,此车辆所对应车辆类别的库存数自动减少,usecar_rentgoCreateTriggerdelete_carOncarafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1(SELECTCarClassNofromdeletedi)GO-----------------------------------------------------------------------------------------------------------------------------------------------------------usecar_rentgoCreateTriggerrent_carOnrentafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted)))GOusecar_rentgoCreateTriggerreturn_carOnrentafterupdateAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))gousecar_rentgoCreateTriggerdelete_rent_carOnrentafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted='false'))GO-----------------------------------------------------------------------------------------------------------------------------------------------------------usecar_rentgoCreateTriggerrent_state_carOnrentafterinsertAsupdatecarsetCarState='false'whereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted));GO修改订单还车日期时时,订单中所预订车辆的租赁状态(false)变为空闲状态(ture)。(还车时)usecar_rentgoCreateTriggerreturn_state_carOnrentafterupdateAsUPDATEcarsetCarState='true'whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))gousecar_rentgoCreateTriggerdelete_rent_state_carOnrentafterdeleteAsupdatecarsetCarState='true'whereCarNoin(selectCarNofromdeleted='false');GO----------------------------------------------------------------------------------------------------------------------------------------------:修改订单还车日期时时,更新实际花费。(还车时)usecar_rentgoCreateTriggerreturn_car_priceOnrentafterupdateAsdeclare@pricevarchar(10)select@price=(selectCarClassDayPrice1fromCarClasswhereCarClassNoin(selectCarClassNofromCarwhereCarNoin,deleted=)))UPDATErentSETRecordCost=@price*(DATEDIFF(DAY,,+1)whereRecordin,deleted=)go视图-------------------------------------usecar_rentgocreateviewselect_carasselect*fromcarselect*fromselect_car-------------------------------------------usecar_rentgocreateviewselect_carclassasselect*fromcarclass--------------------------------------------usecar_rentgocreateviewselect_rentasselect*fromrent------------------------------------------usecar_rentgocreateviewselect_customersasselect*fromcustomers------------------------------------------usecar_rentgocreateviewselect_all_structasselectnamefromsysobjectswherextype='U'unionallselectnamefromsysobjectswherextype='TR'unionallselectnamefromsysobjectswherextype='P'unionallselectnamefromsysobjectswherextype='V'select*fromselect_all_struct
本文档为【汽车租赁管理系统,DOC】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
橙子到此一游
暂无简介~
格式:doc
大小:265KB
软件:Word
页数:0
分类:企业经营
上传时间:2020-09-27
浏览量:0