Jcat
宠辱不惊,闲看庭前花开花落~~
posts - 173,comments - 67,trackbacks - 0
<引言>
    随着社会的发展,在现代信息系统的开发中,需要存储的已不仅仅是简单的文字信息,同时还包括一些图片和音像资料或者是超长的文本。比如开发一套旅游信息系统,每一个景点都有丰富的图片、音像资料和大量的文字介绍。这就要求后台数据库要有存储这些数据的能力。
    ORACLE自Oracle8i起通过提供LOB字段实现了该功能。

<LOB分类>
    LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据)。它又分为两种类型:内部LOB和外部LOB。
    1.内部LOB将数据以字节流的形式存储在数据库的内部。因而,内部LOB的许多操作都可以参与事务,也可以像处理普通数据一样对其进行备份和恢复操作。Oracle支持三种类型的内部LOB:
    1)BLOB(二进制数据)
    2)CLOB(单字节字符数据)
    3)NCLOB(多字节国家字符数据)。
    其中CLOB和NCLOB类型适用于存储超长的文本数据,BLOB字段适用于存储大量的二进制数据,如图像、视频、音频等。

    2.目前只支持一种外部LOB类型,即BFILE类型。在数据库内,该类型仅存储数据在操作系统中的位置信息,而数据的实体以外部文件的形式存在于操作系统的文件系统中。因而,该类型所表示的数据是只读的,不参与事务。
    该类型可帮助用户管理大量的由外部程序访问的文件。


<LOB存储方式>
    LOB由两部分组成:数据(值)和指向数据的指针(定位器)。尽管值与表自身一起存储,但是一个LOB列并不包含值,仅有它的定位指针。更进一步,为了使用大对象,程序必须声明定位器类型的本地变量。

    当内部LOB被创建时,定位器被存放在列中,值被存放在LOB段中,LOB段是在数据库内部表的一部分。
    当BFILE被创建时,定位器如同平常一样存储在列中,但是它的值被存储在数据库之外的操作系统文件中。
posted on 2008-03-27 11:12 Jcat 阅读(268) 评论(0)  编辑  收藏 所属分类: Database

只有注册用户登录后才能发表评论。


网站导航: