大连海事大学本科生实验报告数据库原理-操作实训院(系):交通运输管理学院专业:电子商务课程名称:数据库原理学号:2220113494学生:周慧敏任课教师:贺琳完成日期:2013年12月1.实验目的掌握数据库模式设计,依据实际要求设计表结构,建立表的关系;结合一定的开发工具实现数据库应用程序的开发。2.实验环境2.1硬件环境:处理器:Intel(R)Core(TM)i3CPUM380@2.53GHz2.53GHz安装内存:(RAM):2GB(1.86GB可用)2.2软件环境操作系统:Windows7数据库管理系统:微软公司的SQLServer2005开发工具:Eclipse3.需求分析销售管理系统,可用于企业的销售信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成销售信息的添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:1.用户登陆界面。该界面可以选择使用者的身份,“系统管理员,基本档案管理员,业务员”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。2.系统管理员界面,拥有最高权限。提供了客户信息管理、产品信息管理、订单信息管理、发货管理与签收管理等功能。3.基本档案管理员界面。提供了客户信息管理、产品信息管理等功能。4.业务员界面。提供了订单信息管理、发货管理与签收管理等功能。5.登录的用户信息分别存储在SQL数据库的“unpw表”中,如果用户信息不存在这个表中,将会无权利登录本管理系统。6.保证了本销售管理系统的安全性。系统功能图如下:4.概念结构设计根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为客户信息实体,产品信息实体,订单信息实体,发货单实体,签收单实体。1:客户信息实体客户信息实体包括客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域等属性。客户信息实体的E-R图如图所示。订单管理系统业务员系统管理员基本档案管理员订单信息管理发货管理签收管理客户信息管理产品信息管理订单信息管理发货管理客户信息管理产品信息管理订单信息管理签收管理客户信息客户名称单位地址联系电话地址开户银行银行账号发票抬头所在区域2:发货单实体发货单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等属性,E-R图如图所示。3:签收单实体签收单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等属性,E-R图如图所示。发货单客户名称联系人联系电话发货地址地址产品名称型号数量单价运费总价发货日期签收单客户名称联系人联系电话发货地址地址产品名称型号数量单价运费总价收货日期4:unpw实体unpw实体包括un、pw、qx等属性,E-R图如图所示。5:产品信息实体产品信息实体主要包括产品名称、规格、型号、操作系统、产品描述、产品分类等属性。E-R图如图所示。unpwunpwqx产品信息产品名称规格型号操作系统产品描述产品分类6:订单信息实体订单信息实体主要包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等属性。E-R图如图所示。实体属性表:实体属性客户信息客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域产品信息产品名称、规格、型号、操作系统、产品描述、产品分类订单信息客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求签收单客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期发货单客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期unpw(用户)un(登录名)、pw(密码)、qx(用户)订单信息联系人联系电话发货地址最后到货期限客户名称产品名称型号数量产品要求产品信息产品名称型号规格订单信息产品名称产品要求型号客户信息客户名称产品名称单位地址地址签收单银行账号型号单价数量发票抬头总价发货日期运费发货单开户银行联系电话所在区域操作系统产品描述产品分类数量客户名称发货地址联系电话联系人地址收货日期数量总价运费单价1包含n1签收N1生成111采购n5.逻辑结构设计(1)表-dbo.客户信息(客户信息表)客户信息表包括客户名称、单位地址、联系电话、地址、开户银行、银行帐号、发票抬头、所在区域等信息。(2)表-dbo.产品信息(产品信息表)产品信息表包括产品名称、规格、型号、操作系统、产品描述、产品分类等信息。(3)表-dbo.订单信息(订单信息表)订单信息表包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等信息。(4)表-dbo.发货单信息(发货单表)发货单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等信息。(5)表-dbo.签收单信息(签收单表)签收单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等信息。(6)表-dbo.unpw(用户表)用户表包括un、pw、qx等信息。6.数据库实现(1)数据库关系图(2)SQL语句实现数据表的创建:(i)客户信息表创建:createtable客户信息表(客户名称nchar(10)notnullprimarykey,单位地址nchar(10),联系电话nchar(10),地址nchar(10),开户银行nchar(10),银行账号nchar(10),发票抬头nchar(10),所在区域nchar(10),)(ii)产品信息表创建:createtable产品信息表(产品名称nchar(10)notnullprimarykey,规格nchar(10),型号nchar(10),操作系统nchar(10),产品描述nchar(10),产品分类nchar(10),)(iii)订单信息表创建:createtable订单信息表(客户名称nchar(10)notnullprimarykey,联系人nchar(10),联系电话nchar(10),发货地址nchar(10),最后到货期限nchar(10),产品名称nchar(10),型号nchar(10),数量int,产品要求nchar(10),)(iv)发货单表创建:createtable发货单表(客户名称nchar(10)notnullprimarykey,联系人nchar(10),联系电话nchar(10),发货地址nchar(10),地址nchar(10),产品名称nchar(10),型号nchar(10),数量int,单价int,运费int,总价int,发货日期nchar(10),)(v)收货单表创建:createtable收货单表(客户名称nchar(10)notnullprimarykey,联系人nchar(10),联系电话nchar(10),发货地址nchar(10),地址nchar(10),产品名称nchar(10),型号nchar(10),数量int,单价int,运费int,总价int,收货日期nchar(10),)(vi)管理员信息表创建:createtableunpw表(qxintnotnullprimarykey,unvarchar(12)notnull,pwvarchar(12)notnull)7.应用系统设计实现(1)用户登录模块(2)各用户操作模块(i)系统管理员操作模块(ii)基本档案管理员操作模块(iii)业务员操作模块(3)系统管理员登录在登陆界面选择“系统管理员”角色,输入正确的ID和密码。验证成功则可进入系统管理员管理界面。系统管理员ID号和登录密码存在数据库中的管理员信息表。表中存在的管理员才允许登录。(i)点击客户信息管理,弹出如下界面:(ii)点击显示按钮后,会出现数据库里保存的客户信息:(iii)点击增加按钮,弹出如下界面,输入要增加的客户信息,成功后会弹出增加成功的提示窗口:(iv)增加客户信息成功后客户信息管理界面会增加一行客户信息,如图所示:(v)选中一条客户信息,点击删除按钮,成功后会出现删除成功的提示窗口:(vi)成功删除Tom客户的信息后,客户信息管理界面变化如下:(vii)选中一行客户信息,点击修改按钮,出现如下界面,输入要修改的信息,成功后弹出修改成功的提示窗口:(此处修改了客户Tom的联系电话)(viii)点击查询按钮,弹出如下窗口:在文本框中输入“Hei“,即可查询所在区域为”Hei“的客户信息:其他模块与客户信息管理模块类似,均能实现信息的查询、修改、删除、增加、显示等功能,在此不再赘述;点击退出系统即可完成本次操作。经过系统一系列的增删改查操作之后,sqlsever2005数据库上的客户信息表同时也发生了改变:8.实验总结(实验心得)本次操作实训虽然很辛苦,但实在是受益匪浅。在操作实训过程中碰到了很多问题,刚开始的时候,还真不知道从哪里下手。但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次操作实训我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在实验的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,这次操作实训之后,一定把以前所学过的知识重新温故。通过这次操作实训使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。附录:代码Control.javapackagezhm;publicclassControl{publicstaticvoidmain(String[]args){newDLFrame();}}DLFrame.javapackagezhm;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;publicclassDLFrameextendsJFrameimplementsActionListener,ItemListener{//登录界面privatestaticfinallongserialVersionUID=1L;JPanelp1=null;JPanelp2=null;JPanelp3=null;JLabeluserName=newJLabel(用户:);JTextFieldtxtUser=newJTextField();JLabelpassword=newJLabel(密码:);JPasswordFieldtxtPwd=newJPasswordField(6);JLabelrole=newJLabel(角色:);JComboBoxStringcbrole=newJComboBoxString();JButtonbtnLogin=newJButton(登录);JButtonbtncz=newJButton(重置);JButtonbtnCancel=newJButton(取消);JLabelimageLabel;Iconimage;staticintOK=1;staticintCANCEL=0;intactionCode=0;Connectioncon=null;Statementstmt=null;ResultSetrs=nul