技术在网站开发设计中的研究与开发,一篇计算机专业优秀毕业论文

技术在网站开发设计中的研究与开发,一篇计算机专业优秀毕业论文[java毕业论文下载]

 

ASP.NET技术在网站开发设计中的研究与开发

 

摘  要:基于Microsoft . NET环境的ASP. NET技术,为开发功能强大的动态网站提供了一种简单、高效的途径。

正文阐述的是ASP. NET作为一种全新的动态网站开发技术,它是通过大量使用组件技术,将Web浏览器与Web服务器之间的网络通信完全的包装起来,在ASP. NET中,动态网站开发技术已经变为利用组件搭建“基于Web的应用程序”。论文还阐述了网站开发技术的现状,通过对各个技术的系统比较从而对ASP.NET技术做了较深入的研究,并结合研究情况开发设计了一个网上书店系统。该系统的基本功能已实现,普通用户进入系统后,可以查看商品信息,并购买商品;管理员可以添加新的商品信息并可以确认核实客户提交的订单。

 

关键词:ASP.NET   动态网站开发技术   组件   网上书店

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


毕业设计(论文)外文摘要

 

Development and Research of ASP.NET Technology in Designing Web Site

 

Abstract: ASP.NET technology based on Microsoft.NET environment provides a simple, effective means to establish multifunctional, dynamic web sites.

This thesis is about ASP.NET a whole new technology to establish dynamic web sites. By using plentiful component technologies, packs it up the network communications between Web Explorer and Web Server. In ASP.NET, the technologies of establishing dynamic web sites are turning to build applications based-on web by component. And, this thesis also accounts for the actuality of web development technology. I made an in-depth study by comparing with various skills, and then designed a system of bookstore online. All the basic functions of the system have been achieved. A common user enter the system, he could browse commodity information and purchase. Administrator can add new commodities and verify bills that clients made.

 

Keywords: ASP.NET; Dynamic website developing technology; Component; Bookstore online

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目    录

 

1  引言 1

1.1  问题定义与内容简介 1

1.2  研究背景及研究意义 1

1.3  可行性分析 2

1.3.1 技术可行性研究 2

1.3.2 经济可行性研究 3

1.4 论文各章内容介绍 3

2  课题研究分析 4

2.1  网站开发技术研究 4

2.1.1 WEB开发技术的发展 4

2.1.2 技术比较 5

2.1.3 ASP.NET技术研究 7

2.2  ASP.NET技术在实例中的应用 10

2.2.1 ASP.NET内置对象的应用 10

2.2.2 页面控件的应用 12

2.3  ASP.NET开发工具 16

3  ASP.NET开发网站应用示例 18

3.1 方案研究 18

3.2 业务流分析 18

3.3 数据流分析 19

3.4 数据字典 21

3.4.1 数据流分量(即数据元素) 21

3.4.2 数据流 21

3.4.3 数据存储 22

3.4.4 数据处理 22

4  系统设计及各功能模块的实现 24

4.1 系统设计 24

4.1.1 系统总体功能结构 24

4.1.2 系统数据模型设计 24

4.2 详细设计 29

4.2.1 商品浏览模块 29

4.2.2 商品查询模块 30

4.2.3 购买商品(购物车)功能模块 31

4.2.4 订单结算功能模块 33

4.2.5 用户查看所有订单功能模块 33

4.2.6 管理员添加商品功能模块 34

4.2.7 管理员查看订单功能模块 35

5  应用演示 37

5.1 用户部分 37

5.2 管理员部分 38

6  研究成果评价 40

6.1 研究成果 40

6.2 研究不足和解决方案 40

   41

   42

    43

 

 

1  引言

上个世纪60年代诞生的互联网,在近十几年的时间里得到了迅猛的发展,其主要的原因是WEB技术的出现。它将世界各地的信息链接起来,使互联网成为最大的信息载体,使地球变的像个小村子,使信息共享和流通的能力延伸到了我们的桌面上。WEB技术是互联网的核心内容,WEB因为具有音频、视频技术,内部交互和易于管理而受到个人和企业的青睐。随着WEB的逐渐发展和成熟,web技术也在逐渐的发展,从HTML到CGI,到3P(ASP、JSP、PHP),再到现在的ASP.NET,已经经过了几个阶段的发展。

1.1  问题定义与内容简介

ASP.NET网络服务体系架构为使用ASP.NET建立网络服务提供了一个高级可编程模板。虽然建立网络服务并不需要使用网络服务平台,但是它具有许多的优点将简化开发过程,并且它使用的编程模型对用ASP或VB工作的开发人员来说是很熟悉的。使用这个可编程模型,开发人员不需要理解HTTP、SOAP或其它任何网络服务规范。

本课题的主要目的是对网站设计的相关技术进行理论研究,比较ASP.NET技术的相关特点,并在对各种技术进行系统分析和研究的基础上,借鉴现有系统的一些经验,开发一网站实现相关管理功能。并且通过学习ASP.NET技术并查阅大量关于网站设计技术的文献资料,比较各种技术的优越性,汇总形成相关文档。

在研究学习的基础上,结合相关资料,设计出简洁的具有用户注册登录、信息查看、信息查询等功能的系统。网站实现的基本功能是:(1)信息查看:普通用户和管理员登录系统后可以进行信息查看;(2)信息查询:用户可以登录系统后进行信息查询。

1.2  研究背景及研究意义

随着个人电脑和Internet的普及推广,Web技术得到了迅猛的发展,人们开始越来越依赖网络:企业通过网络可以更有效、便捷的发布信息和推广自己新的产品;个人通过网络可以跟自己的朋友聊天、写信,可以查看新闻,可以在网上娱乐,甚至可以不用出户就可以购买自己喜欢的商品等等,网络带来无尽的便捷和乐趣。设计出好看,适用的网站就成为必要的,现在用于网站设计、开发的技术有很多,譬如ASP、JSP、ASP.NET等等。

其中JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP文件。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

ASP(Active Server Pages活动服务器页面)是一种功能强大的运用于服务器端的脚本编程环境,但是只能用VBScript或者JavaScript这样的非模块语言来编程,而且大量的HTML代码和VBScript、JavaScript代码混合在一起,使得程序员需要修改程序的时候比较困难。

