﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-......-随笔分类-数据库</title><link>http://www.cppblog.com/cannon317/category/1194.html</link><description>.....</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 01:53:54 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 01:53:54 GMT</pubDate><ttl>60</ttl><item><title>Oracle 体系结构介绍</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4546.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 08:47:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4546.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4546.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4546.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4546.html</trackback:ping><description><![CDATA[
		<p>在本章里你可以了解以下内容 <br />1、 ORACLE 实例——包括内存结构与后台进程 <br />2、 ORACLE 数据库——物理操作系统文件的集合 <br />3、 了解内存结构的组成 <br />4、 了解后台进程的作用 <br />5、 了解数据库的物理文件 <br />6、 解释各种逻辑结构 <br />一、ORACLE实例<br />1、ORACLE 实例 <br />System Global Area(SGA) 和 Background Process 称为数据库的实例。 <br />2、ORACLE 数据库 <br />一系列物理文件的集合（数据文件，控制文件，联机日志，参数文件等） <br />3、系统全局共享区System Global Area(SGA)  <br />System Global Area 是一块巨大的共享内存区域，他被看做是Oracle 数据库的一个大缓冲池，这里的数据可以被ORACLE的各个进程共用。其大小可以通过如下语句查看： <br />SQL&gt; select * from v$sga; <br />NAME VALUE <br />-------------------- --------- <br />Fixed Size 39816 <br />Variable Size 259812784 <br />Database Buffers 1.049E+09 <br />Redo Buffers 327680 <br />更详细的信息可以参考V$sgastat、V$buffer_pool <br />主要包括以下几个部分： <br />a、 共享池(Shared pool) <br />共享池是SGA中最关键的内存片段，特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能，使系统停止，太大的共享池也会有同样的效果，将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分： <br />•SQL语句缓冲(Library Cache) <br />当一个用户提交一个SQL语句，Oracle会将这句SQL进行分析(parse)，这个过程类似于编译，会耗费相对较多的时间。在分析完这个SQL，Oracle会把他的分析结果给保存在Shared pool的Library Cache中，当数据库第二次执行该SQL时，Oracle自动跳过这个分析过程，从而减少了系统运行的时间。这也是为什么第一次运行的SQL 比第二次运行的SQL要慢一点的原因。 <br />下面举例说明parse的时间 <br />SQL&gt; select count(*) fromscpass ; <br />COUNT(*) <br />---------- <br />243 <br />Elapsed: 00:00:00.08 <br />这是在Share_pool 和Data buffer 都没有数据缓冲区的情况下所用的时间 <br />SQL&gt; alter system flush SHARED_POOL; <br />System altered. <br />清空Share_pool，保留Data buffer <br />SQL&gt; select count(*) from scpass ; <br />COUNT(*) <br />---------- <br />243 <br />Elapsed: 00:00:00.02 <br />SQL&gt; select count(*) from scpass ; <br />COUNT(*) <br />---------- <br />243 <br />Elapsed: 00:00:00.00 <br />从两句SQL 的时间差上可以看出该SQL 的Parse 时间约为00:00:00.02 <br />对于保存在共享池中的SQL语句，可以从V$Sqltext、v$Sqlarea中查询到，对于编程者来说，要尽量提高语句的重用率，减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Share pool，提高SQL语句的重用率必须先养成良好的变成习惯，尽量使用Bind变量。 <br />•数据字典缓冲区(Data Dictionary Cache) <br />显而易见，数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池，供ORACLE内部使用，没有什么可以说的。 <br />b、块缓冲区高速缓存(Database Buffer Cache) <br />这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,，户数据文件，临时数据文件，回滚段文件之分。也就是任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成，并由DBWR进程将修改后的数据写入磁盘。 <br />这个缓冲区的块基本上在两个不同的列表中管理。一个是块的“脏”表(Dirty List)，需要用数据库块的<br />书写器(DBWR)来写入，另外一个是不脏的块的列表(Free List)，一般的情况下，是使用最近最少使用 (Least Recently Used,LRU)算法来管理。块缓冲区高速缓存又可以细分为以下三个部分（Default pool,Keep pool,Recycle pool）。如果不是人为设置初始化参数(Init.ora)，ORACLE将默认为Default pool。由于操作系统寻址能力的限制，不通过特殊设置，在32位的系统上，块缓冲区高速缓存最大可以达到1.7G，在64位系统上，块缓冲区高速缓存最大可以达到10G。 <br />c、重做日志缓冲区(Redo log buffer) <br />重做日志文件的缓冲区，对数据库的任何修改都按顺序被记录在该缓冲，然后由LGWR进程将它写入磁盘。这些修改信息可能是DML语句，如(Insert,Update,Delete)，或DDL语句，如(Create,Alter,Drop等)。 重做日志缓冲区的存在是因为内存到内存的操作比较内存到硬盘的速度快很多，所以重作日志缓冲区可以加快数据库的操作速度，但是考虑的数据库的一致性与可恢复性，数据在重做日志缓冲区中的滞留时间不会很长。所以重作日志缓冲区一般都很小，大于3M之后的重作日志缓冲区已经没有太大的实际意义。 <br />d、Java程序缓冲区(Java Pool) <br />Java 的程序区，Oracle 8I 以后，Oracle 在内核中加入了对Java的支持。该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小。 <br />e、大池(Large Pool) <br />大池的得名不是因为大，而是因为它用来分配大块的内存，处理比共享池更大的内存，在8.0开始引入。 <br />下面对象使用大池： <br />•MTS——在SGA的Large Pool中分配UGA <br />•语句的并行查询(Parallel Executeion of Statements)——允许进程间消息缓冲区的分配，用来协调 并行查询服务器 <br />•备份(Backup)——用于RMAN磁盘I/O缓存 <br />4、后台进程(Background process) <br />后台进程是Oracle的程序，用来管理数据库的读写，恢复和监视等工作。Server Process主要是通过他和user process进行联系和沟通，并由他和user process进行数据的交换。在Unix机器上，Oracle后台进程相对于操作系统进程，也就是说，一个Oracle后台进程将启动一个操作系统进程；在Windows机器上， Oracle后台进程相对于操作系统线程，打开任务管理器，我们只能看到一个ORACLE.EXE的进程，但是通过另外的工具，就可以看到包含在这里进程中的线程。 <br />在Unix上可以通过如下方法查看后台进程： <br />ps –ef | grep ora_ <br /># ps -ef | grep ora_ | grep XCLUAT <br />oracle 29431 1 0 Sep 02 ? 2:02 ora_dbwr_SID <br />oracle 29444 1 0 Sep 02 ? 0:03 ora_ckpt_SID <br />oracle 29448 1 0 Sep 02 ? 2:42 ora_smon_SID <br />oracle 29442 1 0 Sep 02 ? 3:25 ora_lgwr_SID <br />oracle 29427 1 0 Sep 02 ? 0:01 ora_pmon_SID <br />a、Oracle系统有5 个基本进程他们是 <br />DBWR(数据文件写入进程) <br />LGWR(日志文件写入进程) <br />SMON(系统监护进程) <br />PMON(用户进程监护进程) <br />CKPT(检查点进程,同步数据文件, 日志文件,控制文件) <br />b、DBWR <br />将修改过的数据缓冲区的数据写入对应数据文件 <br />维护系统内的空缓冲区 <br />这里指出几个容易错误的概念: <br />•当一个更新提交后,DBWR把数据写到磁盘并返回给用户提交完成. <br />•DBWR会触发CKPT 后台进程 <br />•DBWR不会触发LGWR 进程 <br />上面的概念都是错误的. <br />DBWR是一个很底层的工作进程，他批量的把缓冲区的数据写入磁盘。和任何前台用户的进程几乎没有什么关系，也不受他们的控制。至于DBWR会不会触发LGWR和CKPT进程，我们将在下面几节里讨论。 <br />DBWR工作的主要条件如下 <br />•DBWR 超时 <br />•系统中没有多的空缓冲区用来存放数据 <br />•CKPT 进程触发DBWR 等 <br />c、LGWR <br />将重做日志缓冲区的数据写入重做日志文件，LGWR是一个必须和前台用户进程通信的进程。当数据被修改的时候，系统会产生一个重做日志并记录在重做日志缓冲区内。这个重做日志可以类似的认为是以下的一个结构: <br />SCN=000000001000 <br />数据块ID <br />对象ID=0801 <br />数据行=02 <br />修改后的数据=0011 <br />提交的时候，LGWR必须将被修改的数据的重做日志缓冲区内数据写入日志数据文件，然后再通知前台进程提交成功，并由前台进程通知用户。从这点可以看出LGWR承担了维护系统数据完整性的任务。 <br />LGWR 工作的主要条件如下 <br />•用户提交 <br />•有1/3 重做日志缓冲区未被写入磁盘 <br />•有大于1M 重做日志缓冲区未被写入磁盘 <br />•超时 <br />•DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号，DBWR 触发LGWR写入 <br />d、SMON <br />工作主要包含 <br />•清除临时空间 <br />•在系统启动时，完成系统实例恢复 <br />•聚结空闲空间 <br />•从不可用的文件中恢复事务的活动 <br />•OPS中失败节点的实例恢复 <br />•清除OBJ$表 <br />•缩减回滚段 <br />•使回滚段脱机 <br />e、PMON <br />主要用于清除失效的用户进程，释放用户进程所用的资源。如PMON将回滚未提交的工作，释放锁，释放分配给失败进程的SGA资源。 <br />f、CKPT <br />同步数据文件，日志文件和控制文件，由于DBWR/LGWR的工作原理，造成了数据文件，日志文件，控制文件的不一至，这就需要CKPT进程来同步。CKPT会更新数据文件/控制文件的头信息。 <br />CKPT工作的主要条件如下 <br />•在日志切换的时候 <br />•数据库用immediate ,transaction , normal 选项shutdown 数据库的时候 <br />•根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定 <br />•用户触发 <br />以下进程的启动需要手工配置 <br />g、ARCH <br />当数据库以归档方式运行的时候，Oracle会启动ARCH进程，当重做日志文件被写满时，日志文件进行切换，旧的重做日志文件就被ARCH进程复制到一个/多个特定的目录/远程机器。这些被复制的重做日志文件被叫做归档日志文件。 <br />h、RECO <br />负责解决分布事物中的故障。Oracle可以连接远程的多个数据库，当由于网络问题，有些事物处于悬而未决的状态。RECO进程试图建立与远程服务器的通信，当故障消除后，RECO进程自动解决所有悬而未决的会话。 <br />i、服务进程Server Process <br />服务进程的分类 <br />•专用服务进程(Dedicated Server Process) <br />一个服务进程对应一个用户进程 <br />•共享服务进程(MultiTreaded Server Process) <br />一个服务进程对应多个用户进程，轮流为用户进程服务。 <br />PGA &amp; UGA <br />PGA = Process Global Area <br />UGA = User Global Area <br />他保存了用户的变量、权限、堆栈、排序空间等用户信息，对于专用服务器进程，UGA在PGA中分配。对于多线程进程，UGA在Large pool中分配。 <br />j、用户进程User Process <br />在客户端，将用户的SQL 语句传递给服务进程 <br />5、一个贯穿数据库全局的概念----系统改变号SCN(System Change Number) <br />系统改变号，一个由系统内部维护的序列号。当系统需要更新的时候自动增加，他是系统中维持数据的一致性和顺序恢复的重要标志。 <br />a. 查询语句不会使SCN增加，就算是同时发生的更新，数据库内部对应的SCN也是不同的。这样一来就保证了数据恢复时候的顺序。 <br />b. 维持数据的一致性，当一 <br />二、ORACLE 数据库 <br />ORACLE数据库的组成——物理操作系统文件的集合。主要包括以下几种。 <br />1、控制文件（参数文件init.ora记录了控制文件的位置） <br />控制文件包括如下主要信息 <br />•数据库的名字，检查点信息，数据库创建的时间戳 <br />•所有的数据文件，联机日志文件，归档日志文件信息 <br />•备份信息等 <br />有了这些信息，Oracle就知道那些文件是数据文件，现在的重做日志文件是哪些，这些都是系统启动和运行的基本条件，所以他是Oracle运行的根本。如果没有控制文件系统是不可能启动的。控制文件是非常重要的，一般采用多个镜相复制来保护控制文件，或采用RAID来保护控制文件。控制文件的丢失，将使数据库的恢复变的很复杂。 <br />控制文件信息可以从V$Controlfile中查询获得 <br />2、数据文件（数据文件的详细信息记载在控制文件中） <br />可以通过如下方式查看数据文件 <br />SQL&gt; select name from v$datafile; <br />NAME <br />--------------------------------------------- <br />/u05/dbf/PROD/system_01.dbf <br />/u06/dbf/PROD/temp_01.dbf <br />/u04/dbf/PROD/users_01.dbf <br />/u09/dbf/PROD/rbs_01.dbf <br />/u06/dbf/PROD/applsys_indx_01.dbf <br />/u05/dbf/PROD/applsys_data_01.dbf <br />从以上可以看出，数据文件大致可以分为以下几类： <br />i. 系统数据文件(system_01.dbf) <br />存放系统表和数据字典，一般不放用户的数据，但是用户脚本，如过程，函数，包等却是保存在数据字典中的。 <br />名词解释：数据字典  数据字典是一些系统表或视图，他存放系统的信息，他包括数据库版本，数据文件信息，表与索引等段信息，系统的运行状态等各种和系统有关的信息和用户脚本信息。数据库管理员可以通过对数据字典的查询，就可以了解到Oracle的运行状态。 <br />ii. 回滚段文件(rbs_01.dbf) <br />如果数据库进行对数据的修改，那么就必须使用回滚段，回滚段是用来临时存放修改前的数据(Before Image)。回滚段通常都放在一个单独的表空间上（回滚表空间），避免表空间碎片化，这个表空间包含的数据文件就是回滚数据文件。 <br />iii. 临时数据文件(temp_01.dbf) <br />主要存放用户的排序等临时数据，与回滚段相似，临时段也容易引起表空间碎片化，而且没有办法在一个永久表空间上开辟临时段，所以就必须有一个临时表空间，它所包含的数据文件就是临时数据文件，主要用于不能在内存上进行的排序操作。我们必须为用户指定一个临时表空间。 <br />iv. 用户数据文件(/applsys_data_01.dbf ,applsys_indx_01.dbf) <br />存放用户数据，这里列举了两类常见的用户型数据，一般数据和索引数据，一般来说，如果条件许可的话，可以考虑放在不同的磁盘上。 <br />3、重做日志文件（联机重做日志） <br />用户对数据库进行的任何操作都会记录在重做日志文件。在了解重做日志之前必须了解重做日志的两个概念，重做日志组和重做日志组成员(Member)，一个数据库中至少要有两个日志组文件，一组写完后再写另一组，即轮流写。每个日志组中至少有一个日志成员，一个日志组中的多个日志成员是镜相关系，有利于日志文件的保护，因为日志文件的损坏，特别是当前联机日志的损坏，对数据库的影响是巨大的。 <br />联机日志组的交换过程叫做切换，需要特别注意的是，日志切换在一个优化效果不好的数据库中会引起临时的“挂起”。挂起大致有两种情况： <br />•在归档情况下，需要归档的日志来不及归档，而联机日志又需要被重新利用 <br />•检查点事件还没有完成（日志切换引起检查点），而联机日志需要被重新利用 <br />解决这种问题的常用手段是： <br />i.增加日志组 <br />ii.增大日志文件成员大小 <br />通过v$log可以查看日志组，v$logfile可以查看具体的成员文件。 <br />4、归档日志文件 <br />Oracle可以运行在两种模式之中，归档模式和不归档模式。如果不用归档模式，当然，你就不会有归档日志，但是，你的系统将不会是一个实用系统，特别是不能用于生产系统，因为你可能会丢失数据。但是在归档模式中，为了保存用户的所有修改，在重做日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列，该文件系列就是归档日志文件。 <br />有人或许会说，归档日志文件占领我大量的硬盘空间，其实，具体想一想，你是愿意浪费一点磁盘空间来保护你的数据，还是愿意丢失你的数据呢？显而义见，我们需要保证我们的数据的安全性。其实，归档并不是一直占领你的磁盘空间，你可以把她备份到磁带上，或则删除上一次完整备份前的所有日志文件。 <br />5、初始化参数文件 <br />initSID.ora或init.ora文件，因为版本的不一样，其位置也可能会不一样。在8i中，通常位于$ORACLE_HOME/admin//Pfile下，初始化文件记载了许多数据库的启动参数，如内存，控制文件，进程数等，在数据库启动的时候加载（Nomount时加载），初始化文件记录了很多重要参数，对数据库的性能影响很大，如果不是很了解，不要轻易乱改写，否则会引起数据库性能下降。 <br />6、其他文件 <br />i . 密码文件 <br />用于Oracle 的具有sysdba权限用户的认证. <br />ii. 日志文件 <br />•报警日志文件（alert.log或alrt.ora） <br />记录数据库启动，关闭和一些重要的出错信息。数据库管理员应该经常检查这个文件，并对出现的问题作出即使的反应。你可以通过以下SQL 找到他的路径select value from v$PARAMETER where name ="background_dump_dest"; <br />•后台或用户跟踪文件 <br />系统进程或用户进程出错前写入的信息，一般不可能读懂，可以通过ORACLE的TKPROF工具转化为可以读懂的格式。对于系统进程产生的跟踪文件与报警日志文件的路径一样，用户跟踪文件的路径，你可以通过以下SQL找到他的路径select value from v$PARAMETER where name ="user_dump_dest"; <br />三、ORACLE逻辑结构 <br />1、 表空间(tablespace) <br />表空间是数据库中的基本逻辑结构，一系列数据文件的集合。一个表空间可以包含多个数据文件，但是一个数据文件只能属于一个表空间。 <br />2、 段(Segment) <br />段是对象在数据库中占用的空间，虽然段和数据库对象是一一对应的，但段是从数据库存储的角度来看的。一个段只能属于一个表空间，当然一个表空间可以有多个段。 <br />表空间和数据文件是物理存储上的一对多的关系，表空间和段是逻辑存储上的一对多的关系，段不直接和数据文件发生关系。一个段可以属于多个数据文件，关于段可以指定扩展到哪个数据文件上面。 <br />段基本可以分为以下四种 <br />•数据段(Data Segment) <br />•索引段(Index Segment) <br />•回滚段(Rollback Segment) <br />•临时段(Temporary Segment) <br />3、区间(Extent) <br />关于Extent的翻译有多种解释，有的译作扩展，有的译作盘区，我这里通常译为区间。在一个段中可以存在多个区间，区间是为数据一次性预留的一个较大的存储空间，直到那个区间被用满，数据库会继续申请一个新的预留存储空间，即新的区间，一直到段的最大区间数(Max Extent)或没有可用的磁盘空间可以申请。 在ORACLE8i以上版本，理论上一个段可以无穷个区间，但是多个区间对ORACLE却是有性能影响的，ORACLE建议把数据分布在尽量少的区间上，以减少ORACLE的管理与磁头的移动。 <br />4、Oracle数据块(Block) <br />ORACLE最基本的存储单位，他是OS数据块的整数倍。ORACLE的操作都是以块为基本单位，一个区间可以包含多个块（如果区间大小不是块大小的整数倍，ORACLE实际也扩展到块的整数倍）。 <br />5、基本表空间介绍 <br />a. 系统表空间 <br />主要存放数据字典和内部系统表基表 <br />查看数据数据字典的SQL <br />select * from dict <br />查看内部系统表的SQL <br />select * from v$fixed_view_definition <br />DBA对系统的系统表中的数据字典必须有一个很深刻的了解，他们必须准备一些基础的SQL语句，通过这些SQL可以立即了解系统的状况和数据库的状态，这些基本的SQL包括 <br />系统的剩余空间 <br />系统的SGA  <br />状态系统的等待 <br />用户的权限 <br />当前的用户锁 <br />缓冲区的使用状况等 <br />在成为DBA 的道路上我们不建议你过分的依赖于OEM/Quest 等优秀的数据库管理工具，因为他们不利于你对数据数据字典的理解，SQL语句可以完成几乎全部的数据库管理工作。 <br />大量的读少量的写是该表空间的一个显著的特点。 <br />b. 临时表空间. <br />临时表空间顾名思义是用来存放临时数据的，例如排序操作的临时空间，他的空间会在下次系统启动的时候全部被释放。 <br />c. 回滚段表空间 <br />i. 回滚段在系统中的作用 <br />当数据库进行更新插入删除等操作的时候，新的数据被更新到原来的数据文件，而旧的数据(Before Image)就被放到回滚段中，如果数据需要回滚，那么可以从回滚段将数据再复制到数据文件中。来完成数据的回滚。在系统恢复的时候， 回滚段可以用来回滚没有被commit 的数据，解决系统的一至性。 <br />回滚段在什么情况下都是大量的写，一般是少量读，因此建议把回滚段单独出来放在一个单独的设备（如单独的磁盘或RAID），以减少磁盘的IO争用。  <br />ii. 回滚段的工作方式 <br />•一个回滚表空间可以被划分成多个回滚段. <br />•一个回滚段可以保存多个会话的数据. <br />•回滚段是一个圆形的数据模型 <br />假设回滚段由4 个区间组成，他们的使用顺序就是区间1à区间2à区间3à区间4à区间1。也就是说，区间是可以循环使用的，当区间4到区间1的时候，区间1里面的会话还没有结束, 区间4用完后就不能再用区间1,这时系统必须分配区间5，来继续为其他会话服务服务。 <br />我们分析一个Update 语句的完成 <br />①. 用户提交一个Update 语句 <br />②. Server Process 检查内存缓冲. <br />如果没有该数据块的缓冲，则从磁盘读入 <br />i. 如果没有内存的有效空间，DBWR被启动将未写入磁盘的脏缓冲写入磁盘 <br />ii. 如果有有效空间，则读入 <br />③. 在缓冲内更新数据 <br />i. 申请一个回滚段入口，将旧数据写如回滚段 <br />ii. 加锁并更新数据 <br />iii. 并在同时将修改记录在Redo log buffer中</p>
