国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle數據庫處理多媒體信息

Oracle數據庫處理多媒體信息

2019-10-25 16:28Oracle教程網 Oracle

引文:長期以來,多媒體信息在計算機中都是以文件形式存放,由操作系統管理的,但是隨著計算機網絡,分布式計算的發展,對多媒體信息進行高效的管理,存取,查詢已經成了一種迫切需求。而關系 數據庫 卻有著強大的數據

引文:長期以來,多媒體信息在計算機中都是以文件形式存放,由操作系統管理的,但是隨著計算機網絡,分布式計算的發展,對多媒體信息進行高效的管理,存取,查詢已經成了一種迫切需求。而關系數據庫卻有著強大的數據管理能力。兩方面結合,多媒體數據庫由此應運而生。本文將就Oracle對多媒體信息進行處理的方式,工具,特色以及一些基本原理做一個綜述。

但是我們不能不遺憾的看到,現有數據庫對一些多媒體數據所特有的操作能力還是很有限的。針對多媒體數據庫的性能調優現在也遇到了新的問題。雖然如此,多媒體數據庫仍舊產生了廣闊的應用價值和前景。

當然本文不可能面面俱到,有關Oracle多媒體信息處理的具體內容,請查閱Oracle相關手冊。

一.應用前景綜述

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

Oracle作為一家著名的數據庫廠商,在多媒體信息處理上,更是走在了前邊。本文將就Oracle對多媒體信息進行處理的方式,工具,特色以及一些基本原理做一個綜述。希望對讀者有所啟發。當然,關系數據庫還有好多家,雖然開發工具,編程接口語句各異,但在數據類型、處理方式上比較相似。所以我們在此略過。

二.多媒體數據類型介紹

在關系型數據庫中,多媒體信息等大型對象是由lob型字段來進行存取的。在Oracle8i中,正式引入了此標準,以適應多媒體大對象處理的需求。Oracle數據庫中,lob型數據有以下幾種:

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

Lob類型說明

Clob:和Oracle7的long型相似,clob可以存儲單字節型數據

Nclob:Nclob存儲定寬的多字節國家字符集數據

Blob:和Oracle7中的longraw類型相似。可以存儲無結構的二進制數據。Oracle8沒有對這種數據進行解釋,只是按照原來的形式存儲和檢索它。

Bfile:Bfile允許對Oracle數據庫以外存儲的大型二進制文件進行只讀形式的訪問。和其它三種lob類型數據不同的是,bfile類型數據存儲在一個單獨的文件中,該文件不由Oracle來維護。

特點:

1.在Oracle7中,相應的long或longraw字段有2g的限制,而lob的限制是4g。

2.lob可以使用調用接口OCI或者由pl/sql利用dbms_lob包進行操縱。

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

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

5.lob的存儲比較特殊,它并不是跟其他數據存儲在同一個數據庫表中,而是可以單獨存放于不同的表空間中,由一個定位符指向實際的lob數據。

三.多媒體大對象存取例程舉例

按照如下步驟來完成各個操作:

(1)先建立一個數據庫表:

createtablelobdemo(keyNUMBERKEY,clob_colCLOB,blob_colBLOB,bifle_colBFILE);

這個數據庫第一列存儲一個碼,另外三列存儲lob型數據。

(2)表建好以后,往表中插入一條數據:

insertintolobdemo(key,clob_col,blob_col,bfile_col)values(10,'abcdefghijklmnopqrsatuvwxyzasdffasfsdafsdafsdfadfsadfsdfsdfdsdsffds',empty_blob(),null);

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

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

selectblob_colfromboldemowherekey=20;

注意:這一sql語句的返回結果是一個定位符(locator),而不是實際的數據本身。

(4)修改數據庫中數據

updatelobdemoSETblob_col='aedevbagddgagdfdfasasdfdsa'wherekey=10;

從這些sql語句當中,我們看到了lob型數據處理的基本方法,發現與其他類型數據處理相似。但是sql語句中lob型數據處理的特殊性在于以下方面:

(1)bfile文件的處理:

bfile類型有著特殊性,跟clob,blob不同。實際的數據文件存儲在操作系統的外面:所以有兩個特點:1.沒有事務性控制2.bfile是只讀的,不能用dbms_lob或oracl8oci進行修改。讓我們來看對bfile的操作步驟:

<1>為了訪問外部文件,服務器需要知道文件在操作系統中的位置。下面我們建立一個目錄:

createDIRECTORYutilsAS'/home/utils';

utils表示目錄邏輯名,'/home/utils'是實際目錄。

<2>使用bfilename函數插入一行數據:

insertintolobdemo(key,bfile_col)values(-1,biflename('utils','file1'));

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

(2)利用dbms_lob包進行lob數據操作

sql僅可以操縱整個lob,而不能操縱數據片。dbms_lob包則放開了這個限制,它提供對lob數據中數據片的操作。這個包中包含十幾個例程,讀者可以查閱Oraclepl/sql手冊,本文只介紹三個函數:fileopen()用來打開一個操作系統文件;loadfromfile()例程用來往目標lob字段填充一個操作系統文件,這個函數很有實用價值,因為有許多lob內容在sql語句中是不可描述的,例如一個二進制音頻文件,而用這個函數可以將文件內容導入到數據庫;getlength函數計算文件的長度。請看下面一個存儲過程中這三個函數的使用:

createorreplaceprocedureFileExec(

p_DirectoryinVARCHAR2,

p_FilenameINVARCHAR2

)AS

v_FileLocatorBFILE;

v_CLOBLocatorCLOB;

BEGIN

