BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

32
BD Multimídia Valéria Times

Transcript of BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

Page 1: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

BD Multimídia

Valéria Times

Page 2: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 2

Tratamento de Dados Multimídia

Page 3: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 3

Oracle InterMedia

Áudio, Imagem, Vídeo e Documento Gerenciar imagens, áudios e vídeos de uma maneira integrada com outras informações através de tipos de objetos Estende confiabilidade, disponibilidade e gerenciamento de dados do Oracle para conteúdos multimídia na Internet/Web, comércio eletrônico e aplicações ricas em mídia

Page 4: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 4

Oracle InterMedia

Consiste de tipos de objetos junto com métodos relacionados para gerenciar e processar dados multimídia

ORDAudio, ORDVideo, ORDImage, ORDDoc Armazenam informações da origem dos dados em um tipo objeto-relacional conhecido como ORDSource

Page 5: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 5

Oracle InterMediaTipo ORDSource

Provê o acesso a uma variedade de fontes de dados multímidiaTodos os tipos do Oracle Intermedia possuem um atributo deste tipoPrincipais atributos:

localData srcNamesrcTypesrcLocation

updateTimelocal

Page 6: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 6

Oracle InterMediaComo Oracle interMedia verifica a similaridade

Dados os pesos para cada atributo visual, o sistema calcula uma medida de similaridade para cada atributo visual, chamada de pontuação ou distânciaPesos informados correspondem a valores entre [ 0 ; 1 ] e pelo menos um deles, deve ser maior que zeroPontuação calculada pode variar de 0.0 (nenhuma diferença) até 100.0 (máxima diferença possível)

Page 7: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 7

Oracle InterMediaPontuação de três imagens para dois atributos visuais: cor e formato

Imagem 1

Imagem 2

Imagem 3

Cor

Formato

Imagem 1: dado de referência (consulta)Imagens 2 e 3: mantidas no BD

Page 8: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 8

Oracle InterMediaComo interMedia verifica a similaridade (Cont.)

Grau de similaridade consiste na soma dos produtos entre a distância de cada atributo visual e seu respectivo pesoExemplo: Atributo Visual Distância PesoCor 15 0.7Textura 5 0.2Formato 50 0.1

Grau = 0.7 * 15 + 0.2 * 5 + 0.1 * 50 = 16.5

Page 9: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 9

Oracle InterMediaComo interMedia verifica a similaridade (Cont.)

Exemplo: Recupere todas as imagens semelhantes a uma dada imagemCURSOR obtenhafotos IS SELECT produto_id , produto_foto FROM tabela WHERE ORDSYS.IMGSimilar ( foto_ass,

comp_ass, ´color = “0.4”, texture = “0.10”, shape = “0.3”, location = “0.2” ´ , 20 )

= 1 ;Os pesos e o limite são dependentes da aplicação e determinados através de tentativas e testes.

Page 10: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 10

Oracle InterMediaMétodos do Tipo ORDImageSignature

Construtor: init()Inicializa instâncias deste tipo

