企业即时通讯系统-毕业设计论文.doc_第1页
企业即时通讯系统-毕业设计论文.doc_第2页
企业即时通讯系统-毕业设计论文.doc_第3页
企业即时通讯系统-毕业设计论文.doc_第4页
企业即时通讯系统-毕业设计论文.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院毕业设计 摘要摘要通过对即时通讯原理的分析和研究,设计者基于Socket网络通信技术,采用微软提供的C#开发语言,搭建.NET开发平台,利用SQL Server 2005数据库管理系统作为管理数据的仓库,来开发一款企业即时通讯系统。其目标是解决企业内各个部门之间的沟通和协同工作等问题。此系统采用C/S框架设计模式,运用多线程并发原理,利用服务端和客户端对数据的接收和转发来实现端对端的通信。本文主要介绍了数据库的设计,客户端与服务端之间通信协议的制定,程序各个功能模块的设计与实现方法,设计上的重难点分析以及解决办法,程序的测试和发布等。通过测试表明系统支持多用户的并发操作,实现了信息的即时和离线收发、用户的管理控制、权限划分、文件操作以及消息通知等功能。系统设计合理,功能完善,存储内容安全,性能稳定,界面友好简洁,满足企业即时通讯系统的基本需求。关键词:企业即时通讯 Socket C/S SQL Server 2005 通信协议I重庆科技学院毕业设计 ABSTRACTABSTRACTBy analyzing and researching the principle of instant communication, the designers develop an enterprise instant messaging system based on the socket network communication technology, using Microsofts C# development language, building .NET development platform and using SQL Server 2005 database management system as the management of data warehouse, which aims at solving the communication and team working problems in enterprise between different departments. This system uses C/S framework model, implements end-to-end communication through utilizing the server and the client receiving and forwarding to the data. This paper mainly introduces the design of the database, the formulation of communication protocol between the client and the server, program design and implementation methods of each function module, difficult point analysis and solution on design, program testing and release, etc . The test indicates that this software supports multi-user concurrent operation, to enable information being transmitted or received real-time and offline, user control/user administrative control, the division of authority, file operations, message notifications and other functions.The design of this software is reasonable, functional, secured storage content, stable performance, friendly and simple interface, which meets the basic requirement of the enterprise instant messaging system. Keywords: EIM;Socket;C/S;SQL Server 2005;communication protocolII重庆科技学院毕业设计 目录目录摘要IABSTRACTII第一章 引言11.1背景11.2国内外研究现状11.3课题研究意义21.4课题主要研究内容3第二章 需求分析42.1任务概述42.1.1目标42.1.2用户的特点42.1.3假定和约束42.2需求规定42.2.1对功能的规定42.2.2对性能的规定102.2.3输人输出要求112.2.4数据管理能力要求122.2.5故障处理要求122.2.6其他专门要求122.3运行环境规定122.3.1设备122.3.2支持软件132.3.3接口13第三章 数据库设计143.1 SQL Server数据库143.2设计原则143.3概念结构设计153.3.1实体图153.3.2实体关系图(E-R)163.4逻辑结构设计183.5物理结构设计183.5.1数据表183.5.2数据字典213.4.3存储过程24第四章 详细设计304.1公共类304.2多线程304.3通信协议324.4功能模块344.4.1 服务器344.4.2 客户端354.5流程逻辑384.6重难点分析及解决方法42第五章 系统测试与发布455.1系统测试455.1.1测试目的455.1.2常用方法455.1.3测试结果465.2系统发布58第六章 总结与展望606.1工作总结606.2工作展望61参考文献62致谢63重庆科技学院毕业设计 引言第一章 引言1.1背景随着信息时代的来临,IT技术的快速发展,无论是企业等组织机构还是个人需要,对沟通的需求也在不断地变化,传统的邮件、传真、电话等沟通交流方式明显已经无法满足现代人们工作和生活的需要。互联网的发展和普及使更多的人们习惯了即时通讯(IM)的实时交流。即时通讯是多个终端连接一个即时通讯的网络性服务。随着IM功能和应用的逐渐完善,其已演化成为一个综合的实时通讯平台,并且在人们的日常生活与工作中发挥着不可或缺的作用。面对如今新的发展形势,国内许多企事业单位跟进并加快了信息化建设的步伐。处于快速发展中的中国企业,企业信息化建设工程需要立竿见影,从而实现其投资效益达到最大化的目的,所以信息化建设的解决方案必须达到功能实用、贴切、易学、易用、能快速实施、稳定且安全的实效,能够确保其关键性的业务和关键性的管理需求得到率先解决,并且提供充分的可扩展性以适应企业成长和发展的需要,才能将企业实施信息化建设的风险达到最小化。1.2国内外研究现状1996年,三个以色列人聚集在一起,他们决定共同开发一种可以使人与人在互联网上能快速直接交流的即时通讯工具,即ICQ。在1997年,即时通讯软件进入中国市场之后迅速得到广大用户的认可。据相关调查研究机构发布的消息,2007年底使用即时通讯软件的用户数量已经达到1.7亿人1。2008年中国即时通讯软件用户规模达到2.2亿,同比07年增长31.0%1。2009年第一季度中国即时通讯软件总覆盖人数保持缓慢上升趋势,3月份总覆盖人数接近2亿,约占中国网民数量的70%1。其中,腾讯QQ市场领先优势依然巨大;阿里旺旺与飞信增长快速,月度覆盖人数平均增长率均保持在6%左右,最高覆盖人数分别为7086万和6095万;MSN月度覆盖人数平均增长率为3%左右,最高覆盖人数为4352万1。其它即时通讯软件在各垂直领域都有所发展,但最高月度覆盖人数都不超过1000万,难以撼动前两阵营地位1。2010年的3.5亿,2011年的4.2亿,2012年的4.7亿,截止到2013年,即时通讯行业的用户达到了5.1亿1。随着互联网的发展以及网民需求不断增加,即时通讯市场也呈现出许多新的增长点。垂直领域的不断成长推动了细分化即时通讯软件的快速发展。以用户为基础的IM软件产业在满足用户需求的同时,也延伸开辟出多平台、多运营模式的即时通讯软件外延市场。近年来,即时通讯软件行业的飞速发展,用户使用需求的不断膨胀,同时只用一款即时通讯服务已经不能满足用户在互联网生活不同场景上的需要。类似于社交网站、微博等提供的即时通讯服务,为用户带来了更多不同的互动场景和应用范围,对于传统桌面即时通讯软件服务来说是一个新的挑战。移动化的即时通讯市场仍旧处于快速上升阶段,且基于各种移动通信终端传感器,将实时图片、地理位置、视频等内容引入到即时通讯服务中,用户的人际关系链和使用场景范围将被大大地拓宽。新的竞争者凭借着特色功能及使用体验对行业发展带来更多的可能性。在企业即时通讯产品市场中,腾讯RTX、Anychat、IBM Sametime、微软LCS等产品占据着该市场绝大部分资源。IBM是全球范围内起步较早的企业即时通讯服务商,国内多数大型集团和跨国企业都在使用其产品。对于中国企业即时通讯行业来说,其在2003年至2007年基本上处于萌芽期,这一阶段代表局域网软件型时代,但是由于局域网软件本身的一些缺点以及企业信息化水平较低,该行业发展缓慢2。2008年到2011年期间,企业即时通讯行业进入发展起步期,这一阶段代表互联网平台型兴起的时代,各个巨头和资金也逐渐注意到了这一行业2。2012年到2015年期间,该行业进入高速发展期,并且走向集中化,这一阶段互联网平台型将会逐步占领数量众多的中小型企业市场2。当前中国企业即时通讯软件市场的特点有六点:一是门槛低,开发技术的难度小;二是市场竞争非常激烈;三是收费难,企业很难为单独的IM产品付费;四是对外的API接口各异,没有统一的规定和标准;五是没有成熟的应用商店,行业生态系统尚未建成;六是企业需求不高,对于一般的小型企业来说,免费的QQ和MSN即可解决大部分需求。目前,国内外的互联网普及率已达到一定的水平,其增长速度大大放缓。即时通讯用户数量上升的速度及新增用户数也已经呈现下降的趋势。有线的IM市场已经接近饱和,无线的IM市场也将上演群雄逐鹿的局面。企业即时通讯领域同样如此。现如今产品同质化现象变得越来越严重,也许走专业化路线,盯住单个细分市场会成为下一个共同的目标。1.3课题研究意义经过研究调查,企业的传统业务支撑系统是以满足生产为目的,其各个组织架构系统相对独立2。如果完全按照这一方式进行信息化管理,往往容易形成信息孤岛。这明显与信息资源的集成共享、零距离沟通交流从而促使企业内部高度的透明化、智能化、自动化的建设初衷相去甚远2。企业即时通讯系统正是专门针对这种企业应用量身订做的统一商务协作平台2。自问世以来,就以其稳定的安全性、人性化的监管性、通讯的便捷性及友好的操作界面在广大企业中迅速普及2。随着分公司,办事处等分支机构相继成立,各职能部门的完善与公司员工人数的增多,企业信息化建设变得尤为重要2。现如今许多企业内部的多数员工都是在没有企业允许的情况下使用个人即时通讯工具,这个给企业网络带来了比较大的安全和效率问题2。为了解决企业内部各种繁复的沟通问题,企业即时通讯系统便应运而生。其目的主要是为了促进公司内部员工的沟通,使交流便于扁平化管理,业务上能平等交流,还可以降低沟通成本、节约企业开支、防止企业的商业秘密和客户资料外泄、提高员工工作效率和合作意识、增强企业凝聚力、营造一种新的企业沟通文化。1.4课题主要研究内容企业即时通讯系统主要是针对企业高效而安全的传输信息的一种更为方便、高效的通讯方式,实现了稳定而安全的信息传送,最重要的一点就是要求信息的实时性,要即时对接收到的信息实现反馈,解决网速过慢而导致文件传输过慢、文件数据丢失、文件资源被截断、人力资源的浪费、时间的浪费、企业执行力过低等一系列相关问题。本课题主要研究内容包括以下几个方面:(1) 组建C/S框架,搭建.NET开发平台(2) 学习并掌握C#程序开发流程(3) 学习并掌握SQL Server数据库的使用(4) 了解现阶段基于企业即时通讯软件的发展现状及相关功能(5) 学习并掌握Socket网络通信编程技术(6) 学习并掌握图形界面窗体形式软件的开发技术65重庆科技学院毕业设计 需求分析第二章 需求分析2.1任务概述2.1.1目标开发该软件是为了企业内的员工提供一个在线实时沟通平台,使处在不同的地方,也能像近在咫尺般无所不谈。该软件主要是依赖SQL Server2005数据库来存储全部的数据信息,再结合C#语言开发的一款图形界面软件。这个系统提供多个用户即时并发通信的平台。未注册用户可以注册成系统会员,已注册用户可以通过登录窗口进入聊天系统。进入系统的用户可以选择自己的操作对象。在系统中用户可以选择进入某一个聊天分区去聊天,也可以与特定的用户聊天。需要向对方发送文件的时候,可以选择在线或离线收发文件。2.1.2用户的特点操作人员:操作本软件的用户不需要太高的教育水平,也不需要有什么技术专长。无论男女老幼,只要是企业内部员工,能用键盘和鼠标处理计算机事物,都可以使用本软件通过网络进行相关的即时信息交流。维护人员:维护该软件的人员必须是学习过相关计算机专业知识的专业人员,且能熟练使用SQL Server数据库和相关编程语言,当软件出现错误的时候,能通过调试程序调试该软件。本软件的预期使用频度较高的就是收发文本信息和文件。2.1.3假定和约束本通讯系统无需任何开发经费,由开发人员一人独立开发,开发期限从任务书下达开始到答辩之前结束,进行方案选择的比较期限不能超过一周。在Windows系统、Microsoft visual studio 2010开发环境下以C#语言进行开发设计,数据库采用SQL server 2005。开发软件运行的最短寿命不要低于1年。在法律和政策方面的限制主要是不侵权以及隐私等机密问题的传播控制。2.2需求规定 2.2.1对功能的规定对于一款即时消息通讯的软件,其界面应该美观、整洁,不能太过单调,各个功能模块应该一目了然,方便用户做出相应的选择和操作。终端之间使用TCP和UDP通信协议进行通信。系统分为两个部分:客户端和服务器。服务器监听客户端发来的消息,并将消息存储到数据库或者转发给其他终端。该软件必须具有以下基本功能:(1) 客户端的主要功能:登陆、注册、查找、创建、添加、修改、删除、聊天、文件传输以及消息通知等。(2) 服务端的主要功能:启动服务、关闭服务、维护操作、数据库连接测试以及后台数据收发。以下是这些功能模块的简要描述:(1) 登陆简要描述:输入正确账号和密码显示登陆成功。输入错误账号和密码显示登陆失败参与者:用户执行者:用户前置条件:开启程序,进入软件登陆界面事件流:1. 打开登陆界面2. 输入正确账号和密码,按登陆键,用户登陆成功3. 输入非法账号和密码,按登陆键,提示输入有误 4. 输入未注册的账号,按登陆键,提示无此账号请注册5. 输入错误账号或密码,按登陆键,提示登陆失败6. 点击申请号码页面自动转到申请号码窗体,用户可在那进行注册后置条件:无论用户输入任何信息,按取消键,关闭此窗体,退出软件(2) 注册简要描述:用户按照相关提示资料信息进行正确的填写以完成申请账号并获得账号参与者:用户执行者:用户前置条件:有常用的国家承认的证件(身份证,军人证,护照等),并拥有一台可以连入网络的机器终端事件流:1. 按Tab键,光标可在注册窗体中进行切换2. 系统测试用户输入是否符合要求,输入是否有误3. 系统测试用户输入两次密码是否一样4. 有*号标记是否都填写5. 当用户正确输入全部资料信息后,按确定键,用户是否得到相应的账号6. 用户注册成功后将从服务器数据库中返回一个随机账号给用户。后置条件:用户点击取消按钮,窗口关闭,返回登陆窗口(3) 查找简要描述:可以按ID号码或昵称查找用户,按群号或群名称查找群组参与者:用户执行者:用户前置条件:正确登录软件,打开查找界面事件流: 1. 根据用户的ID号查找好友时正确显示相应的用户资料信息2. 根据昵称查找好友正确显示相应的用户资料信息3. 根据群号查找群组正确显示相应的群组资料信息4. 根据群名称查找群组正确显示相应的群组资料信息5.没有输入用户ID号、昵称、群号或群名称时,提示输入信息后置条件:关闭查找窗口,等待下次查找(4) 创建简要描述:创建好友分组或群组参与者:用户执行者:用户前置条件:正确登陆软件并进入好友分组或者群组创建界面事件流: 1. 点击创建按钮 2. 输入好友分组或者群组名称 3. 如果是创建群组,则输入群简介信息4. 创建成功后,好友里列表或者群组列表更新后置条件:无(5) 添加简要描述:根据查找的结果添加用户到好友列表,添加群到群组列表参与者:用户执行者:用户前置条件:正确登陆软件并进入添加模块事件流:1. 若添加陌生人可先进行查找功能添加,或者直接添加2. 若已知对方ID则可直接添加好友3. 如对方在自己的陌生人列表中,可以移至好友分组列表4. 若已知某群号或群名称则通过查找模块添加5. 添加后,列表更新后置条件:无(6) 修改简要描述:用户可以修改自己的个人基本信息和密码。参与者:用户执行者:用户前置条件:正确登陆软件并进入修改信息界面事件流:1. 在文本框或者其他控件中输入相应的信息2. 若输入错误信息或者格式不正确,则提示重新输入3. 点击修改按钮4. 如果是修改个人基本信息,则将修改后的信息实时显示在其他相应的界面上。后置条件:关闭修改信息窗口,进入软件主界面(7) 删除简要描述:用户可以删除好友或者群组参与者:用户执行者:用户前置条件:正确登陆软件并进入删除模块事件流: 1. 进入好友分组列表,右键点击好友,选择删除选项 2. 右键点击群组,选择删除选项 3. 删除后,列表更新后置条件:无(8) 聊天简要描述:用户可以根据自己的需要选择私聊或群聊。在此模块中,用户可以发送信息、接收信息、更改字体的属性,聊天界面上显示头像与账号、显示聊天对象参与者:用户执行者:用户前置条件:正确登陆软件,并打开聊天窗口界面事件流:1. 发送的信息能正确到达对应窗口2. 接收的信息能正确显示在窗口3. 头像与账号能随个人信息修改显示4. 聊天对象能显示在对应窗口上5. 当聊天结束,关闭窗口能顺利实现6. 发送信息不能为空后置条件:关闭聊天窗口,等待聊天,或者开启另外的聊天窗口(9) 文件传输简要描述:发送文件给对方,或接收从对方发过来的文件参与者:用户执行者:用户前置条件:正确登陆软件并进入文件收发界面事件流: 1. 点击联系人名字,选择发送文件选项 2. 可以选择在线发送或是离线发送文件 3. 将文件发送给对方,或从等待接收对方发来的文件4. 如果对方不在线,则将文件发送到服务器。当对方上线之后则从服务器下载文件。后置条件:无(10) 消息通知简要描述:当对方向用户发送消息时,或者系统向用户发送消息时,程序需要通过以图标闪烁或者发出相应的声音的方式来提示用户有新消息到达参与者:用户执行者:用户前置条件:正确登陆软件并进入程序主界面事件流:1. 当好友列表在闪烁时,点击闪烁图标2. 当群组列表在闪烁时,点击闪烁图标3. 当系统托盘图标在闪烁时,点击托盘图标后置条件:点击闪烁的图标,显示出相应的界面。(11) 启动服务简要描述:管理员打开服务器程序后,需要启动服务使整个系统运转起来参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择启动服务选项2. 点击启动服务按钮3. 当服务启动后,该按钮就会变为不可用状态4. 服务器界面下方的状态栏显示服务已经开始运行状态后置条件:无(12) 关闭服务简要描述:当服务器需要进行相关的维护操作时,管理员可以暂时关闭服务参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择关闭服务选项2. 点击关闭服务按钮3. 当服务关闭后,该按钮就会变为不可用状态4. 服务器界面下方的状态栏显示服务已经停止状态后置条件:无(13) 维护操作简要描述:当服务器需要维护时,管理员可以根据此模块来维护服务器参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择进入维护选项2. 点击进入维护按钮3. 输入账号和密码进入维护操作界面后置条件:退出维护,程序返回主界面(14) 数据库连接测试简要描述:管理员打开服务器程序后,首先需要检查服务器能否连通数据库参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择连接测试选项2. 点击连接测试按钮3. 如果连接成功,则返回连接成功状态4. 如果连接失败,则返回连接失败状态后置条件:关闭弹出的对话框(15) 后台数据收发简要描述:管理员启动服务之后,服务器会产生两个监听线程用来实现对客户端发送而来的数据进行接收和解析功能,并将解析后的数据返回给客户端或者存储到数据库中参与者:管理员执行者:管理员前置条件:正确打开服务器程序并启动服务事件流:1. 启动socket监听服务2. 接收客户端发来的数据3. 解析数据4. 根据相关的命令执行相关的功能后置条件:无2.2.2对性能的规定(1)精度本软件的系统登录账号规定为8位,密码只能用数字和字母,大于或等于6位且不能超过24位,用户昵称不能超过12位汉字,电话号码规定7到11位,联系地址不能超过50位汉字。其他的数据精度按照相关提示要求处理。(2)时间特性要求对于该软件的时间特性要求:a 响应时间:所有的发送操作响应时间不超过4秒,大量的信息发送,应该在5秒内显示或者提示相关出错信息。b 更新处理时间:所有更新的数据响应时间不超过4秒c 数据的转换和传送时间:数据的转换和传送时间随数据的传送大小而定。(3)灵活性a 操作方式:该款软件为即时信息通信系统,属于人工手动操作,并且终端一定要连入局域网b 运行环境:支持Window XP以上系统,并且必须配置SQL Server 2005、.NET Framework 3.0及以上版本c 同其他软件的接口:SQL Server 2005以及上版本的接口d 精度和有效时限:精度必须根据软件的相关精度要求来处理2.2.3输人输出要求表2.1 主要输入输出要求数据名称数据类型数值范围用户账号数字8位密码数字或字母6至24位昵称数字、字母或汉字数字或字母不超过20位,汉字不超过12位电话号码数字7位或11位联系地址汉字、字母或数字不超过50位发送聊天消息汉字、字母、数字或其他符号一次性发送数据不超过2Kb好友分组名称汉字、字母或数字汉字不超过10位群组账号数字7位群组名称汉字、字母或数字汉字不超过15位群简介汉字、字母或数字汉字不超过50位文件名称汉字、字母或数字汉字不超过50位文件大小二进制码数据大小不超过5G离线消息内容汉字、字母、数字或其他符号内容不超过2Kb系统消息标题汉字、字母、数字或其他符号不超过40个汉字系统消息内容汉字、字母、数字或其他符号不超过300个汉字消息验证内容汉字、字母、数字或其他符号不超过50个汉字其他具体的输入输出要求按照相关提示操作处理。2.2.4数据管理能力要求本系统的数据库有十个表来存储用户及其相关的基本信息,其中包括用户的基本信息表、好友分组列表、群组表、群成员列表、系统管理员表、离线文件信息表、群历史消息记录表、用户离线信息记录表、系统消息表和消息验证表。本系统的上限人数不做规定,每人的的好友数量不超过500人,每个群的上限人数不超过500人,因此,数据的操作量有点大,但是在需要的时候能够即时存取,相关的配置信息,在需要时能够即时读取。2.2.5故障处理要求因为数据库没有启动而引起访问问题,需启动数据库服务器。因为无法远程连接数据库而引起的访问问题,需要开启数据库服务器的远程连接,设置数据库服务器的服务地址及服务端口。在执行程序的过程中,突然出现了非正常退出,则可以重新登录。若出现多次这种现象,则通知维护人员对程序进行相关的维护。磁盘碎片过多、数据库存储空间不够,引起数据库访问等变慢等问题需要对磁盘进行相应的维护和扩展。其他具体问题,再做具体分析。2.2.6其他专门要求在程序的开发过程中,应遵循结构化的程序设计原则和开发文档的规范性,精心设立运行日志,从而加强系统的易读性、可维护性和可补充性;另一方面要注重系统的界面美观、友好和协调性,保持程序各模块的统一,增强可靠性。2.3运行环境规定2.3.1设备适合于该软件运行的系统的建议配置:服务器端:硬件:CPU:Intel Pentium 内存:1G 硬盘:40G软件:企业即时通讯系统服务器Microsoft SQL Server 2005以上版本客户端:硬件:CPU:Intel Pentium 内存:1G 硬盘:40G软件:企业即时通讯系统2.3.2支持软件操作系统:Windows XP、Windows 2003、Windows 2007编译程序:Microsoft visual studio 2010或以上版本支持软件:.Net Framework 3.0或以上版本、Microsoft Sql Server 2005或以上版本2.3.3接口本软件基于ADO.NET数据库访问技术实现对SQL数据库的基本操作,通过TCP/IP协议和UDP协议来传递远程数据。重庆科技学院毕业设计 数据库设计第三章 数据库设计3.1 SQL Server数据库数据库是存储数据的仓库,是长期存储在计算机内的、有组织的、可共享的数据集合1。数据库中的数据具有结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点3。数据库中的数据由数据库管理系统统一管理,数据库管理系统(DataBase Management System,简称DBMS)是专门用于管理数据库的计算机系统软件3。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能,它位于用户和操作系统之间3。SQL Server 2005是一个关系型的数据库管理系统,其主要特点如下:(1) 安全、可靠、可伸缩、高可用性的关系型数据库引擎,提升了系统性能且支持结构化和非结构化数据。在编程环境下和微软.NET集成在一起。SQL Server 2005中的Transact-SQL增强功能提高了在编写查询时的表达能力,可以改善代码的性能,并且增强了错误管理能力4。(2) 可用于数据分发、处理移动数据应用、系统高可用、企业报表、数据可伸缩存储、与异构系统的集成等4。(3) 可以支持数据仓库和企业范围内数据集成的抽取、转换盒装载能力4。(4) 联机分析处理功能运用于多维存储的大量的、复杂的数据集的快速高级分析4。(5) 通过使用Transact-SQLDML语言扩展,允许内部或外部应用程序发送和接收可靠、异步的信息流4。3.2设计原则数据库对于整个系统来说是非常关键的,其支撑着整个系统对需求数据的框架,因此对于其中每一张数据表都要分析到位。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。因此,在设计数据库时,设计者应该遵循不同的规范要求,设计出合理的数据存储仓库。数据库设计是进行系统开发的基础性工作。设计方案直接影响到开发的工作繁复程度和系统的好坏。数据库设计要遵循以下原则:(1) 数据的完整性:应保证数据库中数据的准确性。(2) 数据的结构化:数据库设计必须达到层次分明、分布合理的要求。数据库必须高度结构化,从而保证数据的规范化、结构化和标准化。(3) 减少数据冗余:数据库的设计应该尽量减少数据的冗余性,节省数据的存储空间,提高数据的质量,消除数据表中非主属性对主关键词的非完全依赖性及非主属性对主关键词的传递依赖性,将二维表转化为第三范式,可以有效地降低数据冗余性。3.3概念结构设计3.3.1实体图根据需求可知,本系统的实体可分为三种:用户、群组和管理员。这三种实体都有各自的属性及关系。根据这些属性可以生成相应的实体图。(1) 用户实体及其属性: 图3.1 用户实体图(2)群组实体及其属性:图3.2 群组实体图(3)管理员实体及其属性:图3.3 管理员实体图3.3.2实体关系图(E-R)E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。根据以上实体图可以生成实体关系(E-R)图。(1)用户添加好友E-R图:图3.4 添加好友E-R图(2)用户添加群组E-R图:图3.5 加群E-R图(3)用户发送离线文件E-R图:图3.6 发送离线文件E-R图(4)用户发送离线消息E-R图:图3.7 发送离线消息E-R图(5)用户发送验证消息E-R图:图3.8 发送验证消息E-R图3.4逻辑结构设计逻辑结构设计的任务目标就是把在概念结构设计阶段设计好的实体关系(E-R)图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。根据以上E-R图,可以转换为相应的关系模式,关系的码用下划线标出。用户实体对应的关系模式为:用户 账号,昵称,性别,生日,电话,邮箱,地址,头像,密码,IP地址,UDP端口,TCP端口,在线状态,验证方式 群组实体对应的关系模式为:群组 群号,群名,群简介,创建人,创建时间 管理员员实体对应的关系模式为:管理员 账号,密码 添加好友对应的关系模式为:添加 编号,用户账号,好友分组标记,分组名称,好友ID列表 加群对应的关系模式为:加群 群号,成员账号,权限,最后访问时间 发送离线文件对应的关系模式为:离线文件 文件编号,名称,大小,MD5值,地址,发送者,接收者,发送时间,接收状态 发送离线消息对应的关系模式为:离线消息 编号,发送者,接收者,消息内容,消息类型 发送验证消息对应的关系模式为:验证消息 编号,发送者,接收者,发送时间,内容,读取状态,同意状态,发送者组,接收者组,验证类型 3.5物理结构设计3.5.1数据表本系统的数据库一共设计了10个基本数据表:用户基本信息表UserInfo、好友关系表FriendShip、群组信息表Groups、群成员表GroupMember、离线文件表offLineFile、群信息记录表GroupRecords、离线信息记录表UserMsgRecords、系统消息表SysMsg、消息验证表MsgValidate和管理员表SysAdmin。用户基本信息表UserInfo是记录用户个人基本信息的数据表,其中包括用户账号、昵称、性别、生日、电子邮箱、联系电话、联系地址、头像、密码、IP地址、UDP端口号、TCP端口号、在线状态和验证方式等信息。具体如下表:图3.9用户基本信息表好友关系表FriendShip是用来记录用户的好友分组和好友的ID号。其中包括用户ID号、好友分组标记、分组名称和朋友ID号。具体如下表:图3.10 好友关系表群组信息表Groups是用来记录群组基本信息的数据表。其中包括群号、群名、群简介、创建人和创建时间。具体如下表:图3.11 群组信息表群成员表GroupMember是用来记录群组成员基本信息的数据表。其中包括群号、成员账号、成员权限和最后访问时间。具体如下表:图3.12 群成员表离线文件表offLineFile是用来记录离线文件基本信息的数据表。当用户向另一用户发送离线文件时,系统会自动将该文件的信息记录到此表。此表包含文件编号、文件名称、文件大小、文件的MD5值、文件存储在服务器的地址、发送者、接收者、发送时间及接收状态。具体如下表:图3.13 离线文件表群信息记录表GroupRecords是用来记录群成员聊天的历史信息。当其他离线的群成员上线后,就会从该表中取出群的历史信息进行查看。该表包括消息编号、群组ID、群成员ID、记录的时间和内容。具体如下表:图3.14 群信息记录表离线信息记录表UserMsgRecords是用来记录用户的离线消息的数据表。当用户离线时,另一用户向该用户发送的离线消息都会记录到此表中。此表包括消息编号、发送者、接收者、消息内容和消息类型。具体如下表:图3.15 离线信息记录表系统消息表SysMsg是用来记录管理员发布系统消息的数据表。当管理员向各个用户发布系统消息时,这些消息就会被记录到此表中。该表包括消息编号、发布时间、发布者、标题和内容。具体如下表:图3.16 系统消息表消息验证表MsgValidate是用来记录验证消息的数据表。当用户添加好友或是加入群组需要验证时,该表就会记录这些验证消息。此表包括消息编号、发送者、接收者、发送验证消息时间、验证内容、读取状态、同意状态、发送者组、接收者组合验证类型。具体如下表:图3.17 消息验证表管理员表SysAdmin是用来记录管理员登录服务器所需要的账号和密码的数据表,其中包括账号和密码。具体如下表:图3.18 管理员表3.5.2数据字典 用户信息表UserInfo的列清单 表3.1 UserInfo表的列清单名称 代码 注释 数据类型 长度 账号userID用户登录时用的账号varchar8昵称userName用户在聊天系统中使用的昵称nvarchar12性别userSex用户的性别varchar2生日userBirth用户的生日datetime电话userTel用户的联系电话varchar11邮箱userMail用户的电子邮箱varchar50地址userAddr用户的联系地址nvarchar50头像userImg用户在聊天软件中使用的头像int密码userPwd用户登录系统时所用的密码varchar24IP地址userIP用户登录系统时本地的IP地址varchar17UDP端口userUDPPort客户端UDP监听端口号intTCP端口userTCPPort客户端TCP监听端口号int在线状态isOnline用户登录客户端时的状态。0:离线;1:在线;2:隐身int验证方式checkMode用户被好友添加时的验证方式。1:允许任何人添加;2:需要身份验证;3:不允许任何人添加int 好友分组列表FriendShip的列清单 表3.2 FriendShip表的列清单名称 代码 注释 数据类型 长度 编号LID主键,自增量为1int用户账号userID用户在聊天系统中使用的昵称varchar8好友分组标记friendTypeIden好友分组标记,方便在好友列表加载的时候排序int分组名称friendType如:我的好友,陌生人等nvarchar10好友ID friendList每个好友用,隔开varchar1000 群组表Groups的列清单 表3.3 Groups表的列清单名称 代码 注释 数据类型 长度 群号groupID群组的ID号,系统随机产生varchar7群名groupName群组的名称nvarchar15群简介groupIntdc群组的简介nvarchar50创建人creater群组的创建人varchar8创建时间createTime群组的创建时间datetime 群成员表GroupMember的列清单 表3.4 GroupMember表的列清单名称 代码 注释 数据类型 长度 群号groupID主键,群组表外键varchar7成员IDuserID主键,用户表外键varchar8权限isGroupLeader成员在该群的权限。 0:普通成员;1:管理员;2:群主int最后访问时间lastAccessTime成员最后一次访问该群的时间datetime 离线文件表offLineFile的列清单 表3.5 offLineFile表的列清单名称 代码 注释 数据类型 长度 文件编号fileID文件的ID号int文件名fileName文件的名称nvarchar50文件大小fileSize文件的大小bigint文件MD5值fileMd5文件的MD5值,用来辨别用户上传文件是否已经存在于服务器,以便实现秒传功能varchar40文件地址fileAddr文件在服务器上的地址nvarchar100发送者fileSender发送文件的用户IDvarchar8接收者fileReceiver接收文件的用户IDvarchar8发送时间fileTime发送文件的时间datetime接收状态isAccept接收文件的状态。 0:未接受;1:接收了部分;2:完全接收int 管理员表SysAdmin的列清单 表3.6 SysAdmin表的列清单名称 代码 注释 数据类型 长度 账号adminID管理员登陆服务器所用的账号varchar10密码adminPwd管理员登陆服务器所用的密码varchar20 群信息记录表GroupRecords的列清单表3.7 GroupRecords表的列清单名称 代码 注释 数据类型 长度 编号RID群信息的编号int群IDGroupID群组ID。以便分清该信息属于哪个群组varchar7用户IDuserID群成员IDvarchar8记录时间RTime消息记录的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论