




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汽车租赁系统SQL数据库系统设计目录一、需求分析的详细描述 二、数据库设计 1.E-R图2.精确化过程3.数据字典4.SQL脚本语言三、查询语言与查询结果四、附:参考数据五、参考文献一、需求分析的详细描述:我国目前拥有驾驶证的公民多达3000万,而且,这一数量每年还在以一定比例上升。我们了解到在这批人当中有许多是短期内暂时买不起车辆的,但他们中的绝大部分人需要临时用车,而且也有临时租车的支付能力,因此,经营性租赁有极其巨大的市场需求。随着汽车租赁业的迅速崛起,业务量也是越来越多,对信息的处理要求也是越来越高。作为汽车租赁公司有必要建设一个适合自己发展和服务的数据库系统来完善自己的业务,并且能够及时更新客户、供货商以及市场变化的信息。投资汽车租赁的企业越来越多,全国大中城市基本都有汽车租赁公司存在,用于租赁的车辆总数不断扩大。传统的手工管理已经不能满足汽车租赁业务的正常开展的要求。许多汽车租赁公司都看好汽车租赁市场的前景并纷纷投资,但是由于汽车的价值很高,汽车租赁公司在租车客户的选择方面采取谨慎做法,对客户等级要求较为严格。目前,个人想要租赁汽车,租赁公司一般要求客户提供本人的详细信息,如客户姓名、电话号码、驾驶执照号。如果是临时客户还需要上交押金。为此,作为汽车租赁公司有必要建设一个适合自己发展和服务的数据库系统来晚上自己的业务,并且能够及时给客户反映自己的车库信息,例如车的制造商、车型、发动机号、燃料型号,可承载人数、租用价格等。根据汽车租赁公司所要的需求很清楚地认识到了这些背景和状况,我们需要对客户的变化来设计我们自己的数据库以适应市场的竞争。如下即为设想方案:整个数据库系统分为6个部分:车的信息、客户信息、维修厂信息、收入信息、支出信息、信用等级信息。就客户信息而言,我们需要了解的信息包括:客户号、客户姓名、客户驾照号、客户信用等级、电话号码,其中客户号是由系统自动生成,并且信用等级有事先规定。对于车的信息,需要的信息有:制造商、车型、出厂日期、发动机型号、燃料型号、可载乘客人数、车号、购买价格、租用价格和保险细节、是否被租用、是否被预约。客户等级的信息包括:等级号、信用卡等级、赊欠额度、定金。其中临时客户设为E级,需要付定金,其他等级客户为稳定客户群,不需要付定金。维修厂信息有:维修厂号、维修厂名、维修厂地址和维修厂服务范围。公司收入信息:收入日期、汽车销售、汽车租金、保险赔偿。公司支出信息:支出日期、维修费用、购买费用、保险费用。我们觉得其中还应有如下关系:客户如果预定汽车需要有预定信息来记录预定过的车号、预定日期、过期日、客户号、预约单号。预定时限为一个月,超过一个月预约表作废。预约表是建立客户与车之间的关系之一。客户如果租了汽车,其他客户就不能租用同一辆汽车,所以还需要有租车表来记录租过的车号、租用客户号、是否付定金、租车日期还有应还日期。租车表示建立客户与车之间的关系之二。汽车如果维修过,修理费用、修理过的车号、客户赊欠额度、在哪个维修厂修理的即维修厂号是多少、维修的客户号是多少都需要记录下来。由于支出与收入没有直接关系,所以通过结算表来与租车表发生关系。结算表里应该记录的是租车客户号、租车的日租金、租用日期、归还日期、租用车号、维修费。每个结算表对应一个收入纪录,收入表中的总租金应该由(实际租用天数日租金)得出。支出表中的维修费用应该与结算表中的维修费用一致。等级表只与客户有关系,即每个客户有属于自己的等级。每个客户赊欠额度是为了维修厂维修费用的赊欠而设计的。客户修车费用不与公司的收入支出挂钩,而是客户自行付清,但是其信用等级需要从公司的信用等级表中得出。公司支出表中的维修费用是指在客户还车以后发生的非人为损坏的修理费用,与结算表中的维修费用一致是因为在客户还车时就要统计车的损坏程度,并确定其修理费用多少。二、数据库设计以下是三个阶段性报告(E-R图,精确化过程,SQL实现)1.E-R图2.模式求精和范式化过程:根据E-R图中的实体集和关系图,初步确立了以下几个关系模式:1).Car(Car_ID,Purchase_price,Capacity,Insurance_detail,Date_manufacture,Type,Producer,Fuel_num,Rent_price,Engine_num,Purchase_price,Book_able,Rent_able)简化为:C=(I,A,N,M,T,P,F,C,E,U,B,R)函数依赖集F=(C- IANMTPFCEUBR)已经满足BCNF的条件。2).Subscribe(Book_ID,Car_ID,Customer_ID,Startbook_date,Expirebook_date,sumbook_date)简化为:S=(B,C,U,T,E,D)函数依赖集:F=(B-CUTED)已经满足BCNF的条件。3).Rent(Customer_ID,Rent_date,Expire_date,Earneast_money,Rent_carid)简化为:R=(C,N,E,M,I)函数依赖集:F=(C-NEMI)v已经满足BCNF的条件。4).Customers(Customer_ID,Customer_name,Driver_licenseID,Credit_level,Telephone_num)简化为:C=(I,N,D,L,T)函数依赖集:F=(I,N-DLT)Customer_ID,Customer_name作为联合主键来决定后面的属性,已经满足了BCNF的条件。5).Level(Level_num,Creditcard_level,Earnest_money,Oncredit)简化为:L=(N,C,E,O)函数依赖集:F=(N-CEO)已经满足了BCNF的条件。6).Checkout(Customer_ID,Car_ID,Rent_price,Rent_date,Expired_date,Days)简化为:C=(U,C,R,N,E,D)函数依赖集:F=(U-CRNED)已经满足了BCNF的条件。7).income_book(Date,Sum_sales,Sum_rentprice,Customer_ID)简化为:I=(D,S,R,C)函数依赖集:F=(D-SRC)已经满足了BCNF的条件。8).Expenditure_book(Date,Mend_price,Purchase,Insuranceprice)简化为:E=(D,M,P,I)函数依赖集:F=(D-MPI)已经满足了BCNF的条件。9).Mend_book(Customer_ID,Car_ID,Mend_price,Credit_level,Factory_ID)简化为:M=(U,C,E,R,F)函数依赖集:F=(U-CERF)已经满足了BCNF的条件。10).Repair_factory(Factory_ID,Factory_name,Address,Service_range)简化为:R=(F,N,A,S)函数依赖集:F=(F,N-AS)Factory_ID,Factory_name作为联合主键来决定后面的属性,已经满足了BCNF的条件。因此,得到以下10个关系模式:1).Car(Car_ID,Purchase_price,Capacity,Insurance_detail,Date_manufacture,Type,Producer,Fuel_num,Rent_price,Engine_num,Purchase_price,Book_able,Rent_able)2).Subscribe(Book_ID,Car_ID,Customer_ID,Startbook_date,Expirebook_date,sumbook_date)3).Rent(Customer_ID,Rent_date,Expire_date,Earneast_money,Rent_carid)4).Customers(Customer_ID,Customer_name,Driver_licenseID,Credit_level,Telephone_num)5).Level(Level_num,Creditcard_level,Earnest_money,Oncredit)6).Checkout(Customer_ID,Car_ID,Rent_price,Rent_date,Expired_date,Days)7).income_book(Date,Sum_sales,Sum_rentprice,Customer_ID)8).Expenditure_book(Date,Mend_price,Purchase,Insuranceprice)9).Mend_book(Customer_ID,Car_ID,Mend_price,Credit_level,Factory_ID)10).Repair_factory(Factory_ID,Factory_name,Address,Service_range)根据以上10个关系模式,在SQL Server创建了数据库:汽车租赁系统,并为每一个关系模式创建了一个表分别是: Car、Subscribe、Rent、Customers、Level、Checkout、income_book、Expenditure_book、Mend_book、Repair_factory3、数据字典:car数据项名称数据类型描述Car_IDnchar(10)汽车号,不允许空值Purchase_Pricemoney(8)汽车购买价格,不允许空值Data_manufacturedatetime(8)出厂日期,不允许空值Rent_pricemoney(8)每天租金,不允许空值Insurance_detailtext(16)保险细节,不允许空值Producertext(16)生产商,不允许空值Engine_numnchar(10)发动机号,不允许空值Capacityint(4)可载人数,不允许空值Fuel_numnchar(10)燃料号,不允许空值Typetext(16)车型,不允许空值Rent_ableint(2)是否可租,可为空Book_ableint(2)是否被预订,可为空Subscribe数据项名称数据类型描述Book_IDnchar(10)预订表号,不允许空值Car_IDnchar(10)预订车号,不允许空值Customer_IDnchar(10)客户号,不允许空值Startbook_datedatetime(8)起始预订日,不允许空值Expirebook_datedatetime(8)到期日,不允许空值sumbook_datenchar(10)总共租用时间,不允许为空,小于一个月Rent数据项名称数据类型描述Rent_caridbigint(8)租车单号,不允许空值,自动增长,种子1Expired_datedatetime(8)租用到期日,不允许空值Rent_datedatetime(8)租用起始日,不允许空值Earnest_moneymoney(8)定金,不允许空值Customer_IDnchar(10)客户ID,不允许空值Customers数据项名称数据类型描述Customer_IDnchar(10)客户ID,不允许空值,自动增长,种子1Customer_nametext(16)客户姓名,不允许空值Credit_levelbigint(8)信用等级,不允许空值Driver_licenseIDnchar(10)租主驾照号,不允许空值Telephone_numberbigint(8)电话号码,不允许空值Level数据项名称数据类型描述Level_numnchar(5)信用等级号,不允许空值Creditcard_leveltext(16)信用等级,不允许空值Earnest_moneymoney(8)付定金,不允许空值Oncreditmoney(8)允许赊欠额度,不允许空值Checkout数据项名称数据类型描述Customer_IDnchar(10)客户号,不允许空值Rent_pricemoney(8)日租金,不允许空值Rent_datedatetime(8)起租日,不允许空值Expired_datedatetime(8)归还日,不允许空值Daysnchar(10)总共租用时间,不允许空值Car_IDnchar(10)租用车号,不允许空值income_book数据项名称数据类型描述Sum_salesmoney(8)销售金额,允许为空Sum_rentpricemoney(8)租金,允许为空Customer_IDnchar(10)客户id,允许空值Datedatetime(8)日期,允许空值expenditure_book数据项名称数据类型描述Purchasemoney(8)购买货物,允许为空Insurance_pricemoney(8)保险金,允许为空Mend_pricemoney(8)维修费,允许为空Datedatetime(8)日期,允许空值Mend_book数据项名称数据类型描述Customer_IDnchar(10)客户号,不允许空值Factory_IDnchar(10)维修厂号,不允许空值Car_IDnchar(10)租用车号,不允许空值Mend_pricemoney(8)维修费,允许为空Credit_leveltext(16)信用等级,不允许空值Repair_factory数据项名称数据类型描述Factory_nametext(16)维修厂名称,不允许空值Addresstext(16)维修厂地址,不允许空值Service_rangetext(16)维修厂服务范围,不允许空值Factory_IDnchar(10)维修厂号,不允许空值4、SQL语句从SQL Server 导出的sql文件得到的:if exists (select * from dbo.sysobjects where id = object_id(Ndbo.customer_car) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.customer_carGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.manager_Subscribe) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.manager_SubscribeGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.manager_mend) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.manager_mendGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.manager_rent) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo.manager_rentGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.CAR) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.CARGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Checkout) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.CheckoutGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Customers) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.CustomersGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Level) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.LevelGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Mend_book) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.Mend_bookGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Rent) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.RentGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Repair_factory) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.Repair_factoryGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Subscribe) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.SubscribeGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.expenditure_book) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.expenditure_bookGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.income_book) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.income_bookGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.subscribe_book_date) and OBJECTPROPERTY(id, NIsRule) = 1)drop rule dbo.subscribe_book_dateGOcreate rule subscribe_book_dateas range =0 and range =30GOCREATE TABLE dbo.CAR (Car_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Purchase_Price money NOT NULL ,Data_manufacture datetime NOT NULL ,Rent_price money NOT NULL ,Insurance_detail text COLLATE Chinese_PRC_CI_AS NOT NULL ,Producer text COLLATE Chinese_PRC_CI_AS NOT NULL ,Engine_num nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Capacity int NOT NULL ,Fuel_num nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Type text COLLATE Chinese_PRC_CI_AS NOT NULL ,Rent_able int NULL ,Book_able int NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Checkout (Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Rent_price money NOT NULL ,Rent_date datetime NOT NULL ,Expired_date datetime NOT NULL ,Car_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Days nchar (10) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.Customers (Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Customer_name text COLLATE Chinese_PRC_CI_AS NOT NULL ,Credit_level bigint NOT NULL ,Driver_licenseID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Telephone_number bigint NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Level (Level_num nchar (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,Creditcard_level text COLLATE Chinese_PRC_CI_AS NOT NULL ,Earnest_money money NOT NULL ,Oncredit money NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Mend_book (Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Factory_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Car_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Mend_price money NOT NULL ,Credit_level text COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Rent (Rent_carid ntext COLLATE Chinese_PRC_CI_AS NOT NULL ,Expired_date datetime NOT NULL ,Rent_date datetime NOT NULL ,Earnest_money money NOT NULL ,Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Repair_factory (Factory_name text COLLATE Chinese_PRC_CI_AS NOT NULL ,Address text COLLATE Chinese_PRC_CI_AS NOT NULL ,Service_range text COLLATE Chinese_PRC_CI_AS NOT NULL ,Factory_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Subscribe (Book_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Car_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Startbook_date datetime NOT NULL ,Expirebook_date datetime NOT NULL ,sumbook_date nchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.expenditure_book (Purchase money NOT NULL ,Insurance_price money NOT NULL ,Mend_price money NOT NULL ,Date datetime NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.income_book (Sum_sales money NULL ,Sum_rentprice money NULL ,Customer_ID nchar (10) COLLATE Chinese_PRC_CI_AS NULL ,Date datetime NOT NULL ) ON PRIMARYGOsetuserGOEXEC sp_bindrule Ndbo.subscribe_book_date, NSubscribe.sumbook_dateGOsetuserGOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate view customer(Car_ID,Data_manufacture,Rent_price,Insurance_detail,Producer,Engine_num,Capacity,Fuel_num,Type,Rent_able,Book_able)asselect CAR.Car_ID,CAR.Data_manufacture,CAR.Rent_price,CAR.In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产550台血液成分分离机项目可行性研究报告
- 类脑神经形态CPU项目可行性研究报告
- (一检)泉州市2026届高中毕业班质量监测(一)语文试卷(含标准答案)
- 新房装修合同
- 防暴警察原理知识培训总结
- 网购服务协议范本
- 浙江省湖州2025年九年级上学期月考数学试题附答案
- 云平台协同管理-洞察及研究
- 园区工厂建设工程承包合同2篇
- 公司工业借款担保合同书3篇
- T/CHTS 10130-2024高韧超薄沥青磨耗层技术指南
- 活动人员分工安排方案
- 米糠油项目可行性分析报告
- DB31T 1235-2020 高层民用建筑消防安全管理要求
- 《汽车构造基础知识》课件
- 《人工智能通识基础(慕课版)》-教学大纲、课程标准
- 前列腺增生科普知识
- 中建八局三亚喜来登主体施工组织设计鲁班奖(157P)
- 2025毕节辅警考试题库
- 5G-Advanced通感融合网络架构研究报告(第二版)
- 采血后预防淤青的按压方式
评论
0/150
提交评论