--為update初始化一個定位符

SELECTclob_col

INTOv_CLOBLocator

FROMlobdemo

WHEREkey=-1

FORUPDATE;

--為讀文件初始化一個BFILE定位符

v_FileLocator:=BFILEOPEN(p_Derectory,p_Filename);

--用dbms_lob包的fileopen打開一個操作系統文件

DBMS_LOB.FILEOPEN(v_FileLocator,DBMS_LOB.FILE_READONLY);

--將整個操作系統文件裝入lob中

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

ENDFileExec;

四.OracleInterMedia工具介紹

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

Internet的發展更突出了interMedia在WEB應用中的價值,現有的WEB應用絕大多數將image,audio,video等多媒體信息存在文件系統中,其優點是操作簡單,速度快,缺點是管理復雜,尤其是管理大量image時就受到目錄數等的限制。如果將image保存在數據庫中,由數據庫來統一維護,統一備份,這樣就可以簡化管理。

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

(1)定義一個歌曲對象:

CREATETYPEsongObjectasOBJECT(

songIdVARCHAR2(20),--歌曲號

titleVARCHAR2(4000),--題目

artistVARCHAR2(4000),--作家

awardsVARCHAR2(4000),--獎項

timePeriodVARCHAR2(20),--日期時間

txtinroductionCLOB,--簡介

audioSourceORDSYS.ORDAUDIO--音頻數據,這個字段由ORDAUDIO對象來定義。

);

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

CREATETABLESongsTableofsongObject(UNIQUE(songId),songIdNOTNULL);

(3)插入一行數據到SongsTable表中

INSERTINTOSongsTableVALUES('00',

'UnderPressure',

'Queen',

'noawards',

'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()函數只是初始化一個lob數據定位符,而沒有存儲實際的數據。

(4)向SongsTable表中載入一行數據:

DECLARE

audioObjORDSYS.ORDAUDIO;

ctxRAW(4000):=NULL;

BEGIN

--取得audioSource字段定位符

SELECTS.audioSourceINTOaudioObj

FROMSongsTableS

WHERES.songId='00'

FORUPDATE;

--下面的四個函數是ORDAUDIO對象的成員函數,具體功能請查看Oracle開發手冊

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

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

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

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

--將歌曲對象載入到數據庫表中

UPDATESongsTableS

SETS.audioSource=audioObj

WHERES.songId='00';

COMMIT;

END;

五.多媒體數據庫技術難點與展望

可以說,多媒體數據的高效管理是IT技術發展的必然要求,隨著多媒體信息需求的進一步加強,多媒體數據庫技術將會有更大的發展,從Oracle數據庫中我們可以看出,無論在數據類型,數據管理,還是開發管理工具上,現在的主流關系數據庫已經具有很強的多媒體信息管理能力。但是我們不能不遺憾的看到,對一些多媒體數據所特有的操作(比如對多媒體信息的查詢)能力還是很有限的。

一個問題就是多媒體數據的特殊操作實現,因為lob型數據是二進制的大對象,他不能簡單的按照一般數據的操作符來進行計算。比如,要查出一個數據表中與某首歌相似的音頻。那么對于這個'相似'操作來說,它得不到傳統的操作符的支持,而且它將涉及很復雜的算法。可喜的是,Oracle9iIntermedia已經具有多媒體數據的查詢與匹配功能,例如,可以從質地(texture),形狀,顏色,顏色分量等要素進行相似圖象的查詢,在查詢時可以設置各個要素的權值,測試的結果還是差強人意的。但是對audio,video等類型數據的查詢仍然不夠理想。

另外,如何描述多媒體信息,怎樣根據你對多媒體信息的描述來檢索,也是一個難點問題,比如這個查詢任務:查詢出顏色比較暗的并且有森林的風景照片,這就是根據描述性信息進行查詢的例子。這將需要某種行業標準和技術實現。總之,如何實現和優化針對多媒體數據的特殊操作(如相似查詢等),將是以后多媒體數據庫研究和應用中的熱點問題。

另外一個重要的問題就是針對多媒體數據庫的性能調優,原先的調優方法如索引優化等仍然適用,但是現在遇到了新的問題:多媒體數據是龐大的,那么對多媒體信息的操作(尤其是檢索)開銷巨大,那么如何降低這種開銷,縮短操作時間,又是一個重要課題。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日日爽| 中文字幕69av | 在线一区观看 | 欧美综合婷婷 | 精品成人免费一区二区在线播放 | av片在线播放 | 欧美视频在线播放 | 精品自拍视频在线观看 | 日韩视频在线观看 | 久久亚洲美女 | 亚洲精品在线视频 | 国产精品一区二区三区免费视频 | 7799精品天天综合网 | 国产午夜在线 | 国产天天操 | 久久亚洲国产 | 99精品免费视频 | 男女啪啪做爰高潮www成人福利 | 一级毛片在线播放 | 久久久久久久国产视频 | 午夜在线 | 免费看黄色片 | 蜜臀久久99精品久久久无需会员 | 欧美一区二区三区 | 亚洲www视频 | 黄色美女网站免费 | 久久精品国产免费 | 97色伦97色伦国产欧美空 | 日韩激情一区二区三区 | 欧美精品一区二 | 中文字幕高清免费日韩视频在线 | 中文字幕第一页在线 | 伊人久久婷婷色综合98网 | 日韩精品一区二区三区四区 | 四虎网站| av天天操 | 九九九久久国产免费 | 久久久久久亚洲 | 蜜桃精品久久久久久久免费影院 | 91性高湖久久久久久久久网站 | 二区在线视频 |