主頁(yè) > 知識(shí)庫(kù) > Oracle數(shù)據(jù)庫(kù)處理多媒體信息

Oracle數(shù)據(jù)庫(kù)處理多媒體信息

熱門標(biāo)簽:地圖標(biāo)注原件 南通防封外呼系統(tǒng)運(yùn)營(yíng)商 語(yǔ)音電話機(jī)器人營(yíng)銷方案 語(yǔ)音電話機(jī)器人缺點(diǎn) 淮安自動(dòng)外呼系統(tǒng)開(kāi)發(fā) 廣州市400電話辦理 修改高德地圖標(biāo)注 百變地圖標(biāo)注 宜賓外呼系統(tǒng)廠家
正在看的ORACLE教程是:Oracle數(shù)據(jù)庫(kù)處理多媒體信息。

引文:

  長(zhǎng)期以來(lái),多媒體信息在計(jì)算機(jī)中都是以文件形式存放,由操作系統(tǒng)管理的,但是隨著計(jì)算機(jī)網(wǎng)絡(luò),分布式計(jì)算的發(fā)展,對(duì)多媒體信息進(jìn)行高效的管理,存取,查詢已經(jīng)成了一種迫切需求。而關(guān)系數(shù)據(jù)庫(kù)卻有著強(qiáng)大的數(shù)據(jù)管理能力。兩方面結(jié)合,多媒體數(shù)據(jù)庫(kù)由此應(yīng)運(yùn)而生。本文將就Oracle對(duì)多媒體信息進(jìn)行處理的方式,工具,特色以及一些基本原理做一個(gè)綜述。

  但是我們不能不遺憾的看到,現(xiàn)有數(shù)據(jù)庫(kù)對(duì)一些多媒體數(shù)據(jù)所特有的操作能力還是很有限的。針對(duì)多媒體數(shù)據(jù)庫(kù)的性能調(diào)優(yōu)現(xiàn)在也遇到了新的問(wèn)題。雖然如此,多媒體數(shù)據(jù)庫(kù)仍舊產(chǎn)生了廣闊的應(yīng)用價(jià)值和前景。
當(dāng)然本文不可能面面俱到,有關(guān)Oracle多媒體信息處理的具體內(nèi)容,請(qǐng)查閱Oracle相關(guān)手冊(cè)。

  一.應(yīng)用前景綜述

  隨著計(jì)算機(jī)處理能力的大副提高,多媒體早已經(jīng)融入到了計(jì)算機(jī)當(dāng)中了,如果缺少了多媒體,缺少了各種多姿多采的圖象,音頻,視頻,很難想象計(jì)算機(jī)如今會(huì)走入千家萬(wàn)戶。長(zhǎng)期以來(lái),多媒體信息在計(jì)算機(jī)中都是以文件形式存放,由操作系統(tǒng)管理的,但是隨著計(jì)算機(jī)網(wǎng)絡(luò),分布式計(jì)算的發(fā)展,這種單純的文件式管理已經(jīng)力不從心了,對(duì)多媒體信息進(jìn)行高效的管理,存取,查詢已經(jīng)成了一種迫切需求。而關(guān)系數(shù)據(jù)庫(kù)卻有著強(qiáng)大的數(shù)據(jù)管理能力。兩方面密切結(jié)合,多媒體數(shù)據(jù)庫(kù)由此應(yīng)運(yùn)而生。可以預(yù)見(jiàn),隨著多媒體處理需求的加強(qiáng),多媒體數(shù)據(jù)庫(kù)的應(yīng)用將越來(lái)越廣泛。

    Oracle作為一家著名的數(shù)據(jù)庫(kù)廠商,在多媒體信息處理上,更是走在了前邊。本文將就Oracle對(duì)多媒體信息進(jìn)行處理的方式,工具,特色以及一些基本原理做一個(gè)綜述。希望對(duì)讀者有所啟發(fā)。當(dāng)然,關(guān)系數(shù)據(jù)庫(kù)還有好多家,雖然開(kāi)發(fā)工具,編程接口語(yǔ)句各異,但在數(shù)據(jù)類型、處理方式上比較相似。所以我們?cè)诖寺赃^(guò)。 

  二.多媒體數(shù)據(jù)類型介紹

  在關(guān)系型數(shù)據(jù)庫(kù)中,多媒體信息等大型對(duì)象是由lob型字段來(lái)進(jìn)行存取的。在Oracle8i中,正式引入了此標(biāo)準(zhǔn),以適應(yīng)多媒體大對(duì)象處理的需求。Oracle數(shù)據(jù)庫(kù)中,lob型數(shù)據(jù)有以下幾種:

  --------------------------------------------

  Lob類型 說(shuō)明

  Clob: 和Oracle7的long型相似,clob可以存儲(chǔ)單字節(jié)型數(shù)據(jù)

  Nclob: Nclob存儲(chǔ)定寬的多字節(jié)國(guó)家字符集數(shù)據(jù)

  Blob: 和Oracle7中的long raw類型相似??梢源鎯?chǔ)無(wú)結(jié)構(gòu)的二進(jìn)制數(shù)據(jù)。Oracle8沒(méi)有對(duì)這種數(shù)據(jù)進(jìn)行解釋 ,只是按照原來(lái)的形式存儲(chǔ)和檢索它。

  Bfile: Bfile允許對(duì)Oracle數(shù)據(jù)庫(kù)以外存儲(chǔ)的大型二進(jìn)制文件進(jìn)行只讀形式的訪問(wèn)。和其它三種lob類型數(shù)據(jù) 不同的是,bfile類型數(shù)據(jù)存儲(chǔ)在一個(gè)單獨(dú)的文件中,該文件不由Oracle來(lái)維護(hù)。

  特點(diǎn):

  1.在Oracle7中,相應(yīng)的long或long raw字段有2g的限制,而lob的限制是4g 。

  2.lob可以使用調(diào)用接口OCI或者由pl/sql利用dbms_lob包進(jìn)行操縱。

  3.lob不象long型那樣每個(gè)表中最多只有一個(gè)字段的限制,其可以有多個(gè),而又可以利用觸發(fā)器的特性。

  4.lob數(shù)據(jù)處理可以獲得與其它數(shù)據(jù)同樣的事物特性。

  5.lob的存儲(chǔ)比較特殊,它并不是跟其他數(shù)據(jù)存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)表中,而是可以單獨(dú)存放于不同的表空間中,由一個(gè)定位符指向?qū)嶋H的lob數(shù)據(jù)。

