DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> 使用XML進行數據存儲與備份的實現(2)
使用XML進行數據存儲與備份的實現(2)
編輯:XML基礎     

 

$fields=mysql_list_fields("embed",$table,$con);
$j=0;
//$num_fields=mysql_field_name($fields,$j);
//echo $num_fields;
while ($j<mysql_num_fields($fields)){
$num_fields=mysql_field_name($fields,$j);
$filestr.="<".$num_fields.">";
$filestr.=$row[$j];
$filestr.="</".$num_fields.">";
$j++;}
$filestr.="</".$table.">";
}
$filestr.="</".$table."s>";
echo $filestr;
//以下是文件操作代碼
$filename=$table.".xml";
$fp=fopen("$filename","w");
fwrite($fp,$filestr);
fclose($fp);
Echo "數據表".$table."已經備份成功!";?>
</body>
</html>



通過以上文件的操作就可以實現對數據庫中選定的表格進行備份.

以上主要介紹了兩中方式的通過XML備份數據庫的操作方法,其實並不復雜,通過XML,我們可以備份各種各樣的數據庫,當然也可以通過相關的方法將備份的XML文檔恢復到數據庫中,這裡就不詳細描述了。

2、 在不同的數據庫之間交換數據

XML的另外一個特性就是可以用於在不同的數據庫中交換數據,就象上面描述的一樣,我們可以將一個系統中的某種類型數據庫文件用XML導出,然後到另外一個系統中的其他數據庫中將數據進行導入就可以了,XML使得跨平台的不同數據庫之間的數據交換變得更加方便。

如果我們要將Oracle中的數據發送給Sql Server?如果我們不使用XML,一切將非常復雜,而使用XML將Oqacle中的數據封裝在一個XML文件中就可以被另外的數據庫系統讀入,如SQL Server.

3、 顯示數據

由於XML本身只關注內容,因此對於顯示數據,它自己本身並不能進行,XML的數據顯示方式也特別多,可以通過CSS(Cascading Style Sheet),XSL(extensible Stylesheet Language)或者Data Binding(數據綁定)等多種方式來顯示。

由於XML是數據和樣式分離的,所以,我們可以按照我們自己的想象任意改變數據的顯示格式而不用對XML文檔進行任何操作,這一切將使數據邊得更加的靈活和自由。

由於XML的顯示詳細描述起來比較復雜,這裡就不詳細介紹了。

4、 本身作為數據存儲
其實我們剛才在介紹利用XML來備份數據庫的時候忘了介紹一點,XML本身就可以用來進行數據的存儲,其實在下面的情況裡面使用XML來存儲數據是非常好的。

信息數據比較復雜:
其實一個復雜的數據並不一定能夠很好的通過數據庫來顯示,但可以很好的用XML來顯示。比如一個書籍的記錄,通常會有書的名字和作者,如果書的作者只有一個,可以非常方便的使用數據庫來顯示,但是如果一本書有兩個、三個或者更多的作者了,這個時候,XML可以很輕松的解決
單獨的字段復雜而龐大
同樣對於剛才說的書的記錄問題,如果我們要將書的每一章都放到數據庫裡面並不是能夠很好的存儲,數據庫的每個字段等長,會浪費很大的空間.
數據類型和搜索速度並不重要
當然使用XML也有一定的問題,盡管XML的搜索已經進行了很大的優化,可是速度仍然很慢。而且XML中所有的數據是通過字符串來進行存儲的,因此對於數據類型要求非常重要的數據而言,使用XML來存儲也不是非常合適的。
數據庫不大,但要可擴展
另外,由於XML良好的可擴展性,XML還適用於小型的而且需要不斷進行修改的數據存儲。

另外,如果你的系統有多個服務器和數據庫系統,就可以使用XML了,XML可以輕松的將數據從Linux轉移到Windows平台上。另外,還可以考慮將XML作為數據庫做為長期存儲的選擇。

什麼時候不用XML進行數據存儲
通過前面的使用XML進行數據存儲的對比,我們也應該知道什麼時候不適合使用XML進行數據存儲,如果我們對數據庫的查詢有很高的要求,XML是不適合的,另外如果存儲數據的數據類型很重要的情況下,XML也是不適合的。

任何一項技術都有弊端,XML也有不適合的時候,但是它將挑起所有數據的處理和傳輸的重任,這也是XML誕生的一個重要原因。今後,我們會在更多的產品和應用中看到XML的存在,特別是在數據傳輸的時候。

周速華
聯想集團嵌入式應用研發處軟件工程師,主要研究興趣是XML在技術下一代 WEB服務中的應用.可以通過 [email protected]與他聯系.

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved