物流运输公司数据库设计Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT内蒙古科技大学本科生课程设计论文题目:物流运输公司数据库设计学生姓名:学号:专业:计算机班级:13级4班指导教师:2015 年 12 月 30 日内蒙古科技大学课程设计任务书摘要随着时间的推移,数据库在各个领域都被广泛的运用。
数据库技术已经成为现代信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
我所做的是物流运输公司物数据库设计,目的是为了让物流运输公司更好的实行自动化管理,减少了投入的人力、精力,能让数据存储在计算机内,能够有组织的,统一管理公司的业务。
我利用课本中的知识,通过需求分析,概念设计,逻辑设计,及数据库的实施和运行等阶段,为物流运输公司设计了一个小型数据库。
关键词:SQL SERVER;数据库设计;物流运输公司目录前言这次课程设计就是对本学期所学的《数据库原理及应用》及《SQL server 从零开始学》的实践,这两门课既有较强的理论性,又有较强的实践性的专业基础课程,需要把理论知识和实际应用紧密结合起来。
我的课设题目是“物流运输公司数据库设计”,通过对物流公司内部管理来实现数据库的功能。
这学期学习完数据库的理论知识,又学习了SQL语言的运用,最后用自己的电脑实践,用“物流运输公司数据库设计”来举例用理论来联系实践,了解并掌握了数据库管理系统的基本原理和数据库系统设计的方法,培养了我应用及设计数据库的能力。
通过亲身实践,我了解物流管理的结构,需要了解客户、公司、货物之间的关系,首先,它们被输入到数据库后,能够查询,修改和删除,然后通过建立键的关系,来建立表的联系,然后通过需求分析,了解了需求分析的过程和目的,建立数据字典,概念设计阶段要完成数据抽象与局部视图设计以及视图的集成。
逻辑结构设计阶段要把E-R图转化为关系模式。
最后是数据库的实施和运行。
第一章:系统分析及设计主要的需求物流运输公司A需要建立一个管理数据库存储以下信息:1.物流运输公司A中主要的实体有员工、订单、运单、车辆、客户。
2.物流运输公司A有多名负责的不同工作的员工:货运员工和维修员工。
3.每一笔订单包含订单编号、货物名称、送货日期、货物数量、客户编号。
4.每一笔运单包含运单编号、订单编号、出车司机、签收日期、出车日期、回车日期。
5.物流运输公司A还会为客户建立客户表,客户表包含客户编号、客户名称、客户性别、客户地址、联系电话。
6.物流运输公司A会建立一个车辆表,包含:车辆编号、车牌号、车辆型号、最大载重、购买金钱。
7.对于维修的车辆,还会建立一个维修记录表,记录维修编号、维修车牌号、开始维修时间、结束维修时间、维修费用、维修地点。
数据库的E-R图实体E-R模型设计1.客户E-R模型如图所示。
图客户E-R模型2.车辆E-R模型如图所示。
图车辆E-R模型3.订单信息E-R模型如图所示图订单信息E-R模型4.运单信息E-R模型如图所示。
图运单信息E-R模型5.维修员工E-R模型如图所示图维修员工E-R模型6.货运员工E-R模型如图所示图货运员工E-R模型总E-R模型设计物流运输系统总E-R图如图所示。
图总E-R模型数据库的逻辑设计基本表设计关系设计包括转换后所得表和函数依赖关系,转换后如下:1.客户表如表所示。
表货运员工表表维修员工表5.订单信息表如表所示。
表订单信息表6.运单信息表如表所示。
表运单信息表数据约束分析1.客户信息表的主键是customer_id,每一个编号都是唯一的。
2.货运员工信息表的主键是freightstaff_id,每一个编号都是唯一的。
3.维修员工信息表的主键是repairstaff_id,每一个编号都是唯一的。
4.驾驶信息表的主键是driver_id,每一个编号都是唯一的。
5.维修信息表的主键是repair_id,每一个编号都是唯一的。
6.客户的所有信息不允许为空。
7.车辆信息表的主键是car_id,每一个车辆编号都是唯一的。
8.订单表的主键是order_id,每一个订单编号都是唯一的。
9.运单信息表的主键是waybill_id,每一个运单编号都是唯一的。
10.11.订单一旦生成则无法删除。
12.联系人姓名(contactname)不能为空值,不得超过20字。
13.最大载重量(car_MaxWgt)不能为空值,数据为int。
14.车牌号(car_licence)不能为空值,真实填写。
15.车类型(car_type)不能为空值。
第二章:系统功能主要功能货物运输管理系统功能:客户基本信息管理、员工基本信息管理、车辆基本信息管理、订单基本信息管理、运单基本信息管理。
基础信息操作:员工信息、客户信息、车辆信息、运单订单信息的插入更新删除。
数据查询:基本信息查询、按条件查询、多表信息查询。
数据统计:详细统计订单的各项信息,统计维修记录中各个车辆的维修次数与维修费用之和。
图系统功能图数据库的设计与实现数据库的创建create database Transdbon primary( name=' Transdb ',filename='D:\Program Files\Microsoft SQL Server\\MSSQL\DATA\',size=5,maxsize=20,filegrowth= 1 )log on( name=' Translog',filename='D:\Program Files\Microsoft SQL Server\\MSSQL\DATA\', size=2,maxsize=8,filegrowth=1)Go--建立货运员工表create table freightstaff(freightstaff_id int primary key,freightstaff_name varchar(20)not null,freightstaff_sex char(2) not null ,freightstaff_phone varchar(11)not null);--建立维修员工表create table repairstaff(repairstaff_id int primary key,repairstaff_name varchar(20)not null,repairstaff_sex char(2) not null ,repairstaff_phone varchar(11)not null);--建立车辆信息表create table car(car_id int primary key,car_licence varchar(20)not null,car_type varchar(50),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 char(2) not null ,customer_phone varchar(11)not null,customer_ad varchar(50)not null);--建立订单信息表create table dingdan(order_id int primary key not null,gname varchar(20) not null,gnum varchar(20),senddate date,customer_id int,sendcustomer varchar(20));--建立运单信息表create table waybill(waybill_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(drive_id int primary key not null,driver varchar(20)not null,car_id int,chuchedate date,chucheluxian varchar(20));--建立维修信息表create table repair(repair_id int primary key not null,car_licence varchar(20)not null,songxiudate date,wanxiudate date,repairad varchar(50),repair_cost int,repairstaff_id int);数据录入--插入货运员工数据insert freightstaff(freightstaff_id,freightstaff_name,freightstaff_phone,freightstaff_sex)select *from freightstaff--插入维修员工数据Insertinto repairstaff(repairstaff_id,repairstaff_name,repairstaff_phone,repairstaff_sex) select *from repairstaff--插入客户信息数据insert intocustomer(customer_id,customer_name,customer_phone,customer_sex,customer_ad) select *from customer--插入车辆信息数据insert into car(car_id,car_licence,car_MaxWgt,car_money,car_type)values(1,'蒙B-11111',21,190000,'叉车'),(2,'蒙B-22222',31,200000,'汽车'),(3,'蒙B-33333',21,210000,'叉车'),(4,'蒙B-44444',31,220000,'叉车'),(5,'蒙B-55555',19,230000,'汽车'),(6,'蒙B-66666',19,240000,'汽车')select *from car--插入驾驶信息数据insert into drive(drive_id,driver,car_id,chuchedate,chucheluxian)values(1,'李一一',5,'2015-04-25','包头-北京'),(2,'张二二',2,'2015-07-15','包头-呼市'),(3,'宋五五',3,'2015-05-25','包头-大同')select *from drive--插入维修信息数据Insert into repair(repair_id,car_licence,songxiudate,wanxiudate,repairad,repair_cost , repairstaff_id)values(1,'蒙B-11111','2015-03-25','2015-04-01','公司维修部','200','4'),(3,'蒙B-33333','2015-06-25','2015-07-01','公司维修部','100','1'),(5,'蒙B-55555','2015-03-25','2015-04-11','公司维修部','150','3')select *from repair--插入订单信息数据insert into dingdan(order_id,gname,gnum,senddate,sendcustomer,customer_id) select *from dingdan--插入运单信息数据insert into waybill(waybill_id,order_id,driver,recivedate,chuchedate,huichedate) select *from waybill基本查询1.单表查询--单表查询select car_id,car_licencefrom car;select car_id,drive_id,driverfrom drive;select repair_id,car_licence,repairadfrom repair;2.多表查询--多表查询--子查询,表drive中存在chucheluxian='包头-北京',外层语句进行查询select *from carwhere exists(select car_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='包头-北京');--查询出车日期在'2015-08-01'前的车牌号,车辆编号和购买金钱select car_id,car_licence,car_money from carwhere car_id in(select car_id from drive as drivewhere chuchedate<='2015-08-01');--创建视图create view view_repairas select car_licence,songxiudate,wanxiudategouse Transdb;select *from view_repair;create view view_caras select car_id,car_licence,car_MaxWgt,car_moneygouse Transdb;select *from view_car;创建存储过程--创建存储过程并调用create procedure selprocasselect *from car;exec selproc;第三章结论此次课设我所做的是物流运输公司数据库,对于拥有有限知识的我真的是一个巨大的考验,为了这次课设我查阅了大量的资料,了解了许多物流方面的知识。