<img src ="http://www.cppblog.com/cannon317/aggbug/4546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 16:47 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql使用基础知识</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4545.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 08:45:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4545.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4545.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4545.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4545.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4545.html</trackback:ping><description><![CDATA[有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。 <br />一、连接MYSQL。 <br />格式： mysql -h主机地址 -u用户名 －p用户密码 <br />1、例1：连接到本机上的MYSQL。 <br />首先在打开DOS窗口，然后进入目录 mysqlbin，再键入命令mysql -uroot -p，回车后提示你输密码，如果刚安装好MYSQL，超级用户root是没有密码的，故直接回车即可进入到MYSQL中了，MYSQL的提示符是：mysql&gt; <br />2、例2：连接到远程主机上的MYSQL。假设远程主机的IP为：110.110.110.110，用户名为root,密码为abcd123。则键入以下命令： <br />mysql -h110.110.110.110 -uroot -pabcd123 <br />（注:u与root可以不用加空格，其它也一样） <br />3、退出MYSQL命令： exit （回车） <br />二、修改密码。 <br />格式：mysqladmin -u用户名 -p旧密码 password 新密码 <br />1、例1：给root加个密码ab12。首先在DOS下进入目录mysqlbin，然后键入以下命令 <br />mysqladmin -uroot -password ab12 <br />注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。 <br />2、例2：再将root的密码改为djg345。 <br />mysqladmin -uroot -pab12 password djg345 <br />三、增加新用户。（注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符） <br />格式：grant select on 数据库.* to 用户名@登录主机 identified by "密码" <br />例1、增加一个用户test1密码为abc，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL，然后键入以下命令： <br />grant select,insert,update,delete on *.* to test1@"%" Identified by "abc"; <br />但例1增加的用户是十分危险的，你想如某个人知道test1的密码，那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了，解决办法见例2。 <br />例2、增加一个用户test2密码为abc,让他只可以在localhost上登录，并可以对数据库mydb进行查询、插入、修改、删除的好作（localhost指本地主机，即MYSQL数据库所在的那台主机），这样用户即使用知道test2的密码，他也无法从internet上直接访问数据库，只能通过MYSQL主机上的web页来访问了。 <br />grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"; <br />如果你不想test2有密码，可以再打一个命令将密码消掉。 <br />grant select,insert,update,delete on mydb.* to test2@localhost identified by ""; <br /><br /><br />我们来看看MYSQL中有关数据库方面的好作。注意：你必须首先登录到MYSQL中，以下好作都是在MYSQL的提示符下进行的，而且每个命令以分号结束。 <br /><br />一、好作技巧 <br />1、如果你打命令时，回车后发现忘记加分号，你无须重打一遍命令，只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打，完后用分号作结束标志就OK。 <br />2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。 <br /><br />二、显示命令 <br />1、显示数据库列表。 <br />show databases; <br />刚开始时才两个数据库：mysql和test。mysql库很重要它里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行好作。 <br />2、显示库中的数据表： <br />use mysql； ／／打开库，学过FOXBASE的一定不会陌生吧 <br />show tables; <br />3、显示数据表的结构： <br />describe 表名; <br />4、建库： <br />create database 库名; <br />5、建表： <br />use 库名； <br />create table 表名 (字段设定列表)； <br />6、删库和删表: <br />drop database 库名; <br />drop table 表名； <br />7、将表中记录清空： <br />delete from 表名; <br />8、显示表中的记录： <br />select * from 表名; <br /><br />三、一个建库和建表以及插入数据的实例 <br />drop database if exists school; //如果存在SCHOOL则删除 <br />create database school; //建立库SCHOOL <br />use school; //打开库SCHOOL <br />create table teacher //建立表TEACHER <br />( <br />id int(3) auto_increment not null primary key, <br />name char(10) not null, <br />address varchar(50) default '深圳', <br />year date <br />); //建表结束 <br />//以下为插入字段 <br />insert into teacher values('','glchengang','深圳一中','1976-10-10'); <br />insert into teacher values('','jack','深圳一中','1975-12-23'); <br /><br />注：在建表中（1）将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key（2）将NAME设为长度为10的字符字段（3）将ADDRESS设为长度50的字符字段，而且缺省值为深圳。varchar和char有什么区别呢，只有等以后的文章再说了。 （4）将YEAR设为好期字段。 <br />如果你在mysql提示符键入上面的命令也可以，但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql，然后复制到c:下，并在DOS状态进入目录mysqlbin，然后键入以下命令： <br />mysql -uroot -p密码 &lt; c:school.sql <br />如果成功，空出一行无任何显示；如有错误，会有提示。（以上命令已经调试，你只要将//的注释去掉即可使用）。 <br /><br />四、将文本数据转到数据库中 <br />1、文本数据应符合的格式：字段数据之间用tab键隔开，null值用n来代替. <br />例： <br />3 rose 深圳二中 1976-10-10 <br />4 mike 深圳一中 1975-12-23 <br />2、数据传入命令 load data local infile "文件名" into table 表名; <br />注意：你最好将文件复制到mysqlbin目录下，并且要先用use命令打表所在的库 。 <br /><br />五、备份数据库：（命令在DOS的mysqlbin目录下执行） <br />mysqldump --opt school&gt;school.bbb <br />注释:将数据库school备份到school.bbb文件，school.bbb是一个文本文件，文件名任取，打开看看你会有新发现。 <br /><img src ="http://www.cppblog.com/cannon317/aggbug/4545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 16:45 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库介绍</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4535.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 06:52:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4535.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4535.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4535.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4535.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: Tahoma">SQL server </span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: Tahoma">介绍<span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">SQL Server</span>
				<span style="FONT-FAMILY: 宋体">数据库是由微软公司发布的数据库，供了一个完整的数据管理和分析解决方案，它将会给不同规模的组织带来帮助：构建、部署和管理企业应用程序，使其更加安全、伸缩性更强和更可靠，降低开发和支持数据库应用程序的复杂性，实现了<span lang="EN-US"> IT </span>生产力的最大化，能够在多个平台、应用程序和设备之间共享数据，更易于连接内部和外部系统，在不牺牲性能、可用性、可伸缩性或安全性的前提下有效控制成本。</span>
				<span lang="EN-US">SQL Server </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据平台包括了<span style="mso-bidi-font-weight: bold">关系型数据库，复制服务，管理工具，开发工具等工具，为用户提供了方便的管理机制。</span></span>
				<span lang="EN-US" style="mso-bidi-font-weight: bold">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b>
						<span lang="EN-US">SQL server </span>
				</b>
				<b>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库有以下几大特点</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US" style="mso-bidi-font-weight: bold">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold">1</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold">．充分利用数据资产<span lang="EN-US">,</span></span>
				<span style="FONT-FAMILY: 宋体">除了为业务线和分析应用程序提供一个安全可靠的数据库之外，<span lang="EN-US">SQL Server</span>也使用户能够通过嵌入的功能（如报表、分析和数据挖掘等）从他们的数据中得到更多的价值。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">2</span>
				<span style="FONT-FAMILY: 宋体">．<span style="mso-bidi-font-weight: bold">提高生产效率<span lang="EN-US">,</span></span>通过全面的<span lang="EN-US"> BI </span>功能以及熟悉的 <span lang="EN-US">Office </span>系统之类的工具集成，<span lang="EN-US">SQL Server</span>为组织内信息工作者提供关键的、及时的业务信息以满足他们特定的需要<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">3. </span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold">减少<span lang="EN-US">IT</span>复杂性<span lang="EN-US">,</span></span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体">SQL Server</span>
				<span style="FONT-FAMILY: 宋体">简化了开发、部署和管理业务线和分析应用程序的复杂度，为开发人员提供了一个灵活的开发环境，为数据库管理人员提供了集成的自动管理工具<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">4. </span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold">降低总体拥有成本<span lang="EN-US"> (TCO)</span>。</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体"> SQL Server</span>
				<span style="FONT-FAMILY: 宋体">中集成的方法和对产品易用性和部署上的关注提供了行业上最低的规划、实现和维护成本，使数据库投资能快速得到回报<span lang="EN-US" style="mso-bidi-font-weight: bold"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">ORACLE</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">介绍</span>
				</b>
				<span lang="EN-US" style="FONT-FAMILY: 宋体">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15.75pt; mso-char-indent-count: 1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">ORACLE</span>
				<span style="FONT-FAMILY: 宋体">数据库产品是由<span lang="EN-US">oracle</span>公司推出的</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基于</span>
				<span lang="EN-US">SQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标准的关系数据库产品，可在</span>
				<span lang="EN-US">100</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">多种硬件平台上运行（所括微机、工作站、小型机、中型机和大型机），支持很多种操作系统。用户的</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用可方便地从一种计算机配置移至另一种计算机配置上。</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的分布结构可将数据和应用驻留在多台计算机上，而相互间的通信是透明</span>
				<span style="FONT-FAMILY: 宋体">，她的产品除了数据库系统外，还有应用系统、开发工具等，可以使现有的软件开发产品与工具软件及<span lang="EN-US">ORACLE</span>应用软件共存，保护了客户的投资，<span lang="EN-US">ORACLE</span>采用了高级网络技术，提高共享池和连接管理器来提高系统的可括性，容量可从几<span lang="EN-US"> GB </span>到 几百<span lang="EN-US"> TB </span>字节，可允许<span lang="EN-US">10</span>万用户同时并行访问，<span lang="EN-US">ORACLE </span>的数据库中每个表可以容纳<span lang="EN-US"> 1000</span>列，能满足目前数据库及数据仓库应用的需要。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体">最新的版本<span lang="EN-US">Oracle</span>数据库<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chmetcnv w:st="on" unitname="g" sourcevalue="10" hasspace="False" negative="False" numbertype="1" tcsc="0"><span lang="EN-US">10g</span></st1:chmetcnv>是业界首个为网格计算而设计的数据库。较低的入门级定价使得<span lang="EN-US">Oracle</span>成为大型企业、中小型企业和部门级的最佳选择，它有多种版本供用户选择： 企业版，标准版，标准版<span lang="EN-US">1</span>（标准版之双处理器版），个人版，移动版<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">Oracle</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体">数据库比较收欢迎的几大特点：<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持大数据库、多用户的高性能的事务处理。</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持最大数据库，其大小可到几</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1．</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">百千兆，可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据应用，并</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1．</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使数据争用最小，保证数据一致性。系统维护具有高的性能，</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每天可连续</span>
				<span lang="EN-US">24</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">小时工作，正常的系统操作（后备或个别计算机系统故障）不会中断数据库的使用。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span lang="EN-US">ORACLE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。所以它是一个开放系统，保护了用户的投资。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">实施安全性控制和完整性控制。<span lang="EN-US">ORACLE</span>为限制各监控数据存取提供系统可靠的安全性。<span lang="EN-US">ORACLE</span>实施数据完整性，为可接受的数据指定标准</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">4．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">支持分布式数据库和分布处理。<span lang="EN-US">ORACLE</span>为了充分利用计算机系统和网络，允许将处理分为数据库服务器和客户应用程序，所有共享的数据管理由数据库管理系统的计算机处理，而运行数据库应用的工作站集中于解释和显示数据。通过网络连接的计算机环境，<span lang="EN-US">ORACLE</span>将存放在多台计算机上的数据组合成一个逻辑数据库，可被全部网络用户存取。分布式系统像集中式数据库一样具有透明性和数据一致性。</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">5．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">具有可移植性、可兼容性和可连接性。由于<span lang="EN-US">ORACLE</span>软件可在许多不同的操作系统上运行，以致<span lang="EN-US">ORACLE</span>上所开发的应用可移植到任何操作系统，只需很少修改或不需修改。<span lang="EN-US">ORACLE</span>软件同工业标准相兼容，包括许多工业标准的操作系统，所开发应用系统可在任何操作系统上运行。可连接性是指<span lang="EN-US">ORALCE</span>允许不同类型的计算机和操作系统通过网络可共享信息</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: Tahoma; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma">。</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">Sybase </span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">介绍<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15.75pt; mso-char-indent-count: 1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">Sybase</span>
				<span style="FONT-FAMILY: 宋体">数据库是由<span lang="EN-US">Sybase</span>公司开发的的数据库。<span lang="EN-US">Sybase </span>数据库是基于客户<span lang="EN-US">/</span>服务器体系结构的数据库，由于是基于<span lang="EN-US">c/s</span>体系的数据库，应用被分在了多台机器上运行并且公开了应用程序接口<span lang="EN-US">DB-LIB</span>，允许在不同的平台使用完全相同的调用，因而使得访问<span lang="EN-US">DB-LIB</span>的应用程序很容易从一个平台向另一个平台移植，使得<span lang="EN-US">Sybase</span>数据库成为一种高效的数据库</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">SYBASE</span>
				<span style="FONT-FAMILY: 宋体">主要有三种版本，一是<span lang="EN-US">UNIX</span>操作系统下运行的版本，二是<span lang="EN-US">Novell Netware</span>环境下运行的版本，三是<span lang="EN-US">Windows NT</span>环境下运行的版本。对<span lang="EN-US">UNIX</span>操作系统目前广泛应用的为<span lang="EN-US">SYBASE 10 </span>及<span lang="EN-US">SYABSE 11 for SCO UNIX</span>。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">Sybase</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体">真正吸引人的是它的高性能，体现在以下几方面</span>
				</b>
				<span style="FONT-FAMILY: 宋体">：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体">可编程数据库。通过提供存储过程，创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的，因此不必为每次调用都进行编译、优化、生成查询规划，因而查询速度要快得多<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体">事件驱动的触发器。触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程，从而确保数据库的完整性。</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体">多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时，系统的性能会大幅度下降。<span lang="EN-US">Sybase</span>数据库不让操作系统来管理进程，把与数据库的连接当作自己的一部分来管理。此外，<span lang="EN-US">Sybase</span>的数据库引擎还代替操作系统来管理一部分硬件资源，如端口、内存、硬盘，绕过了操作系统这一环节，提高了性能。</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">DB2 </span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">介绍<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">DB2</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">是<span lang="EN-US">IBM</span>公司的产品，起源于<span lang="EN-US">System R</span>和<span lang="EN-US">System R*</span>。他支持从<span lang="EN-US">PC</span>到<span lang="EN-US">UNIX</span>，从中小型机到大型机；从<span lang="EN-US">IBM</span>到非<span lang="EN-US">IBM</span>（<span lang="EN-US">HP</span>及<span lang="EN-US">SUN UNIX</span>系统等）各种操作平台。既可以在主机上以主<span lang="EN-US">/</span>从方式独立运行，也可以在客户<span lang="EN-US">/</span>服务器环境中运行。其中服务平台可以是<span lang="EN-US">OS/400</span>，<span lang="EN-US">AIX</span>，<span lang="EN-US"> OS/2</span>，<span lang="EN-US">HP-UNIX</span>，<span lang="EN-US">SUN-Solaris</span>等操作系统，客户机平台可以是<span lang="EN-US">OS/2</span>或<span lang="EN-US">Windows, Dos, AIX, HP-UX, SUN Solaris</span>等操作系统，<span lang="EN-US">DB2</span>数据库核心又称作<span lang="EN-US">DB2</span>公共服务器，支持</span>
				</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体">TCP/IP</span>
				<span style="FONT-FAMILY: 宋体">，<span lang="EN-US">NETBIOS</span>，<span lang="EN-US">APPG</span>，<span lang="EN-US">IPX/SPX</span>，<span lang="EN-US">AMEPIPE</span>　等多种协议</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">，采用多进程多线索体系结构，可以运行于多种操作系统之上，并分别根据相应平台环境作了调整和优化，以便能够达到较好的性能。<span lang="EN-US"><o:p></o:p></span></span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">IBM</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">刚刚发布了<span lang="EN-US">DB2</span>的最新版本</span>
				</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-family: Tahoma">DB2</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-family: Tahoma">通用数据库<span lang="EN-US">9</span>版本，<span lang="EN-US">IBM</span>为不同的用户提供了不同的版本，主要版本有：</span>
				<span style="FONT-FAMILY: 宋体">企业版的<span lang="EN-US">NTERPRISEEDITION<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 105pt; mso-char-indent-count: 10.0">
				<span style="FONT-FAMILY: 宋体">工作组版<span lang="EN-US">WORKGROUPEDITION<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 105pt; mso-char-indent-count: 10.0">
				<span style="FONT-FAMILY: 宋体">企业扩展版<span lang="EN-US">ENTERPRISEEXTENDEDEDITION<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 105pt; mso-char-indent-count: 10.0">
				<span style="FONT-FAMILY: 宋体">个人版的<span lang="EN-US">PERSONALEDITION<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 105pt; mso-char-indent-count: 10.0">
				<span style="FONT-FAMILY: 宋体">卫星版的<span lang="EN-US">SATELLITEEDITION<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 105pt; mso-char-indent-count: 10.0">
				<span style="FONT-FAMILY: 宋体">微型版的<span lang="EN-US">EVERYPLACE<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">DB2</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体">有以下一些特色</span>
				</b>
				<span style="FONT-FAMILY: 宋体">：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">1</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">．支持面向对象的编程，<span lang="EN-US">DB2</span>支持复杂的数据结构，如无结构文本对象，可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。可以建立用户数据类型和用户自定义函数。<span lang="EN-US"><o:p></o:p></span></span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">2</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">．支持多媒体应用程序</span>
				</span>
				<span style="FONT-FAMILY: 宋体">，</span>
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">DB2</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">支持大二分对象（<span lang="EN-US">BLOB</span>），允许在数据库中存取二进制大对象和文本大对象。其中，二进制大对象可以用来存储多媒体对象。<span lang="EN-US"><o:p></o:p></span></span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span class="top111">
						<span lang="EN-US" style="FONT-FAMILY: 宋体">3</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体">．</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持存储过程和触发器，用户可以在建表时显示的定义复杂的完整性规则</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span class="top111">
						<span lang="EN-US">4</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．支持异构分布式数据库访问</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">5</span>
				<span style="FONT-FAMILY: 宋体">．<span lang="EN-US">IBM</span>提供了很多相关的开发工具，如</span>
				<span class="top111">
						<span lang="EN-US">Visualizer Query, VisualAge, VisualGen</span>
				</span>
				<span class="top111">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等，是的用户可以更好的完整的高效的开发和管理数据库的平台</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5">
				<span lang="EN-US" style="FONT-FAMILY: 宋体">6</span>
				<span style="FONT-FAMILY: 宋体">．</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">DB2 </span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">技术解决了几个新领域中新兴的客户需求：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 31.5pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5; mso-para-margin-left: 1.5gd">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">1</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">）<span style="COLOR: black">自主计算要求服务器、操作系统和中间件在无人干涉的情况下诊断和纠正问题。为数据库管理员实现数据库自我管理和自动化是最新版的<span lang="EN-US"> DB2 </span>中特别强调的内容<span lang="EN-US"><o:p></o:p></span></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 31.5pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5; mso-para-margin-left: 1.5gd">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">2</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">）<span style="COLOR: black">基于标准的 <span lang="EN-US"><a href="http://www.ibm.com/software/data/webservices" target="_blank"><font color="#41391f">Web <span lang="EN-US"><span lang="EN-US">服务</span></span></font></a></span>是作为一种新的<span lang="EN-US"> DB2 </span>全力支持的应用程序处理样式出现的。<span lang="EN-US"><o:p></o:p></span></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 31.5pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5; mso-para-margin-left: 1.5gd">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">3</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">）<span style="COLOR: black">网格计算，即将大规模计算资源用作实用程序或服务（包括数据库服务）的思想，利用<span lang="EN-US"> DB2 </span>大量群集的可伸缩性，以高度可用的方式来支持大型数据库和同一时间内的大量用户。基于标准的<span lang="EN-US"> Web </span>服务是<span lang="EN-US"> DB2 </span>所支持的网格计算的另一个关键组件<span lang="EN-US"><o:p></o:p></span></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 31.5pt; TEXT-INDENT: -15.75pt; mso-char-indent-count: -1.5; mso-para-margin-left: 1.5gd">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">4</span>
				<span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">）<span lang="EN-US" style="COLOR: black">“ <a href="http://www.ibm.com/ondemand" target="_blank"><span lang="EN-US" style="COLOR: windowtext; mso-bidi-font-size: 12.0pt"><span lang="EN-US">电子商务随需应变（e-business on demand</span></span><span lang="EN-US"><span lang="EN-US"><font color="#41391f">）</font></span></span></a>”</span><span style="COLOR: black">业务模型需要构建在开放标准上的操作环境，以允许进行快速的和符合成本效益的创新和重新配置。用以支持电子商务随需应变的基础架构必须是可靠的、可伸缩的且是安全的。<span lang="EN-US">DB2 </span>就是这样一种基础架构。<span lang="EN-US"><o:p></o:p></span></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">Mysql </span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">介绍<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15.75pt; mso-char-indent-count: 1.5">
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是最受欢迎的开源</span>
				<span lang="EN-US">SQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库管理系统，它由</span>
				<span lang="EN-US">MySQL AB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发、发布和支持。</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个快速的、多线程、多用户和健壮的</span>
				<span lang="EN-US">SQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库服务器。</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器支持关键任务、重负载生产系统的使用，也可以将它嵌入到一个大配置</span>
				<span lang="EN-US">(mass-deployed)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的软件中去。</span>
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial">Mysql</span>
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial">是目前<span lang="EN-US">web</span>上最流行的数据库，因为它是免费的开源的，因此<span lang="EN-US">mysql</span>的优点和缺点都非常明显，优点当然是速度快，但是前提是更新不频繁、读取很多并且表比较小，还有一点就是需要使用<span lang="EN-US">myisam</span>或者内存<span lang="EN-US">heap</span>表结构可以获得很高的速度。<span lang="EN-US">mysql</span>的缺点也非常明显，那就是在更新很频繁的时候造成大量线程的堵塞，而且数据库表很容易损坏。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15.75pt; mso-char-indent-count: 1.5">
				<span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial">虽然<span lang="EN-US">MySql</span>有一定的缺点，但是还是有很多的人去选有它，主要吸引人们的是以下的一些特点：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 33.75pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 33.75pt">
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">它便宜（通常是免费）。简单的说，你不会找到比<span lang="EN-US"> MySQL </span>更便宜的了。事实上，对大多数用户来说，<span lang="EN-US">MySQL </span>是免费的。有时候虽然是要付出一小笔的授权费，但是这个付费规定只限于以下两种情况</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">：①</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">以内嵌（<span lang="EN-US">embedded</span>）的方式使用<span lang="EN-US">MySQL </span>服务器<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0; mso-para-margin-left: 1.5gd">
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">②只使用<span lang="EN-US"> MySQL </span>的商业用途软件<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 33.75pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 33.75pt">
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span lang="EN-US" style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">Mysql</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">经过很好的优化。对于<span lang="EN-US"> MySQL </span>的优化，主要的问题在于硬件条件，而非<span lang="EN-US"> MySQL </span>本身<span lang="EN-US">, </span>对于使用<span lang="EN-US"> MySQL </span>做数据库的网站，你应该注意的是，如何让硬盘存取<span lang="EN-US">IO</span>减少到最低值、如何让一个或多个<span lang="EN-US"> CPU </span>随时保持在高速作业的状态、以及适当的网络带宽， 而非实际上的数据库设计以及资料查询语句。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 33.75pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 33.75pt">
				<span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3．<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span lang="EN-US" style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">Mysql</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">有很好的可延伸性（<span lang="EN-US">Scalability</span>），并且</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma">为各种不同的资料格式提供有弹性的扩展介面</span>
				<span style="COLOR: #333333; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Tahoma">。<span lang="EN-US">MySQL </span>同时提供高度多样性，能够提供很多不同的使用者介面，包括命令行客户端操作，网页浏览器，以及各式各样的程序语言介面，例如<span lang="EN-US"> C+</span>，<span lang="EN-US">Perl</span>，<span lang="EN-US">Java</span>，<span lang="EN-US">PHP</span>，以及<span lang="EN-US"> Python</span>。你可以使用事先包装好的客户端，或者干脆自己写一个合适的应用程序。<span lang="EN-US">MySQL </span>可用于<span lang="EN-US"> Unix</span>，<span lang="EN-US">Windows</span>，以及<span lang="EN-US"> OS/2 </span>等平台</span>
				<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Mysql</span>
		<span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-family: Tahoma; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">较好学，且操作简单。</span>
		<span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">如果你已经熟悉数据库技术，那么基本上你已经没什么问题了。精通数据库的人在一天之内就可以把<span lang="EN-US"> MySQL </span>学会</span>