而ASP.NET技术是Microsoft公司推出的新一代动态Web开发技术。ASP.NET不同于ASP和JSP,它是建立在.NET Framework之上,提供了更易于编写而且结构清晰的代码,它使用VB.NET和C#等模块化语言编写程序,提高了代码的再利用性和共享性。ASP.NET在结构上几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发技术可以实现更加模块化的、功能更强大的应用程序。ASP.NET技术在效率、可重用性及代码量上较ASP和JSP都有明显的优势。

使用ASP.NET技术,开发人员不需要理解HTTP、SOAP或其它任何网络服务规范。开发人员用ASP.NET生成一个扩展名为.asmx的文件,并把此文件配制为网络应用程序的一部分,就建立起了一个网络服务。 asmx文件包含对在其它地方定义的受控类的引用,或者包含这个类的定义。这个类是由ASP.NET提供的WebService类所派生。公有的类方法在标记上WebMethod属性后,就会成为网络服务方法,把HTTP请求发送到asmx文件中的URL后,这些方法就会被调用。你不必手工为你的网络服务建立一个契约。当被调用者请求时,ASP.NET检查类的元数据,以自动生成SCL文件。客户可通过SOAP,HTTP GET 和HTTP POST提交请求。对方法和参数进行编码的约定是:对HTTP GET,将被编码为查询字符串;对HTTP POST,将被编码为表单数据。HTTP GET 和HTTP POST 的机制不如SOAP有力,但是它们使得客户在访问网络服务时不必支持SOAP。

 ASP.NET 网络服务模型假定了一个无状态服务结构。无状态结构通常比有状态结构更具可扩展性。每次收到一个服务请求后,就生成一个新对象,请求被转化为一个方法调用,当该方法调用返回时对象被销毁。如果这些服务需要跨请求维护状态,那么它们将使用ASP.NET状态管理服务。基于ASP.NET的网络服务在网络应用程序模型中运行,因此它们得到了该模型的所有安全、配制和其它优点。

 ASP.NET 网络服务还提供了一个为在SCL文件中描述的网络服务生成分类的受控代理工具。代理生成器把SCL文件中描述的消息映射成受控类中的方法。代理对应用程序代码隐藏了所有的网络和引导设备,因此使用网络服务看起来就像使用其它受控代码一样。代理将优先使用SOAP链接网络服务,但是它同样支持HTTP GET和 HTTP POST机制。因此HTTP GET和 HTTP POST同样也能被使用。

网络服务为在Internet上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于许多标准的模型。网络应用程序很容易与当地开发的服务或已存在的服务集成在一起,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。

Microsoft .NET框架在现有开发人员技巧之上,提供了一个应用程序模板和关键技术,用于简化安全、可靠、可扩展、高可用性的网络服务的建立、部署和不断的发展。

1.3  可行性分析

1.3.1 技术可行性研究

课题主要是理论研究,研究ASP.NET技术在网站开发中的应用,关键是要查阅大量的关于ASP.NET技术和其他网站开发技术方面的文章和书籍。学校图书馆有大量关于这方面的书籍可以借阅,另外在互联网上也有关于这方面的大量论文可以查阅。另外网站的设计主要使用的是ASP.NET技术,.NET Framework1.1框架作为微软公司已经比较成熟的产品,现在越来越多的网站开发设计都选择它。

1.3.2 经济可行性研究 

课题研究的是ASP.NET技术,设计开发的电子商务网站在PC机上就可以实现,不要考虑其他的设备。也为以后网站设计开发编程技术的选择提供了更多的技术支持。

1.4 论文各章内容介绍 

论文共分为六章,由浅至深的阐述了研究的结论并结合实例进行了说明。

第一章简要的介绍了Microsoft .NET框架,提出了课题研究的背景,并对研究课题做了调研及可行性分析。

第二章主要介绍了WEB技术的发展,简单介绍了ASP,JSP 和PHP技术,详细说明了ASP.NET技术,并将各种网站开发技术做了深入比较。

第三章全面介绍了对实例系统进行总体设计的方案。

第四章介绍系统的详细设计和各功能模块的设计及实现

第五章介绍系统的应用演示,分别以用户和管理员的身份进行了演示分析。

第六章介绍研究成果的评价及其不足的解决方案

 


2  课题研究分析

2.1  网站开发技术研究

2.1.1 WEB开发技术的发展

WEB程序初期,网站组成是一系列静态的网页,这种程序只允许用户浏览网站的信息,而不能和网站进行交互(即静态网页),这就大大制约了商业的经营活动。为此,CGI技术出现,基本弥补了不能交互的缺点,是技术上的一种突破,但用户在使用CGI程序时,CGI为每个用户分配一个进程,进程是资源分配的基本单位,这样使资源不能得到完全很好的利用,并且浪费严重。由于计算机资源的有限性,限制了使用网站的用户的数量,导致用户使用中速度相对过慢,不能满足需求。与此同时Microsoft公司和网景公司均看到了CGI的不足,为此分别设计的一套API,分别是ISAPI和NSAPI,这两套API均采用线程机制,每个用户均使用一个线程与网站进行交互,他们的出现使得每个语种如DELPHI、VB等均可以设计web应用程序,WEB程序获得飞速的发展。但ISAPI和NSAPI有两个缺点:一是不太稳定,二是要求程序的设计水平较高不利于普及。1995年java出现后给网站设计带来了曙光,java是一个跨平台的程序设计语言,以其一次编译,处处运行的优势,迅速推广。与此同时网站的软件技术出现了ASP、PHP,JAVA也发展出一个分支JSP,我们一般称之为3P。3P的出现大大降低了网站设计的门槛,为网站普及起着不可磨灭的贡献。

3P的技术各有千秋。ASP是嵌入在HTML中的一种服务器端编程的WEB开发技术,即客户端请求网页时ASP文件先在服务器端编译执行,再以HTML格式传送给客户端浏览器显示,因此客户看不见ASP文件,程序的保密性较好。ASP使用的脚本语言是可扩充的,不仅可以使用默认的VBScript语言,也可以使用JAVA Script或JScript,通过plug-in的方式还可以使用Perl、TCL等第三方脚本语言。微软还提供了InterDev这样的ASP开发工具。用户在开发的时候可以使用VB/VC开发ActiveX控件,并借助微软的组件技术COM来实现几乎所有的Client/ Server方式下具有的功能。但是它所使用的语种不是完全的面向对象式语言,不利于开发大型网站程序,且运行速度较慢。

PHP是植根于Unix或Linux的一种网站开发技术,由于Unix和Linux用于大型服务器上,寻常百姓很少问津,到近些年Linux开始推广才逐渐被人们所认识。和ASP一样是在服务器进行编程的,不过PHP是GNU标准的自由软件,不仅它是免费的,和其配合使用的Apache Server 、My SQL数据库也是免费的,其源代码也是向外公开的。PHP还具有跨平台性,在 Window98, NT, Linux, Unix和Macintosh等环境下均能运行,而且代码可以重用。由于采用类似C和Perl的语言格式,PHP含有相当丰富的函数库,上载文件、存取数据库中的二进制图片数据、作图、XML解析等功能的实现,只需借助某个或某几个函数即可完成,而不像ASP那样需要引入专门的控件才可实现。PHP也有其不足。相对ASP来说,PHP的自由软件身份使得自身的发展得不到颇具实力的软件开发公司的支持,其发展具有不定性,相应的参考材料、技术支持也较匾乏。它的类似C的语言风格,使它不如ASP来得容易掌握此外,PHP提供的数据库接口函数也不统一,在访问数据库时不如ASP那么方便。    

JSP是由Sun公司推出的非常类似与ASP的一种动态网页技术标准。它也提供了在HTML代码中混合程序代码,由语言引擎进行解释执行的能力。JSP使用的是成熟强大的JAVA语言。客户端请求JSP编写的页面时,代码首先被转换成JAVA源文件,再编译成支持 HTTP, FTP等网络协议的class文件(即Servlet),并由JAVA虚拟机执行。这种编译操作仅在对JSP页面的第一次请求时发生,虽然首次调用需几秒的编译加载时间,但后续请求只需调用服务器端缓存中的Servlets就可以了,比起每次请求都要解释执行的ASP代码要快。相对于ASP和PHP来说,JSP在跨平台可重用性和安全性上面还是有很多独到之处的。

3P有一个共同的缺点,就是HTML网页代码和脚本混杂,大大增加了网站开发和维护的难度,另外也由于微软开发一种能JSP相抗衡的新技术,ASP.NET技术的出现基本改变了这些。ASP.NET技术使用完全的面向对象语言,网页与程序分离有利于更好的设计程序,使得代码更简洁、易于编写,不仅提高了重利用性和共享性,还提高了可调度性、可测量性、安全性和可靠性;同时,对不同的浏览器提供了更好的支持。ASP. NET能使开发人员创造出更加动态而且伸缩性更强的应用程序,这种应用程序能够更好地满足公司的商业需求,并提供一个更加丰富的开发环境。在兼容以前设计习惯的基础上采用完全的可视化设计,使windows程序和网站程序的风格区别缩小,使用任何语种都只要遵守.NET规范,都可以使用ASP.NET,使得技术的推广速度相当快。

 

2.1.2 技术比较

ASP和JSP都是使用的脚本语言混合HTML编程,特别是ASP的脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

1、代码逻辑混乱,难于管理:它使用的是脚本语言混合html编程,所以很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

3、弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来会方便一些,但相对于它所造成的出错几率就远远得不偿失的。

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上甚至还远远比不上PHP/JSP,在纠错/调试功能的完善,这点上ASP/PHP/JSP差不多。

下面是ASP和ASP.NET在具体操作编程上有什么不同。在ASP程序中,当需要使用Server对象的Create Object方法来建立一个类实例的时候,首先要声明一个变量fso,之后将变量fso赋予FileSystemObject的对象(FileSystemObject对象可以在Scripting这个库中找到)。如果想要ASP代码得以正常运行,还必须确定相关的DLL文件已经被安装并且注册到服务器。当C#运行库被安装的时候,FileSystemObject对象是会被自动注册的。但是如果想使用第三方开发的组件或者使用自己创建的组件,就需要小心安装并且注册你的组件了。其具体的代码如下:

<Script runat="server" language="VBScript">

Dim fso

Set fso = Server.CreateObject("Scripting.FileSystemObject")

</script>

而在ASP.NET中,在声明一个变量的同时,可以指定它的类型并且初始化这个变量

为了引用一个类,需要使用这样的表示方法:名称空间[.子名称空间].类。即如:

<Script runat="server" language="c#">

Scripting.FileSystemObject fso = new Scripting.FileSystemObject();

</script>

在上面的代码中,引用了FileSystemObject这个类,而FileSystemObject这个类可以在名称空间Scripting中找到。上面的名称空间实际上只是假设的一个名称空间,它并不存在于.NET的架构当中,所以上面的代码实际上是无法运行的。

由此可以看出ASP和ASP.NET技术的区别了。ASP.NET使用的面向对象的语言,而不是一种脚本语言,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.NET上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性极大的提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

JSP同样是实现动态网页的一个利器。由于他的脚本语言是JAVA,所以继承了JAVA诸多优点。ASP.NET和JAVA的具体的区别。其重要体现在:

1) 面向对象性:

ASP.NET将C#作为一种面向对象语言,在很多方面来看,微软将C#成为与Java相似的语言。C#另一个有趣的地方是所有对象都自动变成为COM对象。如果C#能取得很大的市场占有量的话,那么它将给ASP.NET带来类似于Java的功能,并且具备更快的性能,因为它可以和Windows环境紧密集成。 C# 是ASP.NET开发中一个最重要的功能,这也是.NET框架的一个重要组成部分。

2) 数据库连接:

 在ASP中的一个亮点是它使用ADO对象,ODBC, OLE-DB和事务处理管理器,因此ASP Web数据库应用开发特别简单。ASP.NET发展了更多的功能,因为有了ADO.NET,ADO.NET带来了更强大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,当新版本ASP.NET/ADO.NET出现后这样的差别就更明显。

