xml应用于存储的讨论【转】?/headbody bgcolor#FFFFFF text#000000请选择要备份的表格:?$conmys
xml应用于存储的讨论【转】
?
</head>
<body bgcolor="#FFFFFF" text="#000000">
请选择要备份的表格:
<?
$con=mysql_connect('localhost','root','xswlily');
$lists=mysql_list_tables("embed",$con);
//数据库连接代码
$i=0;
while($i<mysql_num_rows($lists)){
$tb_name=mysql_tablename($lists,$i);
echo "<a href=backup.php?table=".$tb_name.">".$tb_name."</a><br>";
//列出所有的表格
$i++;}
?>
</body>
</html>
文件二、Backup.php
<?if ($table=="") header("Location:listtable.php");?><html>
<head>
<title>使用XML备份Mysql数据库</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?
$con=mysql_connect('localhost','root','xswlily');
$query="select * from $table ";
//数据库查询
$result=mysql_db_query("embed",$query,$con);
$filestr="<"."?xml version="1.0" encoding="GB2312"?".">";
$filestr.="<".$table."s>";
while ($row=mysql_fetch_array($result))
//列出所有的记录
{$filestr.="<".$table.">";
$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的存在,特别是在数据传输的时候。
?
?