电子聊天室的设计与实现

更新时间:2023-12-26 04:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

引言 ............................................................................................................................... 1 第一章 需求分析 ......................................................................................................... 2

1.1 需求分析 .................................................................................................. 2

1.1.1 分析阶段 ........................................................................................ 2 1.2 任务概述 .................................................................................................. 2

1.2.1目标 ................................................................................................. 2 1.2.2运行环境 ......................................................................................... 3 1.3 数据流图 .................................................................................................. 3 1.4 数据字典 .................................................................................................. 3

第二章 概念结构设计 ................................................................................................. 5

2.1 概念结构 .................................................................................................. 5 2.2 电子聊天室系统概念结构设计 .............................................................. 5

2.2.1 系统实体E-R图 ........................................................................... 6 2.2.2 图书管理系统系统E-R图 ........................................................... 7

第三章 逻辑结构设计 ................................................................................................. 8

3.1 逻辑结构设计 .......................................................................................... 8 3.2电子聊天室系统逻辑结构设计 ............................................................... 8

第四章 物理设计 ....................................................................................................... 10

4.1 关系中的关系模式 ................................................................................ 10 4.2 基本表设计 ............................................................................................ 10

第五章 数据库的实施和维护 ................................................................................... 13

5.1 数据的载入 ............................................................................................ 13 5.2 应用程序的调试 .................................................................................... 14 5.3 数据库的维护 ........................................................................................ 16

5.3.1 维护 .............................................................................................. 16 5.3.2检测并改善数据库性能 ............................................................... 16 5.3.3重新组织和构造数据库 ............................................................... 16

第六章 结论与体会 ................................................................................................... 18

I

数据库课程设计(图书管理系统)

引言

随着即时通信技术的发展,在线聊天室为众多的网民朋友提供了一个交友与娱乐的平台。在这个平台上,人们可以通过文字与符号进行实时的交谈、聊天,是网民之间相互沟通、交流情感的最佳方式之一。 该课题旨在设计一个以服务器为中介,实现多个终端用户同时在线聊天的聊天室。系统基于C/S模式,利用Socket套接字实现两台主机之间的彼此通信,并使用多线程技术实现了一个聊天服务器对应多个终端用户,让用户可以在广域网范围内在线聊天。 该课题还对统一建模语言UML在系统的分析与设计中的应用进行了详细的阐述,对于使用面向对象的思想开发同类系统具有很大的指导意义。同时系统开发过程中融合了诸如socket、JavaScript等多种网络开发技术,对于技术的使用有一定的借鉴价值。

管理信息系统(MIS,Management Information System)是一个由人和计算机等组成的能够提供信息以支持一个组织机构内部的作业、管理、分析和决策职能的系统。管理信息系统利用计算机的硬件和软件,手工规程、分析、计划、控制和决策用的模型,以及数据库对信息进行收集、传输、加工、保存和使用。因此,管理信息系统是一个信息处理系统。

数据库作为存取数据并对数据进行操作的工具在系统中所起到的作用至关重要。数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理模式结果,并据此建立数据库及其应用系统,使之能有效地存储和管理数据,满足应用需求,包括信息管理要求和数据操作。信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象进行哪些操作,如查询、增、删、改、统计等操作。数据库设计地目标是维用户和各种应用系统提供的一个信息基础设施和高效率地运行环境。高效率的运行环境包括:数据库数据的存取速率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。

1

数据库课程设计(图书管理系统)

第一章 需求分析

1.1 需求分析

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。

SQL2012就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。SQL 的优点在于它集数据查询、数据操纵、数据定义和数据控制功能于一体。

1.1.1 分析阶段

本文主要以计算机和网络通信技术为基础,以一门计算机基础课程为实例,研究和探讨了怎样合理地组织和管理教学内容,并且能应用于实际教学之中,以期能达到教师组织教学内容方便、实施网络教学方便以及学生能利用计算机网络进行自主学习的目的。

经过分析,我使用Java作为主要开发语言,将Java技术与数据库SQL server相结合进行设计。首先,在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。系统可基本实现用户自主注册、登陆退出、添加好友,实时聊天以及聊天记录的存储。系统其他方面的需求有:安全保密性、可恢复性、可扩充性、可维护性等。