3) 大型站点应用:

  ASP.NET将对大型站点(web farms)有更好的支持。事实上,微软在这方面付出了巨大的努力。 ASP.NET可以让你考虑到多服务器(multiple servers)的场合,当你需要更强大的功能时,仅仅只需要增加一台服务器。整个.NET框架已经充分地提供了这个方法。ASP.NET提供了外部会话状态(external session state)来提供内置式web farm的支持。另外,由于请求的各组件相互间经过了充分的优化,所以速度很快。

于是ASP.NET现在可以在大型项目方面与JSP一样具有等同的能力。 而ASP.NET还有价格方面的优势,因为所有的组件将是服务器操作系统的一部分。对于JSP,需要购买昂贵的应用服务器群来达到同样的目的。

4) ASP.NET还提供更多的其它方面的新特性,例如:

*内置的对象缓存和页面结果缓存。

*内置的XML支持,可用于XML数据集的简单处理。

*服务器控制提供了更充分的交互式控制。

可以看出,由于JSP模型是在ASP之后,在许多方面借鉴了ASP,如:session、application等对象。同时JSP使用灵活而强大的JAVA语言,而不是低效的脚本语言,使得JSP与ASP相比,具有明显的优势。但是,ASP.NET又是在借鉴JSP的优点后推出的,这样ASP.NET又具有后发的优势。

 

2.1.3 ASP.NET技术研究

ASP. NET隶属于Microsoft. NET框架,是由.NET框架提供的编程类库所组成的,它提供了Web应用程序模型,并采用面向对象的思想——模块化与组件化的技术而构建。

那说到ASP.NET,就不得不先了解下.NET,其全称为Microsoft .NET。Microsoft .NET平台包括用于创建和操作新一代服务的.NET基础结构和工具;可以启用大量客户机的.NET User Experience;用于建立新一代高度分布式的数以百万计的.NET积木式组件服务;以及用于启用新一代智能互联网设备的.NET设备软件。Microsoft .NET产品和服务-包括Windows.NET,连同建立积木式服务的核心集成套件;MSNTM .NET;个人订购服务;Office.NET;Visual Studio .NET;以及用于.NET的BCentralTM。

 

 

 

 

 

 

 

 

 

 

 

上面的图就是ASP.NET的基本体系结构,其中.NET框架提供CLR(Common Language Runtime即通用语言运行时)编译和管理程序页面中代码的执行,类库则是提供了一系列的用于处理请求和生成响应的公共代码,程序员可以直接调用该类库。ISAPI(Internet Server Application Programming Interfaces)过滤器是ASP. NET与IIS通信的接口,其中的应用程序作为DLL来实现,并且加载到Internet Server的进程空间,这样可以保证应用程序更快地执行。ASP. NET本身包含一个缓存cache和一个状态管理器,其中cache用来缓存经常使用的Web页面,目的是提高服务性能。状态管理器用来跟踪用户的会话状态信息,目的是进行更加完美的数据交互。

在数据库连接上ASP. NET是通过ADO. NET (Active Data Object 动态数据对象)上的Managed Provider(管理供应商)所提的应用程序编程接口(API)来实现数据源的数据访问,包括OLEDB和ODB(以开放性数据库互连)所支持的数据库。下面来说下ADO.NET的主要的特性:

互操作性:ADO.NET模型最大限度地利用了由业界大型的外观标准XML提供的灵活性。ADO.NET使用XML在组件之间以及层之间传送数据集。任何支持XML格式的组件都可以处理数据,而且接收数据的组件也不一定是ADO.NET组件。发送或传送数据集的组件只需要向数据集的目的地发送数据集,而不用担心接收组件是如何去执行的,请求数据集的组件也就是目的组件可以像Visual Studio应用程序或其他应用程序那样执行接收任务。但是,很重要的一点是:接收组件应该支持XML格式。

可维护性:可维护性现在已是评价一种软件程序的标准,可维护性的高低将直接影响应用程序的升级维护的操作负担。应用程序的维护我们期待的是提高其性能,在次,不用重新设计,而是调用应用程序之后层次的增加。如果原来的应用程序是在ADO.NET中使用数据集执行的,那么这种转变相对就容易的多,在ADO.NET中,层之间的通信相对简单,这是因为层是通过XML格式的数据集传送数据的。下面的是一个简化了的ADO.NET工作原理图:      

 

 

 

 

 

 

 

 

可编程性:ADO.NET模型使用类型化的程序设计操作对象。在类型化程序设计中,程序设计环境或程序设计语言本身识别对象的类型,这对用户来说是很重要的。对那些没有或者有很少编程经验的终端用户来说,对代码的理解也是很容易的。而且,在非类型化的程序设计中,如果开发人员偶尔发生拼写错误,那么将产生一个运行时错误。而在类型的数据集中,误写导致的语法错误会在编译时就检测出来。

性能:在ADO中,当使用COM组件技术跨层传送数据时,可以采用已短开连接的记录集形式,这些值必须转换为COM能够辨认的数据模型,这样就降低了性能。而ADO.NET能使用已断开连接的数据体系结构,这反过来会使得伸缩性更加的容易实现,因为这减少了数据的装载量(不需要任何的数据转换)。因此,在ADO.NET模型中,任何对象都可以在客户端进行处理,这样就提高了其性能。

可伸缩性:基于WEB的以数据为中心的应用程序需要多个用户同时访问数据库,这增加了对访问数据库的要求,使得可伸缩性成为最主要的特征之一。使用资源(比如数据库连接和数据库锁定)的应用程序。不支持多用户同时访问数据,这是因为用户对有限资源的要求最终会超出它们的供应能力,因为ADO.NET使用了已断开连接的数据访问,所以应用程序不用长时间保持数据库锁定状态或者数据库连接激活状态。由此,ADO.NET可以通过鼓励程序员保存有限的资源来提供可伸缩性,并允许多用户同时访问数据。

ADO.NET对象模型主要有两个层次:

已连接的层:由管理提供程序组成的类组成

已断开连接层:根植于Dataset