<img src ="http://www.cppblog.com/cannon317/aggbug/4535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 14:52 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 UDB V8.1学习笔记3</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4530.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 05:22:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4530.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4530.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4530.html</trackback:ping><description><![CDATA[
		<p align="left">db2idrop -f instance_name 强制断开已有连接，停止实例并删除。<br />db2imigr instance_name 用于在UNIX下迁移实例。<br />db2iupdt instance_name 更新实例，用于实例获得一些新的产品选项或修订包的访问权。<br />db2 get instance 获取当前所处的实例。<br /><br />当更新实例级别或数据库级别的参数后，有些可以立即生效，有些需要重新启动实例才可生效。immediate 显式指明更改立即生效，deferred 显式指明更改在重起实例后生效。<br /><br /><br />当需要配置许多台客户机与DB2服务器的连接时，可以用配置助手将服务器的概要文件导出，然后在每个客户机使用配置助手导入概要文件。若客户端只安装了运行时客户端，则可以使用<br />db2cfimp access_profile_name<br />导入概要文件。<br />疑问：是否应该由已配置好的一台客户机导出概要文件？<br /><br />db2 list applications 列出所有的数据库连接<br />db2 force application (2) 终止指定的连接句柄，事务被中断并回滚。同时操作多个句柄可以用逗号分开，或者指定关键字 all。此命令只终止指定的连接，不会阻止新的应用连接到数据库。<br /><br /><br />创建数据库时可以指定排序方式：collate using identity<br /><br />系统模式集是和每个数据库一起创建的，并且它们被放置到 SYSCATSPACE 表空间中：<br />SYSIBM： <br />基本系统目录 <br />建议不要进行直接访问 <br />SYSCAT： <br />PUBLIC 被授予该模式的 SELECT 权限 <br />对只读视图编目 <br />这是获取目录信息的推荐方式 <br />SYSSTAT： <br />可更新的目录视图 － 影响优化器 <br />SYSFUN： <br />用户定义的函数 <br /><br />如果表中的现有行不满足约束，则不能定义该约束。可以关闭约束检查以加快大量数据的添加，但是该表处于检查暂挂（CHECK PENDING）状态。<br /><br /><br />在创建表时，可以使用选项来指定一个或多个表空间，表和索引将被放置到其中： <br />CREATE TABLE TEST (<br />column 1 definition, column 2 definition, ...<br />) IN &lt;tablespace name&gt; INDEX IN &lt;index space name&gt;<br />这条命令为您提供了一个选项：指定创建表和索引的位置。如果没有指定单独的索引表空间，那么将在表所在的同一表空间中创建索引。创建表之后，就没有机会在不同的表空间中创建索引了。创建索引要提前作规划！ <br />CREATE &lt;UNIQUE&gt; INDEX &lt;index name&gt; ON &lt;table name&gt;<br />(<br />column 1 &lt;ASC | DESC&gt; ,<br />column 2 &lt;ASC | DESC&gt; ...<br />)<br />UNIQUE 属性告诉 DB2，索引必须强制所有插入值的唯一性。<br />如果结果集是以升序和降序两种方式排序的，ALLOW REVERSE SCANS 会告诉 DB2 在索引中包括附加的指针，以允许在记录中有效地进行正向和反向链接。<br /><br />DB2 能够向正在创建的索引中添加另外的列。CREATE INDEX 命令允许用户指定那些不属于实际索引但因为性能原因而保存在索引记录中的列。 <br />CREATE UNIQUE INDEX ON EMPLOYEE (EMPNO) INCLUDE (LASTNAME,FIRSTNAME)<br />对于索引中包含的列而言，索引必须是 UNIQUE 的。当创建索引时，另外的列被添加到索引值中。索引不使用这些值进行排序或确定唯一性，但可以在满足 SQL 查询时使用它们。例如，下列 SELECT 语句将不需要读取实际数据行：<br />SELECT LASTNAME, FIRSTNAME FROM EMPLOYEE WHERE EMPNO &lt; '000300'<br /><br />要在表上创建群集索引，将 CLUSTER 关键字附加到 CREATE INDEX 命令的末尾，例如： <br />CREATE INDEX DEPTS-IX ON EMPLOYEE(WORKDEPT) CLUSTER<br /><br />使用下列通用规则来决定为表定义的索引的经典数量。索引数量取决于数据库的主要用途：<br />对于在线事务处理（OLTP）环境，创建一到两个索引。 <br />对于混合查询和 OLTP 环境，创建两到五个索引。 <br />对于只读查询环境，创建五个以上索引。<br /><br /><br />在Windows平台上的DB2的命令行模式下，或者在类Unix平台下，使用命令db2cc启动控制中心。<br /><br />db2move提供了在数据库之间批量移动数据的能力，可以指定某个表，也可以指定整个数据库的表。<br />db2move dbname action<br /><br />action 可以指定为：export, import或者load<br />使用 -l 参数指定lob对象存储的文件夹<br /><br /><br />执行增量备份要求设置数据库配置参数“trackmod”的值为“YES”<br />执行在线备份要求设置数据库配置参数“logretain”的值为“YES”，在线备份语法：<br />db2 backup db dbname online to path<br /><br /><br />当删除了das用户的home目录，未先drop掉das服务，则再执行dasdrop则不成功，提示：<br />db2admin 命令无法找到，原因是db2admin命令保存在das的home目录中。<br />可以删除干净das用户的home目录后，重起服务器解决此问题。<br /><br />dasupdt dasName 升级das<br />db2iupdt instName 升级实例<br />db2licd end 停止许可证守护进程<br /><br />在Linux系统安装DB2 V8.1后，db2fmcd进程会自动启动，即使不启动实例和DAS，<br /><br />在中文Linux环境下安装了DB2数据库服务，并使用GBK代码页（codepage）创建了一个数据库，完成后可以正常连接操作，若更改操作系统代码页为英语，则使用“db2 connect”时会报错，连接时无法转换代码页。<br /><br /></p>