BEGININSERT INTO tabela (produto_id, produto_foto, foto_ass)VALUES (1910, ORDSYS.ORDImage.init('FILE','FILE_DIR‘,'speaker.jpg'),ORDSYS.ORDImageSignature.init()) ;COMMIT;END; /

Page 11: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 11

Oracle InterMediaMétodos do Tipo ORDImageSignature (cont.)

generateSignature()Gera uma assinatura para uma dada imagem

DECLARE t_image ORDSYS.ORDImage ; image_sig ORDSYS.ORDImageSignature ;BEGINSELECT p.produto_foto, p.foto_ass INTO t_image, image_sigFROM tabela p WHERE p.produto_id = 2402 FOR UPDATE;

-- Gera a assinaturaimage_sig.generateSignature (t_image) ;

UPDATE tabela p SET p.foto_ass = image_sigWHERE p.produto_id = 2402; END; /

Page 12: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 12

Oracle InterMediaMétodos do Tipo ORDImageSignature (cont.)

isSimilar()Verifica se duas assinaturas são similares

DECLAREimage_sig1 ORDSYS.ORDImageSignature;image_sig2 ORDSYS.ORDImageSignature;valor INTEGER;BEGIN SELECT foto_ass INTO image_sig1 FROM tabela WHERE produto_id = 1910;

SELECT foto_ass INTO image_sig2 FROM tabela WHERE produto_id = 1940;

Page 13: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 13

Oracle InterMediaisSimilar()

-- Compara as imagesvalor := ORDSYS.ORDImageSignature.isSimilar(image_sig1,image_sig2,'color="1.0",texture=0,shape=0,location=0',10);

IF valor = 1 THEN DBMS_OUTPUT.PUT_LINE(‘As imagens são similares');ELSIF valor = 0 THEN DBMS_OUTPUT.PUT_LINE(‘As imagens não são similares');END IF;

Possui operadores:IMGSimilar()IMGScore()

Page 14: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 14

Oracle InterMediaMétodos do Tipo ORDImageSignature (cont.)

evaluateScore()Computa a distância entre duas assinaturas com base na influência dos pesos passados como parâmetrosRetorna um valor entre 0.0 (imagens idênticas) e 100.0 (imagens diferentes)

Page 15: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 15

Oracle InterMediaDECLARE t_image ORDSYS.ORDImage; c_image ORDSYS.ORDImage; image_sig ORDSYS.ORDImageSignature; compare_sig ORDSYS.ORDImageSignature; pont FLOAT;BEGINSELECT p.produto_foto, p.foto_ass INTO t_image, image_sigFROM tabela pWHERE p.produto_id = 1910 FOR UPDATE;

-- Gera a assinaturaimage_sig.generateSignature(t_image);

UPDATE tabela p SET p.foto_ass = image_sigWHERE p.produto_id =1910;

Page 16: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 16

Oracle InterMediaSELECT p.produto_foto, p.foto_ass INTO c_image, compare_sig FROM tabela pWHERE p.produto_id = 1940 FOR UPDATE;

-- Gera a assinaturacompare_sig.generateSignature(c_image);

UPDATE tabela p SET p. foto_ass = compare_sigWHERE produto_id = 1940;

SELECT p.produto_foto, p.foto_ass INTO t_image, image_sigFROM tabela pWHERE p.produto_id = 1910;

SELECT p.produto_foto, p.foto_ass INTO c_image, compare_sig FROM tabela p WHERE p.produto_id = 1940;

Page 17: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 17

Oracle InterMedia-- Comparação entre duas imagens baseada na cor

score:=ORDSYS.ORDImageSignature.evaluateScore(image_sig,compare_sig,'color="1.0",texture=0,shape=0,location=0');DBMS_OUTPUT.PUT_LINE(‘Distancia = ' || score) ;END ;/

Page 18: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 18

Oracle InterMediaUso de Índices no Oracle interMedia

Tipo ORDImageIndexPermite definição, construção e manuteção de um índice para imagensUma vez criado, ele é automaticamente atualizado quando imagens são inseridas, atualizadas ou removidas do BDO nome do índice pode ter até 24 caracteresÍndices devem ser criados sobre os campos de assinatura e usados em grandes BD

Page 19: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 19

Oracle InterMediaDECLARE t_image ORDSYS.ORDImage ; image_ass ORDSYS.ORDImageSignature ;BEGIN

SELECT p.produto_foto , p.foto_ass INTO t_image , image_ass FROM tabela pWHERE p.produto_id = 1910 FOR

UPDATE ;-- Gera uma assinatura:image_ass.generateSignature (t_image) ;UPDATE tabela p SET p. foto_ass =

image_ass ;WHERE p.produto_id = 1910 ;COMMIT ; END ; /

Page 20: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 20

Oracle InterMedia

CREATE INDEX idx1 ON tabela (foto_ass) INDEXTYPE IS ORDSYS.ORDIMAGEINDEX PARAMETERS(´ORDImage_Filter_Tablespace =

<nome> , ORDImage_Index_Tablespace = <nome>

´ ) ;ANALYZE INDEX idx1 COMPUTE

STATISTICS ;

Page 21: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 21

Oracle InterMedia

id_midia locado duracao preco capa nome_capa

Type t_midia

titulo diretor genero trailer nome_trailer

sinopse nome_sinops

Type t_dvd under t_midia

Exemplo

album artista estilo faixa nome_faixa

letra nome_letra

Type t_cd under t_midia

Page 22: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 22

Oracle InterMedia

Criação dos Tipos

CREATE OR REPLACE TYPE t_midia AS OBJECT ( id_midia integer , locado varchar2 (5 ) , duracao integer , preco number (10 , 2 ) , nome_capa varchar2 (100 ) , capa ORDSYS.ORDImage , capa_sig ORDSYS.ORDImageSignature ) not final ;

Page 23: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 23

Oracle InterMedia

Criação dos Tipos (Cont.)

CREATE OR REPLACE TYPE t_dvd UNDER t_midia ( titulo varchar2 ( 255 ) , diretor varchar2 ( 255 ) , genero varchar2 ( 255 ) , nome_trailer varchar2 (100 ) , trailer ORDSYS.ORDVideo , nome_sinopse varchar2 (100 ) , sinopse ORDSYS.ORDDoc ) ;

Page 24: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 24

Oracle InterMedia

Criação dos Tipos (Cont.)

CREATE OR REPLACE TYPE t_cd UNDER t_midia ( album varchar2 ( 255 ) , artista varchar2 ( 255 ) , estilo varchar2 ( 255 ) , nome_faixa varchar2 (100 ) , faixa ORDSYS.ORDAudio , nome_letra varchar2 (100 ) , letra ORDSYS.ORDDoc ) ;

Page 25: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 25

Oracle InterMedia

Criação de Tabelas

CREATE TABLE dvd OF t_dvd ( id_midia primary key ) ;

CREATE TABLE cd OF t_cd ( id_midia primary key ) ;

Page 26: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 26

Oracle InterMedia

Inserção de um CD no BD

CREATE OR REPLACE PROCEDURE insereCD ( duracao integer , preco number , nome_capa varchar2 , album varchar2 , artista varchar2 , estilo varchar2 , nome_faixa varchar2 , nome_letra varchar2 ) IS id_cd INT ; CapaObj ORDSYS.ORDImage ; CapaObj_sig ORDSYS.ORDImageSignature ; ctx_capa RAW (4000) : = NULL ;

Page 27: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 27

Oracle InterMedia

FaixaObj ORDSYS.ORDAudio ; ctx_faixa RAW (4000) : = NULL ;

LetraObj ORDSYS.ORDDoc ; ctx_letra RAW (4000) : = NULL ;

BEGIN -- insere a tuplaINSERT INTO cd VALUES (t_cd (seq_id_midia.nextVal, ´false´ , duracao, preco, nome_capa, ORDSYS.ORDImage.init (´FILE ´ , `IMAGENS´ , nome_capa) , ORDSYS.ORDImageSignature.init() , album , artista , estilo , nome_faixa , ORDSYS.ORDAudio.init() , nome_letra , ORDSYS.ORDDoc.init() ) ) ;

Page 28: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 28

Oracle InterMedia

-- pega o identificador da tupla inserida SELECT max (id_midia) INTO id_cd from cd ;

-- seleciona a tupla inseridaSELECT c.capa , c.capa_sig INTO CapaObj , CapaObj_sigFROM cd c WHERE c.id_midia = id_cd FOR UPDATE ;

-- seta as propriedades da imagem inserida CapaObj.setProperties ; CapaObj.import ( ctx_capa ) ; CapaObj_sig.generateSignature (CapaObj) ; UPDATE cd SET capa = CapaObj , capa_sig = CapaObj_sig WHERE id_midia = id_cd ; COMMIT ;

Page 29: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 29

Oracle InterMedia

-- pega o som inserido para colocar seu conteudo SELECT c.faixa INTO FaixaObj FROM cd c WHERE c.id_midia = id_cd FOR UPDATE ;

-- seta as propriedades do objeto do tipo audio FaixaObj.setSource (´FILE ´, `AUDIOS´, nome_faixa) ; FaixaObj.import ( ctx_faixa ) ; FaixaObj_setProperties (ctx_faixa) ;

-- atualiza a tupla UPDATE cd c SET c.faixa = FaixaObj WHERE c.id_midia = id_cd ;

COMMIT ;

Page 30: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 30

Oracle InterMedia

-- coloca o documento na tupla SELECT c. letra INTO LetraObj FROM cd c WHERE c.id_midia = id_cd FOR UPDATE ;

LetraObj.setSource ( ´FILE ´, `DOCUMENTOS´, nome_letra) ; LetraObj.setMimeType ( ´application / pdf´) ; LetraObj.import ( ctx_letra , FALSE ) ; UPDATE cd c SET c. letra = LetraObj WHERE c.id_midia = id_cd ;

COMMIT ; END ;

Page 31: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 31

Roteiro para Projeto MultimídiaCriar Minimundo, modelo conceitual e esquema relacionalImplementar as tabelas no SGBD, com atributos ORDAudio, ORDVideo, ORDImage e ORDDocImplementar procedimentos para inserção e recuperação de dados multimídia do BDImplementar métodos para realização de consultas baseadas em contextoTestar e colocar o sistema em funcionamentoData da Entrega: 26 / 11 / 09

Page 32: BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia.

04/27/23 © CIn/UFPE 32

Roteiro para Nota Máxima

Descrição de MinimundoModelagem ConceitualEsquema RelacionalFazer uso dos tipos do Oracle Intermedia (ORDAudio, ORDVideo, ORDDoc e ORDImage)Inserir e recuperar dados multimidia do BD, incluindo consultas de contexto.Defesa do projeto com qualidade e segurança

corretos