[NextPage]

三.多媒體大對(duì)象存取例程舉例

  按照如下步驟來(lái)完成各個(gè)操作:

 ?。?)先建立一個(gè)數(shù)據(jù)庫(kù)表:

    create table lobdemo(key NUMBER KEY,clob_col CLOB,blob_col BLOB,bifle_col BFILE);

  這個(gè)數(shù)據(jù)庫(kù)第一列存儲(chǔ)一個(gè)碼,另外三列存儲(chǔ)lob型數(shù)據(jù)。

 ?。?)表建好以后,往表中插入一條數(shù)據(jù):

    insert into lobdemo(key,clob_col,blob_col,bfile_col) values (10,'abcdefghijklmnopqrsatuvwxyzasdffasfsdafsdafsdfadfsadfsdfsdfdsdsffds',empty_blob(),null);

  在這一條數(shù)據(jù)中,第二列我們插入一個(gè)字符串,它被格式化為clob類型數(shù)據(jù)進(jìn)行存儲(chǔ);第二列我們使用empty_blob()函數(shù)來(lái)初始化一個(gè)定位符,以后就可以獲取這個(gè)定位符進(jìn)行比如select,update等操作了;第三列賦空值,它并沒(méi)有獲得一個(gè)定位符,這是與empty_blob()函數(shù)的區(qū)別。

  (3)查詢插入表中的數(shù)據(jù)

    select blob_col from boldemo where key=20;

  注意:這一sql語(yǔ)句的返回結(jié)果是一個(gè)定位符(locator),而不是實(shí)際的數(shù)據(jù)本身。

 ?。?)修改數(shù)據(jù)庫(kù)中數(shù)據(jù)

    update lobdemo SET blob_col='aedevbagddgagdfdfasasdfdsa' where key=10;

  從這些sql語(yǔ)句當(dāng)中,我們看到了lob型數(shù)據(jù)處理的基本方法,發(fā)現(xiàn)與其他類型數(shù)據(jù)處理相似。但是sql語(yǔ)句中l(wèi)ob型數(shù)據(jù)處理的特殊性在于以下方面:

 ?。?)bfile文件的處理:

    bfile類型有著特殊性,跟clob,blob不同。實(shí)際的數(shù)據(jù)文件存儲(chǔ)在操作系統(tǒng)的外面:所以有兩個(gè)特點(diǎn):1.沒(méi)有事務(wù)性控制 2.bfile是只讀的,不能用dbms_lob或oracl8 oci進(jìn)行修改。讓我們來(lái)看對(duì)bfile的操作步驟:

  1> 為了訪問(wèn)外部文件,服務(wù)器需要知道文件在操作系統(tǒng)中的位置。下面我們建立一個(gè)目錄:
create DIRECTORY utils AS '/home/utils';
utils表示目錄邏輯名,'/home/utils'是實(shí)際目錄。

  2>使用bfilename函數(shù)插入一行數(shù)據(jù):

   insert into lobdemo(key,bfile_col) values (-1,biflename('utils','file1'));

   bfilename函數(shù)的第一個(gè)參數(shù)是邏輯目錄名,第二個(gè)參數(shù)是文件名。注意:這一行中插入的是一個(gè)指向/home/utils/file1的lob定位符,并不是文件本身。

 ?。?)利用dbms_lob包進(jìn)行l(wèi)ob數(shù)據(jù)操作

  sql僅可以操縱整個(gè)lob,而不能操縱數(shù)據(jù)片。dbms_lob包則放開(kāi)了這個(gè)限制,它提供對(duì)lob數(shù)據(jù)中數(shù)據(jù)片的操作。這個(gè)包中包含十幾個(gè)例程,讀者可以查閱Oracle pl/sql手冊(cè),本文只介紹三個(gè)函數(shù):fileopen()用來(lái)打開(kāi)一個(gè)操作系統(tǒng)文件;loadfromfile()例程用來(lái)往目標(biāo)lob字段填充一個(gè)操作系統(tǒng)文件,這個(gè)函數(shù)很有實(shí)用價(jià)值,因?yàn)橛性S多l(xiāng)ob內(nèi)容在sql語(yǔ)句中是不可描述的,例如一個(gè)二進(jìn)制音頻文件,而用這個(gè)函數(shù)可以將文件內(nèi)容導(dǎo)入到數(shù)據(jù)庫(kù);getlength函數(shù)計(jì)算文件的長(zhǎng)度。請(qǐng)看下面一個(gè)存儲(chǔ)過(guò)程中這三個(gè)函數(shù)的使用:

  create or replace procedure FileExec(
   p_Directory in VARCHAR2,
   p_Filename IN VARCHAR2
  ) AS
   v_FileLocator BFILE;
   v_CLOBLocator CLOB;
  BEGIN
   --為update初始化一個(gè)定位符
   SELECT clob_col
    INTO v_CLOBLocator
    FROM lobdemo
    WHERE key=-1
   FOR UPDATE;

  --為讀文件初始化一個(gè)BFILE定位符

   v

[1] [2] 下一頁(yè)

