7. VERÓNICA VALENCIA Y ANDRÉS MORENO
EJEMPLIFICACION No/a: TipoEspecialidad se define
como un tipo enumerado con todas
las especialidades conocidas.
XXXXNNNN se utiliza para definir
un tipo con cuatro caracteres
alfanuméricos seguidos
por cuatro dígitos.
50. DISEÑO DE UNA BASE DE DATOS RELACIONAL UTILIZANDO EL MAPEADO ER-a-RELACIONAL
CAPÍTULO 7: Diseño de bases de datos relacionales por mapeado ER- y EER-a-relacional
CAROLINA ARTEAGA Y MELI CATUCUAMBA
64. Metodologías de
programación
de bases de datos
Incrustación de comandos de
bases de datos
en un lenguaje de
programación
de propósito general.
Uso de una biblioteca de
funciones
de bases de datos
Diseño de un lenguaje
completamente nuevo
En el lenguaje de programación hast
se dispone de una biblioteca de
funciones para las llamadas
a la base de datos.
Por ejemplo, puede haber
funciones para conectar con una
base de datos, ejecutar una consulta,
ejecutar una actualización, etcétera.
Las sentencias de base de datos se
incrustan en el lenguaje de programación
host, identificándolas con un prefijo
especial.
Por ejemplo, el prefijo para SQL
incrustado es la cadena EXEC SQL.
Desde el principio para que sea
compatible con el modelo de base
de datos y el lenguaje de consulta.
Capítulo 9: TÉCNICAS DE
PROGRAMACIÓN DE SQL
La mayoría de los sistemas de bases de datos tienen una interfaz interactiva donde se pueden escribir
directamente estos comandos SQL para entrar en el sistema de bases de datos. Por ejemplo, en un computador
que tenga instalado Oracle RDBMS, el comando SQLPLUS inicia la interfaz interactiva.
ALEJANDRA SARANGO
65. Al escribir un programa de este tipo, una secuencia de interacción puede ser la siguiente:
SECUENCIA TÍPICA DE
INTERACCIÓN
EN LA PROGRAMACIÓN
DE BASES DE DATOS
Cuando el programa cliente requiere acceso a una base de datos particular, el programa
primero debe establecer o abrir una conexión con el servidor de bases de datos.
Normalmente, esto implica especificar la dirección de Internet (URL)
Una vez establecida la conexión, el programa puede interactuar con la base de
datos emitiendo consultas,actualizaciones y otros comandos de bases de datos.
Cuando el programa ya no necesita acceso a una base de datos en particular,
debe terminar o cerrar la conexión con la base de datos.
Recuperación de tuplas sencillas con SQL incrustado
• Para ilustrar los conceptos de SQL incrustado, utilizaremos e como lenguaje de programación
host.4 Dentro de un comando de SQL incrustado, nos podemos referir a las variables del
programa e especialmente declaradas. Son las denominadas variables compartidas, porque se
utilizan en el programa e y en las sentencias SQL incrustadas. Las variables van prefijadas con
dos puntos (:) cuando aparecen en una sentencia SQL. De este modo, se distinguen los
nombres de las variables del programa de los nombres de las estructuras de esquema de la
base de datos, como los atributos y las relaciones.
• Los nombres de las estructuras del esquema de la base de datos (como los atributos y las
relaciones) sólo se pueden utilizar en los comandos SQL, pero las variables del programa
compartidas se pueden utilizar en cualquier parte del programa e sin el prefijo de los dos puntos
(:). ALEJANDRA SARANGO
66. Recuperación de varias tuplas con SQL incrustado y utilizando cursores
Podemos pensar en un cursor como en un puntero que apunta a una sola tupla (fila) del resultado de una consulta que recupera varias tuplas.
El cursor se declara cuando se declara el comando de consulta SQL en el programa. Más tarde en el programa, un comando OPEN CURSOR
toma el resultado de la consulta de la base de datos y establece el cursor a una posición anterior a la primera fila de dicho resultado. Ésta se
convierte en la fila actual para el cursor. A continuación, se ejecutan comandos FETCH en el programa; cada uno mueve el cursor a la
siguiente fila del resultado de la consulta, convirtiéndola en la fila actual y copiando los valores de sus atributos en las variables del programa e
(lenguaje host) especificadas en el comando FETCH mediante una cláusula INTO. La variable de cursor es básicamente un iterador que itera
por las tuplas del resultado de la consulta (una tupla a la vez). Esto es parecido al procesamiento tradicional por registros.
Aplicación
O) prompt("Introduzca el nombre del departamento: " nombredpto)
1) EXEC SQL
2) select NumeroDpto into :numdpto
3) from DEPARTAMENTO where NombreDpto = :nombredpto
4) EXEC SQL DECLARE EMP CURSOR FOR
5) select Dni, Nombre, Apellido1, Sueldo
6) from EMPLEADO where Dno = :numdpto
7) FOR UPDATE OF Sueldo ;
8) EXEC SQL OPEN EMP ;
9) EXEC SQL FETCH from EMP into :dni, :nombrepila, : apellido1 ,
:sueldo
10) while (SQLCODE == O) {
11) printf ("Nombre del empleado: ", Nombre, Apellido1) ;
12) prompt (" Introduzca la subida del sueldo: ", subida) ;
13) EXEC SQL
14) update EMPLEADO
15) set Sueldo = Sueldo + :subida
16) where CURRENT OF EMP ;
17) EXEC SQL FETCHALEJANDRA SARANGO from EMP into :dni,
:nombrepila, :apellido1, :sueldo
18) )
19) EXEC SQL CLOSE EMP ;
Fragmento de programa E2: fragmento de un programa C que utiliza cursores con SOL incrustado con propósitos de actualización.
//Fragmento de programa E2:
ALEJANDRA SARANGO
67. ESPECIFICACIÓN DE CONSULTAS EN TIEMPO DE
EJECUCIÓN CON SQL DINÁMICO
En algunos casos, es conveniente escribir un programa que pueda ejecutar diferentes consultas o
actualizaciones SQL (u otras operaciones) dinámicamente en tiempo de ejecución.
Queremos escribir un programa que acepte una consulta SQL escrita desde el monitor, la ejecute y
muestre su resultado, como si se tratara de las interfaces interactivas disponibles en la mayoría de los
DBMSs.
Cuando una interfaz amigable genera consultas SQL dinámicamente para el usuario basándose en operaciones
"apuntar y clic" en un esquema gráfico por ejemplo, una interfaz parecida a QBE.
Fragmento de programa E3: fragmento de programa C que utiliza SQL dinámico para actualizar una tabla.
//Fragmento de programa E3:
O) EXEC SQL BEGIN DECLARE SECTION
1)varchar sqlupdatestring [256]
2)EXEC SQL END DECLARE SECTION ;
3)prompt(lIIntroduzca el comando de actualización: ", sqlupdatestring)
4)EXEC SQL PREPARE sqlcommand FROM :sqlupdatestring ;
5)EXEC SQL EXECUTE sqlcommand ;
ALEJANDRA SARANGO
68. SQLJ: comandos SQL incrustados en Java
En SQLJ, los comandos de SQL incrustados dentro de un programa de Java van precedidos por #sql, como se muestra en la
línea 3 de J1, a fin de ser identificados por el preprocesador. SQLJ utiliza una cláusula INTO (parecida a la que se utiliza en
SQL incrustado) para devolver los valores de atributo recuperados de la base de datos por una consulta SQL en las variables
del programa Java. Estas últimas van precedidas por los dos puntos (:) en la sentencia SQL, como en SQL incrustado. En J1,
la consulta SQLJ incrustada sólo selecciona una tupla; por eso podemos asignar los valores de sus atributos directamente a
las variables del programa Java en la cláusula INTO de la línea 4. Para las consultas que recuperan muchas tuplas, SQLJ
utiliza el concepto de iterador, que es algo parecido a un cursor en SQL incrustado.
Fragmento de programa J1: fragmento de programa Java con SQLJ.
//Fragmento de programa Jl:
1) dni = readEntry("Introduzca un número de DNI: ") ;
2) try {
3) #sql { select Nombre, Apellidol, Direccion, Sueldo
4) into :nombrepila, :apellidol, :direcc, :sueldo
5) from EMPLEADO where Dni = : dni} ;
6) catch (SQLException se) {
7) System.out.println("Este número de DNI no existe: " + dni) ;
8) Return ;
9) }
10) System.out.println(nombrepila + " " + apellidol + " " + direcc + " " + sueldo)
ALEJANDRA SARANGO
69. RECUPERACIÓN DE
VARIAS TUPLAS EN
SQLJ UTILIZANDO
ITERADORES
1
Un iterador con nombre está asociado con el resultado de
una consulta enumerando los nombres y los tipos de los
atributos que aparecen en dicho resultado.
2
Un iterador posicional sólo enumera los tipos de
atributos que aparecen en el resultado de la
consulta.
Los nombres de atributo deben corresponderse
con las variables del programa Java,
En los dos casos, la lista debe tener el mismo
orden que los atributos de la cláusula SELECT
de la consulta.
1.nombredpto ~ readEntry ( "Introduzca el nombre del departamento: ")
2.try {
3.#sql { select NumeroDpto into :numdpto
4.from DEPARTAMENTO where NombreDpto ~ :nombredpto} ;
5.catch (SQLException se)
6.System. out .println ("El departamento no existe: " + nombredpto)
7.Return ;
8.}
9.System.out.printline("Información del empleado de este departamento: "
+ nombredpto)
10.#sql iterator Emp(String dni, String nombrepila, String apellido1,
double sueldo) ;
11.Emp e ~ null ;
12.#sql e ~ { select dni, nombrepila, apellido1, sueldo
13.from EMPLEADO where Dno ~ :numdpto}
14.while (e. next ()) {
15. System.out.printline(e.dni + " " + e.nombrepila
+ " " + e.apellido1 + " " + e. sueldo) ;
16. } ;
17.e. close ()
Fragmento de programa J2A: fragmento de programa Java que utiliza un iterador con nombre para imprimir información de un empleado de un departamento
en particular. //Fragmento de pograma J2A:
ALEJANDRA SARANGO
70. ITERADORES POSICIONALES
La principal diferencia entre un iterador posicional y uno con nombre es que en el primero no hay atributos (correspondientes a los nombres
de las variables del programa), sólo tipos de atributos. Aun así, deben ser compatibles con los tipos de los atributos del resultado de la
consulta SQL y aparecer en el mismo orden. La línea 10 muestra cómo se crea en el programa la variable de iterador posicional e del tipo
Emppos y después se asocia con una consulta (líneas 11 y 12). El iterador posicional se comporta de una forma que es más parecida a SQL
incrustado (consulte la Sección 9.2.2). Se necesita un comando FETCH INTO para obtener la siguiente tupla del resultado de una consulta.
La primera vez que se ejecuta fetch, se obtiene la primera tupla (línea l3 de la Figura 9.9). La línea 16 obtiene la siguiente tupla hasta que
no haya más tuplas en el resultado de la consulta. Para controlar el bucle, se utiliza una función de iterador posicional, e. endFetch (). Esta
función se establece a TRUE cuando el iterador está inicialmente asociado con una consulta SQL (línea 11), y se establece a FALSE cada
vez que un comando fetch devuelve una tupla válida del resultado de la consulta. Se establece de nuevo a TRUE cuando un comando fetch
ya no encuentra más tuplas. La línea 14 muestra cómo se controla el bucle mediante la negación.
IIFragmento de programa J2B:
0. nombredpto = readEntry(IIIntroduzca el nombre del departamento:
“)
1. try (
2. #sql ( select NumeroDpto into :numdpto
3. from DEPARTAMENTO where NombreDpto = :nombredpto} ;
4. catch (SQLException se) (
5. System. out. println ("El departamento no existe: 11 +
nombredpto)
6. Return;
7. }
8. System.out.printline(IIInformación del empleado de este
departamento: 11 + nombredpto)
9. #sql iterator Emppos(String, String, String, double)
10. Emppos e = null) ;
11. #sql e = ( select dni, nombrepila, apellido1, sueldo
12. from EMPLEADO where Dno = :numdpto} ;
13. #sql { fetch :e into :dni, :np, :ap1, :sal}
14. while (! e . endFetch ()) (
15. System.out .printline (dni + 11 11 + np + 11 11 + ap1 + 11 11 +
sal)
16. #sql { fetch :e into :dni, :np, :ap1, :sal}
17. } ; 18) e. close ( )
ALEJANDRA SARANGO
71. Programación de bases de datos con SQUCLI
utilizando C como lenguaje host
Declare las variables de manejador de los tipos SQLHSTMT, SQLHDBC, SQLHENV Y SQLHDESC para las sentencias, conexiones, entornos
y descripciones necesarias en el programa, respectivamente
En el programa C debe incluirse la biblioteca de funciones que abarca SQLlCLI. Se llama sqlcli . h,
En el programa debe configurarse un registro de entorno con SQLAllocHandle. Como en ningún otro registro se guarda un registro de entorno,
el parámetro <manejador_l> es el manejador NULL SQL_NULL_HANDLE (puntero NULL) al crear un entorno.
En el programa se configura un registro de conexión utilizando SQLAllocHandle. Se establece entonces una conexión
en con1 con un servidor concreto de bases de datos utilizando la función SQLConnect de SQLlCLI
En el programa se configura un registro de sentencia utilizando SQLAllocHandle. El registro de sentencia creado tiene el manejador stmt1
y utiliza la conexión conl.
La sentencia se ha preparado utilizando la función SQLlCLI SQLPrepare. En la línea 10, esto asigna
la cadena de sentencia SQL (la consulta en nuestro ejemplo) a la sentencia handle stmtl.
Antes de ejecutar la consulta, debe enlazarse cualquier parámetro de la cadena de consulta con las variables del programa utilizando la función
SQLlCU SQLBindParameter.
Siguiendo estas preparaciones, ahora podemos ejecutar la sentencia SQL especificada por el manejador stmt1, utilizando la función SQLExecute
Para determinar dónde se devuelve el resultado de la consulta, se suele recurrir a la técnica de columnas enlazadas. Aquí, cada columna del
resultado de una consulta se enlaza a una variable del programa C utilizando la función SQLBindCol.
Por último, para recuperar los valores de columna en las variables del programa C, se utiliza la función SQLFetch
ALEJANDRA SARANGO
72. Procedimientos almacenados de bases de datos y SQUPSM
El término utilizado en el estándar SQL para los procedimientos almacenados es módulos almacenados persistentes, porque el DBMS
almacena persistentemente estos programas, algo parecido a los datos persistentes almacenados por el DBMS. Los procedimientos:
Son útiles en las siguientes
circunstancias
Si varias aplicaciones necesitan un mismo programa de bases de base de datos,
este último se puede almacenar en el servidor e invocarlo desde esas aplicaciones.
Esto reduce la duplicidad del esfuerzo y mejora la modularidad del software.
1.
La ejecución de un programa en el servidor puede reducir el coste derivado de
la transferencia y la comunicación de datos entre el cliente y el servidor en
ciertas situaciones.
2.
Estos procedimientos pueden mejorar la potencia de modelado de las vistas al
permitir que los usuarios de bases de datos cuenten con tipos más complejos
de datos derivados. Además, se pueden utilizar esos tipos para comprobar
restricciones más complejas que quedan fuera de la especificación de aserciones
y triggers. En general, muchos DBMSs
3.
ALEJANDRA SARANGO
73. SQL/PSM: AMPLIACIÓN DE SAL PARA ESPECIFICAR
MÓDULOS ALMACENADOS PERSISTENTES
SQLlPSM es la parte del estándar SQL encargada de especificar cómo han de escribirse los módulos
almacenados persistentes. Incluye las sentencias para crear las funciones y los procedimientos que
describimos en la sección anterior. También incluye las estructuras de programación adicionales que permiten
mejorar la potencia de SQL con el propósito de escribir el código ( o cuerpo) de los procedimientos o funciones
almacenados.
La sentencia de bifurcación condicional en SQL/PSM tiene la siguiente forma:
IF <condición> THEN <lista de sentencias>
ELSEIF <condición> THEN <lista de sentencias>
ELSEIF <condición> THEN <lista de sentencias>
ELSE END <lista de sentencias>
IF;
Declaración de una función en SQL/PSM.
//Función PSM1:
1. CREATE FUNCTION TamDpto(IN nodpto INTEGER)
2. RETURNS VARCHAR [7]
3. DECLARE NumEmps INTEGER ;
4. SELECT COUNT(*) INTO NumEmps
5. FROM EMPLEADO WHERE Dno ~ nodpto
6. IF NumEmps > 100 THEN RETURN "ENORME"
7. ELSEIF NumEmps > 25 THEN RETURN "GRANDE"
8. ELSEIF NumEmps > 10 THEN RETURN "MEDIO"
9. ELSE RETURN "PEQUEÑO"
ALEJANDRA SARANGO
74. CAPÍTULO 10: Dependencias funcionales y normalización en
bases de datos relacionales
Estos modelos hacen que el diseñador
identifique los tipos de entidad y de relación y
sus respectivos atributos, lo que nos lleva a un
agrupamiento natural y lógico de los atributos en
relaciones cuando van seguidos por los
procedimientos de mapeado del Capítulo 7.
Hay dos niveles:
* El primero es el nivel lógico (o
conceptual)
*El segundo nivel es el de
implementación (o almacenamiento)
Johanna Manguay y Bryan Marcillo
75. Dependencias funcionales y
normalización en bases de datos
relacionales
Nivel lógico (o conceptual): cómo los
usuarios interpretan los esquemas de
relación y el significado de sus
atributos. Disponer de un buen
esquema de relación a este nivel
permite a los usuarios comprender
con claridad el significado de los
datos en la relaciones y, por
consiguiente, formular sus consultas
correctamente.
Nivel es el de implementación (o
almacenamiento): de qué modo se
almacenan y actualizan las tuplas en una
relación base. Este nivel se aplica sólo a
esquemas de relación base (cómo se
almacenarán físicamente los ficheros),
mientras que a nivel lógico nos interesan
tanto las relaciones base como las vistas
(relaciones virtuales). Se aplica
fundamentalmente a las relaciones base
Johanna Manguay y Bryan Marcillo
76. Como se debe llevar acabo
usando estas metodologías?:
* Una metodología de diseño de tipo ascendente: llamada
también diseño por síntesis, tiene como punto de partida
las relaciones básicas entre atributos Dependencias
funcionales y normalización en bases de datos relacionales
individuales, y los usa para construir los esquemas de
relación. Esta metodología no es muy popular , ya que
tiene el problema de tener que recopilar al principio una
gran cantidad de relaciones binarias entre los atributos.
* Una metodología descendente,
conocida también como desafío
por análisis, se empieza con varios
agrupamientos de atributos de una
relación que están juntos de forma
natural, como por ejemplo, en una
factura, un formulario o un informe.
Johanna Manguay y Bryan Marcillo
103. EL PAPEL DE LOS SISTEMAS DE
INFORMACIÓN EN LAS EMPRESAS
Un sistemas de base de datos debe permitir establecer estructuras de almacenamiento , ser eficientes ,
seguros, y otros.
Michelle Yantibug y Mary Ponce
Capítulo 12: Metodología práctica de diseño de bases de datos y uso de
los diagramas UML
106. EL DISEÑO DE LA BASE DE DATOS Y EL
PROCESO DE IMPLEMENTACIÓN
Los objetivos del diseño de una base de datos son varios:
Satisfacer los requisitos de información de los usuarios y aplicaciones especificados.
Ofrecer una estructuración de la información natural y fácil de comprender.
Soportar las necesidades de procesamiento y cualquier objetivo de rendimiento, como el tiempo de
respuesta, el tiempo de procesamiento y el espacio de almacenamiento.
Michelle Yantibug y Mary Ponce
108. USO DE DIAGRAMAS UML COMO AYUDA
A LA ESPECIFICACIÓN DEL DISEÑO DE
LA BASE DE DATOS
La industria siempre necesita algunas metodologías estándar para cubrir todo este espectro
de análisis de los requisitos, modelado, diseño, implementación e implantación. El método
que está recibiendo más atención y aceptación y que también ha sido propuesto como
estándar es el método UML (Lenguaje unificado de modelado), que proporciona un
mecanismo en forma de notación diagramática y sintaxis de lenguaje asociado para abarcar
todo el ciclo vital.
Michelle Yantibug y Mary Ponce
119. Ubicación de los registros de ficheros
en disco
Registro y Tipo de Registros: Los datos se almacenan en forma de registro los cuales pueden
adquirir valores que son cuantificados en forma de bit. El tipo de dato de campo normalmente es estándar
se utiliza en programación (numéricos, caracteres y booleanos).
Ficheros, registros le longitud fija y variable: Secuencia de registros de longitud fija
(tienen el mismo numero de bytes) y registros de longitud variable ( pueden contar con registros
individuales y diferentes).
Dennis Cando y Gustavo Escobar
120. Bloque de registros y registros extendidos frente a no extendidos: Los registros se asignan en
bloques de disco ya que pueden contener varios registro aunque algunos puedan tener registros que por su tamaño no entran
en el bloque.
Asignación de bloques de fichero a disco: Asignación de ficheros continuos que se asignan a bloques de
discos consecutivos, haciéndose mas compleja expandir el fichero, por otro lado se hace una asignación enlazada
haciendo mas sencilla la expansión del fichero pero mas lenta su lectura.
Dennis Cando y Gustavo Escobar
121. Otras organizaciones principales de ficheros
Ficheros de registros mezclados: Las organizaciones de ficheros son un mismo tipo de registro, pero cada
fichero contiene registros de un solo tipo y pueden presentarse mediante campos de conexión y normalmente se
asigna un área del disco para albergar registros de mas de un tipo y se pueden agrupar físicamente.
Paralelismo del acceso al disco mediante tecnología RAID
Se aplica a pequeños discos independientes que actúan como un solo disco lógico de alto rendimiento para lo cual se
segmenta los datos y se los distribuye de forma transparente en varios discos para mejorar su velocidad.
Dennis Cando y Gustavo Escobar
124. CAPITULO 14: Estructuras de indexación para los
ficheros
ESTRUCTURAS DE INDEXACIÓN PARA LOS FICHEROS
La idea de los índices es enumerar al final de la obra los términos importantes en forma alfabética.
Normalmente se define una estructura de índice con un solo campo de fichero a esto se lo conoce como
campo de indexación ya que almacena valores junto con una lista de punteros a todos los bloques de disco
que contiene los registros con ese valor de campo.
Índices Principales: Fichero que ordena registros según su longitud en dos campos siendo el primer campo la clave
principal y el segundo el registro del índice
Dennis Cando y Gustavo Escobar
126. Índices Agrupados: Ordenados físicamente por un campo que no tiene valor distinto para
cada registro, a esto se le denomina campo agrupado a diferencia de el índice principal este no
requiere de una ordenación de ficheros. Para evitar errores se suele reservar un bloque entero
para cada valor del campo agrupado
Índices Secundarios: Proporciona un acceso secundario al fichero para el que ya existe
un acceso principal, puede ser una “no clave” con valores duplicados. La estructura de este
índice es un campo clave que tiene un valor distinto para cada registro, dicho campo recibe a
veces el nombre de clave secundaria. El índice secundario normalmente necesita mas espacio
de almacenamiento y un tiempo de búsqueda mayor que un índice principal debido a su mayor
cantidad de entradas.
Índices Multinivel
Reduce el espacio de búsqueda rápidamente. La búsqueda en un índice requiere
aproximadamente de logfobi acceso a bloques que es un numero mas pequeño que para
la búsqueda binaria
Dennis Cando y Gustavo Escobar
129. Índices en claves múltiples
Índice ordenado por varios atributos: Una ordenación lexicográfica de los valores de
esta tupla establece un orden en esta clave de búsqueda compuesta, por tanto <3, n> precede a
<4,m> para cualquier valor de m y n.
Dispersión Partida: Es una extensión de la dispersión externa estática que permite el acceso
sobre varias claves y se la usa en comparaciones de igualdad y esta diseñada para producir un
resultado con n direcciones de dispersión separadas
Fichero Rejilla: Otra alternativa es reorganizar el fichero como un fichero rejilla si queremos,
acceder a un fichero con dos claves podemos construir una array rejilla con una escala lineal por cada
uno de los atributos de búsqueda.
Dennis Cando y Gustavo Escobar
132. El optimizador de consultas se encarga de generar un plan de ejecución y el generador
de código se encarga de generar el código para ejecutar dicho plan.
CAPÍTULO 15: Algoritmos para procesamiento y optimización de
consultas
JENNIFER JARAMILLO Y STALIN GUACHAMÍN
133. 15.1 Traducción de consultas SQL al álgebra
relacional
JENNIFER JARAMILLO Y STALIN GUACHAMÍN
141. 15.8 Componentes de coste de ejecución de una consulta El coste de ejecución de
una consulta incluye los siguientes componentes:
JENNIFER JARAMILLO Y STALIN GUACHAMÍN
145. En éste capitulo explicamos algunos problemas que afectan al
rendimiento de una aplicación que se ejecuta en un DBMS. En
particular, explicamos las opciones disponibles que los
administradores de bases de datos tienen para almacenar
bases de datos y algunas de las soluciones y técnicas que
utilizar para refinar la base de datos a fin de mejorar su
rendimiento
Pamela Garcés y Karla Gualavisí
CAPÍTULO 16: Diseño físico y refinación de la base de
datos
147. 1.1.- Factores que influyen en el diseño físico de una base
de datos
Pamela Garcés y Karla Gualavisí
148. 1.2.- Decisiones sobre el diseño físico de la base de datos
• La mayoría de los sistemas relacionales representan cada relación base como un
fichero de base de datos físico.
• Las opciones de ruta de acceso incluyen especificar el tipo de fichero para cada
relación y los atributos sobre los que deben especificarse los índices. Como
máximo, uno de los índices de cada fichero puede ser un índice principal o
agrupado. Es posible crear cualquier cantidad de índices secundarios.
Pamela Garcés y Karla Gualavisí
159. Los sistemas de procesamiento de transacciones son sistemas
con grandes bases de datos y cientos de usuarios concurrentes
ejecutando transacciones de bases de datos. Entre estos
sistemas podemos citar los de reservas en aerolíneas, banca,
procesamiento de tarjetas de crédito, mercado de acciones,
etcétera. Estos sistemas requieren una alta disponibilidad y una
respuesta rápida para cientos de usuarios simultáneos
Pamela Garcés y Karla Gualavisí
CAPÍTULO 17: Introducción a los conceptos y la teoría
sobre el procesamiento de transacciones
164. Propiedades deseables de las transacciones
Las transacciones deben poseer varias propiedades, a menudo denominadas propiedades
ACID, que deben ser: implementadas por el control de la concurrencia y los métodos de
recuperación del DBMS. Las propiedades ACID son las siguientes:
Atomicidad. Una transacción es una unidad atómica de procesamiento; o se ejecuta en su totalidad o no se
ejecuta en absoluto.
Conservación de la consistencia. Una transacción está conservando la consistencia si su ejecución completa
lleva a la base de datos de un estado consistente a otro.
Aislamiento. Una transacción debe aparecer como si estuviera ejecutándose de forma aislada a las demás. Es
decir, la ejecución de una transacción no debe interferir con la ejecución de ninguna otra transacción
simultánea.
Durabilidad. Los cambios aplicados a la base de datos por una transacción confirmada deben persistir en la
base de datos. Estos cambios no deben perderse por culpa de un fallo.
Pamela Garcés y Karla Gualavisí
165. CLASIFICACIÓN DE LAS PLANIFICACIONES EN
BASE A LA RECUPERABILIDAD
Pamela Garcés y Karla Gualavisí
202. Introducción
a los temas
de seguridad
en las bases
de datos
Tipos de seguridad
Medidas de control
La seguridad en
bases de datos
y el OBA
Protección de accesos,
cuentas de usuario
y auditorías de
bases de datos
Aspectos legales y éticos
al derecho de acceso a
determinada información.
Información que no debe
estar disponible pública-
mente como la concesión
de créditos o informes
médicos personales.
Temas relativos al sistema,
una función de seguridad
debería ser manipulada
a nivel físico del hardware,
o nivel del sistema operativo.
Identificar niveles de
seguridad: alto secreto,
secreto, confidencial
y no clasificado.
Amenazas a las
bases de datos
Pérdida de integridad.
Pérdida de disponibilidad.
Pérdida de confidencialidad.
Mecanismos de
seguridad discrecionales.
Mecanismos de
seguridad obligatorios.
Control de accesos.
Control de inferencias.
Control de flujo.
Cifrado de datos.
Creación de cuentas.
Concesión de privilegios.
Retirada de privilegios.
Asignación del nivel de seguridad.
Cuenta de usuario
y una contraseña.
Iniciar sesión.
Registro de sucesos
del sistema.
Auditoría de la
base de datos.
Registro de auditoría.
Capítulo 23-Seguridad en las bases de datos
MARIA EGUEZ Y ROCIO SOTALIN
203. Control de acceso discrecional basado en la
concesión y revocación de privilegios
Especificación de privilegios
mediante vistas
Revocación de privilegios
Propagación de los privilegios
mediante GRANT OPTION
Especificación de los
límites a la propagación
de privilegios
Tipos de privilegios
discrecionales
• El nivel de cuenta.
• El nivel de relación (o tabla).
• Privilegio de selección (recuperación lectura)
sobre R.
• Privilegio de modificación sobre R.
• Privilegio de referencia de R.
El mecanismo de vistas es un importante
mecanismo de autorización discrecional por
sí mismo.
En algunos casos, es deseable conceder un
privilegio a un usuario de manera temporal.
Siempre que el propietario A de
una relación R concede un privilegio
a otra cuenta B, dicho privilegio se puede conceder a B
con o sin la opción GRANT OPTION. Si aparece esta
opción, significa que B también puede conceder ese
privilegio sobre R a otras cuentas.
Limitar la propagación horizontal un
número entero i significa que una cuenta
B a la que se ha dado la opción GRANT OPTION puede
conceder el privilegio a, como mucho, otras i cuentas. La
propagación vertical es más complicada; limita la profundidad de
la
concesión de los privilegios.
MARIA EGUEZ Y ROCIO SOTALIN
204. Control de acceso obligatorio y control
de acceso basado en roles para
la seguridad multinivel2
Comparación del
control de acceso
discrecional y el
control de acceso
obligatorio.
Control de accesos
basado en roles.Control de acceso XMl.
Políticas de
control de acceso
para el comercio
electrónico y la Web.
Las políticas de Control
de acceso discrecional (DAC)
se caracterizan por su
alto grado de flexibilidad
y por el contrario,
las políticas obligatorias
aseguran un alto grado
de protecció.
Gestión y el reforzamiento
de la seguridad en
sistemas empresariales
a gran escala.
Garantiza que sólo los
usuarios autorizados tienen
acceso a determinados
datos o recursos.
Cada sesión se
puede asignar a
muchos roles,
pero se corresponde
con un único
usuario o sujeto.
Firmas digitales y los estándares
de criptografíapara XML.
La especificación de sintaxis y
procesamiento de firmas en XML
describe una sintaxis XML para la
representación de las asociaciones
entre firmas criptográficas y documentos
XML u otros recursos electrónicos.
El control de acceso se realiza normalmente
mediante un conjunto de autorizaciones
definidas por los encargados de la seguridad.
El control de acceso basado en
contenidos permite expresar
políticas de control de acceso
que tomen en cuenta el contenido
del objeto a proteger.
Un tercer requisito está relacionado
con la heterogeneidad de los sujetos,
lo cual necesita de políticas de control
basadas en las características
del usuario y sus cualificaciones.
MARIA EGUEZ Y ROCIO SOTALIN
205. Introducción a la seguridad en bases de datos estadísticas
Las bases de datos estadísticas se utilizan principalmente para obtener estadísticas sobre
poblaciones diversas. La base de datos puede contener información confidencial sobre individuos que
debería ser protegida de su acceso por parte de los usuarios.
En algunos casos es posible deducir los valores de tuplas
individuales a partir de una secuencia de consultas
estadísticas.
Es responsabilidad de un sistema de gestión de bases de datos asegurar la
confidencialidad de la información relacionada con los individuos y, a la vez,
proporcionar a los usuarios resúmenes estadísticos de los datos acerca de esos
individuos.
La posibilidad de deducir información individual a partir de
consultas estadísticas se reduce si no se permiten las consultas estadísticas
siempre que el número de tuplas de la población especificada por
la condición de selección esté por debajo de determinado
nivel.
MARIA EGUEZ Y ROCIO SOTALIN
206. Introducción al control de flujo
El control de flujo regula la
distribución o flujo de información entre objetos
accesibles. Los controles de flujo comprueban que la
información contenida en algunos objetos no fluye
explícita o implícitamente hacia objetos
menos protegidos.
Canales ocultos
Un canal oculto permite que la información
pase desde un nivel de clasificación más alto
hacia un nivel de clasificación más bajo a través
de algún medio que no es el normal.
Canal de temporización la información se
transmite tras una temporización de
eventos
Canales de almacenamiento
no necesitan una sincronización temporal, ya
que la información
se transmite accediendo a
infonnación del sistema
MARIA EGUEZ Y ROCIO SOTALIN
207. 23.6) Cifrados e infraestructura de clave
publica
El cifrado es un medio de mntener la seguridad de los datos en un entorno no
seguro.
Consiste de aplicar un logaritmo a los datos utilizando utulizando un clave de
cifrado predefinida
Los datos resultantes tienen que ser decifrados mediante una clave de decifrado
para recuperar los datos originales.
MARIA EGUEZ Y ROCIO SOTALIN
208. 23.6.1) los datos y estandares avanzados de
cifrado
El algoritmo DES es una cuidadosa y compleja combinacion de dos de los bloques
fundamentales utilizados en la consruccion del cifrado: la sustitucion y la
permutacion
el texto plano del mensaje se cifra en boques de 64 bits
El instituo nacional de estandares introdujo al algoritmo AES, tiene un tamano de
bloque de 128 bits.
MARIA EGUEZ Y ROCIO SOTALIN
211. Algoritmo RSA de cifrado con clave publica
El esquema RSA ha sido desde entonces uno de los mas extendidos y uno de los
modelos de cifrado con clave publica mas implementados.
RSA incorpora nociones de la teoria numerica combinadas con la dificultad de
otencion de los factores primos de un elemento.
El algoritmo RSA tmbien trabaja con la aritmetica modular (mod Ƞ)
MARIA EGUEZ Y ROCIO SOTALIN
213. 23.7) Mantenimiento de la privacidad
Las tecnicas utilizadas mas habitualmente para tratar estos temas son evitar la
construccion de randes almacenes de datos centralizados en un unico repositorio
con toda la informacion importante
Otra posible medida es la modificacion o la distorcion intencionada de los datos.
MARIA EGUEZ Y ROCIO SOTALIN
216. 23.9) Resumen
Tecnicas para reforzar la seguridad en base de datos
Medidas de control: control de acceso,control de inferencias, control de flujo y
cifrado
Comandos SQL para conceder y revocar privilegios
Conceptos clave que subyacen al modelos relacional multinivel
Cifrado de datos, clves publicas y firmas digitales.
MARIA EGUEZ Y ROCIO SOTALIN
217. Capítulo 24: Modelos de datos mejorados para
aplicaciones avanzadas
Las bases de datos orientadas a objetos y los sistemas objeto-relacional
proporcionan características que permiten a los usuarios extender sus sistemas
especificando tipos de datos abstractos adicionales para cada aplicación, es
necesario crear modelos que puedan representarlas.
Estefanía Obando y Jessica Zhicay
230. CAPÍTULO 25: BASES DE DATOS DISTRIBUIDAS Y ARQUITECTURAS CLIENTE-SERVIDOR
En este capítulo vamos a centrar nuestra atención
en:
- Los DDBS (Sistema de bases de datos
distribuidas)
- Los DDBMS (Sistemas de administración de
bases de datos distribuidas),y en cómo se usa la
arquitectura cliente-servidor como plataforma para
el desarrollo de aplicaciones de bases de datos.
La tecnología DDB emergió gracias a la unión de otras dos
tecnologías:
- Base de datos; y
- comunicación de datos y de redes.
Lo más reciente son los enormes avances dados en el área de las
tecnologías alámbricas e inalámbricas (desde las comunicaciones por
satélite y celulares hasta las MAN [Redes de área metropolitana], la
estandarización de protocolos como Ethernet, TCP/IP y ATM [Modo de
transferencia asíncrono], así como la explosión de Internet). Mientras
en los 70 y principios de los 80 las bases de datos se movían hacia la
centralización produciendo unas monolíticas y gigantescas
estructuras, la tendencia a finales de esa década era la contraria: más
descentralización y autonomía de procesamiento.
Con los avances en la computación desarrolló muchos prototipos. Sin
embargo lun DDBMS totalmente operativo que incluyera la
funcionalidad y técnicas propuestas por la investigación DDB nunca
emergió como un producto comercialmente viable. La mayoría de
fabricantes no centró sus esfuerzos en el desarrollo de un producto
DDBMS puro, sino en la generación de sistemas basados en cliente-
servidor, o a traves de tecnologías para el acceso a fuentes de datos
distribuidos de manera heterogénea.
LARA ELIZABETH Y LARA TATIANA
231. CONCEPTOS DE BASES DE DATOS DISTRIBUIDAS
Tecnología paralela frente a distribuida
existen dos tipos fundamentales de
arquitecturas de sistema multiprocesador:
Las bases de datos distribuidas aportan las ventajas del
procesamiento distribuido al dominio de la administración
de una base de datos. Un sistema de computación
distribuido consiste en un número de elementos de
procesamiento, no necesariamente homogéneos, que
están interconectados mediante una red de
computadores, y que cooperan para la realización de
ciertas tareas asignadas.
Podemos definir una DDB (Base de datos distribuida)
como una colección de múltiples bases de datos
distribuidas interrelacionadas de forma lógica sobre una
red de computadores, y un DDBMS (Sistema de
administración de bases de datos distribuidas, Distributed
DataBase Management System) como el software
encargado de administrar la base de datos distribuida
mientras hace la distribución.
Arquitectura de memoria compartida
(estrechamente acoplada o tightly
coupled). Varios procesadores
comparten el almacenamiento
secundario (disco) y la memoria
primaria
Arquitectura de disco compartido
(débilmente acoplada o loosely coupled).
Varios procesadores
comparten el almacenamiento secundario
(disco), pero cada uno de ellos tiene su
propia memoria primaria.
LARA ELIZABETH Y LARA TATIANA
232. VENTAJAS DE LAS BASES DE
DATOS DISTRIBUIDAS
La administración de bases de
datos distribuidas ha sido propuesta
por varias razones que van desde la
centralización organizativa y el
procesamiento económico a una
mayor autonomía. Vamos a ver
ahora algunas de estas ventajas.
4. Expansión más sencilla.
La expansión del sistema en términos de incorporación de
más datos, incremento del tamaño de las bases de datos
o la adición de más procesadores es mucho más sencilla.
2. Incremento de la fiabilidad y la disponibilidad. La
fiabilidad está definida ampliamente como la
probabilidad de que un sistema está funcionando. La
disponibilidad es la probabilidad de que el sistema está
continuamente disponible durante un intervalo de
tiempo.
1. Administración de datos distribuidos con distintos niveles de
transparencia.
Transparencia de red o de distribución.
Transparencia de replicación.
Transparencia de fragmentación.
La transparencia de diseño y de ejecución
3. Rendimiento mejorado.
Un DBMS distribuido fragmenta la base de datos
manteniendo lo más cerca posible del punto donde es
más necesaria.
LARA ELIZABETH Y LARA TATIANA
233. LA TRANSPARENCIA DE DISEÑO Y DE EJECUCIÓN
Algunos tipos de arquitecturas de base de datos.
(a) Arquitectura "nada compartido".
(b)Arquitectura en red con una base de datos centralizada en una de sus ubicaciones.
(c)Arquitectura de base de datos distribuida auténtica.
DISTRIBUCION DE DATOS Y REPLICACIÓN
ENTRE BASES DE DATOS DISTRIBUIDAS.
LARA ELIZABETH Y LARA TATIANA
234. * Seguimiento de los datos. La capacidad de controlar la distribución de los datos, la fragmentación y la replicación
expandiendo el catálogo DDBMS.
* Procesamiento de consultas distribuidas. La posibilidad de acceder a sitios remotos y de transmitir consultas y
datos a lo largo de todos esos sitios mediante una red de comunicación.
* Administración de transacciones distribuidas. La facultad de diseñar estrategias de ejecución de consultas y
transacciones que accedan a los datos desde más de una ubicación y de sincronizar el acceso a los datos distribuidos
y de mantener la integridad de toda la base de datos.
* Administración de datos replicados. La capacidad de decidir a qué copia de un dato acceder y de mantener la
consistencia de las copias de un elemento de datos replicado.
FUNCIONES ADICIONALES DE LAS BASES DE DATOS DISTRIBUIDAS
LARA ELIZABETH Y LARA TATIANA
235. * Recuperación de una base de datos distribuida. La facultad de recuperarse de las caídas de una localización individual u
otro tipo de fallos, como los fallos en los enlaces de comunicación.
* Seguridad. Las transacciones distribuidas deben ejecutarse con una adecuada administración de la seguridad de los datos y
contando con los privilegios de autorización/acceso de los usuarios.
* Administración del directorio (catálogo) distribuido. Un directorio contiene información (metadatos) sobre los datos de la base
de datos. Puede ser global a toda la DDB, o local para cada sitio. La colocación y distribución del directorio son temas
relacionados con el diseño y las políticas.
Estas funciones en sí mismas aumentan la complejidad de un DDBMS en relación a un DBMS centralizado
LARA ELIZABETH Y LARA TATIANA
236. .
Fragmentación horizontal
Fragmentación de datos Fragmentación Vertical.
Fragmentación mixta (híbrida).
Ubicación de fragmentos en los sitios. (a) Relación de fragmentos del sitio 2 correspondiente al
departamento 5. (b) Relación de fragmentos del sitio 3 correspondiente. al departamento 4.
TÉCNICAS DE FRAGMENTACIÓN,
REPLICACIÓN Y ASIGNACIÓN DE DATOS PARA
EL DISEÑO DE BASES DE DATOS DISTRIBUIDAS
REPLICACIÓN Y UBICACIÓN DE LOS DATOS
EJEMPLO DE FRAGMENTACIÓN, UBICACIÓN Y
REPLICACIÓN
LARA ELIZABETH Y LARA TATIANA
237. TIPOS DE SISTEMAS DE BASES
DE DATOS DISTRIBUIDAS
PROCESAMIENTO DE CONSULTAS EN BASES DE DATOS
DISTRIBUIDAS
EL CONTROL DE LA CONCURRENCIA Y LA
RECUPERACIÓN EN BASES DE DATOS DISTRIBUIDAS
UNA APROXIMACIÓN A LA ARQUITECTURA CLIENTE-SERVIDOR
DE TRES NIVELES
BASES DE DATOS DISTRIBUIDAS EN ORACLE7
Lo que todos estos sistemas tienen en común es el hecho de que tanto los datos como el software están
distribuidos a lo largo de distintas localizaciones que están conectadas por algún tipo de red de
comunicaciones.
Son muchos los problemas que aparecen en un DBMS distribuido que no se dan en un entorno centralizado;
entre ellos: Tratar con múltiples copias de los datos. Fallo de los sitios individuales. Fallo de los enlaces de
comunicación. Confirmación distribuida. Estancamiento distribuido.
La base de datos Oracle está dividida en dos partes: unfront end (frontal)
como parte cliente y un back end como parte servidor. Oracle soporta enlaces que defienen una ruta de comunicación
en un único sentido desde una base de datos Oracle a otra.
LARA ELIZABETH Y LARA TATIANA
238. CAPÍTULO 26: PROGRAMACIÓN DE UNA BASE DE DATOS WEB USANDO PHP
TECNOLOGÍAS EMERGENTES
El método más corriente de especificar los contenidos y formatear este tipo de páginas es mediante los
documentos de hipertexto.
HTML
(Lenguaje de marcado de
hipertexto, HyperText
Markup Language).
XML
(Lenguaje de marcado
extensible, eXtensible
Markup Language)
XSL
(Lenguaje de
hojas de estilo extensible)
LARA ELIZABETH Y LARA TATIANA
239. DATOS ESTRUCTURADOS, SEMIESTRUCTURADOS Y NO ESTRUCTURADOS
La información contenida en una base de datos se dice que es estructurada porque está representada de una forma estricta.
Por ejemplo, cada registro de una tabla de una base de datos relacional .
LARA ELIZABETH Y LARA TATIANA
240. VISIÓN GENERAL DE LAS CARACTERÍSTICAS BÁSICAS DE PHP
VARIABLES, TIPOS DE DATOS Y ESTRUCTURAS DE
PROGRAMACIÓN DE PHP
Los nombres de variable de PHP empiezan con el símbolo $ y pueden incluir caracteres letras y el carácter de subrayado U. No
están permitidos otros caracteres especiales. Los nombres de variable hacen distinción entre mayúsculas y minúsculas, y el
primer carácter no puede ser un número. Las variables no tienen tipo; su tipo queda determinado por los valores que se les
asignan. De hecho, la misma variable puede cambiar de tipo en cuanto se le asigna un nuevo valor. La asignación se realiza
mediante el operador =
Como PHP está orientado al procesamiento de texto, dispone de diferentes tipos de valores de cadena.
1. Cadenas con comillas simples. 2. Cadenas con comillas dobles.
3. Documentos "here" (o
documentos aquí).
4. Comillas simples y dobles.
LARA ELIZABETH Y LARA TATIANA
241. VISIÓN GENERAL DE LA PROGRAMACIÓN DE BASES DE DATOS PHP
Los Arrays son muy importantes en PHP, ya que permiten listas de elementos. Se utilizan con frecuencia en los formularios
que emplean menús desplegables. Un array unidimensional se utiliza para almacenar la lista de opciones de un menú
desplegable. Hay dos tipos de arrays.
2.- Array
asociativo.
.
1.- Array
numérico
.
LARA ELIZABETH Y LARA TATIANA
242. Hay varias técnicas para acceder a las bases de datos con un lenguaje de programación, cómo acceder a una base de datos SQL
utilizando los lenguajes de programación C y Java.
En particular, explicamos SQL incrustado, JDBC, SQLlCLI (parecido a ODBC) y SQLJ.
cómo acceder a la base de datos utilizando el lenguaje de scripting PHP, que resulta muy adecuado para crear interfaces web para
buscar en las bases de datos y actualizarlas, así como páginas web dinámicas.
LARA ELIZABETH Y LARA TATIANA
243. CONEXIÓN A UNA BASE DE DATOS
LARA ELIZABETH Y LARA TATIANA
244. Damaris Vergara Y Maricela Catota
CAPÍTULO 27: XNL (Lenguaje de Marcado Extensible)
245. Modelo dedatosjerárquico
(árbol) deXML
Tipos de
elementos
Construccióndeun
documentoXML
Elementos complejos
Construidos jerárquicamente apartir de otros elementos
Elementos simples
Contienenvalores de datos.
Elementos
Atributos
Tipos principales
de documentos XML:
Documentos XMLcentrados enlos datos.
Documentos XMLcentrados eneldocumento.
Documentos XMLhíbridos.
Damaris Vergara Y Maricela Catota
250. Definición de minería de datos
Minería de datos es la exploración y análisis de grandes cantidades de datos con
el objeto de encontrar patrones y reglas significativas (conocimiento)
Damaris Vergara Y Maricela Catota
CAPÍTULO 28: Conceptos de minería de datos
251. Datos y Modelos => Conocimiento
Los datos se obtienen de:
Bases de datos (relacionales,
espaciales, temporales,
documentales, multimedia, etc)
World Wide Web
Modelos descriptivos: identifican patrones que
explican o resumen los datos
Reglas de asociación: expresan patrones de
comportamiento en los datos
Clustering: agrupación de casos homogéneos
Modelos predictivos: estiman valores de variables
de interés (a predecir) a partir de valores de otras
variables (predictoras)
Regresión: Variable a predecir continua
Clasificación supervisada: Variable a predecir
discreta
Damaris Vergara Y Maricela Catota
252. Tipos de conocimientos adquirido durante
la minería de datos
Clasificación
Secuenciales
Pronóstico
Asociación
Agrupamiento
Damaris Vergara Y Maricela Catota
253. La minería de datos es un campo
multidisciplinario
Minería de datos
Inteligencia
Artificial
(“Machine
Learning”)
Estadística
Bases de
Datos
(VLDB)
Graficación y
visualización
Ciencias de
la información
Otras
disciplinas
Damaris Vergara Y Maricela Catota
254. ¿Por qué de la minería de datos?
Datos se encuentran disponibles
Poder computacional es cada vez menos costoso
Las presiones competitivas son enormes
Software para minería de datos se encuentra disponible
Damaris Vergara Y Maricela Catota
255. Principales técnicas de minería de datos
Análisis de canasta de supermercado
K vecinos más cercanos
Detección de grupos
Análisis de encadenamiento
Árboles de decisión
Redes neuronales artificiales
Algoritmos genéticos
Damaris Vergara Y Maricela Catota
256. CAPÍTULO 29: Visión general del almacenamiento de datos y OLAP
Mónica Erazo y Andrea Sampértegui
262. En este capítulo dirigimos nuestra atención a dos tipos de desarrollos en continua evolución en el área
de las bases de datos:
Las tecnologías emergentes de bases de datos: tiene que ver con la creación de nuevas
funcionalidades en los DBMS para poder trabajar con diferentes tipos de nuevas aplicaciones,
entre las que se incluyen las bases de datos móviles que permiten a los usuarios el acceso
universal y flexible a los datos desde cualquier lugar y desde cualquier equipo, y las bases de
datos multimedia que proporcionan la posibilidad de almacenamiento y procesamiento de
información multimedia .
Principales campos de aplicación: los dominios de aplicación que se han basado
tradicionalmente en el procesamiento manual de los sistemas de archivos, también llamados
soluciones con sistemas a medida.
CAPÍTULO 30:TECNOLOGÍAS Y APLICACIONES EMERGENTES DE
BASE DE DATOS
Mónica Erazo y Andrea Sampértegui
263. Los recientes avances en la tecnología móvil e inalámbrica han conducido a la computación móvil, una
nueva dimensión en la comunicación y el procesamiento de los datos.
Sin embargo, existen varios problemas en el hardware y en el software que deben ser resueltos antes
de que se puedan utilizar en su totalidad las posibilidades de la computación móvil.
En la computación móvil, sin embargo, estos problemas resultan más complicados, principalmente
debido a que la conectividad en las comunicaciones inalámbricas es a veces limitada e intermitente, a
que la duración de la batería es limitada en las unidades móviles y a la topología cambiante de la red.
BASES DE DATOS MÓVILES
Mónica Erazo y Andrea Sampértegui
264. Plataforma móvil basada en infraestructura. La arquitectura general de una
plataforma móvil se muestra en la Figura 30.1.
Se trata de una arquitectura distribuida en la que varios computadores, a los que
se les denomina generalmente Host fijo (FS) y Estación base (BS), se
interconectan a través de una red de cable de alta velocidad.
Los hosts fijos son, por lo general, computadores dedicados que no están
equipados normalmente para la gestión de unidades móviles pero que pueden ser
configurados para ello.
ARQUITECTURA DE LA COMPUTACIÓN
MÓVIL
Mónica Erazo y Andrea Sampértegui
266. Plataforma móvil no basada en infraestructura. La arquitectura de comunicaciones que acabamos de
describir está diseñada para dar al cliente la impresión de que se encuentra conectado a una red fija,
emulando la arquitectura cliente/servidor tradicional.
Además de lo anterior, las comunicaciones inalámbricas posibilitan otros tipos de arquitecturas. Una
de ellas es una plataforma móvil sin infraestructura, también llamada red móvil ad hoc (MANET) y que
se muestra en la Figura 30.2.
En una MANET, las unidades móviles que pertenecen a ella no necesitan comunicarse a través de una
red fija, sino que forman una propia entre ellas utilizando tecnologías de bajo coste como Bluetooth.
Según esto, las aplicaciones MANET añaden un nivel adicional de complejidad a los temas
relacionados con la computación móvil y la gestión de datos en entornos móviles.
Mónica Erazo y Andrea Sampértegui
267. Las principales características de las aplicaciones MANET son las siguientes:
• Desconexiones frecuentes. No es posible suponer que todos los dispositivos móviles se
encuentren siempre conectados en el desarrollo de aplicaciones cooperativas. Es necesario tratar con
las desconexiones frecuentes, a veces intencionadas, de las unidades móviles.
• Particionado frecuente de la red. Las desconexiones frecuentes y el cambio de posición de los
dispositivos móviles pueden provocar frecuentes particionados de la red. El particionado de la red es
un serio problema a tener en cuenta durante el desarrollo de aplicaciones MANET.
• Control centralizado dificultoso. A veces, un servidor central en una MANET no resulta útil o no es
posible. Por ejemplo, un servidor central en el caso de particionado de la red inutilizará los dispositivos
en todas las particiones excepto en una.
• Heterogeneidad de los nodos. Obviamente, existe heterogeneidad entre los nodos en el hardware
y el software, incluidos los sistemas operativos, lenguajes y bases de datos disponibles en cada
plataforma. Aparte de esto, los nodos son heterogéneos en cuanto a capacidades de computación
como CPU y almacenamiento, ancho de banda y capacidad de batería. Es esencial realizar un
balanceo de cargas en función de sus capacidades.
Mónica Erazo y Andrea Sampértegui
269. Las características de la computación en entornos móviles podemos incluir la alta latencia de
comunicaciones, la conectividad inalámbrica intermitente, la duración limitada de las baterías y, por
supuesto, el cambio en la ubicación de los clientes.
La latencia está motivada por los procesos inherentes al medio inalámbrico, como la codificación de
los datos para su transmisión inalámbrica, y la sintonización y el filtrado de las señales inalámbricas en
el receptor. La duración de las baterías está directamente relacionada con su tamaño, e
indirectamente relacionada con las capacidades del dispositivo móvil y su rendimiento global.
Las desconexiones no intencionadas suceden en áreas no cubiertas por la señal inalámbrica, por
ejemplo en ascensores o en túneles. Las desconexiones intencionadas se producen por deseo del
usuario, por ejemplo durante el despegue de un avión o cuando se apaga un dispositivo móvil.
CARACTERÍSTICAS DE LOS
ENTORNOS MÓVILES
Mónica Erazo y Andrea Sampértegui
270. Toda la base de datos se encuentra distribuida principalmente entre los componentes cableados, quizá
con replicación total o parcial. Una estación base o un host fijo gestiona su propia base de datos
mediante una funcionalidad de tipo DBMS, con funcionalidad adicional para la localización de
unidades móviles y con funciones adicionales de consulta y tratamiento de transacciones que cumplan
los requisitos de los entornos móviles.
La base de datos está distribuida entre los componentes cableados e inalámbricos. La responsabilidad
de la gestión de los datos se reparte entre las estaciones base o entre los hosts fijos y las unidades
móviles.
GESTIÓN DE DATOS
Mónica Erazo y Andrea Sampértegui
271. En los próximos años se espera que los sistemas de información multimedia dominen nuestra
actividad diaria. Nuestras casas estarán cableadas para permitir grandes anchos de banda que
permitan interactuar con aplicaciones multimedia interactivas. Nuestras televisiones de alta definición o
nuestras estaciones de trabajo tendrán acceso a un gran número de bases de datos, incluyendo
librerías digitales, que distribuirán inmensas cantidades de contenido multimedia de diferentes fuentes.
BASE DE DATOS MULTIMEDIA
Mónica Erazo y Andrea Sampértegui
273. GIS puede verse también como un área interdisciplinaria que incorpora muchos campos de estudio
diferentes, como la Geodesia (proyecciones, vigilancia, cartografía, etc.), la Sensación Remota, la
Fotogravimetría, la Ciencia Medioambiental, la Planificación de ciudades, la Ciencia Cognitiva y otras.
Como resultado, GIS se basa en los avances realizados en campos como la informática, las bases de
datos, la estadística y la inteligencia artificial.
Pero en ésta nuestro interés irá encaminado a describir los desafíos planteados por GIS como uno de
los dominios de aplicación emergentes para la tecnología de bases de datos.
SISTEMAS DE INFORMACIÓN
GEOGRÁFICA
Mónica Erazo y Andrea Sampértegui
274. Hardware y software. El hardware está relacionado con los dispositivos utilizados por los usuarios
finales, como los dispositivos gráficos o los plotters y los escáneres. La manipulación y el
almacenamiento de los datos se consigue utilizando varios procesadores.
Datos. Los datos geográficos pueden dividirse en dos grupos principales: vectores y rasterizaciones.
Las capas vectoriales en GIS se refieren a objetos discretos representados por puntos, líneas y
polígonos. Las líneas están formadas por la conexión de uno o más puntos, mientras que los
polígonos son conjuntos cerrados de líneas. Las capas representan geometrías que comparten un
conjunto de atributos.
Personas. Las personas están implicadas en todas las fases del desarrollo de un sistema GIS y en la
recopilación de los datos. Entre ellos se incluyen los cartógrafos y estudiosos que crean los mapas y
http://libreria-universitaria.blogspot.com m Capítulo 30 Tecnologías y aplicaciones emergentes de
bases de datos estudian el terreno, y los usuarios del sistema que recopilan los datos, los cargan en
él, lo manipulan y analizan los resultados.
Mónica Erazo y Andrea Sampértegui
275. Mónica Erazo y Andrea Sampértegui
Mónica Erazo y Andrea Sampértegui