日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
php與數(shù)據(jù)庫交互論文 PHP畢業(yè)論文

如何用html php和數(shù)據(jù)庫之間建立聯(lián)系

用html 寫好頁面,php與數(shù)據(jù)庫連接,數(shù)據(jù)庫的數(shù)據(jù)可通過php查詢并傳輸給html,這時(shí)需要用js來接受php傳過來的數(shù)據(jù)并將數(shù)據(jù)展示在html中。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鎮(zhèn)雄免費(fèi)建站歡迎大家使用!

PHP處理數(shù)據(jù)庫

請檢查一下$WB對應(yīng)的表是否已經(jīng)定義?提示的是(indexx附近有語法錯(cuò)誤。是你的SQL語句有問題,

建議將執(zhí)行的SQL單獨(dú)賦值。

$sql="insert into $WB (indexx,id,mid,uid,parent,t,reposts_count,attitudes_count,comments_count,text,original_text,user_created_at,followers_count,

bi_followers_count,favourites_count,statuses_count,friends_count,username,screen_name,user_description,gender,province,city,verified,verified_reason,verified_type,

user_location,user_avatar,user_geo_enabled,picture,geo) values $data_values");";

echo $sql."br/";//測試輸出,然后檢查該SQL語句的語法是否正確。

$query=mysqli_query($sql);

基于Web的數(shù)據(jù)庫系統(tǒng)開發(fā)論文

基于web的數(shù)據(jù)庫方面的論文,在鍵盤論文網(wǎng)上很多的,你可以參考下,我之前也是找他們的在線輔導(dǎo)老師咨詢的,非常專業(yè)

這里還有點(diǎn)資料,你參考下

主要的內(nèi)容:

1)將Web技術(shù)和數(shù)據(jù)庫技術(shù)相結(jié)合,在WWW上開發(fā)動態(tài)交互的Web數(shù)據(jù)庫應(yīng)用,已逐 漸成為基于WWW的信息管理系統(tǒng)的核心和重要發(fā)展方向,本文分析和研究了關(guān)于動態(tài)Web 數(shù)據(jù)庫的開發(fā)與應(yīng)用及其相關(guān)的問題。

2)簡要地介紹了Web數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫相比的諸多優(yōu)點(diǎn),以及目前Web數(shù)據(jù)庫在不 同應(yīng)用方案中的類型;討論了兩種Web數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu):混合Web數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)、B/S模 式Web數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

3)闡述了Web和關(guān)系數(shù)據(jù)庫處理模式的不同之處,在此基礎(chǔ)上討論了 三種集成模型:CGI、API、Fat Client;分析了Web數(shù)據(jù)庫的幾種實(shí)現(xiàn)技術(shù),并分析了它們各 自的優(yōu)缺點(diǎn)和應(yīng)用場所;初步探討了Windows DNA體系結(jié)構(gòu),在此基礎(chǔ)上把Web數(shù)據(jù)庫與 DNA相集成,進(jìn)行可擴(kuò)展設(shè)計(jì)

4)最后,在數(shù)據(jù)庫安全與網(wǎng)絡(luò)安全問題的基礎(chǔ)上,從服務(wù)器安 全、用戶身份驗(yàn)證、對話期安全三方面研究了基于Web的數(shù)據(jù)庫的安全問題。

結(jié)論:

本文研究了數(shù)據(jù)庫與www相結(jié)合的理論和技術(shù)問題,研究結(jié)果表明:兩者的集成可以 把Web與數(shù)據(jù)庫的優(yōu)點(diǎn)集中在一起,使計(jì)算機(jī)系統(tǒng)具有數(shù)據(jù)庫功能、網(wǎng)絡(luò)功能、多媒體功能 和超文本功能。Web數(shù)據(jù)庫與DNA體系結(jié)構(gòu)相結(jié)合,利用XML技術(shù),使應(yīng)用程序具有更好 的擴(kuò)展性,達(dá)到節(jié)約資源的目的

論文的框架你看下,大同小異的:

第一章 緒論38-45

1.1 Www的動態(tài)交互技術(shù)38-39

1.2 WWW環(huán)境下建立數(shù)據(jù)庫系統(tǒng)39-43

1.2.1 數(shù)據(jù)庫系統(tǒng)39-41

1.2.2 WWW環(huán)境下的數(shù)據(jù)庫系統(tǒng)41-43

1.3 Web數(shù)據(jù)庫的應(yīng)用分類43-45

第二章 Web數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)45-49

2.1 混合web數(shù)據(jù)庫系統(tǒng)45

2.2 B/S模式Web數(shù)據(jù)庫系統(tǒng)45-49

2.2.1 三層體系結(jié)構(gòu)45-47

2.2.2 多層體系結(jié)構(gòu)47

2.2.3 三層B/S模式47-49

第三章 Web數(shù)據(jù)庫的集成模型49-55

3.1 CGI Architecture50-51

3.2 API Architecture51-52

3.3 Fat Client Architecture52-55

第四章 Web數(shù)據(jù)庫的實(shí)現(xiàn)技術(shù)55-87

4.1 基于web的異構(gòu)數(shù)據(jù)庫系統(tǒng)的集成55-58

4.1.1 數(shù)據(jù)庫系統(tǒng)之間的差異性55

4.1.2 異構(gòu)數(shù)據(jù)庫系統(tǒng)集成的策略55-56

4.1.3 ODBC(開放式數(shù)據(jù)庫互聯(lián))56-57

4.1.4 OLE DB技術(shù)57-58

4.2 存取數(shù)據(jù)庫的對象群:DAO,RDO,及ADO58-61

4.2.1 DAO58-59

4.2.2 RDO59

4.2.3 ADO(ActiveX Data Objects)59-60

4.2.4 與其他數(shù)據(jù)訪問對象一起使用ADO60-61

4.3 用類進(jìn)行數(shù)據(jù)庫訪問61-63

4.4 ASP網(wǎng)絡(luò)開發(fā)技術(shù)63-66

4.4.1 ASP技術(shù)概述63-64

4.4.2 IDC技術(shù)64-65

4.4.3 ASP和傳統(tǒng)CGI的對比65

4.4.4 ASP同腳本語言的關(guān)系65-66

4.5 利用ASP技術(shù)訪問Web數(shù)據(jù)庫的方法66-68

4.5.1 Web數(shù)據(jù)庫訪問方法之一66

4.5.2 Web數(shù)據(jù)庫訪問方法之二66-67

4.5.3 RDS67-68

4.6 用Java語言訪問數(shù)據(jù)庫68-80

4.6.1 Java語言的特點(diǎn)68-70

4.6.2 Applet和Application70-71

4.6.3 Java語言與數(shù)據(jù)庫的接口JDBC71

4.6.4 JDBC的體系結(jié)構(gòu)71-74

4.6.5 JDBC的功能與特點(diǎn)74-78

4.6.6 Agave JDBC NetServer78-80

4.7 JSP網(wǎng)絡(luò)開發(fā)技術(shù)80-85

4.7.1 JSP的運(yùn)行方式80-81

4.7.2 JSP與ASP的比較81

4.7.3 JSP與傳統(tǒng)CGI比較81

4.7.4 Java Servlet技術(shù)81-83

