校友信息管理系统的设计与实现.doc_第1页
校友信息管理系统的设计与实现.doc_第2页
校友信息管理系统的设计与实现.doc_第3页
校友信息管理系统的设计与实现.doc_第4页
校友信息管理系统的设计与实现.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

摘要 i 本 科 毕 业 论 文 校友信息管理系统的设计与实现校友信息管理系统的设计与实现 指 导 老 师 : 学 生 姓 名 : 学 号 : 院 系 :网络教育学院 专 业 :计算机机科学与技术 毕 业 时 间 : 摘要 ii 毕毕 业业 论论 文文 任任 务务 书书 1.收集资料:针对选题收集有关资料。通过学校图书馆、相关网站和专 业书籍,利用电子阅览室的网络资源等途径搜集有关资料,并对相关资料 进行系统的整理、分析、归纳 。 2.要求方面:系统要求实现学校范围内校友信息的管理、检索、添加和 统计管理等功能。通过 php、mysql 编程环境完成系统的编写。 3.内容方面: 1绪论 2数据库的理论基础 3开发工具与开发语言介绍 4需求分析 5系统各模块的实现 6系统的测试 摘要 iii 摘要摘要 随着互联网的发展,网络信息资源也不断的丰富,而以动态性和交互 性为特征的网络信息管理是当中最丰富、最开放和最自由的网络信息资源, 是最受欢迎的一种信息交流方式。目前实现网络信息管理功能的开发语言 多种多样,主要有 php、jsp、asp 和 asp.net,其中 php 借助于开源的 优势势必将成为网络开发的必然趋势。 以前,学校的校友信息管理基本上是靠手工进行。如今,随着学校的 规模增大,有关已经工作的校友信息管理工作所涉及的数据量越来越大,有 的学校不得不靠增加人力、物力来进行校友信息管理。但手工管理具有效 率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等缺点。 因此,使用效率更高的方式来处理这些数据就更显得重要了。 本文就该系统进行分析和整体的介绍,并介绍了使用 php + myqsl 技 术开发该系统的相关模块的整个过程。该系统主要利用了 php 强大的网络 数据库访问技术,与 mysql 的强大的数据库功能来实现主要功能。系统设 计并实现了校友基本信息管理,包括对校友信息的查询、录入、修改和删 除 关键词:关键词: php,mysql,网络数据库访问技术,管理 摘要 ii the research and implementation of pe documentary virus base on win32 platform abstractabstract with the development of the internet, network information resources is constantly enriched, but to be a dynamic and interactive information management for the characteristics of the network is among the richest and most open and free network information resources, is the most popular way of information exchange. the current implementation information management of the network feature of development languages is multiplicity, mainly php, jsp, asp and asp.net, php with the help of the open source advantage is bound to become an inevitable trend of internet development. previously, alumni information management is basically by hand. nowadays, with the school scale increases, data volume involved in the alumni information management work becomes bigger and bigger. some schools have to increase more manpower and material resources for better information management. however, the manual management has several shortcomings such as low efficiency, error-prone, slow retrieval of information, decision-making information more difficult to provide and so on. therefore, using high efficiency ways of dealing with these data is particularly important. this article is to introduce and analyze the information management system. it decribes the whole process of using the php+mysql technology to develop the related modules. the system has mainly used the php formidable network database access technology and the mysql formidable database function to realizes the students basic information management, including the query, recorded, modify and delete functions for alumnis information. keywords:php, mysql, network database access technology,management 目录 目录目录 摘要摘要 .i abstract.2 目录目录.3 第一章第一章 绪论绪论.1 1.1 课程设计的背景 .1 1.2 课题设计的目的和意义 .2 1.3 系统设计方案 .3 第二章第二章 数据库的理论基础数据库的理论基础.5 2.1 mysql 数据库基本介绍5 2.1.1 名称简介 .5 2.1.2 自身特性 .5 2.1.3 应用环境 .6 2.1.4 管理软件 .6 2.1.5 存储引擎 .6 2.1.6 应用架构 .7 2.1.7 索引文件 .7 2.1.8 文件优化 10 2.1.9 mysql-安装注意 11 2.2 mysql 数据库技术.11 2.2.1 速度快11 2.2.2 连接性和安全性12 2.2.3 可移植性12 2.2.4 它支持 sql 语言12 2.2.5 容易使用12 2.2.6 成本优势12 第三章第三章 开发工具与开发语言介绍开发工具与开发语言介绍.13 3.1 开发工具介绍 .13 3.2 php,apache,phpmyadmin介绍14 3.2.1 php 简介.14 3.2.2 php 特性.15 3.2.3 apache 简介17 目录 3.2.4 phpmyadmin 简介21 第四章第四章 需求分析需求分析.22 4.1 系统的运行环境 22 4.1.1 硬件需求22 4.1.2 软件需求 22 4.2 系统需求分析 22 4.3 系统模块划分 .23 4.44.4 系统数据库设计规范和存储说明系统数据库设计规范和存储说明23 第五章第五章 系统各模块的实现系统各模块的实现.26 5.1 服务器的设置 26 5.2 设置数据库 26 5.2.1 创建数据库和数据表 26 5.2.2 数据库的连接 28 5.2.3 创建数据源 28 5.2.4 常用的数据库命令 29 5.3 系统开发思想及设计原则 30 5.3.1 系统开发思想 30 5.3.2 系统开发的设计原则 31 5.4 系统功能实现 31 5.4.1 系统首页 31 5.4.2 系统登录前 33 5.4.3 系统登录 34 5.4.4 添加校友信息 37 5.4.5 查询模块 40 5.4.6 校友信息修改 42 5.4.7 校友信息查看 42 5.4.8 校友信息删除 43 5.4.9 注销登录 43 第六章第六章 系统的系统的测测试试.45 第七章第七章 设计总结与体会设计总结与体会.47 致谢致谢.48 第一章 绪论 第 1 页 共 47 页 第一章第一章 绪论绪论 在绪论中,主要介绍了为什么要选择这个课程设计,选择这个课程设计的意义在 哪里。同时,还介绍在这个课程设计的方案,包括实现的一种形式及其主体部分。 在生活景况不断提升的情况下,人类对知识文化的追求也不断地提升,同时也影 响了整个社会经济、技术地不断提升。在一拨又一拨的学生从校园走出去时,学校的 档案室中不断地累积他们的记录,给学校带来了无比重大的负担,为了不放下这些负 担的同时解决好,我们借用了网络这个平台,去实现网络存储校友信息,芯片管理信 息。 1.1 课程设计的背景 在电子计算机技术发展日新月异的今天,计算机技术、网络技术和信息技术的发 展和应用早已深入到了各行各业,并发挥着它们的巨大潜力,特别是网络的高速化、 广泛化发展和运用,更使得人类在任何行业都借用这个平台去管理远方的信息。 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机 被广泛应用真正原因所在,并且计算机给信息管理系统提供了一个良好的环境。计算 机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了 工作效率,而且大大的提高了安全性。 当前国内外人员管理信息较大,工作繁琐,管理模式还不够完善。究其原因在于 没有一个良好的管理系统。使用计算机管理能够便于管理决策人员迅速掌握情况,加 快人员管理工作的现代化进程。尤其对于复杂的信息管理,计算机能够充分发挥它的 优越性。该系统就是为了管理好院校校友信息而设计的。 作为一个有着悠久的历史老校或者刚刚崛起的新校,都有着一个共同点管理 学生信息,管理老师信息,管理已毕业离校在外的校友信息。这所有的信息都不能丢 失,而且还要保护它的完整性。仅仅是手工管理的话,难免会出现信息丢失,或者信 息毁灭的现象。如果出现一种完善的管理系统,那么这所有的信息都将被一一记载, 不丢失、不毁灭,永远存储在一个简单的硬件壳里。 在庞大信息处理面前,手工操作是可以,但将会浪费很多的人力、物力以及财力, 而且手工操作比较容易出错,又不易查找。如果将信息存储在一个记忆器里,用一个 系统不停地将它存进或者取出,更或者是修改、删除,那将是一个简单的操作,不仅 节约时间,更节约了人力、物力和财力。所以,在信息处理面前,我们要有一个规范 的管理手段,那就是完善的管理系统。 第一章 绪论 第 2 页 共 47 页 计算机出现的年代已很久,但真正被用于处理各种各样的信息却有了不少的限制。 如今经济发展了,科技随着发展了,经济又进一步再发展了,人们对信息处理有了更 高的要求,一不希望累了自己,二不希望该留的信息突然消失、难于查询。所以如今 的计算机将被广泛利用起来,发挥它真正的效力,不再被闲置一旁。编辑好一个管理 系统,装载在计算机中,不断地运行,不断地操作,不断地存储,将该存的存,该改 的改,该删的删,该提取出来的提取出来。 校友信息管理系统是计算机技术和网络技术迅速发展的一个高校办公应用解决方 案。高校校友信息管理系统将网络技术与现代管理观念相融合,针对信息技术的特点 对办公系统进行规划和重构,对内部信息流进行优化和合理的配置,生成动态的、安 全的、专有的数字化信息源,将办公体系全面自动化、流程化、数字化。以此桥梁, 横向连接校友间的感情交流与知识学习,纵向实现高校一体化的高效办公系统,从而 更明确、更有效地支持高校的管理和决策。 由此,建立一个校友信息管理系统成了一个高校的必要,这样将使得校友信息管 理工作规范化、系统化、程序化、简约化、远距离传输化,避免了校友信息更新不及 时,提高了信息处理的速度和准确性,能够及时、准确、有效地查询和修改、存储校 友信息现状。 1.2 课题设计的目的和意义 随着人类的发展、科学技术的提升,信息的收集也在一步一步地往简单易化中行 进。网络成了现代人远距离收集信息的最有效、最方便、最迅速的媒介。 作为一个高校,每年都会有新生进毕业生出的现象。一旦毕业生走出校门,要想 一直保留着有效信息是一件费时间、人力、物力的事情。那么,出现一个管理系统 随时随地都可以记录个人有效信息成了一种必然。 由嵌入 html 中的语言 php 加 mysql 所开发出来的信息管理系统正符合学校的 这种需求。只要每一个曾经在此学校就读过的学生登陆学校网站,链接进入“校友管 理系统” ,便可快速、有效地记录、修改、查询个人信息。同时,根据用户的不同需求, 能够准确、迅速地找到与之匹配的校友,给校友间保持友谊提供了一个很好的平台。 具有一定的应用价值。 校友管理信息是对校友进行有效管理、正确决策的重要依据,将校友管理系统内 的各种数据加以收集处理后获得的校友管理信息,可用于校友管理部门对系统的诸多 因数进行调节,达到优化管理进程、提高信息管理水平,保证校友管理协调,达到高 效运转的目的。校友信息管理过程是管理人员和校友共同参与的过程,校友管理信息 涉及到从管理人员到教师、在校学生、刚毕业离校学生、已工作多年的远方校友整个 发展的各种信息。信息收集与使用的难度大是高校实现信息化管理的重点和难点。高 第一章 绪论 第 3 页 共 47 页 效而准确的校友信息管理是提高高校办学质量、实现高校信息管理一体化所必不可缺 少的重要手段,教育部颁发与实施的本科教学水平评估工作对校友管理信息化工作提 出了更高的要求;建立以信息技术与数据库技术为基础的校友管理信息系对于规范管理 过程,实现各种校友自由流动过程信息的快速攫取、查询、避免人为统计出现的偏差 与信息丢失、提高校友信息管理的质量与效率、满足本科教学水平评估的要求具有重 要意义。 对于普通高校来说,利用计算机支持学校高效率完成校友信息管理的日常事务, 是适应现代化信息管理的要求,推动学校管理走向科学化、规范化的必要条件;计算 机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、 寿命长、成本低等,这些优点能够极大地提高校友信息管理的效率,也是学校信息管理 的科学化、正规化,与世界接轨的重要条件。 1.3 系统设计方案 因为借用了 php、mysql、apache 这些免费工具所设计处理具有动态性、高效性、 安全性的网络平台,可以实现的功能主要包括查询校友信息、添加或者插入校友信息、 修改校友信息、删除校友信息等。 根据所设想的功能,可以得出校友信息管理系统流程图: 第一章 绪论 第 4 页 共 47 页 开始 管理员登陆 检查密码检查密码 管理 员界 面 添加 修改 删除 查询 用户登陆 用户 界面 个人添加 个人修改 个人删除 个人查询 结束 第二章 数据库的理论基础 第 5 页 共 47 页 第二章第二章 数据库的理论基础数据库的理论基础 2.1 mysql 数据库基本介绍 mysql 是一个小型关系型数据库管理系统,开发者为瑞典 mysqlab 公司。在 2008 年 1 月 16 号被 sun 公司收购。而 2009 年,sun 又被 oracle 收购.对于 mysql 的前 途,没有任何人抱乐观的态度.目前 mysql 被广泛地应用在 internet 上的中小型网站中。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网 站为了降低网站总体拥有成本而选择了 mysql 作为网站数据库。 2.1.1 名称简介名称简介 mysql 最初的开发者的意图是用 msql 和他们自己的快速低级例程(isam)去连 接表格。不管怎样,在经过一些测试后,开发者得出结论:msql 并没有他们需要的 那么快和灵活。这导致了一个使用几乎和 msql 一样的 api 接口的用于他们的数据库 的新的 sql 接口的产生,这样,这个 api 被设计成允许为用于 msql 而写的第三方代 码更容易移植到 mysql。 mysql 这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀 “my”已经有 10 年以上,而且不管怎样,mysql ab 创始人之一的 montywidenius 的女儿也叫 my。这两个到底是哪一个给出了 mysql 这个名字至今依然是个迷,包括 开发者在内也不知道。 mysql 的海豚标志的名字叫“sakila” ,它是由 mysql ab 的创始人从用户在“海 豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰 的开源软件开发者 ambrose twebaze 提供。根据 ambrose 所说,sakila 来自一种叫 siswati 的斯威士兰方言,也是在 ambrose 的家乡乌干达附近的坦桑尼亚的 arusha 的 一个小镇的名字。 2.1.2 自身特性自身特性 1.使用 c 和 c+编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持 aix、freebsd、hp-ux、linux、mac os、novell netware、openbsd、os/2 wrap、solaris、windows 等多种操作系统。 3.为多种编程语言提供了 api。这些编程语言包括 c、c+、python、java、perl、php、eiffel、ruby 和 tcl 等。 第二章 数据库的理论基础 第 6 页 共 47 页 4.支持多线程,充分利用 cpu 资源。 5.优化的 sql 查询算法,有效地提高查询速度。 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一 个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 gb 2312、big5, 日文的 shift_jis 等都可以用作数据表名和数据列名。 7.提供 tcp/ip、odbc 和 jdbc 等多种数据库连接途径。 8.提供用于管理、检查、优化数据库操作的管理工具。 9.可以处理拥有上千万条记录的大型数据库。 2.1.3 应用环境应用环境 与其他的大型数据库例如 oracle、db2、sql server 等相比,mysql 自有它的不 足之处,如规模小、功能有限(mysql cluster 的功能和效率都相对比较差)等,但是 这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说, mysql 提供的功能已经绰绰有余,而且由于 mysql 是开放源码软件,因此可以大大 降低总体拥有成本。 目前 internet 上流行的网站构架方式是 lamp(linux+apache+mysql+php) ,即 使用 linux 作为操作系统,apache 作为 web 服务器,mysql 作为数据库,php 作为 服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(floss),因此使用 这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。 2.1.4 管理软件管理软件 可以使用命令行工具管理 mysql 数据库(命令 mysql 和 mysqladmin),也可以从 mysql 的网站下载图形管理工具 mysql administrator 和 mysql query browser。 phpmyadmin 是由 php 写成的 mysql 资料库系统管理程式,让管理者可用 web 界面管理 mysql 资料库。 phpmybackuppro 也是由 php 写成的,可以透过 web 界面创建和管理数据库。它 可以创建伪 cronjobs,可以用来自动在某个时间或周期备份 mysql 数据库。 另外,还有其他的 gui 管理工具,例如早先的 mysql-front 以及 ems mysql manager,navicat 等等。 2.1.5 存储引擎存储引擎 myisam mysql 的默认数据库,最为常用。拥有较高的插入,查询速度,但不支 持事务。 innodb 事务型数据库的首选引擎,支持 acid 事务,支持行级锁定。 第二章 数据库的理论基础 第 7 页 共 47 页 bdb 源自 berkeley db,事务型数据库的另一种选择,支持 commit 和 rollback 等其他事务特性。 memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但 是会占用和数据量成正比的内存空间。并且其内容会在 mysql 重新启动时丢失。 merge 将一定数量的 myisam 表联合而成一个整体,在超大规模数据存储时很有 用。 archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读 取。archive 拥有高效的插入速度,但其对查询的支持相对较差。 federated 将不同的 mysql 服务器联合起来,逻辑上组成一个完整的数据库。非常 适合分布式应用。 cluster/ndb 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和 安全性。适合数据量大,安全和性能要求高的应用。 csv 逻辑上由逗号分割数据的存储引擎。 blackhole 黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的 中继。 example 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 mysql 源 代码中的一个例子,用来演示如何开始编写一个新存储引擎。 同样,它的主要兴趣是 对开发者。example 存储引擎不支持编索引。 另外,mysql 的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己 的存储引擎。 2.1.6 应用架构应用架构 单点(single) ,适合小规模应用。 复制(replication) ,适合中小规模应用。 集群(cluster) ,适合大规模应用。 mysql 架构及应用。 mysql4.1 版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询 的更好的支持,以及应网络约会网站所要求的,基于地理信息的查询。 其同步开发的 5.0 版本则把目标对准了企业用户,对于 4.1 版本中的所有新特性, 5.0 版本悉数收入囊中,并且独具以下特点:对外键的良好支持;系统自动报错机制以 及对存储过程的充分支持。 2.1.7 索引文件索引文件 索引是一种特殊的文件(innodb 数据表上的索引是表空间的一个组成部分) ,它 第二章 数据库的理论基础 第 8 页 共 47 页 们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索 操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某 种程序上弥补这一缺陷,许多 sql 命令都有一个 delay_key_write 项。这个选项 的作用是暂时制止 mysql 在该命令每插入一条新记录和每修改一条现有之后立刻对索 引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多 新记录插入某个数据表的场合,delay_key_write 选项的作用将非常明显。另外, 索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据 列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大 的实际效果。 从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但 mysql 把同一 个数据表里的索引总数限制为 16 个。 1、innodb 数据表的索引 与 innodb 数据表相比,在 innodb 数据表上,索引对 innodb 数据表的重要性要 大得多。在 innodb 数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级 锁定机制的苊、基础。 “数据行级锁定”的意思是指在事务操作的执行过程中锁定正在 被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于) select、lockinsharemode、select、forupdate 命令以及 insert、update 和 delete 命令。出于效率方面的考虑,innodb 数据表的数据行 级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只 有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。 2、限制 如果 where 子句的查询条件里有不等号(wherecoloum!=) ,mysql 将无法使 用索引。类似地,如果 where 子句的查询条件里使用了函数 (whereday(column)=) ,mysql 也将无法使用索引。在 join 操作中(需要从 多个数据表提取数据时) ,mysql 只有在主键和外键的数据类型相同时才能使用索引。 如果 where 子句的查询条件里使用比较操作符 like 和 regexp,mysql 只有 在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件 是 likeabc%,mysql 将使用索引;如果查询条件是 like%abc ,mysql 将不使 用索引。 在 orderby 操作中,mysql 只有在排序条件不是一个查询条件表达式的情况 下才使用索引。 (虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在 加快 orderby 方面也没什么作用) 。如果某个数据列里包含许多重复的值,就算为它 建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如 “0/1”或“y/n”等值,就没有必要为它创建一个索引。 第二章 数据库的理论基础 第 9 页 共 47 页 mysql 普通索引、唯一索引和主索引 1、普通索引 普通索引(由关键字 key 或 index 定义的索引)的唯一任务是加快对数据的访 问速度。因此,应该只为那些最经常出现在查询条件(wherecolumn=)或排序条件 (orderbycolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、 最紧凑的数据列(如一个整数类型的数据列)来创建索引。 2、唯一索引 普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以 同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。 如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的 时候就应该用关键字 unique 把它定义为一个唯一索引。这么做的好处:一是简化了 mysql 对这个索引的管理工作,这个索引也因此而变得更有效率;二是 mysql 会在 有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个 字段里出现过了;如果是,mysql 将拒绝插入那条新记录。也就是说,唯一索引可以 保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为 了提高访问速度,而只是为了避免数据出现重复。 3、主索引 在前面已经反复多次强调过:必须为主键字段创建一个索引,这个索引就是所谓 的“主索引” 。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是 primary 而不是 unique。 4、外键索引 如果为某个外键字段定义了一个外键约束条件,mysql 就会定义一个内部索引来 帮助自己以最有效率的方式去管理和使用外键约束条件。 5、复合索引 索引可以覆盖多个数据列,如像 index(columna,columnb)索引。这种索引的 特点是 mysql 可以有选择地使用一个这样的索引。如果查询操作只需要用到 columna 数据列上的一个索引,就可以使用复合索引 index(columna,columnb) 。不过,这种 用法仅适用于在复合索引中排列在前的数据列组合。比如说,index(a,b,c)可 以当做 a 或(a,b)的索引来使用,但不能当做 b、c 或(b,c)的索引来使用。 6、索引的长度 在为 char 和 varchar 类型的数据列定义索引时,可以把索引的长度限制为一 个给定的字符个数(这个数字必须小于这个字段所允许的最大字符个数) 。这么做的好 处是可以生成一个尺寸比较小、检索速度却比较快的索引文件。在绝大多数应用里, 数据库中的字符串数据大都以各种各样的名字为主,把索引的长度设置为 1015 个字 符已经足以把搜索范围缩小到很少的几条数据记录了。在为 blob 和 text 类型的数 第二章 数据库的理论基础 第 10 页 共 47 页 据列创建索引时,必须对索引的长度做出限制;mysql 所允许的最大索引全文索引文 本字段上的普通索引只能加快对出现在字段内容最前面的字符串(也就是字段内容开 头的字符)进行检索操作。如果字段里存放的是由几个、甚至是多个单词构成的较大 段文字,普通索引就没什么作用了。这种检索往往以的形式出现,这对 mysql 来说很 复杂,如果需要处理的数据量很大,响应时间就会很长。 这类场合正是全文索引(full-textindex)可以大显身手的地方。在生成这种类型的 索引时,mysql 将把在文本中出现的所有单词创建为一份清单,查询操作将根据这份 清单去检索有关的数据记录。全文索引即可以随数据表一同创建,也可以等日后有必 要时再使用下面这条命令添加: altertabletablenameaddfulltext(column1,column2)有了全文索引,就 可以用 select 查询命令去检索那些包含着一个或多个给定单词的数据记录了。下面 是这类查询命令的基本语法: select*fromtablename wherematch(column1,column2)against(word1,word2,word3 ) 上面这条命令将把 column1 和 column2 字段里有 word1、word2 和 word3 的数据记 录全部查询出来。 注解:innodb 数据表不支持全文索引。 2.1.8 文件优化文件优化 查询和索引的优化: 只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考 价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令 之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快-不管有没有使用 索引。只有当数据库里的记录超过了 1000 条、数据总量也超过了 mysql 服务器上的 内存总量时,数据库的性能测试结果才有意义。 在不确定应该在哪些数据列上创建索引的时候,人们从 explainselect 命令那 里往往可以获得一些帮助。这其实只是简单地给一条普通的 select 命令加一个 explain 关键字作为前缀而已。有了这个关键字,mysql 将不是去执行那条 select 命令,而是去对它进行分析。mysql 将以表格的形式把查询的执行过程和用 到的索引等信息列出来。 在 explain 命令的输出结果里,第 1 列是从数据库读取的数据表的名字,它们按 被读取的先后顺序排列。type 列指定了本数据表与其它数据表之间的关联关系(join) 。 在各种类型的关联关系当中,效率最高的是 system,然后依次是 const、eq_ref、ref、range、index 和 all(all 的意思是:对应于上一级数据表里的每一 第二章 数据库的理论基础 第 11 页 共 47 页 条记录,这个数据表里的所有记录都必须被读取一遍这种情况往往可以用一索引 来避免) 。 possible_keys 数据列给出了 mysql 在搜索数据记录时可选用的各个索引。key 数 据列是 mysql 实际选用的索引,这个索引按字节计算的长度在 key_len 数据列里给出。 比如说,对于一个 integer 数据列的索引,这个字节长度将是 4。如果用到了复合索 引,在 key_len 数据列里还可以看到 mysql 具体使用了它的哪些部分。作为一般规律, key_len 数据列里的值越小越好。 ref 数据列给出了关联关系中另一个数据表里的数据列的名字。row 数据列是 mysql 在执行这个查询时预计会从这个数据表里读出的数据行的个数。row 数据列里 的所有数字的乘积可以大致了解这个查询需要处理多少组合。 最后,extra 数据列提供了与 join 操作有关的更多信息,比如说,如果 mysql 在 执行这个查询时必须创建一个临时数据表,就会在 extra 列看到 usingtemporary 字样。 2.1.9 mysql-安装注意安装注意 1、如果是用 mysql+apache,使用的又是 freebsd 网路操作系统的话,安装时 候你应按注意到 freebsd 的版本问题,在 freebsd 的 3.0 以下版本来说, mysqlsource 内含的 mit-pthread 运行是正常的,但在这版本以上,你必须使用 nativethreads,也就是加入一个 with-named-thread-libs=-lc_r 的选项。 2、如果在 compile 过程中出了问题,请先检查你的 gcc 版本是否在 2.81 版本以 上,gmake 版本是否在 3.75 以上。 3、如果不是版本的问题,那可能是你的内存不足,请使用./configure-with-low- memory 来加入。 4、如果要重新做你的 configure,那么你可以键入 rmconfig.cache 和 makeclean 来 清除记录。 5、把 mysql 安装在/usr/local 目录下,这是缺省值,您也可以按照你的需要设定 你所安装的目录。 2.2 mysql 数据库技术 对于网站开发来说,使用数据库是开发专业站点必不可少的,但是但是数据库类 别林林总总,access、sql server 和 oracle 都不是开源免费软件,需要购买才能使用, 而 mysql 是开源软件,选择 mysql 是最节能成本的做法,而且 apache、php、mysql 是绝配,它们的组合有着最佳的性能和最大的用户支持群。 mysql 是一个真正的多用户,多线程的结构化查询语言数据服务器,它以客户机 /服务器的结构实现,并且还具有以下优势。 第二章 数据库的理论基础 第 12 页 共 47 页 2.2.1 速度快速度快 开发者声称 mysql 数据库可能是目前得到的最快的数据库。 2.2.2 连接性和安全性连接性和安全性 mysql 是完全网络化的,其数据库可在因特网上访问,因此可以和任何地方的任 何人共享数据库,而且 mysql 还能进行访问控制,能够控制特定用户不允许其访问 数据库。 2.2.3 可移植性可移植性 mysql 可运行在各种版本的 unix 系统及其他费 nuxi 系统上,从家用的 pc 到 高级服务器都可运行 mysql 2.2.4 它支持它支持 sql 语言语言 mysql 支持支持这种现代数据库系统都选用的语言。 2.2.5 容易使用容易使用 mysql 是一个高性能且相对简单的数据库,易于操作。 2.2.6 成本优势成本优势 mysql 对于对于大多数个人用户来说是免费的! 基于以上种种优势,所以,在做学生管理系统的时候我选择使用 mysql 作为 web 服务器的数据库。 第三章 开发工具与开发语言介绍 第 13 页 共 47 页 第三章第三章 开发工具与开发语言介绍开发工具与开发语言介绍 3.1 开发工具介绍 apmsever 就是 apache、mysql 加上 php 等聚合一起的绿色软件。web 服务器 apache 在全球的 website 有极大的使用率。数据库 mysql, 一个快速、稳定的 sql 数据库服务器。php, 扮演处理互动式信息的网页应用程序的角色。除了稳定、高效 能之外,它们均免费,是最经济的选择。 apmserv 5.2.6 是一款拥有图形界面的快速搭建 apache 2.2.9、php 5.2.6、mysql 5.1.284.0.26、nginx 0.7.19、memcached 1.2.4、phpmyadmin 、openssl、sqlite、zendoptimizer,以及 asp、cgi、perl 网站服务器平台 的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑 时,均只需点击 apmserv.exe 中的启动按钮,即可自动进行相关设置,将 apache 和 mysql 安装为系统服务并启动。apmserv 集合了 apache 稳定安全的优点,并拥有跟 iis 一样便捷的图形管理界面,同时支持 mysql 5.0 include (header.php); require (guanconnect.php); if(!isset($_sessionadm) echo “; echo “; echo “您还没有登录,请登录后再操作!“; echo “; exit(); ? 此程序使用了 php 中的 session_start()的判断函数和 include()、require()的页面相互 调用函数。这样即可以防止出错时的更正又易于维护者的更改。 5.4.3 系统登录系统登录 此登录模块为管理员登录模块,还有用户登录模块。在用户登录模块中,主要是 调用了数据源中的数据实现的,也可以注册,但由于时间关系,并没有完成。 管理员登录模块分为两个部分,一部分是提交表单的 javascript 验证模块,另一部 分为连接数据库、取得并判断数据模块。 javascript 验证形式为: 其中 onsubmit 为执行标签,return 为执行函数,checkpost()为 js 自定义函数, 第五章 系统各模块的实现 第 36 页 共 47 页 function checkpost() if( form1.username.value=”) alert(“请填写用户名”); form1.username.focus(); return false 点击上面图示的“登录”键,将会跳转到登录页面,如下图所示: 此模块的程序为: function checklogin() if (login.username.value!=“) $username=$_postusername; $forname=$_postforname; $engname=$_postengname; $date=$_postdate; $sex=$_postsex; $nation=$_postnation; $yuanxi=$_postyuanxi; $clas=$_postclas; $mailadress=$_postmailadress; $qq=$_postqq; $cellpho=$_postcellpho; $telepho=$_posttelepho; 第五章 系统各模块的实现 第 40 页 共 47 页 $adress=$_postadress; $post=$_postpost; $xueli=$_postxueli; $job=$_postjob; $birthadr=$_postbirthadr; $liuyan=$_postliuyan; $checksql=“select * from xinxi where username=$username“; $check_re=mysql_query($checksql,$conn); $num=mysql_num_rows($check_re); if($num!=0) echo “; echo “该校友已经存在,无需添加!“; echo “添加失败! 返回“; echo “; exit(); $sql=“insert into xinxi (username,forname,engname,date,sex,nation,yuanxi,class,mailadrss, qq,cellpho,telepho,adress,post,xueli,job,birthadr,liuyan) values ( $username,$forname, $engname, $date, $sex,$nation,$yuanxi, $class, $mailadrss, $qq,$cellpho,$telepho, $adress, $post, $xueli,$job, $birthadr$liuyan)“; mysql_query($sql,$conn) or die (“插入数据失败: “.mysql_error(); mysql_close($conn); 如果需要添加时,姓名、邮箱、手机号码、家庭住址、工作单位五个基本信息不 能为空,如果为空,将无法进行。学号可以为空,它是由系统自动递增生成的。在此 系统中,会出现姓名不能相同, 相同姓名将添加失败。 添加中和成功后如下图所示,添加成功后,将出现添加的所有信息,以便用户或 管理员及时发现错误。 第五章 系统各模块的实现 第 41 页 共 47 页 如果该校友已经存在了,那将出现以下告示: 第五章 系统各模块的实现 第 42 页 共 47 页 5.4.5 查询查询校友信息校友信息 查询模块是作为校友每时每刻都在乎的事情。如果一个老校友的信息突然丢失了, 那登录到这个系统中,将非常容易就查询出该校友的信息。 此模块制作简单,用上连接数据库的 mysql_connect()函数、发送查询 mysql_query 函数,以及选择 xinxi 表中数据的显示语句(mysql select * from 表名 where username=?and id=? or id=?) ,便可实现某个校友的查询。 查询结果为: 其部分程序为: 如果查询的校友信息不存在,那将出现以下情况: 5.4.6 修改修改校友信息校友信息 校友信息修改是为了方便某些用户在录入的信息出现错误、信息已升级更

温馨提示

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

评论

0/150

提交评论