正在看的ORACLE教程是:Oracle數(shù)據(jù)庫(kù)處理多媒體信息。_FileLocator:=BFILEOPEN(p_Derectory,p_Filename);

  --用dbms_lob包的fileopen打開(kāi)一個(gè)操作系統(tǒng)文件

   DBMS_LOB.FILEOPEN(v_FileLocator,DBMS_LOB.FILE_READONLY);

  --將整個(gè)操作系統(tǒng)文件裝入lob中

   DBMS_LOB.LOADFROMFILE(v_CLOBLocator,v_FileLocator,DBMS_LOB.GETLENGTH(v_FileLocator));

   END FileExec;

  四.Oracle InterMedia工具介紹

  interMedia是Oracle推出的對(duì)Oracle8i多媒體功能進(jìn)行擴(kuò)充的一個(gè)集成部件,它使得Oracle能夠更方便的管理圖象、音頻、視頻、文本等信息。使得Oracle在internet,電子商務(wù)等領(lǐng)域多媒體數(shù)據(jù)的管理上可靠性與可用性增強(qiáng)。它包括image, audio, video三部份。interMedia使用對(duì)象類型,類似于JAVA或C++,來(lái)描述image, audio, video類型數(shù)據(jù),Oracle在這三類對(duì)象類型中定義了許多方法來(lái)操作這些數(shù)據(jù),如對(duì)于 image類型數(shù)據(jù)來(lái)說(shuō),你可以很方便地進(jìn)行圖形格式轉(zhuǎn)換,壓縮,拷貝,截取圖形的任何一部份等,而這些是普通LOB類型數(shù)據(jù)所無(wú)法比擬的,普通sql語(yǔ)句也無(wú)法完成這些操作。

  Internet的發(fā)展更突出了interMedia在WEB應(yīng)用中的價(jià)值,現(xiàn)有的WEB應(yīng)用絕大多數(shù)將image,audio,video等多媒體信息存在文件系統(tǒng)中,其優(yōu)點(diǎn)是操作簡(jiǎn)單,速度快,缺點(diǎn)是管理復(fù)雜,尤其是管理大量image時(shí)就受到目錄數(shù)等的限制。如果將image保存在數(shù)據(jù)庫(kù)中,由數(shù)據(jù)庫(kù)來(lái)統(tǒng)一維護(hù),統(tǒng)一備份,這樣就可以簡(jiǎn)化管理。

  Intermedia中定義了幾個(gè)多媒體對(duì)象類型,例如ORDAUDIO就是其中一個(gè),它提供一些audio對(duì)象類型數(shù)據(jù)的操縱函數(shù)。下面我們來(lái)看一個(gè)例子,在這個(gè)例子中我們定義一個(gè)歌曲對(duì)象,建立一個(gè)歌曲對(duì)象的表,并對(duì)該表進(jìn)行插入與查詢操作。

 ?。?)定義一個(gè)歌曲對(duì)象:

  CREATE TYPE songObject as OBJECT (
   songId VARCHAR2(20), --歌曲號(hào)
   title VARCHAR2(4000), --題目
   artist VARCHAR2(4000), --作家
   awards VARCHAR2(4000), --獎(jiǎng)項(xiàng)
   timePeriod VARCHAR2(20), --日期時(shí)間
   txtinroduction CLOB, --簡(jiǎn)介
   audioSource ORDSYS.ORDAUDIO --音頻數(shù)據(jù),這個(gè)字段由ORDAUDIO對(duì)象來(lái)定義。
  );

  (2)建立一個(gè)名為songtable的表:

   CREATE TABLE SongsTable of songObject (UNIQUE (songId), songId NOT NULL);

 ?。?)插入一行數(shù)據(jù)到SongsTable表中

   INSERT INTO SongsTable VALUES ('00',
     'Under Pressure',
     'Queen',
     'no awards',
     '80-90',
     243,
     NULL,
   EMPTY_CLOB(),
    ORDSYS.ORDAudio(NULL,
     ORDSYS.ORDSource(EMPTY_BLOB(),NULL,NULL,NULL,NULL,NULL),
     NULL, NULL, EMPTY_CLOB(), NULL, NULL, NULL, NULL, NULL, NULL));
   注意:。EMPTY_CLOB,EMPTY_BLOB()函數(shù)只是初始化一個(gè)lob數(shù)據(jù)定位符,而沒(méi)有存儲(chǔ)實(shí)際的數(shù)據(jù)。

 ?。?)向SongsTable表中載入一行數(shù)據(jù):

    DECLARE
     audioObj ORDSYS.ORDAUDIO;
     ctx RAW(4000) := NULL;
    BEGIN

    --取得audioSource字段定位符

    SELECT S.audioSource INTO audioObj 

     FROM SongsTable S
     WHERE S.songId = '00'
     FOR UPDATE;

    --下面的四個(gè)函數(shù)是ORDAUDIO對(duì)象的成員函數(shù),具體功能請(qǐng)查看Oracle開(kāi)發(fā)手冊(cè)

    audioObj.setSource('FILE', 'AUDDIR', 'UnderPressure.au');--設(shè)定文件

    audioObj.setMimeType('audio/basic'); --設(shè)定類型

    audioObj.import(ctx); --載入ctx

    audioObj.setProperties(ctx); --設(shè)置屬性

    --將歌曲對(duì)象載入到數(shù)據(jù)庫(kù)表中

    UPDATE SongsTable S 
     SET S.audioSource = audioObj 
     WHERE S.songId = '00';

     COMMIT;

    END;

