条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中[7]。本系统中定义了表与表之间的联系及表中各字段属性约束有助于实现有助于完整性。
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它可以保护数据库防止恶意的破坏和非法的存取。在系统中,用户通过浏览器打开本站首页后,必须经过注册登陆,方可对本站景点进行浏览、查看、检索等操作。用户注册的用户名是唯一的,密码通过加密。在用户登陆,必须输入用户名和密码,并通过数据库的验证,同时对用户的权限进行验证,防止非法用户和未授权用户对本站进行非法访问和操作,保证本站的安全。
14
第4章 旅游网站具体实现
4.1 数据库连接
本系统主要运用ADO进行数据库访问,所以对ASP中的数据库对象有必要做一个了解,特别是系统中要用到的ADO对象。
在ASP中,常用的数据访问接口有下列三种[4]:数据访问对象(DAO,Data Access Object)、远程数据对象(RDO,Remote Data Object)和ActiveX数据对象(ADO,ActiveX Data Object )。在开发过程中,我们通常使用的方法是:先使用数据库管理系统(例如:Microsoft Access)建立好数据库和数据表结构,然后在程序中通过数据库控件或引用ADO对象与数据库中的表建立连接。
ADO是ActiveX Data Objects 的缩写,是一项新的数据库的存取技术。ADO定义了一个可编程的对象集合。ADO对象模型如下图2-1所示。
Connection对象Error对象ActiveConnectionProperty对象Field对象Command对象ActiveCommandProperty对象Parameter对象Property对象Property对象Recodset对象ActiveConnection
图2-1 ADO对象模型
对于ADO对象来说,在Flash竞赛网站后台管理系统中用到的主要是以下两个对象: Connection对象,Recordset对象,但是对Command对象也需做一些了解。
1.Connection对象。Connection对象用于建立与数据库的连接。通过
15
连接可从应用程序访问数据源。它保存诸如指针类型,连接字符串,查询超时,连接超时和缺省数据库这样的连接信息。
2.Recordset对象。Recordset对象代表一个记录集,这个记录集是一个已连接的数据库中的表,或者是Command对象的执行结果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。Recordset对象用于指定行,移动行,添加,更改,删除记录。
3.Command对象。在建立Connection后,可以发出命令操作数据源。一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询。Command对象在定义查询参数或执行一个有输出参数的存储过程时非常有用。
下面就具体地说说如何用ADO存取数据:
在实际编程过程中使用ADO的一个典型的存取数据的步骤为:
(1)连接数据源 (2)打开记录集 (3)使用记录集 (4)断开连接。 具体的用法如下所述:
1.连接数据源。利用Connection对象可以创建一个数据源的连接。应用的方法是Connection对象的Open方法。
2.打开记录集。实际上记录集返回的是一个从数据库取回的查询结果集。因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法。 3.使用记录集。具体有以下几种操作:
加新的记录:在ADO中添加新的记录用的方法为:AddNew。在用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的数据存储到数据库中。
修改记录集:其实修改核对记录集中的数据和重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段中的一个数据找出来重新赋值就可以了。
16
(1)删除记录:在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删除掉一组记录了。
(2)查询记录:在ADO中查询的方法很灵活,有几种查询的方法: (3)使用连接对象的Execute方法执行SQL命令,返回查询记录集。 (4)使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集。
4.断开连接。在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序。使用的方法为Close方法。
4.2功能模块的实现
4.2.1用户模块的实现
本模块输入输出包括:
用户注册:输入用户名、密码等。 用户登陆:输入用户名、密码。 输出包括:输出密码、输出用户名等。 用户注册模块流程图,如图4-1所示。
主窗体
图4-1用户注册模块流程图
Y ID是否与数据库中ID重复 N 填写、确认用户密码 用户注册 填写用户ID 17
4.2.2 查询模块的实现
本模块输入:输入查询关键字,选择查询类型和方式。 本模块输出:输出检索的相关结果。
例如:按景点名称进行模糊查询,在关键字文本框中,输入与你查询的片名相关的字段,就会检索出景点库中所有包括你输入字段的信息。如输入“沈阳”检索结果包括片名为“..沈阳..”的景点信息。按地址进行精确查询,在关键字文本框中,输入与你检索的景点地理位置,就会检索出景点库中与你输入字段完全匹配的景点信息。
用户查询模块流程图如图4-2所示。
主窗体 用户注册 酒店查询 景点/酒店复合查询 查询条件 景点查询 查询条件 N N 找到记录 找到记录 Y 显示 显示 返回
图4-2 用户查询模块流程图
18