中国石油大学数据库课程设计联系人客户关系管理系统样本.doc
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。数据库课程设计课程名称: 联系人客户关系管理系统 姓 名: 某XX 学 号: 0153247 专 业: 计算机科学与技术 批 次: 春 层 次: 专升本 学习中心: 昌平直属学习中心 12月6日第一章 客户管理系统分析1.1 系统的设计目标系统使用简洁的框架结构, 能够进行客户的查看、 信息录入等操作, 实现客户的管理、 客户的统计分析、 系统维护等模块组成。以及一些常规的设置和数据库管理等操作。1.2 系统的可行性分析1.2.1 用户群体与市场分析 客户管理系统将能为企业实现有效的客户关系管理。 它既是一种国际领先的、 以”客户价值”为中心的企业管理理论、 商业策略和企业运作实践, 也是一种以信息技术为手段、 有效提高企业收益、 客户满意度、 雇员生产力的管理软件。客户管理系统是经过赢得、 发展、 保持有价值的客户, 增加企业收入, 优化盈利性, 提高客户满意度的商务战略。经过获得更多的客户线索、 更广泛地共享客户信息, 协同工作, 增加收益, 提高给客户的价值, 实现企业和客户的"双赢"。企业希望经过客户管理系统能够了解更多的客户的需求, 从而为客户提供个性化的产品和服务, 提高客户满意度, 与此同时也能够获得更大的利润。客户管理系统是一种旨在健全、 改进企业与客户之间关系的新型管理系统。指的是企业利用信息技术, 经过有意义的交流来了解并影响客户的行为, 以提高客户招揽率、 客户保持率、 客户忠诚度和客户收益率。客户管理系统是一种把客户信息转换成良好的客户关系的可重复性过程。利用激励因素来刺激客户进一步消费, 并激发其"感激"心理, 对保持长期的销售和提高客户保持率十分重要。1.2.2 技术能力分析根据本系统的功能需求, 采用JSP与开源的MySQL数据库引擎进行开发。由于JSP技术使用Java编程语言编写类XML的tags和scriptlets, 来封装产生动态网页的处理逻辑。网页还能经过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离, 支持可重用的基于组件的设计, 使基于Web的应用程序的开发变得迅速和容易。而MySQL作为一种快速的、 多线程、 多用户和健壮的SQL数据库服务器, 根据第三方测试结果, 在千万级的数据环境中依然保持较高的执行速度。因此在技术层面上, 是完全可行的。1.2.3 可行性分析总结综合企业用户群体的特点和不断增长的需求, 以及技术、 市场前景趋势等因素, 客户管理的信息化系统有很大的发展前途, 而客户管理系统则是建立在此基础上的, 因此本系统的开发是具有可行性的。1.3 系统设计的特点系统的设计上需要注重安全性和用户操作的流畅性。因此要在对用户的管理和资格审核环节做出限定, 只有经过审核确认的会员才有权使用, 而且需要对管理员进行不同的权限分配。搜索将在系统功能中占据重要的位置, 能够使用多个属性字段进行模糊搜索, 并在搜索结果提供比较的通道。第二章 系统的开发技术及主要构架2.1 开发技术的选择2.1.1 JSP编程技术Java Server Page或简称为JSP是由Sun公司在Java语言上开发出来的一种动态网页制作技术, 它提供了一种建立动态网页的简单方法, 并为开发人员提供了一个Server端框架, 基于这个框架, 开发人员能够综合使用 HTML, XML, JAVA语言以及其它脚本语言, 灵活, 快速地创立和维护动态网页, 特别是当前的商业系统。作为JavaTM 技术的一部分, JSP能够快速的开发出基于所有Web服务器和应用服务器环境, 独立于平台的应用程序, 而且具有非常强的可伸缩性。同时, JSP把用户界面从系统内容中分离开来, 使得设计人员能够在不改变底层动态内容的前提下改变网页布局。JSP编程技术的优势在于: 1. 一次编写, 到处运行。在这一点上Java比PHP更出众, 除了系统之外, 代码不用做任何更改。2. 系统的多平台支持。基本上能够在所有平台上的任意环境中开发, 在任意环境中进行系统部署, 在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 3. 强大的可伸缩性。从只有一个小的Jar文件就能够运行Servlet/JSP, 到由多台服务器进行集群和负载均衡, 到多台Application进行事务处理, 消息处理, 一台服务器到无数台服务器, Java显示了一个巨大的生命力。 4. 多样化和功能强大的开发工具支持。这一点与ASP很像, Java已经有了许多非常优秀的开发工具, 而且许多能够免费得到, 而且其中许多已经能够顺利的运行于多种平台之下。JSP的运行原理: 在JSP第一次获得来自于客户端浏览器的请求时, JSP文件将被JSP引擎( JSP engine) 转换成一个Servlet, 即将”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后, 如果设置了使用最新的JSP, 它就会去找JSP文件, 检查该文件在上次编译后是否改动过。如果改动过, 就会重新编译生成新的Servlet, 最终将请求转交给编译好的Servlet引擎执行。在编译时如果发现JSP文件有任何语法错误, 转换过程将中断, 并向客户端发出出错信息; 如果编译成功, 则所转换产生的Servlet代码被编译, 然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit()方法的执行, 并对此Servlet初始化。JspInit()方法在Servlet的生命周期中只被请求一次, 然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求, 服务器将检查该JSP文件自最后一次被存取后是否经过修改。如果没有修改, 则将请求交还给还在内存中的Servlet的jspService()方法, 执行回复操作。由于Servlet始终驻于内存, 因此响应是非常快的。JSP页面在第一次访问时由于要转化和编译, 运行速度较慢, 可是当第二次访问该页时, 由于文件已经被编译成字节码文件了, 因此速度非常得快。JSP页面的组成: JSP页面看上去像标准的HTML和XML页面, 并附带有JSP引擎能够处理和解析执行的代码与组件。一般, JSP代码和组件用于创立在最终页面上显示的文本。一般来说, JSP页面包括编译指令, 声明, 表示式等内容。(1)编译指令: 使用JSP编译指令( % 和 %内的) 来指定所使用的脚本语言, Servlet实现的接口,Servlet扩展的类,Servlet导入的软件包。JSP指令的一般语法形式为: <% 指令名=”值”%>。 (2)声明: 用于声明合法的变量和方法。与任何语言相同, JSP语言使用变量来保存数据。这些变量用declaration元素声明,声明的语法为<%! declaration(s) %>。当页面被初始化的时候, JSP页面中的所有声明都被初始化。除了简单的变量, 方法也能被声明。声明不对当前的输出流产生任何影响。(3)表示式: 经过计算表示式所得到的结果来表示某个值。表示式的形式为: <%=expression>。表示式求值的结果被强制转换为一个字符串, 并插入到当前的输出流中。JSP运行环境: 要运行JSP( 注意, 不是浏览JSP页面) , 需要有支持Jsp的服务器。这里分2种情况: 一种是自身就支持JSP的服务器, 如Jrun,Weblogic,JSWDK等; 而另一种则是在不支持JSP的服务器上安装JSP引擎的插件, 如在IIS,Apache等服务器上安装WebSphere,tomcat,Resin等插件。其中主流服务器是Weblogic和tomcat.Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件, 适合于嵌入Apache中使用, 而且, 它的源代码能够免费获得, 你能够自由地对它进行扩充。Tomcat服务器的兼容性很好, 如WebLogic服务器采用其为Web服务器引擎, Jbuilder将其作为标准的测试服务器, Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦, 而且有一些安全性的问题没有解决。可是Tomcat服务器有众多大软件公司的支持, 而且服务器的性能稳定, 其发展前景很好。2.1.2 MySQL开源数据库的开发MySQL是最受欢迎的开源SQL数据库管理系统, 它由MySQL AB开发、 发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司, 它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MYSQL是MySQL AB的注册商标。它的主要特点和优势主要有以下几个: MySQL是一个快速、 多线程、 多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、 重负载生产系统的使用, 也能够将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL是一个关系数据库管理系统。它将数据存放在独立的表格中, 以增加存取的速度和灵活性。”MySQL”中的SQL代表”Structured Query Language”( 结构化查询语言) 。SQL是用于访问数据库的最通用的标准语言, 它是由ANSI/ISO定义的SQL标准。MySQL是开源的。开源意味着任何人都能够使用和修改该软件, 任何人都能够从Internet上下载和使用MySQL而不需要支付任何费用。2.2 系统的主要架构及开发模式该客户管理系统采用B/S模式, 服务器采用轻量级应用服务器Tomcat,该服务器运行时所占用的系统资源小, 支持负载平衡与邮件服务等开发应用系统常见的功能。有着良好的跨平台性和安全性, 能够运行在包括windows、 linux、 mac等操作系统上。用户客户端使用各种浏览器都能够进行正常的浏览和操作。需要注意的是在程序的开发过程中, 程序和路径相关的要考虑到不同的操作系统的文件目录结构。B/S结构, 即Browser/Server(浏览器/服务器)结构, 就是只安装维护一个服务器(Server), 而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起, 对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术, 结合多种Script语言(VBScript、 JavaScript等)和ActiveX技术, 是一种全新的软件系统构造技术。 B/S三层体系结构采用三层客户/服务器结构, 在数据管理层(Server)和用户界面层(Client)增加了一层结构, 称为中间件(Middleware), 使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的, 核心概念是利用中间件将应用分为表示层、 业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上分的, 具体的物理分法能够有多种组合。中间件作为构造三层结构应用系统的基础平台, 提供了以下主要功能: 负责客户机与服务器、 服务器与服务器间的连接和通信; 实现应用与数据库的高效连接; 提供一个三层结构应用的开发、 运行、 部署和管理的平台。这种三层结构在层与层之间相互独立, 任何一层的改变不会影响其它层的功能。B/S结构的三层体系结构图如图2-1所示。 图2-1 B/S三层体系结构在B/S体系结构系统中, 用户经过浏览器向分布在网络上的许多服务器发出请求, 服务器对浏览器的请求进行处理, 将用户所需信息返回到浏览器。而其余如数据请求、 加工、 结果返回以及动态网页生成、 对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部, 这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。B/S三层体系结构的主要优点: B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力能够有效地解决企业内部的大量不规则的信息交流可共享性。单个应用服务器能够为处于不同平台的客户应用程序提供服务, 在很大程度上节省了开发时间和资金投入; 较好的安全性。在这种结构中, 客户应用程序不能直接访问数据, 应用服务器不但可控制哪些数据被改变和被访问, 而且还可控制数据的改变和访问方式 。三层模式成为真正意义上的”瘦客户端”, 客户端计算机不需要很高的硬件配置, 也无需特殊的软件配置要求, 只要有web浏览器就能够使用系统。B/S模式提供了一致的用户界面: B/S模式的应用软件都是基于Web浏览器的, 这些浏览器的界面都很相似。对于无用户交互功能的页面, 用户接触的界面都是一致的, 从而能够降低软件的培训费用。在B/S模式下, 外部的用户亦可经过通用的浏览器进行访问。B/S模式的结构易于扩展: 由于Web 的平台无关性, B/S模式结构能够任意扩展, 能够从一台服务器、 几个用户的工作组级扩展成为拥有成千上万用户的大型系统。B/S模式具有更强的信息系统集成性: 在B/S模式下, 集成了解决企事业单位各种问题的服务, 而非零散的单一功能的多系统模式, 因而它能提供更高的工作效率。2.3 开发工具和开发技术选择系统开发平台: MyEclipse 数据库管理系统软件: MySQL5.7运行平台: Windows 7/Windows 10Java开发包: JDK9.0以上Web服务器: Tomcat 9.0本系统采用的MVC架构模式开发技术的具体技术: AJAX框架: 使用ExtJS 技术开发显示层: 使用JSP技术开发数据访问层: 使用DAO模式开发持久层: 使用Hibernate 框架开发第三章 系统功能和流程分析3.1 系统功能模块设计系统功能结构层次图主要是介绍系统功能的大致层次结构, 使读者能够对系统功能有一个更加直观的把握。系统的软件结构如图3-1所示。 图 3-1 客户管理系统功能能模块图3.2 整体分析系统整体主要流程图, 系统由登录页面开始, 首先实现身份的识别, 若和数据库中的数据匹配, 则实现登录, 根据系统的权限设置, 允许登录者对系统进行权限内操作。进入管理员界面后, 系统包括了营销管理、 服务管理、 客户管理、 库存管理和邮件管理等功能模块。系统整体流程示意图如图3-2所示。图3-2 系统整体主流程示意图3.3 数据流分析数据流图( DFD) 是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何的物理部件, 它只是描绘数据在软件中流动和被处理的逻辑过程。将信息处理功能和彼此之间的联系自顶向下, 逐层分解, 从逻辑上精确地描述系统应具有的数据加工功能、 数据输入、 数据输出、 数据存储及数据来源和去向( 外部实体) 等项目。图3-3 系统数据流图3.4 系统E-R图3.4.1 系统总体E-R图 描述各个实体之间的相互关系, 例如多个管理员都能够管理客户信息, 同样多个客户信息也能够被多个管理员管理, 1个管理员能够管理多条服务信息, 具体描述如图3-4所示。图3-4 系统总体E-R图3.4.2 系统管理员实体图管理员信息包括了管理员密码和用户名以及编号, 方便管理员登录和操作设置。管理员拥有最高权限。系统管理员实体图如图3-5所示。图3-5系统管理员实体图3.4.3 客户信息实体图为了对客户的信息进行有效地管理, 用户需要清楚客户的名称、 状态、 等级、 地区以及客户经理。客户信息实体图如图3-6所示。图3-6 客户信息实体图3.5 数据库设计根据需求分析以及系统功能的需要, 系统信息数据存放在MySQL数据表中。下面给出重要数据表的简单描述。1customer( 客户信息表) 该表存储了客户的基本信息, 主要用于客户信息记录。字段属性描述如表3-1所示。表3-1 客户信息表字段名字段类型字段长度是否主键描述cust_noInt100是编号cust_nameVarchar100否cust_regionVarchar100否cust_manager_idVarchar100否cust_manager_nameVarchar100否cust_levelVarchar100否cust_level_labelVarchar100否cust_satisfyVarchar100否cust_creditVarchar100否cust_addrVarchar100否cust_zipVarchar100否cust_telVarchar100否cust_faxVarchar100否cust_websiteVarchar100否cust_licence_noVarchar100否cust_chieftainVarchar100否cust_bankrollVarchar100否cust_turnoverVarchar100否cust_bankVarchar100否cust_bank_accountVarchar100否cust_local_tax_noVarchar100否cust_national_tax_noVarchar100否5sys_user( 用户信息表) 该表存储了用户信息的基本信息, 主要是用户信息的记录, 该表的字段属性如表3-2所示。表3-2 用户信息表字段名字段类型字段长度是否主键描述usr_idVarchar100是编号usr_nameVarchar100否usr_passwordVarchar100否usr_role_idVarchar100否usr_flagVarchar100否第四章 系统实现4.1 数据库连接Hibernate是一个开放源代码的对象关系映射框架, 它对JDBC进行了非常轻量级的对象封装, 使得Java程序员能够随心所欲的使用对象编程思维来操纵数据库。 Hibernate能够应用在任何使用JDBC的场合, 既能够在Java的客户端程序使用, 也能够在Servlet/JSP的Web应用中使用, 最具革命意义的是, Hibernate能够在应用EJB的J2EE架构中取代CMP, 完成数据持久化的重任。本系统使用Hibernate实现数据库的连接, 体现了一定的优越性。4.2 用户登录管理用户登录需要验证用户的用户名和密码, 从而保证用户可见和可使用的资源。管理员和其它用户的登录界面是一样的, 单击”登录”按钮后的调用相应函数, 它根据用户名和密码, 以及用户种类将界面重定向到各类用户的主界面上, 登录界面调用了Person 和Company类的Login() 函数判断用户是否已经登录。系图4-1登录界面图4.4客户管理客户管理系统主要实现的功能对客户信息、 营销信息、 服务信息、 库存信息、 报表信息、 邮件信息进行管理。其中客户管理, 具体的操作是进行资料的新建、 查询等操作。客户管理功能界面图如图4-2所示。其中新建客户信息, 包括了客户编号、 客户名称、 客户地区等详细信息。新建客户功能界面示意图如图5-10所示。4.6 统计报表客户管理系统主要实现的功能对客户信息、 营销信息、 服务信息、 库存信息、 报表信息、 邮件信息进行管理。其中统计报表, 具体的操作是进行资料的新建、 查询等操作。统计报表功能界面图如图5-12所示。图5-12 统计报表示意图图4-2客户管理图4.9 系统数据管理MySQL数据库的最大特点就是提供了很多便于直接使用的操作函数, 能够轻松的将复杂的数据库操作由清晰的函数实现。在系统数据管理这个模块, 主要实现了数据备份和数据恢复( 即数据库导入) 。第四章 系统测试与难点分析4.1 系统运行环境的搭建本系统的开发和测试均在windows操作系统平台下进行的, 使用AMP集成软件包搭建运行环境Tomcat 是一个轻量级应用服务器, 在中小型系统和并发访问用户不是很多的场合下被普遍使用, 是开发和调试JSP 程序的首选。为了方便理解, 能够这样认为, 当在一台机器上配置好Apache 服务器, 可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展, 但它是独立运行的, 因此当你运行tomcat 时, 它实际上作为一个与Apache 独立的进程单独运行的。Apache, 一种开放源码的HTTP服务器, 能够在大多数计算机操作系统中运行, 由于其跨平台和安全性而被广泛使用, 是最流行的Web服务器端软件之一, 被广范应用于前台。它快速、 可靠而且可经过简单的API扩展, Perl/Python等解释器可被编译到服务器中。可是Apache只支持静态网页, 如果要在Apache环境下运行JSP 的话就需要一个解释器来执行JSP网页, 而这个JSP解释器就是Tomcat,。当然还是需要JDK, 因为需要JDK来提供连接数据库的驱动。因此要运行jsp的web服务器平台就需要Apache+tomcat+JDK。Tomcat能够处理动态页面, 但在静态页面的处理上, 确不如Apache迅速。 基于以上原因, 一个现实的网站使用一个Apache作为Web服务器, 为网站的静态页面请求提供服务; 并使用Tomcat服务器作为一个Servlet/JSP插件, 显示网站的动态页面。 采用apache+tomcat这样的结构具有很突出的优点, 主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的, 但这些数据中主要部分还是静态的(比如, 各类图像GIF、 JPG、 PNG, 流式媒体等),这种结构的优点是兼有可扩展性和安全性。根据本系统的实际开发需求的需要, 此处仅仅使用Tomcat 服务器。4.2 系统的测试4.2.1系统关键部分测试分析测试分为两个部分: 第一部分主要就是测试系统所要求的最基本的功能, 主要侧重于用户的使用流程。基本的用户使用相当流畅, 可是在客户信息搜索功能上, 虽然能够使用关键字搜索到客户信息, 可是还有所欠缺, 而且能够使用的事故属性关键字还太少。第二部分主要是针对后台管理的测试, 由于后台管理功能模块较为集中, 是整个系统的核心所在, 特别是对用户的审核、 对管理员的权限分配以及对信息的处理都完全符合系统设计初期的功能要求。因此从整体上来说, 系统的设计和实现是成功的。4.2.2 测试结果分析与说明从整体的测试结果来看, 在大中型的商务应用中, JSP与MySQL的结合具有相当的优势。首先就是缩短了开发时间, JSP与MySQL提供的大量固有的函数库直接在程序中使用, 提高了程序的运行效率。虽然系统的功能还显得弱小, 可是系统的优良性能已经得到了很好的体现。4.2.3 系统安全与性能系统设计过程中, 对代码中出现的可能对系统造成安全威胁的字符进行过滤和字符的转换, 在一定程度上提高了系统运行的安全性。同时所采用的编程语言和数据库的特性足以承受大量的数据读取和写入。