[NextPage]

 五.多媒體數(shù)據(jù)庫(kù)技術(shù)難點(diǎn)與展望

  可以說(shuō),多媒體數(shù)據(jù)的高效管理是IT技術(shù)發(fā)展的必然要求,隨著多媒體信息需求的進(jìn)一步加強(qiáng),多媒體數(shù)據(jù)庫(kù)技術(shù)將會(huì)有更大的發(fā)展,從Oracle數(shù)據(jù)庫(kù)中我們可以看出,無(wú)論在數(shù)據(jù)類型,數(shù)據(jù)管理,還是開(kāi)發(fā)管理工具上,現(xiàn)在的主流關(guān)系數(shù)據(jù)庫(kù)已經(jīng)具有很強(qiáng)的多媒體信息管理能力。但是我們不能不遺憾的看到,對(duì)一些多媒體數(shù)據(jù)所特有的操作(比如對(duì)多媒體信息的查詢)能力還是很有限的。

  一個(gè)問(wèn)題就是多媒體數(shù)據(jù)的特殊操作實(shí)現(xiàn),因?yàn)閘ob型數(shù)據(jù)是二進(jìn)制的大對(duì)象,他不能簡(jiǎn)單的按照一般數(shù)據(jù)的操作符來(lái)進(jìn)行計(jì)算。比如,要查出一個(gè)數(shù)據(jù)表中與某首歌相似的音頻。那么對(duì)于這個(gè)'相似'操作來(lái)說(shuō),它得不到傳統(tǒng)的操作符的支持,而且它將涉及很復(fù)雜的算法??上驳氖?,Oracle9i Intermedia已經(jīng)具有多媒體數(shù)據(jù)的查詢與匹配功能,例如,可以從質(zhì)地(texture),形狀,顏色,顏色分量等要素進(jìn)行相似圖象的查詢,在查詢時(shí)可以設(shè)置各個(gè)要素的權(quán)值,測(cè)試的結(jié)果還是差強(qiáng)人意的。但是對(duì)audio,video等類型數(shù)據(jù)的查詢?nèi)匀徊粔蚶硐搿?

  另外,如何描述多媒體信息,怎樣根據(jù)你對(duì)多媒體信息的描述來(lái)檢索,也是一個(gè)難點(diǎn)問(wèn)題,比如這個(gè)查詢?nèi)蝿?wù):查詢出顏色比較暗的并且有森林的風(fēng)景照片,這就是根據(jù)描述性信息進(jìn)行查詢的例子。這將需要某種行業(yè)標(biāo)準(zhǔn)和技術(shù)實(shí)現(xiàn)。總之,如何實(shí)現(xiàn)和優(yōu)化針對(duì)多媒體數(shù)據(jù)的特殊操作(如相似查詢等),將是以后多媒體數(shù)據(jù)庫(kù)研究和應(yīng)用中的熱點(diǎn)問(wèn)題。

  另外一個(gè)重要的問(wèn)題就是針對(duì)多媒體數(shù)據(jù)庫(kù)的性能調(diào)優(yōu),原先的調(diào)優(yōu)方法如索引優(yōu)化等仍然適用,但是現(xiàn)在遇到了新的問(wèn)題:多媒體數(shù)據(jù)是龐大的,那么對(duì)多媒體信息的操作(尤其是檢索)開(kāi)銷巨大,那么如何降低這種開(kāi)銷,縮短操作時(shí)間,又是一個(gè)重要課題。

上一頁(yè)     

上一頁(yè)  [1] [2] 

您可能感興趣的文章:
  • Oracle11.2.0.1如何升級(jí)到11.2.0.3 Oracle同版本升級(jí)
  • VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(二)ORACLE 10.2.05版本的升級(jí)補(bǔ)丁安裝
  • oracle 日期函數(shù)集合(集中版本)
  • Oracle Faq(Oracle的版本)
  • Oracle 查詢表信息獲取表字段及字段注釋
  • Oracle cloud control 12c的啟動(dòng)、關(guān)閉及獲取安裝信息的方法
  • oracle獲取當(dāng)前用戶表、字段等詳細(xì)信息SQL
  • Oracle 11g自動(dòng)診斷信息庫(kù)(Automatic Diagnostic Repository,ADR)概述
  • Oracle中獲取會(huì)話信息的兩個(gè)函數(shù)分享
  • Oracle客戶端版本及位數(shù)(Windows系統(tǒng))查看方法

標(biāo)簽:池州 股票投資 南平 嘉峪關(guān) 襄陽(yáng) 通化 南平 聊城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle數(shù)據(jù)庫(kù)處理多媒體信息》,本文關(guān)鍵詞  Oracle,數(shù)據(jù)庫(kù),處理,多媒體,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle數(shù)據(jù)庫(kù)處理多媒體信息》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle數(shù)據(jù)庫(kù)處理多媒體信息的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章