190 likes | 317 Views
第 9 章. 本章要点 · 数据库、数据库管理系统、数据库应用系统 · 数据库驱动程序和数据源 · 动态数据的操作(插入应用程序对象、记录显示、记录插入、删除和更新记录)
E N D
第9章 • 本章要点 • ·数据库、数据库管理系统、数据库应用系统 • ·数据库驱动程序和数据源 • ·动态数据的操作(插入应用程序对象、记录显示、记录插入、删除和更新记录) • 通过用数据库存储内容可以使 Web 站点的设计与要显示给站点用户的内容分开。不必为每个页面都编写单独的HTML 文件,只需为要呈现的不同类型的信息编写一个页面(或模板)即可。通过使用数据库,只需将内容上传到数据库中,然后让 Web 站点动态地检索该内容以响应用户的请求,即可向 Web 站点提供新的内容。将内容信息存储在数据库中的主要优势是:能够在单个源中更新信息,然后将此更改传播到整个 Web 站点,而不必搜索可能包含该信息的所有页面并手工编辑每个页面。 • 本章介绍网站建设中数据库的一些基础知识和相关操作。 • 9.1 数据库概述 • 数据库技术是数据信息管理技术的最新成果,被广泛地应用于国发经济系统中文化教育企业管理以及办公自动化等方面,为计算机的应用开辟了广阔的天地,下面先来了解一下数据库的概念及常见数据库处理系统 • 9.1.1 数据库管理系统 • 数据,数据库,数据库管理系统和数据库系统是与数据库技术密切相关的四个基本概念.下面来讲解这些概念的含义 • 1.数据(Data) • 数据是数据库中存储的基本对象.数据在多数人的头脑中第一个反应就是数字.其实数字只是最简单的一种数据.是数据的一种传统和侠义的理解.而广义的理解数据的种类很多,其中包括文字,图形,图像,声音等.也可说数据是描述事物的符号记录.描述事物的符号可以是数字,也可以是文字, 图形,图像,声音等.
数据有多种表现形式,都可以经过数字化后存入计算机.在信息交流过程中,人们需要描述一些事物,在一般的日常生活中,我们直接用自然语言(如汉族)描述.但是在计算机中,为了存储和处理这些事物,就要抽象对这些事物感兴趣的特征组成一个记录来描述. • 2.数据库(DateBase,简称DB) • 数据库是存放数据的仓库.只不过这个仓库地在计算机存储设备上,而且数据是按一定的格式存放的.人们收集并抽取出一个应用所需要的大量数据之后.应将其保存起来以便进一步分析处理,进一步的提取有用信息 • 在计算机中的数据库是指长期储存在计算机内的,有组织的,可共享的数据集合.数据库中的数据按一定的数据模型组织,描述和存储,有较小的冗余度,较高的数据独立性和易扩展性,并可以为各种用户共享. • 3.数据库管理系统(Database management system,简称DBMS) • 数据库管理系统是数据库管理的一个重要组成部分,它是位于用户和操作系统之间的一层数据管理软件,主要包括以下几个方面. • (1)数据定义功能 • DBMS提供数据定义语言(Data definition language,简称DDL)通过它可以方便地对数据库中的数据进行定义 • (2)数据操纵功能 • DBMS还提供数据操作语言(data manipulation language,简称DML)可以使用DML操纵数据实现对数据库的基本操作.如查询,插入,删除和修改等.
(3)数据库的运行管理 • 数据库在建立,运用和维护时,由数据库系统统一管理,统一控制,以保证数据的安全性.完整性和多用户并发使用以及发生故障后的系统恢复功能 • (4)数据库的建立和维护功能 • 包括数据库初始数据的输入,转换功能.数据库的转储.恢复功能.数据库管理系统(及其开发工具)应用程序,数据管理员和用户组成.在一般不引起混淆的情况下,常常把数据库系统简称为数据库 • 4.常见的数据库管理系统 • 在使用数据库时,大家都希望有一个功能强大,操作方便,运行稳定,价格低廉的数据库系统,目前市场上有许多数据库产品,如Microsoft access、SQL Server和Oracle等,都有其各自的特点与功能 • 5.数据库应用系统 • 是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及数据库管理系统。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。 • 6.Access数据库 • Access数据库不仅拥有典型关系型数据库管理系统(RDBMS)的所有功能,而且还有一般RDBMS不具备的许多功能,Access不仅是强大的,灵活的和易用的RDBMS,还是数据库应用程序开发工具。
9.1.2 数据库驱动程序和数据源 • 存储在数据库中的数据通常有专有的格式,就像字处理器文件中的文本以专有格式存储一样。例如,数据在 Microsoft Access 中类似于此处显示的形式:
相同的数据库在“记事本”中类似于此处显示的形式:相同的数据库在“记事本”中类似于此处显示的形式: • Web 应用程序与“记事本”或其它任何应用程序一样,在试图访问未知格式的数据时面临同样的问题:应用程序无法解释这些数据。这就需要在 Web 应用程序与数据库之间存在一个软件接口,以允许应用程序和数据库互相进行通信。 • 三种常见接口可以使应用程序与数据库进行通信。第一种称为“开放式数据库连接”(或 ODBC);第二种称为 OLE DB(对象链接和嵌入数据库);第三种称为“Java 数据库连接”(或 JDBC)。
这些接口的工作类似于翻译人员。例如,当在联合国进行英语演讲时,一名翻译人员为说法语的代表进行翻译,同时另一名翻译人员为说德语的代表进行翻译。与此类似,您可为“说”OLE DB 的应用程序使用一种接口,为“说”ODBC 的 Web 应用程序使用另一种接口,还可为“说”JDBC 的应用程序使用另外一种接口。ColdFusion 和 JSP 应用程序使用 JDBC、ASP 使用 ODBC(通过内置的 OLE DB/ODBC 解释器)、ASP.NET 应用程序使用 OLE DB。 • ODBC、OLE DB 和 JDBC 接口由数据库驱动程序(在 OLE DB 中称为“数据提供程序”)实现,这些接口仅是软件片段。当 Web 应用程序与数据库进行通信时,应用程序是通过驱动程序的中间作用实现通信的。 • 数据库驱动程序是特定于数据库的。例如,可以使用 Microsoft Access、SQL Server 和 dBase 驱动程序。与此类似,您可使用 OLE DB 提供程序,例如用于 SQL Server 的 OLE DB 提供程序。数据库决定了选择什么样驱动程序。 • 驱动程序由诸如 Microsoft 和 Oracle 等数据库供应商编写,也可由各个第三方软件供应商编写。Microsoft 为最流行的数据库软件包(如 Microsoft Access、Microsoft SQL Server 和 Oracle)提供许多 ODBC 驱动程序和 OLE DB 提供程序。ODBC 驱动程序只运行于 Windows 平台,在安装 Microsoft Office、Windows 2000 或 Windows XP Professional 时会同时自动安装这些驱动程序。它们也随 Microsoft Data Access Components (MDAC) 2.5、2.6 和 2.7 软件包安装。Microsoft Data Access Components (MDAC) 2.5、2.6 和 2.7 软件包可从 Microsoft Web 站点 http://msdn.microsoft.com/data/mdac/downloads/处免费下载。MDAC 2.7 可安装许多 OLE DB 提供程序。 • 若要了解您的 Windows 系统上安装了哪些 ODBC 驱动程序,请参见查看安装在 Windows 系统上的 ODBC 驱动程序。 • 此处是用于各种类型 Web 应用程序的数据库接口及一些常见的数据库驱动程序:
ODBC(Open DataBase connectivity,开放数据库互连)是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。 • ODBC工作起来和Windows一样,它用包含在DLL内的驱动程序完成任务。其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。允许Visual C++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,一个这样的DLL允许你管理ODBC数据源。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中。 • 如果您需要特定的 ODBC 驱动程序,并且您的 Web 服务器运行于 Windows 系统上,则可方便地知道系统上是否安装有所需的 ODBC 驱动程序。
若要查看 Windows 系统上安装的 ODBC 驱动程序,请执行以下操作: • 按以下步骤打开“ODBC 数据源管理器”: • 在 Windows 2000 中,选择“开始”>“设置”>“控制面板”>“管理工具”>“数据源”。 • 在 Windows XP 中,选择“开始”>“控制面板”>“管理工具”>“数据源 (ODBC)”。 • 单击“驱动程序”选项卡。 • 将会出现系统上所安装的 ODBC 驱动程序的列表。如图9-3。 • 图9-3 ODBC数据源管理器窗口
ODBC的最大优点是能以统一的方式处理所有的数据库。 一个完整的ODBC由下列几个部件组成: 应用程序(Application); ODBC管理器(Administrator),其主要任务是管理安装的ODBC驱动程序和管理数据源; 驱动程序管理器(Driver Manager),驱动程序管理器包含在ODBC32.DLL中,对用户是透明的,其任务是管理ODBC驱动程序,是ODBC中最重要的部件。 ODBC API; ODBC 驱动程序,是一些DLL,提供了ODBC和数据库之间的接口。 • 数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图9-4所示: • 图9-4 ODBC中各部分的关系
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。在访问ODBC数据源时需要ODBC驱动程序的支持。 • 9.1.3 数据库表及操作 • 数据库的基本组成单位是记录。记录是被视为单个实体的相关数据的集合。例如,一个曲棍球商用卡可以称为一条记录:该卡集中了某名运动员的姓名、照片、运动队和相关的统计信息。用数据库术语表示,上述每一条相关信息都可以称为一个字段:每条曲棍球卡“记录”都具有姓名字段、照片字段、运动队字段以及各种运动员统计信息字段。具有相同字段的记录的集合称为表,因为此类信息可方便地以表的格式表示:每一列代表一个字段,每一行代表一条记录。实际上,“列”一词和“字段”一词是同义的,“行”一词和“记录”一词是同义的。记录行列如图9-5所示。 • 图9-5 记录行、列
一个数据库可包含多个表,每个表具有唯一的名称。这些表可以是相关的,也可以是彼此独立的。从一个或多个表中提取的数据子集称为记录集(在 ASP.NET 中称为数据集)。记录集也是一种表,因为它是具有相同列的记录的集合。例如,列有运动员姓名和司职位置的曲棍球运动队花名册可以称为记录集:它由所有可能与运动员相关的信息(如得分、助攻、罚球记录等等)的子集组成。若要创建记录集,需要运行数据库查询。查询由搜索条件组成。例如,查询可指定记录集中仅包含特定列或仅包含特定记录。数据库表与记录集关系如图9-6所示。 • 图9-6 表与记录集 • 建立完数据库之后,需要建立数据表,在建立表之前,需要明确数据库中要建立多少个表,以及每个表中所要包含的内容。例如,对于“用户管理”网页所需要数据库及数据的字段和字段数据类型等。
表9-1 User数据表信息 • 9.1.4 数据库的连接 • 如果要将数据库与 Web 应用程序一起使用,至少需要创建一个数据库连接。如果没有数据库连接,应用程序将不知道在何处找到数据库或如何与之连接。可通过提供应用程序与数据库建立联系所需的信息或“参数”,在 Dreamweaver 中创建数据库连接。 • 根据所选择的服务器技术,Dreamweaver 处理数据库连接的方式也将有所不同。本章假定您已经设置 ASP 应用程序(请参见设置 Web 应用程序)。还假定您已经在本地计算机(或在对其具有网络或 FTP 访问权的系统)上设置了数据库。 • ASP 应用程序必须通过开放式数据库连接 (ODBC) 驱动程序(或对象链接)和嵌入式数据库 (OLE DB) 提供程序连接到数据库。该驱动程序或提供程序用作解释器,能够使 Web 应用程序与数据库进行通信。表9-2显示了一些可以与 Microsoft Access、Microsoft SQL Server 和 Oracle 数据库一起使用的驱动程序:
表9-2 有关ASP的驱动程序 • 1.DSN连接 • 可以使用数据源名称 (DSN) 或连接字符串连接到数据库。DSN 是单个词的标识符(如 myConnection),它指向数据库并包含连接到该数据库所需的全部信息。同Windows 系统上的 ODBC 驱动程序进行连接,则可以使用 DSN。使用本地定义的 DSN 创建数据库连接,请执行以下操作:
1)在运行 Dreamweaver 的 Windows 计算机上定义一个 DSN。 • 2)在 Dreamweaver 中打开一个 ASP 页,然后打开“数据库”面板(“窗口”>“数据库”)。 Dreamweaver 显示为该站点定义的所有连接。 • 3)单击该面板上的加号 (+) 按钮,然后从弹出菜单中选择“数据源名称 (DSN)”。出现“数据源名称 (DSN)”对话框,如图9-11。 • 图9-11数据源名称 (DSN) • 4)输入新连接的名称。注意:不要在该名称中使用任何空格或特殊字符。 • 5)选择该对话框底部的“使用本地 DSN”选项。 • 6)从“数据源名称 (DSN)”弹出菜单中选择要使用的 DSN。如果要使用本地 DSN 但却未定义本地 DSN,请单击“定义”打开 Windows ODBC 数据源管理器。
7)如果需要,请填写“用户名”和“密码”文本框。 • 8)如果需要,请单击“高级”并输入一个架构或目录名称,以限制 Dreamweaver 在设计时所检索的数据库项数。 • 9)单击“测试”。Dreamweaver 尝试连接到数据库。如果连接仍然失败,请检查 Dreamweaver 用来处理动态页的文件夹的设置。 • 10)单击“确定”。新连接出现在“数据库”面板上,如图9-12所示。 • 图9-12 已建数据库连接 • 2.连接字符串是手动编码的表达式,它标识数据库并列出连接到该数据库所需的信息。下面是一个示例:
Driver={SQL Server};Server=Socrates;Database=AcmeMktg; • UID=wiley;PWD=roadrunner • 如果您正在通过以下程序之一进行连接,则必须使用连接字符串: • (1)OLE DB 提供程序 • (2)未安装在 Windows 系统上的 ODBC 驱动程序 • 使用连接字符串定义数据库连接,请执行以下操作: • 1)在第一个文本框中输入新连接的名称。 • 2)在第二个文本框中输入指向数据库的连接字符串。 • 如果没有在连接字符串中指定 OLE DB 提供程序(即,没有包含 Provider 参数),ASP 将自动使用用于 ODBC 驱动程序的 OLE DB 提供程序。这种情况下,必须为数据库指定适当的 ODBC 驱动程序。 • 如果您的站点由 ISP 承载,而您不知道数据库的完整路径,请在连接字符串中使用 ASP 服务器对象的 MapPath 方法。 • 3)如果在连接字符串中指定的数据库驱动程序没有与 Dreamweaver 安装在同一台计算机上,请选择“在测试服务器上使用驱动程序”选项。 Macintosh 用户可以忽略此步骤,因为所有数据库连接均使用应用程序服务器。 • 4)如果需要,请单击“高级”并输入一个架构或目录名称,以限制 Dreamweaver 在设计时所检索的数据库项数。 • 5)单击“测试”。 • Dreamweaver 尝试连接到数据库。如果连接仍然失败,请检查 Dreamweaver 用来处理动态页的文件夹的设置。 • 6)单击“确定”。新连接出现在“数据库”面板上。界面同图9-13和9-14。 • 3.OLE DB 连接 • 用户可以使用 OLE DB 提供程序与数据库进行通信。通过创建直接的数据库特定的 OLE DB 连接,可以消除 Web 应用程序和数据库之间的 ODBC 层,从而提高连接的速度。
如果没有为数据库指定 OLE DB 提供程序,ASP 会使用 ODBC 驱动程序的默认 OLE DB 提供程序与 ODBC 驱动程序进行通信,而后者又与数据库进行通信。 • OLE DB 仅在 Windows NT、2000 或 XP 上可用。 • 对于不同的数据库存在不同的 OLE DB 提供程序。您可以通过下载 Microsoft Data Access Components (MDAC) 2.5 和 2.7 软件包并将其安装在运行 IIS 的 Windows 计算机上来获取用于 Microsoft Access 和 SQL Server 的 OLE DB 提供程序。可以从 Microsoft Web 站点免费下载 MDAC 软件包,网址为 http://msdn.microsoft.com/data/mdac/downloads/。注意:安装 MDAC 2.7 之前应确保 MDAC 2.5 已安装。 • 用于 Oracle 数据库的 OLE DB 提供程序可以从 Oracle Web 站点下载,网址为 www.oracle.com/technology/software/tech/windows/ole_db/index.html(要求注册)。 • 4.连接字符串包含Web应用程序连接到数据库所需的全部信息。Dreamweaver 在页的服务器端脚本中插入该字符串,以便应用程序服务器随后进行处理。 • 对于 Microsoft Access 和 SQL Server 数据库,连接字符串包含由分号分隔的以下参数: • Provider 指定数据库的 OLE DB 提供程序。例如,下面分别是 Access、SQL Server 和 Oracle 数据库的常用 OLE DB 提供程序的参数: • Provider=Microsoft.Jet.OLEDB.4.0;... • Provider=SQLOLEDB;... • Provider=OraOLEDB;... • 有关OLE DB 提供程序的参数值,请参见提供程序供应商提供的文档或向您的系统管理员咨询。 • 如果没有包含“Provider”参数,则将使用 ODBC 的默认 OLE DB 提供程序,而且您必须为数据库指定适当的 ODBC 驱动程序。 • Driver 指定在没有为数据库指定 OLE DB 提供程序时所使用的 ODBC 驱动程序。 • Server 指定承载 SQL Server 数据库的服务器(如果您的 Web 应用程序运行在其它服务器上)。
Database 为 SQL Server 数据库的名称。 • DBQ 是指向基于文件的数据库(如在 Microsoft Access 中创建的数据库)的路径。该路径是在承载数据库文件的服务器上的路径。 • UID 指定用户名。 • PWD 指定用户密码。 • DSN 为数据源名称(如果已使用)。根据您在服务器上定义 DSN 的方式,可以省略连接字符串的其它参数。例如,如果在创建 DSN(请参见使用 DSN)时定义其它参数,则 DSN=Results 可以是有效的连接字符串。 • 对于其它类型的数据库,连接字符串可能不使用上面列出的参数,或者可能对于这些参数有不同的名称或用途。有关更多信息,请参见数据库供应商提供的文档或咨询您的系统管理员。 • 下面是一个连接字符串示例,它将创建与名为 trees.mdb 的 Access 数据库的 ODBC 连接: • Driver={Microsoft Access Driver (*.mdb)}; • DBQ=C:\Inetpub\wwwroot\Research\trees.mdb • 下面是一个连接字符串示例,它将创建与位于 Gojira 服务器上名为 Mothra 的 SQL Server 数据库的 OLE DB 连接: • Provider=SQLOLEDB;Server=Gojira;Database=Mothra;UID=jsmith; • PWD=orlando8 • 9.2 动态数据操作 • 数据库强大的功能离不开数据的增加、修改、删除、查询等操作。
9.4 实训 • 实训目标 掌握数据库记录的增加、删除、更新操作 • 实训题目 小小留言板 • 9.5 习题 • 1.什么是数据库、数据库管理系统、数据库应用系统? • 2.ODBC有何功能,如何建立数据源(DSN)? • 3.ASP中数据库有哪些连接方式,以及如何实现? • 4.建立一个学生数据库,数据库中的表请自行定义,如学生成绩表(学号,姓名、语文、数学、ASP,Dreamweave,总分),试设计对学生成绩表进行删除、查询、修改的页面。