当前位置:文档之家› 智能公交系统论文

智能公交系统论文

来源:/share/detail/30622860论文摘要:本文结合公交查询系统的实际需要,通过对B/S模式、JDK开发环境及工具、Web发布服务、数据库以及SQL语言的深入学习及实践,主要完成了公交查询系统的需求分析、数据库设计、应用程序设计的工作。

第一章引言§1.1数据库技术数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。

现已形成相当规模的理论体系和实用技术。

优秀的数据库设计是应用成功的基石。

万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。

1.1.1数据库管理系统(DBMS)数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。

DBMS是数据库系统的核心组成部分。

对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。

在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。

用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。

DBMS的主要目标,是使数据作为一种可管理的资源处理。

§1.2 公交查询系统1.2.1系统功能1、基于浏览器(B/S模式)的公交线路分类查询;2、数据的录入、修改、添加、删除。

1.2.2系统运行环境该系统采用Browser/Server模式进行设计:在服务器上运行Web发布服务器、数据库程序,服务器操作系统为WindowsNT/2000/XP/2003 server,客户机操作为Windows9×/NT/2000/XP/2003,其上运行浏览器程序,服务器和客户机可为同一设备。

1.2.3系统开发工具该系统采用JDK Java环境进行开发,数据库服务器为MySQL,WEB发布服务器为Tomcat Server;客户端使用浏览器运行程序,整个系统调试成功。

§1.3 本文所作工作首先介绍了城市公交查询系统的应用背景、开发环境以及选用的开发工具与数据库的关系,阐明了计算机互联网络的概念。

并对数据库的体系结构、DBMS进行了介绍;介绍关系型数据库的基本概念,着重说明了几个关键概念的定义;然后对SQL语言作了一个介绍说明;从特点和功能入手,介绍Java、JSP;并且介绍了B/S模式的概念、特点;用软件工程的方法分析城市公交查询系统,对整个系统进行了需求分析、功能模块划分,并通过ER 图对数据库进行概念设计;对城市公交查询系统的具体设计,描述了查询、录入模块的实现过程。

第二章数据库理论基础§2.1 关系型数据库2.1.1数据库的设计理论关系数据库的设计理论主要包括三个方面的内容:数据依赖、范式,模式设计方法。

其中数据依赖起着核心的作用。

1. 函数依赖(Functional dependency , FD)的定义设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。

对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“Y函数依赖于X” ,记作X→Y。

如果X→Y,并且对于X的任一真子集X ’,都有Y 不函数依赖于X ’,则称“Y完全函数依赖于X” ,记作X f Y 。

若X→Y,但Y不完全函数依赖于X,则称“Y部分函数依赖于X” ,记作X P Y 。

如果X→Y,Y→Z,且Y ≮X,X不函数依赖于Y,则称“Z传递函数依赖于X”。

2. 范式在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。

在这五种范式中,一般只用前三种,对于常用系统就足够了。

而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。

为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。

3. 模式设计方法一个好的模式设计方法应符合下列三条原则:表达性:涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖来衡量。

分离性:是指属性间的“独立关系”应该用不同的关系模式表达。

独立联系是我们所考虑的“基本信息单位”。

实际上分离就是清除存储异常和数据冗余现象。

如果能达到这个目的,就分离。

分离的基准就是一系列范式,分离与依赖等价有时是不可兼容的。

最小冗余性:要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。

目的就是节省存储空间,提高对关系的操作效率,清除不必要的冗余。

但要注意,在实际使用中,并不一定要达到最小宙余。

因为有时带点冗余对于查询处理是有好处的。

关系模式的方法基本上可以分为分解与合成两大类。

分解型算法要求输入一个初始模式集和依赖集,而结果满足数据等价要求。

对于合成型算法只要求输入初始依赖集,结果满足依赖等要求。

但它们依据的基本思想是共同的,即独立的联系独立表示。

§2.2 SQL语言介绍SQL(Structured Query Language)即“结构式查询语言”。

SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。

由于它使用方便、功能丰富、语言简单易学,很快得到应用和推广。

2.2.1 SQL的组成SQL主要分成四个部分:1)数据定义:这一部分也称为“SQL DDL”,用于定义SQL模式、基本表、视图和索引。

2)数据操纵:这一部分也称为“SQL DML”。

它分为数据查询和数据更新两类。

其中数据更新又分成插入、删除、和修改三种操作。

3)数据控制:这一部分包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。

4)嵌入式SQL的使用规定:这一部分内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。

2.2.2 SQL的数据查询n SELECT语句的语法SELECT目标表的列名或列表达式序列FROM基本表和(或)视图序列[WHERE行条件表达式][GROUP BY列名序列[HAVING组条件表达式]][ORDER BY列名[ASC|DESC]…]句法中[]表示该成分可有,也可无。

整个语句的执行过程如下:a) 读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。

b) 读取满足WHERE子句中给出的条件表达式的元组。

c) 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。

d) 按SELECT子句中给出的列名或列表达式求值输出。

e) ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。

SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“组条件子句”,ORDER子句称为“排序子句”。

2.2.3 SQL的数据更新SQL的数据更新包括数据插入、删除和修改等三种操作1)数据插入a) 元组值的插入INSERT INTO基本表名(列名表)VALUES(元组值)或者INSERT INTO基本表名(列名表)(TABLE(元组值),(元组值),……)前一种格式只能插入一个元组,后一种格式可以插入多个元组。

2)数据删除SQL的删除操作是指从基本表删除元组,其语法如下:DELETE FROM基本表名[WHERE条件表达式]其语义是从基本表中删除满足条件表达式的元组。

3)数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]其语义是:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET 子句中指出。

第三章技术介绍§3.1 JSP技术介绍在Sun 正式发布JSP(JavaServer Pages) 之后,这种新的Web 应用开发技术很快引起了人们的关注。

JSP为创建高度动态的Web 应用提供了一个独特的开发环境。

按照Sun 的说法,JSP 能够适应市场上包括Apache WebServer 、IIS4.0 在内的85% 的服务器产品。

3.1.1 JSP运行环境Sun 公司的JSP 主页上可以下载JSP 规范,这些规范定义了供应商在创建JSP 引擎时所必须遵从的一些规则。

在运行JSP示例页面之前,要注意安装JSWDK的目录,特别是“work”子目录下的内容。

执行示例页面时,可以在这里看到JSP 页面如何被转换成Java 源文件,然后又被编译成class文件(即Servlet)。

JSWDK软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的HTML文件,这些表单均由JSP代码处理。

与ASP一样,JSP中的Java代码均在服务器端执行。

因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果HTML代码。

所有示例的源代码均通过一个单独的“examples”页面提供。

3.1.2 JSP页面示例下面分析一个简单的JSP 页面。

可以在JSWDK 的examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为.jsp。

从下面的代码清单中可以看到,JSP页面除了比普通HTML 页面多一些Java 代码外,两者具有基本相同的结构。

Java代码是通过< % 和%> 符号加入到HTML 代码中间的,它的主要功能是生成并显示一个从0 到9 的字符串。

在这个字符串的前面和后面都是一些通过HTML代码输出的文本。

< HTML>< HEAD>< TITLE>JSP 页面< /TITLE>< /HEAD>< BODY>< %@ page language="java" %>< %! String str="0"; %>< % for (int i=1; i < 10; i++) {str = str + i;} %>JSP 输出之前。

< P>< %= str %>< P>JSP 输出之后。

< /BODY>< /HTML>这个JSP 页面可以分成几个部分来分析。

首先是JSP 指令。

它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。

JSP 指令由< %@ 开始,%> 结束。

在本例中,指令“ < %@ pagelanguage="java" %> ”只简单地定义了本例使用的是Java 语言(当前,在JSP 规范中Java 是唯一被支持的语言)。

相关主题