• Nenhum resultado encontrado

4.2 Extens˜ao da Linguagem SQL

5.1.1 Interpreta¸c˜ao dos Comandos

O interpretador de comandos ´e o principal componente do SIREN, pois s˜ao as an´a- lises, sint´aticas e semˆanticas realizadas por ele que determinam: quais e como os dados complexos devem ser consultados ou adicionados, tanto nas bases de dados das aplica- ¸c˜oes quanto no dicion´ario de dados; quando e quais extratores de caracter´ısticas devem ser utilizados; quando e como os atributos complexos devem ser indexados por um MAM; quais e como as opera¸c˜oes por similaridade devem ser realizadas. Todos os comandos SQL enviados pelas aplica¸c˜oes s˜ao interceptados pelo SIREN e analisados pelo interpretador. Caso o comando n˜ao possua nenhuma cl´ausula que envolva constru¸c˜oes que representem opera¸c˜oes por similaridade e nenhuma referˆencia a um objeto complexo, ele ´e enviado para o SGBD e a resposta retornada pelo SGBD ´e repassada de volta para a aplica¸c˜ao. Assim, quando uma aplica¸c˜ao envia apenas comandos em SQL padr˜ao, estes s˜ao execu- tados de maneira transparente. Por outro lado, caso o comando possua alguma cl´ausula que envolva constru¸c˜oes por similaridade ou alguma referˆencia a um objeto complexo de- finido pela extens˜ao da linguagem, o comando ´e re-escrito e as opera¸c˜oes por similaridade s˜ao executadas internamente, utilizando o SGBD em quest˜ao para executar as opera¸c˜oes sobre os dados tradicionais.

Para permitir a manipula¸c˜ao de objetos complexos dos tipos PARTICULATE, STILLI- MAGEe AUDIO por meio de comandos SQL em um SGBD relacional, foi necess´ario estender o dicion´ario de dados do SGBD com uma base de meta-dados para armazenar a estrutura de como esses objetos s˜ao utilizados pelas aplica¸c˜oes (veja Apˆendice C). A defini¸c˜ao de dados complexos ´e utilizada pelo SIREN para manipular dados como: quais extratores de caracter´ısticas s˜ao utilizados nas m´etricas definidas para os tipos de dados STILLI- MAGE e AUDIO; quais atributos tradicionais comp˜oem cada atributo PARTICULATE; quais m´etricas est˜ao dispon´ıveis para cada dom´ınio complexo; quais s˜ao os atributos de do- m´ınios complexos armazenados em cada rela¸c˜ao; quais m´etricas est˜ao associadas a cada atributo complexo. Os dados que comp˜oem a base de meta-dados do SIREN s˜ao obtidos no momento da interpreta¸c˜ao de comandos SQL que definem a cria¸c˜ao de m´etricas, ´ın- dices e tabelas que fa¸cam referˆencia ou contenham atributos pertencentes aos dom´ınios complexos suportados pelo SIREN.

Sempre que um comando CREATE TABLE ´e interceptado, o SIREN o analisa e arma- zena as informa¸c˜oes referentes aos atributos complexos nas tabelas do sistema. Quanto ao armazenamento dos dados de tipos complexos, os dados do tipo PARTICULATE s˜ao armaze- nados pelos atributos que os comp˜oem e assim, n˜ao apresentam nenhum requisito especial de armazenamento al´em dos j´a dispon´ıveis nos SGBD. Por outro lado, o armazenamento de dados dos tipos STILLIMAGE e AUDIO precisa considerar as caracter´ısticas associadas a eles. Embora esses tipos de dados sejam armazenados em atributos do tipo BLOB, ´e preciso armazenar as caracter´ısticas extra´ıdas deles. A extra¸c˜ao de caracter´ısticas ´e uma tarefa geralmente custosa e deve ser executada somente uma vez, quando um objeto ´e armaze- nado na base de dados. As caracter´ısticas s˜ao armazenadas como atributos textuais ou num´ericos, associados ao objeto complexo. Como o usu´ario n˜ao especifica atributos nas suas rela¸c˜oes para armazenar as caracter´ısticas extra´ıdas, o sistema deve criar o local para armazenar essas caracter´ısticas e suas associa¸c˜oes com os respectivos objetos complexos de modo transparente ao usu´ario.

Para objetos dos tipos STILLIMAGE e AUDIO isso ´e feito seguindo uma abordagem se- melhante `a utilizada pelo CIRCE, ou seja, modificando a estrutura das tabelas definidas pelo usu´ario, que contenham esses tipos de atributos, da seguinte maneira: cada atributo STILLIMAGE/AUDIO ´e substitu´ıdo por uma referˆencia a uma tabela controlada pelo sis- tema (denominada IPV$nometabela_nomeatributo no caso de atributos STILLIMAGE e APV$nometabela_nomeatributono caso de atributos AUDIO), que possui como atributos um identificador, o atributo BLOB que armazena a imagem/trilha de ´audio e o conjunto de atributos que armazenam as caracter´ısticas extra´ıdas pelos extratores utilizados em cada m´etrica associada ao atributo STILLIMAGE/AUDIO. Assim, uma nova tabela ´e criada para cada atributo STILLIMAGE/AUDIO. Toda vez que uma nova imagem/trilha de ´audio ´e armazenada na rela¸c˜ao, o SIREN intercepta o comando INSERT, armazena os atributos tradicionais na tabela definida pelo usu´ario e as imagens/trilhas de ´audio nas respectivas

y1 22 ... y2 125 ... y3 50.5 ... y4 75 ... y5 33 ... ... ym 12.8 ... ... ... PARTICULATE (b) ID Imagem CA Cz 2050 ... ... ... ... Características extraídas daimagem BLOB x1 101 xyz ... 1001 ... ... ... ... ... ... STILLIMAGE x2 x3 xn 2050 AUDIO ID AUDIO CA Cz 1001 ... ... ... ... Características extraídas doáudio BLOB (a)

Figura 5.2: Esquema de armazenamento dos novos tipos de dados complexos. (a) STIL- LIMAGE e AUDIO. (b) PARTICULATE.

tabelas do sistema e tamb´em insere os objetos complexos em um MAM. Em seguida, o SIREN realiza chamadas para os extratores de caracter´ısticas e armazena a sa´ıda desses extratores nas tabelas correspondentes do sistema. A Figura 5.2 apresenta uma ilustra¸c˜ao do esquema de armazenamento desses novos tipos de dados complexos.

Toda vez que um usu´ario solicita dados de suas tabelas por meio da especifica¸c˜ao de comandos SELECT, o SIREN realiza uma jun¸c˜ao entre as tabelas do sistema e as tabelas do usu´ario e remove os atributos que armazenam as caracter´ısticas, de maneira que o usu´ario n˜ao vˆe a tabela dividida nem suas caracter´ısticas. Quando um usu´ario envia consultas que envolvem predicados por similaridade, o SIREN utiliza as caracter´ısticas extra´ıdas dos objetos do tipo STILLIMAGE/AUDIO ou o conjunto de atributos que comp˜oem o objeto PARTICULATE para executar as opera¸c˜oes por similaridade.