1、数据库原理课程设计报告题目物流公司管理系统学生姓名组员学号班级院系计算机科学与信息学院专业年级计算机科学与技术2010级2013年1月10日一、需求分析在经济日益发展的今天,生活节奏越来越快,所以迎来了电子信息时代。于此同时,电子商务行业也如火如荼发展起来,ONLINESHOPPING也越来越普及。这就又带动一个行业的发展,物流。要适应时代的发展,物流公司必须得有一套自己的管理方案以便跟上时代的快节奏。针对这个,我们便模拟开发一个物流公司管理系统。在该系统中,我们提供如下功能,用户登录该系统过后,便可以对信息进行操作。用户登录GLYGNOGNAMEGSEXGPWDBYTE10CHARACTER
2、S10CHARACTERS10CHARACTERS50IDENTIFIER_1该功能要求在数据库当中有管理员的用户名与密码的存储。用户通过输入GNO和相应的GPWD,然后系统会与数据库中的数据进行比较,若输入正确,则登陆成功。否则提示信息错误。对信息的查询。实现对客户信息,员工信息,仓库信息,收货人信息,存储信息,配送信息,货单信息的查询。这时候需要在数据库中存储相应的表用以记录这些信息。与此同时还提供对以上信息的查询,添加,修改以及删除功能。以上操作会同时影响数据库里面的数据。业务流程图如下所示功能选择查询添加删除修改以上的查询以及增删改都有针对每类信息。客户信息增删改以及查询的流程图如下所
3、示查询查询删除修改查询添加数据库录入客户信息修改客户信息查询客户信息删除客户信息货物信息的操作流程图如下所示查询查询删除修改查询添加数据库录入货物信息修改货物信息查询货物信息删除货物信息其他信息的操作流程图和以上两种类似。3只有该系统的管理员才可以对该系统的信息进行查询以及增删改。另外实体内有外码的必须满足参照完整性。二、概念结构设计管理员表的结构设计如下GLYGNOGNAMEGSEXGPWDBYTE10CHARACTERS10CHARACTERS10CHARACTERS50IDENTIFIER_1该实体GNO是用户进行登陆时的用户名,GPWD是用户进行登录时的登录密码。GNAME用以标记管理
4、员的名字以及GSEX管理员的性别。各实体以及它们之间的联系如下图所示提交完成0,N0,N0,N0,N0,N0,NCKCNOCNAMECCAPITYCHARACTERS10CHARACTERS10CHARACTERS10IDENTIFIER_1KHKNOKNAMEKSEXKTELKADRKIDCHARACTERS10CHARACTERS10CHARACTERS10CHARACTERS50CHARACTERS50CHARACTERS20IDENTIFIER_1YGYNOYNAMEYSEXYTELYJOBCHARACTERS10CHARACTERS10CHARACTERS10CHARACTERS20
5、CHARACTERS10IDENTIFIER_1SHRSHNOSHNAMESHSEXSHTELSHADRCHARACTERS10CHARACTERS10CHARACTERS10CHARACTERS20CHARACTERS20IDENTIFIER_1HWHWNOHWNAMEHWNUMHWTTYPEHWWEIGHTCHARACTERS10CHARACTERS10CHARACTERS10CHARACTERS10CHARACTERS10IDENTIFIER_1HDHNOHNAMECASHCHARACTERS10CHARACTERS10CHARACTERS10IDENTIFIER_1CCCCTIMECC
6、NUMCCOUTDATECCOUTNUMCCNODATECHARACTERS10DATECHARACTERS10CHARACTERS10TRANOACOTIMESENDTIMEHWNAMEHOWDATEDATECHARACTERS10CHARACTERS10以上ER图中,各实体之间的联系如上图所示,然后每个属性的含义如下面逻辑结构中表所示。SHR表记录的是收货人的情况,其中SHNO是收货人的标号,用以唯一标示一个收货人,其中标记了收货人姓名,性别,电话以及地址。CK记录的是仓库的情况,其中记录了该仓库的以存储数量和仓库总容量。YG表存储的是该物流公司员工的信息,YNO是该表的主码,其中记录了员
7、工姓名,性别,电话号码以及员工职务。KH记录的是该物流公司的客户。KNO是客户的主码,表中主要记录客户姓名,性别,电话号码,地质以及该客户的身份证号。HW记录的是存在于该物流公司的货物,HNO是货物的主码。记录了货物名称,数量,类型以及重量。还有一个由客户提交由员工处理的HD,HNO是他的唯一标示。其中记录了此次货单名称以及应付金额。以上模型的正确性已由POWERDESIGNER验证,验证结果如下二、逻辑结构设计(1)模式设计在该系统中用到的关系模式如下所示(其中主码加下划线表示,外码用斜体表示)GLY(GNO,GNAME,GSEX,GPWD)KHKNO,KNAME,KSEX,KTEL,KAD
8、R,KIDYGYNO,YNAME,YTEL,YSEX,YJOBHWHWNO,HNAME,HTYPE,HNUM,HWEIGHTSHRSHNO,SHNAME,SHSEX,SHTEL,SHADRCKCNO,CNAME,CCAPITYHDHNO,HNAME,CASH,SHNO,KNO,YNO,HWNOCCCCNO,CCTIME,CCNUM,CCOUTDATE,CCOUTNUM,YNO,CNO,HWNOTRANSPORTTRANO,ACPTIME,SENDTIME,HWNAME,HOW,SHNO,YNO,CNOGLY表(管理员)属性名存储代码类型长度备注管理员编号GNOCHAR10管理员编号,主码姓名G
9、NAMECHAR20管理员姓名性别GSEXCHAR2管理员性别(男、女)密码GPWDCHAR10管理员密码KH表(客户)属性名存储代码类型长度备注客户编号KNOCHAR10客户编号,主码姓名KNAMECHAR20姓名性别KSEXCHAR2性别(男、女)电话KTELCHAR20电话号码地址KADRCHAR20客户地址身份证号KIDCHAR30客户身份证号YG表(员工)属性名存储代码类型长度备注员工编号YNOCHAR10员工编号,主码姓名YNAMECHAR20姓名性别YSEXCHAR2性别(男、女)电话YTELCHAR20电话号码职务YJOBCHAR10员工职务HW表(货物)属性名存储代码类型长度
10、备注货物编号HWNOCHAR10货物编号,主码名称HWNAMECHAR20货物名称类型HWDEPTCHAR2货物类型数量HWNUMCHAR20货物数量重量HWWEIGHTCHAR20货物重量SHR表(收货人)属性名存储代码类型长度备注收货人编号SHNOCHAR10收货人编号,主码姓名SHNAMECHAR20收货人姓名性别SHSEXCHAR2性别(男、女)电话GSHELCHAR20电话号码地址SHADRCHAR20收货人地址CK表(仓库)属性名存储代类型长度备注码仓库编号CNOCHAR10仓库编号,主码名称CNAMECHAR20仓库名称容量CCAPITYCHAR20仓库容量HD表(货单)属性名存
11、储代码类型长度备注货单编号HNOCHAR10货单编号,主码名称HNAMECHAR20货单名称运费总价COSTCHAR10运费收货人编号SHNOCHAR10外码客户编号KNOCHAR10外码员工编号YNOCHAR10外码货物编HWNOCHAR10外码号CC表(存储)属性名存储代码类型长度备注存储编号HNOCHAR10存储编号,主码入库时间HNAMECHAR20入库时间入库数量COSTCHAR10入库数量出库时间SHNOCHAR20出库使劲出库数量KNOCHAR10出库数量员工编号YNOCHAR10外码货物编号HWNOCHAR10外码仓库编号CNOCHAR10外码TRANSPORT表(配送)属性名
12、存储代码类型长度备注配送编号HNOCHAR10配送编号,主码接货时间ACPTIMECHAR20接货时间发货时间SENDTIMECHAR20发货时间名称TNAMECHAR10名称配送方式HOWCHAR10配送方式收货人编号SHNOCHAR10外码员工编号YNOCHAR10外码仓库编号CNOCHAR10外码数据字典如下1数据项名员工编号数据项含义说明公司员工编号别名YNO数据类型CHAR长度102数据项名员工姓名数据项含义说明公司员工姓名别名YNAME数据类型CHAR长度10取值范围0103数据项名员工性别数据项含义说明公司员工性别别名YSEX数据类型CHAR长度10取值范围0104数据项名员工职
13、位数据项含义说明公司员工在公司所担任的职务别名YJOB数据类型CHAR长度10取值范围0105数据项名电话号码数据项含义说明公司员工的联系方式别名YTEL数据类型CHAR长度106数据项名管理员密码数据项含义说明公司管理员的登录密码别名GPWD数据类型VARCHAR12长度12取值范围0127数据项名管理员名字数据项含义说明公司员工的权限别名GNAME数据类型VARCHAR10长度10取值范围0108数据项名管理员编号数据项含义说明公司管理员用于登陆的用户名别名GNO数据类型CHAR长度109数据项名性别数据项含义说明管理员性别别名GSEX数据类型CHAR长度210数据项名客户编号数据项含义说
14、明公司客户编号别名KNO数据类型CHAR长度1011数据项名客户姓名数据项含义说明公司客户姓名别名KNAME数据类型CHAR长度10取值范围01012数据项名客户性别数据项含义说明公司客户性别别名KSEX数据类型CHAR长度10取值范围01013数据项名电话号码数据项含义说明公司客户的联系方式别名KTEL数据类型CHAR长度1014数据项名地址数据项含义说明公司客户地址别名KADR数据类型CHAR长度1015数据项名身份证号数据项含义说明客户的身份证号别名KID数据类型CHAR长度2016数据项名货物编号数据项含义说明货物的标号别名HWNO数据类型CHAR长度1017数据项名名称数据项含义说明
15、货物名称别名HWNAME数据类型CHAR长度1018数据项名类型数据项含义说明货物类型别名HTYPE数据类型CHAR长度1019数据项名数量数据项含义说明该货物目前还有数量别名HWNUM数据类型CHAR长度1020数据项名重量数据项含义说明该货物单件重量别名HWEIGHT数据类型INT长度821数据项名收货人编号数据项含义说明收货人编号别名SHNO数据类型CHAR长度1022数据项名收货人姓名数据项含义说明收货人姓名别名SHNAME数据类型CHAR长度10取值范围01023数据项名性别数据项含义说明收货人性别别名SHSEX数据类型CHAR长度10取值范围01024数据项名电话号码数据项含义说明
16、收货人的联系方式别名SHTEL数据类型CHAR长度1025数据项名地址数据项含义说明收货人地址别名SHADR数据类型CHAR长度1026数据项名编号数据项含义说明仓库编号别名CNO数据类型CHAR长度1027数据项名名称数据项含义说明仓库名称别名CNAME数据类型CHAR长度1028数据项名容量数据项含义说明仓库容量别名CCAPITY数据类型INT长度1629数据项名货单编号数据项含义说明货单编号别名HNO数据类型CHAR长度1030数据项名名称数据项含义说明货单名称别名HNAME数据类型CHAR长度1031数据项名数量数据项含义说明货单上货物的数量别名HNUM数据类型INT32数据项名运费总
17、价数据项含义说明运费的价格别名CASH数据类型INT33数据项名存储编号数据项含义说明存储编号别名CCNO数据类型CHAR长度1034数据项名入库时间数据项含义说明存入仓库的时间别名CCTIME数据类型DATA35数据项名出库时间数据项含义说明取出仓库的时间别名CCOUTTIME数据类型DATA36数据项名入库数量数据项含义说明存入仓库的数量别名CCNUM数据类型INT37数据项名出库数量数据项含义说明取出的数量别名CCOUTNUM数据类型INT38数据项名配送编号数据项含义说明此次配送的编号别名TRANO数据类型CHAR长度1039数据项名名称数据项含义说明配送的名称别名TRANAME数据类
18、型CHAR长度1040数据项名接收时间数据项含义说明接收货物的时间别名ACPTIME数据类型DATE41数据项名发送时间数据项含义说明发送货物的时间别名SENDTIME数据类型DATE42数据项名配送方式数据项含义说明以什么样的方式配送别名HOW数据类型CHAR长度10(2)子模式设计针对于查询模块来说,本应建立索引然后可以快速查询,但是由于此次系统查询的模块是分为几个模块来进行查询的,分为客户,员工,货单,货物,收货人这些分开进行查询,所以查询的数据量不是很大,所以为建立任何索引。但是也并不拖慢查询速度。(3)画出系统功能模块图,并对各功能模块进行简单介绍。登录进入该系统过后,可以选择相应的
19、功能。主界面如下点击系统管理实现两个功能,一个是退出该系统,另一个是重新登录。选择不同的选项会有不同的功能,具体选择如图所示进入相应的功能模块后,如果是该系统的主要功能,都会弹出相应的窗体,在该窗体上,可以对相应的信息进行查询,添加,修改以及删除。如查询客户信息窗体如下三、数据库的物理设计由概念模型导出来的物理模型如下图所示CKCNOCNAMECCAPITYCHAR10CHAR10CHAR10KHKNOKNAMEKSEXKTELKADRKIDCHAR10CHAR10CHAR10CHAR50CHAR50CHAR20YGYNOYNAMEYSEXYTELYJOBCHAR10CHAR10CHAR10C
20、HAR20CHAR10SHRSHNOSHNAMESHSEXSHTELSHADRCHAR10CHAR10CHAR10CHAR20CHAR20HWHWNOHWNAMEHWNUMHWTTYPEHWWEIGHTCHAR10CHAR10CHAR10CHAR10CHAR10HDHNOYNOKNOHNAMECASHCHAR10CHAR10CHAR10CHAR10CHAR10CCCNOHWNOYNOCCTIMECCNUMCCOUTDATECCOUTNUMCCNOCHAR10CHAR10CHAR10DATETIMECHAR10DATETIMECHAR10CHAR10TRANOSHNOYNOCNOACOTIMES
21、ENDTIMEHWNAMEHOWTRANOCHAR10CHAR10CHAR10DATETIMEDATETIMECHAR10CHAR10CHARACTERVARYING10由于表中数据不多,所以并未建立索引。以后如果是数据量过大的时候可以建立索引。五、数据库设计实现及运行(1)数据库的创建TSQL语句数据库建立语句(2)数据表的创建(可同时在创建时定义相关的约束)TSQL语句管理员表的建立语句客户表的建立语句员工表额建立语句货物表的建立语句收货人表的建立语句仓库表的建立语句货单表的建立语句存储表的建立语句配送表的建立语句4功能模块。1登录模块该模块主要实现对该系统用户权限的管理,只有有资格进入该
22、系统的管理员才有资格对该系统进行管理。2主界面模块该模块主要用于在用户进入系统过后,提供给用户该系统自身的功能选择。用户选择相应功能过后系统便会进入相应模块,该模块与数据库没有连接。3由于我们默认允许进入该系统的所有用户具有全部权限,可以对所有数据进行操作,所以未建立视图保护。4模块功能简介及其核心代码。1存储信息管理模块用户通过该界面可以实现对存储信息的查询,存储信息添加,存储信息修改以及存储信息的删除。同时对存储信息查询的时候信息会通过DATAGRIDVIEW显示给用户。核心代码如下TDATABASEDATABASENEWTDATABASE“SERVERLOCALHOSTDATABASET
23、RANSPORTUIDSAPWD123“PRIVATEVOIDBUTTON1_CLICKOBJECTSENDER,EVENTARGSEDATATABLEDTDATABASEF_查询“SELECTFROMCC“DATAGRIDVIEW1DATASOURCEDTPRIVATEVOIDBUTTON4_CLICKOBJECTSENDER,EVENTARGSEINTIDATABASEF_更新“INSERTINTOCCCCNO,CCTIME,CCNUM,CCOUTDATE,CCOUTNUM,YNO,CNO,HWNOVALUES“TEXTBOX1TEXT“,“TEXTBOX2TEXT“,“TEXTBOX3T
24、EXT“,“TEXTBOX4TEXT“,“TEXTBOX5TEXT“,“TEXTBOX6TEXT“,“TEXTBOX7TEXT“,“TEXTBOX8TEXT“IFI0MESSAGEBOXSHOW“数据添加成功“PRIVATEVOIDBUTTON6_CLICKOBJECTSENDER,EVENTARGSEINTIDATABASEF_更新“UPDATECCSETCCTIME“TEXTBOX10TEXTTRIM“,CCNUM“TEXTBOX11TEXTTRIM“,CCOUTDATE“TEXTBOX12TEXTTRIM“,CCOUTNUM“TEXTBOX13TEXTTRIM“,YNO“TEXTBOX1
25、4TEXTTRIM“,CNO“TEXTBOX15TEXTTRIM“,HWNO“TEXTBOX16TEXTTRIM“WHERECCNO“TEXTBOX9TEXTTRIM“IFI0MESSAGEBOXSHOW“数据修改成功“PRIVATEVOIDBUTTON8_CLICKOBJECTSENDER,EVENTARGSEINTIDATABASEF_更新“DELETEFROMCCWHERECCNO“TEXTBOX17TEXTTRIM“IFI0MESSAGEBOXSHOW“删除成功“2货单信息管理模块用户通过该界面可以实现对货单信息的查询,货单信息添加,货单信息修改以及货单信息的删除。同时对货单信息查询的
26、时候信息会通过DATAGRIDVIEW显示给用户。其中查询的时候并不是通过单表查询,在此次查询中,我们提供给用户的主要有货单号,客户名,货物名,员工名,收货人名给用户。核心代码如下TDATABASEDATABASENEWTDATABASE“SERVERLOCALHOSTDATABASETRANSPORTUIDSAPWD123“PRIVATEVOIDBUTTON1_CLICKOBJECTSENDER,EVENTARGSEDATATABLEDTDATABASEF_查询“SELECTHNO,KNAME,YNAME,HWNAME,SHNAMEFROMHD,KH,YG,HW,SHRWHEREHDYNOY
27、GYNOANDHDKNOKHKNOANDHDHWNOHWHWNOANDHDSHNOSHRSHNO“DATAGRIDVIEW1DATASOURCEDTPRIVATEVOIDBUTTON4_CLICKOBJECTSENDER,EVENTARGSEINTIDATABASEF_更新“INSERTINTOHDHNO,HNAME,CASH,SHNO,KNO,YNO,HWNOVALUES“TEXTBOX1TEXT“,“TEXTBOX2TEXT“,“TEXTBOX3TEXT“,“TEXTBOX4TEXT“,“TEXTBOX5TEXT“,“TEXTBOX6TEXT“,“TEXTBOX7TEXT“IFI0MESS
28、AGEBOXSHOW“数据添加成功“PRIVATEVOIDBUTTON6_CLICKOBJECTSENDER,EVENTARGSEINTIDATABASEF_更新“UPDATEHDSETHNAME“TEXTBOX9TEXTTRIM“,CASH“TEXTBOX10TEXTTRIM“,SHNO“TEXTBOX11TEXTTRIM“,KNO“TEXTBOX12TEXTTRIM“,YNO“TEXTBOX13TEXTTRIM“,HWNO“TEXTBOX14TEXTTRIM“WHEREHNO“TEXTBOX8TEXTTRIM“IFI0MESSAGEBOXSHOW“数据修改成功“注(其余功能由同班樊涛同学完
29、成【上一条】【下一条】的代码PRIVATEVOIDBTN_UP_CLICKOBJECTSENDER,EVENTARGSEIFTHISDATAGRIDVIEW1CURRENTCELLROWINDEX0THISDATAGRIDVIEW1CURRENTCELLTHISDATAGRIDVIEW1THISDATAGRIDVIEW1CURRENTCELLCOLUMNINDEX,THISDATAGRIDVIEW1CURRENTCELLROWINDEX1PRIVATEVOIDBTN_DOWN_CLICKOBJECTSENDER,EVENTARGSEIFTHISDATAGRIDVIEW1CURRENTCELLR
30、OWINDEXTHISDATAGRIDVIEW1ROWCOUNT1THISDATAGRIDVIEW1CURRENTCELLTHISDATAGRIDVIEW1THISDATAGRIDVIEW1CURRENTCELLCOLUMNINDEX,THISDATAGRIDVIEW1CURRENTCELLROWINDEX1,以及TDATABASE类代码如下CLASSTDATABASEPRIVATESQLCONNECTIONCONPUBLICTDATABASESTRINGSTR_连接字符串CONNEWSQLCONNECTIONSTR_连接字符串PUBLICDATATABLEF_查询STRINGSQLCONOP
31、ENSQLDATAADAPTERSDANEWSQLDATAADAPTERSQL,CONDATATABLEDTNEWDATATABLESDAFILLDTCONCLOSERETURNDTPUBLICINTF_统计数据STRINGSQLCONOPENSQLCOMMANDCOMNEWSQLCOMMANDSQL,CONINTTINTCOMEXECUTESCALARCONCLOSERETURNTPUBLICINTF_更新STRINGSQLCONOPENSQLCOMMANDCOMNEWSQLCOMMANDSQL,CONINTTCOMEXECUTENONQUERYCONCLOSERETURNT)六、课程设计心
32、得通过这次课程设计,主要由我负责后台部分,后台部分因为该系统模型事先和同伴有所商量,所以并不十分复杂。但是在POWERDESIGNER里面画ER图的时候,由于首次使用该软件,所以遇见的困难并不少。在概念模型建立过程中,有一个较深的体会就是此次打破以往构建数据库的传统,这次先构建概念模型,然后再到处物理模型。那么构造的的物理模型能否直接导出我们所期待的物理模型这就和我们对实体与实体之间联系的类型有关了。而且概念模型也必须通过验证,才能导出物理模型。这让我在学习一新软件的同时又让我对数据库的构建更加规范化了。其次,这次对命名方式这个东西也有较深的体会。因为我们组员之间是事先有过协商,对表中的字段该怎样命名,所以后台搭建好过后,负责前台的同伴在进行工作的时候减少了不少工作量。总的来说,这次课程设计让我学会不少,虽说在该系统中还存在不足,但是我们也努力做到了最好。