物流管理系统数据库设计
摘要
随着数据管理规模一再扩大,数据量急剧增加,为了为提高效率,人们在倒排文件系统的系统上,潜心研究,现如今,数据库技术的发展和出现使计算机应用渗透到社会的各个领域。数据库技术已经成为现代信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
我所做的是智丰物流管理系统,目的是为了帮助智丰物流公司更好的实行自动化管理,减少了投入的人力、精力,能让数据存储在计算机内,能够有组织的,统一管理公司的业务。我利用课本中的知识,通过需求分析,概念设计,逻辑设计,及数据库的实施和运行等阶段,为智丰物流公司设计了一个小型数据库。
关键词:SQL SERVER;数据库设计;智丰物流管理系统
目录
第一章绪论 ...................................................... 错误!未定义书签。
1.1课题简介.................................................................................................... - 1 -
1.2设计目的.................................................................................................... - 1 -
1.3设计内容.................................................................................................... - 1 -第二章需求分析 ........................................................................... - 2 -
2.1 需求分析的任务....................................................................................... - 2 -
2.2 需求分析的过程....................................................................................... - 2 -
2.3数据字典与流程图.................................................................................... - 2 -第三章概念结构设计 (4)
3.1 概念结构设计的方法与步骤 (4)
3.2 数据抽象与局部视图设计 (4)
3.3视图的集成 (5)
第四章逻辑结构设计................................................................... - 7 -
4.1 E-R图向关系模型的转换 ........................................................................ - 8 -
4.2 数据库关系图............................................................. 错误!未定义书签。第五章数据库的实现 (9)
5.1数据库的建立 (9)
5.2 数据库基本结构的建立 (9)
5.3安全性的实现 (13)
5.4完整性的实现 (13)
5.5恢复技术的实现 (14)
第六章运行与结果 (15)
6.1简单查询和连接查询 (15)
6.2嵌套查询 (16)
6.3组合查询和统计查询 (17)
第一章绪论
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.1卖家信息实体属性图
图3.2货物信息实体属性图
图3.3消费者信息实体属性图
图3.4业务信息实体属性图
……
3.3视图的集成
经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.5总体概念结构E-R图。
图3.5系统总体结构E-R图
第四章逻辑结构设计
4.1 E-R图向关系模型的转换
将图2.2总体概念结构E-R图转化成关系模型。将转化的关系模式进行优化,最终达到第三范式。(至少包括4张表,每个表都有主键,设必要的外键。)
卖家信息(ID号,,姓名,年龄,电话,住址);
货物信息(货物名,货号,体积,重量,包装类型);
消费者信息(ID号,姓名,年龄,电话,住址);
业务信息(业务员号,接洽时间,发货站,发货城市,收货站,收货城市);
选择信息(选择号,业务员号,消费者ID号,货物名,费用);
运输信息(运输号,卖家ID号,货物名,发货时间)
4.2 基本表结构
根据总体结构图设计各表的结构,其相应表的定义如下:
表4-1卖家信息表的结构
表4-2货物信息表的结构
表4-3消费者信息表的结构
表4-4业务信息表的结构
表4-5选择信息表的结构
表4.6运输信息表的结构
第五章数据库的实现5.1数据库的建立
create database智丰物流管理系统
on primary
(
name=智丰物流管理系统,
filename='C:\MSDE2000MSSQL\Data\智丰物流管理系统_data.mdf', size=1MB,
maxsize=10MB,
filegrowth=4MB
)
log on
(
name=智丰物流管理_log,
filename='C:\MSDE2000MSSQL\Data\智丰物流管理系统_log.ldf', size=1MB,
maxsize=10MB,
filegrowth=4MB
)
5.2 数据库基本结构的建立
1、基本表的建立
业务信息表:
create table业务信息表
( Ono char(4)primary key,
Jtime char(10)not null,
Fhz char(10)not null,
Fhcity char(10)not null,
Shz char(10)not null,
Shcity char(10)not null, );
消费者信息表表:
create table消费者信息表( CID char(20)primary key, Cname char(10)not null,
Age char(10),
Tell char(20)not null,
Adr char(20)
);
卖家信息表表:
create table卖家信息表
( SeID char(20)primary key, Sname char(10)not null, Age char(10),
Tell char(20)not null,
Adr char(20)not null
);
货物信息表表:
create table货物信息表
( Gname char(10)primary key, Gno char(10)not null,
V olume char(10),
Weight char(10),
Pack char(10))
选择表:
create table选择表
( Xno char(10),
Ono char(4),
CID char(20),
Gname char(10),
Cost char(10),
primary key(Xno,Ono,CID,Gname),
foreign key(Ono)references business(Ono),
foreign key(CID)references consumer(CID),
foreign key(Gname)references goods(Gname)
);
运输表:
create table选择表
( Yno char(10),
SeID char(20),
Gname char(10),
Ftime char(10)not null,
primary key(Yno ,SeID,Gname),
foreign key(SeID)references seller(SeID),
foreign key(Gname)references goods(Gname)
)
2、添加数据
向卖家表中添加大张的各数据:
insert into seller (SeID,Sname,Age,Tell,Adr)
values('2001002','小李','23','188********','辽宁省大连市')
3、视图的建立
Create view st
As
Select Tell,Adr
From卖家信息表
Where Sname='小张'
4、索引的建立
为每张基本表设计一个聚簇索引,并至少为其中一张表设计一个唯一索引。写出相关的
SQL语句(聚簇,唯一各写一个即可)。
create clustered index sy1
on货物信息表(Gname);
create clustered index sy2
on卖家信息表(SeID);
create clustered index sy3
on消费者信息表(CID);
create clustered index sy4
on选择表(Xno);
create clustered index sy5
on业务信息表(Ono);
create clustered index sy6
on运输表(Yno);
create unique index sy7
on卖家信息表(Sname);
5、游标的建立
根据应用要求,为其中一个基本表设计游标,并利用该游标修改数据,写出SQL语句。Declare cs_cursor scroll cursor
For
Select Gname,Gno,Volume
From货物信息表
Open cs_cursor
Fetch from cs_cursor
Update货物信息表
Set V olume='23'
Where current of cs_cursor
Fetch absolute 2from cs_cursor
6、存储过程的建立
根据应用要求,至少设计一个存储过程,写出SQL语句。
Create procedure cunchu
As
Select Sname
From卖家信息表
5.3安全性的实现
1、利用图形化工具
为了提高安全性,建立系统用户,SQL SERVER用户,数据库用户,写出你所建立的三个用户名。
系统用户:login
SQL SERVER 用户:login
数据库用户:login
SQL SERVER用户:sysadmin
数据库用户:db_accessadmin
2、利用Transact-SQL
设计一个SQL server登录账户,并设置密码,写出相应的SQL语句。
Sp_addlogin'dongdong','123'
为登录帐户,设计创建一个数据库用户,写出相应的SQL语句。
Sp_grantdbaccess'dongdong','abc'
为数据库用户创建数据库角色,写出相应的SQL语句。
Sp_addrolemember'db_owner','abc'
5.4完整性的实现
1、UNIQUE约束
alter TABLE消费者信息表
add constraint unique_Cname
Unique nonclustered(Cname)
2、CHECK约束
Alter table卖家信息表
add constraint check_Adr
Check(Adr='辽宁省大连市')
3、DEFAULT约束
Alter table货物信息表
Add constraint default_Volume
default 29 for Volume
4、NOT NULL约束
alter业务信息表
alter column Ono char(4)not null;
5、规则
Create rule dybh_rule as @Age>=24 and @Age<=40
sp_bindrule dybh_rule,'消费者信息表.Age';
5.5恢复技术的实现
完成所有数据的设计工作后,备份数据库,写出备份文件存放位置和文件名。C:\Program Files\Microsoft SQL Server\MSSQL\LOG\wl1120724\智丰物流管理系统.bak
第六章运行与结果
6.1简单查询和连接查询
1、简单查询
设计两个简单查询,写出相应的SQL语句,并对查询结果截图。
(1) 查询消费者信息表的内容
select*
from消费者信息表
(2)查询辽宁省大连市的卖家信息:
select*
from消费者信息表
where Adr='辽宁省大连市'
2、连接查询
设计两个连接查询,写出相应的SQL语句,并对查询结果截图。(1)卖家与货物表连接查询:
select卖家信息表.*,运输表.*
from卖家信息表,运输表
where卖家信息表.SeID=运输表.SeID
(2)查询货物是灯管的卖家信息:
select卖家信息表.SeID,Sname,Adr,Ftime
from卖家信息表,运输表
where卖家信息表.SeID=运输表.SeID and运输表.Gname='灯管'
6.2嵌套查询
设计两个连接查询,写出相应的SQL语句,并对查询结果截图。(1)查询卖家号为2001003的卖家名和住址:
select Sname,Adr
from卖家信息表
where SeID in
(select SeID
from运输表
where SeID='2001003 ')
(2)查询货物体积为23的卖家身份证号,姓名,电话:
select SeID,Sname,Tell
from卖家信息表
where SeID in
(select SeID
from运输表
where Gname in(select Gname
from货物信息表
where V olume='23'))
6.3组合查询和统计查询
1、组合查询
设计两个组合查询语句,写出相应的SQL语句,并对查询结果截图。(1)查询货物体积大于9的货物名称,体积:
select Gname,V olume
from货物信息表
group by Gname,Volume