1.2 任务概述

1.2.1目标

将设计目标确定为用户只需要在登录界面中输入正确的用户名和密码即可登录聊天室并且连接上服务器。在聊天室中,用户可以和聊天室中所有的用户发送信息,还可以接收所有用户发送的信息。

2

数据库课程设计(图书管理系统)

1.2.2运行环境

服务器配置包括硬件配置和软件配置,它们各自都有详细的要求,下面将分别进行介绍.

1、服务器端配置

服务器采用腾讯云的虚拟主机: 单核处理器、1GB内存、50GB硬盘空间 安装Windows Service 2012 R2操作系统 配置了Java编译运行环境 2、客户端配置

客户端为安卓4.0及以上系统

1.3 数据流图

口令 口令错误 正确 用户名,登录界面 密码核对 口令核对 发送聊天信息 聊天室 界面 接收聊天信息 图2.1 系统数据流图

查看连接状态 1.4 数据字典

数据流图表达了数据与处理的关系,数据流图作为直观了解系统运行机理的手段,并没有具体描述个类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。数据字典用来说明数据流图中出现的所有元素的详细定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。

数据字典包括的项目有数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。可使用一些符号来表示数据结构、数据流和数据存储的组成。

3

数据库课程设计(图书管理系统)

表2.1 数据相关

序号 1 2 3 数据流名 口令核对 好友列表 消息列表 来源 登录界面 用户好友列表 用户消息列表

组成 账户、密码 好友id,好友账户 说明 用户名,密码核对 生成好友列表 好友id,内容,类别 生成历史聊天记录 (1)用户=(id,username,name,passwd,sigh,sta,lxmsgcont,idThread),主码为id。

(2)某一用户的好友表=(id,username,peoid),主码为id

(2)某一用户的消息表=(id,content,fid,time,isme,lei),主码为id 。

4

数据库课程设计(图书管理系统)

第二章 概念结构设计

2.1 概念结构

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。

概念结构主要特点:

(1) 能真是、充分地反映显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个只是模型;

(2) 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。

(3) 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;

(4)易于向关系、网状、层次等各种数据模型转换;

概念结构时各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。

2.2 电子聊天室系统概念结构设计

现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。由于这个系统并不复杂,因此可采用自顶向下的设计方法。自顶向下设计的关键是确定系统的核心活动。所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。确定了核心活动之后,系统就有了可扩展的余地。对于这个电子聊天室系统,其核心活动是即时聊天,两个客户端之间是通过有相同内容的聊天记录进行同步的,此外,系统还有用户管理,存储用户基本信息及登陆口令,唯一标识。因此,此系统包含的实体有:

(l)用户:用于描述一名读者的基本信息,用读者ID来标识。 (2)某一用户的好友表:用于描述某一用户的所有好友ID。 (2)某一用户的消息表:某一以用户的所有消息。

5

数据库课程设计(图书管理系统)

经过初步分析,可以得到此系统中各实体所包含的基本属性如下: (1)用户(id,username,name,passwd,sigh,sta,lxmsgcont,idThread),主码为id。

(2)某一用户的好友表(id,username,peoid),主码为id

(2)某一用户的消息表(id,content,fid,time,isme,lei),主码为id 2.2.1 系统实体E-R图

图3.1 实体及其属性(一)

图3.2 实体及其属性图(二)

6

数据库课程设计(图书管理系统)

2.2.2 图书管理系统系统E-R图

图3.3 系统E-R图

7

数据库课程设计(图书管理系统)

第三章 逻辑结构设计

3.1 逻辑结构设计

概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子

模式。这就是数据库逻辑设计所要完成的任务。

数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R图转换

为关系模型;然后对关系模型进行优化,如下图所示

图4.1 逻辑结构设计过程

关系模型是由一组关系(二维表)的结合,而E-R模型则是由实体、实体的属性、实体间的关系三个要素组成。所以要将E-R模型转换为关系模型,就是将实体、属性和联系都要转换为相应的关系模型。

3.2电子聊天室系统逻辑结构设计

有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。根据转换规则,这个E-R转换的关系模式为:

(1)用户(id,username,name,passwd,sigh,sta,lxmsgcont,idThread),主码为id。

