1、数据库原理课程设计报告题 目: 物流公司管理系统 学生姓名: 组 员: 学 号: 班 级: 院 系: 计算机科学与信息学院 专业年级: 计算机科学与技术2010 级 2013 年 1 月 10 日一、 需求分析在经济日益发展的今天,生活节奏越来越快,所以迎来了电子信息时代。于此同时,电子商务行业也如火如荼发展起来,Online shopping 也越来越普及。这就又带动一个行业的发展,物流。要适应时代的发展,物流公司必须得有一套自己的管理方案以便跟上时代的快节奏。针对这个,我们便模拟开发一个物流公司管理系统。在该系统中,我们提供如下功能,用户登录该系统过后,便可以对信息进行操作。用户登录:GL
2、YGnoGnameGsexGpwdByte (10)Characters (10)Characters (10)Characters (50)Identifier_1. 该功能要求在数据库当中有管理员的用户名与密码的存储。用户通过输入 Gno 和相应的 Gpwd,然后系统会与数据库中的数据进行比较,若输入正确,则登陆成功。否则提示信息错误。对信息的查询。实现对客户信息,员工信息,仓库信息,收货人信息,存储信息,配送信息,货单信息的查询。这时候需要在数据库中存储相应的表用以记录这些信息。与此同时还提供对以上信息的查询,添加,修改以及删除功能。以上操作会同时影响数据库里面的数据。业务流程图如下所示
3、:功 能 选 择查 询 添 加 删 除 修 改以上的查询以及增删改都有针对每类信息。客户信息增删改以及查询的流程图如下所示:查 询查 询删 除修 改查 询添 加数 据 库录 入 客 户 信 息修 改 客 户 信 息查 询 客 户 信 息删 除 客 户 信 息货物信息的操作流程图如下所示:查 询查 询删 除修 改查 询添 加数 据 库录 入 货 物 信 息修 改 货 物 信 息查 询 货 物 信 息删 除 货 物 信 息其他信息的操作流程图和以上两种类似。(3)只有该系统的管理员才可以对该系统的信息进行查询以及增删改。另外实体内有外码的必须满足参照完整性。二、概念结构设计管理员表的结构设计如下:
4、GLYGnoGnameGsexGpwdByte (10)Characters (10)Characters (10)Characters (50)Identifier_1. 该实体 Gno 是用户进行登陆时的用户名,Gpwd 是用户进行登录时的登录密码。Gname 用以标记管理员的名字以及Gsex 管理员的性别。各实体以及它们之间的联系如下图所示:提 交完 成0,n0,n0,n0,n0,n0,nCKCnoCnameCcapityCharacters (10)Characters (10)Characters (10)Identifier_1. KHKnoKnameKsexKtelKadrKID
5、Characters (10)Characters (10)Characters (10)Characters (50)Characters (50)Characters (20)Identifier_1. YGYnoYnameYsexYtelYjobCharacters (10)Characters (10)Characters (10)Characters (20)Characters (10)Identifier_1. SHRSHnoSHnameSHsexSHtelSHadrCharacters (10)Characters (10)Characters (10)Characters (
6、20)Characters (20)Identifier_1. HWHWnoHWnameHWnumHWTtypeHWweightCharacters (10)Characters (10)Characters (10)Characters (10)Characters (10)Identifier_1. HDHnoHnameCashCharacters (10)Characters (10)Characters (10)Identifier_1. CCCCtimeCCnumCCoutdateCCoutnumCCnoDateCharacters (10)DateCharacters (10)Ch
7、aracters (10) TranoAcotimeSendtimeHWnameHow.DateDateCharacters (10)Characters (10)以上 E-R 图中,各实体之间的联系如上图所示,然后每个属性的含义如下面逻辑结构中表所示。SHR 表记录的是收货人的情况,其中 SHno 是收货人的标号,用以唯一标示一个收货人,其中标记了收货人姓名,性别,电话以及地址。CK 记录的是仓库的情况,其中记录了该仓库的以存储数量和仓库总容量。YG 表存储的是该物流公司员工的信息,Yno 是该表的主码,其中记录了员工姓名,性别,电话号码以及员工职务。KH 记录的是该物流公司的客户。Kno
8、是客户的主码,表中主要记录客户姓名,性别,电话号码,地质以及该客户的身份证号。HW 记录的是存在于该物流公司的货物,Hno 是货物的主码。记录了货物名称,数量,类型以及重量。还有一个由客户提交由员工处理的 HD,Hno是他的唯一标示。其中记录了此次货单名称以及应付金额。以上模型的正确性已由 powerdesigner 验证,验证结果如下:二、 逻辑结构设计(1)模式设计: 在该系统中用到的关系模式如下所示(其中主码加下划线表示,外码用斜体表示):GLY( Gno,Gname,Gsex,Gpwd);KH(Kno,Kname,Ksex,Ktel,Kadr,KID);YG(Yno,Yname,Yte
9、l,Ysex,Yjob);HW(HWno,Hname,Htype,Hnum,Hweight);SHR(SHno,SHname,SHsex,SHtel,SHadr);CK(Cno,Cname,Ccapity);HD(Hno,Hname,Cash,SHno,Kno,Yno,HWno);CC(CCno,CCtime,CCnum,CCoutdate,CCoutnum,Yno,Cno,HWno);Transport(Trano,Acptime,Sendtime,HWname,How,SHno,Yno,Cno);GLY 表:(管理员)属性名 存储代码类型 长度 备注管理员编号Gno char 10管理员编
10、号,主码姓名 Gname char 20管理员姓名性别 Gsex char 2 管理员性别(男、女)密码 Gpwd char 10管理员密码KH 表:(客户)属性名 存储代码类型 长度 备注客户编号Kno char 10 客户编号,主码姓名 Kname char 20 姓名性别 Ksex char 2 性别(男、女)电话 Ktel char 20 电话号码地址 Kadr char 20 客户地址身份证号KID char 30 客户身份证号YG 表:(员工)属性名 存储代码类型 长度 备注员工编号Yno char 10员工编号,主码姓名 Yname char 20姓名性别 Ysex char 2
11、 性别(男、女)电话 Ytel char 20电话号码职务 Yjob char 10员工职务HW 表:(货物)属性名 存储代 类型 长度 备注码货物编号HWno char 10货物编号,主码名称 HWname char 20货物名称类型 HWdept char 2 货物类型数量 HWnum char 20货物数量重量 HWweightchar 20货物重量SHR 表:(收货人)属性名 存储代码类型 长度 备注收货人编号SHno char 10收货人编号,主码姓名 SHnamechar 20收货人姓名性别 SHsex char 2 性别(男、女)电话 GSHel char 20电话号码地址 SH
12、adr char 20收货人地址CK 表:(仓库)属性名 存储代码类型 长度 备注仓库编号Cno char 10仓库编号,主码名称 Cname char 20仓库名称容量 Ccapitychar 20仓库容量HD 表:(货单)属性名 存储代码类型 长度 备注货单编号Hno char 10货单编号,主码名称 Hname char 20货单名称运费总价Cost char 10运费收货人编号SHno char 10外码客户编号Kno char 10外码员工编号Yno char 10外码货物编号HWno char 10外码CC 表:(存储)属性名 存储代码类型 长度 备注存储编号Hno char 10
13、存储编号,主码入库时间Hname char 20入库时间入库数量Cost char 10入库数量出库时间SHno char 20出库使劲出库数量Kno char 10出库数量员工编号Yno char 10外码货物编号HWno char 10外码仓库编号Cno Char 10外码Transport 表:(配送)属性名 存储代码类型 长度 备注配送编 Hno char 10配送编号,主码号接货时间Acptimechar 20接货时间发货时间Sendtimechar 20发货时间名称 Tname char 10名称配送方式How char 10配送方式收货人编号SHno char 10外码员工编号Y
14、no char 10外码仓库编号Cno Char 10外码数据字典如下:1.数据项名:员工编号 数据项含义说明:公司员工编号别名:Yno数据类型:char长度:102.数据项名:员工姓名 数据项含义说明:公司员工姓名别名:Yname数据类型:char长度:10取值范围:0-103.数据项名:员工性别 数据项含义说明:公司员工性别别名:Ysex数据类型:char长度:10取值范围:0-104.数据项名:员工职位 数据项含义说明:公司员工在公司所担任的职务别名:Yjob数据类型:char长度:10取值范围:0-105.数据项名:电话号码数据项含义说明:公司员工的联系方式别名:Ytel数据类型:ch
15、ar长度:106.数据项名:管理员密码数据项含义说明:公司管理员的登录密码别名:Gpwd数据类型:Varchar(12)长度:12取值范围:0-127.数据项名:管理员名字数据项含义说明:公司员工的权限别名:Gname数据类型:Varchar10)长度:10取值范围:0-10;8. 数据项名:管理员编号数据项含义说明:公司管理员用于登陆的用户名别名: Gno数据类型:char长度:109. 数据项名:性别 数据项含义说明:管理员性别 别名: Gsex数据类型:char长度:210.数据项名:客户编号 数据项含义说明:公司客户编号别名:Kno数据类型:char长度:1011.数据项名:客户姓名
16、数据项含义说明:公司客户姓名别名:Kname数据类型:char长度:10取值范围:0-1012.数据项名:客户性别 数据项含义说明:公司客户性别别名:Ksex数据类型:char长度:10取值范围:0-1013.数据项名:电话号码数据项含义说明:公司客户的联系方式别名:Ktel数据类型:char长度:1014.数据项名: 地址数据项含义说明: 公司客户地址别名: Kadr数据类型:char长度: 1015. 数据项名:身份证号 数据项含义说明: 客户的身份证号别名: KID数据类型:char 长度:2016.数据项名:货物编号数据项含义说明:货物的标号 别名: HWno数据类型: char长度:
17、1017. 数据项名:名称 数据项含义说明:货物名称 别名: HWname数据类型: char长度:1018. 数据项名: 类型数据项含义说明:货物类型 别名: Htype数据类型: char长度:1019. 数据项名: 数量数据项含义说明: 该货物目前还有数量别名: HWnum数据类型:char 长度:1020. 数据项名:重量 数据项含义说明: 该货物单件重量别名: Hweight数据类型: int长度:821.数据项名:收货人编号 数据项含义说明:收货人编号别名:SHno数据类型:char长度:1022.数据项名:收货人姓名 数据项含义说明:收货人姓名别名:SHname数据类型:char
18、长度:10取值范围:0-1023.数据项名:性别 数据项含义说明:收货人性别别名:SHsex数据类型:char长度:10取值范围:0-1024.数据项名:电话号码数据项含义说明:收货人的联系方式别名:SHtel数据类型:char长度:1025.数据项名: 地址数据项含义说明: 收货人地址别名: SHadr数据类型:char长度: 1026. 数据项名: 编号数据项含义说明: 仓库编号别名: Cno数据类型:char 长度:1027. 数据项名: 名称数据项含义说明: 仓库名称别名: Cname数据类型: char长度:1028. 数据项名:容量数据项含义说明: 仓库容量别名:Ccapity 数
19、据类型: int长度:1629. 数据项名: 货单编号数据项含义说明: 货单编号别名: Hno数据类型:char 长度:1030. 数据项名: 名称数据项含义说明: 货单名称别名: Hname数据类型: char长度:1031. 数据项名:数量数据项含义说明:货单上货物的数量别名: Hnum数据类型: int32. 数据项名: 运费总价数据项含义说明: 运费的价格别名: Cash数据类型: int33. 数据项名: 存储编号数据项含义说明: 存储编号别名: CCno数据类型:char 长度:1034. 数据项名: 入库时间 数据项含义说明: 存入仓库的时间别名: CCtime数据类型:data
20、 35. 数据项名: 出库时间 数据项含义说明: 取出仓库的时间别名: CCouttime数据类型:data 36. 数据项名: 入库数量数据项含义说明: 存入仓库的数量别名: CCnum数据类型:int37. 数据项名: 出库数量数据项含义说明: 取出的数量别名: CCoutnum数据类型:int38. 数据项名: 配送编号 数据项含义说明:此次配送的编号 别名: Trano数据类型:char长度:1039. 数据项名:名称数据项含义说明:配送的名称别名:Traname数据类型:char长度:1040:数据项名: 接收时间数据项含义说明: 接收货物的时间别名: Acptime数据类型: da
21、te41. 数据项名:发送时间数据项含义说明: 发送货物的时间别名: Sendtime数据类型: date42. 数据项名: 配送方式数据项含义说明: 以什么样的方式配送别名: How数据类型:char长度:10(2)子模式设计: 针对于查询模块来说,本应建立索引然后可以快速查询,但是由于此次系统查询的模块是分为几个模块来进行查询的,分为客户,员工,货单,货物,收货人这些分开进行查询,所以查询的数据量不是很大,所以为建立任何索引。但是也并不拖慢查询速度。(3)画出系统功能模块图,并对各功能模块进行简单介绍。登录进入该系统过后,可以选择相应的功能。主界面如下:点击系统管理实现两个功能,一个是退出
22、该系统,另一个是重新登录。选择不同的选项会有不同的功能,具体选择如图所示:进入相应的功能模块后,如果是该系统的主要功能,都会弹出相应的窗体,在该窗体上,可以对相应的信息进行查询,添加,修改以及删除。如查询客户信息窗体如下:三、 数据库的物理设计由概念模型导出来的物理模型如下图所示:CKCnoCnameCcapitychar(10)char(10)char(10)KHKnoKnameKsexKtelKadrKID.char(10)char(10)char(10)char(50)char(50)char(20)YGYnoYnameYsexYtelYjob.char(10)char(10)char(
23、10)char(20)char(10)SHRSHnoSHnameSHsexSHtelSHadr.char(10)char(10)char(10)char(20)char(20)HWHWnoHWnameHWnumHWTtypeHWweight.char(10)char(10)char(10)char(10)char(10)HDHnoYnoKnoHnameCash.char(10)char(10)char(10)char(10)char(10)CCCnoHWnoYnoCCtimeCCnumCCoutdateCCoutnumCCno.char(10)char(10)char(10)datetimec
24、har(10)datetimechar(10)char(10)TranoSHnoYnoCnoAcotimeSendtimeHWnameHowTrano.char(10)char(10)char(10)datetimedatetimechar(10)char(10)character varying(10)由于表中数据不多,所以并未建立索引。以后如果是数据量过大的时候可以建立索引。五、数据库设计实现及运行(1)数据库的创建T-SQL 语句:数据库建立语句:(2)数据表的创建(可同时在创建时定义相关的约束)T-SQL 语句:管理员表的建立语句:客户表的建立语句:员工表额建立语句:货物表的建立语句:
25、收货人表的建立语句:仓库表的建立语句:货单表的建立语句:存储表的建立语句:配送表的建立语句:4.功能模块。1.登录模块:该模块主要实现对该系统用户权限的管理,只有有资格进入该系统的管理员才有资格对该系统进行管理。2.主界面模块:该模块主要用于在用户进入系统过后,提供给用户该系统自身的功能选择。用户选择相应功能过后系统便会进入相应模块,该模块与数据库没有连接。3.由于我们默认允许进入该系统的所有用户具有全部权限,可以对所有数据进行操作,所以未建立视图保护。4.模块功能简介及其核心代码。1.存储信息管理模块:用户通过该界面可以实现对存储信息的查询,存储信息添加,存储信息修改以及存储信息的删除。同时
26、对存储信息查询的时候信息会通过 datagridview 显示给用户。核心代码如下:Tdatabase database=new Tdatabase(“server=localhost;database=Transport;uid=sa;pwd=123“);private void button1_Click(object sender, EventArgs e)DataTable dt = database.f_查询(“select * from CC“);dataGridView1.DataSource = dt;private void button4_Click(object send
27、er, EventArgs e)int i = database.f_更新(“insert into CC(CCno,CCtime,CCnum,CCoutdate,CCoutnum,Yno,Cno,HWno) values(“ + textBox1.Text + “,“ + textBox2.Text + “,“ + textBox3.Text + “,“ + textBox4.Text + “,“ + textBox5.Text + “,“ + textBox6.Text + “,“ + textBox7.Text + “,“ + textBox8.Text + “)“);if(i0)Mes
28、sageBox.Show(“数据添加成功!“);private void button6_Click(object sender, EventArgs e)int i = database.f_更新(“update CC set CCtime= “ + textBox10.Text.Trim() + “,CCnum= “ + textBox11.Text.Trim() + “,CCoutdate= “ + textBox12.Text.Trim() + “,CCoutnum= “ + textBox13.Text.Trim() + “,Yno= “ + textBox14.Text.Trim() + “,Cno= “ + textBox15.Text.Trim() + “,HWno= “ + textBox16.Text.Trim() + “ where CCno=“ + textBox9.Text.Trim() + “);if(i0)MessageBox.Show(“数据修改成功!“);