【摘要】
网上购物系统,其开发主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库,而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合书店的要求,对SQL Server2000数据库管理系统、SQL语言原理、ASP设计平台,ASP数据库技术进行了较深入的学习和应用,主要完成对网上书店系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的网上书店系统可以满足购物者和高级管理员双方面的需求。
通过电子商务网站的建设以实现对商业零售企业提供信息化管理。建立了基于网络订货系统和网络销售系统。着重论述了系统功能与实现、数据流程及存储,包括商品目录、会员注册、网上订货与购物、商品查询、后台数据库管理等。 【关键词】
网上购物,SQL Server2000 ,ASP
The Online Shopping System 【Abstract】
The online bookstore system, it develops on two main respects of development including setting-up and maintenance and front application program of backstage supporter's database . Demand to set up the consistency of the data and integrality the storehouse of strong , data with good security to the former. Require to the latter that the function of the application program is complete , apt characteristic of using etc. So combine and make the request of the entering type bookstore in person , design the platform to SQL Server2000 database management system , SQL language principle , ASP, ASP database technology has carried on the deeper study and application, mainly finish demand analysis , function module dividing , database mode to the online bookstore system to analyse, and has designed structure of the database and application program from this. Systematic operation result prove online bookstore system this text design can meet shopper and senior administrator need the both sides.
In order to realize that offers the informationization to manage to the commercial retailer through the construction of the e-commerce website. Have set up because of the network order system and network marketing system. Have described the systematic function and realized emphatically, the procedure of the data and storing, including goods catalogue , member registration , ordering and doing shopping , goods inquiry , backstage supporter's data base administration on the net ,etc.
【Keyword】
The online shopping, SQL Server2000, ASP 前 言
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网上购物系统应运而生,网上购物弥补了传统购物的一些局限性,成为传统购物的补充。通过网上购物,无论你在哪里都可以轻松地买到心仪的物品,只要那里有一台接入了Internet的电脑,通过网上购物可以很清楚的了解各个商品的信息,从而对它们进行比较,最后买到自己称心的物品。对于管理人员来说,利用购物系统能轻松地管理大量的商品,而且可以通过系统查看各种商品的销售状况,通过各种数据能够及时地知道那种商品正在热卖,而那些商品属于冷门地,从而在运营上进行调整,更好地管理好商店。
我设计的是基于网上的购物系统。用户可以根据自己的喜好浏览自己喜欢的东西,但要想购买商品,就必须通过注册成为会员才能进行购买,登陆后就可以购物了。商店的各种商品都进行了详细地分类,可以轻松地找到想要地商品,同时查找系统能很容易地找到相关的商品。同时买到自己喜欢的东西后就可以去结算,通过下订单你可以填写自己的相关信息,而完成购物的流程。 1 背 景
随着计算机和网络的日趋普及,越来越多的商家在网上升起商店,向消费者展示出一片新鲜的购物大地。在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷脐身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。powered by 25175.net
在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。如今,在北京、上海、深圳等大城市,已有200多家商场,专卖店开设了网上商店,还有一些正处在观望阶段。真正意义上的网上购物,即货款的结算在网上进行,已在国内实现。深圳无虹商场去年5月开办了我国第一家实行计单和支付一体上的网上商店,上网的消费者只要拥有一张招商银行的“一卡通”,便可轻松购物, 24小时内商家送货上门。商家投资网上商店目的是赚钱。但从目前网上商店的运营情况来看,上网者不购物、购物者不上网的现象非常普遍,网上生意渗淡已是目前各大网上商店共同的困惑。上海首家网上商店——上海亿样购物中心由于经营不善,开业不到半年即关门停业,北京的一些大型零售商场,其网上商店„门庭冷落”。
结算方式的原始落后是网上购物致命的弱点。在国外,计算机一般都与银行的帐户相联,消费者和网络商店只需和网上银行打交道,不必当面直接支取现金。在我国目前除深功;无虹等几家网上商店进行网上购物结算外,大部分商家结算只能采取 “送货上门、到货付款”或“邮寄上门、贷款邮资先付”的方式。这样不但浪费了时间和人力,而且限制了网络的覆盖范围和商品的结构种类。因此,安全、快捷、方便的电子支付手段将是今后网上商店健康发展的主要要素。 2 理论基础
数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。powered by 25175.net 2.1 数据库的发展
数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。
计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。
使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。 2.1.1 数据库的发展
数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。
人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。
20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。
当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件。 2.1.2 数据库阶段的特点
(1)减少数据的重复(Redundancy can be reduced)
当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数据的重复与浪费。例如:在一家公司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。
(2)避免数据的不一致(Inconsistency can avoid)
本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地方,而数据库管理系统却没有对这样重要的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。 (3)数据共享(Data shared)
对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。 (4)强化数据的标准化(Standard can be enforced)
由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的标准进行控制,如此一来,对于不同的环境的数据交换(Data Interchange)上将有很大的帮助,也能提高数据处理的效率。 (5)实践安全性的管理(Security restriction can be applied)
通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。
(6)完整性的维护(Integrity can be maintained)
所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,所以,我们会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护简便性。
(7)需求冲突会获得平衡(Conflicting requirements can be balance)
在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。 2.2 数据库理论基础 2.2.1 数据库模型
从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数
据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。
模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。 目前广泛作用的数据模型可分为两种类型。
一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型” 。
另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。
层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1∶N联系。
层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1∶N联系,虽然有多种辅助手段实现了M∶N联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。
网状模型。用有向图结构表示实体类型及实体间联系的数据模型。1969年DBTG报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1∶N联系。
网状模型的特点:记录之间联系通过指针实现,M∶N联系也容易实现(每个M∶N联系可拆成两个1∶N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,Honeywell公司的IDS/Ⅱ、HP公司的IMAGE/3000、Burroughs公司的DMSⅡ、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等
关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。
关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。
关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。
面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,例如,CAD数据、图形数据等,而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每一个分支。面向对象数据库是面向对象概念与数据库技术相结合的产物。
面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。 2.2.2 数据库体系结构
数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。 从某个角度看到的数据特性称为“数据视图”(data view)。
外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。 概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。 内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。 数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。
三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称。 2.2.3 数据的独立性
由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。 物理数据独立性
如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。 逻辑数据独立性
如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。
现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。 2.2.4 范式
建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。 在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质: 在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。 在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。
第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。 第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。 2.3 SQL语言基础
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——SQL。 2.3.1 SQL简介
SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。 SQL语言可以完成许多功能,例如: 查询数据
在数据库表格中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 确保数据库的一致性和完整性等 2.3.2 SQL查询
数据查询是关系运算理论在SQL语言中的主要体现,SELECT 语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。 SELECT语句的完整句法如下: SELECT 目标表的列名或列表达式序列 FROM 基本表和(或)视图序列 [WHERE 行条件表达式] [GROUP BY 列名序列]
[HAVING 组条件表达式]
[ORDER BY列名 [ASC│DEAC]…]
我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符LIKE(判断值是否与指定的字符通配格式相符)。在包含LIKE的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。做为SELECT语句还有很多的使用方法,这里就不再叙述。 2.2.3 SQL数据更新
使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。 数据插入
往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下: INSERT INTO 基本表名(列表名)VALUES(元组值) 数据删除
往数据库的基本表中删除数据使用的是DELETE语句,其句法如下: DELETE FROM 基本表名 [WHERE 条件表达式]
在些作一点说明,删除语句实际上是“SELECT * FROM 基本表名 [WHERE 条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。 数据修改
当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下: UPDATE基本表名
SET列名=值表达式[,列名=值表达式…] [WHERE条件表达式]
在Delphi中使用SQL语句是很方便的,一般来说,都是通过TQuery组件来使用SQL语言的。有一点要进行说明,虽然通过TQuery组件来使用SQL语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我采用的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就可以键入SQL语句,至于详细的使用方法在后面进行介绍。
2.4 开发工具的选择
Internet技术得到迅速发展,已经成为计算机产业的一个技术热点。促进Internet技高速发展的因素之一就是WEB技术。WEB技术由最新的静态HTML,发展到动态的dhtml。CGI(command gateway interface真正完全动态),脚本语言与ASP(active sever pages)后来居上,并且大有取代CGI的趋势,WEB已经不在局限于仅仅提供大量的信息服务,WEB技术的发展,使得那些具有交互动态页面,有条理的数据库查询,丰富信息内容的页面成为最吸引人的页面。浏览WEB有着执行Windows程序一样的感觉和操作性。随着Internet技术的发展,它已经成为一种操作平台,为用户提供大量的服务,例如网上购物,电子商务,社会信息数据库等。
在互联网技术发展地初期,网站开发者利用超文本标记语言(HTML),在网页中插入图片,文字等元素,形成最初地网页。这种开发方式虽然易学简单,可操作性强,但是随着WEB地飞速发展,它的局限也逐渐暴露出来:
互联网的应用越来越广泛,单纯的提供信息只是其中的一部分。未来的web将是一套虚拟的信息平台,其中包括在线购物,远程教学,远程医疗,视频点播,语音聊天等功能。功能的扩展意味着数据量的增加,如果仍然用静态页面的生成模式,则会成过多的超文本文件,不仅降低了数据在网络上的传输速度,也给网站维护造成不便。
当前的网页正正在向两个方向发展,一个是多媒体,另一个是交互式。交互式的实现意味着网站的个性化,让用户将有权决定要查看那些内容。简而言之,网站必须提供一个用户的界面,让用户对内容进行分类筛选,最后得到用户真正想要的内容。而这一点,传统的静态网页模式很难实现。
从网站的安全性角度出发,网站内部必然有一些数据要进行加密,只给指定的用户查看,没有权限的用户将无法访问。用网页重的cookie技术可以实现这一功能,但过程较为繁琐,而且由于脚本在客户端运行,安全性也较差。
在传统的静态网页中,数据是分散在一个个独立的,只有地址连接而没有数据上的逻辑联系的HTML文档之中,要修改网页必须逐个修改HTML页面,工作量大的同时也容易造成数据的混乱,不符合信息集成处理,分布显示的要求。
我采用ASP来架构网上购物系统,编写ASP应用程序时用来进行数据库操作的标准语法就是SQL。SQL是一种交互式查询语言,允许用户直接查询存储数据,利用这一交互特点,用户可以在很短的时间内回答相当复杂的问题。编写的程序用的是SQL数据库。 ASP的优势
Active Server Pages:“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE 或netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或 JavaScript是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(Client)在IE浏览器中可以显示程序执行的结果,可是,客户端(Client)若使用netscape浏览器就无法显示VBScript的执行结果。
ASP的特点任何开发工具皆可发展ASP。只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPage Express、 FrontPage等也都可以;不过还是建议你
用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。 语言相容性高。ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。
隐密安全性高。如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因杰ASP程序先于网站服务(Web Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
易于操控数据库。ASP可以轻易地通过BC(Open Database Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel” 文件当成数据库用。
面向对象学习容易。ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。 RequestResponseServerSessionApplicationObjectContext 从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合Microsoft Transaction 服务器进行分布式事务处理所以我选择了ASP结合SQL架构网上书店系统。 3 需求分析
网上书店需求,这两方面分别是图书购买者、书店管理人员。图书购买者的需求是查询图书馆所存的图书、个人购买情况及个人信息的修改;书店工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、购买者、图书进行管理和维护,及系统状态的查看。powered by 25175.net
图书购买者可直接查看图书情况,如果图书购买者根据本人用户名和密码登录系统,还可以进行本人购书情况的查询和维护部分个人信息。一般情况下,图书购买者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他购买者的购书情况和个人信息,就要知道其他购物者的用户名和密码。这些是很难得到的,特别是密码,所以不但满足了图书购买者的要求,还保护了图书购买者的个人隐私。
书店管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、购买者信息管理和统计查看及维护。书店管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书购买的基本信息,浏览、查询、统计书店信息,但不能添加、删除和修改购买信息,但是,删除某条图书购买者基本信息记录时,应实现对该图书定单记录的级联删除。
4 系统设计 4.1 概要设计
在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。首先,我们需要描述的是系统的总的体系结构。 4.1.1 系统结构设计
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 在系统的概要设计中我采用结构化设计(Structure Design,简称SD)。我首先将整个系统化分为几个小问题,小模块。在系统中,我把系统分为2大块,用户的前台使用和管理员的后台管理。 4.1.2 概念设计
在设计阶段中,我从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。 设计局部ER模式 实体和属性的定义:
图书(图书编号,图书名称,作者,出版社,出版日期,价格) 购买者(姓名,身份证,联系电话,密码) 图书类别(图书类别编号,类别描述)
ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。解释如下:
一个购买者(用户)只能具有一种身份,而一种身份可被多个购买者所具有;
一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以购买多本不同的书,而一本书也可以被多个不同的用户所购买。
设计全局ER模式
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。 确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。 局部ER模式的合并
合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。 消除冲突
冲突分为三类:属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。 全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。 4.2 详细设计
4.2.1 关系数据库的逻辑设计
由于概念设计的结果是ER图,DBMS一般采用关系型(本人所使用的MS SQL Server就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。 (1) 导出初始关系模式
product(图书编号#,图书名称,图书类别#,作者,出版社,出版日期,备注,价格,数量)category(图书类别#,类别名)user(姓名,身份证,联系电话,密码) (2) 产生子模式
子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个
认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。 4.2.2 数据库设计
我在系统中定义的表格都严格地按照范式的思想和要求去完成,数据库中的所有表格都达到了三范式的要求。针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下六张表格,分别是管理员信息表,用户信息表,商品分类信息表,商品信息表,订单信息表和送货方式信息表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。 管理员信息表(admin):admin(管理员名),password(管理员密码)。
管理员信息表用来记录管理人员的登陆名和密码,通过管理员的身份进入系统后可以对商品进行管理。是区别于一般用户登陆的超级用户,具有最高的权限,包括对商品的添加,删除,修改等,同时还要处理各种订单。
用户信息表(user):username(用户名),password(用户密码),useremail(用户电子邮件),identify(身份证号),question(密码保护提问),answer(回答),address(地址),postzode(邮编)。 用户信息表记录着用户的各种信息,包括用户名、密码、email、身份证号、地址、邮编、提问、回答等用户的基本信息。它为系统提供会员的基本信息,因为购物是和会员的信息联系在一起的。作为会员系统应该知道些资料,以便进行查找。
商品分类信息表(category):categoryid(分类号),category(分类名),categoryorder(分类的顺序)。 商品分类信息表记录着类名,分类号和分类的顺序。商品如果没有分类的话就会很乱,不便于管理,也可以说是没法管理。
商品信息表(product):name(名称),author(作者),mark(出版社),productdate(出版日期),detial(简介),price1(原价),price2(优惠价),solded(卖过的册数),viewnum(被浏览次数),category(分类名),pic(图片),adddate(上架日期),pagenum(页数),format(开本),printed(印刷次数),productnum(商品号)。
商品信息表记录着书名、作者、出版社、出版日期、简介、原价、优惠价、卖过的册数、被浏览次数,分类名,图片、上架日期、页数,开本、印刷次数、书号。有了这些信息和上面的分类表,就会和容易的查找各类的图书以及了解他们的相关信息,用户就可以通过这些信息购买自己想要的商品。
订单信息表(orders):username(用户名),actiondate(下订单的日期),postcode(邮编),address(地址),paymethod(支付方式),realname(真名)。
订单信息表记录着用户名,下订单的日期、邮编、支付方式和真名,通过这些信息系统就会知道收货人的一些基本信息,在这里可以发现,会员可以帮别人买东西,或者送东西给朋友。有了上面的信息,当按上面的支付方式成功后商品就会往订单上的地址发货。
送货方式信息表(delivery):subject(送货方式),fee(外加费用),deliveryorder(排列顺序)。
送货方式信息表记录着送货方式,外加费用,排列顺序。因为在当今信息化的社会中必然会有多种的支付方式,单一的支付方式是不能满足今天社会的要求的,只有多元化的发展才能满足各种不同状况下的需求。 5 系统实现
5.1 系统前台功能 5.1.1 会员登录
会员登录前显示登录框,登陆后用户除了可以进行购物外,还可修改自己的资料,可以进入自己的帐号页面muser.asp通过选择进行适当的修改,里面包括对自己的购物车car.asp的查询,订单状况myorder的查询。难点就是登陆时候的验证,用户和密码是否配套,主要代码如下:powered by 25175.net
5.1.2 分类浏览
按类别检索,在图书分类页面class.asp里可以看到所有图书的分类,每个大类里面还包括属于该分类的小类,用户可以根据自己的需要进行查看,如果有一些类里面没有图书系统会提示没有该分类的图书,点击后在sub.asp页面就会显示用户所点击的类的所有图书。主要代码如下: set rs=server.CreateObject(\"adodb.recordset\") rs.open
\"select pagenum,name,mark,vipprice,discount,score,id,author,productdate,price2,price1,discount,pic from product where sortsid=\"&sortsid&\" order by adddate desc\if err.number<>0 then
call MsgBox(\"数据库中无数据\ response.End end if
if rs.eof And rs.bof then
call MsgBox(\"对不起,目前没有更新商品!\ response.End else
totalPut=rs.recordcount 5.1.3 快速(模糊)搜索
可对需要的查询的书籍进行模糊搜索,通过对书类的选择,加上自己所输入的内容,确定后就会找到相关的书就会在页面rsearch.asp显示出来。主要代码如下: set rs=server.CreateObject(\"adodb.recordset\")
dim name
name=trim(request.QueryString(\"name\")) if OrderField=\"\" then OrderField=\"adddate\" if Order=\"\" then Order=\"DESC\"
sql=\"select pagenum,name,mark,vipprice,id,author,productdate,price2,price1,discount,pic from product where 1=1 \" if name<>\"\" then
sql=sql&\"and name like '%\"&name&\"%' \" end if
sql=sql&\" order by \"&OrderField&\" \"&Order rs.open sql,conn,1,1 if err.number<>0 then
call MsgBox(\"数据库中无数据\ response.End end if
if rs.eof And rs.bof then
call MsgBox(\"对不起,找不到你所需的书籍!\ response.End else
totalPut=rs.recordcount
5.1.4 推荐书籍,新书加入,创销图书
可指定在首页出现4本推荐的书籍,里面包括图书所有信息,该页面包含在主页index.asp里面。特们的显示原理差不多,只是在数据库读的条件不一样。主要代码如下: rs.open \"select top 100
pagenum,name,introduce,score,mark,id,author,productdate,price2,price1,discount,pic from product order by adddate desc\
rs.open \"select top 100
pagenum,introduce,score,name,mark,id,author,productdate,price2,price1,discount,pic from product order by solded desc\
rs.open \"select pagenum,introduce,name,mark,id,author,productdate,price2,price1,discount,pic from product where recommend=1 order by adddate desc\5.1.5 购物车
简洁明了的购物车,但是购物车却是网上购物的一个重点,购物的时候商品会放进去,在页面icar.asp中显示所购买的物品。而在car.asp页面将购买的物品放回去,也就是删除。主要代码如下:
style=\"PADDING-LEFT:22px;\">.\" target=\"_blank\">/td> 5.1.6 购物和订单生成
购物后,可进入收银台,确认支付和配送方法后生成订单。会员还可以查询自己订单的处理情况和历史订单。订单显示在myorder.asp页面。主要代码如下:
5.1.7 公告牌
发布公告,显示一些站内的一些消息,字体是活动的比较显眼,在主页显示。主要代码如下:
5.2 系统后台管理功能 5.2.1 口令管理
系统管理员可管理其他管理员的帐户,设定工作人员的不同操作权限。修改管理密码。这部分很关键进去后可以修改很多的站内资料,所以要求很严格,为后台的页面/manage/login.asp(后台的页面统一放在manage文件里面,便于管理),主要代码如下:
5.2.2 商品管理
商品类别管理:包括添加,删除,修改商品分类。可按实际需要,设置多级商品分类。 分类商品管理:在不同的类别下管理商品,包括商品上传,修改和删除等功能。
商品资料包括:商品名称,品牌,产地(生产商),市场价商品详细介绍等。商品的图片展示分为缩图和正式图。
添加商品先添加商品的分类,然后填写商品的各种信息包括书名、作者、出版社、装帧、出版日期、书页等一系列属性,填写完毕就可以上传进入系统。 5.2.3 订单管理
待处理订单:由于网上购物的特殊性,并非所有确认订单的会员都是真实需要购买商品的。因此我们在系统中增加了“待处理订单”的管理。可以通过电话,邮件等方式和会员联系,当会员正式确认需要购买商品时,确认订单,订单就进入了“处理中订单”的列表中
处理中订单:显示用户已经确认购买的订单。“处理中订单”包括了定单配送确认和收款确认的步骤。可以由管理员进行确认。确认时系统自动发送邮件给客户。
历史订单:完成了配送和收款的订单是已经完成的订单,可以将其存档,供日后查对之用。 统计:按时间统计销售额等资料。 6 系统应用
用户进入该网站就是如下(图1)主页: 图1 主页面
如果是老用户就可以直接进行登陆,新用户可以通过注册来成为会员。登陆成功后用户可以在里面购买自己想要的物品,而且放进购物车的物品会显示在购物车里,如果不想要随时可以拿出来。注册页面如下(图2):powered by 25175.net 图2 注册页面
按要求填写合适的信息就会通过注册,而成为会员,这样就可以来购物了,可以通过各种分类得到自己想要的商品。购物时候的购物车如下(图3)。
图3 购物车
选好自己想要的书后就可以去下订单,在这可以将不想要的商品删掉放回去,确定了就可以下订单了,如下图(图4)和(图5): 图4 结帐 图5 订单
下完订单后交易就完成了,按照你的支付方式款到后,书店那边就会发货。 总 结
本系统是一个面向小型图书企业,具有一定实用性的数据库信息管理系统。它主要完成对书店的一系列管理。本系统采用当前流行的开发工具—ASP来完成整个系统的设计,在数据库的设计上利用了SQL的便利性和实用性。
本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成,系统可以自动识别用户不同的输入。在图书入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。在用户管理方面,系统较好地实现了用户注册,用户注销和密码修改等各项功能。
系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关ASP许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解ASP的强大功能,而且还存在着许多不足之处。
由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。
这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。 通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。 参考文献
[1] 汪小平;ASP网络开发技术;北京;人民邮电出版社; 2003年 [2] 陶宏才;数据库原理及设计;北京;人民邮电出版社; 2004年 [3] 粱嘉超;ASP后天数据库网站制作;广州;冶金工业出版社;2001年
[4] 李晓黎;ASP+SQL Server网络应用系统开发与实例;北京;人民邮电出版社; 2003年 [5] 贾佳,郝洪明;ASP与SQL Server网站架设;北京;机械工业出版社;2004年 [6] 宣小平,但正刚;ASP数据库系统开发实例导航;北京;人民邮电出版社; 2004年 [7] 冯能山 李其艺;轻松学习——ASP网络实用编程;北京;人民邮电出版社;2004年 [8] 李瑞旭;ASP实例教程;北京;人民邮电出版社;2004年
[9] Scott Worley;Inside ASP.net;王文龙,刘湘宁;北京;人民邮电出版社; 2004年 [10] Weissinger,A;ASP IN A NUTSHELL;刘海明;北京;人民邮电出版社;2004年
因篇幅问题不能全部显示,请点此查看更多更全内容