1、 内蒙古科技大学数据库原理及应用课程设计说明书题 目:货运管理系统数据库设计学生姓名:王佳星学 号:1176807329专 业:计算机科学与技术班 级:3班指导教师:丁雨目录目录1第一章 需求分析21.1 编写目的21.2背景21.3系统功能分析31.3.1客户基本信息管理31.3.2员工基本信息管理31.3.3车辆基本信息管理31.3.4订单基本信息管理41.3.5运单基本信息管理41.4系统功能图分析41.5数据约束分析5第二章 数据库概念设计62.1定义实体集及属性62.2定义联系集及属性62.3E-R模型设计72.3.1实体E-R模型设计72.3.2总E-R模型设计9第三章 逻辑设计1
2、03.1基本表设计10第四章 数据库的实现134.1数据库的创建134.2数据表的创建144.3数据录入16select *from yundan184.4基本查询184.4.1单表查询184.4.2多表查询194.4.3创建视图214.4.4 创建存储过程21第五章 总结22参考文献23致谢23第一章 需求分析1.1 编写目的改变当下物流运输的滞后现状,通过科学的数据库管理,完善物流运输行业的工作环节,提高运输效率,从而达到客户满意水平,形成一个一体化的物流运输环境。1.2背景背景之一:我国国民经济高速发展我国自改革开放以来,国民经济就走上了持续稳定高速发展的道路,年均增长8%以上,而从全国
3、看,发展最快的又是我国东南沿海一些省市,他们利用国家给经济特区等一系列优惠政策,大力改革开放,发展经济,率先实现经济的超常规大幅度增长,其中出现了一批大型实力客户,像海尔、宝洁、IBM等。经济的大幅增长,必然导致巨大的物质产品的流动,也就必然导致物流量的增加。这是经济发展的必然规律,也是物流业成长的必然规律。背景二:是改革开放的结果我国第三方物流的诞生是改革开放的结果,跟改革开放有直接的关系。首先由一些国内的外资客户率先促成的,人们不难从我国第三方物流的产生过程看出它有三个特点:第一,它们是从东南沿海一些改革开放程度比较高的省市首先搞起来;第二,它首先是由像宝洁、IBM等这样一些国外的大公司促
4、成我国的一些客户搞起来的;第三,第三方物流公司的业务最先也主要是为国外这些大公司服务的物流业务。而由点到面的发展,必然需要发达的物流来带动。背景三:是我国物流学发展的结果我国第三方物流的发展有一个有趣的现象,就是一旦有了一个第三方物流的样板和模式,社会很快在各个地方推广开来。特别是最近几年,发展特快,上海、北京、天津等城市且不说,武汉就一下子兴起了如中远、长江、中储、武储等好几家大型第三方物流公司。出现这种现象,可以说是中国物流学发展的结果,人们已经有了比较好的物流观念和物流学基础。1.3系统功能分析货物运输管理系统功能:客户基本信息管理、员工基本信息管理、车辆基本信息管理、订单基本信息管理、
5、运单基本信息管理。1.3.1客户基本信息管理为客户提供基本信息增加、修改、删除功能。包括:(1)客户基本信息增加:客户录入基本信息,包括客户编号、客户名称、客户电话、客户性别、联系人姓名信息,形成完整的客户资料。 (2)客户基本信息修改:客户基本信息错误或有所改变时可以进行信息的修改。可以修改联系人姓名,修改联系人电话。 (3)客户基本信息删除:客户可以删除客户基本信息。1.3.2员工基本信息管理为员工提供基本信息增加、修改、删除功能。包括:(1)员工基本信息增加:员工录入基本信息,包括员工编号、员工姓名、员工电话、员工性别信息,形成完整的客户资料。 (2)员工基本信息修改:员工基本信息错误或
6、有所改变时可以进行信息的修改。可以修改联系人姓名,修改联系人电话。 (3)员工基本信息删除:可以删除员工基本信息。1.3.3车辆基本信息管理提供车辆基本信息增加、修改、查询、删除功能。包括:(1) 车辆基本信息增加:系统可以增加车辆基本信息,包括车辆编号、车牌号、车类型、最大载重量、购买金钱等信息。(2) 车辆基本信息修改:车辆基本信息如果出错或者有所改变,系统可以对车辆基本信息的具体内容进行修改。可以修改车辆车牌号,修改车辆车类型,修改车辆载物重。(3)车辆基本信息查询:根据不同的条件查询车辆基本信息。可以按车辆车牌号查询车辆基本信息,按车辆车类型查询车辆基本信息,按车辆载物重查询车辆基本信
7、息。(4)车辆基本信息删除:由于车辆报废或转卖,可以删除车辆基本信息。1.3.4订单基本信息管理提供订单表的增加、更新、修改功能。包括:(1)订单基本信息增加:客户在填写客户编号、货物名称、货物数量、订单时间、订单备注等信息后,系统检查所有信息填写正确后提示增加成功并返回订单总额和订单编号。(2)订单基本信息更新:系统根据订单表自动更新订单表中的信息,如订单表编号、订单数量。(3)订单基本信息修改:客户可根据需要修改货物名称、货物重量、等信息。(4)订单基本信息查询:客户或第三方物流公司可根据订单编号、货物名称、货物重量等对订单进行查询。1.3.5运单基本信息管理提供路线基本信息增加、删除、优
8、化、修改功能。包括:(1)路线基本信息增加:第三方物流公司统计订单目的地后添加路线基本信息,其中包含路线编号,出发地,目的地,预计所需时间等信息。(2)路线基本信息删除:根据客户退单情况或者交通天气状况的改变进行一些无效线路的删除。(3) 路线基本信息优化:根据筛选重复路线及包含路线进行路线整合,优化计算所需最短最少路线。(4) 路线基本信息修改:根据更改订单状况或者交通天气状况对路线信息进行修改。包括路线出发地的修改,路线目的地的修改和路线交通工具的修改。1.4系统功能图分析 货物运输管理系统功能图如图1.1所示。1.5数据约束分析(1) 客户信息表的主键是customer_id,每一个编号
9、都是唯一的。(2) 货运员工信息表的主键是transstaff_id,每一个编号都是唯一的。(3) 维修员工信息表的主键是repairstaff_id,每一个编号都是唯一的。(4) 驾驶信息表的主键是driver_id,每一个编号都是唯一的。(5) 维修信息表的主键是repair_id,每一个编号都是唯一的。(6)客户的所有信息不允许为空。(7)车辆信息表的主键是car_id,每一个车辆编号都是唯一的。(8)订单表的主键是order_id,每一个订单编号都是唯一的。 (9)运单信息表的主键是yundan_id,每一个运单编号都是唯一的。(10) 联系人电话(Telephone)不能为空值,取值
10、范围为00000000000-99 999999999,固定电话加地区号输入。(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_ph
11、one)、客户性别(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_l
12、icence)、车辆类型(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_id)、车牌号(c
13、ar_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 维修员工E-R模型(4) 货运员工E-R模型如图2.4所示。图
14、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模型设计货物运输系统总图如图2.7所示。图2.7 总E-R模型第三章 逻辑设计本次设计的数据库在SQL Server 2008上实现,将概念结构设计中的E-R图转换成SQL Sever 2008支持的关系数据模型。3.1基本表设计关系设计包括转换后所得表和函数依赖关系,转换后为:(1)客户表如表3.1所示。表3.1 客户表数据项数据类型别名是否为空约束取值含义customer_idint客户编号Not null
15、主键customer_namevarchar(50)客户名称Not null真实填写customer_phonevarchar(11)客户电话Not nullCustomer_sextinyint客户性别Not nullcontactnameVarchar(20)联系人姓名Not null (2)车辆表如表3.2所示。表3.2 车辆表数据项数据类型别名是否为空约束取值含义Car_idint车辆编号Not null主键Car_licenceVarchar(20)车牌号Not null真实填写Car_typeVarchar(20)车辆型号 null6-12位,由字母和数字组成Car_MaxWgti
16、nt最大载重Not nullCar_moneyvarchar(20)购买金钱 Null(3) 货运员工表如表3.3所示。表3.3 货运员工表数据项数据类型别名是否为空约束取值含义transstaff_idint货运员工编号Not null主键transstaff_namevarchar(20)货运员工姓名Not nulltransstaff_phonevrachar(11)货运员工电话Not nulltransstaff_sextinyint货运员工性别Not null(4) 维修员工表如表3.4所示。表3.4维修员工表数据项数据类型别名是否为空约束取值含义Repairstaff_idint维
17、修员工编号Not null 主键Repairstaff_nameVarchar(20)维修员工姓名Not nullRepairstaff_phoneVrachar(11)维修员工电话Not nullRepairstaff_sextinyint维修员工性别Not null (5)订单信息表如表3.5所示。表3.5 订单信息表数据项数据类型别名是否为空约束取值含义order_idint订单编号Not null主键gnamevarchar(20)货物名称Not nullgnumvarchar(20)货物数量nullsenddatedate送货日期NullsendcustomerVarchar(50)
18、送货客户null (6)运单信息表如表3.6所示。表3.6 运单信息表数据项数据类型别名是否为空约束取值含义yundan_idint运单编号Not null主键order_idint订单编号Not nulldrivevarchar(20)出车司机Not nullrecivedatedate签收日期 nullchuchedatedate出车日期 nullhuichedatedate回车日期 null (7)驾驶信息表如表3.7所示。表3.7 驾驶信息表数据项数据类型别名是否为空约束取值含义driver_idint驾驶编号Not null主键driverVarchar(20)驾驶司机Not nul
19、lcar_idint驾驶车辆编号Not null外键chuchedatedate出车日期 nullchucheluxianVarchar(20)出车路线 null (8)维修信息表如表3.8所示。表3.8 维修信息表数据项数据类型别名是否为空约束取值含义repair_idint维修编号Not null主键car_licenceVarchar(20)车牌号Not nullsongxiudatedate送修日期Not null检查约束songxiudatewanxiudatewanxiudatedate完修日期 nullrepairadressVarchar(50)维修地点 null第四章 数据库
20、的实现4.1数据库的创建create database Transdbon primary( name= Transdb , filename=D:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATATransdb.mdf, size=5, maxsize=20, filegrowth= 1 )log on( name= Translog,filename=D:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATATranslog.ldf,size=2,ma
21、xsize=8,filegrowth=1)Go4.2数据表的创建-建立货运员工表create table transstaff(transstaff_id int primary key,transstaff_name varchar(20)not null,transstaff_sex tinyint not null default(1),transstaff_phone varchar(11)not null);-建立维修员工表create table repairstaff(repairstaff_id int primary key,repairstaff_name varchar(
22、20)not null,repairstaff_sex tinyint not null default(1),repairstaff_phone varchar(11)not null);-建立车辆信息表create table car(car_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,
23、customer_name varchar(20)not null,customer_sex tinyint not null default(1),customer_phone varchar(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)-建立运单信息表crea
24、te table yundan(yundan_id int primary key not null,order_id 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);-建立维修信息表
25、create table repair(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,李华宇,18247273695,0),(3,刘
26、生友,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,杨波,1824724295,0),(3,孙相光,18247242484,1),(4,周伦,18247252589,1),(5,张建
27、军,18245255956,1),(6,张敏,18245255565,0)select *from repairstaff-插入客户信息数据insert into customer(customer_id,contactname,customer_phone,customer_sex,customer_name)values(1,王强,18247274241,1,包头市鑫达汽车销售有限公司),(2,杨过,18247244295,0,包头长安福特有限公司),(3,孙伟伟,18241425484,1,包头日报印刷厂),(4,周伯伦,18247252589,1,包头力帆摩托有限公司),(5,王建军,
28、18257255956,1,包头新光家具有限公司),(6,张晓敏,18245245565,0,包头远大纸业有限公司)select *from customer-插入车辆信息数据insert into car(car_id,car_licence,car_MaxWgt,car_money,car_type)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,16
29、0000,EQ50301),(6,蒙B-14345,20,160000,EQ50301)select *from car-插入驾驶信息数据insert into drive(driver_id,driver,car_id,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
30、,wanxiudate,repairadress)values(1,蒙B-12345,2013-03-25,2013-04-01,公司维修部),(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,包头远大纸业有限公司),(78945612
31、3,床垫,800张,2013-03-05,包头新光家具有限公司),(789454223,木桌,500张,2013-05-05,包头新光家具有限公司),(789456321,福特汽车,20辆,2013-04-05,包头长安福特有限公司)select *from dingdaninsert into yundan(yundan_id,order_id,drive,recivedate,chuchedate,huichedate)values(321465798,123456789,李树森,2013-05-26,2013-05-05,2013-06-07),(123456789,789456123,
32、李华宇,2013-07-26,2013-07-05,2013-08-07)select *from yundan4.4基本查询4.4.1单表查询-单表查询select car_id,car_licencefrom car;select car_id,driver_id,driverfrom drive;select repair_id,car_licence,repairadressfrom repair;4.4.2多表查询-多表查询-子查询,表drive中存在chucheluxian=包头-大同,外层语句进行查询select *from carwhere exists(select car_
33、id from drivewhere chucheluxian=包头-大同);-查询所有车辆总载重量select SUM(car_MaxWgt) as sum_maswgtfrom car;-查询出车路线为包头-北京的车辆编号、车牌号、购买金钱select car_id,car_licence,car_money from carwhere car_id=(select car_id from drive as drivewhere chucheluxian=包头-北京);-查询出车日期在2013-08-08前的车牌号,车辆编号和购买金钱select car_id,car_licence,ca
34、r_money from carwhere car_id in(select car_id from drive as drivewhere chuchedate=2013-08-08);4.4.3创建视图-创建视图create view view_repairas select car_licence,songxiudate,wanxiudatefrom Transdb.dbo.repair;gouse Transdb;select *from view_repair;create view view_caras select car_id,car_licence,car_MaxWgt,ca
35、r_moneyfrom Transdb.dbo.car;gouse Transdb;select *from view_car;4.4.4 创建存储过程-创建存储过程并调用create procedure selprocasselect *from car;exec selproc;第五章 总结在这次项目设计中,我选择的是设计一个货运管理系统,这对我来说是一次尝试与创新的过程,也可以说是一个挑战的过程。虽然学了数据库这么久了,但是还是缺少经验。现在我利用自己学到的知识设计并制作一个货运管理系统,这本身就是一个知识转化为生产力的过程,所以很兴奋,投入了很高的热情与努力。在具体的设计与实施中,我们
36、看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。在设计中我基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。参考文献1、 施伯乐、丁宝康、汪卫 数据库系统教程 高等教育出版社2、 王英文、张少军、刘增杰 SQL SERVER 2012从零开始学 清华大学出版社致谢THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考