(2)某一用户的好友表(id,username,peoid),主码为id

(2)某一用户的消息表(id,content,fid,time,isme,lei),主码为id。

8

数据库课程设计(图书管理系统)

现在分析一下这些关系模式。由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三范式的关系模式。

9

数据库课程设计(图书管理系统)

第四章 物理设计

数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理设计。

数据库的物理设计通常分为两步:

(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构; (2)对物理结构进行评价,评价的中的是时间和空间效率。

4.1 关系中的关系模式

图书管理系统中的关系模式如下:

(1)用户信息表(id,username,name,passwd,sigh,sta,lxmsgcont,idThread),主码为id。

(2)某一用户的好友表(id,username,peoid),主码为id

(2)某一用户的消息表(id,content,fid,time,isme,lei),主码为id

4.2 基本表设计

利用MicrosoftSQLServer2012建立一个空数据库user,其中包括以下表。 create table [user](

id int identity (1,1) primary key, username varchar(20), name varchar(20), passwd varchar(20), sigh text, sta varchar(10), lxmsgcont int, idThread int )

10

数据库课程设计(图书管理系统)

表5.1 图书类别

字段名 id username name passwd sigh sta lxmsgcont idThread 数据类型 int varchar varchar varchar text varchar int int 数据长度 0 20 20 20 0 10 0 0 允许空 × √ √ √ √ √ √ √ 在用户注册时创建用户的消息列表

create table [xiaomsg](

id int identity (1,1) primary key, content text, fid int, time datetime, isme int, lei int )

表5.2 书籍信息表

字段名 id content fid time isme lei

数据类型 int text int datetime int int 数据长度 20 30 20 20 50 8 允许空 × √ √ √ √ √ 11

数据库课程设计(图书管理系统)

在用户注册时创建用户的消息列表

create table [xiaopeo](

id int identity (1,1) primary key, username varchar(20), peoid int )

表5.3 系统管理

字段名 id username peoid 数据类型 int varchar int 数据长度 20 20 20 允许空 × √ √ 12

数据库课程设计(图书管理系统)

第五章 数据库的实施和维护

数据库物理设计完成之后,需要用RDBMS提供的数据定义语言和其他使用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,在经调试产生目标文件。

5.1 数据的载入

1、向用户表中插入三条测试信息:

INSERT INTO [user] values ('xiao','小乌龟','a','小乌龟','离线',0,0) INSERT INTO [user] values ('fog','迷雾','a','迷雾','离线',0,0)

2、向用户好友列表中插入测试信息: INSERT INTO [xiaopeo] values ('fog',2) INSERT INTO [fogpeo] values ('xiao',1)

13

数据库课程设计(图书管理系统)

5.2 应用程序的调试

图6.1 聊天测试

连接数据库代码如下:

try{ Class.forName(\加载JDBC_MySQL驱动 }

catch(Exception e){System.out.println(\驱动\

String uri = \

14

数据库课程设计(图书管理系统)

String user =\

String password =\

try{

con = DriverManager.getConnection(uri,user,password); //连接代码 lication.con=con; }

catch(SQLException e){ } 数据查询代码如下:

public void run() { try { //链接数据库

sql=con.createStatement();

rs=sql.executeQuery(\查询

} catch(SQLException e) {}

Lists = new ArrayList(); try { //链接数据库 while(rs.next()) {

peolist peo = new peolist(); peo.setId(rs.getInt(\ peo.setNoReadMsg(peo.id);

peo.setLastMsg(\最后未读信息\ peo.setName(online(peo.id,\

peo.setUserName(rs.getString(\ peo.setId(rs.getInt(\ peo.setSta(online(peo.id,\ Lists.add(peo); }

} catch(SQLException e) {}

hand.sendEmptyMessage(0); }

public String online(int peoid,String key){ try { //链接数据库

sql=con.createStatement();

rs2=sql.executeQuery(\'\查询

while(rs2.next()) {

return rs2.getString(key); }

} catch(SQLException e) { }

return \错误\}

}).start();

15

数据库课程设计(图书管理系统)

5.3 数据库的维护

在数据库运行阶段,对数据库经常性的维护工作主要是有DBA完成,它包括:

1. 数据库的转储和恢复 2. 数据库的安全性和完整性控制 3. 数据库性能的监督、分析和改造 4. 数据库的重组织与重构造 5.3.1 维护

数据库既是共享的资源,又要进行适当的保密。DBA必须对数据库安全性和完整性控制负起责任。尤其在计算机网络普遍引应用的今天,保证数据安全、防止黑客攻击、防止病毒入侵等,都是DBA所需要面对的。按照设计阶段提供的安全防范和故障恢复规范,DBA要经常检查系统的安全是否受到侵犯,根据用户的实际需要授予用户不同的操作权限。数据库在运行过程中,由于应用环境发生变化,对安全性的要求可能发生变化,DBA要根据实际情况及时调整相应的授权和密码,以保证数据库的安全性。同样数据库的完整性约束条件也可能会随应用环境的改变而改变,这时DBA也要对其进行调整,以满足用户的要求。

5.3.2检测并改善数据库性能

目前许多DBMS产品都提供了检测系统性能参数的工具,DBA可以利用系统提供的这些工具,经常对数据库的存储空间及响应时间进行分析评价;结合用户的反映情况确定改进措施;及时改正运行中发现的错误;按用户的要求对数据库的现有功能进行适当的扩充。但要注意在增加新功能时应保证原有功能和性能不受损害。

5.3.3重新组织和构造数据库

数据库建立后,除了数据本身是动态变化外,随着应用环境的变化,数据库本身也必须变化以适应应用要求。

16

数据库课程设计(图书管理系统)

数据库运行一段时间后,由于记录在不断增加、删除和修改,会改变数据库的物理存储结构,使数据库的物理特性受到破坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。因此,需要对数据库进行重新组织,即重新安排数据的存储位置,回收垃圾,减少指针链,改进数据库的响应时间和空间利用率,提高系统性能。这与操作系统对“磁盘碎片”的处理的概念相似。数据库的重组只是使数据库的物理存储结构发生变化,而数据库的逻辑结构不变,所以根据数据库的三级模式,可以知道数据库重组对系统功能没有影响,只是为了提高系统的性能。

由此可知,数据库的重组并不会改变原设计的数据逻辑结构和物理结构,而数据库的重构造则不同,它部分修改原数据库的模式或内模式,这主要是因为数据库的应用环境发生了变化,如需求变化、设计调整等。例如增加新的数据项、改变数据类型、改变数据库的容量、增加或删除索引、修改完整性约束等。

DBMS一般都提供了重新组织和构造数据库的应用程序,以帮助DBA完成数据库的重组和重构工作。

只要数据库系统在运行,就需要不断地进行修改、调整和维护。一旦应用变化太大,数据库重新组织和构造也无济于事,这就表明数据库应用系统的生命周期结束,应该建立新系统,重新设计数据库。从头开始数据库设计工作,标准着一个新的数据库应用系统生命周期的开始。

17

数据库课程设计(图书管理系统)

第六章 结论与体会

通过这次设计,我们受益非浅,亲身体验了数据库设计的全过程,在实践中了解了数据库系统设计的步骤、流程以及思路,增长了在数据库设计方面的见识,我们深刻认识到以前所学的基础课程的重要性,也使我们掌握了很多新知识,特别是一些课本之外的知识,体会到了理论知识和实践相结合的重要性。经过一个多月的设计和开发,数据库系统设计基本上完成。其功能基本符合要求,此系统能够实现课程设计任务书中所要求的全部功能,并在一定程度上按照自己的思路进行了补充。由于课程设计的时间较短,有很多不尽如人意的地方还没来得急解决,比如,逻辑结构设计部分做得还不是很好,只能说是完成了这个部分,这是因为自己对逻辑结构设计部分的真正了解还不够,很多问题要在以后的系统维护中,来慢慢发现,并将其解决。

最后,感谢老师在课程设计的过程中对我们的帮助。在整个课程设计过程中,我们得到了申老师的悉心指导和大力支持,使我们的专业知识有了很大的提高。老师在工作中认真负责对学生的关心爱护,都是我们在以后的学习和工作中的榜样。

18

本文来源:https://www.bwwdw.com/article/1h9x.html

Top