<img src ="http://www.cppblog.com/cannon317/aggbug/4530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 13:22 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 UDB V8.1学习笔记2</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4529.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 05:21:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4529.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4529.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4529.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4529.html</trackback:ping><description><![CDATA[表空间类型分为SMS和DMS，分别是system management space, database management space. SMS使用方便，简单，无需手工创建和维护数据存储文件。DMS需要手动指定container和存储数据的文件名，并保证有足够磁盘空间可用。<br />对于一个数据库，至少存在一个page size为4K的系统临时表空间，可以额外建立具有更大page size的用户临时表空间，系统会自动进行使用。<br /><br />无法用alter语句更改一个字段的数据类型，对某些字段可以更改数据长度，这一点上相对于Oracle，DB2的限制要多一些。<br />可以使用: select 表达式 from sysibm.sysdummy; 替代的，以下语句是等价的：values 表达式；<br /><br /><br />表和视图的创建、更新、删除操作，都写日志，因此可以commit或rollback。<br /><br />在update语句中，如果没有对定义了默认值的某个字段显式赋值，则更新时，此字段不会重新执行默认值中定义的表达式。为了让其重新执行默认值定义的表达式，可以采用以下方式：<br />create table t1 (c1 varchar(32), lastupdatetime with default current timpstamp);<br />update t1 set c1 = 'new string', lastupdatetime = default;<br /><br /><br />对于DB2数据库可以在创建时指定codepage参数，创建后不可修改。当应用程序访问数据库时，DB2会比较两者的codepage是否一致，不一致则进行代码页的自动转换。为了减少转换所带来的开销，应尽量保证应用程序所采用的代码页与数据库一致。<br /><br />可以对DB2 CLP工具的codepage进行设置，使用：db2set DB2CODEPAGE= 1386，本例中设置的是中文GBK字符集在Windows平台对应的值。注意，这个数字值是由DB2自己定义的。有关各种字符集在相应平台所对应的代码页值可在IBM网站查找。<br /><br />在DB2 CLP中，对远程数据库编目的操作：<br />DB2 CATALOG TCPIP NODE local_node_name REMOTE hostname|ip SERVER service_name 首先把远程主机映射为本地节点，节点名自己指定，本例采用TCPIP连接。service_name一般定义在远程主机的/etc/services文件中。<br />DB2 CATALOG DATABASE db_name AS local_alias AT local_node_name USER username USING password 然后把已知的远程主机的数据库映射到本地别名，注意本地别名在主机级别不能重复。节点名指定上面刚编目的节点。<br />DB2 CONNECT TO local_alias USER username USING password 用刚才编目中定义的别名连接远程主机数据库<br />DB2 GET CONFIGURATION SHOW DETAIL 获取数据库详细配置信息<br /><br />对于DB2返回的错误号，可以用以下方法查阅说明(以sql 10008为例)：<br />db2 ? sql10008<br /><br /><br />数据库的备份与恢复：<br /><br />使用备份与恢复工具可以完成在不同的服务器见完整的转移数据库的工作，命令行方式如下：<br /><br />备份<br />DB2 BACKUP DATABASE db_name USER user_name USING password to backup_dir_name<br />DB2 BACKUP DATABASE dlhdb USER dlh USING admindlh TO d:\backups<br /><br />恢复<br />DB2 RESTORE DATABASE source_db_name USER user_name USING password FROM backup_dir_name TAKEN AT backup_file_create_time TO driver_letter INTO new_db_name<br />DB2 RESTORE DATABASE dlhdb USER dlh USING admindlh FROM d:\backups TAKEN AT 20031209141056 TO d: INTO newdb<br /><br />有关实例的操作：<br />设置默认实例环境变量<br />DB2 SET DB2INSTANCE=inst_name<br />启动当前实例<br />DB2START <br />停止当前实例<br />DB2STOP [FORCE]<br />连接到某个实例<br />DB2 ATTACH TO ANSTANCE inst_name<br />获取实例的配置参数<br />DB2 GET DBM CFG SHOW DETAIL<br /><br /><br />导出数据库完整的定义到脚本文件，包括表，视图，函数，数据库参数等<br />db2look -d sample（数据库） -a -e -l -x -m -f -o（参数）samplesql.out（输出文件） <br /><br /><br />load 一个表的数据时，有可能导致表空间处于backup pending（0x0020）状态。比如把整形数据load到double型的字段中。<br />处于backup pending状态的表空间不能被访问。<br />可以通过对此表空间运行一次backup操作，恢复到正常状态（0x0）。<br /><br />对于自增字段，可以通过两种方式指定：<br />generated by default as identity<br />generated always as identity<br />区别是，第一种方式在插入数据时允许手工指定自增字段的值，只要不重复即可，并且数据库会自动设置下一个值；<br />第二种方式则不允许指定，只能由数据库自动分配并插入。<br /><br /><br />DB2 sql语句中转义符的使用：<br />select * from t1 where a like '%abc\%def' escape '\';<br /><br />创建数据库时，出现SQL1043C错误，可能的问题：<br />指定容器所在的磁盘空间不足，<br />当容器为file类型时，后面的long-num参数不对，比如25600代表256Mb，但如果指定256则会导致以上错误。<br /><br /><br />平台 RH Linux 8<br />DB2 UDB v8.1 <br />在WAS 5中建立到db2的数据源，但连接失败，返回以下错误：<br />[Servlet Error]-[SQLConnect]: java.lang.UnsatisfiedLinkError: SQLConnect<br />原因是没有为运行was服务的用户设置以下环境变量：<br />LD_LIBRARY_PATH<br />LIBPATH<br />DB2INSTANCE<br />...<br />以上环境变量定义在 $INSTHOME/sqllib/db2profile文件中，可以采用的解决方案：<br />sh stopServer.sh servername<br />. $INSTHOME/sqllib/db2profile<br />sh startServer.sh servername<br />也可以把db2profile放到was启动脚本中首先执行。<br /><br />如果只设置了LD_LIBRARY_PATH，LIBPATH两个环境变量，DB2会返回以下错误：<br />CLI0600E Invalid connection handle or connection is closed.<br />SQLSTATE S1000<br /><br /><br />对应于Oracle的Job包功能，DB2通过一个GUI工具－任务中心（task center）实现。使用任务中心前需要进行必要的工具设置，需要创建一些数据库对象，可以创建在已有的一个数据库中，也可以单独创建一个数据库。通过以下命令实现：<br />create catalog tools schema_name create new database db_name<br />此命令为编目工具创建一个名为db_name 的数据库，并指定了一个模式名。<br />注意：无法用using 子句指定一个codeset，系统会默认使用ISO8859-1字符集。<br /><br /><br />Quest Center for DB2带有数据库性能诊断功能，动态监视db内存，磁盘io, 表空间，负载等等。<br /><br />DB2客户端的类型：<br />DB2运行时客户端 DB2 Runtime Client<br />DB2管理客户端 DB2 Administrator Client（包含运行时客户端的所有内容）<br />DB2应用程序开发客户端 DB2 Application Development Client（包含管理客户端的所有内容）<br />DB2瘦客户端 DB2 Thin Client<br /><br />DB2 Relational Connect 联邦数据库，用于连接异种数据库。<br /><img src ="http://www.cppblog.com/cannon317/aggbug/4529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 13:21 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 UDB V8.1学习笔记1</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4528.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 05:20:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4528.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4528.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4528.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4528.html</trackback:ping><description><![CDATA[在DB2中有关实例(Instance), 数据库(Database)，表空间(TableSpace)，容器(Container)等概念：<br /><br />在一个操作系统中，DB2数据服务可以同时运行多个实例(有别于Oracle在一个系统内只能起一个实例)，数据库定义在实例中，一个实例可以包含多个数据库。在同一个实例中的不同数据库是完全独立的，分别拥有自己独立的系统编目表。<br /><br />表空间分为DMS方式和SMS(System manegement Space)方式，定义在数据库中，一个数据库中必须存在两个系统基本的表空间，分别是系统编目表空间(SysCatSpace)与系统临时表空间(SysTempSpace)。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现，对于临时表空间，其占用磁盘大小是根据使用情况动态伸缩的，即仅在需要时才分配磁盘空间，并在使用后进行回收。此外，若用户需要创建表，则需要创建用户表空间(UserSpace)，若需要使用临时表，则需要创建用户临时表空间(UserTempSpace)。<br /><br />DMS与SMS类型在表空间建立时指定，建好后不能转换。对于DMS方式，一个表空间对应了一个或多个容器(Container)，容器指定了数据的物理存储位置。对于SMS方式，只能够指定一个目录，不能够增加。<br /><br />容器分为三种类型，前两种是文件与设备，用于DMS方式的表空间；还有一种是目录，用于SMS方式的表空间，此种方式不需要人工管理数据存储文件，DB2可根据情况在目录中自动增加存储文件，只要磁盘空间允许。实质上，表空间是数据存储的逻辑位置定义，容器则是数据存储的物理位置定义。<br /><br /><br />影响一个数据库的性能主要有以下因素：磁盘(Disk), 内存(Memory), 处理器(CPU), 网络(Network)。其中以磁盘最为显著，90%的性能瓶颈可能来自于磁盘的IO竞争；其次是内存，一方面是指物理内存的总量要满足需求，另一方面是指与内存相关的配置参数应正确配置；当然处理器的性能也很重要，多路CPU会对哪些依赖计算能力的复杂SQL查询起到显著的效果；网络不属于主要因素，属于客观的环境因素，是指过慢的网速会对数据的传输造成影响。以下列出一些对于提高数据库性能有效的方法：<br /><br />对于运行数据库服务的服务器可以尽可能的配置多块物理磁盘，每块的容量不必太大，这样可以有效的分担数据存储与读取操作过程的磁盘IO竞争。即采用多块小容量的磁盘在性能上要优于仅采用一块大容量的磁盘。<br /><br />如果条件允许，尽量使数据存储服务与操作系统分别运行在物理分开的磁盘上。<br /><br />采用DMS(Database Management Space)管理方式的表空间。<br /><br />在物理不同的磁盘上创建多个表空间。然后可以将数据和索引分别存放在不同的表空间，这样可以显著的提高性能。还可以把一个使用频繁的大表纵向拆成多个小表，分别存放在不同的表空间中，然后用一个视图进行联合。<br /><br />DB2服务器可以管理裸设备，即除系统以及DB2服务运行磁盘以外，为DB2数据存放单独准备磁盘，可以是多块，分区后不需要格式化，创建裸设备后直接交给DB2进行管理，用于存储数据。<br /><br />系统的临时表空间对数据库性能影响很大，当由管理的物理内存不能满足数据库操作的需要时，DB2便会把临时数据写到磁盘上，这时便用到了系统临时表空间，并且这种情况会经常发生。<br /><br />尽量在磁盘靠近最内层磁道的位置安放数据，因为此处磁盘的访问速度较快。<br /><br /><br />DB2的参数配置分为两个级别，一个是实例级别，另一个是数据库级别。对数据服务性能影响较大的参数主要在数据库级别配置。以下是三个比较重要的内存配置参数：<br /><br />bufferpage: 由同一个数据库中的所有对象共享。<br /><br />sortheap: 用于排序的内存交换区，非共享，不宜设置太大，否则，很容易引起内存耗尽，因为每一个事务都会申请独立的内存用于排序。<br /><br />locklist: 共享内存，用于记录数据服务运行中建立的锁。建议设置20Mb左右，需要时根据实际情况进行调整。DB2默认使用行级锁，如果设置太小，当锁的记录太多时，则会导致内存不足，此时DB2会把多个行锁升级为一个表锁，这样就会大大降低应用程序的并发性能。如果设置太大，则多分配的内存很少会被用到，导致浪费。<br /><br />其他的一些配置参数：<br /><br />numdb: 同时可以启动的实例数目<br /><br /><br />DB2的常用命令：<br /><br />db2ilist 列出当前系统中定义的DB2实例<br />daslist 列出系统中的DAS<br />db2 list database directory 列出当前实例中定义的数据库<br />db2 list tablespaces 列出当前数据库中定义的表空间<br />db2 list tabses [for all] 列出当前数据库中的表<br />db2 list active db 列出活动的数据库<br /><br />db2 get dbm config<br />get db cfg for databasename<br />db2 update db cfg for databasename using bufferpage 600M<br />db2 alter bufferpool IABMDEFAULTBP size =1<br />db2 list applications show detail<br /><br />以上命令可以在后面加 " show detail" 参数，显示详细信息。<br /><br /><br />DB2数据存储的页大小只能在表空间级别统一指定(区别于Oracle，可以定义在表级别), 并且建好后不能修改。<br /><br />可以手工建立一个页大小为4K的DMS用户临时表空间，然后把系统默认的SMS系统临时表空间删除。为满足应用需求，一般还应再建立一个页大小在8K以上的用户临时表空间。<br /><br />DB2 UDB V8.1 对RedHat Linux 9 的支持不好，默认情况下无法启动GUI安装程序(可以通过设置环境LD_ASSUME_KERNEL=2.2.5解决)，并且不会安装Sample数据库，控制中心也无法正常启动。 <br /><br /><br />当使用COUNT()函数时，如果表中的记录数 &gt; 2 147 483 647行，则函数可能返回错误的结果，这时可以使用返回类型为DECIMAL(31, 0)的COUNT_BIG()函数。<br /><br />DISTINCT 关键字可以用在COUNT()函数中，如：SELECT COUNT(DISTINCT id) FROM TABLE，这代表将不对id列的重复值进行计数。<br /><br />ORDER BY子句后面如果写了多个列名，需要分别指定升序或是降序。<br /><br />可以在load大量数据时，暂时关闭表的日志选项。使用：ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY<br /><br />DB2的几个特殊寄存器：CURRENT DATE, CURRENT TIME, CURRENT TIMESTAMP, USER(用户ID).<br /><br />有关日期的操作：CURRENT TIMESTAMP + 2 DAYS(or HOURS, SECONDS, MONTHS, YEARS, etc.)<br /><br />case 语句的使用：case when 条件一 then 动作一 else 动作二 end; 可以欠套使用。<br /><br />在视图的创建语句中无法使用order by 子句与 fetch n rows 子句。但对于order by可以用如下方法替代实现，不过会影响效率。<br />create view v_name1(c1, c2, c3) as<br />select * from ( <br />select column1, column2, column3<br />from t1<br />order by column1 ) as t1;<br /><br /><img src ="http://www.cppblog.com/cannon317/aggbug/4528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 13:20 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql 学习笔记</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4525.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 05:06:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4525.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4525.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4525.html</trackback:ping><description><![CDATA[Mysql 学习笔记<br />1、安装环境：<br />     Windows XP<br />     Mysql 4.0.17 从 <a href="http://www.gewei.cn/test/www.mysql.com/index.html">http://www.mysql.com</a>下载<br />     EMS Mysql Query 1.6.0.1<br />     本机IP：172.5.1.183<br />2、安装Mysql，采用默认安装即可<br />   目录选择在c:\mysql，不要修改默认目录<br />3、启动Mysql<br />   安装为服务：c:\mysql\bin\mysqld --install<br />   启动Mysql: net start mysql<br />   停止Mysql: net stop mysql<br />4、系统创建的数据库有mysql,test<br />   mysql保存系统数据<br />   test数据库用来测试<br />5、默认登陆方式<br />   在本机<br />     c:\mysql\bin\mysql -uroot <br />     c:\mysql\bin\mysql<br />   远程<br />     mysql -h 172.5.1.183 -uroot<br />   <br />   这些是在mysql.user表中，系统默认存在4条数据<br />        use mysql<br />        select host,user,password from user;<br />        +-----------+------+----------+<br /> | host      | user | password |<br /> +-----------+------+----------+<br /> | localhost | root |          |<br /> | %         | root |          |<br /> | localhost |      |          |<br /> | %         |      |          |<br /> +-----------+------+----------+<br />   <br />   这些数据代表的意义：<br />     用户名为root，密码为空的用户可以从本机和任何远程主机登陆<br />     任何用户名，密码为空的用户可以从本机登陆<br />     用户名为空，密码为空的用户不可以从远程登陆 （user中后面的字段为N，所以无法登陆）<br />   修改root密码<br />     mysql -uroot <br />     use mysql<br />     update user set password=PASSWORD("root") where user='root' and host='localhost'<br />   下次就需要用mysql -uroot -proot才可以登陆<br />   在远程或本机可以使用 mysql -h 172.5.1.183 -uroot 登陆，这个根据第二行的策略确定 <br />   权限修改生效：<br />      1)net stop mysql <br />        net start mysql<br />      2)c:\mysql\bin\mysqladmin flush-privileges<br />      3)登陆mysql后，用flush privileges语句<br />6、创建数据库staffer<br />   create database staffer;<br />7、下面的语句在mysql环境在执行<br />   显示用户拥有权限的数据库       show databases;<br />   切换到staffer数据库       use staffer;<br />   显示当前数据库中有权限的表 show tables;<br />   显示表staffer的结构   desc staffer;<br />8、创建测试环境<br />   1)创建数据库staffer<br />     mysql&gt; create database staffer<br />   2)创建表staffer,department,position,depart_pos<br />     create table s_position<br />     (<br />         id int not null auto_increment,<br />         name varchar(20) not null default '经理', #设定默认值<br />         description varchar(100),<br />         primary key PK_positon (id)  #设定主键<br />     );     <br />     create table department<br />     (<br />         id int not null auto_increment,<br />         name varchar(20) not null default '系统部', #设定默认值<br />         description varchar(100),<br />         primary key PK_department (id)  #设定主键<br />     );<br />     create table depart_pos<br />     (<br />         department_id int not null,<br />         position_id int not null,<br />         primary key PK_depart_pos (department_id,position_id)  #设定复和主键<br />     );<br />     create table staffer<br />     (<br />         id int not null auto_increment primary key,  #设定主键<br />         name varchar(20) not null default '无名氏',  #设定默认值<br />         department_id int not null,<br />         position_id int not null,<br />         unique (department_id,position_id)  #设定唯一值<br />     );<br />   3)删除<br />     mysql&gt;<br />        drop table depart_pos;<br />        drop table department;<br />        drop table s_position;<br />        drop table staffer;<br />        drop database staffer;<br />9、修改结构<br />   mysql&gt;<br />   #表position增加列test<br />   alter table position add(test char(10)); <br />   #表position修改列test<br />   alter table position modify test char(20) not null;<br />   #表position修改列test默认值<br />   alter table position alter test set default 'system';<br />   #表position去掉test默认值<br />   alter table position alter test drop default;<br />   #表position去掉列test<br />   alter table position drop column test;<br />   #表depart_pos删除主键<br />   alter table depart_pos drop primary key;<br />   #表depart_pos增加主键<br />   alter table depart_pos add primary key PK_depart_pos (department_id,position_id);<br />10、操作数据<br />   #插入表department<br />   insert into department(name,description) values('系统部','系统部');<br />   insert into department(name,description) values('公关部','公关部');<br />   insert into department(name,description) values('客服部','客服部');<br />   insert into department(name,description) values('财务部','财务部');<br />   insert into department(name,description) values('测试部','测试部');<br />   #插入表s_position<br />   insert into s_position(name,description) values('总监','总监');<br />   insert into s_position(name,description) values('经理','经理');<br />   insert into s_position(name,description) values('普通员工','普通员工');<br />   #插入表depart_pos<br />   insert into depart_pos(department_id,position_id)<br />   select a.id department_id,b.id postion_id<br />   from department a,s_position b;<br />   #插入表staffer<br />   insert into staffer(name,department_id,position_id) values('陈达治',1,1);<br />   insert into staffer(name,department_id,position_id) values('李文宾',1,2);<br />   insert into staffer(name,department_id,position_id) values('马佳',1,3);<br />   insert into staffer(name,department_id,position_id) values('亢志强',5,1);<br />   insert into staffer(name,department_id,position_id) values('杨玉茹',4,1);<br />11、查询及删除操作<br />   #显示系统部的人员和职位<br />   select a.name,b.name department_name,c.name position_name<br />   from staffer a,department b,s_position c<br />   where a.department_id=b.id and a.position_id=c.id and b.name='系统部';<br />   #显示系统部的人数<br />   select count(*) from staffer a,department b<br />   where a.department_id=b.id and b.name='系统部'<br />   #显示各部门的人数<br />   select count(*) cou,b.name<br />   from staffer a,department b<br />   where a.department_id=b.id<br />   group by b.name;<br />   #删除客服部<br />   delete from department where name='客服部';<br />   #将财务部修改为财务一部<br />   update department set name='财务一部' where name='财务部';<br />12、备份和恢复 <br />    备份数据库staffer<br />     c:\mysql\bin\mysqldump -uroot -proot staffer&gt;e:\staffer.sql<br />     得到的staffer.sql是一个sql脚本，不包括建库的语句，所以你需要手工<br />     创建数据库才可以导入<br />    恢复数据库staffer,需要创建一个空库staffer<br />     c:\mysql\bin\mysql -uroot -proot staffer&lt;staffer.sql<br />     如果不希望后来手工创建staffer,可以<br />     c:\mysql\bin\mysqldump -uroot -proot --databases staffer&gt;e:\staffer.sql<br />     mysql -uroot -proot &gt;e:\staffer.sql<br />     但这样的话系统种就不能存在staffer库，且无法导入其他名字的数据库，<br />     当然你可以手工修改staffer.sql文件<br />13、从文本向数据库导入数据<br />    1)使用工具c:\mysql\bin\mysqlimport<br />    这个工具的作用是将文件导入到和去掉文件扩展名名字相同的表里，如<br />    staffer.txt,staffer都是导入到staffer表中<br />    常用选项及功能如下 <br /> -d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息 <br /> -f or --force 不管是否遇到错误，mysqlimport将强制继续插入数据 <br /> -i or --ignore mysqlimport跳过或者忽略那些有相同唯一 <br /> 关键字的行， 导入文件中的数据将被忽略。 <br /> -l or -lock-tables 数据被插入之前锁住表，这样就防止了， <br /> 你在更新数据库时，用户的查询和更新受到影响。 <br /> -r or -replace 这个选项与－i选项的作用相反；此选项将替代 <br /> 表中有相同唯一关键字的记录。 <br /> --fields-enclosed- by= char <br /> 指定文本文件中数据的记录时以什么括起的， 很多情况下 <br /> 数据以双引号括起。 默认的情况下数据是没有被字符括起的。 <br /> --fields-terminated- by=char <br /> 指定各个数据的值之间的分隔符，在句号分隔的文件中， <br /> 分隔符是句号。您可以用此选项指定数据之间的分隔符。 <br /> 默认的分隔符是跳格符（Tab） <br /> --lines-terminated- by=str <br /> 此选项指定文本文件中行与行之间数据的分隔字符串 <br /> 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 <br /> 您可以选择用一个字符串来替代一个单个的字符： <br /> 一个新行或者一个回车。 <br /> mysqlimport命令常用的选项还有-v 显示版本（version）， <br />            -p 提示输入密码（password）等。<br />   这个工具有个问题，无法忽略某些列，这样对我们的数据导入有很大的麻烦，虽然<br />   可以手工设置这个字段，但会出现莫名其妙的结果，我们做一个简单的示例<br />   我们定义如下的depart_no.txt，保存在e盘，间隔为制表符\t<br /> 10 10<br /> 11 11<br /> 12 24 <br /> 执行如下命令<br />    c:\mysql\bin\mysqlimport -uroot -proot staffer e:\depart_pos.txt<br />    在这里没有使用列的包围符号，分割采用默认的\t，因为采用别的符号会有问题，<br />    不知道是不是windows的原因<br />    2)Load Data INFILE file_name into table_name(column1_name,column2_name)<br />      这个命令在mysql&gt;提示符下使用，优点是可以指定列导入，示例如下<br />      c:\mysql\bin\mysql -uroot -proot staffer<br />      mysql&gt;load data infile "e:/depart_no.txt" into depart_no(department_id,position_id);<br />    <br />    这两个工具在Windows下使用都有问题，不知道是Windows的原因还是中文的问题，<br />    而且不指定的列它产生了空值，这显然不是我们想要的，所以谨慎使用这些工具<br /><img src ="http://www.cppblog.com/cannon317/aggbug/4525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 13:06 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2介绍</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4521.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 03:14:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4521.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4521.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4521.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4521.html</trackback:ping><description><![CDATA[
		<span class="top11">DB2是IBM公司的产品，起源于System R和System R*。他支持从PC到UNIX，从中小型机到大型机；从IBM到非IBM（HP及SUN UNIX系统等）各种操作平台。他既可以在主机上以主/从方式独立运行，也可以在客户/服务器环境中运行。其中服务平台可以是OS/400，AIX，OS/2，HP-UNIX，SUN-Solaris等操作系统，客户机平台可以是OS/2或Windows, Dos, AIX, HP-UX, SUN Solaris等操作系统。<br /><br /><strong>数据库服务器</strong><br /><br />DB2数据库核心又称作DB2公共服务器，采用多进程多线索体系结构，可以运行于多种操作系统之上，并分别根据相应平台环境作了调整和优化，以便能够达到较好的性能。<br /><br /><strong>DB2核心数据库的特色</strong><br /><br />（1） 支持面向对象的编程<br /><br />DB2支持复杂的数据结构，如无结构文本对象，可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。<br /><br />可以建立用户数据类型和用户自定义函数。<br /><br />（2） 支持多媒体应用程序<br /><br />DB2支持大二分对象（BLOB），允许在数据库中存取二进制大对象和文本大对象。其中，二进制大对象可以用来存储多<br /><br />媒体对象。<br /><br />（3） 备份和恢复能力<br /><br />（4） 支持存储过程和触发器，用户可以在建表时显示的定义复杂的完整性规则<br /><br />（5） 支持的硅SQL查询<br /><br />（6） 支持异构分布式数据库访问<br /><br />（7） 支持数据复制<br /><br /><strong>开发工具</strong><br /><br />IBM提供了许多开发工具，主要有Visualizer Query, VisualAge, VisualGen。<br /><br />Visualizer是客户/服务器环境中的集成工具软件，主要包括Visualizer Query可视化查询工具，Visualizer <br /><br />Ultimedia Query可视化多媒体查询工具，Visualizer chart可视化图标工具，Visualizer procedure可视化过程工具， <br /><br />Visualizer statistics可视化统计工具，Visualizer Plans可视化规划工具， Visualizer Development可视化开发工<br /><br />具。<br /><br />VisualAge是一个功能很强的可视化的面向对象的应用开发工具，可翼大幅度的提高软件开发效率。其主要特征有：<br /><br />（1） 可视化程序设计工具。<br /><br />（2） 部件库。包括支持图形用户接口的预制不见，以及包含数据库查询、事务和本地、远程函数的通用部件。<br /><br />（3） 关系数据库支持。<br /><br />（4） 群体程序设计。<br /><br />（5） 支持增强的动态连接库。<br /><br />（6） 支持多媒体。<br /><br />（7） 支持数据共享。<br /><br />VisualGen是IBM所提供的高效开发方案中的重要组成部分。它集成了第四代语言、客户/服务器与面向对象技术，给用户提供了一个完整、高效的开发环境。</span>