4.7.5 JSP和Servlet的結(jié)合使用83-84

4.7.6 JavaBeans84-85

4.8 PHP網(wǎng)絡(luò)開發(fā)技術(shù)85-87

4.8.1 PHP技術(shù)概述85-86

4.8.2 PHP與其它動態(tài)發(fā)布網(wǎng)頁技術(shù)的比較86-87

第五章 Web數(shù)據(jù)庫與DNA87-96

5.1 Web數(shù)據(jù)庫與DNA87-89

5.1.1 DNA體系結(jié)構(gòu)的優(yōu)點(diǎn)87

5.1.2 DNA體系結(jié)構(gòu)的實(shí)現(xiàn)87-88

5.1.3 Web-DNA體系結(jié)構(gòu)88-89

5.2 使用ADO記錄集89-91

5.2.1 在服務(wù)器之間傳送數(shù)據(jù)89-90

5.2.2 使用層次化的ADO記錄集90-91

5.3 使用DNA模型進(jìn)行可擴(kuò)展設(shè)計(jì)91-93

5.3.1 可擴(kuò)展性是關(guān)于節(jié)約資源的91

5.3.2 三種不同的用戶界面91

5.3.3 有限可擴(kuò)展性的經(jīng)典實(shí)現(xiàn)及其改進(jìn)方法91-93

5.4.1 XML94

5.4.2 把記錄集轉(zhuǎn)成XML94-96

第六章 Web數(shù)據(jù)庫系統(tǒng)安全96-106

6.1 信息安全問題的新局面96-97

6.2 數(shù)據(jù)庫的安全問題97-98

6.3 網(wǎng)絡(luò)安全問題98-100

6.3.1 防火墻技術(shù)99

6.3.2 數(shù)據(jù)加密技術(shù)99-100

6.3.3 網(wǎng)絡(luò)安全一體化解決方法100

6.4 基于Web的數(shù)據(jù)庫安全問題100-106

6.4.1 Web數(shù)據(jù)庫的安全問題100-101

6.4.2 服務(wù)器安全101-103

6.4.3 用戶身份驗(yàn)證安全103-106

總結(jié)

最后還有參考文獻(xiàn)和致謝就不寫了

如果還有什么不懂的就上鍵盤論文自己看吧

用php和mysql做的作業(yè),有大神能給我一份參考嗎?謝謝。

PHP 和 AJAX MySQL 數(shù)據(jù)庫實(shí)例

AJAX XML

AJAX responseXML

AJAX 可用來與數(shù)據(jù)庫進(jìn)行交互式通信。

AJAX 數(shù)據(jù)庫實(shí)例

在下面的 AJAX 實(shí)例中,我們將演示網(wǎng)頁如何使用 AJAX 技術(shù)從 MySQL 數(shù)據(jù)庫中讀取信息。

在下拉列表中選擇一個(gè)名字 (測試說明:該實(shí)例功能未實(shí)現(xiàn))

Select a User:

在此列出用戶信息。

此列由四個(gè)元素組成:

MySQL 數(shù)據(jù)庫

簡單的 HTML 表單

JavaScript

PHP 頁面

數(shù)據(jù)庫

將在本例中使用的數(shù)據(jù)庫看起來類似這樣:

idFirstNameLastNameAgeHometownJob

1PeterGriffin41QuahogBrewery

2LoisGriffin40NewportPiano Teacher

3JosephSwanson39QuahogPolice Officer

4GlennQuagmire41QuahogPilot

HTML 表單

上面的例子包含了一個(gè)簡單的 HTML 表單,以及指向 JavaScript 的鏈接:

html

head

script src="selectuser.js"/script

/head

body

form

Select a User:

select name="users" onchange="showUser(this.value)"

option value="1"Peter Griffin/option

option value="2"Lois Griffin/option

option value="3"Glenn Quagmire/option

option value="4"Joseph Swanson/option

/select

/form

p

div id="txtHint"bUser info will be listed here./b/div

/p

/body

/html

例子解釋 - HTML 表單

正如您看到的,它僅僅是一個(gè)簡單的 HTML 表單,其中帶有名為 "users" 的下拉列表,這個(gè)列表包含了姓名,以及與數(shù)據(jù)庫的 "id" 對應(yīng)的選項(xiàng)值。

表單下面的段落包含了名為 "txtHint" 的 div。這個(gè) div 用作從 web 服務(wù)器檢索到的信息的占位符。

當(dāng)用戶選擇數(shù)據(jù)時(shí),執(zhí)行名為 "showUser()" 的函數(shù)。該函數(shù)的執(zhí)行由 "onchange" 事件觸發(fā)。

換句話說:每當(dāng)用戶改變下拉列表中的值,就會調(diào)用 showUser() 函數(shù)。

JavaScript

這是存儲在 "selectuser.js" 文件中的 JavaScript 代碼:

var xmlHttp

function showUser(str)

{

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)

{

alert ("Browser does not support HTTP Request")

return

}

var url="getuser.php"

url=url+"?q="+str

url=url+"sid="+Math.random()

xmlHttp.onreadystatechange=stateChanged

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function stateChanged()

{

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById("txtHint").innerHTML=xmlHttp.responseText

}

}

function GetXmlHttpObject()

{

var xmlHttp=null;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

//Internet Explorer

try

{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

}

return xmlHttp;

}

例子解釋:

stateChanged() 和 GetXmlHttpObject 函數(shù)與 PHP AJAX 請求 那一節(jié)中的相同,您可以參閱其中的相關(guān)解釋。

showUser() 函數(shù)

假如下拉列表中的項(xiàng)目被選擇,函數(shù)執(zhí)行:

調(diào)用 GetXmlHttpObject 函數(shù)來創(chuàng)建 XMLHTTP 對象

定義發(fā)送到服務(wù)器的 URL(文件名)

向 URL 添加帶有下拉列表內(nèi)容的參數(shù) (q)

添加一個(gè)隨機(jī)數(shù),以防服務(wù)器使用緩存的文件

當(dāng)觸發(fā)事件時(shí)調(diào)用 stateChanged

通過給定的 URL 打開 XMLHTTP 對象

向服務(wù)器發(fā)送 HTTP 請求

PHP 頁面

由 JavaScript 調(diào)用的服務(wù)器頁面,是名為 "getuser.php" 的簡單 PHP 文件。

該頁面用 PHP 編寫,并使用 MySQL 數(shù)據(jù)庫。

其中的代碼執(zhí)行針對數(shù)據(jù)庫的 SQL 查詢,并以 HTML 表格返回結(jié)果:

?php

$q=$_GET["q"];

$con = mysql_connect('localhost', 'peter', 'abc123');

if (!$con)

{

die('Could not connect: ' . mysql_error());

}

mysql_select_db("ajax_demo", $con);

$sql="SELECT * FROM user WHERE id = '".$q."'";

$result = mysql_query($sql);

echo "table border='1'

tr

thFirstname/th

thLastname/th

thAge/th

thHometown/th

thJob/th

/tr";

while($row = mysql_fetch_array($result))

{

echo "tr";

echo "td" . $row['FirstName'] . "/td";

echo "td" . $row['LastName'] . "/td";

echo "td" . $row['Age'] . "/td";

echo "td" . $row['Hometown'] . "/td";

echo "td" . $row['Job'] . "/td";

echo "/tr";

}

