MOLDELOS AVANZADOS DE BASES DE DATOS - Grupo Alarcos
MOLDELOS AVANZADOS DE BASES DE DATOS - Grupo Alarcos
MOLDELOS AVANZADOS DE BASES DE DATOS - Grupo Alarcos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>MOL<strong>DE</strong>LOS</strong><br />
<strong>AVANZADOS</strong> <strong>DE</strong><br />
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong><br />
FUNCIONALIDAD 3:<br />
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> Y WEB<br />
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> MULTIMEDIA<br />
CURSO 5ºA<br />
Raúl Arias García<br />
Emilio Fernández Viñas<br />
Noelia M. Sánchez Serrano<br />
11-03-2009
ÍNDICE<br />
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> Y WEB ...................................................................................................................... 2<br />
ORIGEN ............................................................................................................................................ 2<br />
INTEGRACIÓN WEB-BBDD ............................................................................................................... 2<br />
TIPOS <strong>DE</strong> <strong>DATOS</strong>: SEMIESTRUCTURADOS ....................................................................................... 4<br />
Tratamiento de los datos semiestructurados ............................................................................. 4<br />
TECNOLOGÍAS ................................................................................................................................. 7<br />
APLICACIONES COMERCIALES ......................................................................................................... 8<br />
VENTAJAS Y <strong>DE</strong>SVENTAJAS .............................................................................................................. 8<br />
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> MULTIMEDIA ......................................................................................................... 10<br />
<strong>DE</strong>FINICIÓN.................................................................................................................................... 10<br />
ORIGEN .......................................................................................................................................... 10<br />
INTEGRACIÓN MULTIMEDIA-BBDD ............................................................................................... 10<br />
CARACTERÍSTICAS .......................................................................................................................... 11<br />
TIPOS <strong>DE</strong> <strong>DATOS</strong>: BLOBs ................................................................................................................ 11<br />
APLICACIONES COMERCIALES ....................................................................................................... 13<br />
MMDBMS ...................................................................................................................................... 15<br />
COMPARATIVA .................................................................................................................................. 16<br />
BIBLIOGRAFÍA .................................................................................................................................... 18<br />
1
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> Y WEB<br />
ORIGEN<br />
A partir de finales de los 90, con la aparición de la WWW ”World Wide Web” se aumentó<br />
exponencialmente el volumen de los datos, haciéndose necesario el manejo de dichos datos de<br />
una forma especial. De ahí, que se hiciera necesario la creación de las bases de datos web.<br />
Al principio, las bases de datos sólo podían utilizarse al interior de las instituciones o en<br />
redes locales, pero actualmente la Web permite acceder a bases de datos desde cualquier parte<br />
del mundo, facilitando la consulta de las bases de datos. Una de las ventajas es el servicio de siete<br />
días a la semana las veinticuatro horas del día, sin interrupciones a menos que haya<br />
planificaciones de mantenimiento de las plataformas o el software.<br />
INTEGRACIÓN WEB-BBDD<br />
Es necesario integrar la web con bases de datos, para conseguir esta integración<br />
necesitamos una extensión (que se conoce como middleware web a bases de datos) que nos<br />
permite la comunicación entre el servidor web y la base de datos.<br />
El servidor web se puede comunicar con este middleware a través de dos interfaces:<br />
CGI (Common Gateway Interface)<br />
Interfaz de entrada común, es tecnología web que permite a un cliente (explorador web)<br />
solicitar datos de un programa ejecutado en un servidor web.<br />
CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un<br />
mecanismo de comunicación entre el servidor web y una aplicación externa cuyo resultado final<br />
de la ejecución son objetos MIME (Multipurpose Internet Mail Extensions). En una aplicación<br />
CGI, el servidor web pasa las solicitudes del cliente a un programa externo. La salida de dicho<br />
programa es enviada al cliente en lugar del archivo estático tradicional.<br />
La principal ventaja de la programación CGI es su sencillez, pero como desventaja tiene<br />
que es poco eficiente ya que el Servidor Web tiene que cargar el programa CGI por lo que tiene<br />
que conectar y desconectar con la base de datos cada vez que se recibe una petición disminuye la<br />
eficiencia del servidor.<br />
2
API (Application Programming Interface)<br />
Es la interfaz propuesta por Microsoft como una alternativa más rápida que el CGI. Dicha<br />
Interfaz proporciona funciones que suelen permitir entre otras cosas el acceso a BBDD y la gestión<br />
de sesiones de usuario. Tiene la ventaja de que se ejecutan cómo parte del servidor, ganando con<br />
ello tiempo ya que no se tienen que ejecutar cada vez que se solicite una página, además permite<br />
conexiones compartidas.<br />
La mayor desventaja que presenta es que es dependiente del servidor que utilicemos,<br />
decrementando de ese modo la portabilidad del sistema.<br />
La integración de las bases de datos con la web debe reunir una serie de características las<br />
cuales no se deben cumplir forzosamente aunque resulta una guía práctica a la hora de la<br />
integración:<br />
• La capacidad de acceder a datos corporativos valiosos de forma segura.<br />
• Conectividad independiente de los datos y del fabricante, para que exista libertad de<br />
elección a la hora de seleccionar el SGBD tanto en la actualidad como en el futuro.<br />
• La capacidad de conectarse con la base de datos sin depender de ningún servidor o<br />
explorador web propietarios.<br />
• Una solución de conectividad que aproveche todas las características del SGBD de la<br />
organización.<br />
• Una arquitectura abierta que permita la interoperabilidad con diversos sistemas y<br />
tecnologías, incluyendo soporte por ejemplo:<br />
Diferentes servidores web.<br />
El modelo de objetos componentes distribuidos de Microsoft (DCOM/COM).<br />
CORBA/IIOP (internet inter-ORB protocol).<br />
Java/RMI (remote method invocation).<br />
XML.<br />
Servicios web (SOAP, WSDL y UDDI).<br />
• Una solución económica eficiente que proporcione escalabilidad, posibilidades de<br />
crecimiento y posibilidades de modificación en direcciones estratégicas y que ayude a<br />
reducir los costes de desarrollar y mantener las aplicaciones<br />
• Soporte para transacciones que abarquen múltiples solicitudes HTTP<br />
• Soporte para mecanismos de autenticación basados en sesión y en la aplicación<br />
• Un rendimiento aceptable<br />
• Un esfuerzo de administración mínimo<br />
• Un conjunto de herramientas de productividad de alto nivel que permita desarrollar,<br />
mantener e implantar las aplicaciones con relativa facilidad y velocidad<br />
3
TIPOS <strong>DE</strong> <strong>DATOS</strong>: SEMIESTRUCTURADOS<br />
Los datos semiestructurados son irregulares o incompletos. Tienen una estructura que<br />
puede cambiar de forma rápida o impredecible, por ello, a este tipo de datos no se les puede fijar<br />
un esquema fijo de antemano. La información asociada a dicho esquema normalmente está<br />
contenida dentro de los propios datos. La diferencia entre los SGBD semiestructurados con los<br />
relacionales o los orientados a objetos es que estos últimos deben seguir un esquema predefinido,<br />
como es el caso de los relacionales, cuyo esquema está orientado a tablas, o los orientados a<br />
objetos, que ofrecen la posibilidad de crear estructuras más ricas pero aun así los datos deben<br />
estar fijados a un esquema predefinido. Por eso que estos SGBD tienen problemas a la hora de<br />
manejar datos semiestructurados. A pesar de poder representarse de distintas maneras,<br />
actualmente la mejor manera de hacerlo es a través del lenguaje XML.<br />
Tratamiento de los datos semiestructurados<br />
Modelos de Intercambio de Objetos (OEM, Object Exchange Model)<br />
Es un modelo de objetos anidados que fue diseñado en principio para el proyecto TSIMMIS<br />
(The Standford-IBM Manager of Multiple Information Sources) para soportar la integración de<br />
datos de diferentes origines de datos.<br />
Los datos OEM son carentes de esquema y auto-descriptivos y puede considerarse como<br />
un grafo dirigido etiquetado, donde los nodos son objetos.<br />
Un objeto OEM está compuesto por un identificador único de objeto, por ejemplo “&3”,<br />
de una etiqueta textual descriptiva, “name”, un tipo, “string”, y un valor, “Ann Beech”. Estos<br />
objetos pueden ser atómicos o complejos: los atómicos son objetos que contienen un valor para el<br />
tipo base (entero, cadena de caracteres,…) y los objetos complejos, cuyo tipo es un conjunto de<br />
identificadores de objetos, pueden ser padres de múltiples objetos o hijos de múltiples padres.<br />
Estos objetos se pueden considerar como una cuádrupla (label,oid, type, value). Por ejemplo:<br />
{staff, &4, set, (&9,&10)} {name, &3, string, “Ann Beech”} {salary, &10, decimal, 12000}<br />
Lore (Lightweight Object Repository) y Lorel<br />
Lore es un SGBD para datos semiestructurados que utiliza el modelo OEM. Tiene un<br />
lenguaje de consulta propio, Lorel (lenguaje de consulta de Lore), que es una extensión del<br />
lenguaje OQL (Object Query Lenguaje) y cuyas características son:<br />
4
Answer<br />
Una sintaxis similar a SQL.<br />
Obtiene resultados significativos aún en ausencia de algunos datos.<br />
Opera uniformemente con datos de diferentes tipos.<br />
Devuelve información heterogénea.<br />
Resúmenes de datos que se generan y mantienen dinámicamente que permiten realizar<br />
consultas significativas y son utilizados por el procesador de consultas para aumentar la<br />
eficiencia de cada consulta.<br />
Ejemplo de consulta Lorel:<br />
SELECT s.Oversees<br />
FROM DreamHome.Staff s<br />
WHERE s.name = “Ann Beech”<br />
Su resultado es:<br />
PropertyForRent &5<br />
street &11 “2 Manor Rd”<br />
type &12 “Flat”<br />
monthlyRent &13 375<br />
OverseenBy &4<br />
PropertyForRent &6<br />
Street &14 “18 Dale Rd”<br />
type &15 1<br />
annualRent &16 7200<br />
OverseenBt &4<br />
XML (eXtensible Markup Lenguage):<br />
XML es un metalenguaje (es decir, un lenguaje para describir otros lenguajes) que permite<br />
a los diseñadores crear sus propias etiquetas personalizadas para proporcionar funcionalidad no<br />
disponible en HTML. En 1998 se ratificó formalmente la primera versión de XML como un estándar<br />
de intercambio de datos. Principalmente hay dos modelos de datos a la hora de trabajar con XML:<br />
el modelo centrado en los datos y el modelo centrado en los documentos.<br />
En un modelo centrado en los documentos, XML se utiliza como formato de<br />
almacenamiento e intercambio para datos que están estructurados. En este caso, los datos<br />
podrían almacenarse en un SGBD relacional, objeto-relacional u orientado a objetos. Para poder<br />
almacenar datos XML en SGBD tradicionales es necesario transformar las colecciones XML en<br />
esquemas compatibles con los SGBD tradicionales. Por ejemplo, XML ha sido completamente<br />
integrado en los sistemas Oracle9i, Oracle10g y Oracle11g a través de una extensión llamada<br />
Oracle XML DB. En el caso de las consultas SQL, en el estándar SQL: 2003 hay definidas una serie<br />
de extensiones a SQL que permiten la publicación de código XML, estas extensiones son SQL/XML.<br />
5
En un modelo centrado en los datos, XML se usa para codificar datos semiestructurados.<br />
Para estos sistemas se utiliza una base de datos XML nativa (NXD, Native XML Database). Las NXD<br />
definen un modelo de datos (lógico) para un documento XML (no para los datos contenidos en el<br />
documento), y almacena y extrae documentos de acuerdo con dicho modelo. Ejemplos de estos<br />
modelos son el modelo de los datos de XPath, los XML Infoset, y los modelos explicitados por el<br />
DOM y los eventos en SAX 1.0. Hay dos tipos de NXD según su almacenamiento:<br />
Basados en texto: almacenan el código XML como texto, por ejemplo como un archivo<br />
de un sistema de archivos o como un dato de tipo CLOB en un SGBD relacional.<br />
Basados en modelo: almacenan el código XML en alguna representación interna en<br />
forma de árbol.<br />
El grupo W3C Query Working Group propuso un lenguaje de consulta para XML<br />
denominado XQuery. Éste es un lenguaje funcional en el que una consulta se representa como una<br />
expresión. El valor de una expresión es siempre una secuencia, que es una colección ordenada de<br />
uno o más valores atómicos o nodos.<br />
Ejemplo de XQuery:<br />
A continuación se presenta un código en XML que representa la información de los<br />
empleados (este archivo recibe el nombre de staff_list.xml):<br />
<br />
<br />
<br />
<br />
<br />
SL21<br />
<br />
JohnWhite<br />
<br />
Manager<br />
1945-10-01<br />
30000<br />
<br />
<br />
SG37<br />
<br />
AnnBeech<br />
<br />
Assistant<br />
12000<br />
<br />
<br />
Una consulta XQuery en la que se obtenga una enumeración de los empleados de la<br />
sucursal B005 con un salario superior a 15000 euros sería:<br />
FOR $S IN doc(“staff_list.xml”)//STAFF<br />
WHERE $S/SALARY >15000 AND $S/@branchNo=”B005”<br />
6
RETURN $S/STAFFNO<br />
Daría como resultado:<br />
SL21<br />
TECNOLOGÍAS<br />
Las tecnologías más utilizadas para la comunicación desde un cliente hasta una base de<br />
datos gestionada por un servidor son descritas a continuación.<br />
ODBC(Open Database Connectivity)<br />
Es un estándar de acceso a Bases de datos desarrollado por Microsoft Corporation, el<br />
objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin<br />
importar qué Sistema Gestor de Bases de Datos (DBMS por sus siglas en inglés) almacene los<br />
datos.<br />
JDBC es el acrónimo de Java Database Connectivity, un API que permite la ejecución de<br />
operaciones sobre bases de datos desde el lenguaje de programación Java independientemente<br />
del sistema de operación donde se ejecute o de la base de datos a la cual se accede utilizando el<br />
dialecto SQL del modelo de base de datos que se utilice.<br />
JDBC(Java Database Connectivity)<br />
Es la técnica más madura, usada en el lado del servidor, para el acceso a Sistemas Gestores<br />
de Bases de Datos (SGBD) relacional desde Java, con un modelo similar al de la especificación<br />
ODBC. El paquete JDBC define una API de acceso a base de datos que soporta una funcionalidad<br />
SQL básica y permite acceder a un variado número de SGBD. Por encima del JDBC se construyen<br />
interfaces de aplicación a mayor nivel como por ejemplo: SQL embebido en Java o una<br />
correspondencia directa de tablas de una base de datos relacional a clases Java (Hibernate).<br />
JSP (Java Server Pages)<br />
Es un lenguaje de script del lado del servidor basado en Java que permite mezclar HTML<br />
estático con HTML generado dinámicamente y comunicarse para mandar información al cliente.<br />
Para establecer la comunicación es necesario el uso de un servidor Web tales como Apache, IIS<br />
(Internet Information Server), etc. El motor JSP transforma las etiquetas JSP, el código Java y el<br />
contenido HTML estático en código Java que el motor JSP organiza automáticamente a<br />
continuación para transformar un servlet Java; después de esto, el servlet se compila<br />
automáticamente para obtener código intermedio Java. Así, cuando un visitante solicita una<br />
7
página JSP, un servlet pre-compilado y que ha sido generado automáticamente se encarga de<br />
realizar toda la tarea.<br />
ASP (Active Server Page)<br />
Es un modelo de programación para la creación de páginas web interactivas y dinámicas<br />
en el servidor (de forma similar a JSP). A diferencia de CGI, ASP se ejecuta dentro del mismo<br />
proceso del servidor y es un mecanismo multihebra optimizado para gestionar un gran número de<br />
usuarios.<br />
IIS (Internet Information Server)<br />
Es un servidor de Microsoft destinado a la publicación, mantenimiento y gestión de<br />
páginas y portales Web. Se basa en varios módulos que le dan capacidad para procesar distintos<br />
tipos de páginas, por ejemplo Microsoft incluye los de Active Server Pages (ASP) y ASP.NET.<br />
También pueden ser incluidos los de otros fabricantes, como PHP o Perl.<br />
Oracle Internet Platform<br />
Es una plataforma compuesta por OracleAS (Oracle Application Server) y el SGBD Oracle,<br />
que trata de ampliar la funcionalidad de los entornos distribuidos. Se trata de una arquitectura de<br />
n-niveles basada en estándares: A nivel de web en HTTP y HTML/XML; para conectividad con la<br />
base de datos, servlet y páginas JSP se sirve de Java, J2EE, JDBC entre otros; para la manipulación<br />
de objetos se hace uso de la tecnología CORBA,…<br />
APLICACIONES COMERCIALES<br />
Comercio electrónico<br />
Los clientes pueden realizar y pagar pedidos a través del sitio web de la empresa pudiendo<br />
incluso proporcionar servicios y soporte en línea. Esto implica normalmente algún tipo de<br />
mecanismo de transacción seguro permitiendo a la empresa operar su negocio 24 horas al día,<br />
todos los días del año; incrementando así las oportunidades de negocio, reduciendo el coste de<br />
ventas y los servicios y consiguiendo una mayor satisfacción de los clientes.<br />
VENTAJAS Y <strong>DE</strong>SVENTAJAS<br />
Ventajas<br />
• Tiene las ventajas propias de los SGBD:<br />
Simplicidad.<br />
Independencia en cuanto a la plataforma.<br />
La disponibilidad de una interfaz gráfica de usuario.<br />
Estandarización.<br />
Soporte multiplataforma.<br />
Acceso transparente a red.<br />
8
Mecanismos escalables de implantación.<br />
Innovación.<br />
• Características de utilizar la tecnología web:<br />
Permitir acceso concurrente a los datos.<br />
Ofrecer mecanismos de seguridad.<br />
Soportar transacciones.<br />
Permitir almacenar grandes volúmenes de datos, y almacenamiento de diferentes<br />
archivos.<br />
Desventajas<br />
• Falta de fiabilidad.<br />
• Bajo nivel de seguridad.<br />
• Coste.<br />
• Bajo grado de escalabilidad.<br />
• Carencia de memoria del estado.<br />
• Ancho de banda.<br />
• Prestaciones que ofrece (es lento).<br />
9
<strong>BASES</strong> <strong>DE</strong> <strong>DATOS</strong> MULTIMEDIA<br />
<strong>DE</strong>FINICIÓN<br />
Una base de datos multimedia es una base de datos que alberga uno o más tipos de<br />
archivos de los medios de comunicación principales como .txt (documentos), .jpg (imágenes), .swf<br />
(vídeos), .mp3 (audio), etc., y poco se dividen en tres categorías principales:<br />
• Los medios de comunicación (tiempo-independiente, es decir, imágenes y escritura)<br />
• Medios dinámicos (en función del tiempo, es decir, video y sonido bytes)<br />
• Dimensional medios de comunicación (es decir, los juegos 3D o con ayuda de<br />
computadoras, elaboración de programas de CAD)<br />
Todos los principales medios de comunicación se guardan en los archivos binarios de<br />
cadenas de ceros y unos, y se codifican de acuerdo con el tipo de archivo.<br />
El término "datos" suele ser referenciados desde el punto de vista del equipo, mientras<br />
que el término "multimedios" se hace referencia desde el punto de vista del usuario.<br />
ORIGEN<br />
La aparición de aplicaciones multimedia sólo ha sido posible gracias al desarrollo de<br />
entornos gráficos (Macintosh, Windows, X-Window, NextStep...), los cuales han modificado en<br />
profundidad la manera de presentar y de interactuar sobre los elementos informativos.<br />
Uno de los problemas a resolver ha correspondido al almacenamiento y acceso a la<br />
información de tipo gráfico. A lo largo de los últimos años han proliferado gran cantidad de<br />
formatos de almacenamiento para gráficos (PICT, TIFF, gif, JPEG y otros), que han hecho necesario<br />
la creación de filtros y programas de transferencia entre unos y otros. Afortunadamente, se<br />
comienzan a establecer ciertos niveles de compatibilidad, con vista a su utilización en bases de<br />
datos, a través de metaficheros gráficos, que faciliten el acceso a todos los formatos,<br />
independientemente de cual se trate y de las aplicaciones que los manipulen.<br />
INTEGRACIÓN MULTIMEDIA-BBDD<br />
Las bases de datos que almacenan información tanto textual como numérica se ven<br />
enriquecidas por la posibilidad de completar los elementos a los que se hacen referencia mediante<br />
componentes gráficos y/o sonoros.<br />
10
La integración de diferentes tipos de información en un único documento pone de relieve<br />
la importancia de las tareas de representación del contenido informativo, especialmente la<br />
indización de imágenes y documentos sonoros.<br />
A pesar de ser la integración de bases de datos heterogéneas una de las razones del<br />
desarrollo de sistemas de gestión de bases de datos multimedia, la industria todavía no ha<br />
establecido todavía estándares de formato entre ellas, por lo que se repite la misma situación que<br />
en momentos anteriores, entre ficheros de base de datos correspondientes a aplicaciones como<br />
dBASE, Paradox, etc. Aunque las aplicaciones tradicionales ya ofrecen "puentes" para compartir<br />
sus bases de datos, por el momento esto no es posible en lo que respecta a las bases de datos<br />
multimedia. Sin embargo, están comenzando a aparecer en el mercado nuevas aplicaciones que,<br />
sin cumplir los requerimientos clásicos de un SGBD, pueden generar documentos multimedia,<br />
tomando como base información y datos contenidos en otros tipos de fichero.<br />
CARACTERÍSTICAS<br />
1. Encontrar rápidamente la información multimedia, buscando cualquier número de objetos<br />
referidos a un contenido de información, en un contexto de texto completo (y, a poder<br />
ser, en un contexto totalizador de la información)<br />
2. Conectar documentos según su contenido informativo, relacionando extractos de<br />
información relacionada de varios documentos, en uno nuevo.<br />
3. Facilitar el acceso instantáneo a los ficheros pertinentes, incluyendo los mecanismos<br />
necesarios de compresión y descompresión para la manipulación de aquellos.<br />
4. Conocer y manipular, por parte del usuario, la estructura misma de la información.<br />
5. Crear relaciones entre grupos de elementos informativos.<br />
TIPOS <strong>DE</strong> <strong>DATOS</strong>: BLOBs<br />
Los BLOB (Binary Large OBjects, grandes objetos binarios) son elementos utilizados en las<br />
bases de datos para almacenar datos de gran tamaño que cambian de forma dinámica. Este tipo<br />
de datos no está forzado en una determinada estructura. Por ejemplo, un campo varchar de una<br />
base de datos normal se podría estructurar a 14 caracteres de largo y solo aceptar minúsculas. En<br />
cambio, un tipo dato BLOB no puede ser limitado en el tipo de contenido, ya que éste puede ser<br />
de varios gigabytes de tamaño.<br />
Los campos de tipo BLOB se utilizan para almacenar gráficos, audio, video o documentos<br />
(conjunto de texto, imágenes,…).<br />
11
Las columnas BLOB pueden ser añadidas, modificas y eliminadas. Sin embargo, no pueden<br />
ser manipuladas con las sentencias de las bases de datos estándar (no se puede hacer un insert<br />
directamente).<br />
El siguiente código de ejemplo guarda la imagen c:\imagen\miimagen.gif en la tabla<br />
T_imagenes que tiene la siguiente estructura:<br />
SQL> Desc T_imagenes<br />
CAMPO TIPO<br />
Id Varchar2(20)<br />
Img Blob<br />
El campo img es un campo blob donde se almacenará el contenido del archivo de imagen.<br />
Hay 3 aspectos a tener en cuenta:<br />
1. Definir para la bd oracle, un directorio asociado a la carpeta del sistema operativo<br />
donde se encuentra la imagen (c:\imagen).<br />
SQL> create directory IMAGEN_DIR as 'c:\imagen\';<br />
2. Definir permisos de lectura al usuario que carga la imagen a la bd. Si por ejemplo el<br />
usuario se llama usuariopruebas, la sentencia sql sería:<br />
SQL> grant read on directory IMAGEN_DIR to usuariopruebas;<br />
3. Adicionar el código para la carga. En este caso, se creará un procedimiento llamado<br />
agregaImagen, cuyos parámetros de entrada son el directorio y el nombre del archivo a leer. El<br />
código del proc es:<br />
CREATE OR REPLACE PROCEDURE agregaImagen (directorio IN varchar2, archivoImagen IN varchar2) as<br />
f_lob bfile;<br />
b_lob blob;<br />
BEGIN<br />
f_lob := bfilename(directorio, archivoImagen);<br />
INSERT INTO T_imagenes VALUES ( 'id1', empty_blob() )<br />
RETURNING img into b_lob;<br />
--Abrir archivo<br />
dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);<br />
--Leer archivo<br />
dbms_lob.loadfromfile( b_lob, f_lob, dbms_lob.getlength<br />
(f_lob) );<br />
--Cerrar archivo<br />
dbms_lob.fileclose(f_lob);<br />
commit;<br />
END;<br />
12
Ahora, para completar el ejercicio, se ejecuta el procedimiento agregaImagen con los<br />
parámetros IMAGEN_DIR y el nombre del archivo a cargar.<br />
SQL> execute agregaImagen('IMAGEN_DIR','miimagen.gif')<br />
APLICACIONES COMERCIALES<br />
Existen numerosos tipos diferentes de bases de datos multimedia, incluyendo:<br />
• La autenticación de bases de datos multimedia (también conocido como una base de<br />
datos multimedia de Verificación, es decir, escaneo de retina), es una comparación de<br />
datos 1:1<br />
• La identificación de bases de datos multimedia es una comparación de los datos de uno-amuchos<br />
(es decir, contraseñas y números de identificación personal<br />
• Un emergente tipo de base de datos multimedia, es la base de datos de biometría<br />
multimedia, que se especializa en la verificación automática de humanos sobre la base de<br />
los algoritmos de su comportamiento fisiológico o perfil.<br />
Estos métodos de identificación son superiores a la tradicional base de datos que<br />
requieren los típicos métodos de entrada de números de identificación personal y contraseñas.<br />
Debido al hecho de que la persona identificada no necesita estar físicamente presente, donde la<br />
identificación de verificación se está llevando a cabo. Esto elimina la necesidad de que la persona<br />
que está siendo explorada tenga que recordar un PIN o contraseña.<br />
La tecnología de identificación de huellas dactilares también se basa en este tipo de base<br />
de datos multimedia, pero existe una dificultad software y hardware para realizar la identificación.<br />
Supongamos el hecho de querer validar a una persona por el reconocimiento dactilar. Para realizar<br />
el reconocimiento será necesario un lector de huellas digitales para escanear y digitalizarlas para<br />
posteriormente ser almacenada en una base de datos multimedia. Sin embargo, existen una serie<br />
de dificultades ligadas al almacenamiento como son:<br />
• Sólo basta con que un bit de ambas imágenes sea distinto para que dejen de ser<br />
iguales, lo que ocasiona que no se pueda hacer una búsqueda por exactitud, como se<br />
hace en el caso de tipos de datos tradicionales (varchar, number,…); y se debe hacer<br />
una búsqueda por similitud en la que se determina que dos imágenes son similares si<br />
superan un porcentaje.<br />
• Además, las imágenes ocupan mucho más que cualquier tipo de dato primitivo, con lo<br />
que se necesita un gran espacio de almacenamiento.<br />
Un ejemplo de dificultad para calcular la similitud entre imágenes es la siguiente, donde se<br />
aprecia que dos imágenes con un alto grado de similitud, verdaderamente no tienen relación.<br />
13
Las bases de datos multimedia son también utilizadas en otros muchos campos como la<br />
biología molecular, la medicina, la geografía y la industria manufacturera facilitando la realización<br />
de muchos procesos en estos campos.<br />
14
MMDBMS<br />
Un sistema de base de base de datos multimedia (MMDBMS) puede incrementar los<br />
recursos para manipular texto, voz e imágenes en forma efectiva dentro de una estructura de base<br />
de datos. Los MMDBMS proveen los tradicionales beneficios de los sistemas de bases de datos así<br />
como la concatenación de voz, transformación de la información, rotación de imágenes,<br />
ampliación de objetos y mezcla de varios tipos de datos. El problema con estos sistemas es la<br />
compleja interfaz. Como la funcionalidad de estos equipos continua incrementándose, se<br />
desarrollarán más aplicaciones para su uso. Combina más aplicaciones con facilidad de utilización y<br />
se desarrolla una oportunidad para la ventaja comparativa.<br />
características:<br />
Un sistema gestos de bases de datos multimedia tiene que poseer las siguientes<br />
• Búsqueda por texto completo<br />
• Tolerancia a faltas de ortografía (e.g., fallas del OCR)<br />
• Administración de sinónimos, catálogo<br />
• Búsqueda de documentos similares<br />
Y teniendo en cuenta que una imagen se basa en un conjunto de pixeles toso sistema<br />
gestor de datos multimedia debe tener como funcionalidad básica:<br />
• Selección de partes de imágenes<br />
• Búsqueda en BD de imágenes<br />
15
COMPARATIVA<br />
Como se observa en la imagen, tanto las bases de datos web como las multimedia se<br />
encuentran en el plano de distribución/integración.<br />
Debido a que se encuentran en el mismo plano se encuentran muy relacionadas en cuanto<br />
a sus características. En el mundo real, suelen usarse de forma combinada. Además, ambas se<br />
basan en ampliar las tradicionales bases de datos relacionales y se encuentran en continua<br />
evolución.<br />
La principal característica común que presentan es la velocidad. Por un lado, las bases de<br />
datos web requieren rapidez a la hora de proporcionar la información solicitada al cliente vía web.<br />
Por otro lado, para poder llevar a cabo las búsquedas por similitud en las bases de datos<br />
multimedia se requiere de una gran velocidad de extracción de información para poder ejecutar el<br />
algoritmo de similitud de forma eficiente.<br />
Viendo la relación existente entre las dos bases de datos, se puede determinar que una<br />
base de datos multimedia si se ejecuta en un paradigma cliente-servidor vía web, se convierte en<br />
una base de datos web con características multimedia, extendiendo su características propias de<br />
16
ases de datos multimedia a las que proporciona la explotación de bases de datos web. Sin<br />
embargo, se pueden tener estos dos tipos de bases de datos por separado, es decir, una base de<br />
datos web no tiene porqué almacenar datos multimedia y una base de datos multimedia no tiene<br />
porqué ser accedida vía web. Esto pone de relevancia la única diferencia existente entre las dos, la<br />
cual consiste en que una base de datos web requiere necesariamente de una red (ya sea de tipo<br />
LAN, WAN, intranet o Internet) mientras que las multimedia no requieren de una infraestructura<br />
de red.<br />
17
BIBLIOGRAFÍA<br />
• “Sistemas de bases de datos, un enfoque practico para el diseño, implementación<br />
y gestión”. Thomas M. Connolly, Carolyn E. Beg. Pearson Addison Wesley.<br />
4°Edicion.<br />
• “Database Systems. Concepts, languages and Architectures”. Paolo Atzeni, Stefano<br />
Ceri, Stefano Ceri, Stefano Paraboschi and Riccardo Torlone.Mc GrawHill,1997.<br />
• “Advanced Database Technology and Design”. M. Piattini, O. Diaz. Artech House.<br />
• http://es.wikipedia.org/wiki/Open_Database_Connectivity<br />
• http://tecnologia.glosario.net/terminos-viricos/iis-(internet-information-server)-<br />
9751.html<br />
• http://es.wikipedia.org/wiki/IIS<br />
• http://ict.udlap.mx/people/carlos/is346/admon07.html<br />
• http://es.wikipedia.org/wiki/BLOB<br />
• http://tramullas.com/documatica/6.html<br />
• http://es.tech-faq.com/multimedia-database.shtml<br />
• http://es.tech-faq.com/blob.shtml<br />
• http://www.zonaoracle.com/?q=node/2224 (ejemplo blob)<br />
• http://www.kybele.etsii.urjc.es/docencia/BD/2008-2009/Material/%5BBD-2008-<br />
09%5DT1.BDOO.pdf<br />
• http://www.dirinfo.unsl.edu.ar/fadlr/curso-AECI/BDMultimedia.pdf<br />
• http://www.ast-software.com/AST/es/Compania/tecnologia.html (identificación<br />
biométrica dactilar)<br />
• http://grupos.unican.es/igestion/socote/pdf/ActasCongreso2.pdf<br />
18