用户: 密码:
 设为首页 加入收藏 旧站入口   

您现在的位置: 中国教育网 >> IT >> 书籍介绍 >> 文章正文
相 关 文 章
没有相关文章
精 彩 推 荐
 
最 新 热 门
最 新 推 荐
欢迎光临中国教育网,现在是:  祝您玩得开心!
dreamweavermx2004+asp网站实例教程
原文作者:未知    发布时间:2007-9-17 20:14:02    
  第13章 ASP与数据库

  如果不能掌握在ASP中使用数据库的方法,也就不能编写出功能强大的ASP应用程序。本章将从数据库系统的基本概念出发,学习SQL语言及ASP在开发数据库系统方面的一些关键技术。

  将网站数据库化,就是使用数据库来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新,过期的网页也可以被自动撤销。将网站的内容储存在数据库中,可以利用数据库提供的强大搜寻功能从多个方面搜寻网站的数据。使用者只要使用浏览器,就可以通过Internet或Intranet,存取Web数据库的数据。在多种动态网页解决方案中都强调了与数据库的连接,因此网页连接后的数据库是当前的热门应用,特别是在电子商务等领域中。

  13.1 数据库的基本知识

  数据库系统是数据管理的重要手段和技术,是计算机科学的重要分支。今天,信息资源已经成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的数据库系统也成为企业生存和发展的重要条件。以下将从数据库系统及关系数据库理论两部分对数据库知识做一个简单的介绍。

  13.1.1 数据库系统概述

  以下将介绍数据库的一些最基本的概念及最常用的数据库理论。在系统地介绍数据库的基本概念之前,首先介绍一些数据库中最为常用的术语和基本概念。

  1.数据库系统基本概念

  数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的几个重要概念。

  (1)数据(Data)

  数据实际上就是描述事物的符号记录。数据的种类很多,文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是数据。数据的形式本身并不能完全表达其内容,需要经过语义解释。数据与其语义是不可分的。

  (2)数据库(Database,简称DB)

  数据库是长期存储在计算机内有结构的大量共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

  (3)数据库管理系统(Database Management System,简称DBMS)

  数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

  (4)数据库系统(Database System,简称DBS)

  数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

  (5)数据库系统管理员(Database Administrator,简称DBA)

  数据库系统管理员是负责数据库的建立、使用和维护的专门人员。

  2.数据库系统结构

  从数据库管理系统角度看,数据库系统通常采用三级模式结构;从数据库最终用户角度看,数据库系统的体系结构分为单用户结构、主从式结构、分布式结构和客户/服务器结构。

  (1)数据库三级模式结构

  模式(schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(instance)。同一模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式这三级构成。

  (2)数据库的二级映象功能与数据独立性

  对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。当模式改变时,由数据库管理员对各个外模式/模式的映象做相应改变,可以使外模式保持不变,从而不必修改应用程序,保证了数据的逻辑独立性。

  数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是惟一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。该映象定义通常包含在模式描述中。当数据库的存储结构改变时(例如采用了更先进的存储结构),由数据库管理员对模式/内模式映象做相应改变,可以使模式保持不变,从而保证了数据的物理独立性。

  3.数据模型

  在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的模拟。数据模型分成两个不同的层次,分别为概念模型和数据模型。

  (1)概念模型

  概念模型也称信息模型,它按用户的观点来对数据和信息建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。

  (2)数据模型

  数据模型主要包括网状模型、层次模型、关系模型等,它按计算机系统的观点对数据建模。数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由下面3个部分组成。

  1)数据结构

  数据结构用于描述系统的静态特性,研究与数据类型、内容、性质有关的对象,例如关系模型中的域、属性、关系等。

  2)数据操作

  数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)及实现操作的语言。

  3)数据的约束条件

  数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效、相容。此外,数据模型还应该提供定义完整性约束条件的机制。

  13.1.2 关系数据库概述

  关系数据库是用二维表格来组织和存放数据的,一个二维表就是一个关系。所有关系的集合叫做关系数据库。

  1.关系数据库系统

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

  (1)关系模型的数据结构

  关系模型的数据结构非常单一,在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。但关系模型的这种简单数据结构能够表达丰富的语义,描述出现实世界的实体及实体间的各种联系。

  (2)关系操作

  关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次集合方式。关系模型中常用的关系操作包括两类:一类为查询操作,包括选择、投影、连接、除、并、交、差等;另一类为增、删、改操作。而表达(或描述)关系操作的关系数据语言可以分为3类:第1类是关系代数语言,例如ISBL;第2类为关系演算语言,包括元组关系演算语言和域关系演算语言,例如APLHA、QUEL和QBE;第3类为具有关系代数和关系演算双重特点的语言,例如SQL。其中SQL语言我们将在以后章节中着重介绍,这是我们应用数据库的灵魂所在。

  (3)完整性操作

  关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。这部分内容将在本节的“3.关系完整性”中做解释。

  2.关系结构

  在关系模型中,无论实体还是实体之间的联系均由单一的结构类型即关系(表)来表示。关系模型是建立在集合代数的基础上的,从集合论角度给出关系数据结构的形式化定义将是理论学习数据库的必要一步。

  3.关系完整性

  关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。

  (1)实体完整性

  一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种惟一性标识。相应地,关系模型中以主键作为惟一性标识。主键中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。

  (2)参照完整性

  现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用。

  (3)用户定义的完整性

  实体完整性和参照性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。

  4.关系数据模型操作

  关系代数包括一个对表进行操作的操作命令语句的集合,各个语句如下。

  --SELECT( )语句:该语句是从关系里面取出满足指定条件的记录。

  --PROJECT( )语句:该语句是从一个关系里面取出指定的列。

  --PRODUCT( )语句:该语句是计算两个关系的笛卡儿积。

  --UNION( )语句:该语句是计算两个表的集合理论上的连接。

  --INTERSECT( )语句:该语句是计算两个表的集合理论上的交集。

  --DIFFERENCE( )语句:该语句是计算两个表的区别的集合。

  --JOIN( )语句:该语句通过共同属性连接两个表。

  --DIVIDE( )语句:该语句是用除数关系在被除数关系中取商关系。

  13.2 SQL语言简介

  结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制4个方面,是一种通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。常用的功能包括数据定义、查询、数据更新和视图。

  13.2.1 数据定义

  数据定义一般包括定义基本表、修改基本表、删除基本表、建立索引及删除索引等,下面分别介绍。

  1.定义基本表

  定义基本表的一般格式为:

  CREATE TABLE<表名>[<列名><数据类型>[列级完整性约束条件][,<列名>

  <数据类型>[列级完整性约束条件]......][,<表级完整性约束条件>]]

  其中<表名>是所要定义的基本表的名字,它可以由一个或多个属性(列)组成。建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时,由DBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级上也可以定义在表级上。

  2.修改基本表

  修改基本表的一般格式为:

  ALTER TABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>]

  [MODIFY<列名> <数据类型>]

  其中<表名>指定需要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,MODIFY子句用于修改原有的列定义。

  3.删除基本表

  删除基本表的一般格式为:

  DROP TABLE<表名>

  用来删除不使用的数据表。

  4.建立索引

  建立索引的一般格式为:

  CREATE[UNIQUE][CLUSTER]INDEX<索引名><索引名>ON<表名>(<列名>[<次序>]

  [,<列名>[<次序>]]......)

  其中,<表名>指定要建索引的基本表的名字。索引可以建在该表的一列或多列上,各列名之间用逗号分隔。每个<列名>后面还可以用<次序>指定索引值的排列次序,包括ASC(升序)和DESC(降序)两种,默认值为ASC。

  5.删除索引

  删除索引的一般格式为:
   DROP INDEX<索引名>
   用来删除不使用的索引。

  13.2.2 查询

  查询的一般格式为:

  SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>].......FROM
   <表名或视图名>[,<表名或视图名>]......[WHERE<条件表达式>]
   [GROUP BY<列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC|DESC]]
   整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。如果GROUP子句带 HAVING短语,则只有满足指定条件的组才予输出。如果有ORDER子句,则结果表还要按<列名2>的值的升序或降序排序。

  13.2.3 数据更新

  数据更新包括插入数据、修改数据和删除数据,下面分别介绍。

  1.插入数据

  插入数据包括插入单个元组和插入子查询结果。

  (1)插入单个元组

  插入单个元组的INSERT语句的格式为:

  INSERT INTO<表名>(<属性列1>[,<属性列2>......])]
   VALUES(<常量1>[,<常量2>]......)
   如果某些属性列在INTO子句中没有出现,则新记录在这些列上将取空值。

  (2)插入子查询结果

  子查询不仅可以嵌套在SELECT语句中,用以构造父查询的条件,也可以嵌套在 INSERT语句中,用以生成要插入的数据。
   插入子查询结果的INSERT语句的格式为:
   INSERT INTO<表名>[<属性列1>[,<属性列2>......] ] 子查询
   其功能是以批量插入,一次将子查询的结果全部插入指定表中。

  2.修改数据

  修改操作又称为更新操作,其语句的一般格式为:

  UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]......[WHERE<条件>]

  其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。

  3.删除数据

  删除语句的一般格式为:

  DELETE FROM<表名>[WHERE<条件>]

  DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示删除表中全部元组,但表的定义仍在字典中。也就是说,DELETE语句删除的是表中的数据,而不是关于表的定义。

  13.2.4 视图

  视图操作包括定义视图、查询视图和更新视图,下面分别介绍。

  1.定义视图

  定义视图包括创建视图和删除视图。

  (1)创建视图

  SQL语言用CREATE VIEW命令建立视图,其一般格式为:
   CREATE VIEW<视图名>[(<列名>[,<列名>]......)]AS<子查询>
   [WITH CHECK OPTION]
   其中子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句和DISTINCT短语。WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时,要保证更新、插入或删除的行满足视图定义中的子查询中的条件表达式。

  (2)删除视图

  删除视图的语句格式为:
   DROP VIEW<视图名>

  2.查询视图

  视图定义后,用户就可以像对基本表进行查询一样对视图进行查询了。
   DBMS执行对视图的查询时,首先进行有效性检查,检查查询涉及的表、视图等是否在数据库中存在,如果存在,则从数据字典中取出查询涉及的视图的定义,把定义中的子查询和用户对视图的查询结合起来,转换成对基本表的查询,然后再执行这个经过修正的查询。将对视图的查询转换为对基本表的查询的过程称为视图的消解(View Resolution)。
   视图是定义在基本表上的虚表,它可以和其他基本表一起使用,实现连接查询或嵌套查询。这也就是说,在关系数据库的三级模式结构中,外模式不仅包括视图,而且可以包括一些基本表。

  3.更新视图

  更新视图包括插入(INSERT)、删除(DELETE)和修改(UPDATE)这3类操作。
   由于视图不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。

 
  • 上一篇文章:

  • 下一篇文章:
  • 论坛交流】【发表评论】【打印本文】【关闭窗口

    网站公告 | 关于本站 | 管理团队 | 友情链接 | 版权申明 | 广告服务 | 网站地图 | 访客留言

    Copyright ©
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览 |  
    备案中 |
    本站大部分信息资源来源于网络,仅供学习|研究|探讨|收藏之用,版权归原作者所有!