echo "/table";

mysql_close($con);

?

例子解釋:

當(dāng)查詢從 JavaScript 被發(fā)送到這個(gè) PHP 頁面,會發(fā)生:

PHP 打開到達(dá) MySQL 服務(wù)器的連接

找到擁有指定姓名的 "user"

創(chuàng)建表格,插入數(shù)據(jù),然后將其發(fā)送到 "txtHint" 占位符

用php將數(shù)據(jù)寫進(jìn)數(shù)據(jù)庫中

如果你會點(diǎn)php基礎(chǔ)我可以給你點(diǎn)參考意見

一個(gè)是,你這個(gè)文件肯定是txt格式的

$fp = fopen('xxx.txt','r');//用只讀方式打開文件

$getsource = fgets($fp);//讀取第一行,主要是用于去除第一行

while(!feof($fp)){

$getsource = fgets($fp);//獲取有用數(shù)據(jù)

$insource = explode(" ", $getsource);//把一行文字變成數(shù)組,按符號分割

/*---------------下面寫數(shù)據(jù)存儲的sql-------------------*/

......

/*---------------上面寫數(shù)據(jù)存儲的sql-------------------*/

}

我默認(rèn)為你對php和mysql是熟悉的,不然你也不會打算用php寫這個(gè)程序,我只提供你點(diǎn)思路,php對文件操作不熟悉的話你可以參考下這篇文章

;id=77class=2

希望對你有幫助

數(shù)據(jù)庫論文 急求!!追加1000分

一、三個(gè)世界

1、現(xiàn)實(shí)世界 人們管理的對象存于現(xiàn)實(shí)世界中?,F(xiàn)實(shí)世界的事物及事物之間存在著聯(lián)系,這種聯(lián)系是客觀存在的,是由事物本身的性質(zhì)決定的。例如學(xué)校的教學(xué)系統(tǒng)中有教師、學(xué)生、課程,教師為學(xué)生授課,學(xué)生選修課程并取得成績。

2、概念世界 概念世界是現(xiàn)實(shí)世界在人們頭腦中的反映,是對客觀事物及其聯(lián)系的一種抽象描述,從而產(chǎn)生概念模型。概念模型是現(xiàn)實(shí)世界到機(jī)器世界必然經(jīng)過的中間層次。涉及到下面幾個(gè)術(shù)語:

實(shí)體:我們把客觀存在并且可以相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是實(shí)際事物,也可以是抽象事件。如一個(gè)職工、一場比賽等。

實(shí)體集:同一類實(shí)體的集合稱為實(shí)體集。如全體職工。注意區(qū)分"型"與"值"的概念。如每個(gè)職工是職工實(shí)體"型"的一個(gè)具體"值"。

屬性:描述實(shí)體的特性稱為屬性。如職工的職工號,姓名,性別,出生日期,職稱等。

關(guān)鍵字:如果某個(gè)屬性或?qū)傩越M合的值能唯一地標(biāo)識出實(shí)體集中的每一個(gè)實(shí)體,可以選作關(guān)鍵字。用作標(biāo)識的關(guān)鍵字,也稱為碼。如"職工號"就可作為關(guān)鍵字。

聯(lián)系:實(shí)體集之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián)。聯(lián)系分為兩種,一種是實(shí)體內(nèi)部各屬性之間的聯(lián)系。另一種是實(shí)體之間的聯(lián)系。

3、機(jī)器世界 存入計(jì)算機(jī)系統(tǒng)里的數(shù)據(jù)是將概念世界中的事物數(shù)據(jù)化的結(jié)果。為了準(zhǔn)確地反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示。數(shù)據(jù)模型將概念世界中的實(shí)體,及實(shí)體間的聯(lián)系進(jìn)一步抽象成便于計(jì)算機(jī)處理的方式。

數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能比較真實(shí)地模擬現(xiàn)實(shí)世界;二是容易為人所理解;三是便于在計(jì)算機(jī)上實(shí)現(xiàn)。數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束是構(gòu)成數(shù)據(jù)模型的三要素。數(shù)據(jù)模型主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對數(shù)據(jù)建模,用于DBMS的實(shí)現(xiàn)。

關(guān)系數(shù)據(jù)庫采用關(guān)系模型作為數(shù)據(jù)的組織方式。 關(guān)系數(shù)據(jù)庫因其嚴(yán)格的數(shù)學(xué)理論、使用簡單靈活、數(shù)據(jù)獨(dú)立性強(qiáng)等特點(diǎn),而被公認(rèn)為最有前途的一種數(shù)據(jù)庫管理系統(tǒng)。它的發(fā)展十分迅速,目前已成為占據(jù)主導(dǎo)地位的數(shù)據(jù)庫管理系統(tǒng)。自20世紀(jì)80年代以來,作為商品推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都是關(guān)系型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。

網(wǎng)絡(luò)數(shù)據(jù)庫也叫Web數(shù)據(jù)庫。促進(jìn)Internet發(fā)展的因素之一就是Web技術(shù)。由靜態(tài)網(wǎng)頁技術(shù)的HTML到動態(tài)網(wǎng)頁技術(shù)的CGI、ASP、PHP、JSP等,Web技術(shù)經(jīng)歷了一個(gè)重要的變革過程。Web已經(jīng)不再局限于僅僅由靜態(tài)網(wǎng)頁提供信息服務(wù),而改變?yōu)閯討B(tài)的網(wǎng)頁,可提供交互式的信息查詢服務(wù),使信息數(shù)據(jù)庫服務(wù)成為了可能。Web數(shù)據(jù)庫就是將數(shù)據(jù)庫技術(shù)與Web技術(shù)融合在一起,使數(shù)據(jù)庫系統(tǒng)成為Web的重要有機(jī)組成部分,從而實(shí)現(xiàn)數(shù)據(jù)庫與網(wǎng)絡(luò)技術(shù)的無縫結(jié)合。這一結(jié)合不僅把Web與數(shù)據(jù)庫的所有優(yōu)勢集合在了一起,而且充分利用了大量已有數(shù)據(jù)庫的信息資源。圖1-1是Web數(shù)據(jù)庫的基本結(jié)構(gòu)圖,它由數(shù)據(jù)庫服務(wù)器(Database Server)、中間件(Middle Ware)、Web服務(wù)器(Web Server)、瀏覽器(Browser)4部分組成。

Web數(shù)據(jù)庫的基本結(jié)構(gòu)

它的工作過程可簡單地描述成:用戶通過瀏覽器端的操作界面以交互的方式經(jīng)由Web服務(wù)器來訪問數(shù)據(jù)庫。用戶向數(shù)據(jù)庫提交的信息以及數(shù)據(jù)庫返回給用戶的信息都是以網(wǎng)頁的形式顯示。

1.1.1 Internet技術(shù)與相關(guān)協(xié)議

