A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "BD Multimídia Valéria Times. 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia."— Transcrição da apresentação:

1 BD Multimídia Valéria Times

2 10/31/2015 © CIn/UFPE2 Tratamento de Dados Multimídia

3 10/31/2015 © CIn/UFPE3 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

4 10/31/2015 © CIn/UFPE4 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

5 10/31/2015 © CIn/UFPE5 Oracle InterMedia Tipo ORDSource Provê o acesso a uma variedade de fontes de dados multímidia Todos os tipos do Oracle Intermedia possuem um atributo deste tipo Principais atributos: localDatasrcName srcType srcLocation updateTime local

6 10/31/2015 © CIn/UFPE6 Oracle InterMedia Como 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ância Pesos informados correspondem a valores entre [ 0 ; 1 ] e pelo menos um deles, deve ser maior que zero Pontuação calculada pode variar de 0.0 (nenhuma diferença) até 100.0 (máxima diferença possível)

7 10/31/2015 © CIn/UFPE7 Oracle InterMedia Pontuaçã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

8 10/31/2015 © CIn/UFPE8 Oracle InterMedia Como interMedia verifica a similaridade (Cont.) Grau de similaridade consiste na soma dos produtos entre a distância de cada atributo visual e seu respectivo peso Exemplo: Atributo VisualDistânciaPeso Cor 150.7 Textura 50.2 Formato 500.1 Grau = 0.7 * 15 + 0.2 * 5 + 0.1 * 50 = 16.5

9 10/31/2015 © CIn/UFPE9 Oracle InterMedia Como interMedia verifica a similaridade (Cont.) Exemplo: Recupere todas as imagens semelhantes a uma dada imagem CURSOR 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.