自从Internet出现以来,网络安全一直是人们关注的问题。其中的原因包括在Internet上传送敏感数据,在Web应用程序之间交换敏感数据以及黑客的威胁等。对于Web应用程序的开发人员和管理员来说,安全是个重要的问题,也是个令人头痛的问题,因此需要格外细致的进行规划和设计。在ASP.NET应用程序中,安全性涉及三个基本的操作:身份验证,授权和模拟(冒名顶替)。

身份验证(Authentication):这是验证用户身份的有效过程,以便决定是否允许通过,通常,身份验证就是验证用户名和密码的过程,除了这种常见的身份验证方式以外,还有比较复杂的验证方式。具体来说身份验证有三种形式:匿名验证,基本验证和集成的Windows验证。其中匿名验证即允许用户在不用通过用户名和密码的情况下浏览网站;基本验证即是我们平常说的用户和密码验证了,这中方式需要对密码进行加密,不然很可能被未授权的用户非法使用,但是加密技术一直不是很理想,所以这种验证方式的使用一直没被保密性较强的WEB应用程序使用。集成的Windows验证,除了满足基本的验证的条件外,用户还必须是有效的Windows用户。在这种模式下,IIS服务器将用Windows域名控制器验证用户名和密码。

授权(Authorization):这是确保允许拥有有效身份的用户只能访问授予访问权限的那些资源的过程。我们可以对IIS服务器进行配置可以控制用户对资源的访问,通过标记网站上可允许的操作可以控制对IIS网站的访问权限。

模拟(Impersonation)当请求从IIS传递到应用程序时,通过使用模拟,ASP. NET应用程序可以选择以这些应用程序当前正为之操作的客户的身份执行。通常这样做的原因是为了避免在ASP. NET应用程序代码中处理身份验证和授权问题。

在WEB服务上开发人员可以用ASP. NET生成一个扩展名定为.asmx的文件,并把此文件配制为网络应用程序的一部分,就建立起了一个网络服务。asmx文件包含对在其他地方定义的受控的类的引用,或者包含这个类的定义。这个类是由ASP. NET提供的WebService类所派生。公有的类方法在标记上WebMethod属性后,就会成为网络服务方法,把HTTP请求发送到asmx文件中的URL后,这些方法就会被调用。网络服务为在Internet上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于许多标准的模型。网络应用程序很容易与当地开发的服务或己存在的服务集成在一起,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。

 

2.2  ASP.NET技术在实例中的应用

实例是一个BtoC的电子商务网站,在网站设计中使用了ASP.NET一些关键技术

2.2.1 ASP.NET内置对象的应用

ASP.NET有七个主要的内置的对象,分别是:

对象名

对象说明

Page

用于设置与网页有关的属性、方法和事件

Request

从浏览器(用户端)获取信息

Response

发送信息到浏览器

Server

提供服务器端的属性和方法

Session

存储单个客户端的信息

Application

存储客户端的共享信息

Exception

捕捉ASP.NET的错误,返回错误信息

Page对象最主要的事件有:Init.Load和UnLoad。当进行网页初始化时触发Page对象的Init事件,接着加载网页并触发Page对象的Load事件,然后如果包含其他服务器控件事件的时候,当满足发生条件则触发相应服务器控件的事件,最后离开时触发Page对象的UnLoad事件。在每个页面文件里几乎都可以找到Page对象的Load事件和Init事件。

private void Page_Load(object sender, System.EventArgs e)

{

            //如果客户机上本商城的Cookie存在,则根据该Cookie显示个性化的顾客欢迎信息

if (Request.Cookies["IStore_UserName"] != null)

{

                WelcomeMsg.Text = "欢迎 " + Request.Cookies["IStore_UserName"].Value + " 来到网上商城!";

            }

        }

private void Page_Init(object sender, EventArgs e)

{

            

            InitializeComponent();

        }

这是Default.aspx(首页)中的Page对象的Load事件和Init事件,其中Cookies存储了客户信息,用来显示个性话的客户欢迎信息。

private void Page_Load(object sender, System.EventArgs e)

{

 

            //从传到该页面的请求对象的参数集合中获取GoodsID

            int GoodsID = Int32.Parse(Request.Params["GoodsID"]);

 

            //获取商品的详细信息

            IStore.IStoreDBO GoodsDetail = new IStore.IStoreDBO();

            IStore.GoodsDetails myGoodsDetails = GoodsDetail.GetGoodsDetails(GoodsID);

 

            desc.Text = myGoodsDetails.Description;

            UnitCost.Text = String.Format("{0:c}", myGoodsDetails.UnitCost);

            ModelName.Text = myGoodsDetails.ModelName;

            ModelNumber.Text = myGoodsDetails.ModelNumber.ToString();

            GoodsImage.ImageUrl = "GoodsImages/" + myGoodsDetails.GoodsPicture;

            addToCart.NavigateUrl = "AddToCart.aspx?GoodsID=" + GoodsID;

        }

上面的是GoodsDetails.aspx(用于显示商品的详细信息)中的Page对象的Load事件,其中desc.Text、UnitCost.Text、ModelName.Text、ModelNumber.Text、GoodsImage.ImageUrl和addToCart.NavigateUrl都是用来显示商品信息的页面控件。

Request对象派生自HttpRequest类,它的主要功能是从客户端获取信息,包括浏览器种类、用户输入表单中的数据、Cookies中的数据和客户端认证等。

if (thecontext.Request.Cookies ["IStore_CartID"] != null)

{

Return thecontext.Request.Cookies ["IStore_CartID"]. Value;

}

else 

{

Guid tempShoppingCartId = Guid.NewGuid();

 

Thecontext.Response.Cookies ["IStore_CartID"]. Value = tempShoppingCartId. ToString ();

return tempShoppingCartId.ToString();

}

这是GetShoppingCartId()方法中使用Response对象的Cookies集合来获取用户购物车的ID。这个方法在多个页面事件中都有调用,例如在AddToCart.aspx页面中。