Internet技術(shù)在Web數(shù)據(jù)庫技術(shù)中扮演著重要的角色。Internet(因特網(wǎng))專指全球最大的、開放的、由眾多網(wǎng)絡(luò)相互連接而成的計(jì)算機(jī)網(wǎng)絡(luò),并通過各種協(xié)議在計(jì)算機(jī)網(wǎng)絡(luò)中傳遞信息。TCP/IP協(xié)議是Internet上使用的兩個(gè)最基本的協(xié)議。因此也可以說Internet是全球范圍的基于分組交換原理和TCP/IP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)。它將信息進(jìn)行分組后,以數(shù)據(jù)包為單位進(jìn)行傳輸。Internet在進(jìn)行信息傳輸時(shí),主要完成兩項(xiàng)任務(wù)。

(1)正確地將源信息文件分割成一個(gè)個(gè)數(shù)據(jù)包,并能在目的地將源信息文件的數(shù)據(jù)包再準(zhǔn)確地重組起來。

(2)將數(shù)據(jù)包準(zhǔn)確地送往目的地。

TCP/IP協(xié)議的作用就是為了完成上述兩項(xiàng)任務(wù),規(guī)范了網(wǎng)絡(luò)上所有計(jì)算機(jī)之間數(shù)據(jù)傳遞的方式與數(shù)據(jù)格式,提供了數(shù)據(jù)打包和尋址的標(biāo)準(zhǔn)方法。

1.TCP/IP協(xié)議

TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)規(guī)定了分割數(shù)據(jù)和重組數(shù)據(jù)所要遵循的規(guī)則和要進(jìn)行的操作。TCP協(xié)議能保證數(shù)據(jù)發(fā)送的正確性,如果發(fā)現(xiàn)數(shù)據(jù)有損失,TCP將重新發(fā)送數(shù)據(jù)。

2.IP協(xié)議

在Internet上傳送數(shù)據(jù)往往都是遠(yuǎn)距離的,因此在傳輸過程中要通過路由器一站一站的轉(zhuǎn)接來實(shí)現(xiàn)。路由器是一種特殊的計(jì)算機(jī),它會檢測數(shù)據(jù)包的目的地主機(jī)地址,然后決定將該數(shù)據(jù)包送往何處。IP協(xié)議(Internet Protocol,網(wǎng)際協(xié)議)給Internet中的每一臺計(jì)算機(jī)規(guī)定了一個(gè)地址,稱為IP地址。IP地址的標(biāo)準(zhǔn)是由4部分組成(例如202.112.203.11),其中前兩部分規(guī)定了當(dāng)前使用網(wǎng)絡(luò)的管理機(jī)構(gòu),第3部分規(guī)定了當(dāng)前使用的網(wǎng)絡(luò)地址,第4部分規(guī)定了當(dāng)前使用的計(jì)算機(jī)地址。

Internet上提供的主要服務(wù)有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,萬維網(wǎng))由于其豐富的信息資源而成為Internet最為重要的服務(wù)。

3.HTTP協(xié)議

HTTP協(xié)議(Hypertext Transfer Protocol,超文本傳輸協(xié)議)應(yīng)用在WWW上,其作用是完成客戶端瀏覽器與Web服務(wù)器端之間的HTML數(shù)據(jù)傳輸。

1.1.2 Web的工作原理與工作步驟

萬維網(wǎng)簡稱為Web。Web可以描述為在Internet上運(yùn)行的、全球的、交互的、動態(tài)的、跨平臺的、分布式的、圖形化的超文本信息系統(tǒng)。

1.Web的工作原理

Web是伴隨著Internet技術(shù)而產(chǎn)生的。在計(jì)算機(jī)網(wǎng)絡(luò)中,對于提供Web服務(wù)的計(jì)算機(jī)稱為Web服務(wù)器。Web采用瀏覽器/服務(wù)器的工作方式。每個(gè)Web服務(wù)器上都放置著大量的Web信息。Web信息的基本單位是Web頁(網(wǎng)頁),多個(gè)網(wǎng)頁組成了一個(gè)Web節(jié)點(diǎn)。每個(gè)Web節(jié)點(diǎn)的起始頁稱為“主頁”,且擁有一個(gè)URL地址(統(tǒng)一資源定位地址)。Web節(jié)點(diǎn)之間及網(wǎng)頁之間都是以超文本結(jié)構(gòu)(非線性的網(wǎng)狀結(jié)構(gòu))來進(jìn)行組織的。

2.Web的工作步驟

Web的工作步驟如下。

(1)用戶打開客戶端計(jì)算機(jī)中的瀏覽器軟件(例如Internet Explorer)。

(2)用戶輸入要啟動的Web主頁的URL地址,瀏覽器將生成一個(gè)HTTP請求。

(3)瀏覽器連接到指定的Web服務(wù)器,并發(fā)送HTTP請求。

(4)Web服務(wù)器接到HTTP請求,根據(jù)請求的內(nèi)容不同作相應(yīng)的處理,再將網(wǎng)頁以HTML文件格式發(fā)回給瀏覽器。

(5)瀏覽器將網(wǎng)頁顯示到屏幕上.

圖1-2 Web的工作步驟

1.1.3 WWW世界中的標(biāo)記語言

1.HTML語言

HTML(Hypertext Markup Language,超文本標(biāo)記語言)是創(chuàng)建網(wǎng)頁的計(jì)算機(jī)語言。所謂網(wǎng)頁實(shí)際上就是一個(gè)HTML文檔。文檔內(nèi)容由文本和HTML標(biāo)記組成。HTML文檔的擴(kuò)展名就是.html或.htm。瀏覽器負(fù)責(zé)解釋HTML文檔中的標(biāo)記,并將HTML文檔顯示成網(wǎng)頁。

(1)HTML標(biāo)記

HTML標(biāo)記的作用是告訴瀏覽器網(wǎng)頁的結(jié)構(gòu)和格式。每一個(gè)標(biāo)記用尖括號括起來。大多數(shù)標(biāo)記都有一個(gè)開始標(biāo)記和一個(gè)結(jié)束標(biāo)記。標(biāo)記不分大小寫。多數(shù)標(biāo)記都帶有自己的屬性。例如字體標(biāo)記FONT有FACE、COLOR、SIZE等屬性:FACE定義字體;COLOR定義字體的顏色;SIZE定義字體的大小。

使用格式:FONT FACE= SONG SIZE=3 COLOR=RED BEIJING /FONT。

網(wǎng)頁中有很多文本鏈接和圖片鏈接。鏈接,又被稱為超鏈接,用于鏈接到WWW萬維網(wǎng)中的其他網(wǎng)頁上。在HTML文檔中表示超鏈接的標(biāo)記是A,通過屬性HREF指出鏈接的網(wǎng)頁地址URL。

使用格式:A HREF= BEIJING /A。

(2)HTML程序

HTML程序必須以HTML標(biāo)記開始,以/HTML標(biāo)記結(jié)束。在HTML和/HTML標(biāo)記之間主要由兩部分組成:文件頭和文件體。文件頭用標(biāo)記HEAD /HEAD來標(biāo)識,文件體用標(biāo)記BODY/BODY來標(biāo)識。在文件的頭部通常包含整個(gè)網(wǎng)頁的一些信息。例如TITLE/TITLE標(biāo)記是用來說明網(wǎng)頁的名稱;META/META標(biāo)記是用來說明網(wǎng)頁的其他信息,如設(shè)計(jì)者姓名和版權(quán)信息等。所有在瀏覽器中要顯示的內(nèi)容稱為網(wǎng)頁的主體,必須放在BODY/BODY標(biāo)記中。下面給出的是一個(gè)空網(wǎng)頁的HTML程序。