10 10/31/2015 © CIn/UFPE10 Oracle InterMedia Métodos do Tipo ORDImageSignature Construtor: init() Inicializa instâncias deste tipo BEGIN INSERT INTO tabela (produto_id, produto_foto, foto_ass) VALUES (1910, ORDSYS.ORDImage.init('FILE','FILE_DIR‘,'speaker.jpg'), ORDSYS.ORDImageSignature.init()) ; COMMIT; END; /

11 10/31/2015 © CIn/UFPE11 Oracle InterMedia Métodos do Tipo ORDImageSignature (cont.) generateSignature() Gera uma assinatura para uma dada imagem DECLARE t_image ORDSYS.ORDImage ; image_sig ORDSYS.ORDImageSignature ; BEGIN SELECT p.produto_foto, p.foto_ass INTO t_image, image_sig FROM tabela p WHERE p.produto_id = 2402 FOR UPDATE; -- Gera a assinatura image_sig.generateSignature (t_image) ; UPDATE tabela p SET p.foto_ass = image_sig WHERE p.produto_id = 2402; END; /

12 10/31/2015 © CIn/UFPE12 Oracle InterMedia Métodos do Tipo ORDImageSignature (cont.) isSimilar() Verifica se duas assinaturas são similares DECLARE image_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;

13 10/31/2015 © CIn/UFPE13 Oracle InterMedia isSimilar() -- Compara as images valor := 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()

14 10/31/2015 © CIn/UFPE14 Oracle InterMedia Métodos do Tipo ORDImageSignature (cont.) evaluateScore() Computa a distância entre duas assinaturas com base na influência dos pesos passados como parâmetros Retorna um valor entre 0.0 (imagens idênticas) e 100.0 (imagens diferentes)

15 10/31/2015 © CIn/UFPE15 Oracle InterMedia DECLARE t_image ORDSYS.ORDImage; c_image ORDSYS.ORDImage; image_sig ORDSYS.ORDImageSignature; compare_sig ORDSYS.ORDImageSignature; pont FLOAT; BEGIN SELECT p.produto_foto, p.foto_ass INTO t_image, image_sig FROM tabela p WHERE p.produto_id = 1910 FOR UPDATE; -- Gera a assinatura image_sig.generateSignature(t_image); UPDATE tabela p SET p.foto_ass = image_sig WHERE p.produto_id =1910;

16 10/31/2015 © CIn/UFPE16 Oracle InterMedia SELECT p.produto_foto, p.foto_ass INTO c_image, compare_sig FROM tabela p WHERE p.produto_id = 1940 FOR UPDATE; -- Gera a assinatura compare_sig.generateSignature(c_image); UPDATE tabela p SET p. foto_ass = compare_sig WHERE produto_id = 1940; SELECT p.produto_foto, p.foto_ass INTO t_image, image_sig FROM tabela p WHERE p.produto_id = 1910; SELECT p.produto_foto, p.foto_ass INTO c_image, compare_sig FROM tabela p WHERE p.produto_id = 1940;

17 10/31/2015 © CIn/UFPE17 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 ; /

18 10/31/2015 © CIn/UFPE18 Oracle InterMedia Uso de Índices no Oracle interMedia Tipo ORDImageIndex Permite definição, construção e manuteção de um índice para imagens Uma vez criado, ele é automaticamente atualizado quando imagens são inseridas, atualizadas ou removidas do BD O nome do índice pode ter até 24 caracteres Índices devem ser criados sobre os campos de assinatura e usados em grandes BD

19 10/31/2015 © CIn/UFPE19 Oracle InterMedia DECLARE t_image ORDSYS.ORDImage ; image_ass ORDSYS.ORDImageSignature ; BEGIN SELECT p.produto_foto, p.foto_ass INTO t_image, image_ass FROM tabela p WHERE 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 ; /

20 10/31/2015 © CIn/UFPE20 Oracle InterMedia CREATE INDEX idx1 ON tabela (foto_ass) INDEXTYPE IS ORDSYS.ORDIMAGEINDEX PARAMETERS (´ORDImage_Filter_Tablespace =, ORDImage_Index_Tablespace = ´ ) ; ANALYZE INDEX idx1 COMPUTE STATISTICS ;

21 10/31/2015 © CIn/UFPE21 Oracle InterMedia id_midialocadoduracaoprecocapanome_ capa Type t_midia titulodiretorgenerotrailernome_ trailer sinopsenome_ sinops Type t_dvd under t_midia Exemplo albumartistaestilofaixanome_ faixa letranome_ letra Type t_cd under t_midia

22 10/31/2015 © CIn/UFPE22 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 ;

23 10/31/2015 © CIn/UFPE23 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 ) ;

24 10/31/2015 © CIn/UFPE24 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 ) ;

25 10/31/2015 © CIn/UFPE25 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 ) ;

26 10/31/2015 © CIn/UFPE26 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 ;

27 10/31/2015 © CIn/UFPE27 Oracle InterMedia FaixaObj ORDSYS.ORDAudio ; ctx_faixa RAW (4000) : = NULL ; LetraObj ORDSYS.ORDDoc ; ctx_letra RAW (4000) : = NULL ; BEGIN -- insere a tupla INSERT 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() ) ) ;

28 10/31/2015 © CIn/UFPE28 Oracle InterMedia -- pega o identificador da tupla inserida SELECT max (id_midia) INTO id_cd from cd ; -- seleciona a tupla inserida SELECT c.capa, c.capa_sig INTO CapaObj, CapaObj_sig FROM 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 ;

29 10/31/2015 © CIn/UFPE29 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 ;

30 10/31/2015 © CIn/UFPE30 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 ;

31 10/31/2015 © CIn/UFPE31 Roteiro para Projeto Multimídia Criar Minimundo, modelo conceitual e esquema relacional Implementar as tabelas no SGBD, com atributos ORDAudio, ORDVideo, ORDImage e ORDDoc Implementar procedimentos para inserção e recuperação de dados multimídia do BD Implementar métodos para realização de consultas baseadas em contexto Testar e colocar o sistema em funcionamento Data da Entrega: 26 / 11 / 09

32 10/31/2015 © CIn/UFPE32 Roteiro para Nota Máxima Descrição de Minimundo Modelagem Conceitual Esquema Relacional Fazer 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


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

Apresentações semelhantes


Anúncios Google