Resquest对象的功能与Response对象的功能相反,它用于将服务器端的信息发送到浏览器。Resquest对象的常用方法有十个,其中最常用最简单的方法是Writer方法和Redirect方法。Writer方法是将指定的内容写入页面文件中,Redirect方法是通知浏览器连接指定的URL,即进行页面跳转。例如:Response.Redirect("Default.aspx")。

Response.Write("<script>alert(\"对不起,你的权限不够!\")</script>");

这一段就是使用的Resquest对象的Writer方法向浏览器发送信息。

Server是最基本的ASP.NET对象,它派生自HttpServerUtility类,提供了服务器端的基本属性和方法。可以通过Page对象的Server属性来获取相对应的Server对象,即Page.Server。

Server.Transfer("Login.aspx");这是在实例中Server 对象Transfer方法的简单应用。

Session对象派生自HttpSession类,每个连接用户都拥有一个自己的Session对象,这个Session对象用于在该用户访问的各页面之间传递信息,即Session是同一连接所有网页的共用对象。在本例中Session对象的Contents属性记录的是用户的ID,在Login.aspx页面中开始加载记录:Session.Add("strUserID",userId);到用户注销退出系统调用Session对象的Clear方法清除Contents属性的变量:Session.Clear()。

Application对象是让在同一个应用内的多个用户共享信息,并在服务器运行期间持久地保存数据。该对象在网站上应用最广的就是记录本网站的信息,如访问人数,在线人数等。

由此可见Application对象和Session对象是差不多的,都是ASP.NET文件公用的对象,所不同的是所有用户连接的是同一个Application对象,而每个连接的用户都拥有各自的Session对象,有多少用户就会有多少的Session对象,而Application对象只有一个。

2.2.2 页面控件的应用

在ASP.NET中,基于服务器控件的思想已日趋的成熟,具有很好的可操作性、灵活性和扩展性。ASP.NET中可以使用的大多数控件都不需要在ASPX页面中嵌入很多的代码,只需将需要的控件拖入ASPX页面中,在添加几个属性,就可以让很多控件实现服务器端的功能。这些控件是被封装的,复杂的用户接口设计被隐藏在后台,开发人员无需关心这些控件的实现,只需要按照指定的方式添加一些代码就可以使用控件。然后可以通过编程的方式访问控件,以定义控件的外观,对事件的处理等。在ASP.NET中有HTML控件、WEB服务器控件和用户自定义控件3大类控件。下面是用户自定义控件和页面验证控件的应用。

ASP.NET服务器控件已经提供了大量的功能,但是它们并不能包涵每一种情况。程序员往往希望将多个服务器控件封装成单个控件,而后在以后的站点中重用这些控件。用户控件是封装到可复用控件中的WEB窗体,在ASP.NET开发初期叫做Page let,它是除Code—Behind技术之外的另外一种将代码和内容分离、实现代码重用的技术。Code—Behind可以让多个不同页面的代码从同一基类派生出来,从而具有相似的行为。而用户控件不仅可以重用代码,还可以重用部分用户界面。用户控件和服务器控件一样,有自己的属性和事件,它的扩展名为.ascs。

 

上图所示的是个用户控件(Header.ascx),是由7个Hyperlink服务器控件、1个Label服务器控件和事件组成的。其事件的代码为:

Public abstract class Header: System.Web.UI.UserControl