HTML

HEAD

TITLE(在此標(biāo)記中寫網(wǎng)頁的標(biāo)題)/TITLE

/HEAD

BODY

(在此標(biāo)記中寫網(wǎng)頁的內(nèi)容)

/BODY

/HTML

(3)HTML規(guī)范

HTML規(guī)范又稱為HTML標(biāo)準(zhǔn),它總在不斷地發(fā)展。每一新版本的出現(xiàn),HTML都會增加新的特性和內(nèi)容。有關(guān)HTML版本的詳細(xì)信息請?jiān)L問網(wǎng)站。

在不同的瀏覽器中,網(wǎng)頁的顯示效果可能會有所不同。每一個(gè)瀏覽器都使用自己獨(dú)特的方式解釋HTML文檔中的標(biāo)記,并且多數(shù)瀏覽器不完全支持HTML的所有特性。因?yàn)?,像Microsoft和Netscape公司在HTML標(biāo)準(zhǔn)上又開發(fā)了一些特有的HTML標(biāo)記和屬性,稱之為HTML的擴(kuò)展。這些標(biāo)記和屬性只被他們自己的瀏覽器所識別,不可能被其他公司的瀏覽器識別。如果瀏覽器不能識別HTML文檔中的標(biāo)記,則會忽略這個(gè)標(biāo)記。

(4)HTML程序的編輯環(huán)境與運(yùn)行環(huán)境

HTML文檔是一個(gè)普通的文本文件(ASCII),不包含任何與平臺、程序有關(guān)的信息。因此HTML文檔可以利用任何文本編輯器來方便地生成。要注意的是HTML文檔的擴(kuò)展名必須是.html或.htm。運(yùn)行HTML文檔可以在任何瀏覽器下進(jìn)行,并可在瀏覽器上查看網(wǎng)頁的HTML源代碼。

關(guān)于HTML語言中標(biāo)記的種類與使用方法將會在第5章中更詳細(xì)地進(jìn)行介紹。

2.可擴(kuò)展標(biāo)記語言(XML)

HTML是Web上的通用語言,隨著Internet的深入人心,WWW上的Web文件日益復(fù)雜化、多樣化,人們開始感到了HTML這種固定格式的標(biāo)記語言的不足。1996年W3C開始對HTML的后續(xù)語言進(jìn)行研究,并于1998年正式推出了XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)。在設(shè)計(jì)網(wǎng)頁時(shí),XML提供了比HTML更靈活的方法。

(1)XML語言的特點(diǎn)

XML是國際組織W3C為適應(yīng)WWW的應(yīng)用,將SGML (Standard Generalized Markup Language)標(biāo)準(zhǔn)進(jìn)行簡化形成的元標(biāo)記語言。簡單地說,XML是使用標(biāo)記來描述內(nèi)容或與內(nèi)容相關(guān)的形式信息的通用語言。一個(gè)XML文檔由標(biāo)記和字符數(shù)據(jù)組成。

而作為元標(biāo)記語言,XML不再使標(biāo)記固定,允許網(wǎng)頁的設(shè)計(jì)者定義數(shù)量不限的標(biāo)記來描述內(nèi)容,同時(shí)還允許設(shè)計(jì)者創(chuàng)建自己的使用規(guī)則。

(2)XML的DTD

DTD(Document Type Definition,文檔類型定義)是一組應(yīng)用在XML文檔中的自定義標(biāo)記語言的技術(shù)規(guī)范。DTD中定義了標(biāo)記的含義及關(guān)于標(biāo)記的語法規(guī)則。語法規(guī)則中確定了在XML文檔中使用哪些標(biāo)記符,它們應(yīng)該按什么次序出現(xiàn),標(biāo)記符之間如何 嵌套,哪些標(biāo)記符有屬性等等。DTD可以包含在它所描述的XML文檔中,但通常它是一份單獨(dú)的文檔或者一系列文檔。作為外部文件可通過URL鏈接,被不同的XML文檔 共享。

XML把DTD的定義權(quán)開放,不同行業(yè)可以根據(jù)自己的實(shí)際需求定義描述內(nèi)容的DTD,以適應(yīng)本行業(yè)內(nèi)部的信息交流和存檔需要。因此,適合于不同行業(yè)、不同平臺的標(biāo)記語言大批涌現(xiàn)。

(3)XML的CSS與XSL

強(qiáng)調(diào)內(nèi)容描述與形式描述的分離,一方面可以使XML文件的編寫者更集中精力于數(shù)據(jù)本身,而不受顯示方式的細(xì)節(jié)影響;另一方面允許為相同的數(shù)據(jù)定義不同的顯示方式,從而適合于不同應(yīng)用、不同媒體,使XML數(shù)據(jù)得到最大程度的重用。XML文檔數(shù)據(jù)的顯示形式是通過樣式單定義的。CSS(Cascading Style Sheets)是XML使用的一種標(biāo)準(zhǔn)的級聯(lián)樣式單,XSL(Extensible Style Language)則是可擴(kuò)展的樣式語言。

由于XML允許用戶創(chuàng)建任何所需的標(biāo)記,而通用瀏覽器卻既無法預(yù)期用戶標(biāo)記的意義,又無法為顯示這些標(biāo)記而提供規(guī)則,因此用戶必須為自己創(chuàng)建的XML文檔編寫樣式單,樣式單可以實(shí)現(xiàn)共享。

瀏覽器對一個(gè)XML文檔的處理過程是,首先去關(guān)聯(lián)它所指定的樣式單文件,如果該樣式單是一個(gè)XSL文件,則按照規(guī)定對XML數(shù)據(jù)進(jìn)行轉(zhuǎn)換然后再顯示,XSL本身也是基于XML語言的,可以將XML轉(zhuǎn)化為HTML后再顯示。如果該樣式單是一個(gè)CSS文件,瀏覽器就會按照樣式單的規(guī)定給每個(gè)標(biāo)記賦予一組樣式后再顯示。

1.2 Web數(shù)據(jù)庫訪問技術(shù)

Web數(shù)據(jù)庫訪問技術(shù)通常是通過三層結(jié)構(gòu)來實(shí)現(xiàn)的,如圖1-3所示。目前建立與Web數(shù)據(jù)庫連接訪問的技術(shù)方法可歸納為CGI技術(shù),ODBC技術(shù)和ASP、JSP、PHP 技術(shù)。

Web數(shù)據(jù)庫訪問的三層結(jié)構(gòu)

1.2.1 CGI技術(shù)

CGI(Common Cateway Interface,通用網(wǎng)關(guān)界面)是一種Web服務(wù)器上運(yùn)行的基于Web瀏覽器輸入程序的方法,是最早的訪問數(shù)據(jù)庫的解決方案。CGI程序可以建立網(wǎng)頁與數(shù)據(jù)庫之間的連接,將用戶的查詢要求轉(zhuǎn)換成數(shù)據(jù)庫的查詢命令,然后將查詢結(jié)果通過網(wǎng)頁返回給用戶。一個(gè)CGI工作的基本原理如圖1-4所示。

