oracle数据库处理多媒体信息
引用 uff1a
长期以来,在计算机多媒体信息以文件的形式存储,由操作系统管理,但随着计算机网络、分布式计算的发展,多媒体信息访问的高效管理,查询已经成为一个迫切的需求。但关系数据库具有强大的数据管理能力。两方面结合,多媒体数据库应运而生。本文将工具的方式,总结特点和Oracle处理多媒体信息的一些基本原则。
但是我们不能遗憾地看到现有的数据库对某些多媒体数据的操作能力有限,多媒体数据库的性能调优面临着新的问题,多媒体数据库仍然具有广泛的应用价值和前景。
当然,这篇文章是不可能的,Oracle多媒体信息处理的具体内容,请参考oracle相关手册。
一个。应用前景
随着计算机的交配能力的增加,多媒体已经集成到计算机,如果多媒体的缺乏,各种彩色图像、音频、视频的缺乏,很难想象现在的电脑将进入千家万户。长期以来,在计算机多媒体信息存储以文件的形式,由操作系统管理,但随着计算机网络的发展,分布式计算,这个简单的文件管理已经无法有效管理、访问多媒体信息查询,已经成为一个迫切的需求。但关系数据库具有强大的数据管理能力。这两个方面是紧密结合的,和多媒体数据库是在组织RIC的时刻。可以预见的是,多媒体数据库的应用越来越广泛的多媒体处理的需求增强。
作为一个著名的数据库厂商,Oracle在多媒体信息处理的前面。这篇文章会给工具的方式,总结特点和Oracle处理多媒体信息的一些基本原则,希望对读者有启发。当然,也有在关系数据库中的许多人,虽然开发工具和编程接口的声明是不同的,但它们是相似的数据类型和处理方法。所以我们跳过这里。
两。多媒体数据类型介绍
在关系数据库中,大的物体,如多媒体信息,通过LOB类型的字段访问。在Oracle8i,这个标准是满足多媒体大对象处理的需求正式推出。在Oracle数据库中,LOB数据如下:
中国
LOB类型描述
CLOB:类似于ORACLE7的长型,CLOB存储单字节数据
Nclob:NCLOB店固定宽的多字节字符集数据
斑点:类似于ORACLE7 LONG RAW类型。非结构化二进制数据可以stored.oracle8没有解释这些数据,但只有存储和检索它在其原来的形式。
BFILE:已允许访问一个只读的大型二进制文件的形式存储在Oracle数据库中,不同于其他三种类型LOB数据类型、BFILE数据存储在一个文件中,而不是由Oracle维护。
特点:
1。在Oracle7,相应的长或长原场有2G的限制,而工作是制约4G。
2.lob可以使用调用接口OCI或PL / SQL使用dbms_lob包操作。
3.lob不喜欢长型,具有在每个表中只有一个字段的最大极限,它可以有多个,并可以利用触发器的特点。
4.lob数据处理可以获得同样的其他数据。
5.lob存储是非常特殊的。它不与其他数据存储在同一数据库表中,但可以单独存储在不同的表空间中,从定位器到实际的数据。
{分页}
三。多媒体大对象访问例程示例
按照以下步骤进行:
(1)首先建立数据库表:
创建表lobdemo(关键数字键,clob_col CLOB,blob_col blob,bifle_col BFILE);
数据库的第一列存储一个代码,而其他三列存储高格式数据。
(2)创建表时,将一段数据插入表中。
插入lobdemo(关键,clob_col,blob_col,bfile_col)值(10,'abcdefghijklmnopqrsatuvwxyzasdffasfsdafsdafsdfadfsadfsdfsdfdsdsffds ',empty_blob(),空);
在这组数据中,第二列我们插入一个字符串,它是格式化为CLOB类型数据存储;二柱采用empty_blob()函数来初始化一个定位器,因为你可以得到如选择位置、更新等操作;第三空值,而且没有得到一个定位器,它与empty_blob相关()函数的区别。
(3)查询插入表中的数据。
选择从哪里blob_col boldemo关键= 20;
注意:这个SQL语句的返回结果是一个定位器(定位器),而不是实际数据本身。
(4)修改数据库中的数据
更新lobdemo集blob_col = 'aedevbagddgagdfdfasasdfdsa'where关键= 10;
从这些SQL语句中,我们可以看到与其他类型的数据处理类似的数据处理的基本方法:
(1)对BFILE文件的处理:
BFILE型是特殊的,不同于CLOB和BLOB。实际数据文件存储在外部操作系统:有两个特点:1、没有交易的控制,2.bfile是只读的,不能被dbms_lob或oracl8 OCI修改。让我们看看BFILE步骤看:
为了访问外部文件,服务器需要知道操作系统中文件的位置:
创建目录Utils /家/工具;
授权代表目录的逻辑名称,和 /家/ utils'is实际目录。
插入一行与bfilename功能数据:
插入lobdemo(关键,bfile_col)值(1,biflename('utils ','file1 '));
该bfilename函数的第一个参数是逻辑的目录名,第二个参数是文件的名字。注:插在这条线的线是LOB定位器指向 / / / 1家工具,不是文件本身。
(2)对LOB数据操纵dbms_lob包的使用
SQL只能操纵整个LOB没有操纵数据表,dbms_lob包发布这一限制,这在LOB数据提供的数据切片操作。此包包含十几个例程,读者可以参考Oracle的PL / SQL手册,本文只介绍了三个功能:(打开文件)一个文件的操作系统(LoadFromFile);常规用来填充一个LOB字段目标操作系统的文件,这个功能很有用,因为有很多SQL语句中的LOB的内容是无法描述的,如二进制音频文件,这个功能可以对文件的内容数据库;计算文件的长度的长度的函数。看看这三的使用下列存储过程中的函数:
创建或替换程序FileExec(
p_directory在空,
p_filename在空
)为
v_filelocator BFILE;
v_cloblocator CLOB;
开始
-初始化更新的定位器
选择clob_col
为v_cloblocator
从lobdemo
键= 1
更新;
-初始化为读文件BFILE定位器
下一个Oracle教程,在V { 1 }下一页{ 2 }看到的是Oracle数据库处理多媒体信息。_filelocator:= bfileopen(p_derectory,p_filename);
随着dbms_lob文件包打开操作系统文件
dbms_lob.fileopen(v_filelocator,dbms_lob。file_readonly);
-将整个操作系统文件加载到
dbms_lob.loadfromfile(v_cloblocator,v_filelocator,dbms_lob.getlength(v_filelocator));
最后fileexec;
介绍Oracle interMedia工具四。
中间是一个集成的组件推出Oracle扩大Oracle8i的多媒体功能。它使Oracle管理图像、音频、视频、文字等信息更方便。甲骨文已经提高了可靠性和在互联网领域的多媒体数据管理的有效性,电子商务等领域。它包括三个部分:图像、音频、视频,使用该对象类型,类似于java或C++,描述图像,视频,音频,数据类型,在三种对象类型Oracle在很多方面是操纵数据的定义,如图像数据类型,可以方便的进行图形格式转换、压缩、复制、任意图形的一部分拦截,这是一种常见的LOB数据类型不可比拟的,常见的SQL语句不能执行这些操作。
互联网的发展更为突出的中间在Web应用价值的应用,现有的大多数图像,音频,视频和其他文件系统中的多媒体信息,具有操作简单、速度快的优点,缺点是复杂的管理,特别是通过对大量图像的管理目录数目限制。如果图像保存在数据库中,它是由数据库统一管理维护,这样可以简化。
中间定义多媒体对象的几种类型,如ordaudio,为音频对象类型的数据提供了一些控制功能。现在让我们来看一个例子。在这种情况下,我们定义一个歌曲对象,创建一个歌曲对象表,并插入和查询表。
(1)定义歌曲对象:
创造型songobject为对象(
songid VARCHAR2(20),宋数
标题VARCHAR2(4000),标题
艺术家VARCHAR2(4000),是一位作家
VARCHAR2(4000),奖的奖
VARCHAR2(20)、时间-日期和时间
txtinroduction CLOB,-简介
audiosource ordsys.ordaudio音频数据,这是由ordaudio对象定义。
);
(2)建立表命名songtable:
创建表songstable(独特的songobject(songid),songid不为空);
(3)插入一行数据到songstable表
插入songstable值('00 ',
在压力下,
女王,
没有奖项,
80-90,
243,
无效的,
empty_clob(),
ORDSYS.ORDAudio(null,
ORDSYS.ORDSource(empty_blob(),零,零,零,零,零),
零,零,零,零,empty_clob(),空,空,空,空));
注:,empty_clob,empty_blob()函数只初始化一个LOB数据定位不存储实际数据。
(4)一行数据加载到songstable表:
声明
AudioObj ORDSYS.ORDAUDIO;
CTX RAW(4000):= null;
开始
让audiosource场定位器
选择s.audiosource为audioobj
从songstable S
在s.songid = '00 '
更新;
以下四种功能的ordaudio对象成员,看看具体功能的Oracle开发手册
audioobj.setsource(文件,'auddir ','underpressure。金);设置文件
AudioObj.setMimeType('audio /基本');——集类型
AudioObj.import(CTX);加载CTX
audioobj.setproperties(CTX);--设置属性
-将歌曲对象加载到数据库表中
更新songstable S
集s.audiosource = audioobj
在s.songid = '00 ';
承诺;
结束;
{分页}
五。多媒体数据库的技术难点与展望
可以说,多媒体数据的有效管理是IT技术发展的必然要求,随着多媒体信息需求的进一步加强,多媒体数据库技术将有更大的发展,我们可以看到从Oracle数据库,在数据类型、数据管理和管理工具的发展,现在主流关系数据库管理多媒体信息的能力是很强的。但是我们不能遗憾的看到,在一些多媒体数据操作的能力,如多媒体信息的查询,仍然是有限的。
一个问题是多媒体数据的特殊操作的实现,因为LOB数据是二进制大对象,它不能根据通用的数据操作简单计算。例如,检查音频数据表中类似于一首歌。所以这个相似的操作,它没有了传统运营商的支持,它会涉及到非常复杂的算法。幸运的是,它具有匹配和中间的多媒体数据,查询功能为例,从纹理(纹理),形状,颜色,在颜色和图像查询查询类似的其他元素,你可以设置每因子的权重,测试的结果差强人意,但查询的音频、视频和其他类型的数据还是不理想。
此外,如何描述多媒体信息,如何描述多媒体信息基于你的搜索,也是一个难点问题,如任务查询:查看颜色比较暗和森林景观的照片,这是根据描述性信息查询的例子。这将需要某种形式的行业标准和技术实现总之,如何实现和优化多媒体数据的特殊操作,如查询,将在今后的研究和多媒体数据库应用的一个热点问题。
另一个重要问题是多媒体数据库的性能调优,原有的优化方法如索引优化等仍然适用,但现在遇到了新的问题:多媒体数据量巨大,因此处理多媒体信息(特别是检索)开销巨大,因此如何降低成本,缩短运行时间。这是一个重要的话题。
上一页
{ 1 } { 2 }的最后一页