{

Protected System.Web.UI.WebControls.Label WelcomeUserLabel;

    

        Public Header() {

            this.Init += new System.EventHandler(Page_Init);

        }

 

        Private void Page_Init(object sender, EventArgs e) {

 

InitializeComponent();

 

if (Request.Cookies["IStore_UserName"] != null) {

                WelcomeUserLabel.Text = Request.Cookies["IStore_UserName"].Value;

            }

        }

这个用户控件在每一页面里都有使用,事件是显示用户欢迎信息,当用户登陆时显示:XX欢迎你!

另外在本例中还有3个用户控件:PopularGoods.ascx、Menu.ascx和bottom.ascx。

WEB网站程序中数据验证是一个必要的过程,也是一个比较烦琐的过程,程序员必须花大量时间来验证用户的每一个输入是否合法,如果用脚本语言来实现验证的话就加大了程序员的工作量,在ASP.NET中,开发人员不但可以轻松地实现对用户输入的验证,而且还可以选择验证在服务器端进行还是在客户端进行,这样就降低了开发人员的工作量,同时也降低了开发难度。验证控件提供功能强大的方法来检查Web From输入中的错误,可以在必要的时候向用户显示消息。和其他的服务器控件一样,验证控件可以通过被拖放添加到Web From页面上,验证的对象包括大部分的Web服务器控件及HTML控件。验证控件一共有6种,用于特定的验证类型,比如进行范围检查或模式匹配,或者确保输入不能为空等。6种验证控件为:Requiredfieldvalidator、CompareValidator、RegularExpressionValidator、RangeValidator、CustomValidator、ValidationSummary 。

 

 

这是用户注册页面(Register.aspx),里面用到了3种验证控件:Requiredfieldvalidator、CompareValidator、RegularExpressionValidator。Requiredfieldvalidator这个控件一共使用了6次,用于确保用户的输入不会略过,只有用户输入才认为合法,验证控件的属性ControlToValidator用来指定验证控件的ID;CompareValidator用于将用户的输入与某个常数值或其他控件的值进行比较,本例中的是用于验证用户输入的2次密码是否一致;RegularExpressionValidator控件用于验证用户输入信息是否与某个正则表达式所定义的模式匹配,ValidatorExpression是正则表达式属性,可以通过选择指定的正则表达式。

数据绑定技术是ASP.NET中一种非常重要的技术,通常数据绑定技术用于在Web页面上显示数据,即把Web控件中用于显示的属性绑定到数据源来显示数据。此外,也可以使用数据绑定技术设置Web控件的其他属性,使之具有某种性质或者处于某种状态。ASP.NET的数据绑定技术是非常灵活的,数据源几乎可以是任意的,即可以是来自数据库、XML文档、其他控件信息,也可以是来自其他进程的信息或者计算的结果。在Web控件中具有DataSource属性的都可以进行数据绑定,这些控件主要包括:CheckBoxList,DropDownList,HTMLSelect,ListBox,RadioButtonList,Repeater,DataList和DataGrid等。在本例中使用到了2种控件:DataList和DataGrid。

DataList控件用于显示绑定在控件上的数据源中的数据,DataList控件没有固定的外型,在使用前需要编辑其模板,用户根据需要来设计自己想要的模板,还可以通过编辑其提供的样式生成器来生成各种样式。编辑外形后,在代码中将数据源绑定在DataList上,指定好在DataList中显示的字段名称,DataList就可以使用了。

<SelectedItemTemplate>

<asp: HyperLink id="HyperLink2" Text='<%# DataBinder.Eval(Container.DataItem, "CategoryName") %>' NavigateUrl='<%# "GoodsList.aspx?CategoryID=" + DataBinder.Eval(Container.DataItem, "CategoryID") + "&selection=" + Container.ItemIndex %>' runat="server" />

</SelectedItemTemplate>

DataBinder.Eval(Container.DataItem, "CategoryName")用于指定在DataList中显示"CategoryName"字段,NavigateUrl属性是用于显示选定的WEB页面。

这是Menu.ascx(用户自定义控件)中的一段,在后台代码中只要把数据库中GoodsCategory表CategoryName字段的数据填充到DataList中就可以了。另外在SearchResults.aspx,SearchResults.aspx等页面中也都使用到了DataList控件。

DataGrid控件以表格的形式显示数据,通过编辑DataGrid控件的属性就可以实现对其中显示数据进行选择、编辑、更新以及添加排序、分页等,在DataGrid控件中显示数据比较方便,只要把DataGrid控件绑定到一个数据源就可以显示数据。

private void Page_Load(object sender, System.EventArgs e)

{

 if (Page.IsPostBack == false) {

 

                IStore.IStoreDBO cart = new IStore.IStoreDBO();

                String cartId = cart.GetShoppingCartId();

 

                MyDataGrid.DataSource = cart.DisplayShoppingCart(cartId);

                MyDataGrid.DataBind();

 

                TotalLbl.Text = String.Format( "{0:c}", cart.ShoppingCartTotalCost(cartId));

            }

}

其中自定义的GetShoppingCartId()方法获取用户的购物车ID,DisplayShoppingCart方法显示一个购物车的所包含的所有商品的列表。下图是在VS.NET中设计时的显示。

 

DataGrid控件在其他页面中也有应用,就不一一做说明了。

2.3  ASP.NET开发工具

Microsoft的.NET平台是一个强调多语言间交互的通用运行环境。. NET的设计者设想以.NET平台作为绝大多数Windows应用的首选运行环境,但.NET更吸引了Web开发者的目光。 2001年,ECMA通过了Microsoft提交的C#语言和CLI标准,这两个技术标准构成了.NET平台的基石,他们也于2003年成为了ISO的国际标准。    

2002年,Microsoft正式发布.NET Framework和Viaual Studio .NET开发环境。早在.NET发布之前,就已经有许多Windows平台的Web开发者迫不及待地利用Beta版本开发Web应用了。这是因为,.NET平台及相关的开发环境不但为Web服务端应用提供了一个支持多种语言的、通用的运行平台,而且还引入了ASP.NET这样一种全新的Web开发技术。ASP.NET超越了ASP的局限,可以使用 VB.NET、C#等编译型语言,支持Web Form、.NET ServerControl、ADO.NET等高级特性。 客观地讲,.NET平台,尤其是.NET平台中的ASP.NET的确不失为Web开发技术在Windows平台上的一个集大成者。

为解决今天最具挑战性的软件开发需要而构建的 Visual Studio .NET 2003 增强并进一步完善了其前代产品的功能,并与前代产品高度兼容。Visual Studio .NET 2003 包括来自 Modeler 的全套功能,可帮助构建最复杂的企业级应用程序和在最小的设备上部署应用程序。通过全世界各种规模的公司的使用,Visual Studio .NET 和 Microsoft Windows NET Framework 提供了一个强大而完善的终端工具,用以设计、开发、调试和部署用于 Microsoft Windows® 和 Web 的安全的应用程序—这些应用程序强健而且易于使用。

Visual Studio .NET 2003 包含 Windows .NET Framework 的一个增强版Windows .NET Framework 1.1 版在前一版本的基础上增添了新的能力、功能增强和文档改进。通对 .NET Compact Framework 的集成支持,Visual Studio .NET 2003 将移动和嵌入式设备,如 Pocket PC 和其他采用 Microsoft Windows CE .NET 操作系统的设备,带入 .NET。如今,开发人员能够使用同样的编程模型、开发工具及编程技能,来构建应用范围广泛--从小设备到最大的数据中心--的应用程序。

开发人员可以使用 Visual Studio .NET 来构建下列应用程序:

1

构建功能强大而且响应能力极好的基于 Windows 的应用程序。

2

构建功能强大而且响应能力极好的 Pocket PC 应用程序。

3

构建完善而安全的 Web 应用程序。

4

构建对设备有智能感知能力的完善而安全的移动 Web 应用程序。

5

在以上任何一种应用程序中使用 XML Web services。

6

避免“DLL 灾难”。

7

消除代价高昂的应用程序部署和维护问题。

Visual Studio .NET 是唯一的从头至尾都是基于通过 XML Web service 进行集成这一思想而构建的环境。通过允许应用程序通过 Internet 共享数据,XML Web services 使开发人员能够利用新的和现有的代码构建应用程序,而不用考虑平台、编程语言或对象模型。


3  ASP.NET开发网站应用示例

3.1 方案研究

通过第二章对ASP.NET技术的研究,开发一个网站实现对研究技术的应用。

电子商务经过十几年的发展,在世界上经济发达的国家里已经生根、发芽,并开始结出丰硕的果实。精明的企业家们不断利用先进文明带来的科学技术,为人们营造着越来越广阔的“电子空间”,在人们感受到由此带来的种种便捷和愉快的同时,也勾画出企业新时代的发展蓝图,酝酿着信息时代的经济腾飞。电子商务已成为世界各过经济的新的增长点。所以越来越多的企业希望通过电子商务来获取更大的发展,越来越对的人渴望了解并亲身参与到电子商务中去,而且目前电子商务人才的短缺问题也是阻碍我过电子商务发展的一个重要的因素。为此,利用前面对ASP.NET技术的研究,开发设计一个BtoC的电子商务网站,将对ASP.NET技术的研究和电子商务当中所涉及到的各种理论知识以及相关技术融合到给设计中,以其通过这次的设计加深对ASP.NET技术的研究。

 

3.2 业务流分析

业务流程图(transaction flow diagram,简称TFD), 就是用一些规定的符号及连接来表示某个具体的业务处理过程。在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。

本商务网站的业务流为:普通用户在登录网站后可以浏览商品,在把商品放入购物车后,进入后台结账,这时系统判断用户是否登录,只有登录后才能结账;管理员用以添加商品和查看普通用户的订单,以便可以将用户订单里的商品发送给用户,实现最后结账。

本系统的业务流程图如图3.1所示:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                          

 

 

3.3 数据流分析

数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。

非非网上书屋的数据流程:首先由系统管理员根据需要将商品信息保存到数据库中,并显示给用户浏览,并可以查看所有用户的订单的信息。普通用户可以浏览商品并将商品添加到购物车中。所有用户均可以进行信息查询。

通过对本系统的需求分析,系统的基本功能已经大体确定。整个系统可以分为两个大部分:商品购买和商品添加。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                      

 

 

            

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.4 数据字典

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。

3.4.1 数据流分量(即数据元素)

(1)名字:注册用户信息

描述: 每位注册用户1份

定义:用户编号+用户ID+用户姓名+Email+身份证号码+联系电话

位置:供用户登陆使用及下订单使用

(2)名字:管理员信息

描述: 每位管理员1份

定义:用户编号+用户ID+用户姓名+Email+身份证号码+联系电话+管理权限

位置:供管理员验证使用

(3)名字:商品信息

描述: 商品信息浏览

定义:商品ID+商品类别+商品名称+商品图片+原价格+出售价格+描述

位置:供用户查询浏览

(4)名字:商品类别

描述:商品类别浏览

定义:类别ID+类别名称

位置:供用户浏览

(5)名字:订单信息

描述:用户和管理员查询订单信息

定义:订单ID+商品ID+商品数量+用户ID+总价格+订单日期

位置:管理员查询和用户查询

(6)名字:购物车信息

描述:用户购买商品的容器

定义:编号+购物车ID+商品ID+商品数量+日期

位置:供用户购买商品时使用

3.4.2 数据流

数据流的编号: DS06-01

    数据流的名称:商品信息、用户信息

    简述: 对信息做需要的录入后而得到的数据库表

    数据流的来源: 录入

    数据流的去向: 数据库

    数据流的组成: 各类信息

    数据流的流量: 20个/月

高峰期流量: 200个/月

 

3.4.3 数据存储

    数据存储的编号: F06-01

    数据存储的名称: 数据库信息

    简述: 存放的商品信息、用户信息

    数据存储的组成: 各类信息

关键字: 编号

相关联的处理: P1(对信息表进行录入)

                  P2(对信息表进行查询)

                  P3(对信息表进行修改删除)

                  P4(对信息表进行统计)

 

3.4.4 数据处理

(1) 处理逻辑编号: P06-01

处理逻辑名称: 信息录入

      简述: 对各种信息进行录入.

      输入的数据流:管理员

      处理过程: 进行分类录入

      输出的数据流: 各类数据表

      处理频率:100个/月

  (2) 处理逻辑编号: P06-02

处理逻辑名称: 查询各类信息

      简述: 根据条件查询所需的信息.

      输入的数据流:信息来源于数据库

      处理过程: 输入查询条件查询,得到符合条件的信息

      输出的数据流: 查询得到的信息

      处理频率:5个/分钟

  (3) 处理逻辑编号: P06-03

处理逻辑名称: 修改、删除信息

      简述: 对信息做需要的修改后存入数据库中.

      输入的数据流:数据库信息

      处理过程: 对需要修改的信息做修改

      输出的数据流: 修改或删除后得到的信息

      处理频率:5个/分钟

(4) 处理逻辑编号: P06-04

处理逻辑名称: 统计信息

      简述: 对信息做需要的统计后存入数据库中.

      输入的数据流:数据库信息

      处理过程: 对需要统计的信息(商品信息)做统计

      输出的数据流: 统计后得到的信息

  处理频率: 5个/分钟


4  系统设计及各功能模块的实现

4.1 系统设计

4.1.1 系统总体功能结构

通过对非非网上书屋网站系统的需求分析并结合实际情况分析,本系统是由用户注册、商品浏览、购物车功能和管理员商品管理、订单查看五个模块构成的。本系统的功能结构图如图4.1所示:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.1.2 系统数据模型设计

1、数据概念结构设计—E-R图

E-R图(实体-关系图)提供了表示实体、属性和联系的方法。

*  实体型 :用     表示,矩形框内写明实体名

*  属性:用      表示,并用无向边与其相应实体连接起来

*  联系:用      表示,菱形框内写明联系名,并用无向边与其有关实体连接。

本系统采用E-R图的方法进行数据库概念结构设计。

(1)、设计局部E-R模式

实体和属性的定义:

商品(商品ID、商品类别、商品名称、商品图片、原价格、出售价格、描述)

用户(用户编号、用户ID、用户姓名、Email、身份证号码、联系电话、权限)

订单(订单ID、商品ID、商品数量、用户ID、总价格、订单日期)

因此,各个实体具体的描述E-R图如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)全局ER模式

各个实体之间的关系如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、数据库逻辑机构设置

关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作结合和关系完整性约束三部分组成。

在关系模块中,现实世界的实体以及实体间的各种联系均可以用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。

关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、并(Union)、除(Divide)等查询和增加、删除、修改操作两大部分。

关系完整性允许定义三类完整性约束:实体完整性、参照完整性、和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该有关系系统自动支持。数据库的逻辑结构设计就是把ER图转化为关系模式的过程。关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。

技术在网站开发设计中的研究与开发,一篇计算机专业优秀毕业论文[点击下载]

评论