CGI程序需要通過一個(gè)接口才能訪問數(shù)據(jù)庫。這種接口多種多樣,數(shù)據(jù)庫系統(tǒng)對CGI程序提供了各種數(shù)據(jù)庫接口如Perl、C/C++、VB等。為了使用各種數(shù)據(jù)庫系統(tǒng),CGI程序支持ODBC方式,通過ODBC接口訪問數(shù)據(jù)庫。

CGI工作流程

1.2.2 ODBC技術(shù)

ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互接)是一種使用SQL的應(yīng)用程序接口(API)。ODBC最顯著的優(yōu)點(diǎn)就是它生成的程序與數(shù)據(jù)庫系統(tǒng)無關(guān),為程序員方便地編寫訪問各種DBMS的數(shù)據(jù)庫應(yīng)用程序提供了一個(gè)統(tǒng)一接口,使應(yīng)用程序和數(shù)據(jù)庫源之間完成數(shù)據(jù)交換。ODBC的內(nèi)部結(jié)構(gòu)為4層:應(yīng)用程序?qū)印Ⅱ?qū)動程序管理器層、驅(qū)動程序?qū)印?shù)據(jù)源層。它們之間的關(guān)系如圖1-5所示。由于ODBC適用于不同的數(shù)據(jù)庫產(chǎn)品,因此許多服務(wù)器擴(kuò)展程序都使用了包含ODBC層的系統(tǒng)結(jié)構(gòu)。

ODBC的內(nèi)部結(jié)構(gòu)

Web服務(wù)器通過ODBC數(shù)據(jù)庫驅(qū)動程序向數(shù)據(jù)庫系統(tǒng)發(fā)出SQL請求,數(shù)據(jù)庫系統(tǒng)接收到的是標(biāo)準(zhǔn)SQL查詢語句,并將執(zhí)行后的查詢結(jié)果再通過ODBC傳回Web服務(wù)器,Web服務(wù)器將結(jié)果以HTML網(wǎng)頁傳給Web瀏覽器,工作原理如圖1-6所示。

Web服務(wù)器通過ODBC訪問數(shù)據(jù)庫

由于Java語言所顯示出來的編程優(yōu)勢贏得了眾多數(shù)據(jù)庫廠商的支持。在數(shù)據(jù)庫處理方面,Java提供的JDBC為數(shù)據(jù)庫開發(fā)應(yīng)用提供了標(biāo)準(zhǔn)的應(yīng)用程序編程接口。與ODBC類似,JDBC也是一種特殊的API,是用于執(zhí)行SQL語句的Java應(yīng)用程序接口。它規(guī)定了Java如何與數(shù)據(jù)庫之間交換數(shù)據(jù)的方法。采用Java和JDBC編寫的數(shù)據(jù)庫應(yīng)用程序具有與平臺無關(guān)的特性。

1.2.3 ASP、JSP、PHP技術(shù)

ASP是Microsoft開發(fā)的動態(tài)網(wǎng)頁技術(shù),主要應(yīng)用于Windows NT+IIS或 Windows 9x+PWS平臺。確切地說ASP不是一種語言,而是Web服務(wù)器端的開發(fā)環(huán)境。利用ASP可以產(chǎn)生和運(yùn)行動態(tài)的、交互的、高性能的Web服務(wù)應(yīng)用程序。ASP支持多種腳本語言,除了VBScript和Pscript,也支持Perl語言,并且可以在同一ASP文件中使用多種腳本語言以發(fā)揮各種腳本語言的最大優(yōu)勢。但ASP默認(rèn)只支持VBScript和Pscript,若要使用其他腳本語言,必須安裝相應(yīng)的腳本引擎。ASP支持在服務(wù)器端調(diào)用ActiveX組件ADO對象實(shí)現(xiàn)對數(shù)據(jù)庫的操作。在具體的應(yīng)用中,若腳本語言中有訪問數(shù)據(jù)庫的請求,可通過ODBC與后臺數(shù)據(jù)庫相連,并通過ADO執(zhí)行訪問庫的操作。關(guān)于ASP的編程技術(shù)將會在第7章中詳細(xì)介紹。

JSP是Sun公司推出的新一代Web開發(fā)技術(shù)。作為Java家族的一員,幾乎可以運(yùn)行在所有的操作系統(tǒng)平臺和Web服務(wù)器上,因此JSP的運(yùn)行平臺更為廣泛。目前JSP支持的腳本語言只有Java。JSP使用JDBC實(shí)現(xiàn)對數(shù)據(jù)庫的訪問。目標(biāo)數(shù)據(jù)庫必須有一個(gè)JDBC的驅(qū)動程序,即一個(gè)從數(shù)據(jù)庫到Java的接口,該接口提供了標(biāo)準(zhǔn)的方法使Java應(yīng)用程序能夠連接到數(shù)據(jù)庫并執(zhí)行對數(shù)據(jù)庫的操作。JDBC不需要在服務(wù)器上創(chuàng)建數(shù)據(jù)源,通過JDBC、JSP就可以實(shí)現(xiàn)SQL語句的執(zhí)行。

PHP是Rasmus Lerdorf推出的一種跨平臺的嵌入式腳本語言,可以在Windows、UNIX、Linux等流行的操作系統(tǒng)和IIS、Apache、Netscape等Web服務(wù)器上運(yùn)行,用戶更換平臺時(shí),無需變換PHP代碼。PHP是通過Internet合作開發(fā)的開放源代碼軟件,它借用了C、Java、Perl語言的語法并結(jié)合PHP自身的特性,能夠快速寫出動態(tài)生成頁面。PHP可以通過ODBC訪問各種數(shù)據(jù)庫,但主要通過函數(shù)直接訪問數(shù)據(jù)庫。PHP支持目前絕大多數(shù)的數(shù)據(jù)庫,提供許多與各類數(shù)據(jù)庫直接互連的函數(shù),包括Sybase、Oracle、SQL Server等,其中與SQL Server數(shù)據(jù)庫互連是最佳組合。

1.3 網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用系統(tǒng)的層次體系

當(dāng)前,Internet/Intranet技術(shù)發(fā)展異常迅速,越來越多的數(shù)據(jù)庫應(yīng)用軟件運(yùn)行在Internet/Intranet環(huán)境下。在此之前,數(shù)據(jù)庫應(yīng)用系統(tǒng)的發(fā)展經(jīng)歷了單機(jī)結(jié)構(gòu)、集中式結(jié)構(gòu)、客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)之后,隨著Internet的普及,又出現(xiàn)了瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)與多層結(jié)構(gòu)。在構(gòu)造一個(gè)應(yīng)用系統(tǒng)時(shí),首先考慮的是系統(tǒng)的體系結(jié)構(gòu),采用哪種結(jié)構(gòu)取決于系統(tǒng)的網(wǎng)絡(luò)環(huán)境、應(yīng)用需求等因素。

1.3.1 客戶機(jī)/服務(wù)器結(jié)構(gòu)

1.二層C/S結(jié)構(gòu)

