物流管理系统数据库设计.docx
《物流管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《物流管理系统数据库设计.docx(21页珍藏版)》请在冰豆网上搜索。
物流管理系统数据库设计
摘要
随着数据管理规模一再扩大,数据量急剧增加,为了为提高效率,人们在倒排文件系统的系统上,潜心研究,现如今,数据库技术的发展和出现使计算机应用渗透到社会的各个领域。
数据库技术已经成为现代信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
我所做的是智丰物流管理系统,目的是为了帮助智丰物流公司更好的实行自动化管理,减少了投入的人力、精力,能让数据存储在计算机内,能够有组织的,统一管理公司的业务。
我利用课本中的知识,通过需求分析,概念设计,逻辑设计,及数据库的实施和运行等阶段,为智丰物流公司设计了一个小型数据库。
关键词:
SQLSERVER;数据库设计;智丰物流管理系统
第一章绪论
1.1课题简介
“数据库原理及应用”是一门既有较强的理论性,又有较强的实践性的专业基础课程,需要把理论知识和实际应用紧密结合起来。
这次课程设计就是对本学期所学的“数据库原理及应用”这本书从第二章开始到第六章的实践,我的例子是“智丰物流管理系统”,通过对物流公司内部管理来实现数据库的功能。
1.2设计目的
这学期学习完数据库的理论知识,然后用自己的电脑实践,用“智丰物流管理系统”来举例用理论来联系实践,了解并掌握了数据库管理系统的基本原理和数据库系统设计的方法,培养了我应用及设计数据库的能力。
1.3设计内容
我选择的是智丰物流管理系统,通过亲身实践,我了解物流管理的结构,需要了解卖家、消费者、货物之间的关系,首先,它们被输入到数据库后,能够查询,修改和删除,然后通过建立键的关系,来建立表的联系,然后通过需求分析,了解了需求分析的过程和目的,建立数据字典,概念设计阶段要完成数据抽象与局部视图设计以及视图的集成。
逻辑结构设计阶段要把E-R图转化为关系模式。
最后是数据库的实施和运行。
第二章需求分析
2.1需求分析的任务
我需要了解“智丰物流管理系统”的整个应用情况,并对它进行全面、详细的调查,确定物流管理系统的目标,就是高效,自动化管理货物及卖家、消费者之间的关系,收集信息,管理信息,了解系统将来要发生的变化,收集未来应用所涉及的数据,分析数据流程,处理数据,数据的安全性、完整性的处理要求。
2.2需求分析的过程
建立业务信息、货物信息、卖家信息、消费者信息;完成业务信息、货物信息、卖家信息、消费者信息;业务实体包括操作员、发货城市、发货站、费用、接洽时间、收货站、收货城市,一个收货人选择业务,收货人包括姓名、身份证号码、年龄、电话、地址,一个收货人要网购一种货物,一个货物有标签、名称、体积、重量、包装类型。
货物由发货人统一发送,发货人包括姓名、身份证号码、电话、地址。
2.3数据字典与流程图
1.业务流程分析
经过可行性分析和初步需求调查,抽象出该物流业务流程图。
如图2.1所示
图2.1物流管理系统流程图
2.系统模块分析
在调查完了用户需求之后,就要开始分析用户需求。
在此,我们采用自顶向下的结构化分析方法(SA方法)。
首先,定义全局概念结构的框架,如图2.2所示。
图2.2物流管理系统全局概念结构
3.数据字典
全局分析之后,开始构造数据字典。
经分析之后,本系统要用到六个基本表:
卖家信息表,货物信息表,消费者信息表,业务信息表,选择信息表,运输信息表,数据结构如下表所示。
表2.3数据结构定义
数据结构名
含义说明
组成
卖家信息表
定义了卖家的信息
卖家身份证号、姓名、年龄、电话、住址
货物信息表
定义了货物的有关信息
货物名、货号、体积、重包装类型
消费者信息表
定义了消费者
的有关信息
消费者身份证号、姓名、年龄、电话、住址
业务信息表
定义了业务相关有关信息
业务员号、接洽时间、发货站、发货城市、收发站、收货城市
选择信息表
定义了选择的有关信息
业务员号、消费者身份证号、货物名、费用
运输信息表
定义了运输的有关信息
卖家身份证号、货物名、发货时间
第三章概念结构设计
3.1概念结构设计的方法与步骤
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
3.2数据抽象与局部视图设计
按照图2.2智丰物流管理系统总框架图,设计实体属性图以及局部E-R图。
……
3.3视图的集成
经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.5总体概念结构E-R图。
图3.5系统总体结构E-R图
第四章逻辑结构设计
4.1E-R图向关系模型的转换
将图2.2总体概念结构E-R图转化成关系模型。
将转化的关系模式进行优化,最终达到第三范式。
(至少包括4张表,每个表都有主键,设必要的外键。
)
卖家信息(ID号,,姓名,年龄,电话,住址);
货物信息(货物名,货号,体积,重量,包装类型);
消费者信息(ID号,姓名,年龄,电话,住址);
业务信息(业务员号,接洽时间,发货站,发货城市,收货站,收货城市);
选择信息(选择号,业务员号,消费者ID号,货物名,费用);
运输信息(运输号,卖家ID号,货物名,发货时间)
4.2基本表结构
根据总体结构图设计各表的结构,其相应表的定义如下:
表4-1卖家信息表的结构
字段名
数据类型
长度
约束
描述
SeID
char
20
主键、非空
卖家身份证
Sname
char
10
唯一、非空
卖家姓名
Age
char
10
唯一、允许空
年龄
Tell
char
20
唯一、非空
电话
Adr
char
20
唯一、允许空
住址
表4-2货物信息表的结构
字段名
数据类型
长度
约束
描述
Gname
char
10
主键、非空
货物名
Gno
char
10
唯一、非空
货物号
Volume
char
10
唯一、允许空
体积
Weight
char
10
唯一、允许空
重量
Pack
char
10
唯一、允许空
包装类型
表4-3消费者信息表的结构
字段名
数据类型
长度
约束
描述
CID
char
20
主键、非空
消费者身份证
Cname
char
10
唯一、非空
消费者姓名
Age
char
10
唯一、允许空
年龄
Tell
char
20
唯一、非空
电话
Adr
char
20
唯一、非空
住址
表4-4业务信息表的结构
字段名
数据类型
长度
约束
描述
Ono
char
4
主键、非空
业务员号
Jtime
char
10
唯一、非空
接洽时间
Fhz
char
10
唯一、非空
发货站
Fhcity
char
10
唯一、非空
发货城市
Shz
char
10
唯一、非空
收货站
Shcity
char
10
唯一、非空
收货城市
表4-5选择信息表的结构
字段名
数据类型
长度
约束
描述
Xno
char
10
主键、非空
选择号
Ono
char
4
外键、非空
业务员号
CID
char
20
外键、非空
消费者ID
Gname
char
10
外键、非空
货物名
Cost
float
唯一、非空
费用
表4.6运输信息表的结构
字段名
数据类型
长度
约束
描述
Yno
char
10
主键、非空
运输号
SeID
char
20
外键、唯一、非空
卖家ID
Gname
char
10
外键,非空
货物名
Ftime
char
10
唯一,非空
发货时间
第五章数据库的实现
5.1数据库的建立
createdatabase智丰物流管理系统
onprimary
(
name=智丰物流管理系统,
='C:
\MSDE2000MSSQL\Data\智丰物流管理系统_data.mdf',
size=1MB,
maxsize=10MB,
=4MB
)
logon
(
name=智丰物流管理_log,
='C:
\MSDE2000MSSQL\Data\智丰物流管理系统_log.ldf',
size=1MB,
maxsize=10MB,
=4MB
)
5.2数据库基本结构的建立
1、基本表的建立
业务信息表:
createtable业务信息表
(Onochar(4)primarykey,
Jtimechar(10)notnull,
Fhzchar(10)notnull,
Fhcitychar(10)notnull,
Shzchar(10)notnull,
Shcitychar(10)notnull,
);
消费者信息表表:
createtable消费者信息表
(CIDchar(20)primarykey,
Cnamechar(10)notnull,
Agechar(10),
Tellchar(20)notnull,
Adrchar(20)
);
卖家信息表表:
createtable卖家信息表
(SeIDchar(20)primarykey,
Snamechar(10)notnull,
Agechar(10),
Tellchar(20)notnull,
Adrchar(20)notnull
);
货物信息表表:
createtable货物信息表
(Gnamechar(10)primarykey,
Gnochar(10)notnull,
Volumechar(10),
Weightchar(10),
Packchar(10))
选择表:
createtable选择表
(Xnochar(10),
Onochar(4),
CIDchar(20),
Gnamechar(10),
Costchar(10),
primarykey(Xno,Ono,CID,Gname),
foreignkey(Ono)referencesbusiness(Ono),
foreignkey(CID)referencesconsumer(CID),
foreignkey(Gname)referencesgoods(Gname)
);
运输表:
createtable选择表
(Ynochar(10),
SeIDchar(20),
Gnamechar(10),
Ftimechar(10)notnull,
primarykey(Yno,SeID,Gname),
foreignkey(SeID)referencesseller(SeID),
foreignkey(Gname)referencesgoods(Gname)
)
2、添加数据
向卖家表中添加大张的各数据:
insertintoseller(SeID,Sname,Age,Tell,Adr)
values('2001002','小李','23','','辽宁省大连市')
3、视图的建立
Createviewst
As
SelectTell,Adr
From卖家信息表
WhereSname='小张'
4、索引的建立
为每张基本表设计一个聚簇索引,并至少为其中一张表设计一个唯一索引。
写出相关的SQL语句(聚簇,唯一各写一个即可)。
createclusteredindexsy1
on货物信息表(Gname);
createclusteredindexsy2
on卖家信息表(SeID);
createclusteredindexsy3
on消费者信息表(CID);
createclusteredindexsy4
on选择表(Xno);
createclusteredindexsy5
on业务信息表(Ono);
createclusteredindexsy6
on运输表(Yno);
createuniqueindexsy7
on卖家信息表(Sname);
5、游标的建立
根据应用要求,为其中一个基本表设计游标,并利用该游标修改数据,写出SQL语句。
Declarecs_cursorscrollcursor
For
SelectGname,Gno,Volume
From货物信息表
Opencs_cursor
Fetchfromcs_cursor
Update货物信息表
SetVolume='23'
Wherecurrentofcs_cursor
Fetchabsolute2fromcs_cursor
6、存储过程的建立
根据应用要求,至少设计一个存储过程,写出SQL语句。
Createprocedurecunchu
As
SelectSname
From卖家信息表
5.3安全性的实现
1、利用图形化工具
为了提高安全性,建立系统用户,SQLSERVER用户,数据库用户,写出你所建立的三个用户名。
系统用户:
login
SQLSERVER用户:
login
数据库用户:
login
SQLSERVER用户:
sysadmin
数据库用户:
db_accessadmin
2、利用Transact-SQL
设计一个SQLserver登录账户,并设置密码,写出相应的SQL语句。
Sp_addlogin'dongdong','123'
为登录帐户,设计创建一个数据库用户,写出相应的SQL语句。
Sp_grantdbaccess'dongdong','abc'
为数据库用户创建数据库角色,写出相应的SQL语句。
Sp_addrolemember'db_owner','abc'
5.4完整性的实现
1、UNIQUE约束
alterTABLE消费者信息表
addconstraintunique_Cname
Uniquenonclustered(Cname)
2、CHECK约束
Altertable卖家信息表
addconstraintcheck_Adr
Check(Adr='辽宁省大连市')
3、DEFAULT约束
Altertable货物信息表
Addconstraintdefault_Volume
default29forVolume
4、NOTNULL约束
alter业务信息表
altercolumnOnochar(4)notnull;
5、规则
Createruledybh_ruleas@Age>=24and@Age<=40
sp_bindruledybh_rule,'消费者信息表.Age';
5.5恢复技术的实现
完成所有数据的设计工作后,备份数据库,写出备份文件存放位置和文件名。
C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\LOG\wl1120724\智丰物流管理系统.bak
第六章运行与结果
6.1简单查询和连接查询
1、简单查询
设计两个简单查询,写出相应的SQL语句,并对查询结果截图。
(1)查询消费者信息表的内容
select*
from消费者信息表
(2)查询辽宁省大连市的卖家信息:
select*
from消费者信息表
whereAdr='辽宁省大连市'
2、连接查询
设计两个连接查询,写出相应的SQL语句,并对查询结果截图。
(1)卖家与货物表连接查询:
select卖家信息表.*,运输表.*
from卖家信息表,运输表
where卖家信息表.SeID=运输表.SeID
(2)查询货物是灯管的卖家信息:
select卖家信息表.SeID,Sname,Adr,Ftime
from卖家信息表,运输表
where卖家信息表.SeID=运输表.SeIDand运输表.Gname='灯管'
6.2嵌套查询
设计两个连接查询,写出相应的SQL语句,并对查询结果截图。
(1)查询卖家号为的卖家名和住址:
selectSname,Adr
from卖家信息表
whereSeIDin
(selectSeID
from运输表
whereSeID='2001003')
(2)查询货物体积为23的卖家身份证号,姓名,电话:
selectSeID,Sname,Tell
from卖家信息表
whereSeIDin
(selectSeID
from运输表
whereGnamein(selectGname
from货物信息表
whereVolume='23'))
6.3组合查询和统计查询
1、组合查询
设计两个组合查询语句,写出相应的SQL语句,并对查询结果截图。
(1)查询货物体积大于9的货物名称,体积:
selectGname,Volume
from货物信息表
groupbyGname,Volume
havingVolume>=9
(2)查询费用大于等40的操作员号货物名称,费用,按费用降序排序:
selectOno,Gname,cost
from选择表
groupbyOno,Gname,cost
havingcost>=40
orderbycostdesc;
2、统计查询
设计两个统计查询语句,写出相应的SQL语句,并对查询结果截图。
(1)统计业务员的个数:
selectcount(Ono)total
From选择表
(2)查询辽宁省大连市买家的平均运费:
selectavg(Cost)
From选择表
WhereCIDin
(selectCID
From选择表
WhereCIDin
(selectCID
From消费者信息表
WhereAdr='辽宁省大连市'))