1、 内蒙古科技大学 《数据库原理及应用》课程设计说明书 题 目:货运管理系统数据库设计 学生姓名:王佳星 学 号:1176807329 专 业:计算机科学与技术 班 级:3班 指导教师:丁雨 目录 目录 1 第一章 需求分析 2 1.1 编写目的 2 1.2背景 2 1.3系统功能分析 3 1.3.1客户基本信息管理 3 1.3.2员工基本信息管理 3 1.3.3车辆基本信息管理 3 1.3.4订单基本信息管理 4 1.3.5运单基本信息管理 4 1.4系统功能图分析 4 1.5数据约束分析 5 第二章
2、 数据库概念设计 6 2.1定义实体集及属性 6 2.2定义联系集及属性 6 2.3E-R模型设计 7 2.3.1实体E-R模型设计 7 2.3.2总E-R模型设计 9 第三章 逻辑设计 10 3.1基本表设计 10 第四章 数据库的实现 13 4.1数据库的创建 13 4.2数据表的创建 14 4.3数据录入 16 select *from yundan 18 4.4基本查询 18 4.4.1单表查询 18 4.4.2多表查询 19 4.4.3创建视图 21 4.4.4 创建存储过程 21 第五章 总结 22 参考文献 23 致谢 23 第一章
3、需求分析 1.1 编写目的 改变当下物流运输的滞后现状,通过科学的数据库管理,完善物流运输行业的工作环节,提高运输效率,从而达到客户满意水平,形成一个一体化的物流运输环境。 1.2背景 背景之一:我国国民经济高速发展 我国自改革开放以来,国民经济就走上了持续稳定高速发展的道路,年均增长8%以上,而从全国看,发展最快的又是我国东南沿海一些省市,他们利用国家给经济特区等一系列优惠政策,大力改革开放,发展经济,率先实现经济的超常规大幅度增长,其中出现了一批大型实力客户,像海尔、宝洁、IBM等。经济的大幅增长,必然导致巨大的物质产品的流动,也就必然导致物流量的增加。这是经济发展的必然规律,也
4、是物流业成长的必然规律。 背景二:是改革开放的结果 我国第三方物流的诞生是改革开放的结果,跟改革开放有直接的关系。首先由一些国内的外资客户率先促成的,人们不难从我国第三方物流的产生过程看出它有三个特点:第一,它们是从东南沿海一些改革开放程度比较高的省市首先搞起来;第二,它首先是由像宝洁、IBM等这样一些国外的大公司促成我国的一些客户搞起来的;第三,第三方物流公司的业务最先也主要是为国外这些大公司服务的物流业务。而由点到面的发展,必然需要发达的物流来带动。 背景三:是我国物流学发展的结果 我国第三方物流的发展有一个有趣的现象,就是一旦有了一个第三方物流的样板和模式,社会很快在各个地方推广
5、开来。特别是最近几年,发展特快,上海、北京、天津等城市且不说,武汉就一下子兴起了如中远、长江、中储、武储等好几家大型第三方物流公司。出现这种现象,可以说是中国物流学发展的结果,人们已经有了比较好的物流观念和物流学基础。 1.3系统功能分析 货物运输管理系统功能:客户基本信息管理、员工基本信息管理、车辆基本信息管理、订单基本信息管理、运单基本信息管理。 1.3.1客户基本信息管理 为客户提供基本信息增加、修改、删除功能。包括: (1)客户基本信息增加:客户录入基本信息,包括客户编号、客户名称、客户电话、客户性别、联系人姓名信息,形成完整的客户资料。 (2)客户基本信息修改:客户
6、基本信息错误或有所改变时可以进行信息的修改。可以修改联系人姓名,修改联系人电话。 (3)客户基本信息删除:客户可以删除客户基本信息。 1.3.2员工基本信息管理 为员工提供基本信息增加、修改、删除功能。包括: (1)员工基本信息增加:员工录入基本信息,包括员工编号、员工姓名、员工电话、员工性别信息,形成完整的客户资料。 (2)员工基本信息修改:员工基本信息错误或有所改变时可以进行信息的修改。可以修改联系人姓名,修改联系人电话。 (3)员工基本信息删除:可以删除员工基本信息。 1.3.3车辆基本信息管理 提供车辆基本信息增加、修改、查询、删除功能。包括: (1
7、) 车辆基本信息增加:系统可以增加车辆基本信息,包括车辆编号、车牌号、车类型、最大载重量、购买金钱等信息。 (2) 车辆基本信息修改:车辆基本信息如果出错或者有所改变,系统可以对车辆基本信息的具体内容进行修改。可以修改车辆车牌号,修改车辆车类型,修改车辆载物重。 (3)车辆基本信息查询:根据不同的条件查询车辆基本信息。可以按车辆车牌号查询车辆基本信息,按车辆车类型查询车辆基本信息,按车辆载物重查询车辆基本信息。 (4)车辆基本信息删除:由于车辆报废或转卖,可以删除车辆基本信息。 1.3.4订单基本信息管理 提供订单表的增加、更新、修改功能。包括: (1)订单基本信息增加:客户在填写
8、客户编号、货物名称、货物数量、订单时间、订单备注等信息后,系统检查所有信息填写正确后提示增加成功并返回订单总额和订单编号。 (2)订单基本信息更新:系统根据订单表自动更新订单表中的信息,如订单表编号、订单数量。 (3)订单基本信息修改:客户可根据需要修改货物名称、货物重量、等信息。 (4)订单基本信息查询:客户或第三方物流公司可根据订单编号、货物名称、货物重量等对订单进行查询。 1.3.5运单基本信息管理 提供路线基本信息增加、删除、优化、修改功能。包括: (1)路线基本信息增加:第三方物流公司统计订单目的地后添加路线基本信息,其中包含路线编号,出发地,目的地,预计所需时间等信息。
9、 (2)路线基本信息删除:根据客户退单情况或者交通天气状况的改变进行一些无效线路的删除。 (3) 路线基本信息优化:根据筛选重复路线及包含路线进行路线整合,优化计算所需最短最少路线。 (4) 路线基本信息修改:根据更改订单状况或者交通天气状况对路线信息进行修改。包括路线出发地的修改,路线目的地的修改和路线交通工具的修改。 1.4系统功能图分析 货物运输管理系统功能图如图1.1所示。 1.5数据约束分析 (1) 客户信息表的主键是customer_id,每一个编号都是唯一的。 (2) 货运员工信息表的主键是transstaff_id,每一个编号都是唯一的。 (3)
10、 维修员工信息表的主键是repairstaff_id,每一个编号都是唯一的。 (4) 驾驶信息表的主键是driver_id,每一个编号都是唯一的。 (5) 维修信息表的主键是repair_id,每一个编号都是唯一的。 (6)客户的所有信息不允许为空。 (7)车辆信息表的主键是car_id,每一个车辆编号都是唯一的。 (8)订单表的主键是order_id,每一个订单编号都是唯一的。 (9)运单信息表的主键是yundan_id,每一个运单编号都是唯一的。 (10) 联系人电话(Telephone)不能为空值,取值范围为00000000000-99 999999999
11、固定电话加地区号输入。 (11)订单一旦生成则无法删除。 (12)联系人姓名(contactname)不能为空值,不得超过20字。 (13)最大载重量(car_MaxWgt)不能为空值,数据为int。 (14)车牌号(car_licence)不能为空值,真实填写。 (15)车类型(car_type)不能为空值。 第二章 数据库概念设计 对实体集及属性、联系集及属性进行定义和E-R模型设计。 2.1定义实体集及属性 (1)客户实体集customer:客户编号(customer_id)、客户名称(customer_name)、客户电话(customer_phone)、客户性
12、别(customer_sex)、联系人姓名(contactname)。 (2)货运员工实体集transstaff:员工编号(transstaff_id)、员工姓名(transstaff_name)、员工电话(transstaff_phone)、员工性别(transstaff_sex)信息。 (3)维修员工实体集repairstaff:员工编号(repairstaff_id)、员工姓名(repairstaff_name)、员工电话(repairstaff_phone)、员工性别(repairstaff_sex)信息。 (3)车辆实体集car:车辆编号(car_id)、车牌号(car_lic
13、ence)、车辆类型(car_type)、最大载重(car_MaxWgt)、购买金钱(car_money)。 (4)订单实体集dingdan:订单编号(order_id)、货物名称(gname)、货物数量(gnum)、送货日期(senddate)、送货客户(sendcustomer)。 (5)运单实体集yundan:运单编号(yundan_id)、订单编号(order_id)、出车司机(driver)、签收日期(recivedate)、出车日期(chuchedate)、回车日期(huichedate)。 2.2定义联系集及属性 (1)维修信息repair:维修编号(repair_i
14、d)、车牌号(car_licence)、送修日期(songxiudate)、完修日期(wanxiudate)、修理地点(repairadress)。 (2)驾驶信息drive:驾驶编号(driver_id)、车辆编号(car_id)、驾驶司机(driver)、出车日期(chuchedate)、出车路线(chucheluxian)。 2.3E-R模型设计 2.3.1实体E-R模型设计 (1) 客户E-R模型如图2.1所示。 图2.1 客户E-R模型 (2) 车辆E-R模型如图2.2所示。 图2.2 车辆E-R模型 (3) 维修员工E-R模型如图2.3所示。 图2.3 维
15、修员工E-R模型 (4) 货运员工E-R模型如图2.4所示。 图2.4 货运员工E-R模型 (5) 订单信息E-R模型如图2.5所示。 图2.5 订单信息E-R模型 (6) 运单信息E-R模型如图2.6所示。 图2.6 运单信息E-R模型 2.3.2总E-R模型设计 货物运输系统总ER图如图2.7所示。 图2.7 总E-R模型 第三章 逻辑设计 本次设计的数据库在SQL Server 2008上实现,将概念结构设计中的E-R图转换成SQL Sever 2008支持的关系数据模型。 3.1基本表设计 关系设计包括转换后所得表和函数依赖关系,转换后为:
16、1)客户表如表3.1所示。 表3.1 客户表 数据项 数据类型 别名 是否为空 约束 取值含义 customer_id int 客户编号 Not null 主键 customer_name varchar(50) 客户名称 Not null 真实填写 customer_phone varchar(11) 客户电话 Not null Customer_sex tinyint 客户性别 Not null contactname Varchar(20) 联系人姓名 Not null (2)车辆表如
17、表3.2所示。 表3.2 车辆表 数据项 数据类型 别名 是否为空 约束 取值含义 Car_id int 车辆编号 Not null 主键 Car_licence Varchar(20) 车牌号 Not null 真实填写 Car_type Varchar (20) 车辆型号 null 6-12位,由字母和数字组成 Car_MaxWgt int 最大载重 Not null Car_money varchar(20) 购买金钱 Null (3) 货运员工表如表3.3所示。 表3.3 货运员工表 数
18、据项 数据类型 别名 是否为空 约束 取值含义 transstaff_id int 货运员工编号 Not null 主键 transstaff_name varchar(20) 货运员工姓名 Not null transstaff_phone vrachar(11) 货运员工电话 Not null transstaff_sex tinyint 货运员工性别 Not null (4) 维修员工表如表3.4所示。 表3.4维修员工表 数据项 数据类型 别名 是否为空 约束 取值含义 Repairstaff_i
19、d int 维修员工编号 Not null 主键 Repairstaff_name Varchar(20) 维修员工姓名 Not null Repairstaff_phone Vrachar(11) 维修员工电话 Not null Repairstaff_sex tinyint 维修员工性别 Not null (5)订单信息表如表3.5所示。 表3.5 订单信息表 数据项 数据类型 别名 是否为空 约束 取值含义 order_id int 订单编号 Not null 主键 gname var
20、char(20) 货物名称 Not null gnum varchar(20) 货物数量 null senddate date 送货日期 Null sendcustomer Varchar(50) 送货客户 null (6)运单信息表如表3.6所示。 表3.6 运单信息表 数据项 数据类型 别名 是否为空 约束 取值含义 yundan_id int 运单编号 Not null 主键 order_id int 订单编号 Not null drive varchar(20) 出
21、车司机 Not null recivedate date 签收日期 null chuchedate date 出车日期 null huichedate date 回车日期 null (7)驾驶信息表如表3.7所示。 表3.7 驾驶信息表 数据项 数据类型 别名 是否为空 约束 取值含义 driver_id int 驾驶编号 Not null 主键 driver Varchar(20) 驾驶司机 Not null car_id int 驾驶车辆编号 Not null 外键
22、
chuchedate
date
出车日期
null
chucheluxian
Varchar(20)
出车路线
null
(8)维修信息表如表3.8所示。
表3.8 维修信息表
数据项
数据类型
别名
是否为空
约束
取值含义
repair_id
int
维修编号
Not null
主键
car_licence
Varchar(20)
车牌号
Not null
songxiudate
date
送修日期
Not null
检查约束songxiudate 23、udate
date
完修日期
null
repairadress
Varchar(50)
维修地点
null
第四章 数据库的实现
4.1数据库的创建
create database Transdb
on primary
( name=' Transdb ',
filename='D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Transdb.mdf',
size=5,
maxsize=20,
filegrowth= 1 )
log on 24、
( name=' Translog',
filename='D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Translog.ldf',
size=2,
maxsize=8,
filegrowth=1)
Go
4.2数据表的创建
--建立货运员工表
create table transstaff
(
transstaff_id int primary key,
transstaff_name varchar(20)not null,
transstaff_sex tinyint 25、 not null default(1),
transstaff_phone varchar(11)not null
);
--建立维修员工表
create table repairstaff
(
repairstaff_id int primary key,
repairstaff_name varchar(20)not null,
repairstaff_sex tinyint not null default(1),
repairstaff_phone varchar(11)not null
);
--建立车辆信息表
create table car
(
ca 26、r_id int primary key,
car_licence varchar(20)not null,
car_type varchar(20),
car_MaxWgt int not null,
car_money varchar(20)
);
--建立客户信息表
create table customer
(
customer_id int primary key,
customer_name varchar(20)not null,
customer_sex tinyint not null default(1),
customer_phone varch 27、ar(11)not null,
contactname varchar(50)not null
);
--建立订单信息表
create table dingdan
(
order_id int primary key not null,
gname varchar(20) not null,
gnum varchar(20),
senddate date,
sendcustomer varchar(20)
)
--建立运单信息表
create table yundan
(
yundan_id int primary key not null,
order_id 28、int not null,
driver varchar(20) not null,
recivedate date,
chuchedate date,
huichedate date,
);
--建立驾驶信息表
create table drive
(
driver_id int primary key not null,
driver varchar(20)not null,
car_id int,
chuchedate date,
chucheluxian varchar(20)
);
--建立维修信息表
create table repair
(
29、
repair_id int primary key not null,
car_licence varchar(20)not null,
songxiudate date,
wanxiudate date,
repairadress varchar(50)
);
4.3数据录入
--插入货运员工数据
insert into transstaff(transstaff_id,transstaff_name,transstaff_phone,transstaff_sex)
values('1','李树森',18247274511,'1'),
(2,'李华宇',18247273 30、695,'0'),
(3,'刘生友',18247256484,'1'),
(4,'陶明全',18247276589,'1'),
(5,'刘继国',18245895956,'1'),
(6,'唐晓敏',18245784565,'0')
select *from transstaff
--插入维修员工数据
insert into repairstaff(repairstaff_id,repairstaff_name,repairstaff_phone,repairstaff_sex)
values('1','王勇',18247274211,'1'),
(2,'杨波',182472 31、4295,'0'),
(3,'孙相光',18247242484,'1'),
(4,'周伦',18247252589,'1'),
(5,'张建军',18245255956,'1'),
(6,'张敏',18245255565,'0')
select *from repairstaff
--插入客户信息数据
insert into
customer(customer_id,contactname,customer_phone,customer_sex,customer_name)
values(1,'王强',18247274241,'1','包头市鑫达汽车销售有限公司'),
( 32、2,'杨过',18247244295,'0','包头长安福特有限公司'),
(3,'孙伟伟',18241425484,'1','包头日报印刷厂'),
(4,'周伯伦',18247252589,'1','包头力帆摩托有限公司'),
(5,'王建军',18257255956,'1','包头新光家具有限公司'),
(6,'张晓敏',18245245565,'0','包头远大纸业有限公司')
select *from customer
--插入车辆信息数据
insert into car(car_id,car_licence,car_MaxWgt,car_money,car_type)
33、
values(1,'蒙B-12345',28,220000,'EQ50321'),
(2,'蒙B-12445',30,240000,'EQ50321'),
(3,'蒙B-12455',28,220000,'EQ50321'),
(4,'蒙B-12345',30,240000,'EQ50321'),
(5,'蒙B-15445',20,160000,'EQ50301'),
(6,'蒙B-14345',20,160000,'EQ50301')
select *from car
--插入驾驶信息数据
insert into drive(driver_id,driver,car_id, 34、chuchedate,chucheluxian)
values(1,'李树森',5,'2013-04-25','包头-北京'),
(2,'李华宇',2,'2013-07-15','包头-呼市'),
(3,'刘继国',3,'2013-05-25','包头-大同')
select *from drive
--插入维修信息数据
insert into repair(repair_id,car_licence,songxiudate,wanxiudate,repairadress)
values(1,'蒙B-12345','2013-03-25','2013-04-01','公司维修部' 35、),
(3,'蒙B-12455','2013-06-25','2013-07-01','公司维修部'),
(5,'蒙B-15445','2013-03-25','2013-04-11','公司维修部')
select *from repair
--插入订单信息数据
insert into dingdan(order_id,gname,gnum,senddate,sendcustomer)
values(123456789,'双面纸','40件','2013-02-23','包头远大纸业有限公司'),
(789456123,'床垫','800张','2013-03-05','包头新 36、光家具有限公司'),
(789454223,'木桌','500张','2013-05-05','包头新光家具有限公司'),
(789456321,'福特汽车','20辆','2013-04-05','包头长安福特有限公司')
select *from dingdan
insert into yundan(yundan_id,order_id,drive,recivedate,chuchedate,huichedate)
values(321465798,123456789,'李树森','2013-05-26','2013-05-05','2013-06-07'),
(1234567 37、89,789456123,'李华宇','2013-07-26','2013-07-05','2013-08-07')
select *from yundan
4.4基本查询
4.4.1单表查询
--单表查询
select car_id,car_licence
from car;
select car_id,driver_id,driver
from drive;
select repair_id,car_licence,repairadress
from repair;
4.4.2多表查询
--多表查询
--子查询,表drive中存在chuchelux 38、ian='包头-大同',外层语句进行查询
select *from car
where exists
(select car_id from drive
where chucheluxian='包头-大同');
--查询所有车辆总载重量
select SUM(car_MaxWgt) as sum_maswgt
from car;
--查询出车路线为'包头-北京'的车辆编号、车牌号、购买金钱
select car_id,car_licence,car_money from car
where car_id=
(select car_id from drive as 39、drive
where chucheluxian='包头-北京');
--查询出车日期在'2013-08-08'前的车牌号,车辆编号和购买金钱
select car_id,car_licence,car_money from car
where car_id in
(select car_id from drive as drive
where chuchedate<='2013-08-08');
4.4.3创建视图
--创建视图
create view view_repair
as select car_licence,songxiudate,wanxiudate 40、
from Transdb.dbo.repair;
go
use Transdb;
select *from view_repair;
create view view_car
as select car_id,car_licence,car_MaxWgt,car_money
from Transdb.dbo.car;
go
use Transdb;
select *from view_car;
4.4.4 创建存储过程
--创建存储过程并调用
create procedure selproc
as
select *from car;
exec se 41、lproc;
第五章 总结
在这次项目设计中,我选择的是设计一个货运管理系统,这对我来说是一次尝试与创新的过程,也可以说是一个挑战的过程。虽然学了数据库这么久了,但是还是缺少经验。现在我利用自己学到的知识设计并制作一个货运管理系统,这本身就是一个知识转化为生产力的过程,所以很兴奋,投入了很高的热情与努力。
在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更 42、加熟悉了,并在解决各种问题的过程中学到了很多新的知识。
在设计中我基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
参考文献
1、 施伯乐、丁宝康、汪卫 《数据库系统教程》 高等教育出版社
2、 王英文、张少军、刘增杰 《SQL SERVER 2012从零开始学》 清华大学出版社
致谢
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考