二層C/S結(jié)構(gòu)是當(dāng)前非常流行的數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu),在這種結(jié)構(gòu)中,客戶機(jī)提出請求,服務(wù)器對客戶機(jī)的服務(wù)請求做出回答。它把界面和數(shù)據(jù)處理操作分開在前端(客戶端)和后端(服務(wù)器端),這個(gè)主要特點(diǎn)使得C/S系統(tǒng)的工作速度主要取決于進(jìn)行大量數(shù)據(jù)操作的服務(wù)器,而不是前端的硬件設(shè)備;同時(shí)也大大降低了對網(wǎng)絡(luò)傳輸速度的要求,因?yàn)橹豁毧蛻舳税逊?wù)請求發(fā)送給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器只把服務(wù)結(jié)果傳回前端,如圖1-7所示。

在設(shè)計(jì)時(shí),對數(shù)據(jù)可能有如下不同的處理形式。

(1)在處理時(shí),客戶機(jī)先向服務(wù)器索取數(shù)據(jù),然后釋放數(shù)據(jù)庫,即客戶機(jī)發(fā)出的是文件請求,在客戶機(jī)端處理數(shù)據(jù),最后將結(jié)果送回服務(wù)器。這種處理方式的缺點(diǎn)很明顯:所有的應(yīng)用處理都在客戶端完成,這就要求客戶端的計(jì)算機(jī)必須有足夠的能力,以便執(zhí)行需要的任何程序。更為糟糕的是,由于所有的處理均在客戶端完成,每次運(yùn)行時(shí)都要將文件整體傳送到客戶端,然后才能執(zhí)行。如:Student表中有30 000條記錄,客戶端發(fā)出命令:

Select * From Student Where Sno='200101'

這條命令將要求服務(wù)器將Student表中的所有記錄傳送到客戶端,然后在客戶端執(zhí)行查詢,結(jié)果只用到一條記錄;如果查詢的記錄不存在,網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)實(shí)際上是無 用的。如此大的數(shù)據(jù)傳輸量是不可想象的。因此,人們提出了在服務(wù)器中能夠執(zhí)行部分代碼的客戶機(jī)/服務(wù)器結(jié)構(gòu)。

(2)在處理時(shí),客戶機(jī)接受用戶要求,并發(fā)給服務(wù)器;在服務(wù)器端處理用戶要求,最后將結(jié)果傳回客戶機(jī)顯示或打印。這種處理方式網(wǎng)絡(luò)通信量較小。客戶機(jī)向服務(wù)器發(fā)出的是處理請求,而不是文件請求,處理請求中的代碼在服務(wù)器端執(zhí)行后向客戶機(jī)傳送處理后的結(jié)果。

這樣,為了特定任務(wù),客戶機(jī)上的程序和服務(wù)器上的程序協(xié)同工作:客戶機(jī)端的代碼用于完成用戶的輸入輸出及數(shù)據(jù)的檢查,而服務(wù)器端的代碼完成對數(shù)據(jù)庫的操作。

客戶機(jī)/服務(wù)器結(jié)構(gòu)的另一個(gè)主要特點(diǎn)在于軟件、硬件平臺的無關(guān)性。數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)庫管理系統(tǒng)集中負(fù)責(zé)管理數(shù)據(jù),它向客戶端提供一個(gè)開放的使用環(huán)境,客戶端通過數(shù)據(jù)庫接口,如ODBC(開放數(shù)據(jù)庫連接)和SQL語言訪問數(shù)據(jù)庫,也就是說,不管客戶端采用什么樣的硬件和軟件,它只要能夠通過網(wǎng)絡(luò)和數(shù)據(jù)庫接口程序連接到服務(wù)器,就可對數(shù)據(jù)庫進(jìn)行訪問。

在客戶機(jī)/服務(wù)器結(jié)構(gòu)中,常把客戶機(jī)稱為前臺,而把服務(wù)器端稱為后臺。前臺應(yīng)用程序的功能包括用戶界面、接收用戶數(shù)據(jù)、處理應(yīng)用邏輯、向后臺發(fā)出請求、同時(shí)接收后臺返回的結(jié)果,最后再將返回的結(jié)果按一定的格式或方式顯示給用戶。而后臺服務(wù)器則負(fù)責(zé)共享外部設(shè)備、存取共享數(shù)據(jù)、響應(yīng)前臺客戶端的請求并回送結(jié)果等工作。前臺的應(yīng)用程序和數(shù)據(jù)一般是用戶專用的,而后臺的數(shù)據(jù)和代碼是所有用戶可以共享的。

由于數(shù)據(jù)庫服務(wù)器不僅要管理共享數(shù)據(jù),保證數(shù)據(jù)的完整性,還要執(zhí)行一部分代碼,完成客戶端的一些處理請求,所以對用于服務(wù)器的計(jì)算機(jī)提出較高的要求。最好要采用一臺專用的服務(wù)器,有較快的處理速度,有大容量的硬盤和內(nèi)存,支持磁帶等大容量的存儲設(shè)備。

上面講的客戶機(jī)/服務(wù)器結(jié)構(gòu)將應(yīng)用分在了客戶機(jī)、服務(wù)器兩級,稱其為兩層客戶機(jī)/ 服務(wù)器結(jié)構(gòu)??傊?,兩層C/S結(jié)構(gòu)的基本工作方式是客戶程序向數(shù)據(jù)庫服務(wù)器發(fā)送SQL請求,服務(wù)器返回?cái)?shù)據(jù)或結(jié)果。

這種C/S結(jié)構(gòu)有兩種實(shí)現(xiàn)方式,一種是客戶來完成表示部分和應(yīng)用邏輯部分,而服務(wù)器完成數(shù)據(jù)訪問部分,這種情況是以客戶為中心的,適用于應(yīng)用相對簡單、數(shù)據(jù)訪問量不是很大的情況。另一種是以服務(wù)器為中心的,把一些重要的應(yīng)用邏輯部分放到服務(wù)器上,這樣可充分利用服務(wù)器的計(jì)算能力,減少網(wǎng)絡(luò)上需要傳送的數(shù)據(jù)。通常以存儲過程和觸發(fā)器的形式出現(xiàn),但存儲過程都依賴于特定數(shù)據(jù)庫,不同數(shù)據(jù)庫之間很難移植,而三層C/S結(jié)構(gòu)可以很好地解決這個(gè)問題。

注意:觸發(fā)器(trigger)是數(shù)據(jù)庫系統(tǒng)中,一個(gè)在插入、刪除、修改操作之后運(yùn)行的記錄級事件代碼。不同的事件可以對應(yīng)不同的動作。通常有3種類型的觸發(fā)器:INSERT觸發(fā)器、DELETE觸發(fā)器和UPDATE觸發(fā)器。

2.三層C/S結(jié)構(gòu)

由于兩層結(jié)構(gòu)的客戶機(jī)/服務(wù)器系統(tǒng)本身固有的缺陷,使得它不能應(yīng)用于一些大型、結(jié)構(gòu)較為復(fù)雜的系統(tǒng)中,故出現(xiàn)了3層結(jié)構(gòu)的客戶機(jī)/服務(wù)器系統(tǒng),將兩層結(jié)構(gòu)中服務(wù)器部分和客戶端部分的應(yīng)用單獨(dú)劃分出來,即采用“客戶機(jī)—應(yīng)用服務(wù)器—數(shù)據(jù)庫服務(wù)器”結(jié)構(gòu)(如圖1-8所示)。典型的數(shù)據(jù)庫應(yīng)用可分為三部分:表示部分、應(yīng)用邏輯(商業(yè)邏輯)部分和數(shù)據(jù)訪問部分,三層結(jié)構(gòu)便是對應(yīng)于這三部分。

