汽车租赁系统SQL数据库系统设计.docx

上传人:b****9 文档编号:26313703 上传时间:2023-06-17 格式:DOCX 页数:24 大小:230.44KB
下载 相关 举报
汽车租赁系统SQL数据库系统设计.docx_第1页
第1页 / 共24页
汽车租赁系统SQL数据库系统设计.docx_第2页
第2页 / 共24页
汽车租赁系统SQL数据库系统设计.docx_第3页
第3页 / 共24页
汽车租赁系统SQL数据库系统设计.docx_第4页
第4页 / 共24页
汽车租赁系统SQL数据库系统设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

汽车租赁系统SQL数据库系统设计.docx

《汽车租赁系统SQL数据库系统设计.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统SQL数据库系统设计.docx(24页珍藏版)》请在冰豆网上搜索。

汽车租赁系统SQL数据库系统设计.docx

汽车租赁系统SQL数据库系统设计

汽车租赁系统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个关系模式,在SQLServer创建了数据库:

汽车租赁系统,并为每一个关系模式创建了一个表

分别是:

Car、Subscribe、Rent、Customers、Level、Checkout、income_book、Expenditure_book、Mend_book、Repair_factory

3、数据字典:

car

数据项名称

数据类型

描述

Car_ID

nchar(10)

汽车号,不允许空值

Purchase_Price

money(8)

汽车购买价格,不允许空值

Data_manufacture

datetime(8)

出厂日期,不允许空值

Rent_price

money(8)

每天租金,不允许空值

Insurance_detail

text(16)

保险细节,不允许空值

Producer

text(16)

生产商,不允许空值

Engine_num

nchar(10)

发动机号,不允许空值

Capacity

int(4)

可载人数,不允许空值

Fuel_num

nchar(10)

燃料号,不允许空值

Type

text(16)

车型,不允许空值

Rent_able

int

(2)

是否可租,可为空

Book_able

int

(2)

是否被预订,可为空

Subscribe

数据项名称

数据类型

描述

Book_ID

nchar(10)

预订表号,不允许空值

Car_ID

nchar(10)

预订车号,不允许空值

Customer_ID

nchar(10)

客户号,不允许空值

Startbook_date

datetime(8)

起始预订日,不允许空值

Expirebook_date

datetime(8)

到期日,不允许空值

sumbook_date

nchar(10)

总共租用时间,不允许为空,小于一个月

Rent

数据项名称

数据类型

描述

Rent_carid

bigint(8)

租车单号,不允许空值,自动增长,种子1

Expired_date

datetime(8)

租用到期日,不允许空值

Rent_date

datetime(8)

租用起始日,不允许空值

Earnest_money

money(8)

定金,不允许空值

Customer_ID

nchar(10)

客户ID,不允许空值

 

Customers

数据项名称

数据类型

描述

Customer_ID

nchar(10)

客户ID,不允许空值,自动增长,种子1

Customer_name

text(16)

客户,不允许空值

Credit_level

bigint(8)

信用等级,不允许空值

Driver_licenseID

nchar(10)

租主驾照号,不允许空值

Telephone_number

bigint(8)

不允许空值

Level

数据项名称

数据类型

描述

Level_num

nchar(5)

信用等级号,不允许空值

Creditcard_level

text(16)

信用等级,不允许空值

Earnest_money

money(8)

付定金,不允许空值

Oncredit

money(8)

允许赊欠额度,不允许空值

Checkout

数据项名称

数据类型

描述

Customer_ID

nchar(10)

客户号,不允许空值

Rent_price

money(8)

日租金,不允许空值

Rent_date

datetime(8)

起租日,不允许空值

Expired_date

datetime(8)

归还日,不允许空值

Days

nchar(10)

总共租用时间,不允许空值

Car_ID

nchar(10)

租用车号,不允许空值

income_book

数据项名称

数据类型

描述

Sum_sales

money(8)

销售金额,允许为空

Sum_rentprice

money(8)

租金,允许为空

Customer_ID

nchar(10)

客户id,允许空值

Date

datetime(8)

日期,允许空值

expenditure_book

数据项名称

数据类型

描述

Purchase

money(8)

购买货物,允许为空

Insurance_price

money(8)

保险金,允许为空

Mend_price

money(8)

维修费,允许为空

Date

datetime(8)

日期,允许空值

Mend_book

数据项名称

数据类型

描述

Customer_ID

nchar(10)

客户号,不允许空值

Factory_ID

nchar(10)

维修厂号,不允许空值

Car_ID

nchar(10)

租用车号,不允许空值

Mend_price

money(8)

维修费,允许为空

Credit_level

text(16)

信用等级,不允许空值

 

Repair_factory

数据项名称

数据类型

描述

Factory_name

text(16)

维修厂名称,不允许空值

Address

text(16)

维修厂地址,不允许空值

Service_range

text(16)

维修厂服务围,不允许空值

Factory_ID

nchar(10)

维修厂号,不允许空值

4、SQL语句

从SQLServer导出的sql文件得到的:

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[customer_car]')andOBJECTPROPERTY(id,N'IsView')=1)

dropview[dbo].[customer_car]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[manager_Subscribe]')andOBJECTPROPERTY(id,N'IsView')=1)

dropview[dbo].[manager_Subscribe]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[manager_mend]')andOBJECTPROPERTY(id,N'IsView')=1)

dropview[dbo].[manager_mend]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[manager_rent]')andOBJECTPROPERTY(id,N'IsView')=1)

dropview[dbo].[manager_rent]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[CAR]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[CAR]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Checkout]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Checkout]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Customers]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Customers]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Level]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Level]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Mend_book]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Mend_book]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Rent]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Rent]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Repair_factory]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Repair_factory]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Subscribe]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Subscribe]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[expenditure_book]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[expenditure_book]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[income_book]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[income_book]

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[subscribe_book_date]')andOBJECTPROPERTY(id,N'IsRule')=1)

droprule[dbo].[subscribe_book_date]

GO

createrulesubscribe_book_date

asrange>=0andrange<=30

 

GO

CREATETABLE[dbo].[CAR](

[Car_ID][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[Purchase_Price][money]NOTNULL,

[Data_manufacture][datetime]NOTNULL,

[Rent_price][money]NOTNULL,

[Insurance_detail][text]COLLATEChinese_PRC_CI_ASNOTNULL,

[Producer][text]COLLATEChinese_PRC_CI_ASNOTNULL,

[Engine_num][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[Capacity][int]NOTNULL,

[Fuel_num][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[Type][text]COLLATEChinese_PRC_CI_ASNOTNULL,

[Rent_able][int]NULL,

[Book_able][int]NULL

)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]

GO

CREATETABLE[dbo].[Checkout](

[Customer_ID][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[Rent_price][money]NOTNULL,

[Rent_date][datetime]NOTNULL,

[Expired_date][datetime]NOTNULL,

[Car_ID][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[Days][nchar](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

GO

CREATETABLE[dbo].[Customers](

[Customer_ID][nch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1