汽车租赁系统SQL数据库系统设计复习进程Word文件下载.docx
- 文档编号:21966092
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:20
- 大小:230.11KB
汽车租赁系统SQL数据库系统设计复习进程Word文件下载.docx
《汽车租赁系统SQL数据库系统设计复习进程Word文件下载.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统SQL数据库系统设计复习进程Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
就客户信息而言,我们需要了解的信息包括:
客户号、客户姓名、客户驾照号、客户信用等级、电话号码,其中客户号是由系统自动生成,并且信用等级有事先规定。
对于车的信息,需要的信息有:
制造商、车型、出厂日期、发动机型号、燃料型号、可载乘客人数、车号、购买价格、租用价格和保险细节、是否被租用、是否被预约。
客户等级的信息包括:
等级号、信用卡等级、赊欠额度、定金。
其中临时客户设为E级,需要付定金,其他等级客户为稳定客户群,不需要付定金。
维修厂信息有:
维修厂号、维修厂名、维修厂地址和维修厂服务范围。
公司收入信息:
收入日期、汽车销售、汽车租金、保险赔偿。
公司支出信息:
支出日期、维修费用、购买费用、保险费用。
我们觉得其中还应有如下关系:
客户如果预定汽车需要有预定信息来记录预定过的车号、预定日期、过期日、客户号、预约单号。
预定时限为一个月,超过一个月预约表作废。
预约表是建立客户与车之间的关系之一。
客户如果租了汽车,其他客户就不能租用同一辆汽车,所以还需要有租车表来记录租过的车号、租用客户号、是否付定金、租车日期还有应还日期。
租车表示建立客户与车之间的关系之二。
汽车如果维修过,修理费用、修理过的车号、客户赊欠额度、在哪个维修厂修理的即维修厂号是多少、维修的客户号是多少都需要记录下来。
由于支出与收入没有直接关系,所以通过结算表来与租车表发生关系。
结算表里应该记录的是租车客户号、租车的日租金、租用日期、归还日期、租用车号、维修费。
每个结算表对应一个收入纪录,收入表中的总租金应该由(实际租用天数×
日租金)得出。
支出表中的维修费用应该与结算表中的维修费用一致。
等级表只与客户有关系,即每个客户有属于自己的等级。
每个客户赊欠额度是为了维修厂维修费用的赊欠而设计的。
客户修车费用不与公司的收入支出挂钩,而是客户自行付清,但是其信用等级需要从公司的信用等级表中得出。
公司支出表中的维修费用是指在客户还车以后发生的非人为损坏的修理费用,与结算表中的维修费用一致是因为在客户还车时就要统计车的损坏程度,并确定其修理费用多少。
二、数据库设计
以下是三个阶段性报告(E-R图,精确化过程,SQL实现)
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)
3).Rent(Customer_ID,Rent_date,Expire_date,Earneast_money,Rent_carid)
R=(C,N,E,M,I)
F=(C->
NEMI)v
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)
7).income_book(Date,Sum_sales,Sum_rentprice,Customer_ID)
I=(D,S,R,C)
F=(D->
SRC)
8).Expenditure_book(Date,Mend_price,Purchase,Insuranceprice)
E=(D,M,P,I)
MPI)
9).Mend_book(Customer_ID,Car_ID,Mend_price,Credit_level,Factory_ID)
M=(U,C,E,R,F)
CERF)
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个关系模式:
根据以上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
每天租金,不允许空值
Insurance_detail
text(16)
保险细节,不允许空值
Producer
生产商,不允许空值
Engine_num
发动机号,不允许空值
Capacity
int(4)
可载人数,不允许空值
Fuel_num
燃料号,不允许空值
Type
车型,不允许空值
Rent_able
int
(2)
是否可租,可为空
Book_able
是否被预订,可为空
Subscribe
Book_ID
预订表号,不允许空值
预订车号,不允许空值
Customer_ID
客户号,不允许空值
Startbook_date
起始预订日,不允许空值
Expirebook_date
到期日,不允许空值
sumbook_date
总共租用时间,不允许为空,小于一个月
Rent
Rent_carid
bigint(8)
租车单号,不允许空值,自动增长,种子1
Expired_date
租用到期日,不允许空值
Rent_date
租用起始日,不允许空值
Earnest_money
定金,不允许空值
客户ID,不允许空值
Customers
客户ID,不允许空值,自动增长,种子1
Customer_name
客户姓名,不允许空值
Credit_level
信用等级,不允许空值
Driver_licenseID
租主驾照号,不允许空值
Telephone_number
电话号码,不允许空值
Level
Level_num
nchar(5)
信用等级号,不允许空值
Creditcard_level
信用等级,不允许空值
付定金,不允许空值
Oncredit
允许赊欠额度,不允许空值
Checkout
日租金,不允许空值
起租日,不允许空值
归还日,不允许空值
Days
总共租用时间,不允许空值
租用车号,不允许空值
income_book
Sum_sales
销售金额,允许为空
Sum_rentprice
租金,允许为空
客户id,允许空值
Date
日期,允许空值
expenditure_book
Purchase
购买货物,允许为空
Insurance_price
保险金,允许为空
Mend_price
维修费,允许为空
Mend_book
Factory_ID
维修厂号,不允许空值
Repair_factory
Factory_name
维修厂名称,不允许空值
Address
维修厂地址,不允许空值
Service_range
维修厂服务范围,不允许空值
4、SQL语句
从SQLServer导出的sql文件得到的:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'
[dbo].[customer_car]'
)andOBJECTPROPERTY(id,N'
IsView'
)=1)
dropview[dbo].[customer_car]
GO
[dbo].[manager_Subscribe]'
dropview[dbo].[manager_Subscribe]
[dbo].[manager_mend]'
dropview[dbo].[manager_mend]
[dbo].[manager_rent]'
dropview[dbo].[manager_rent]
[dbo].[CAR]'
IsUserTable'
droptable[dbo].[CAR]
[dbo].[Checkout]'
droptable[dbo].[Checkout]
[dbo].[Customers]'
droptable[dbo].[Customers]
[dbo].[Level]'
droptable[dbo].[Level]
[dbo].[Mend_book]'
droptable[dbo].[Mend_book]
[dbo].[Rent]'
droptable[dbo].[Rent]
[dbo].[Repair_factory]'
droptable[dbo].[Repair_factory]
[dbo].[Subscribe]'
droptable[dbo].[Subscribe]
[dbo].[expenditure_book]'
droptable[dbo].[expenditure_book]
[dbo].[income_book]'
droptable[dbo].[income_book]
[dbo].[subscribe_book_date]'
IsRule'
droprule[dbo].[subscribe_book_date]
createrulesubscribe_book_date
as@range>
=0and@range<
=30
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]
CREATETABLE[dbo].[Checkout](
[Customer_ID][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Rent_date][datetime]NOTNULL,
[Expired_date][datetime]NOTNULL,
[Days][nchar](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
CREA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 租赁 系统 SQL 数据库 设计 复习 进程