圖1-8 三層C/S結(jié)構(gòu)

其中,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器可位于同一主機(jī),也可位于不同主機(jī)??蛻魴C(jī)是應(yīng)用的用戶接口部分,負(fù)責(zé)用戶與應(yīng)用程序的交互,運(yùn)行在客戶機(jī)端的軟件也稱為表示層軟件。應(yīng)用服務(wù)器存放業(yè)務(wù)邏輯層(也稱為功能層)軟件,是應(yīng)用邏輯處理的核心,實(shí)現(xiàn)具體業(yè)務(wù)。它能響應(yīng)客戶機(jī)請求,完成業(yè)務(wù)處理或復(fù)雜計(jì)算。若有數(shù)據(jù)庫訪問任務(wù)時(shí),應(yīng)用服務(wù)器層可根據(jù)客戶機(jī)的要求向數(shù)據(jù)庫服務(wù)器發(fā)送SQL指令。應(yīng)用邏輯變得復(fù)雜或增加新的應(yīng)用時(shí),可增加新的應(yīng)用服務(wù)器。數(shù)據(jù)庫服務(wù)器便是用來執(zhí)行功能層送來的SQL指令,完成數(shù)據(jù)的存儲、訪問和完整性約束等。操作完成后再通過應(yīng)用服務(wù)器向客戶機(jī)返回操作結(jié)果。

1.3.2 瀏覽器/服務(wù)器結(jié)構(gòu)

隨著Internet技術(shù)和Web技術(shù)的廣泛應(yīng)用,C/S結(jié)構(gòu)已無法滿足人們的需要。因?yàn)樵诘湫虲/S體系中,通常為客戶安裝前端應(yīng)用程序的做法已不再現(xiàn)實(shí),并且限制客戶端工作環(huán)境只能基于Windows、Macintosh或UNIX等操作系統(tǒng)也不切實(shí)際。于是基于瀏覽器/服務(wù)器結(jié)構(gòu)(Browser/Server)的系統(tǒng)應(yīng)運(yùn)而生。

采用B/S結(jié)構(gòu)后,在客戶端只需安裝一個(gè)通用的瀏覽器即可,不再受具體操作系統(tǒng)和硬件的制約,實(shí)現(xiàn)了跨平臺的應(yīng)用。

基于B/S結(jié)構(gòu)的典型應(yīng)用通常采用三層結(jié)構(gòu):“瀏覽器—Web服務(wù)器—數(shù)據(jù)庫服務(wù)器”,B/S模式的工作原理是:通過瀏覽器以超文本的形式向Web服務(wù)器提出訪問數(shù)據(jù)庫的請求,Web服務(wù)器接受客戶請求后,激活對應(yīng)的CGI程序?qū)⒊谋綡TML語言轉(zhuǎn)化為SQL語法,將這個(gè)請求交給數(shù)據(jù)庫,數(shù)據(jù)庫服務(wù)器得到請求后,進(jìn)行數(shù)據(jù)處理,然后將處理結(jié)果集返回給CGI程序。CGI再將結(jié)果轉(zhuǎn)化為HTML,并由Web服務(wù)器轉(zhuǎn)發(fā)給請求方的瀏覽器,如圖1-9所示。

圖1-9 B/S工作原理

在B/S模式中,客戶端的標(biāo)準(zhǔn)配置是瀏覽器,如IE;業(yè)務(wù)功能處理由獨(dú)立的應(yīng)用服務(wù)器處理,Web服務(wù)器成為應(yīng)用處理的標(biāo)準(zhǔn)配置;數(shù)據(jù)處理仍然由數(shù)據(jù)庫服務(wù)器處理。

從本質(zhì)上講,B/S結(jié)構(gòu)與傳統(tǒng)的C/S結(jié)構(gòu)都是以同一種請求和應(yīng)答方式來執(zhí)行應(yīng)用的,區(qū)別主要在于:C/S是一種兩層或三層結(jié)構(gòu)模式,其客戶端集中了大量應(yīng)用軟件,而B/S是一種基于超鏈接(HyperLink)、HTML、Java的三級或多級C/S結(jié)構(gòu),客戶端僅需單一的瀏覽器軟件,是一種全新的體系結(jié)構(gòu),解決了跨平臺問題。到目前,這兩種結(jié)構(gòu)在不同方面都有著廣泛的應(yīng)用。雖然C/S結(jié)構(gòu)在Internet環(huán)境下明顯不如B/S結(jié)構(gòu)具有優(yōu)勢,但它在局域網(wǎng)環(huán)境下仍具有優(yōu)勢。

1.3.3 Internet/Intranet信息系統(tǒng)的多層體系結(jié)構(gòu)

多層結(jié)構(gòu)應(yīng)用軟件與傳統(tǒng)的兩層結(jié)構(gòu)應(yīng)用軟件相比,有可伸縮性好、可管理性強(qiáng)、安全性高、軟件重用性好等諸多優(yōu)點(diǎn),如何在Internet/Intranet環(huán)境下構(gòu)建應(yīng)用軟件體系結(jié)構(gòu)就成為一個(gè)非常重要的問題,也是現(xiàn)今軟件體系研究的一個(gè)新熱點(diǎn)。

目前各種技術(shù)層出不窮,如最初的靜態(tài)HTML頁面、簡單的CGI網(wǎng)關(guān)程序、Java Applet程序,現(xiàn)在的ASP等Web數(shù)據(jù)庫技術(shù),還有動態(tài)的Java在線游戲及PHP技術(shù)等。

實(shí)際上,多層的概念是由Sun公司提出來的。Sun公司提出的多層應(yīng)用體系包括4層:客戶層、頂端Web服務(wù)層、應(yīng)用服務(wù)層和數(shù)據(jù)庫層。其中頂端Web服務(wù)層是Sun公司多層體系結(jié)構(gòu)中非常重要的一層,它主要起代理和緩存的作用。頂端Web服務(wù)器的作用是緩存本地各客戶機(jī)經(jīng)常使用的Java Applet程序和靜態(tài)數(shù)據(jù),通常被放置在客戶機(jī)所在的局域網(wǎng)內(nèi),起到一個(gè)Java Applet主機(jī)(向Web瀏覽器傳送Java Applet程序的計(jì)算機(jī))和訪問其他服務(wù)的代理作用。與普通代理服務(wù)器的作用相同。構(gòu)建多層結(jié)構(gòu)應(yīng)用軟件時(shí),選用Java平臺是一個(gè)很好的選擇,因?yàn)樗缭礁鲬?yīng)用平臺??傊?,在Java平臺上構(gòu)建多層應(yīng)用軟件體系代表著今后Internet/Intranet應(yīng)用的趨勢。


本文名稱:php與數(shù)據(jù)庫交互論文 PHP畢業(yè)論文
當(dāng)前路徑:http://www.dlmjj.cn/article/docdcpi.html