<img src ="http://www.cppblog.com/cannon317/aggbug/4521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 11:14 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle与SYBASE比较</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4516.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 02:10:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4516.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4516.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4516.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4516.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1. ORACLE		数据库管理系统						*		无范式要求，可根据实际系统需求构造数据库。						*		采用标准的		SQL		结构化查询语言。						*		具有丰富的开发工具，覆盖开发周期的各阶段。						*		支持大型数据库，数据类型支持数字、字符、大至		2GB		的二进制数据，为数据库的面向对象存储提供数...&nbsp;&nbsp;<a href='http://www.cppblog.com/cannon317/archive/2006/03/24/4516.html'>阅读全文</a><img src ="http://www.cppblog.com/cannon317/aggbug/4516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 10:10 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Sybase介绍</title><link>http://www.cppblog.com/cannon317/archive/2006/03/24/4515.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Fri, 24 Mar 2006 02:06:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/24/4515.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4515.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/24/4515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4515.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4515.html</trackback:ping><description><![CDATA[ Sybase介绍和产品概述  <br />Sybase数据库简介 <br />1.1.1 版本 <br />1984年，Mark B. Hiffman和Robert Epstern创建了Sybase公司，并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本，一是UNIX操作系统下运行的版本，二是Novell Netware环境下运行的版本，三是Windows NT环境下运行的版本。对UNIX操作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。 <br /><br />1.1.2 Sybase数据库的特点 <br />（1）它是基于客户/服务器体系结构的数据库  <br />一般的关系数据库都是基于主/从式的模型的。在主/从式的结构中，所有的应用都运行在一台机器上。用户只是通过终端发命令或简单地查看应用运行的结果。而在客户/服务器结构中，应用被分在了多台机器上运行。一台机器是另一个系统的客户，或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。  <br />客户/服务器模型的好处是：  <br /> 1）它支持共享资源且在多台设备间平衡负载  <br />2）允许容纳多个主机的环境，充分利用了企业已有的各种系统  <br />注释：什么是客户/服务器体系结构？ <br />从硬件角度看，客户/服务器体系结构是指将某项任务在两台或多台机器之间进行分配，其中客户机（Client）用来运行提供用户接口和前端处理的应用程序，服务器机（Server）提供客户机使用的各种资源和服务。 <br />从软件角度看，客户/服务器体系结构是把某项应用或软件系统按逻辑功能划分为客户软件部分和服务器软件部分。客户软件部分一般负责数据的表示和应用，处理用户界面，用以接收用户的数据处理请求并将之转换为对服务器的请求，要求服务器为其提供数据的存储和检索服务；服务器端软件负责接收客户端软件发来的请求并提供相应服务客户/服务器融合了大型机的强大功能和中央控制以及PC机的低成本和较好的处理平衡。客户/服务器为任务的集中/局部分布提供了一种新的方法，这种体系能够使用户对数据完整性、管理和安全性进行集中控制。在缓解网络交通和主机负荷以及满足用户需要方面，客户/服务器体系提供了良好的解决方案。 <br />总之，客户/服务器的工作模式是：客户与服务器之间采用网络协议（如TCP/IP、IPX/SPX）进行连接和通讯，由客户端向服务器发出请求，服务器端响应请求，并进行相应服务。 <br /><br />（2） 它是真正开放的数据库  <br />    由于采用了客户/服务器结构，应用被分在了多台机器上运行。更进一步，运行在客户端的应用不必是Sybase公司的产品。对于一般的关系数据库，为了让其它语言编写的应用能够访问数据库，提供了预编译。Sybase数据库，不只是简单地提供了预编译，而且公开了应用程序接口DB-LIB，鼓励第三方编写DB-LIB接口。由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用，因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。  <br /><br />（3） 它是一种高性能的数据库 <br />Sybase真正吸引人的地方还是它的高性能。体现在以下几方面： <br /> 1）可编程数据库  <br />通过提供存储过程，创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的，因此不必为每次调用都进行编译、优化、生成查询规划，因而查询速度要快得多。  <br /> 2）事件驱动的触发器  <br />触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程，从而确保数据库的完整性。  <br /> 3）多线索化  <br />Sybase数据库的体系结构的另一个创新之处就是多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时，系统的性能会大幅度下降。Sybase数据库不让操作系统来管理进程，把与数据库的连接当作自己的一部分来管理。此外，Sybase的数据库引擎还代替操作系统来管理一部分硬件资源，如端口、内存、硬盘，绕过了操作系统这一环节，提高了性能。 <br /><br />1.1.3 访问Sybase服务器的基本过程 <br />1）建立客户与服务器之间的连接，包括网络连接、客户进程与服务器进程之间的连接； <br />2）客户端通过网络发送SQL语句给服务器，用来查询或操作服务器中的数据或数据库对象； <br />3）服务器接收到SQL语句后，对其进行语法分析、优化和编译后执行； <br />4）如果执行的语句产生一个结果集，服务器通过网络把结果集返回给客户； <br />5）客户端对收到的结果作相应的处理。 <br />在客户/服务器体系，有两种数据库引擎结构，即多进程数据库引擎和单进程、多线程引擎结构。多进程结构即多个可执行程序同时运行。每当用户登录到数据库系统时实际上都启动了数据库引擎的一个独立实例。存在起协调作用的进程协调进行之间的通讯以保证当多用户访问相同数据时数据的完整性。多进程数据库引擎一般用在大型机数据库上。单进程多线程数据库引擎在原理上和多进程数据库引擎类似，不同的是多线程数据库引擎自己负责调度各应用程序占用CPU的时间，而不依赖于操作系统。这样，多线程数据库引擎自我保护的能力更强。 <br />    Sybase数据库管理系统采用的是单进程多线程的引擎结构。 <br /><br />1.2 Sybase产品概述 <br />1.2.1 Sybase软件的组成 <br />Sybase软件可划分为三个部分： <br /> 1）进行数据管理与维护的联机关系数据库管理系统Sybase SQL Server； <br /> 2）支持数据库应用系统的建立和开发的一组前端工具软件Sybase SQL Tools； <br /> 3） 把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口软件Open Client/Open Server。 <br />SQL Server是个可编程的数据库管理系统（DBMS），它是整个Sybase产品的核心软件，起着数据管理、高速缓冲区管理、事务管理的作用。 <br />ISQL是与SQL Server进行交互的一种SQL句法分析器。ISQL接收用户发出的SQL语言，将其发送给SQL Server，并将结果以形式化的方式显示在用户的标准输出上。  <br />DWB是数据工作台，是Sybase SQL Toolset的一个主要组成部分，它的作用在于使用户能够设置和管理SQL Server上的数据库，并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。在DWB中能完成ISQL的所有功能，且由于DWB是基于窗口和菜单的，因此操作比ISQL简单，是一种方便实用的数据库管理工具。  <br />APT是Sybase客户软件部分的主要产品之一，也是从事实际应用开发的主要环境。APT工作台是用于建立应用程序的工具集，可以创建从非常简单到非常复杂的应用程序，它主要用于开发基于表格（form）的应用。其用户界面采用窗口和菜单驱动方式，通过一系列的选择完成表格（form）、菜单和处理的开发。 <br />通过Open Client的DB-LIB库，应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB，应用程序可以访问其它的数据库管理系统。 <br /><br />1.2.2 SQL Server的基本特征 <br />SQL Server具有如下一些基本特征： <br /> 1）SQL Server可以放在若干个磁盘设备上，初始安装时所需的磁盘空间至少要17MB。 <br /> 2）SQL Server支持多库结构，也就是说Sybase系统中可以有多个数据库。Sybase可以管理多个数据库。 <br /> 3）SQL Server可以编译和运行T-SQL语句，并可返回客户程序所要求的结果。T-SQL语句是标准SQL的扩充，它除了有数据定义语句、数据操纵语句和数据控制语句之外，主要增加了流程控制语句。 <br /> 4）SQL Server可以管理多个用户并具有较高的事务吞吐量和较低的事务响应时间。客户的应用程序可以存取Server中某一个或几个数据库的数据。 <br /><br />1.2.3 SQL Server的主要内容 <br />Sybase SQL Server是一个多库结构的RDBMS，安装Sybase数据库时自动生成的系统数据库体系结构大致如下：  <br /> 1）主数据库master；  <br /> 2）模型数据库model；  <br /> 3）系统过程数据库sybsystemprocs； <br /> 4）临时数据库tempdb。  <br />也可选择下列数据库：  <br /> 5）安全审核数据库sybsecurity；  <br /> 6）示例数据库pubs2；  <br /> 7）命令语法数据库sybsyntax <br /><br />1.2.3.1 系统数据库 <br />服务器自身所使用的数据库，也可以说是管理服务器和用户数据库的数据库。Sybase在安装时，自动创建了四个系统数据库： <br />master、model、tempdb、sybsystemprocs <br /><br />(1) master数据库 <br />它是管理和控制用户数据库以及维护服务器正常运行的核心数据库，它包含许多系统表和系统过程，从总体上控制用户数据库和SQL Server的操作，构成了SYBASE系统的数据字典，它保存了大量的系统信息，如服务器配置、用户、设备等。 <br />在master数据库中不允许普通用户在其中创建数据库对象，否则会使得master数据库的事务日志很快变满。如果事务日志用尽，就无法使用dump transaction命令释放master数据库中的空间。 <br />master数据库主要记录信息为：  <br /> 1）登录帐号（SQL服务器用户名）；syslogins,sysremolelogins  <br /> 2）正在执行的过程；sysprocesses  <br /> 3）可修改的环境变量；sysconfigures  <br /> 4）系统错误信息；sysmessages  <br /> 5）SQL服务器上每个数据库的信息；sysdatabases  <br /> 6）每个数据库占用的存储空间；sysusages  <br /> 7）系统上安装的磁带及磁带信息；sysdevices  <br /> 8）活动锁信息；syslocks <br /><br />（2）model数据库 <br />它是为创建用户数据库而提供的模板。它提供了新用户数据库的初型。当我们每次用CREATE DATABASE命令时，SQL Server都产生一个model数据库的拷贝，以此作为新用户数据库，然后把它扩展到命令要求的尺寸。如果我们修改了model数据库，那么以后新创建的数据库都将随它而改变。 <br />Model数据库中包含每个用户数据库所要求的系统表。Model数据库可以被修改以便定制新创建的。 <br />下面是几个通常用到的对model数据库的改变：  <br /> 增加用户数据库类型、规则或缺省；  <br /> 可存取SQL Server上所有数据库的用户用sp_adduser增加到model数据库上； <br /> 缺省权限（特别是guest帐号）可在model中建立； <br /> 诸如select into/bulkcopy那样的数据库选项可在model中设置。这些设置反映到所有新创建的数据库中。它们在model中最原始的值是关（off）。  <br />在一般情况下，大多数用户无权修改model数据库，也没被授权读取。因为model中所有内容已拷贝到新数据库中，授权读model没什么意义。 <br /><br />（3）tempdb数据库 <br />它是个临时数据库，为服务器运行与处理提供一个共享的存储区域，如group by和order by的中间结果就存放在这里。Tempdb的空间为服务器中所有数据库的所有用户所共享。 <br />每次重启SQL Server，服务器的一个自动进程都拷贝model数据库到tempdb数据库，并清除tempdb中原来的内容。因此tempdb中的用户表都是临时的。临时表分为两类：可共享的和不可共享的。不可共享的临时表在由create table中将符号#置于表名之前创立；可共享的临时表通过create table中指定表名前缀tempdb..而创立。不可共享的临时表SQL Server自动为其添加数字后缀名，且它只存在于当前会话中。 <br /><br />（4）sybsystemprocs数据库 <br />它是专门用来保存系统命令（存储过程）的数据库，如sp_help、sp_configure、sp_helpdevice等。当任一数据库用户运行以sp_开头的存储过程时，SQL Server按照以下顺序查找：当前数据库、sybsystemprocs数据库、master数据库。 <br /><br />其他可选数据库： <br />（5）安全审核数据库sybsecurity  <br />数据库中保存系统的安全审核信息，它可跟踪记录每个用户的操作情况，为维护系统安全提供控制手段。  <br /><br />（6）示例数据库pubs2  <br />为用户提供一个学习SYBASE的数据库模型。  <br /><br />（7）命令语法数据库sybsyntax  <br />库中保存SYBASE数据库的命令语法及支持的语言库。  <br /><br />1.2.3.2 用户数据库 <br />用户数据库是我们使用Sybase服务器的真正目的。要管理用户数据，必须在Sybase中创建自己的数据库，是指用create database命令创建的数据库。所有新的用户数据库都要在master数据库中创建，也就是说，不能存取master数据库的用户是无权创建新的数据库的。SA可以将创建数据库的权限授予其他用户。新建数据库中存在一些系统表，在sysusers表中至少有一条记录，既该数据库的创建者。数据库创建时，创建者即为该数据库的 owner, 当然创建者可以将这一地位或这一所有权用系统过程授予别的用户。 <br />数据库中的主要内容——数据库对象：表、视图、临时表、索引、主键、外键、缺省值、规则、存储过程、触发器等 <br /><br />2 Sybase基础知识 <br />2.1 Sybase安装 <br />安装建立SQL Server以后，要建立放置数据库、日志和索引的逻辑磁盘设备。数据库、日志和索引的配置应注意以下原则： <br />1）不要把任何用户对象安装在master数据库中。 <br />2）日志应该保存在与数据库分离的磁盘上。 <br />3）可以通过跨越多个设备分配工作优化I/O性能。 <br /><br />2.1.1 Sybase 的初始配置 <br />需要做的内容： <br />1）更改sa的登录口令； <br />2）命名服务器； <br />3）修改文件名（保证Sybase Central正常启动）； <br />4）更改缺省设备； <br />5）增加tempdb的空间。 <br />6）创建用户数据库（创建数据库设备，设备大小以页（2K）为单位） <br /><br />2.2 系统管理的主要内容 <br />1）物理资源的管理 <br />2）用户及其权限管理 <br />3）数据库的备份与恢复 <br />4）SQL Server的配置参数 <br />服务器配置是系统管理员的职责，正确的配置对系统性能有重大的影响。有两个系统表存储配置信息：sysconfigures和syscurconfigs；sysconfigures是永久性的，一旦系统运行,sysconfigures的信息就拷贝到syscurconfigs中。显示配置和改变配置使用系统过程sp_configure。 <br />有两种配置值：动态的和静态的，动态值一旦改变立即生效，静态值要在系统重启动后才起作用。 <br /><br />2.3 系统的启动和关闭  <br />2.3.1 启动SQL Server  <br />应用SQL Server安装程序（sybinit）创建SQL Server或Backup Server, 默认文件名为RUN_SYBASE 和RUN_SYB_BACKUP，放在$SYBASE/INSTALL目录下。Startserver 用来启动SQL Server 或Backup Server: <br />可以通过showserver查看SQL Server 和Backup Server是否已经启动。 <br />SQL Server的启动过程 ：master数据库启动  -- Sybsystemproces数据库启动  --  tempdb--model --  用户数据库 。 <br />启动SQL Server的单用户模式 ：如果要恢复一已被损坏的master数据库，则必须要启动SQL Server的单用户模式。单用户模式下仅允许一个系统管理员向SQL Server注册。  <br />Startserver -f RUN_SYBASE -m  <br /><br />2.3.2 关闭服务器  <br />关闭SQL Server可以在isql中使用T-SQL命令：  <br /> 关闭SQL备服务器 ：shutdown SYB_BACKUP  <br /> 关闭SQL主服务器 ：shutdown [with nowait]  <br /><br />2.4 数据库设备与存储空间管理  <br />初始安装SQL Server时，安装程序和脚本初始化主设备，并建立master、model、tempdb和sybsystemprocs数据库。系统数据库、预定义设备和段按下列默认方式组织： <br />1）master、model、tempdb数据库安装在主设备master上； <br />2）sybsystemprocs数据库安装在安装时选择的设备上（sysprocsdev）； <br />3）为每个数据库创建三个预定义段：system、default和logsegment； <br />4）所有用户创建数据库的默认设备是master设备； <br />5）如果选择安装了审计数据库sybsecurity，它位于自己的设备上。 <br /><br />2.4.1 设备与存储管理考虑的主要问题 <br />（1）恢复问题 <br />     物理磁盘崩溃时，磁盘镜像或在单独的物理设备上保存日志为数据库恢复提供了两种机制。 <br /><br />（2）性能问题 <br />     磁盘读写速度是I/O操作的瓶颈，正确地把数据库对象放置到物理设备上有利于改进性能；把日志和数据库对象置于单独的设备上可以提高系统性能；把表放在一个硬盘上而把索引放在另一个硬盘上，由于把工作分置于两个硬盘驱动器上，所以可以确保物理读写速度加快；磁盘镜像会降低磁盘写的速度。 <br /><br />2.4.2 设备（Device） <br />Sybase SQL Server是一个多库数据库系统。这些数据库包括系统数据库和用户数据库。 而不论是系统数据库还是用户数据库，都建立在数据库设备上。即Sybase将数据库中的所有数据存放在设备上。删除设备前必须删除其上的所有数据库，删除设备的命令是：sp_dropdevice。 <br /><br />2.4.2.1 设备的概念 <br />设备是Sybase预先配置的专门存放数据库的一块连续的磁盘空间，并且它被映射到一操作系统文件或一原始磁盘分区上。即它不是指一个可识别的物理设备，而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。它有两个对应的名称：逻辑名和物理名。NT仅支持设备映射到文件。所有的数据库都创建在数据库设备上。增加一个新的数据库设备时，必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令。 <br />设备与数据库之间的关系：多对多关系。一个数据库可以被创建或扩充到多个设备上，一个设备也可以被用来存放多个数据库。不同的设备操作系统可以对其并行地读写，因此我们可以人为地将一个数据库放置到多个数据库设备上。 <br />设备的分类：Database Device和Dump Device。数据库设备存放数据库和事务日志，转储设备用来存放数据库或日志的备份。 <br /><br />2.4.2.1.1 默认设备 <br />在没有指定设备的情况下，用户创建的任何数据对象自动存放在默认设备上。初始安装后，系统的主设备master被预指定为默认设备，因此要尽快创建自己的默认设备。确保系统主设备安全，指定仅被日志使用的设备不是默认设备。 <br />Sp_diskdefault 设备名[,DefaultOn|DefaultOff]  <br /><br />2.4.2.2 磁盘镜像 <br />磁盘镜像是出于数据库安全性的考虑，当介质失败时，磁盘镜像能提供不间断恢复。磁盘镜像是磁盘上的数据的绝对拷贝。如果某一硬盘事故发生，则该被损坏的拷贝就自动变成离线状态，因而所有的读写都被引向未被损坏的拷贝。 <br />Sybase的磁盘镜像是在设备级上进行的，因此磁盘镜像实质上是设备镜像。当对某一设备进行镜像操作时，Sybase自动创建一个附加设备，由镜像处理程序将原设备上的所有数据拷贝到镜像设备上。 <br />    如果要使某一数据库成为镜像，被分配给该数据库的每一设备都必须成镜像。Master设备在服务器中地位特殊，如果它损坏了，SQL Server将崩溃。因此，如果有可能总是要镜像Master设备（在另一磁盘上）。 <br />     <br />2.4.3 创建与使用段 <br />    段（Segment）是数据库设备上磁盘空间的逻辑组合，它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置，可以将数据库对象分类存放到不同的段上。 <br />    设备与段之间的关系：多对多关系。一个设备上可以创建多个段，一个段也可以覆盖多个设备。 <br />数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上（创建对象时指定），一数据库设备可拥有多达192个段，一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时，SQL SERVER 会自动在该数据库中创建三个段： SYSTEM、LOGSEGMENT 、DEFAULT，这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象  <br /><br />2.4.3.1 使用段的优点 <br />1）控制空间的使用：放在一个段上的数据库对象不会在段外增长； <br />2）提高性能：处于不同磁盘设备上的段可以并行地读写； <br />3）处理大表：利用段，可以将一个大表分段放在独立的物理设备上，如将一个表的文本或图象数据存储另外的一个段上。 <br />两个数据库放在同一设备的不同段上，它们不会相互影响；当数据库增加空间时，增加的空间会自动分配到它的每一个段上； <br /><br />2.5 使用阈值管理 <br />    阈值（Threshold）管理是一种自动监控数据库自由空间的机制，Sybase的阈值管理允许用户为数据库的某个段上的自由空间设置阈值并定义相应的存储过程。当该段上的自由空间低于所置头阈值时，Sybase自动运行相应的存储过程。 <br />    在一个实际运行的数据库中，日志的增长速度一般要高于数据的增长，一旦日志段的自由空间用尽，SQL Server在默认情况下会挂起所有数据操纵事务，客户端应用程序停止执行。 <br />    在每个分离的段上存储其事务日志的数据库均自动设置有最后机会阈值（Last Chance Threshold），其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时，Sybase自动运行名为sp_thresholdaction的存储过程。该过程的名称及参数由系统预定义，内容由用户编写。 <br /><br />2.6 数据库与事务日志  <br />通常用户数据库由系统管理员创建，它的默认属主是dbo。系统过程sp_changeddbowner可改变数据库的属主关系，它必须由数据库管理员在要改变属主关系的数据库中执行。  <br />日志文件是用来记录数据库每一次修改活动的文件。SQL Server中的每一个数据库都有自己的日志文件，即系统表syslogs，也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。在某些情况下，事务日志比数据本身更为重要。 <br />数据库的修改是以事务为单位进行的。一个事务就是一个操作序列，这些操作要么全做，要么全不做，它是一个不可分割的工作单位。任何一个事务具备如下特征: <br />1）执行的原子性（Atomic）； <br />2）保持数据的一致性（Consistency）； <br />3）彼此的隔离性（Isolation）； <br />4）作用的持久性（Durability）； <br />上述事务的四个特征被称为事务的ACID准则。 <br />      事务在运行过程中，SQL Server把事务开始、事务结束以及对数据库的插入、删除和更新等每一个操作作为一个日志记录存放到事务日志中。事务中的更新操作首先在数据库缓冲区（内存）中进行，缓冲区分别有用来记录操作活动的数据页（data page）和日志页（log page）。当运行到commit tran时，日志页首先从缓冲区写到磁盘上，而后数据页从缓冲区写到磁盘上，即遵循“先写日志（write_ahead log）”的原则，这样保证出现故障的情况下，通过日志能够得到最大限度的恢复。恢复必须撤消发生故障时还未提交的事务，已完成的事务若仍有未从缓冲区写到数据库设备中，还要重新运行该事务。 <br /><br />2.7 数据库安全性与用户管理  <br />数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。SQL Server的安全管理是一种基于角色（role）的管理方法，位于不同权限层次（或角色）的用户具有不同的用户权限。 <br />      规定用户权限有三个因素：用户、数据对象和操作，即什么用户在哪些数据对象上可以执行什么操作。 <br />      访问SQL Server中数据的四道屏障： <br />1）操作系统——操作系统登录 <br />2）Sybase服务器——服务器登录 <br />3）Sybase数据库——数据库用户登录 <br />4）数据库对象——对象授权 <br /><br />2.7.1 用户管理概述 <br />在SYBASE数据库中，用户管理是系统管理的一个重要组成部分，但其重要性却往往被人忽视。许多时候，操作数据库的命令不成功常与用户管理有关，而许多误操作命令的发生也可以通过用户管理来避免。因此，弄清用户管理的一些基本概念，对成功进行数据库系统管理有重要的作用。 <br /><br />2.7.1.1 SQL SERVER注册用户和数据库用户  <br />刚接触到这两个概念的时候，可能会有所混淆，但只要了解SYBASE SQL SERVER的结构后，就会清楚。SYBASE SQL SERVER为一进程，进程本身可管理多个数据库。而有些数据库是相互独立的，有些数据库是可以共用的，如tempdb和sysbsystemprocs数据库。SQL SERVER与本身数据库的关系犹如城市与其中楼房的关系，当进入某一城市时需某一合法的身份，但进入城市的人并非每个楼房都可进入，即使允许进入也不能干某些事。SQL SERVER注册用户与数据库用户关系即是如此。当SQL SERVER创建注册用户后，该用户就能合法进SQL SERVER，该注册用户信息会放在master数据库中的 syslogins表中。但只有注册用户成为某一数据库用户，并且对该用户赋予某些权限时，该注册用户才能在限制条件下使用数据库中的表。  <br /><br />2.7.1.2 SQL SERVER数据库用户分类  <br />在SQL SERVER中用户一般分为以下四种： <br />1）sa用户。 <br />2）数据库属主 <br />3）数据库对象属主。 <br />4）数据库普通用户。 <br />sa用户在SQL SERVER中为最高等级用户，SQL SERVER中所有命令都可执行。 <br />数据库属主（dbo）用户可对本数据库中所有对象（如表、视图、存储过程等）进行操作，一般有三种途径创建： <br />a.为系统管理员的用户； <br />b.系统管理员的用户将创建数据库的权限赋予某个SQL SERVER中注册用户，由该用户进行数据库的创建后，自然形成数据库属主； <br />c.系统管理员的用户创建数据库后，将某个SQL SERVER中注册用户变为数据库的属主。 <br />数据库对象属主为创建该对象的用户，在实际的数据库的管理中，一般为数据库属主。 <br />数据库普通用户必须在数据库属主对本数据库中某些对象（如表、视图、进程等）赋予某些权限时，才可对本数据库中某些对象进行允许的操作。 <br />几者的关系是相互包含的：系统管理员的用户在进入某个数据库后，自然成为该数据库的属主，数据库属主可看作为特殊的数据库普通用户。  <br /><br />2.7.2 别名（aliases）与组（group）  <br />别名（aliases）与组（group）在数据库管理中是经常用到的，它能简化数据库用户管理，方便对用户的监控。 <br />所谓别名（aliases)即将SQL SERVER中的注册用户以同一个数据库用户的身份来访问数据库，并具有与该用户相同的权限。也就是说，在数据库中只要建立一个数据库用户，对该数据库用户各种操作定义好，并使SQL SERVER 中已经定义好注册用户成为该数据库用户的别名用户后，即拥有与该用户相同的权限。这样一来，注册用户不必成为数据库的用户即可访问数据库，对所有别名用户的权限的控制只需通过对一个数据库用户的控制达到。如：有一SQL SERVER名为TEST.SER，有一名为EXAMPLE的数据库，其中有一名为OK的表，当系统管理员为TEST.SER创建名为JOHN和KATE的注册用户，EXAMPLE的数据库中有一名为OK_SELECT的数据库用户，该数据库用户有对OK表的查询权限。将JOHN和KATE这两个注册用户变为OK_SELECT的别名后，JOHN和KATE即可进入数据库，并拥有与OK_SELECT的数据库用户相同的权限。 <br />组（group）为数据库用户的集合，即通过对组(group)的权限的控制达到对该组中数据库用户的控制，但也可对该组中数据库某些用户进行格外的权限控制。在上例中的EXAMPLE的数据库中有一OK_INSERT的组，它对OK的表有插入的权限，数据库中有两个用户：MARRY和KITY，当这两个用户加入到OK_INSERT组后，MARRY和KITY就有对OK表的插入的权限。对MARRY和KITY相同的权限操作可通过对OK_SELECT组的控制可得。而使MARRY对OK表有查询权限，仅对MARRY用户赋权即可。而别名则不行。  <br /><br />2.7.3 SYBASE SQL SERVER的角色  <br />一般在管理分工较细的数据库系统中，sa用户往往被分为三种角色：系统管理员角色(SA role)、系统安全员角色(SSO role)和操作员角色（OPER role）。 <br />sa用户往往被锁住，其权力被以上三种角色所瓜分。这三种角色将分别用不同的数据库注册用户承担。 <br />角色是权限的集合。系统预定义角色： 一个真正的数据库管理员应该是整个服务器及其数据库的拥有者，具有管理服务器及其数据库的所有权限。在一个大的系统中，数据库管理员往往不只由一人承担，而是将管理任务进行功能划分，每人提当不同的责任。系统预定义角色就是为适应这种要求而设计的。 <br /> 1）系统管理员（sa_role） <br />sa_role角色拥有执行与数据库具体应用无关的管理权限： <br /> a.安装与更新SQL Server <br /> b.管理服务器的物理存储 <br /> c.配置系统设置参数； <br /> d.创建用户数据库； <br /> e.授予SQL Server用户权限 <br /> ┅┅ <br /> 2）系统安全管理员（sso_role） <br />a.sso_role用来实施安全上敏感的操作，执行有关安全性的任务： <br /> b.建立服务器登录帐户； <br /> c.管理口令； <br /> d.授予除sa_role之外的任何角色； <br /> e.管理审计系统； <br /> ┅┅ <br /> 3）操作员（oper_role） <br />a.oper_role执行全服务器范围的数据库操作，如备份与恢复任意数据库等： <br /> b.转储数据库与日志 <br /> c.转载数据库与日志 <br /> ┅┅ <br /><br />2.8 数据库的备份与恢复  <br />数据库的备份与恢复是SQL Server保障数据安全的一种重要手段，为防止意外，数据库管理员必须定期和经常制作数据库的备份。一旦系统出现故障，数据能够得到及时的恢复。 <br /><br />2.8.1 基本概念 <br />（1）事务处理及其日志 <br />SQL Server使用事务来跟踪所有数据库变化。事务是SQL Server的工作单元。一个事务包含一条或多条作为整体成功或失败的T_SQL语句。每个数据库都有自己的事务日志，即系统表syslogs，事务日志自动记录每个用户发出的每个事务，它影射了每个事务足够多的信息，以确保数据能够被恢复。 <br /><br />（2）检查点（CheckPoint） <br />服务器在检查点发生时更新数据。在服务器发出一个检查点时： <br />1）更新数据。 <br />2）在日志中记录下执行检查点的标记。 <br />检查点可把所有“脏页”写到数据库设备上，“脏页”是指从上一次检查点以来，在内存中修改、但没有在磁盘上修改的页。SQL Server的自动检查点机制保证了被完成的事务修改的数据页有规律地从内存中的缓冲区写到数据库设备上。 <br /><br />2.8.2 数据库备份 <br />若硬件介质出现故障（如磁盘损坏），当且仅当事先已对数据库及其事务日志作了备份，才能恢复数据库。 <br />      注意：绝对不要使用操作系统的拷贝数据库设备，把这样一个拷贝装入SQL Server将导致大量数据库受损。 <br />      备份的类型： <br />1）完全备份 <br />2）增量备份——备份事务处理日志 <br />说明： <br /> a.只有把事务日志放在单独的设备上，才能进行增量备份； <br /> b.备份事务日志会截断日志，因此备份的内容是自上次备份以来的事务处理。 <br /> c.备份之前要启动备份服务器，并最好创建转储设备。 <br />备注：truncate_only与no_log选项用于删除事务处理而不作拷贝。Truncate_only截断日志；在事务处理日志完全满时用no_log，它不为数据库建立检查点。两个选项都会丢掉日志。当使用了这两个参数后，应及时备份整个数据库。no_truncate拷贝日志但不截断日志，在出现介质错误时使用该选项。 <br /><br />2.8.3 数据库的恢复 <br />使用load database加载备份到现有数据库，数据库可以是用于创建转储的数据库，也可以不是。 <br />      由于事务日志在恢复数据库中的特殊作用，应定期备份数据库及其事务日志，而且事务日志的备份要更频繁一些。如：数据库每周备份一次，事务日志每天备份一次。 <br />SQL Server提供了两种不同类型的恢复：一类是系统自动完成的恢复；另一类是人工完成的恢复。  <br /><br />1）系统自动恢复  <br />系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。  <br />自动恢复从master数据库开始，然后是model数据库，再是temporary数据库，最后是用户数据库。在每个数据库上，恢复机制观察事务日志。如果日志写入比数据库更近的数据，则向前恢复数据库。如果事务尚未完成，则要回退它们。  <br /><br />2）介质故障的恢复  <br />一旦介质发生故障，只有通过以前备份的数据库和事务日志才能恢复数据库，为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令，而恢复数据库和事务日志我们使用load命令。  <br />与创建数据库需要一个数据库设备类似，我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。  <br />在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库，但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。  <br />3）恢复用户数据库  <br />要恢复已被破坏的数据库，可以按如下步骤进行：  <br />a.用带no_truncate选项的dump命令卸出用户数据库事务日志。  <br />b.用和被破坏的数据库的同样的结构建立一个新的数据库。  <br />c.用load命令重新装入数据库和事务日志。  <br /><br />2.9 数据库与T-SQL语言  <br />关系数据库以关系模型为基础，它由以下三部分组成： <br />1）数据结构——模型所操作的对象、类型的集合 <br />2）完整性规则——保证数据有效、正确的约束条件 <br />3）数据操作——对模型对象所允许执行的操作方式 <br />    关系（Relation）是一个由行和列组成的二维表格，表中的每一行是一条记录（Record），每一列是记录的一个字段（Field）。表中的每一条记录必须是互斥的，字段的值必须具有原子性。 <br /><br />2.9.1 SQL语言概述 <br />      SQL（结构化查询语言）是关系数据库语言的一种国际标准，它是一种非过程化的语言。通过编写SQL，我们可以实现对关系数据库的全部操作。 <br />1）数据定义语言（DDL）——建立和管理数据库对象 <br />2）数据操纵语言（DML）——用来查询与更新数据 <br />3）数据控制语言（DCL）——控制数据的安全性 <br />      T-SQL语言是Sybase对SQL92标准的一种扩展，主要在它的基础上增加了三个方面的功能：自己的数据类型/特有的SQL函数/流程控制功能。 <br />      T-SQL中的标识符使用说明：标识符由1-30个字符或数字构成，但首字符必须为字母。临时表的表名以#开头，长度不能超过13个字符。<br /><img src ="http://www.cppblog.com/cannon317/aggbug/4515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-24 10:06 <a href="http://www.cppblog.com/cannon317/archive/2006/03/24/4515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle介绍</title><link>http://www.cppblog.com/cannon317/archive/2006/03/23/4501.html</link><dc:creator>.....</dc:creator><author>.....</author><pubDate>Thu, 23 Mar 2006 09:39:00 GMT</pubDate><guid>http://www.cppblog.com/cannon317/archive/2006/03/23/4501.html</guid><wfw:comment>http://www.cppblog.com/cannon317/comments/4501.html</wfw:comment><comments>http://www.cppblog.com/cannon317/archive/2006/03/23/4501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cannon317/comments/commentRss/4501.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cannon317/services/trackbacks/4501.html</trackback:ping><description><![CDATA[
		<strong>ORACLE介绍<br /><br /></strong>第一章  ORACLE介绍<br />由于ORACLE数据库产品是当前数据库技术的典型代表，她的产品除了数据库系统外，还有应用系统、开发工具等。刚接触Oracle的人员都有这样的感觉：Oracle的产品太多，每个产品内容精深，不知道从哪儿开始学才好。为了用少量时间更好地理解和使用oracle 数据库系统，有必要对oracle的一些基本术语及概念进行了解，下面给出一些在管理中经常用到的概念和术语，供初学者快速了解Oracle数据库系统提供方便。<br /><br />§1.1  ORACLE7和ORACLE8<br />ORACLE7是一种完全的关系数据库系统，它不支持面向对象。<br />ORACLE8  则是一个引入面向对象的数据库系统，它既非纯的面向对象的数据库也非纯的关系数据库，它是两者的结合，因此叫做“对象关系数据库”。<br /><br />§1.2  ORACLE8 特点<br />    ORACLE8  于 1997年6月正式发布，它包括了几乎所有的数据库技术，因此被认为是未来企业级主选数据库之一。主要有以下特点：<br /><br />1.对象/关系模型<br /><br />    ORACLE8对于对象模型采取较为现实和谨慎的态度，使用了对象/关系模型，即在完全支持传统关系模型的基础上，为对象机制提供了有限的支持。ORACLE8不仅能够处理传统的表结构信息，而且能够管理由C++，Smalltalk 以及其它开发工具生成的多媒体数据类型，如文本，视频，图形，空间对向等。这种做法允许现有软件开发产品与工具软件及ORACLE8应用软件共存，保护了客户的投资。<br /><br />2.数据库服务器系统的动态可伸缩性<br /><br />      ORACLE8引入了连接存储池(connection polling)和多路复用（multiplexing）机制，提供了对大型对象的支持。当需要支持一些特殊数据类型时，用户可以创建软件插件（catridge ）来实现。ORACLE8采用了高级网络技术，提高共享池和连接管理器来提高系统的可括性，容量可从几 GB 到 几百 TB 字节，可允许10万用户同时并行访问，ORACLE 的数据库中每个表可以容纳 1000列，能满足目前数据库及数据仓库应用的需要。<br />ORACLE 公司称，ORACLE8可以支持达 512PB的数据量。但目前还未有哪一家用户的数据库的数据量达到这个数量。下面是几种常用数据量的等价关系：<br />1MB = 1024 KB<br />1GB = 1Gigabyte Byte = 1024 MB <br />1TB = 1TeraByte = 1024 GB = 1024*1024MB<br />1PB = 1PeraByte = 1024 TB = 1024 * 1024 * 1024 MB<br />1EB = 1ExaByte = 1024 PB = 1024 * 1024 *1024 *1024 MB<br /><br /><br />3.系统的可用性和易用性<br /><br />    ORACLE8提供了灵活多样的数据分区功能，一个分区可以是一个大型表，也可以是索引易于管理的小块，可以根据数据的取值分区。有效地提高了系统操作能力及数据可用性 ，减少I/O 瓶颈。ORACLE8还对并行处理进行了改进，在位图索引，查询，排序，连接和一般索引扫描等操作引入并行处理，提高了单个查询的并行度。ORACLE8通过并行服务器（Parallel Server Option ）来提高系统的可用性。<br /><br />4.系统的可管理性和数据安全功能<br /><br />     ORACLE8提供了自动备份和恢复功能，改进了对大规模和更加细化的分布式操作系统的支持，如加强了SQL 操作复制的并行性。为了帮助客户有效地管理整个数据库和应用系统，ORACLE还提供了企业管理系统（ORACLE Enterprise Manager），数据库管理员可以从一个集中控制台拖放式图形用户界面管理ORACLE的系统环境。<br />ORACLE8通过安全服务器中提供的安全服务，加强了ORACLE Web Server 中原有的用户验证和用户管理。<br /><br />5.面向网络计算<br /><br />     ORACLE8i在 与JAVA VM 及 CORBA ORB 集成后，将成为NCA(网络计算机体结构)的核心部件。NCA是ORACLE 关于分布式对象与网络计算机的战略规划。ORACLE8 对NCA产生了巨大影响，简化了应用软件的化分，推动了瘦型客户机及Web 应用软件的发展。在ORACLE8 FOR NT 中还提共了新产品Web 发布助理（Web Publishing Assistant ORACLE），提供了一种在WORD WIDE WEB 上发布数据库信息的简便，有效的方法。<br /><br />6.对多平台的支持与开放性<br /><br />    网络结构往往含有多个平台，ORACLE8 可以运行于目前所有主流平台上，如 <br />SUN Solarise， Sequent Dynix/PTX，Intel Nt，HP_UX，DEC_UNIX，IBM AIX 和 SP等。ORACLE8 的异构服务为同其它数据源以及使用SQL 和PL/SQL的服务进行通讯提供了必要的基础设施。ORACLE8 继续至力于对开放标准规范SQL3，JDBC，JSQL和CORBA 的支持。<br /><br />§1.3  ORACLE8和ORACLE8i<br />    当 ORACLE 8 第一次发行时，它提供了优于 ORACLE 7 的性能和选件，但是它基本是ORACLE7 的引擎。 在ORACLE8 的后来版本中不断作过多次的完善，出现 ORACLE 8.0.X 版本。然而1998年初发行(推出)的 ORACLE 8I 可以被看作是 ORACLE 8 的功能扩展集。<br />    由于ORACLE 8I 比 ORACLE 8 提供了更多的功能，它除了共同的RDBMS功能外，还提供了许多与INTERNET 有关的能力，最重要的是它将 JAVA 集成为一种内部的数据语言，这种语言可充当或替代品，而且它还集成了一个WEB服务器和开发平台(Web DB )。对ORACLE 8.0.x 来说只到 ORACLE 8.0.5 版本就终止了，接着就推出了 ORACLE8i 8.1.5版本，ORACLE8i 8.1.5版本也经常被称为Release 1；而ORACLE8i 8.1.6版本被称为Release 2；ORACLE8i 8.1.7版本被称为Release 3。<br />§1.4  ORACLE8i和ORACLE9i<br />在正式进入21世纪前的2000年年底，ORACLE公司正式发布了ORACLE 9i 新数据库系统。原先预料可能会有ORACLE 8i V8.1.8等版本，但ORACLE8i版本只推出8.1.7就被Oracle9i所代替。ORACLE公司和其它的软件公司一样，为了抢占市场，不再愿意在原来版本上再作更多的改进和优化工作，而是直接的推出新产品这样一种策略。ORACLE9i 与ORACLE8i 比较，ORACLE 9i 主要包括下面三大部分：<br /><br />l        数据库核心（Database ）<br />l        应用服务器（Application Server ）<br />l        开发工具集（Developer Suite  ）<br /><br />Oracle9i 主要焦点（Oracle9i Focus ）：<br />l        电子商务智能化（ E-Business Intelligence ）<br />l        应用开发（ Applications Development ）<br />l        应用主机（ Applications Hosting ）<br />l        门户与内容（ Portals and Content ）<br />l        电子商务连续性（ E-Business Continuity ）<br /><br />Oracle9i 为了结合 Internet 市场设计。Oracle9i适合并胜任市场上所有的苛刻要求。<br />l        Oracle9I实时应用（ Oracle9i Real Application）<br />l        Oracle9I高可用性（Oracle9i High Availability）<br />l        Oracle9I 系统管理（ Oracle9i Systems Management ）<br />l        Oracle9I 安全（ Oracle9i Security）<br /><br />Oracle9i 数据库服务（Oracle9i Database Services）：<br />l        商业智能与数据仓库（ Business Intelligence and Data Warehousing）<br />l        Oracle9I动态服务（ Oracle9i Dynamic Services）<br />l        Oracle9I JAVA 和XML(Oracle9i Java and XML)<br /><br />l        电子商务集成( E-Business Integration )<br /><br /><br />§1.5  ORACLE OAS和ORACLE iAS<br />目前的ORACLE公司的iAS 的早期版本是 ORACLE Web Server ，后来第4版改名为ORACLE  APPLICATION  SERVER ，2000年底前又改名为 ORACLE9i Internet Application Server(ORACLE iAS)。目前的iAS可以与ORACLE8i 或ORACLE9i 结合在一起的综合开发工具。为创建和部署任何基于网络的应用程序提供了一个完整的Internet 平台，iAS包括了门户、事务应用、商业智能工具、无线上网应用和企业集成等。<br />Oracle Internet Application Server  提供了行业中最全面的中间层产品，包括通信、表示、商业逻辑、数据缓存和系统服务等。<br /><br />1.通信服务：<br /><br />基于Apache 的ORACLE HTTP Server，主要包括下面模块：<br />mod_jserv:将对servlet 的HTTP请求分发到Oracle iAS 的Servlet 引擎。<br />Mod_perl:将perl 程序的HTTP 请求分发到Apache Web Server 的Perl Interpreter。<br />Mod_ssl:提供基于SSL证书的公共密钥，它被用来在客户端和Apache Server 之间进行加密通信。<br />Mod_plsql:Oracle 专用模块，用来将HTTP请求传到数据库内的PL/SQL和Java存储过程。<br /><br />2. 表示服务<br /><br />提供下面方法进行内容表示：<br />Oracle portal（Oracle 门户）<br />Apache Jserver （Apache Java 服务器）<br />Perl Interpreter( Perl 解释程序 )<br />Oracle JavaServer Pager(JSP)<br />Oracle PL/SQL Server Pages(PSP)<br /><br />3.商业逻辑服务<br /><br />可提供以下服务组件：<br /><br />Oracle8i JVM( Java 虚拟机)<br />Oracle8i PL/SQL<br />Java 商业组件(BC4J)<br />Form Service<br />Report Service<br />Discoverer Viewer<br /><br />4.数据管理服务<br /><br />Oracle 8i cache<br /><br />5.系统服务<br /><br />Oracle Enterprise Manager(Oracle 企业管理器)<br />Oracle Advanced Security (Oracle 高级安全性)<br />Developer's KITS(开发工具),包括：<br /><br />l        Oracle database client developer's Kit<br />l        Oracle XML developer's Kit(XDK)<br />l        Oracle LDAP developer's Kit<br /><br />§1.6  ORACLE  Application  R11i<br />Oracle 公司除了提供完美的数据库系统外，也提供完整的解决方案的套件，即全套应用系统，通常称作 Oracle  Application R11i。它是一全面集成的电子商务套件。它包括：<br /><br />1．数据仓库平台<br />l        Oracle 8i 企业级数据库服务器<br />l        Oracle Warehouse Builder(数据仓库构造器)<br /><br />2.商业智能工具集<br />l        Oracle Discoverer<br />l        Oracle Express产品系列<br />l        Oracle darwin<br /><br />3.Oracle 金融服务应用<br />l        绩效管理<br />l        客户关系管理<br />l        风险管理<br /><br />4.ORACLE财务系统<br />基于Internet 的财务管理系统包括下面模块：<br />l        商业智能管理<br />l        预算管理<br />l        合并管理<br />l        现金预测管理<br />l        员工费用管理<br />l        Oracle 财务分析系统<br />l        Oracle 项目管理系统<br />l        工作流程管理<br />l        预警系统<br /><br /><br /><br />§1.7  ORACLE 服务器组件<br />l        过程组件<br /><br />可以用于建立过程、触发器（封装），这些代码可以存放在数据库服务器中。Oracle，Sybase，Informix，Sql  Server 都把这些所谓存储过程存放在数据库内，而DB2则把这些所谓存储过程存放在服务器的另外一个专门分区内。<br /><br />l        分布选件<br /><br />    可以支持多台服务器（在不同的地方）间的通信，即每个服务器上均有Oracle系统，而分布选件就是把这些不同的地方的数据库系统管理起来的部件。<br /><br />l        并行选件<br /><br />对一台具有多个CPU的机器能进行并行查询、充分利用计算机的性能。<br /><br />l        并行服务器<br /><br />对于多台机器（有自己的处理器）共同访问同一个硬盘这样的结构进行管理，为用户提供很高的容错性。当某台机器出现故障时，可以安排用户使用（登录）到另一台机器上。当两台都出现故障时，则整个系统都不能使用。<br /><br />l        图象选件<br /><br />    可以存储、管理和提供实时的，全屏幕的图象和高质量的声音给网络上的用户。<br /><br />l        企业管理器<br /><br />Oracle 提供一个帮助用户管理系统，应用网络和数据库工具“Oracle企业管理器（OEM）”.<br /><br />l        空间数据选件（Spatial data option）<br /><br />空间数据选件是一种存储和检索数据的新方法，在查询中系统根据所关心的数据进行组织，因此，数据库性能的主要决定因素是所感兴趣的数据库集的大小。<br /><br />l        上下文选件<br /><br />    是一种文本管理方案，它把非结构化的文本数据管理如同结构化一样。可以建立和开展基于文本的带有类似SQL接口的应用。这种方法只有  ORACLE8 及以后版本能支持。<br /><br />l        Web服务器<br /><br />可以通过WWW来访问Oracle数据库中的数据。<br /><br />l        OLAP选件<br /><br />联机分析处理，Oracle提供Oracle Express作为联机分析处理。<br /><br />§1.8  目前ORACLE8i 的主要产品<br />(Oracle9i产品在最后一天介绍)<br /><br />l        SQL*Plus<br /><br />      Oracle的SQL*Plus是标准SQL的一个超集，它除提供符合SQL标准的语句外，还提供一些Oracle特定的外加语句，set，column，Ttitle等。<br /><br />l        Oralce Forms<br /><br />      Oracle Forms的前身是SQL*Forms。SQL*Forms和Oracle Forms都是为用户提供输入、查询、修改等功能的开发工具，前者是在字符终端上运行。后者是在图形终端上运行。Oracle Forms除了在许多触发器及功能键继承前者外，大部分的设计界面都发生了变化。<br />      SQL*Forms不含Menu功能，Menu专门为一个产品叫SQL*Menu；而Oracle Forms 把Menu，Library 等融为一体，使功能更强大。<br /><br />l        Oracle Reports<br /><br />      Oracle Reports的先前版本是SQL*Reportwriter，自从Oracle7以后，将其发展为能支持Windows界面的开发工具，在最新版本中，它可以访问其他主要数据库，如Sybase， Informix， DB2 ，Microsoft SQL Server等。<br /><br />l        Oracle Book<br /><br />   Oracle Book提供一个共享Oracle产品文本的联机文档生成与浏览工具。<br /><br />l        Oracle Loader<br /><br />    Oracle Loader早期就提供一个ODL（Oracle data Loader）数据加载工具。该工具可以把多种格式的文本数据加载到Oracle表中。后来的版本更名为SQL*Loader，现在叫Oracle Loader，目前版本可以把多媒体数据加载到数据库系统中。<br /><br />l        Developer/2000 和 Oracle Developer<br /><br />是一个综合产品的总称，它包括:<br /><br />l        Oracle Reports<br />l        Oracle Forms<br />l        Oracle Graphics<br />l        Procedure Builder<br /><br /><br />四个部件，它的先前名称叫CDE产品（即协同开发环境），现在Oracle的开发工具叫Oracle Developer。<br /><br />l        ORACLE Designer(Designer /2000)<br /><br />     ORACLE Designer 的前身是 Designer/2000，而Designer/2000的前身是SQL*Case，它是一个数据库Case工具（计算机辅助设计工具），它目前版本包含：<br />                   Business  Process  Reengineering<br />                   Modellers<br />                   Generators<br /><br />l        Personal Oracle<br /><br />95年后，Oracle 提供了可以在Dos，Windows3.x，Windows95，Windows NT 等不同的单机版，它的基本使用方法完全同工作组版和企业版一样。<br /><br />l        SQL*Net和Net 8<br /><br />     SQL*Net和Net 8都提供在网络下的访问Oracle数据库的产品。SQL*Net 分为SQL*Net V1 和SQL*Net V2。SQL*Net V1主要支持字符终端方式，如Dos，终端服务器方式；SQL*Net V2.x主要支持图形终端与Oracle的连接，而Net 8则是Oracle 8网络产品SQL*Net V2.x的升级版。<br /><br />l        Oracle  Jdeveloper<br /><br />Oracle 最新产品，它是一个具有高效生产力的3GL编程工具，它可以使编程人员在Java中嵌入SQL语句，编写能访问数据库的Java程序。<br /><br />l        Oracle Express<br /><br />可以在线分析处理的工具，利用它可以方便地进行各种数据分析。<br /><br />l        PRO*C， PRO*COBOL， PRO*FORTRAN等<br /><br />可以提供与3GL接口的工具，利用它可以在高级语言中嵌入 SQL语句，从而达到访问Oracle数据库的目的。<br /><br />l        财务软件( ORACLE Financials )<br /><br />ORACLE Financials 是 ORACLE APPLICATION 中用于财务管理的应用程序模块。包括财务会计，管理会计。<br /><br />l        供应链与制造应用软件<br /><br />包括：<br />l        销售定单管理<br />l        供应商管理<br />l        新产品工程设计管理<br />l        物料管理<br />l        成本管理<br />l        质量管理<img src ="http://www.cppblog.com/cannon317/aggbug/4501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cannon317/" target="_blank">.....</a> 2006-03-23 17:39 <a href="http://www.cppblog.com/cannon317/archive/2006/03/23/4501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>