学士学位论文—-基于php技术无线数据采集系统数据库论文设计.doc
学 生 毕 业 设 计(论 文)论文题目: 基于PHP技术无线数据采集系统数据库设计 姓 名: 学 号: 专业班级: 所属系部: 指导老师:_职称:_完成时间:_ 【摘要】:随着Internet在中国的迅速发展,人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务.由于WEB页面能把文本、图像、声音、动画、视像等多种媒体信息集于一体,不但使信息的显示更加生动,而且使信息的浏览更为方便,同时WEB页能实现网上交易平台、客户信息反馈方便了企业与客户之间信息交流,用户可以通过移动设备或者计算机网络发布控制命令,控制现场设备。通过无线传感器网络采集现场信息,并利用嵌入式网关将所采集信息利用GPRS移动网络发送至网站,并可以通过网络直接访问嵌入式系统,并查询信息和发布控制命令。【关键词】:PHP,MYSQL,管理系统,数据库【Abstract】: With the rapid development of Internet in China, people's daily life more and more use of this new technology for their own work and learning services. WEB page can text, images, sounds, animation, depending onlike the other multi-media information set in one, not only more vivid display of information, and information browsing more convenient, while the wEB page online trading platform, customer feedback facilitates the exchange of information between enterprises and customers, userscan be released by mobile device or computer network control commands to control the field devices. The collection site information through wireless sensor networks, and the use of embedded gateway to the collection of information sent to the site of the GPRS mobile network, and can be accessed directly through the network of embedded systems, and query the information and release the control commands.【Key words】: PHP, MYSQL, management systems, databases1目 录1前言- 4 -1.1系统开发的环境- 4 -1.2MySQL数据库简介- 4 -1.3Apache服务器简介- 4 -1.4PHP语言简介- 5 -22 开发平台的搭建- 5 -2.1开发平台的搭建- 5 -2.1.1PHP安装- 6 -2.1.2Mysql安装- 7 -2.2php操作mysql数据库流程整理- 9 -3数据库系统的详细设计- 12 -3.1系统的需求规划- 12 -3.2数据库系统总工作流程图- 12 -3.3数据库设计部分- 14 -3.4系统的主要表单形式- 17 -3.5关键技术- 18 -3.6用户数据表- 22 -4总结及致谢- 24 -5参考文献- 25 -1 前言1.1 系统开发的环境本数据库在Linux平台下应用,采用Apache+Php+MySQL建设。1.2 MySQL数据库简介MySQL(发音为“my ess cue e”,不是“my sequel”)是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C+、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。MySQL开发组计划于2001年中期公布MySQL4.0版本。在这个版本中将有以下新的特性被提供:新的表定义文件格式、高性能的数据复制功能、更加强大的全文搜索功能。在此之后,MySQL开发着希望提供安全的数据复制机制、在BeOS操作系统上的MySQL实现以及对延时关键字的定期刷新选项。随着时间的推进,MySQL将对ANSI 92/ANSI 99标准完全兼容。1.3 Apache服务器简介apache是世界排名第一的web服务器, 根据netcraft所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. Apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中。1.4 PHP语言简介PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对MYSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。 PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。PHP(Personai Home Page)是一种易于学习和使用的服务器端脚本语言.只需要很少的编程知识就能使用PHP建立一个真正交互的web站点。2 2 开发平台的搭建2.1 开发平台的搭建先从各官方网站下载APACHE2.050、PHP5、MYSQL4.0.20、PHPMYADMIN2.57 apache_2.0.50-win32-x86-no_ssl.msi php-5.0.0-Win32.zip mysql-4.0.20d-win.zip phpMyAdmin-2.5.7.zip 2.1.1 PHP安装(1) 下载后得到 php-5.1.2-Win32.zip ,解压至D:mywebphp(这个路径可以随意,不过下面要是用到这个路径,请相应修改);(2)将 D:mywebphplibmysql.dll 和 D:mywebphpextphp_mysql.dll 复制到 C:Windowssystem32 下;(3)将D:mywebPHPphp.ini-dist 复制到C:Windows ( Windows 2000 下为 C:WINNT)并将改名为php.ini,然后用记事本打开,利用记事本的查找功能搜索:extension_dir = "D:mywebphpext"将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir = "D:mywebphpext" ;搜索;Windows Extensions并仅打开需要的模块以节省内存(去掉每个模块前的;号即可):extension=php_gd2.dllGD库支持,如果不打开该模块则Discuz!数据库系统图片水印不能使用。extension=php_mbstring.dll为了支持phpMyAdmin,打开mbstring。extension=php_mysql.dll不用说了吧,支持MySQL。(4)配置 IIS 使其支持 PHP首先必须确定系统中已经正确安装 IIS ,如果没有安装,需要先安装 IIS。PHP 与IIS整合时支持 CGI 和 ISAPI 两种模式,推荐使用 ISAPI 模式。这里只解介绍 ISAPI 模式安装方法:ISAPI 模式安装步骤:在“控制面板”的“管理工具”中选择“Internet 服务管理器”,打开 IIS 后停止服务,然后在左侧“你需要支持PHP的Web站点上单击右键选择“属性”,在打开的“ Web 站点属性”窗口的“ISAPI 筛选器”标签里找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将可执行文件指向 php5isapi.dll 所在路径,如:D:mywebPHPphp5isapi.dll 。打开“Web 站点属性”窗口的“主目录”标签,找到并点击“配置”按钮,在弹出的“应用程序配置”窗口中找到并点击“添加”按钮,在弹出的窗口中新增一个扩展名映射,扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll 所在路径,如:D:mywebPHPphp5isapi.dll,然后一路确定即可。再打开“Web 站点属性”窗口的“文档”标签,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。确定 Web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 Internet 信息服务管理器,在命令提示符中执行如下命令:net stop w3svcnet stop iisadminnet start w3svc然后在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许打开浏览器,输入:http:/localhost/,看到成功页面后,在 IIS 根目录下新建一个 phpinfo.php ,内容如下:<?phpphpinfo();?>打开浏览器,输入:http:/localhost/phpinfo.php,将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API的模式为:ISAPI 。2.1.2 Mysql安装Mysql的安装文件可以直接到 下载,获得for win32的.zip包,建议选择4.0.20d版本。这里不详细说明。 下载获得Mysql的for win32安装包后,用winzip解压缩,直接运行setup.exe,需要注意的是选择一个安装路径,当然,安装路径可以任意,建议选择C:MySQL目录。安装完成后MySQL也就完成了。默认的用户名是root,密码为空。Mysql安装完成后,请通过开始程序附件命令提示符进入:录入cd C:mysqlbin 并按下回车键,将目录切换为 cd C:mysqlbin在 C:mysqlbin> 命令提示符下录入 mysqld-nt -install 命令,然后按下回车,如果出现 Service successfully installed 的提示, 这表示你已成功的将 MySQL 安装成一项 Windows 的服务。点击 开始程序管理工具服务 ,你可以看到Mysql已经成为众多服务项目中的一项,不过此时它还未被启动, 因此接下来我们就来启动它。启动 MySQL 服务的方法有以下三种,请自行选择其中一种来进行:重启机器时自动启动它在服务窗口中选取 MySQL 服务名称,然后按下启动按钮来启动它在“命令提示字符”窗口中输入 NET START MySQL 指令来启动它Mysql数据安装完成,系统会默认生成一个名为test的数据库。一般情况下,由于该数据需要用root用户进行访问,从安全性角度而言,我们建议你新建一个数据库,并给这个数据库分配一个新的用户来访问。由于Mysql数据库默认的客户端功能比较少,不支持数据库的建立和用户的新增。其他比如Mysql-front等工具带了这些功能,您可以去下载这些工具来使用,当然,你也可以通过以下介绍的命令行方式来新增用户与数据库。登录数据库“命令提示字符”窗口录入,录入cd C:mysqlbin 并按下回车键,将目录切换为 cd C:mysqlbin再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>修改密码C:mysqlbin提示符下录入:格式:mysqladmin u用户名 -p旧密码 password 新密码 例如:给root加个密码ab12。键入以下命令:mysqladmin -uroot password ab12建立数据库格式:create database 库名;例如:建立新数据库shopex在MYSQL的提示符下:mysql> 录入 create database shopex;显示数据库格式:show databases;注意是databases而不是database 建立新用户格式:grant all privileges on 数据库.* to 用户名登录主机 identified by "密码";例如:增加一个用户test密码为1234,让他只可以在localhost上登录,并可以对数据库Shopex进行所有的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),在MYSQL的提示符下:mysql> 录入grant all privileges on shopex.* to testlocalhost identified by "1234"通过以上操作,你建立一个新的数据库 shopex,并增加了一个名为test对shopex数据库有所有操作权限。注意:以上仅仅是简单的Mysql操作命令,如果你需要了解更加详细的资料,请查阅Mysql相关操作说明文档。接下去的安装就要看你选择什么作为你的Web服务器了,建议直接使用IIS。2.2 php操作mysql数据库流程整理<?php/* 第一步:定义变量 */$host = 'localhost' /访问mysql 主机IP或者主机名$dbuser = 'root' /mysql 用户名$dbpassword = '123'/mysql 密码$dbname ='data' /数据库名称/*第二步:建立mysql连接*/$link = mysql_connect($host,$dbuser,$dbpassword) or die('数据库无法建立连接');/*第三步:选择数据库*/mysql_select_db($dbname,$link) or die('数据库选择出错');/*第四步:设置mysql数据显示字符集*/mysql_query('set names utf8',$link);/*第五步:定义要数据库执行的sql语句*/$sql = "select uid,uname,uemail from data_user "/结尾不用加“;”/*第六步:执行sql语句返回结果集,结果集是结果集资源类型,可以认为是由数据库每一行数据作为元素而组成的数组,*/$result = mysql_query($sql,$link);/*第七步:遍历结果集中的每一行*/第一种 返回数值数组while($row = mysql_fetch_row($result)echo 'uid:'.$row0.' uname:'.$row1.' uemail:'.$row2;/第二种 返回键值数组while($row = mysql_fetch_assoc($result)echo 'uid:'.$row'uid'.' uname:'.$row'uname'.' uemail:'.$row'uemail'/*第八步:释放记录集资源*/mysql_free_result($result);/*第九步:释放数据库链接*/mysql_close($link);/*注1:关于部分mysql函数的使用*/获得insert,update,delete操作上一次执行影响行数:mysql_affected_rows();/获得select执行结果集中的行数:mysql_num_rows($result);/获得insert成功执行后的插入的编号:mysql_insert_id(); /该编号在数据库中的列应为自动增长的数值型字段/mysql_error();返回数据库错误信息/mysql_errno();返回数据库错误号码/*注2:,$link和$link为可选参数,如果不写mysql默认会使用上一次链接*/*补充内容:详细信息请参考php5手册array mysql_fetch_array ( resource result , int result_type ); /返回结果包含mysql_fetch_row()和mysql_fetch_assoc();resource mysql_pconnect ( string server , string username , string password , int client_flags );/建立mysql持久链接resource mysql_unbuffered_query ( string query , resource link_identifier );/不在内存中缓存结果集bool mysql_create_db ( string database name , resource link_identifier ); /创建数据库int mysql_thread_id ( resource link_identifier );/返回当前线程IDbool mysql_ping ( resource link_identifier );/检查服务器链接是否正常*/?>3 数据库系统的详细设计3.1 系统的需求规划用户使用数据库系统,有一定的流程:用户注册登录进入数据库系统,通过管理功能创建、编辑、删除数据库系统的板块,设置数据库系统的基本参数。这样的流程就决定了数据库系统的需求。下面是系统的功能需求和分析:(1)用户类有登录和管理2个方法,管理方法又分为修改、删除和设置权限3个子方法,如图3.1所示:用户管理员修改个人信息注册登录设置权限添加删除管理用户图3.1管理员与用户关系(2)用户功能:1) 管理员登陆:对于管理员(已获审批),可以凭其用户名和密码进入系统。2) 发表主题:用户发表一个讨论的主题,包括标题和正文等。3) 数据编辑:管理员可以对所有GSM传输过来的数据进行编辑、转移,删除等操作。(4)管理员功能:1) 删除数据:超级管理员可以删除数据库中的任何数据;(5)性能需求:1) 会员管理员权限区分;2) 任何地方无编译错误;3) 页面美观大方,操作方便直观,有安全保障机制。3.2 数据库系统总工作流程图(1)注册登录搜索管理板块浏览板块管理用户编辑数据数据分类管理数据管理员用户浏览者图3.3 数据库系统工作流程图从流程3.3图上可以看到数据库系统完成的走向,每一个流程的节点处都有许多功能。(3)数据库系统功能和用户权限对应表:数据库系统一般存在两种用户,分别为普通用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,在这里的数据库系统中,管理员的权限是上级权限。接下来,需要归好类的对象及其方法分配给不同的数据库系统用户。具体功能的分配结果见表3.6所示:表3.6用户权限对应对象实体功能方法用户类型数据库系统设置参数管理员板块浏览列表浏览者创建板块管理员修改板块管理员删除板块管理员数据搜索浏览者编辑(自己所有)注册用户编辑(全部)管理员删除管理员转移管理员用户注册浏览者登陆注册用户管理员登陆管理员添加管理员删除管理员设定权限管理员3.3 数据库设计部分(1)数据库: xxu_jsj命令:CREATE DATABASES xxu_js;(2)表的结构 data_admin命令:CREATE TABLE IF NOT EXISTS data_admin (name varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT '管理员名',password varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT '管理员密码',PRIMARY KEY (name) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='管理员'-(3)表的结构 data_notice命令:CREATE TABLE IF NOT EXISTS data_notice (ID int(8) unsigned NOT NULL auto_increment,title varchar(32) collate utf8_unicode_ci NOT NULL COMMENT '公告标题',content text collate utf8_unicode_ci NOT NULL COMMENT '公告内容',Ndate datetime NOT NULL COMMENT '公告发布时间',PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='公告信息' AUTO_INCREMENT=10 ;- (4)表的结构 data_plate命令:CREATE TABLE IF NOT EXISTS data_plate (ID int(8) NOT NULL auto_increment COMMENT '板块ID',name varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT '板块名称',PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='板块' AUTO_INCREMENT=6 ;(5)表的结构 data_posts命令:CREATE TABLE IF NOT EXISTS data_posts (PID bigint(16) NOT NULL auto_increment COMMENT '传感器ID',Pname varchar(64) character set gb2312 collate gb2312_bin NOT NULL COMMENT '传感器标题',Pcontent text character set gb2312 collate gb2312_bin NOT NULL COMMENT '传感器内容',Pauthor varchar(32) character set gb2312 collate gb2312_bin NOT NULL default '佚名' COMMENT '传感器作者',Pplate int(8) NOT NULL COMMENT '传感器所属板块',Pdate datetime NOT NULL COMMENT '传感器数据时间',PRIMARY KEY (PID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='传感器表' AUTO_INCREMENT=47 ;(6)表的结构 data_reply命令:CREATE TABLE IF NOT EXISTS data_reply (RID int(32) NOT NULL auto_increment COMMENT '编辑ID',Rauthor varchar(32) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '编辑作者',Rcontent text character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '编辑内容',Rdate datetime NOT NULL COMMENT '编辑时间',RPID int(32) NOT NULL COMMENT '所属传感器',Rfloor int(16) NOT NULL COMMENT '编辑次数',PRIMARY KEY (RID) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='回复传感器' AUTO_INCREMENT=74 ;(7)表的结构 data_resources命令:CREATE TABLE IF NOT EXISTS data_resources (REID 0r set utf8 collate utf8_unicode_ci NOT NULL COMMENT '资源名称',RElength varchar(16) NOT NULL COMMENT '资源大小',RElink varchar(256) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '链接地址',REmarks text character set utf8 collate utf8_unicode_ci COMMENT '资源备注信息',REtime datetime NOT NULL COMMENT '更新时间',PRIMARY KEY (REID) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='资源列表' AUTO_INCREMENT=26 ;(8)表的结构 data_webinfo命令:CREATE TABLE IF NOT EXISTS data_webinfo (WID int(16) unsigned NOT NULL auto_increment COMMENT '网站信息ID',Wname varchar(32) collate gb2312_bin NOT NULL COMMENT '信息名',Waddress varchar(64) collate gb2312_bin NOT NULL COMMENT '信息所在处',Wcontent text collate gb2312_bin NOT NULL COMMENT '信息内容',Walt varchar(64) collate gb2312_bin NOT NULL COMMENT '注释信息',PRIMARY KEY (WID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT='网站信息表' AUTO_INCREMENT=9 ;(9)表的结构 blog_lm命令:CREATE TABLE IF NOT EXISTS blog_lm (LID bigint(32) unsigned NOT NULL auto_increment COMMENT '留言ID',Lauthor varchar(32) collate gb2312_bin NOT NULL COMMENT '留言人',Lcontent text collate gb2312_bin NOT NULL COMMENT '留言内容',Ldate datetime NOT NULL COMMENT '留言时间',LUID bigint(32) NOT NULL COMMENT '留言对象',PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT='留言表' AUTO_INCREMENT=1 ;(10)表的结构 blog_log命令:CREATE TABLE IF NOT EXISTS blog_log (LID bigint(32) unsigned NOT NULL auto_increment COMMENT '日志ID',Ltitle varchar(64) collate gb2312_bin NOT NULL COMMENT '日志标题',Lauthor varchar(32) collate gb2312_bin NOT NULL COMMENT '日志作者',Lcontent text collate gb2312_bin NOT NULL COMMENT '日志内容',Ldate datetime NOT NULL COMMENT '日志发表时间',Lcategory varchar(32) collate gb2312_bin default NULL COMMENT '文章分类',PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT='用户日志' AUTO_INCREMENT=2 ;(11)表的结构 blog_music命令:CREATE TABLE IF NOT EXISTS blog_music (MID bigint(32) unsigned NOT NULL auto_increment COMMENT '音乐ID',Mname varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT '音乐名',Maddress varchar(255) character set gb2312 collate gb2312_bin NOT NULL COMMENT '音乐地址',Mdate datetime NOT NULL COMMENT '音乐上传时间',Mauthor varchar(32) character set gb2312 collate gb2312_bin N