Bases de Datos II Corregido PDF
Bases de Datos II Corregido PDF
Bases de Datos II Corregido PDF
Bases de Datos II
(Licenciatura en Sistemas de Información)
4º Año, 2º Cuatrimestre
Índice
Tema 1: Introducción - Revisión: Conceptos de bases de datos (BD). Criterios de diseño de un
sistema de gestión de BD. Estructuras de BD. Estructuras relacionales. Estructuras jerárquicas.
Estructuras en red. Integridad. Modelos de datos, esquemas e instancias. Arquitectura de un
SGBD e independencia de datos. Lenguajes e interfaces de bases de datos. El entorno del sistema
de bases de datos. Clasificación de los SGBD. Catálogos de SGBD. Información de los catálogos.
Sistemas de diccionario de datos y depósito de datos. Página 4
Tema 2: Bases de Datos Activas: Introducción. Restricciones de integridad y reglas de
negocio. Transacciones. Bases de datos activas. Conceptos. Gestor Pasivo vs. Activo. Ventajas.
Aplicaciones. Reglas en bases de datos relaciónales. Las reglas de Codd para sistemas gestores
de bases de datos relaciónales. Limitaciones del modelo relacional. Página 22
Tema 3: Bases de Datos Distribuidas: Bases de datos centralizadas vs. Distribuidas.
Estrategias en el diseño de una base de datos distribuida. Fragmentación y replicación.
Procesamiento y optimización de consultas distribuidas. Integridad de datos en sistemas
distribuidos. Transacciones distribuidas. Página 38
Tema 4: Bases de Datos Orientadas a Objetos: Introducción. Características de los SGBDOO.
Modelo de datos orientado a objetos. Objetos complejos. Estándar ODMG del modelo de objetos.
Lenguaje de definición de objetos ODL. Lenguaje de consulta de objetos OQL. Diseño conceptual
de bases de datos de objetos. Estándar CORBA para objetos distribuidos. Página 55
Tema 5: Bases de Datos Objeto-Relacionales: Introducción. Comparación entre BDR y
BDOO. La orientación a objetos en el mundo relacional: BDROO. Arquitectura de un gestor
relacional orientado a objetos. Consideraciones para la definición de nuevos tipos de datos. SQL3.
Página 79
Tema 6: Bases de Datos Relacionales Extendidas y Otros Tipos Especiales de Bases
datos: Sistemas de tipo extendido. Modelo relacional anidado. Bases de datos temporales. Bases
de datos espaciales y multimedia. Bases de datos para GIS. Página 101
Tema 7: Calidad en bases de datos: Introducción. Escalabilidad, eficiencia, efectividad,
modelado y calidad de datos. Calidad en bases de datos: calidad del gestor, calidad del modelo
de datos y calidad de los datos. Normas de calidad. Página 109
Tema 8: De las bases de datos a los almacenes de datos: Finalidades y evolución de los
sistemas de información. Herramientas para la toma de decisiones. Estructuras de datos para la
inteligencia de negocios. Almacenes de datos (Data Warehouses y Data Marts), olap (Proceso
Analítico en Línea) y minería de datos. Página 129
Tema 9: Almacenes de Datos para Gestión de Datos masivos: Introducción a los almacenes
de datos. Arquitectura de un sistema de almacén de datos. Carga y mantenimiento de un
almacén de datos. Diseño y armado de un almacén de datos. Página 136
Tema 10: OLAP: Explotación de un Almacén de Datos: Herramientas OLAP. Sistemas ROLAP
y MOLAP. SQL ampliado. Página 156
Tema 11: Minería de Datos - Introducción: Introducción a la Minería de Datos. El proceso de
KDD. Técnicas de Minería de Datos y Principales Algoritmos. Fase de Selección en Minería de
Datos. Fase de exploración en minería de datos. Fase de limpieza y transformación de datos.
Página 172
Tema 12: Minería de Datos - Técnicas Predictivas de Modelización: Técnicas de minería de
datos. Técnicas predictivas para la modelización. Modelo de regresión múltiple. Modelos de
elección discreta. Clasificación Ad Hoc: Análisis discriminante. Página 186
Tema 13: Minería de Datos - Técnicas Descriptivas y Predictivas de Clasificación: El
análisis cluster como técnica descriptiva de clasificación. Los árboles de decisión como técnica
predictiva de clasificación. Análisis de conglomerados y arboles de decisión como métodos de
segmentación. Página 203
Tema 14: Minería de Datos - Redes Neuronales: Descripción de una red neuronal (red
neuronal). red neuronal y ajuste de modelos de regresión. Aprendizaje en las red neuronal.
Funcionamiento de una red neuronal. El algoritmo de aprendizaje de retro-propagación. Análisis
discriminante a través del perceptrón. Análisis de series temporales mediante red neuronal.
Análisis de componentes principales con red neuronal. Agrupamiento (clustering) mediante red
neuronal. Página 221
Tema 15: Minería de Datos - Minería Web: Minería Web. Técnicas y principales algoritmos.
Página 235
B C
A D
Estructuras relacionales
La ventaja del modelo relacional es que los datos se almacenan, al menos conceptualmente, de
un modo que los usuarios entienden con mayor facilidad.
Los datos se almacenan como tablas:
• Las relaciones entre las filas y las tablas son visibles en los datos.
• Este enfoque permite a los usuarios obtener información de la BD sin asistencia de
sistemas profesionales de administración de información.
Las características más importantes de los modelos relacionales son:
• Es importante saber que las entradas en la tabla tienen un solo valor (son atómicos):
No se admiten valores múltiples.
La intersección de una fila con una columna tiene un solo valor, nunca un
conjunto de valores.
Todas las entradas de cualquier columna son de un solo tipo:
• Ejemplo: una columna puede contener nombres de clientes, y otra puede tener fechas de
nacimiento.
• Cada columna posee un nombre único, el orden de las columnas no es de importancia
para la tabla, las columnas de una tabla se conocen como atributos.
• Cada atributo tiene un dominio, que es una descripción física y lógica de valores
permitidos.
No existen dos filas en la tabla que sean idénticas.
El enfoque relacional es sustancialmente distinto de otros enfoques en términos de:
• Estructuras lógicas.
• Operaciones de entrada / salida.
Los datos se organizan en tablas llamadas relaciones, cada una de las cuales se implanta como
un archivo.
Una fila en una relación representa un registro o una entidad; cada columna en una relación
representa un campo o un atributo.
Una relación se compone de una colección de entidades (o registros) cuyos propietarios están
descritos por cierto número de
Atributos predeterminados implantados como campos.
El archivo para los ejemplos es el siguiente:
Dir #empt Nombre #dept #prov
101 1 Juan A X
102 2 Aldo B Y
103 3 José A Z
104 4 Raul A Y
105 5 Luis C Y
106 6 Pedro B Z
107 7 Jorde C X
108 8 Mateo A Z
109 9 Pablo B X
Estructuras Jerárquicas
• Encadenamiento.
• Lista invertida.
Se deben considerar los siguientes aspectos:
• Performance:
Acceso a un registro entero de la BD.
Acceso a una entidad de nivel bajo.
Acceso al segmento raíz.
Mantenimiento.
Uso de espacio de almacenamiento.
Ejemplo de jerarquía:
A1
B2
B1
C3 D3 C4 D3
C2 D2 D4
C1 D1
Estructuras en Red
Se denomina red a una estructura de BD en la que un hijo puede tener más de un padre.
Existen tres tipos básicos de redes:
• Entidades con más de un tipo de padre.
• Relación de muchos a muchos.
• Relaciones en bucle (loop).
Esquemas de tipos de redes:
• Entidades con más de un padre:
COMP PROV
OC PARTE
OC/PARTE
COMP PROV
PROD
A
SUB COMP
B SUB 1
D
COMP COMP
5 7
SUB
B
Integridad
Una vez realizado el diseño de la base de datos, se deben considerar los siguientes puntos:
• Integridad de los datos.
• Integridad de dominios.
• Integridad de transiciones.
• Integridad de entidades.
• Integridad referencial.
• Integridad de transacciones.
• Integridad de los datos
La creación de un modelo de las entidades del espacio del problema y las asociaciones entre ellas
es sólo una parte del proceso de modelización de los datos.
También se deben captar las reglas que utilizará el sistema de base de datos para asegurar que
los datos físicos que realmente mantiene son, si no correctos, al menos plausibles:
• Se debe modelar la integridad de los datos.
No puede garantizarse que los datos sean fidedignos:
• Ejemplo: que un pedido sea de 16 unidades o de 8 unidades depende del usuario
introductor de datos:
Para el sistema las dos posibles entradas serían válidas aunque sólo lo es una de
ellas.
Pero sí se puede garantizar mediante el diseño de la BD que los datos son conformes a las
restricciones de integridad definidas para ellos.
Integridad de dominios
Una restricción de dominio es una regla que define los valores válidos para los datos.
La elección de los tipos de datos (fecha, texto, etc.) Es el primer paso para la determinación de
las restricciones de dominio de un sistema.
Otro aspectos a considerar es si al dominio se le permite contemplar valores desconocidos o
inexistentes.
Integridad de transiciones
Las restricciones de integridad de transiciones definen los estados por los que una tupla puede
pasar válidamente.
Ejemplo: solo se permitirá que el saldo de un cliente cambie de “normal” a “preferente” si:
• El límite de crédito del cliente supera un determinado valor, o.
• Lleva al menos un año comerciando con la empresa.
El requisito del límite de crédito seguramente estará controlado por un atributo de la relación
clientes, pero puede que el tiempo que lleva el cliente trabajando con la empresa no esté
explícitamente guardado en ningún sitio:
Será necesario calcular el valor de acuerdo con el registro más antiguo en el que figure el cliente
en la relación pedidos.
Integridad de entidades
Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el
sistema. En el nivel más simple:
• La existencia de una clave principal es una restricción de entidad que impone la regla
“cada entidad debe estar identificada de forma única”.
Integridad de transacciones
Una transacción es una serie de operaciones sobre la BD consideradas como una única operación:
• Cuando se cierra la transacción la base de datos queda en un estado consistente.
• Las restricciones de integridad de transacciones gobiernan las formas en que se puede
manipular la BD.
• Las restricciones de transacción versan sobre el procesamiento y, por tanto, por sí
mismas no son parte del modelo de datos.
La BD debe respetar todas las restricciones de integridad definidas antes de que comience la
transacción y una vez finalizada ésta:
• Se pueden violar temporalmente algunas de las restricciones durante la transacción.
Integridad referencial
“las claves externas no pueden quedar huérfanas”.
Ningún registro de la tabla externa puede contener una clave externa que no se corresponda con
algún registro de la tabla principal.
Las tuplas que contienen claves externas que no tienen una correspondiente clave candidata, se
denominan entidades huérfanas.
Tres de las formas en las que se pueden crear entidades huérfanas son las siguientes:
• Se añade una tupla externa con una clave que no se corresponde con una clave candidata
en la tabla principal.
• La clave candidata de la tabla principal cambia.
• Se elimina en la tabla principal el registro referenciado.
Las transacciones pueden involucrar a múltiples registros, múltiples relaciones e incluso múltiples
BD.
Todas las operaciones sobre una BD son transacciones:
• Incluso la actualización de un único registro existente es una transacción.
• Estas transacciones de bajo nivel las realiza el motor de BD de forma transparente y,
normalmente se puede ignorar este nivel de detalle.
Un modelo de datos:
• Es una colección de conceptos que sirven para describir la estructura de una BD.
• Proporciona la abstracción requerida para ocultar detalles del almacenamiento de los
datos.
La estructura de una BD se refiere a los tipos de datos, los vínculos y las restricciones que deben
cumplirse para esos datos.
Generalmente los modelos de datos contienen un conjunto de operaciones básicas para
especificar lecturas y actualizaciones de la BD.
El modelo de datos generalmente incluye conceptos para especificar el aspecto dinámico o
comportamiento de una aplicación de BD:
• Permite especificar operaciones definidas por el usuario.
Categorías de los modelos de datos
Los modelos de datos de representación (o de los modelos de datos se pueden clasificar
dependiendo implementación):
De los tipos de conceptos que ofrecen para describir la ocultan algunos detalles sobre cómo se
almacenan estructura de la BD.
Los modelos de datos de alto nivel o conceptuales:
• Disponen de conceptos muy cercanos al modo como la mayoría de los usuarios percibe
los datos.
• Utilizan conceptos como entidades, atributos y relaciones.
Los modelos de datos de bajo nivel o físicos:
• Proporcionan conceptos que describen los detalles sobre como se almacenan los datos en
el ordenador.
Los modelos de datos de representación (o de implementación):
Alumno
Nombre Código alumno Año Especialidad
Curso
Nombre curso Código curso Créditos Departamento
Requisito
Código curso Número requisito
Sección
Identificador sección Código alumno Semestre Año Profesor
Informe_calificaciones
Código alumno Identificador sección Calificación
El estado de la BD, conjunto actual de ocurrencias o instantánea son los datos que la BD contiene
en un determinado momento:
• Cada elemento del esquema tiene su propio conjunto actual de instancias:
Ej, el elemento alumno contendrá como instancias el conjunto de entidades de
alumno individuales (-(registros).
Siempre que se actualice la BD se tendrá otro estado.
El SGBD almacena las descripciones de los elementos del esquema y las restricciones (también
Usuarios finales
Correspondencia
Externo/conceptual
Correspondencia interno/conceptual
ESQUEMA INTERNO
Nivel interno
Lenguajes e interfaces de BD
Un SGBD debe ofrecer lenguajes e interfaces apropiados para cada categoría de usuarios.
Lenguajes del SGBD
Si no se mantiene una separación estricta de niveles, el ABD (administrador de BD) y los
diseñadores de la BD utilizan un mismo lenguaje para definir los esquemas conceptual e interno:
• El lenguaje de definición de datos (LDD).
• El SGBD tendrá un compilador de LDD para procesar las sentencias escritas en el LDD
para identificar las descripciones de los elementos de los esquemas y almacenar la
descripción del esquema en el catálogo del SGBD.
Si en los SGBD se separan claramente los niveles conceptual e interno:
• El LDD servirá sólo para especificar el esquema conceptual.
• Para especificar el esquema interno se utiliza el lenguaje de definición de almacenamiento
(lda).
• Las correspondencias entre los dos esquemas se pueden especificar en cualquiera de los
dos lenguajes.
Para una arquitectura de tres esquemas se precisa además el lenguaje de definición de vistas
(LDV).
• Para especificar las vistas del usuario y sus correspondencias con el esquema conceptual.
Las operaciones de manipulación más comunes son la recuperación, la inserción, la eliminación y
la modificación de los datos:
• El SGBD dispone de un lenguaje de manipulación de datos (LMD) para estos fines.
En los actuales SGBD los tipos de lenguajes mencionados no se consideran lenguajes diferentes:
• Se utiliza un amplio lenguaje integrado que cuenta con elementos para definir esquemas
conceptuales, definir vistas, manipular datos y definir su almacenamiento.
La definición del almacenamiento normalmente se mantiene separada ya que se utiliza para
definir las estructuras físicas de almacenamiento.
El lenguaje de BD relacionales SQL representa una combinación de LDD, LDV, y LMD, y sentencias
para especificación de restricciones y evolución del esquema.
Hay dos tipos principales de LMD:
• De alto nivel.
• De bajo nivel.
De alto nivel o de no procedimiento:
• Se pueden utilizar de manera independiente para especificar operaciones complejas de
BD en forma concisa desde un terminal o embebidas en un lenguaje de programación.
• Se les llama LMD de conjunto por conjunto u orientados a conjuntos (pueden recuperar
conjuntos de registros con una instrucción).
De bajo nivel o de procedimiento:
• Deben estar embebidos en un lenguaje de programación.
• Se los conoce como LMD de registro por registro u orientados a registro (pueden
recuperar un registro con una instrucción).
El SQL es un LMD de alto nivel.
Interfaces del SGBD
Entre las interfaces amigables generalmente están las siguientes:
• Interfaces para navegación basados en menús.
• Interfaces basadas en formularios.
• Interfaces gráficas de usuario.
• Interfaces de lenguaje natural.
• Interfaces para usuarios paramétricos.
• Interfaces para el ABD.
Interfaces para navegación basados en menús:
• Presentan al usuario listas de opciones (menús) que lo guían para formular una solicitud.
• Los menús permiten confeccionar la solicitud paso a paso mediante la elección de las
diferentes opciones.
• Permiten ojear los contenidos de una BD usando una forma de exploración no
estructurada.
Interfaces basadas en formularios:
• Presentan un formulario al usuario:
Puede rellenar todas las entradas para insertar nuevos datos.
Puede rellenar sólo algunos de ellos: el SGBD obtendrá los datos que coincidan
con los que se han especificado.
• Los formularios suelen diseñarse y programarse como interfaces de transacciones
programadas.
• Generalmente los SGBD cuentan con los lenguajes de especificación de formularios.
Interfaces gráficas de usuario (GUI):
• Suelen presentar los esquemas en forma de diagrama y se puede especificar una consulta
manipulando el diagrama.
• Generalmente las GUI se combinan con menús y formularios.
Interfaces de lenguaje natural:
• Aceptan solicitudes escritas en inglés o en otro idioma e intentan «entenderlas».
• Suelen tener su propio «esquema», similar al esquema conceptual de la BD.
• Si la interfaz interpreta la solicitud genera una consulta de alto nivel que corresponde a la
solicitud en lenguaje natural y la envía al SGBD para su procesamiento.
• Si no interpreta la solicitud se inicia un diálogo con el usuario para esclarecer la solicitud.
Interfaces para usuarios paramétricos:
PROGRAMAS DE
Personal de ABD usuarios usuarios
APLICACIONES
Ocasionales paramétricos
SENTENCIAS Precompilador
INSTRUCCIONES CONSULTA
LDD PRIVILEGIADAS INTERACTIVA Compilador del
Lenguaje anfitrión
Procesador
Ejecución de base de ejecución
datos en tiempo
de ejecución
Gestor
D Subsistema de control de Concurrencia
de datos
/ Respaldo / Recuperación
almacenado
Las líneas punteadas y los círculos rotulados A, B, C, D y E ilustran accesos que están bajo el
control de este gestor de datos almacenados.
El compilador de LDD:
• Procesa las definiciones de esquemas especificadas en el LDD.
• Almacena las descripciones de los esquemas (metadatos) en el catálogo del SGBD.
El catálogo contiene:
• Los nombres de los ficheros y de los elementos de datos.
• Los detalles de almacenamiento de cada fichero.
• La información de correspondencia entre los esquemas y las restricciones.
• Otros tipos de información necesaria para el SGBD.
El procesador de BD en tiempo de ejecución:
• Se encarga de los accesos durante la ejecución.
• El acceso al disco se tiene mediante el gestor de datos almacenados.
El compilador de consultas:
• Maneja las consultas de alto nivel que se introducen interactivamente.
• Analiza la sintaxis y compila la consulta o la interpreta.
• Crea el código de acceso a la BD.
• Genera llamadas al procesador en tiempo de ejecución para ejecutar dicho código.
El precompilador:
• Extrae instrucciones en LMD de un programa de aplicación escrito en un lenguaje de
programación anfitrión.
• Las instrucciones se envían al compilador de LMD para convertirlas en código objeto para
el acceso a la BD.
• El resto del programa se envía al compilador del lenguaje anfitrión.
• El código objeto de las instrucciones en LMD y el del resto del programa se enlazan
(linkeditan), formando una transacción programada cuyo código ejecutable incluye
llamadas al procesador de la BD durante el tiempo de ejecución.
Utilidades del sistema de BD
Generalmente los SGBD cuentan con utilidades de BD que ayudan al ABD a gestionar el sistema.
Las utilidades efectúan los siguientes tipos de funciones:
• Carga.
• Copia de seguridad.
• Reorganización de archivos.
• Control del rendimiento.
Carga:
• Se utiliza para cargar archivos de datos ya existentes en la BD.
• Modifica automáticamente el formato de los datos y los almacena en la BD.
Copia de seguridad (Backup):
• Crean una copia de seguridad de la BD.
• La copia puede servir para restaurar la BD en caso de un fallo catastrófico.
• En las copias de seguridad en niveles sólo se registran los cambios habidos desde la
anterior copia de seguridad.
Reorganización de archivos:
• Puede servir para pasar de una organización de los archivos de la BD a otra con el fin de
mejorar el rendimiento.
Control del rendimiento:
• Supervisan la utilización de la BD y proporcionan datos estadísticos al ABD, el cual los
utiliza para decidir, por ejemplo, si conviene reorganizar los ficheros con el fin de mejorar
el rendimiento.
Puede haber utilidades para ordenar archivos, comprimir datos, supervisar los accesos de los
usuarios y efectuar otras funciones.
Herramientas, entornos de aplicación y recursos de comunicación.
Las herramientas CASE (Computer Aided Software Engineering) se utilizan en la fase de diseño
de los sistemas de BD.
Otra herramienta útil en las organizaciones grandes es el sistema de diccionario de datos
extendido (o repositorio de datos):
• Almacena la información del catálogo sobre esquemas y restricciones.
• Almacena las decisiones de diseño, la utilización de normas, la descripción de programas
Empleado
Nombre Inic Apellido Nss Fecha_ncto Dirección Sexo Salario Nss_superv Nd
Departamento
Nombred Númerod Nss_jefe Fecha_inic_jefe
Localizaciones_dept
Númerod Localizaciond
Proyecto
Nombrep Númerop Localizaciónp Numd
Trabaja_en
Nsse Np Horas
Dependiente
Nsse Nombre_dependiente Sexo Fecha_ncto Parentesco
Ejemplo de una relación de catálogo básica para describir los esquemas de la relación de la figura
anterior.
Rel_and_attr_catalog
Rel_name Attr_name Attr_type Memeber_of_pk Member_of_fk Fk_relation
Otras posibles relaciones del catálogo para un sistema relacional. (a) posible relación del catálogo
para almacenar información general de las claves. (b) posible relación del catálogo para
almacenar información de índices. (c) posibles relaciones del catálogo para almacenar
información de vistas:
(a) relation_keys
Rel_name Key_number Member_attr
(b) relation_keys
Rel_name Index_name Member_attr Index_type Attr_no Asc_desc
(c) view_queries
View_name Query
View_attributes
View_name Attr_name Attr_num
Los diccionarios de datos y depósitos de datos son una utilidad del software más general que el
catálogo.
Pueden interactuar con los módulos del SGBD.
Los utilizan principalmente los diseñadores, usuarios y administradores de un sistema de
computador para la gestión de los recursos de información.
Sirven para mantener información de configuraciones hardware y software del sistema, la
documentación, las aplicaciones y los usuarios e informaciones relevantes para la administración
del sistema.
Si sólo los usan diseñadores, usuarios y administradores y no el software del SGBD, se llama
diccionario de datos pasivo.
En caso contrario se denomina diccionario de datos activo o directorio de datos.
Interfaces de software y humanas para un diccionario de datos:
Interfaces humanas
DICCIONARIO DE DATOS
Interfaces del SGBD
Y software
Subsistema optimizador
De seguridad de consultas
Introducción.
El modelo de datos relacional fue introducido por Ted Codd, de IBM, en 1970.
Se basa en los conceptos de:
• Relación matemática.
• Teoría de conjuntos.
• Lógica de predicados de primer orden.
ALMACENAR
CONTROLAR
CONSULTAR
INFORMACIÓN ACTUALIZAR
DATOS
RELACIONES
RESTRICCIONES
Conceptos iniciales
Dato operativo:
• Todo elemento de información que necesita una organización para su funcionamiento.
Independencia física:
• El almacenamiento físico de los datos debe ser independiente del diseño lógico de la BD a
todos los niveles.
Independencia lógica:
• La percepción que cada programa tiene de la estructura lógica de la BD (vista de usuario)
debe permanecer inmutable a nivel lógico en dicha estructura.
Entidades:
• Una entidad se define como un objeto que existe y que es distinguible de los demás:
Ej.: Un empleado, un libro, un departamento.
Atributos:
• Son las propiedades que caracterizan un conjunto de entidades.
Dependencia existencial:
• Sean a y b dos conjuntos de entidades. Se dice que b depende existencialmente de a si
cumple:
∃ t ∈ a x b / b ∈ b → ∃ a ∈ a / (a, b) ∈ t.
Es imposible identificar a b sin identificar previamente a a.
Asociaciones o relaciones:
• Una relación es una conexión semántica entre dos o más conjuntos de entidades.
Especialización:
• Se dirá que el conjunto de entidades a es una especialización del conjunto de entidades b
si a ∈ a → a ∈ b. El conjunto de entidades a está incluido en el conjunto de entidades b.
INF. CONTROL
INF. REST.
INF. DATOS
FICHEROS
DATOS
INF. CONTROL
INF. REST.
BASE DE DATOS
INF. DATOS
DATOS
INF. CONTROL
BASE DE DATOS
INF. RESTRICCIONES
INF. DATOS
DATOS
INF. PROCESOS
INF. CONTROL
BASE DE DATOS
INF. CONTROL
INF. RESTRICCIONES
INF. DATOS
DATOS
INF. CONTROL
BASE DE DATOS
INF. PROCESOS
INF. CONTROL
INF. RESTRICCIONES
INF. DATOS
DATOS
Propietarios
Localidad
Codigo Dni Ubicacion Superficie
Otras restricciones:
• Valores requeridos.
• Valor por defecto.
• Dominio de valores.
Create table jugadores
(dni char(10) not null,
Nombre char(26) not null,
Direccion char (30) not null.
Telefono char(15),
Sexo char(1) check (sexo in ('m', 'f') not null,
Fe_alta date default today not null,
Estatura dec(3, 2)
Constraint valor_estatura check (estatura > 1,75)
Primary key (dni));
Mediante la instrucción create domain se pueden definir un tipo de dato de usuario a partir de un tipo de dato estándar (no la incluyen
todos los gestores).
Create domain estatura dec(3,2)
Constraint valor_estatura check (estatura > 1,75)
Reglas de negocio
DNI CODIGO
Ejemplo para cada fila de la tabla NOMBRE DNI_PROPIETARIO
Locales, los valores de dni_propietario DIRECCION DNI_ARRENDATARIO
Y dni_arrendatario no pueden ser iguales.
UBICACIÓN
SUPERFICIE
Alter table locales with nocheck add
Constraint ok_locales check (dni_propietario <> dni_arrendatario)
Los triggers son procesos predefinidos que entran en acción en respuesta a eventos específicos de manipulación de datos.
Update locales set dni_propietario = ''60601602
Where dni_propietario = '40401402'
Codigo Dni_propietario Dni_arrendatario Ubicación Superficie
Transacciones.
Inicio de transacción
K=1
¿K=n?
Desbloqueo de Datos
Fin de la transacción
(Sin error)
APLICACION APLICACION
Gestion
Sistema
Campus A
Matriculación
CUANDO... SGBD
ENTONCES...
Datos Alumnos
Datos Titulaciones
APLICACION Gestion Datos Autobús
Campus B ...
CUANDO...
ENTONCES...
CUANDO...
ENTONCES...
Esto ocasiona:
• Pérdida de modularidad
• Semántica distribuida.
Comportamiento activo en una aplicación específica:
APLICACION
APLICACION
Gestion Sistema
Campus A Matriculación
SGBD
Datos Alumnos
APLICACION Datos Titulaciones
Gestion Datos Autobús
Campus B ...
CUANDO... APLICACIÓN
ENTONCES... SONDEO
Esto ocasiona:
• Mejora la modularidad
• ¿frecuencia de sondeo?.
APLICACION
APLICACION
Gestion Sistema
Campus A Matriculación
SGBD
Datos Alumnos
APLICACION Datos Titulaciones
Gestion Datos Autobús
Campus B …
CUANDO...
ENTONCES...
Esto ocasiona:
• La mejora de modularidad.
• Reacción inmediata.
Manifiesto de las bases de datos activas (1996):
• Características de un SGBD activo:
Tiene un modelo de reglas ECA.
Soporta la gestión de reglas y la evolución de la base de datos.
• Características de ejecución de reglas ECA.
El SGBD tiene un modelo de ejecución.
Ofrece diferentes modelos de acoplamiento.
Implementa modos de consumo.
Gestiona la historia de eventos.
Implementa la resolución de conflictos.
• Características de aplicación y usabilidad:
Posee un entorno de programación.
Es ajustable.
SGBD activo:
Los SGBD activos proporcionan mecanismos para:
• Definir el qué y el cuándo.
Modelo de conocimiento.
• Realizar un seguimiento del cuándo y gestionar el qué.
Modelo de ejecución.
Modelo de conocimiento:
• Describe la situación y la reacción correspondiente (reglas eca).
Modelo de ejecución:
• Realiza un seguimiento de la situación y gestiona el comportamiento activo (cómo se
comportan las reglas en tiempo de ejecución).
SQL y las BD activas:
Constraints:
• Especificaciones del LDD que se aplican a columnas o tablas.
• Conviene darles nombre.
• Pueden usar unique, not null, references, check.
Alter table dept_tab add primary key (deptno)
• Mayor productividad.
• Mejor mantenimiento.
• Reutilización de código.
• Reducción del tráfico de mensajes.
Internas:
• Clásicas de la utilización o administración de BD.
• Control de integridad (on update cascade).
• Mantenimiento de datos derivados (vistas).
• Administración de copias (monitorizar y registrar cambios).
• Seguridad y auditoría.
• Gestión de versiones.
Externas:
• Reglas de negocio (ej.: rutas de autobús).
Notificación cuando ocurren ciertas condiciones.
Reforzar las restricciones de integridad:
• Los disparadores son más inteligentes y más potentes que las restricciones.
Mantenimiento de datos derivados:
• Actualización automática de datos derivados evitando anomalías debidas a la
redundancia:
Ejemplo: un disparador actualiza el saldo total de una cuenta bancaria cada vez
que se inserta, elimina o modifica un movimiento en dicha cuenta.
Modelo del conocimiento:
• Definir qué y cuándo.
Reglas eca → evento – condición – acción:
• Evento: qué dispara la acción.
• Condición: estado que debe darse.
• Acción: qué se hace.
¿cuándo? ¿qué?
Evento
Fuente: ¿qué ocasiona la ocurrencia de un evento?:
Una instrucción del lmd (antes o después):
• Insert, delete, update, select.
Una instrucción para la gestión de transacciones:
• Commit, abort.
Una excepción:
• Violación de autorizaciones, bloqueos, etc.
El reloj:
• El 28 de mayo a las 19:30h.
La aplicación (externo a la BD).
Granularidad: ¿qué cambios considera una ocurrencia del evento?:
• Cambios en sólo una tupla (disparadores a nivel de fila):
1 tupla : 1 evento.
• Cambios en todas las tuplas (disparadores a nivel de sentencia):
0..n tuplas : 1 evento.
Condición y acción
Condición:
• Un predicado sobre la BD: consulta.
• Puede ser opcional (si no se incluye se considera que la condición es siempre cierta).
Acción
• ¿Qué se puede incluir en la reacción?.
SGBD
SGBD
INSERT Suekdo >
o Empleado UPDATE
Sueldo Jefe Empleado
UPDATE
Condición: if new.sueldo > (select B.sueldo from Empleado B where B.nombre = new nombreJefe)
Fuente
de
Eventos
Señalar 5 fases
Ocurrencia
de
Eventos r
ta
Disparar
u
ec
Ej
Reglas
Disparadas Reglas
Seleccionadas
Reglas
Planificar
Evaluadas
r
ua
al
Ev
Ejecución
En general, la forma en que se ejecutan dichas fases depende de dos modos de acoplamiento:
• Evento vs condición.
• Condición vs acción.
Para ambos modos las opciones son:
• Inmediato (inmediate):
La condición se evalúa inmediatamente después del evento.
La acción se ejecuta inmediatamente después de la condición.
• Diferido (deferred):
La condición se evalúa al final de la transacción.
La acción se ejecuta al final de la transacción.
• Desprendido (detached):
La condición se evalúa en una transacción diferente.
La acción se ejecuta en una transacción diferente.
Ejemplo:
Modos de acoplamiento
¿Cuándo se evalúa la condición?
UPDATE EMPLEADO
SET SUELDO = SUELDO * 1.10
INICIO
de
TRANSACCIÓN
EVENTO
FIN
de
TRANSACCIÓN
INICIO
de
TRANSACCIÓN
EVENTO
Disparador (Trigger)
Está asociado a una única tabla base.
Es el concepto clave para implementar BD activas.
Tiene tres partes:
• Un evento: indica la acción sobre la tabla base que causará que se active el disparador:
Insert, delete, o update.
• Un tiempo de acción: indica cuándo se activará el disparo:
Before => antes del evento.
After => después del evento.
• Una acción: se llevan a cabo si ocurre el evento. Puede ser de dos tipos:
Una sentencia SQL ejecutable (SQL executable statement).
Un bloque atómico de sentencias SQL ejecutables.
Ejemplo de SQL 2003: Granularidad de fila.
CREATE TRIGGER Ejemplo_fila
AFTER DELETE ON tabla1
REFERENCING OLD ROW AS v
FOR EACH ROW
WHEN ((v.nombre = 'pepe') OR (v.edad > 35))
BEGIN ATOMIC
DELETE FROM tabla2 WHERE tabla2.cod=v.cod;
END;
• Si un SGBD soporta un lenguaje de bajo nivel que permite el acceso fila a fila, éste no
puede utilizarse para saltarse las reglas de integridad y las restricciones expresadas por
medio del lenguaje de más alto nivel.
• El SGBD debe controlar todos los accesos a la BD para que no se pueda comprometer la
integridad de la misma.
Clasificación de las doce reglas de Codd:
¿Cómo de
Básicas relacional
----------------------- es este Independencia
sistema? ----------------------------
(12) No subversión
(8) Independencia física
De los datos
(5) Actualización de
vistas Integridad
--------------------------- Manipulación
----------------------------
(3) Tratamiento automático
De los valores nulos (2) Acceso garantizado
El modelo relacional tiene dificultades en aplicaciones que manejan gran variedad de tipos de
datos de cierta complejidad, por ej.:
• Textos en aplicaciones de generación de publicaciones.
• Imágenes en aplicaciones que analizan información visual (ej.: predicciones
meteorológicas).
• Datos complejos no convencionales en aplicaciones de diseño (ej.: CAD/CAM).
• Información multimedia en general.
Algunas de las limitaciones del modelo relacional son:
• Objetos completos: pobre forma de representación de objetos complejos debido a:
Primera forma normal – uso exclusivo de valores atómicos en los atributos de las
relaciones.
Falta de relaciones anidadas.
• Estructuración: no ofrece un soporte adecuado cuando en el esquema aparecen:
Estructuras recursivas o anidadas.
Colecciones de datos que correspondiendo al mismo tipo de entidad tienen un
tipo similar pero no idéntico.
• Datos altamente relacionados: la descomposición en múltiples tablas complica su
recuperación y la enlentece.
• Creación de tipos: la capacidad de creación de tipos de datos está muy limitada:
La gestión de objetos multimedia es muy primitiva (ej.: objetos grandes en
binario: BLOB).
El soporte para información semi-estructurada es deficiente (ej.: texto o páginas
web).
En la actualidad:
• La mayoría de los sistemas de información se encuentran en sistemas centralizados.
• Las redes de comunicación son rápidas y con gran capacidad.
• Entorno globalizado, empresas distribuidas geográficamente.
• Abren una nueva alternativa que permiten tener los datos allí donde se gestionan.
Motivación de las bases de datos distribuidas:
• Necesidad de Integración + Distribución
Las bases de datos y las redes de ordenadores conforman las bases de datos
distribuidas.
Integración:
• Problemas derivados del desarrollo de BD independientes.
Datos redundantes,
SGBD distintos.
Plataformas variadas (PC's, Workstations).
• Consecuencias:
Inconsistencias en los datos.
Dificultad de interoperatividad.
Aislamiento de los distintos grupos de usuarios.
• Necesidad de sistemas de información integrados que respondan a los objetivos globales
de la empresa.
Distribución:
• Finalidad:
Acercar la informática a los usuarios.
Compartiendo.
Optimizando.
• Necesidad de sistemas de información distribuidos que doten de autonomía a los usuarios
y que consigan mayor eficiencia.
No obstante: Integración es distinto que Centralización.
Definición de bases de datos distribuidas:
• Un sistema de base de datos distribuido consiste en un conjunto de bases de datos
lógicamente relacionadas y distribuidas sobre una red de ordenadores.
• Un SGBD-D es el software que gestiona BDD y suministra mecanismos de acceso que
hace la distribución transparente al usuario.
Definición de Bases de datos distribuidas (BDD): Colección de múltiples bases de datos,
lógicamente interrelación, distribuidas sobre una red de ordenadores.
Definición de Sistema de gestión de BDD (SGBDD): Producto software capaz de gestionar una
BDD, suministrando mecanismos de acceso que hacen transparente la distribución.
Sistema de BDD = BDD + SGBDD.
ORDENADOR ORDENADOR BD
BD
Local SGBDD SGBDD Local
RED DE
COMUNICACIONES
ORDENADOR ORDENADOR BD
BD
Local SGBDD Local
SGBDD
Alumnos Alumnos
RED
Comunicación a
NODO EUIT
través de la red
Alumnos
Visión general.
• Nodos de las escuelas: [DNI | Escuela | Nombre | Nota Ingreso | Beca]
• Nodo del rectorado: Escuela | Situación | Número Alumnos
• Nuevo alumno en la secretaría del centro: Transacción local.
• Nuevo alumno en el rectorado: Transacción global.
Este sistema será distribuido si cumple que:
• Los distintos nodos están informados sobre los demás.
• Aunque algunas tablas estén almacenadas sólo en algunos nodos, éstos comparten un
esquema global común.
• Cada nodo proporciona un entorno de ejecución de transacciones, tanto local, como
global.
• Generalmente, los nodos ejecutan el mismo software de gestión distribuida. En caso
contrario se dice que el sistema es heterogéneo.
Características de las BDD.
• Los datos deben estar físicamente en más de un ordenador (distintas sedes).
• Las redes deben estar interconectadas mediante una red (cada sede es un nodo de red).
• Los datos han de estar lógicamente integrados(recuperación y actualización) tanto en
local como remoto (esquema lógico global y único).
• En una única operación se puede acceder (recuperar o actualizar) datos que se
encuentran en más de una sede (acceso a datos locales o remotos).
• Todas las acciones que necesiten realizarse sobre más de una sede serán transparentes al
Propagación de actualizaciones.
Procesamiento de consultas distribuidas, definición de estrategias.
Mantener un diccionario integrado.
Control de concurrencia, integridad de la BDD, consistencia entre las múltiples
copias de los datos.
Fiabilidad de los SGBDD, capaz de recuperar y devolver a las bases de datos
implicadas en el fallo un estado consistente y estable.
Soporte de sistema operativo.
Bases de datos heterogéneas, mecanismos de traducción.
• Un SGBDD tiene, conceptualmente, tres componentes principales:
Procesador de datos locales (PDL).
Gestión de datos local.
Procesador de aplicaciones distribuidas (PAD).
Responsable de las funciones de distribución.
Software de comunicaciones.
Suministra las primitivas y los servicios de comunicaciones que necesita
el PAD.
• Cada sede puede tener un PDL y un PAD o bien sólo uno de ellos.
Topología de las BDD:
• Según el grado de homogeneidad de los SGBD locales:
SGBDD homogéneos: Todos los SGBD locales son iguales.
SGBDD heterogéneos: Los SGBD locales son distintos.
• Según el grado de autonomía funcional:
SGBDD federados: Total autonomía funcional (multibase de datos).
SGBDD sin autonomía funcional local.
• Según el grado de autonomía organizativa:
Autonomía total: las decisiones se toman a nivel local.
Organización centralizada.
Esquemas de una BDD:
Esquema
Esquema Esquema Local N
Local 1 Local 2
Esquema global
(integrado)
Administración
Del catálogo
Control de
Concurrencia
• Diseño de BD distribuidas:
Fragmentación y replicación.
• Procesamiento de consultas:
Decidir la estrategia de ejecutar cada “query” sobre la red de la forma más
eficiente. Los factores a considerar son la distribución de datos, el coste de
comunicación y la falta de suficiente información disponible localmente.
• Administración del catálogo:
Información del esquema relacional más información de control para ofrecer la
independencia respecto a la localización, la fragmentación y la réplica.
Soluciones: centralizado. Réplicas completas, dividido o combinación de
centralizado y divido.
• Control de concurrencia:
Integridad y consistencia de todas las copias.
Control de acceso concurrente.
Gestión de transacciones.
• Fiabilidad y disponibilidad:
Mecanismos para asegurar la consistencia de la base de datos, detectar fallos y
recuperarse de ellos.
Clasificación de BD Distribuidas
BD Distribuidas
Multi - DBMS
Single - DBMS
No Federados Federados
(Homogéneos) (Heterogéneos)
Ligeramente Fuertemente
Acoplados Acoplados
Esquema Esquema
simple múltiple
USUARIO
GS GRM GQO
Fragmentación y replicación
Diseño de BD Distribuidas:
• Fragmentación:
Vertical.
Horizontal.
Mixta.
• Replicación (disponibilidad, rapidez en consultas, tiempo extra en actualizaciones)
Total.
Parcial.
Almacenamiento distribuido.
• Dada una relación R.
Replica: copia de R en emplazamiento diferente.
Fragmentación: R dividida en fragmentos diferentes almacenados en sitios
diferentes.
Replica y fragmentación: R dividida en fragmentos que sin replicados en sitios
diferentes.
Fragmentación ¿Por qué?.
• Utilización. Generalmente las aplicaciones trabajan con vistas en vez de con relaciones
completas.
• Eficiencia. Los datos se almacenan dónde más se utilizan.
• Paralelismo. Las transacciones pueden dividirse en subconsultas que operan con
fragmentos.
• Seguridad. Los datos no necesarios localmente no se almacenan y se evita su uso por los
usuarios no autorizados.
• Pero:
Consultas más lentas al tener que buscar datos de diferentes fragmentos en
distintas sedes.
Aumenta la complejidad para garantizar la integridad.
Reglas para la fragmentación.
• Integridad → No pérdida de información.
Si una relación R es descompuesta en fragmentos R 1, R2, …, Rn cada dato que
pueda ser encontrado en R también debe ser encontrado en una o más relaciones
Ri's.
• Reconstrucción → Preservar dependencias.
Si una relación R es descompuesta en fragmentos R 1, R2, …, Rn debe ser posible
posible definir el operador relacional ∂ tal que:
R = ∂ Ri = Ri Fr
El operador ∂ diferirá según el tipo de fragmentación realizada.
• Desacoplamiento:
Si R es descompuesta verticalmente, su PK debe estar en todos los fragmentos.
Si R es descompuesta horizontalmente en fragmentos R 1, R2, …, Rn y el dato di
está en Rj, no debe haber otro fragmento que lo contenga Rk (k≠J)
Métodos para fragmentación:
• Navathe(80´s)
Método de fragmentación vertical cuyo fin es crear fragmentos minimizando el
número de operaciones de unión que han de realizarse.
Ventajas de este método:
Simplicidad
Departamento Infraestructura
Escuela Situación
ETSIT 2500
FI 2100
Πescuela, Número_Alumnos(R)
44543324 EUI Maite Clado 7.5 Si DNI Escuela Nombre Nota Ingreso
• 10.000 tuplas.
• Cada tupla tiene 100 bytes de longitud.
• El campo cod tiene 9 bytes de longitud.
• El campo dpto tiene 4 bytes de longitud.
• El campo nombre tiene 15 bytes de longitud.
• El campo apellido tiene 15 bytes de longitud.
• Tamaño de la relación: 100 * 10.000 = 106 bytes
Nodo 2: Departamento
NombreDpto NDepto Responsable Edificio
• 100 tuplas.
• Cada tupla tiene 35 bytes de longitud.
• El campo nombredpto tiene 10 bytes de longitud. El campo ndpto tiene 4 bytes de longitud.
• El campo responsable tiene 9 bytes de longitud.
• Tamaño de la relación: 35 * 100 = 3500 bytes
• “Por cada empleado, obtener el nombre del empleado y el nombre del departamento al que
pertenece”
• Q1 (1): πNombre, Apellido, NombreDpto(EMPLEADO*DEPARTAMENTO)
• La consulta se lanza desde el nodo 3 {nodo respuesta) que no tiene datos implicados en la
consulta.
• El resultado de ésta consulta constará de 10.000 tuplas. Cada tupla resultante será de una
longitud de 40 bytes. El tamaño del resultado será por tanto de 400.000 bytes.
• Existen tres alternativas para resolver la consulta.
(1)
Query (Q): identificador de consulta
• Primera alternativa:
◦ Transferir, tanto la relación empleado, como la relación departamento al nodo respuesta
(nodo 3) y realizar allí mismo la operación de join. En éste caso se transfieren:
◦ 1.000.000 + 3.500 = 1.003.500 bytes.
• Segunda alternativa:
◦ Transferir la relación empleado al nodo 2, ejecutar el join en este nodo y enviar el resultado al
nodo 3. Esto implicaría transferir:
◦ 1.000.000 + 400.000 (resultado) = 1.400.000 bytes
• Tercera alternativa:
◦ Transferir la relación departamento al nodo 1, ejecutar el join en este nodo y enviar el
resultado al nodo 3. En este caso, los bytes transferidos serán:
◦ 3.500 + 400.000 (resultado) = 403.500 bytes.
• “Para cada departamento, obtener el nombre del departamento y el de su director”
• Q2 (1): πNombreDpto, Nombre, Apellido(EMPLEADO*DEPARTAMENTO)
• La consulta se lanza desde el nodo 3. El resultado de ésta consulta constará de 100 rupias (4.000
bytes).
• Opción 1: transferimos las relaciones departamento y empleado al nodo 3. Se transfieren:
◦ 3.500 + 1.000.000 = 1.003.500 bytes.
• Opción 2: transferimos la relación empleado al nodo 2 y enviamos el resultado del join al nodo 3.
Se transfieren:
◦ 1.000.000 + 4.000 = 1.004.000 bytes.
• Opción 3: transferimos la relación departamento al nodo 1 y enviamos el resultado del join al
X
Sede 1 1. Transferimos la P(Departamento) por NSSGTE a la
Empleado sede 1
▪ F tiene un tamaño 100 reg * 9 bytes.
2. Hacemos la combinación de F en I sede 1. La
proyección (como estrategia local). Transferimos a la
sede 2.
▪ R tiene un tamaño 100 reg * 39 bytes.
Sede 2 • En total: 900 + 3.900 = 4.800 bytes
Departamento
Transacciones Distribuidas
Propagación de transacciones.
• En el caso de replicación de actualizaciones:
A) propagación inmediata: copia instantánea a todas las sedes replicadas.
B) propagación diferida: copia primaria.
B.1) sede primaria → resto de las sedes.
B.2) sede primaria → sede siguiente.
Sana gana en autonomía local.
Aumentan las consistencias temporales.
La eliminación de inconsistencias lleva consigo la pérdida de autonomía local.
Gestión de actualizaciones que involucran varias sedes.
• Transacción:
Secuencia de operaciones elementales entre estados consistentes.
Se realizan todas o ninguna.
• Una transacción debe soportar las siguientes propiedades:
Atomicidad (todo o nada).
Consistencia (perservar las restricciones de integridad).
Aislamiento (cambios invisibles hasta la confirmación).
Persistencia (una vez confirmada).
Begin transaction → Commit → Rollback.
Protocolo de compromiso en dos fases (Two Phase Commit Protocol)
1. El coordinador envía una solicitud de voto (vote request) a los nodos participantes en
la ejecución de la transacción.
2. Cuando los participantes reciben la solicitud de voto, responden enviando al
coordinador un mensaje con su voto (si o no). Si un participante vota no, la transacción
se aborta (abort).
3. El coordinador recoge los mensajes con los votos de todos los participantes. En otro
caso, el coordinador decide abandonar y envía un mensaje abort a todos los participantes
que han votado afirmativamente.
4. Cada participante que ha votado sí, espera del coordinador un mensaje Commit o
Abort para terminar la transacción de forma normal o abortarla.
Two-Phase Commit (2PC)
SEDE 1
?
arado
¿Prep
OK
¿Preparado?
COORDINADOR OK SEDE 2
¿Pre
para
do?
OK
Protocolo de confirmación ...
de dos fases.
SEDE N
Fase I
SEDE 1
it)
omm
a li z ar (C
Re
Facultad de Ciencias Exactas y Naturales y Agrimensura
Universidad Nacional del Nordeste Página 50
Bases de Datos II – Licenciatura en Sistemas de Información
SEDE N
Fase II
SEDE 1
?
arado
¿Prep
O K
¿Preparado?
COORDINADOR OK SEDE 2
¿Pre
para
do? ...
OK
Terminación
con fallo
SEDE N
SEDE 1
ck)
ollba
ta (R
Abor
...
SEDE N
Coordinador Participante
Inicie Inicie
AR
P AR
PRE
Escribir
write_commit Escribir No ¿Preparado para
En log Abortar en log confirmar?
R
TA
OR
-AB
TO
VO Si
VOTO-CONFIRMAR Escribir
Espere
Listo en log
Si ABORTAR-GLOBAL
¿No? Escribir
Abortar en log Listo
M AR
NFIR
Escribir O -CO
CONFIRMAR VOT
En log No ¿Preparado para
confirmar?
ACK Escribir
Abortar Abortar en log Si
Confirmar
Escribir
ACK
Listo en log
P P
P
P P
P
C C
C C
P P
P
P P
P
¿Pre/confirmar?
| ¿Listo? | Si/No | ¿Pre/abortar? | Si/No | Confirmar/Abortar | Ack
Recuperación distribuida.
• En cada sede, el gestor de transacciones deberá ser capaz de recuperarse ante fallos
leyendo los ficheros de log.
• La gestión de la recuperación se dificulta con los protocolos 2pc y 3pc ya que deberían ser
capaces de conectarse a otras sedes para saber qué acciones se tomaron en
transacciones en las que ellos fallaron.
Control de concurrencia.
• Nuevos problemas (que no se dan un SGBD centralizados)
Múltiples copias, consistentes entre sí.
Introducción.
SGBD-R:
• Modelo de datos sencillo. Arquitectura en 3 niveles (programas y datos separados).
• Bases teóricas sólidas:
Relaciones n-arias R D1 x D2 x ... X Dn.
Soporte matemático: álgebra y cálculo relacional.
Dependencias funcionales (semántica de la relación).
• Tecnología madura:
Optimización de consultas.
Indexación.
Administración de la concurrencia y de transacciones (ACID).
Seguridad en el funcionamiento: recuperación.
Lenguaje estándar SQL (SQL3).
Pero .... ... Son sólo adecuados para aplicaciones tradicionales de BD.
En la actualidad hay más necesidades:
• Gestión de sistemas multimedia, sistemas de información médica o sistemas gis que
requieren manipular información más compleja.
Problemas:
• Convertir objetos y relaciones al modelo relacional supone descomponer los objetos en
gran número de tablas errores.
• Gran número de joins para su recuperación → rendimiento.
Solución: SGBD relacionales de objetos.
Los modelos de datos y las estructuras de datos de los lenguajes de programación están
desacoplados:
• Solución: SGBDOO y lenguajes OO siguen el mismo paradigma:
Datos + Comportamiento. Lenguaje OQL.
BD
BDOO
OO
Modelo de Datos
MAQUINARIA MAQUINARIA
RELACIONAL OO
MAQUINARIA MAQUINARIA
RELACIONAL OO
ORACLE 39,8%
IBM 31,3%
Microsoft 12,1%
Versiones.
• Opciones abiertas a los fabricantes:
Paradigmas de programación.
Sistema de representación.
Sistema de tipos.
Uniforman.
MITOS sobre los SGBD-OO
Son entre 10 y 1000 veces más veloces que los SGBDR.
Eliminan la necesidad de un LMD específico.
Eliminan la necesidad de las combinaciones.
La identidad de los objetos elimina la necesidad de claves.
No pueden tener un lenguaje de consulta no procedimental.
El procesamiento de consultas viola el encapsulamiento.
Son sólo una reencarnación de los SGBD en red.
No soportan versiones y transacciones de larga duración.
Soportan directamente los datos multimedia.
No tienen un fundamento teórico.
No sirven para aplicaciones importantes.
No son escalables.
No se usan en aplicaciones de producción.
No se pueden consultar.
BD orientadas a objetos puras:
• Ventajas:
Capacidades de modelado enriquecidas.
Extensibilidad.
Eliminación del desajuste de impedancia.
Lenguaje de consulta más expresivo.
Soporte para la evolución de esquemas.
Soporte para transacciones de larga duración.
Apto para aplicaciones de BD avanzadas.
Rendimiento mejorado.
• Desventajas:
Falta de un modelo de datos universal.
Falta de experiencia.
Falta de estándares.
Competencia.
La optimización de consultas hace peligrar la encapsulación.
Bloqueos a nivel de objeto pueden perjudicar el rendimiento.
Complejidad.
Sin soporte para vistas.
Sin soporte para seguridad.
Ventajas de las BD orientadas a objeto puras.
• Capacidad de modelado enriquecidas: el modelo OO permite que el “mundo real” sea
mejor modelado. El objeto, que encapsula el estado y el comportamiento, es una manera
más natural y real de representar objetos del “mundo real”.
• Extensibilidad: permiten que se puedan definir nuevos tipos a partir de los tipos
existentes.
• Eliminación del desajuste de impedancia: una sola interfaz entre e lmd y el lenguaje de
programación. Este elimina muchas de las ineficiencias que ocurrían al querer
corresponder un lenguaje declarativo como SQL y un lenguaje de programación como c.
• Lenguaje de consulta más expresivo: el acceso navegacional es más adecuado para
manejar consultas recursivas, etcétera. Sin embargo, se argumenta que la mayoría de los
SGBDOO están ligados a un lenguaje de programación, que en general no es demasiado
fácil de usar para los usuarios finales. Por ello el estándar ODMG especifica un lenguaje
declarativo basado en una versión OO de SQL.
• Soporte para la evolución de esquemas: el estrecho acoplamiento entre aplicaciones y
datos permite que la evolución sea más viable. La generalización y la herencia permite
que los esquemas estén mejor estructurados, que usan más intuitivos, y que capturen
MurderMistery
weapon
Constructores:
void Movies()
void drop_Movie()
get y set methods para asignar y leer valores.
SGBD Tradicionales
Modelos Semánticos
-Persistencia.
-Generalización
-Compartición.
-Agregación.
-Transacciones.
-Control de
Concurrencia.
-Recuperación. Modelo
-Seguridad. de
-Integridad. Objetos
-Consultas. Programación OO
-Identidad de
Objetos.
-Encapsulación.
Otros -Herencia.
-Versionado. -Tipos y clases.
-Evolución de -Métodos.
esquemas. -Objetos
complejos.
-Polimorfismo
-Extensibilidad
Modelo de objetos – Conceptos.
Ejemplo de Objeto
nombre= Martin P.
cambiar_profesion
fecha_nac=27/6/72
sueldo=150.000
asignar_dept
Profesión= Informatico
…
calcular_edad
aumentar_sueldo Servicios
….
Atributos
Ventajas:
• La utilización de objetos permite representar de forma más natural el problema de
información → mejorar la comunicación entre los usuarios, los diseñadores y los analistas.
• Datos y comportamiento en un mismo lenguaje → facilita el desarrollo de aplicaciones.
Extensión de los SGBDR incluyendo el paradigma
• Permite definir nuevos tipos de datos a partir de tipos existentes.
• Lenguaje navegacional.
• Soporte a esquema evolutivo: el estrecho acoplamiento entre datos y aplicaciones en un
SGBDOO hace más abordable el esquema evolutivo.
Desventajas:
• Falta de un modelo de datos universal: como es el modelo relacional.
• Falta de experiencia: uso reducido de SGBDOO.
• Falta de estándares: OQL de ODMG es estándar de facto.
• Extensión de los SGBDR: incluyendo el paradigma OO.
• Son más complejos de diseñar y mantener.
• Falta de soporte a vistas (views) y restricciones declarativas → dependen de los métodos
definidos.
• Falta de soporte a la seguridad: no pueden conceder derechos de acceso a objetos o
clases por usuario.
• La optimización de consultas compromete la encapsulación.
• Los bloqueos a nivel de objeto, utilizados en protocolos de control de concurrencia
pueden afectar al rendimiento.
Diseño de BDOO
Esquema
Esquema
Intermedio
Conceptual
En ODL
En UML
Esquema
Físico en
SGBDOO
Objetos complejos.
LEYENDA Objeto
Tupla
Conjunto
I8: O8
Tupla
O5 O4 O9 O7 O O
I5: I4: I9: I7: I10: 10 I11: 11
Átomo Átomo Tupla Conjunto Conjunto Conjunto
v5 v4 v9 v7 v10 v11
● ● ● ●
Investigación 5
O1 O2 O3
I 1: I2: I3: I15: ... I16: ... I17: ...
Tupla Tupla Tupla
v1 v2 v3
I6: O6
Átomo
● ●
v6
◦ Cuatro tienen valores complejos y constituyen el segundo nivel de la estructura del objeto
complejo:
▪ Uno (JF) tiene estructura de tupla.
▪ Tres (localizaciones, empleados, proyectos) tienen estructura de conjunto.
◦ En el tercer nivel, para un valor de tupla de JF, hay un atributo básico (fecha_inic_jefe) y un
atributo (jefe) que hace referencia a un objeto empleado, que tiene una estructura de tupla.
◦ Para un conjunto localizaciones hay un conjunto de valores básicos.
◦ Para los conjuntos empleados y proyectos hay conjuntos de objetos con estructura de tupla.
• Existen dos tipos de semántica para la referencia entre un objeto complejo y sus componentes en
cada nivel:
◦ Semántica de propiedad: se aplica cuando los subobjetos de un objeto complejo están
encapsulados dentro de este y se consideran parte de él.
◦ Semántica de referencia: se aplica cuando los componentes del objeto complejo son ellos
mismos objetos independientes, pero pueden ser referenciados desde el objeto complejo.
• Ejemplo:
◦ Se considera que los atributos nombred, numerod, JF y localizaciones son propiedad de un
departamento.
◦ Empleados y proyectos son referencias porque hacen referencia a objetos independientes.
• Los SGBDOO deben ofrecer opciones de almacenamiento para agrupar los objetos componentes
de un objeto complejo en el almacenamiento secundario:
◦ Para aumentar la eficiencia de las operaciones que tienen acceso al objeto complejo.
Preprocesador de Compilador PL
declaración
metadatos CODIGO
Runtime
BINARIO
SGBDOO
APLICACIÓN
Enlazador
BD
APLICACIÓN
EN
EJECUCIÓN
0.. N name
owns
name
1.. 1
Studio phones
address
• ODMG: Classes:
• Una clase se especifica por :
◦ Los atributos (abstractos).
◦ Las relaciones con otros tipos de objetos.
◦ Las operaciones.
Class Movie { Class Star {
attribute String title; attribute String name;
attribute integer year; attribute Struct Addr {String street, String city} address
attribute integer length; attribute set <String> phone;
attribute Enum Film {color, blackAndWhite} filmType; };
};
• ODMG: types:
• Atributos:
◦ Tipo estructurado es un tipo con un número fijo de elementos que pueden ser de diferente
tipo:
▪ Tipos atómicos: integer, float, character, string, boolean and enumerations.
▪ Tipos predefinidos: date, time, interval, timestamp.
◦ Colección: conjunto de elementos del mismo tipo (set, bag, list, array, dictionary, table).
Pueden ser de tipo básico o estructurado.
• Relaciones:
◦ Tipos interfaz, representan las clases. Generalmente se usan en relaciones (relationship).
• ODMG: Relationship:
• Un objeto puede relacionarse con otros objetos a través de relationship.
• Relaciones binarias y bi-direccionales 1-1, 1-n, n-m.
• Establecer inverse para conexión bidireccional en ambas interfaces.
• En ODL no se puede expresar la integridad referencial.
• Ejemplo:
◦
Class Movie { Class Star {
attribute String title; attribute String name;
attribute integer year; attribute Struct Addr {String street, String city} address
attribute integer length; attribute set <String> phone;
attribute Enum Film {color, blackAndWhite} filmType; relationship Set <Movie> starredin inverse Movie::stars
relationship Ser <Star> stars inverse Star:: starredin; };
};
N:M
• ODMG: Key:
◦ Atributo o conjunto de atributos que identifica unívocamente cada objeto de un tipo.
◦ Similar al key del relacional.
◦ Previene la duplicidad pero admite nulos.
• Ejemplos:
• ODMG: Methods:
◦ En ODL un método es una función asociada a una clase.
◦ Los métodos se declaran mediante el concepto de signature que no es más que el nombre de
dicho método junto con los tipos de sus argumentos de entrada y el tipo de salida.
• El código de un método no forma parte de la declaración y se supone que se escribirá en el
lenguaje de implementación.
• La sintaxis de la declaración es similar a la de funciones en c con dos importantes añadidos:
◦ Los parámetros de la función se pueden especificar como in, out, inout según sea de entrada,
salida o de entrada/salida.
◦ Las funciones pueden manejar excepciones que son respuestas especiales:
▪ Una excepción indica habitualmente una condición anormal que a su vez se tratará
mediante otro método.
▪ En ODL una declaración de función puede ser seguida por la palabra raises, seguida por
una lista de una o más excepciones que la función puede tratar.
• Ejemplo de methods:
Class Movie {
attribute string title;
attribute integer year;
attribute integer length;
Attribute Enum Film {color, blackandwhite} filmtype;
relationship Set <Star> stars inverse star:: starredIn;
relationship Studio ownedBy inverse Studio::owns;
Void movie();
void drop_movie();
Float lengthlnHours() raises (noLengthFound);
void starNames (out Set <String>};
Void otherMovies (in Star, out Set <Movie>) raises(noSuchStar);
}
• ODMG: Extents:
◦ Cuando se define una clase se hace necesario diferenciar su definición, del conjunto de
objetos que existe de esa clase en la base de datos.
◦ En ODL, esta distinción se realiza de forma explícita dando a la clase y a su extent distintos
nombres.
◦ En general la clase recibe el nombre en singular y el extent en plural.
Class Movie (extent Movie key (title, year)) {
attribute string title;
attribute integer year;
attribute integer length;
Attribute Enum Film {color, blackandwhite} filmtype;
relationship Set <Star> stars inverse star:: starredIn;
relationship Studio ownedBy inverse Studio::owns;
};
• ODMG: Interfaces:
◦ Las interfaces son básicamente definiciones de clases que no tienen extent asociados (es
decir, sin objetos).
◦ Son útiles si se necesitan mantener en la base de datos varios conjuntos de objetos que
tienen el mismo tipo (interfaz) pero pertenecen a distinta clase.
Interface business (...)
<<interface>>
{ ...
Bussiness
String getTaxPayerld(...);
getTaxPayerID
void setTaxPlayerld(...);
SetTaxPayerID <<persistent>>
integer calcTotalncome(...) ;}
calcTotalIncome Person
class Person (...){...}
Object
TimeStamp
• OML:
◦ Lenguaje para construir programas que permitan realizar las siguientes operaciones en la BD:
▪ Crear objetos.
▪ Modificar objetos.
▪ Borrar objetos.
▪ Identificar objetos.
◦ ODMG no propone que sea estándar, solo una extensión del lenguaje de programación: C++,
Java y Smalltalk...
<propiedad>::=
<especificación de atributo>
| especificación de interrelación>
| < especificación de operación> }
<especificación de interrelación>::=
RELATIONSHIP <destino del camino> <nombre del camino>
INVERSE <camino inverso>
[ ORDER BY <lista de atributos> ]
<especificación de operación>::=
<tipo devuelto> <nombre de la operación>
(<lista de argumentos>)
[ RAISES (<lista de excepciones>) ]
<argumento>::=
<rol> [<nombre del argumentos>:] <tipo del argumento>
• Ejemplo 1:
short grant_tenure()
raises (ineligible_for_tenure)
};
Interface student-if
{struct address {string college, string roon_number}
attribute string name;
attribute string student_id;
attribute address dorm_address;
Relationship set<section> takes
Inverse section::is_taken_by;
Boolean register_for_course (in unsigned short course,
In unsigned short section)
raises (unsatisfied_prerequisites, section_full, course_full);
• Ejemplo 2:
Class persona
(extent personas key dni)
{
/* definición de atributos */
Attribute struct nom_persona {string nombre_pila, string apellido1,
string apellido2} nombre;
attribute string dni;
attribute date fecha_nacim;
attribute enum genero{F,M} sexo;
Attribute struct dirección {string calle, string cp, string ciudad}
dirección;
/* definición de operaciones */
float edad();
}
Class Calificación
(extent calificaciones)
/* definición de atributos */
attribute float nota;
/* definición de relaciones */
Relationship edición edición inverse edición::estudiantes;
Relationship estudiante estudiante
Inverse estudiante::ediciones_cursadas;
Class titulo
{
/* definición de atributos */
attribute string escuela;
attribute string titulo;
attribute string año;
};
Class departamento
(extent departamentos key nombre)
{
/* definición de atributos */
attribute string nombre;
attribute string telefono;
attribute string despacho;
attribute string escuela;
attribute profesor director;
/* definición de relaciones */
Relationship set<profesor> tiene_profesores
inverse profesor::trabaja_en;
Relationship set<curso> oferta
Inverse curso::ofertado_por;
};
Class Curso
(extent cursos key num_curso)
/* definición de atributos */
attribute string nombre;
attribute string num_curso;
attribute string descripción;
/* definición de relaciones */
Relationship Set <Edicion> tiene_ediciones
inverse edición::de_curso;
relationship departamento ofertado_por
inverse departamento::oferta;
};
Class edición
(extent ediciones)
{
/* definición de atributos */
attribute short num_edic
attribute string año;
attribute enum semestre{primero,segundo} semestre;
/* definición de relaciones */
Relationship set<calificacion> estudiantes
inverse calificación::edición;
};
Relationship curso de_curso
inverse curso::tiene_ediciones;
Class edicionActual
extends edición (extent ediciones_actuales)
(
/* definición de relaciones */
Relationship set<estudiante> estudiantes_matriculados
inverse estudiante::matriculado;
/* definición de operaciones */
Void matricular_estudiante(in string dni)
Raises(estudiante_no_valido ,edicion_llena);
}
Persona _
atributo nombre
atributo fech_nac
atributo salario
operación edad
subordinados
Empleado _
operación antiguedad
• ¿Que es CORBA?
• CORBA: Common Object Request Broker Architecture.
◦ Es una herramienta que facilita el desarrollo de aplicaciones distribuidas en entornos
heterogéneos (HW y SW).
▪ Distintos sistemas operativos (Unix, Windows, MacOS, OS/2).
▪ Distintos protocolos de comunicación (TCP/IP, IPx, ...)
▪ Distintos lenguajes de programación (Java, C, C++, ...).
◦ Define la infraestructura para la arquitectura OMA (Object Management Architecture):
▪ Especifica los entándares necesarios para la invocación de métodos sobre objetos en
entornos heterogéneos.
• ¿Para qué sirve?
• Permitir invocación de métodos de un objeto por objetos que residen en diferentes máquinas en
entornos heterogéneos:
◦ Los objetos pueden estar desarrollados en diferentes lenguajes.
◦ Los equipos pueden tener diferente:
▪ Hardware.
▪ Sistema operativo.
◦ Los equipos pueden estar conectados entre sí usando distintos protocolos de comunicación.
• Facilitar el desarrollo de aplicaciones distribuidas.
• Historia
• OMG (Object Management Group):
◦ Consorcio creado en 1989, primer “producto”: CORBA. Inicialmente 8 empresas (SUN, HP,
3COM,...):
◦ Hoy: más de 800 socios:
▪ Proveedores de software y equipos, operadores de Telecomunicaciones,
◦ Universidades,...
• Http ://www. Omg. Org/
• OMA(Object Management Archictecture):
◦ Inicial: 1990.
• CORBA (Common Object Request Broker Architecture) :
◦ CORBA 1: 1991.
◦ CORBA 2: 1995.
◦ CORBA 3: 2002.
• Características
• Orientado a objetos:
◦ Encapsulación.
◦ Herencia.
◦ Late binding & polimorfismo.
• Comunicación por invocación de métodos remotos:
◦ Más fácil de programar que IPC, sockets, RPC, etc.
◦ Stub:
▪ Representante local del objeto remoto.
Núcleo ORB
Cliente
Stubs
Resp
Resp
Invocación
Dinámica IDL
ue
uest
sta
a
Núcleo ORB
Implementación de Objetos
Núcleo ORB
• ¿Cómo se usa?
Proceso de desarrollo
1. Definir los objetos del servidor mediante IDL.
2. Cargar la información de idl en el interface repository
3. Pre-compilar el idl para generar stubs y esqueletos.
4. Escribir el código del servidor, heredando de los esqueletos (y
siguiendo el ejemplo)
5. Compilar los ficheros servidores.
6. Registrar los objetos en tiempo de ejecución en el implementation
repository
7. Instanciación de los sirvientes (por el adaptador, normalmente bajo
demanda)
8. Escribir el código del cliente, (incluye los stubs generados)
9. Compilar el cliente
10. Ejecutar servidor, luego cliente
Facilidades de
Facilidades de
CORBA Vertical
Aplicación Facilidades de
CORBA Vertical Facilidades de
de Objetos CORBA Vertical CORBA Horizontal
Servicios CORBA
• Arquitectura CORBA:
Introducción
• Respuesta comercial.
◦ Ampliar las prestaciones de los RDBM, adoptando ciertas características de OO manteniendo
su funcionalidad, fiabilidad y escalabilidad.
▪ → Sistemas Administradores de Bases de Datos Objeto-Relacionales (ORDBMS).
◦ Técnicas de almacenamiento y de creación de índices adecuados a cada estructura de datos.
◦ Procedimientos especiales de localización de objetos.
◦ Técnicas eficientes de recuperación de los objetos seleccionados.
◦ Soporte a las características relacionales (key, constraints, index, referenciabilidad...) y
orientadas a objetos (classes, types, methods,...) según SQL3.
• Bases de datos objeto relacionales
• El término BD objeto-relacional se usa para describir una BD que ha evolucionado desde el
modelo relacional hasta una BD híbrida que contiene ambas tecnologías:
◦ Relacional y de objetos.
• Durante muchos años ha habido debates sobre cómo será la siguiente generación de la tecnología
de BD
• De uso común:
◦ Las BD orientada a objetos.
◦ Una BD basada en SQL con extensiones orientadas a objetos.
• Razones a favor de la segunda opción (modelo objeto -relacional):
◦ Las BD objeto - Relacionales (ej.: Oracle 8i) son compatibles en sentido ascendente con las
BD relacionales actuales (que además son familiares a los usuarios):
▪ Los usuarios pueden pasar sus aplicaciones actuales sobre BD relaciones al nuevo modelo
sin tener que reescribirlas.
▪ Posteriormente se pueden ir adaptando las aplicaciones y BD para que utilicen las
funciones orientadas a objetos.
◦ Las primeras BD orientadas a objetos puras no admitían las capacidades estándar de consulta
ad hoc de las BD SQL:
▪ Esto hace problemático realizar la interfaz entre las herramientas SQL estándar y las BD
orientadas a objetos puras.
• Comparaciones
• Ambos tipos de BD se encuentran disponibles en el mercado.
• Los puntos fuertes de los varios tipos de sistemas de BD pueden resumirse de la manera
siguiente:
◦ Sistemas relacionales: tipos de datos sencillos, lenguajes de consulta potentes, protección
elevada.
◦ Bases de datos orientadas a objetos basadas en lenguajes de programación persistentes:
tipos de datos complejos, integración con los lenguajes de programación, elevado
rendimiento.
◦ Sistemas relacionales orientadas a objetos: tipos de datos complejos, lenguajes de consulta
potentes, protección elevada.
• Estas descripciones son validas en general:
◦ Algunos sistemas de BD no respetan estas fronteras.
• Ejemplo: algunos sistemas de BD orientados a objetos se implementan sobre sistemas de BD
relacionales.
• Puede que estos sistemas proporcionen menor rendimiento que los sistemas de BD orientados a
objetos construidos directamente sobre los sistemas de almacenamiento.
• Proporcionan en parte las garantías de protección más estrictas propias de los sistemas de BD
relacionales.
• Comparación entre modelo de datos OR y OO.
Característica Objeto-Relacional (SQL) Orientado a Objetos Puro (ODMG)
Interrelaciones Soporte completo con restricciones de Soportada (por ejemplo, usando bibliotecas
integridad referencial definidas por usuario de clases)
Creación y acceso a Datos Persistentes Soportada pero no de forma transparente Soportada, pero el grado de transparencia
depende del producto concreto.
Facilidad de Consulta “Ad Hoc” Sí, soportada complemente Soportada a través de ODMG.
Encapsulación Si, soportada completamente Si, pero el grado de soporte depende del
producto concreto
• Conclusiones:
◦ El modelo relacional permite un modelado sencillo, consultas potentes y una protección
elevada.
◦ El modelo orientado a objetos es más adecuado para la gestión de tipos de datos complejos,
permite la integración con otros lenguajes y presenta un buen rendimiento.
• BD objeto-relacionales:
◦ Ventajas:
▪ Resuelven muchas de las debilidades de BD relaciónales ya conocidas.
▪ Reutilización y compartición.
▪ Mejora significativa de la productividad.
▪ Preservar el significativo cuerpo de conocimientos y experiencia alcanzado con las BD
relaciónales.
◦ Inconvenientes:
▪ Mayor complejidad.
▪ Mayores costes.
▪ Los partidarios del modelo relacional creen que la simplicidad y pureza de éste se ha
perdido.
▪ Todo el esfuerzo asociado con la extensión objeto-relacional puede que sólo sea útil, al
final, para un porcentaje muy pequeño de las aplicaciones.
▪ Los puristas de la OO siguen rechazando cualquier idea de extensión (evolución).
▪ Ahora el SQL se ha vuelto extremadamente complejo (SQL-2003 ocupa más de 2000
páginas).
• Los objetos han entrado en el mundo de las BD relacionales:
◦ En forma de dominios.
◦ Como tablas de objetos.
• En forma de dominios, actuando como el tipo de datos de una columna. Las implicaciones de
utilizar una clase como un dominio son:
◦ Es posible almacenar múltiples valores en una columna de una misma fila ya que un objeto
suele contener múltiples valores:
▪ Si se utiliza una clase como dominio de una columna, en cada fila esa columna sólo
puede contener un objeto de la clase (se sigue manteniendo la restricción del modelo
relacional de contener valores atómicos en la intersección de cada fila con cada columna).
◦ Es posible almacenar procedimientos en las relaciones porque un objeto está enlazado con el
código de los procesos que sabe realizar (los métodos de su clase).
• Construyendo tablas de objetos:
◦ Cada fila es un objeto.
• Un sistema objeto-relacional es un sistema relacional que permite almacenar objetos en sus
• Tablas:
◦ La BD sigue sujeta a las restricciones que se aplican a todas las BD relacionales.
◦ La BD conserva la capacidad de utilizar operaciones de concatenación (join) para implementar
las relaciones “al vuelo”.
• Productos software:
◦ DB2 Universal Database de IBM (Http://www.ibm.com)
◦ Universal Server de Informix (ahora de IBM) (http://www.infomix.com)
◦ Ingres II, computer associates (http://www.ingres.com)
◦ Oracle, de Oracle Corporation (http://www.oracle.com)
◦ Sybase, de Sybase (http://www.sybase.com)
• Oracle
Relacional Objeto-Relacional
Tabla
De Vista de
Contenidos Objetos
Tipos
Tabla Vista Def.
Usuarios
Tipos
Predefinidos Tablas
De
Tipos Vistas Tablas
Tablas Vistas de Objetos
Predefinidos
Vistas Objetos
• Tipos predefinidos:
• Carácter (CHAR, VARCHAR2, NCHAR, NVARCHAR2, LONG).
• Numéricos (NUMBER, INTEGER, FLOAT)
• DATE
• ROWID
• LOB (CLOB, BLOB, BFILE)
• …
• Tipos definidos por el usuario:
◦ Tipos distintos (como en SQL).
◦ Tipos estructurados tipos de objeto.
◦ Tipo REF (referencia).
◦ Tipos colección.
• Tipos estructurados
CREATE OR REPLACE type dirección (
Calle VARCHAR2 (30),
Ciudad VARCHAR2 (20),
Provincia VARCHAR2 (2),
Codigop VARCHAR2 (5));
CREATE OR REPLACE TABLE persona (
nombre VARCHAR2(30),
vive_en dirección,
foto BLOB);
• Tipos Objeto y Tipos REF
CREATE OR REPLACE TYPE Empleado AS OBJECT
( Dni NUMBER,
Nombre VARCHAR2 (30),
Fecha_nac DATE,
Pertenece_a REF Departamento,
MEMBER FUNCTION Edad RETURN NUMBER);
CREATE TABLE Tabla_Empleado OF Empleado
• Tipos Colección: VARRAY (vectores SQL)
CREATE OR REPLACE TYPE Telefono AS VARRAY(3) OF VARCHAR(10);
CREATE TABLE Empleado
(DNI NUMBER,
Nombre VARCHAR2(30),
Telefonos_contacto telefono);
INSERT INTO Empleado VALUES ('9876543', 'Pepe', telefono('914445566','606445566','934445566'))
• Tipos colección: Nested Table (tablas anidadas)
C1 C2 Tabla_C
C' C''
C' C''
Proyecto Plano
<<Persistent>> <<Persistent>>
<<PK>> Proyecto_ID <<PK>> Plano_ID
<<AK>> Nombre <<MA>> Arquitecto
Tamaño máximo Si No
• Arquitectura
Respuestas específicas para cada campo de aplicación mediante
módulos independientes que interactúen con el Sistema
Administrador de Bases de Datos Relacional (RDBMS). Módulo
Específico 1
Se incorpora el Used-Defined Data Type Manager (UDTM) que
hace e interfaz entre cada uno de los módulos y el RDBMS. Módulo
Específico 2 Used-Defined
Gestor
Se van incorporando los Módulos específicos necesarios. Data Type
Relacional
Módulo Manager
El conjunto constituye el Sistema Administrador de ases de Datos Específico 3
Relacional de Objetos (ORDBMS).
Módulo
El ORDBMS actuará sobre las Bases de Datos. Específico 4
Bases de Datos
• Arquitectura de Oracle.
Procesos Demonios
Procesos
servidores
Archivos de Archivos de
Datos Datos
Usuarios
Archivos de
Control
• Arquitectura de la System Global Area de Oracle.
Sistema
Instancia
Base de Datos
Instancia
Base de Datos
Contenedores
Grupo de Particiones de Base De Datos
HUMANRES
Espacio de tablas
EMPLOYEE
Tabla
DEPARTMENT
Tabla
PROJECT
Tabla
G:\DBASE1 H:\DBASE1
Contenedor 3 Contenedor 4
Tablas: Tablas:
● Sistema de espacios
● Los datos del usuario ● Objetos multimedia u
temporales de tablas.
Son almacenados aquí. Otros datos de objetos
● Usuario de espacios largos.
temporales de tablas.
• Índices en DB2.
Columna
Índice A Tabla A
17 Fila 47 ABC
19 17 QRS
47 85 FCP
81 81 MLI
85 93 CJP
87 87 DJS
93 19 KMP
SQL3
AnchoSala INTEGER,
AreaSala INTEGER,
PerimSala INTEGER));
• Selección:
SELECT libro_columna, codigo
FROM libro;
SELECT codigo, libro_columna.titulo() Funciones observador
FROM libro WHERE libro_columna.precio_venta() > 20;
• Tipos definidos por el usuario - tablas tipadas
• Las tablas tipadas o referenciables están basadas en UDTs:
◦ No se les pueden agregar atributos adicionales ejemplo:
◦ CREATE TABLE libro OF libro_udt;
• No se requieren las funciones mutador ni observador:
◦ INSERT INTO libro VALUES('klng kong en china’,30,40);
◦ SELECT * FROM book;
◦ SELECT titulo, beneficio() AS beneficio FROM libro WHERE titulo LIKE '%día%';
• Tipos construidos – filas: Tipo Fila (Row Type)
◦ Secuencia de uno o más campos (fields).
◦ Campo: un par (nombre de campo, tipo de dato).
◦ Se utiliza la nomenclatura de punto.
◦ Son el tipo asociado a una tabla tipada.
CREATE TABLE empleado (
id_emp INTEGER,
nombre ROW (
N_de_pila VARCHAR(30),
apellido VARCHAR(30)),
dirección ROW (
Calle VARCHAR(50),
Ciudad VARCHAR(30),
Provincia CHAR(2),
Salario REAL);
SELECT E.nombre.apellido
FROM empleado E;
• Tipos construidos - referencia
• Tipo referencia (reference type)
◦ Sus valores referencian (apuntan) a una fila de una tabla tipada (similar a punteros en C).
◦ El tipo fila de la tabla referenciada se llama tipo referenciado.
◦ Los tipos referencia se pueden utilizar donde los demás tipos.
• Tres maneras de asignar valores:
◦ Generados por el usuario REF USING <tipo predefinido>
▪ CREATE TYPE propiedades AS (.........)
▪ NOT FINAL REF USING INTEGER
◦ Generados por el sistema REF IS [<columna>] SYSTEM GENERATED REF IS SYSTEM
GENERATED.
◦ Derivados de un conjunto de atributos REF (<atributos>)
▪ CREATE TYPE persona AS (nss INTEGER, nombre CHAR(20), ...)
▪ NOT FINAL REF (nss)
• Tipos referencia vs integridad referencial
◦ Las referencias no tienen la misma semántica que la restricción de integridad referencial.
◦ La integridad referencial implica una dependencia de inclusión y las referencias no.
◦ La integridad referencial no soporta la noción de tipado fuerte: se comprueba que el valor es
el mismo pero no se obliga a que ambos tipos de datos sean exactamente el mismo.
• Utilidad de los Tipos de Referencia.
• Combinaciones sin necesidad de usar JOIN
SELECT f.precio, f.propietario->nombre
FROM finca f
WHERE ciudad=”Madrid"
• Llamada a métodos
SELECT e.nombre, e.departamento->num_empleados () FROM empleado E
• Obtención de datos a los que se referencia
SELECT e.nombre, DEREF(e.departamento)
FROM empleado E
WHERE E.nombre=”J. Pérez”
• Los tipos referencia
Tema 6: Bases de Datos Relacionales Extendidas y Otros Tipos Especiales de Bases de Datos
• La implementación del soporte de un Sistema de Tipo Extendido (SGBDOR) con sus funciones
asociadas (operaciones) presenta las siguientes cuestiones:
◦ El SGBDOR debe enlazar (link) dinámicamente una función definida por el usuario (para
operar con datos espaciales de dos o tres dimensiones, imágenes, texto, etc.) En su espacio
direccionable sólo cuando se requiera:
▪ Para ahorrar espacio de direccionamiento.
▪ El enlazado dinámico está disponible en Oracle y DB2.
◦ Los problemas del entorno cliente-servidor consisten en la ubicación y activación de
funciones:
▪ Si el servidor necesita ejecutar una función, es mejor hacerlo en el espacio de
direccionamiento del SGBD que de forma remota, debido a la sobrecarga.
▪ Puede haber sobrecarga en el servidor:
• Puede enviar la función a otra máquina.
◦ Sería posible ejecutar consultas dentro de funciones:
▪ Una función debe operar de la misma forma cuando se utiliza desde una aplicación
usando la interfaz del programa de aplicación (API), o cuando el SGBD la invoca como
parte del código SQL ejecutable, con la función insertada entre las sentencias SQL.
◦ Debido a la variedad de tipos de datos y sus operadores asociados es importante un
almacenamiento y acceso eficiente de los datos:
▪ Para los datos espaciales o multidimensionales pueden utilizarse estructuras
de almacenamiento especiales (ej.: Árboles R).
▪ Se debe poder definir nuevos tipos de datos con nuevas estructuras de acceso.
• El diseño de la BD objeto-relacional es complicado:
◦ Se deben tener en cuenta las consideraciones subyacentes de la semántica de la aplicación y
dependencias en el modelo relacional.
◦ La naturaleza orientada a objetos de los recursos que se utilizarán.
• Procesamiento y optimización de consultas:
◦ El SQL se amplía con funciones y reglas y resulta más complejo optimizar las consultas.
• Interacción de reglas con transacciones:
◦ El procesamiento de reglas en SQL3 es más amplio y complejo que los disparadores de los
SGBDR.
• Consideraciones para el Diseño Objeto - Relacional
Diseño Lógico
Diseño Conceptual Diseño Diseño Estándar
UML SQL-92 (BDR) Conceptual SQL: 2003/UML
ODMG (BO) En Notación
SQL: 2003 (BDOR) UML
Diseño específico
BDOR
(Oracle, DB2, ...)
UML UML
+ +
UML Estereotipos Producto
Estereotipos SQL:2003
Diagrama de Clases
Diseño Físico
Implementación
Especificación Especificación en Producto con
SQL: 2003 En Producto Optimización
Robert 15
Mary 10
Jabbar
▪ Es la inversa de nest.
• Estas operaciones realizan la conversión entre relaciones anidadas y relaciones planas.
BD Temporales
• Las BD temporales abarcan las aplicaciones de BD que requieren algún aspecto de tiempo a la
hora de organizar la información.
• Ejemplos de aplicaciones en los que es necesario un determinado aspecto de tiempo para
mantener la información en una BD:
◦ Asistencia médica: se tienen que guardar los historiales de los pacientes.
◦ Seguros: se necesitan los historiales de reclamaciones y partes de accidentes así como la
información sobre los períodos en los que están en vigor las pólizas de seguros.
◦ Sistemas de reservas en general (hoteles, compañías aéreas, alquiler de coches, trenes,
etc.): Se requiere información sobre fechas y períodos de tiempo en los que tendrán validez
las reservas.
◦ BD científicas: los datos recogidos en los experimentos incluyen el período de tiempo en el
que se mide cada dato.
• Representación del tiempo y dimensiones del tiempo
• Para las BD temporales el tiempo se considera una secuencia ordenada de puntos de cierta
granularidad determinada por la aplicación:
◦ Ej.: Se supone que una aplicación temporal determinada nunca requiere unidades de tiempo
inferiores a un segundo.
◦ Entonces, cada punto de tiempo representa un segundo empleando esta granularidad.
• Cada segundo es una duración de tiempo (corta), no un punto. Se emplea el término crono en
lugar de punto para describir su granularidad mínima para una aplicación concreta.
• La consecuencia principal de elegir una granularidad mínima (ej.: Un segundo) es que los eventos
que tengan lugar dentro del mismo segundo se consideraran eventos simultáneos, aunque en
realidad puede que no lo sean.
• Información sobre eventos frente a información sobre duración (o estado)
• Una BD temporal almacenará información acerca de:
◦ Cuándo se producen determinados eventos, o.
◦ Cuándo se considera que determinados hechos son verdaderos.
• Existen diferentes tipos de información temporal.
• Los eventos o hechos de punto se asocian generalmente en la BD con un punto de tiempo único
de determinada granularidad:
◦ Ej.: Un evento de depósito bancario puede asociarse con la marca de tiempo en la que se
realizó el depósito.
• Los eventos o hechos de duración se asocian con un período de tiempo específico en la BD.
◦ Ej.: Un empleado puede haber trabajado en una empresa desde el 15 de agosto de 1993
hasta el 20 de noviembre de 1998.
◦ Un período de tiempo se representa mediante sus puntos de tiempo de inicio y final [tiempo-
inicio, tiempo-final].
• Dimensiones de tiempo válido y de tiempo de transacción
• Si se tiene un evento o hecho concreto que está asociado a un punto de tiempo o período de
tiempo determinado en la BD, la asociación puede interpretarse para indicar aspectos diferentes.
• Generalmente se interpreta que el tiempo asociado es el tiempo en el que ocurrió el evento o el
período de tiempo durante el cual el hecho se consideró verdadero en el mundo real:
◦ Una BD temporal que emplee esta interpretación se denomina BD de tiempo válido.
• Si el tiempo asociado hace referencia al tiempo en el que la información fue realmente
almacenada en la BD el tiempo asociado se denomina tiempo de transacción:
◦ Una BD que emplee esta interpretación será una BD de tiempo de transacción.
• Si en una BD se utilizan ambas dimensiones de tiempo se dice que es una BD bitemporal.
• Incorporacion del tiempo en BD relacionales empleando versiones de tuplas
• Relaciones de tiempo válido
• Se quiere incluir el historial de cambios, a medida que estos ocurren en el mundo real.
• La granularidad es el día.
• Se utilizan relaciones de tiempo válido añadiendo los atributos VST (valid start time: tiempo de
inicio valido) y VET (Valid end time: tiempo final valido) cuyo tipo de datos es Date.
• En emp_tv cada tupla v representa una versión de la información de un empleado que es válida
(en el mundo real) sólo durante el período de tiempo [V.VST, V.VET].
• Cada tupla de empleado representa únicamente el estado actual o la versión actual de cada
empleado.
• En emp_tv la versión actual de cada empleado tiene normalmente un valor especial, ahora, como
tiempo final válido:
◦ Ahora es una variable temporal que representa implícitamente el tiempo actual a medida que
progresa el tiempo.
• Diferentes tipos de BD relacionales temporales:
◦ (a) esquema de BD de tiempo valido.
◦ (b) esquema de BD de tiempo de transacción.
◦ (c) esquema de BD bitemporal.
(a) EMP_TV
NOMBRE NSS SALARIO ND NSS_SUPERV VST VET
TV_DEPT
NOMBRED ND SAL_TOTAL NSS_JEFE VST VET
(b) TT_EMP
NOMBRE NSS SALARIO ND NSS_SUPERV TST TET
TT_DEPT
NOMBRED ND SAL_TOTAL NSS_JEFE TST TE
(c) ST_EMP
NOMBRE NSS SALARIO ND NSS_SUPERV VST VET TST TET
ST_DEPT
NOMBRED ND SAL_TOTAL NSS_JEFE VST VET TST TET
TV_EMP
DEPT_VT
• Las relaciones de tiempo valido llevan la cuenta de la historia de cambios a medida que van
teniendo validez en el mundo real.
• Si se aplican todos los cambios del mundo real la BD guarda una historia de los estados del
mundo real que se representan.
• Relaciones de tiempo de transacción
• Cada vez que se aplica un cambio a la BD, se registra la marca de tiempo real de la transacción
que aplicó el cambio.
• Resulta útil cuando se aplican cambios simultáneamente en la mayoría de los casos:
◦ Ej.: El comercio de mercancías en tiempo real o las transacciones bancarias.
• Aparecen las relaciones de tiempo de transacción
• Añadiendo los atributos TST (transaction start time: tiempo inicial de transacción) y TET
(transaction end time: tiempo final de transacción).
• El tipo de datos es normalmente timestamp.
• En TT_EMP cada tupla v representa una versión de la información de un empleado que fue creada
en tiempo real V.TST y fue eliminada en tiempo real V.TET.
• En TT_EMP la versión actual de cada empleado se caracteriza por tener un valor especial, uc
(until changed: hasta cambiar), como su tiempo final de transacción:
◦ Indica que la tupla representa la información correcta hasta que se cambia debido a otra
transacción.
• Una BD de tiempo de transacción también se denomina BD de restauración (rollback):
◦ El usuario puede retroceder lógicamente al estado de la BD real en cualquier punto de tiempo
pasado T recuperando todas las versiones de tuplas V cuyo período de tiempo de transacción
[V.TST, V.TET] incluya el punto de tiempo T.
• Relaciones bitemporales
• Algunas aplicaciones requieren tanto el tiempo válido como el tiempo de transacción:
• Aparecen las relaciones bitemporales.
• Las tuplas cuyo tiempo final de transacción tet es uc son las que representan la información
válida actualmente.
• Las tuplas cuyo tet es una marca de tiempo absoluta
• Son tuplas que fueron válidas hasta (justo antes) de la marca de tiempo.
• El atributo de tiempo inicial de la transacción tst de cada tupla es la marca de tiempo de la
transacción que creó esa tupla.
• Algunas versiones de tuplas en las relaciones bitemporales bt emp tv dept.
TV_EMP
V1: Smith 123456789 25000 5 333445555 1997-06-15 ahora 1997-05-08, 13:05:08 1998-06-04, 06:56:12
v2: Smith 123456789 25000 5 333445555 1997-06-15 1998-05-31 1998-06-04, 08:56:12 uc
v3: Smith 123456789 30000 5 333445555 1998-06-01 ahora 1998-06-04, 08:56:12 uc
v4: Wong 333445555 25000 4 999887777 1994-08-20 ahora 1994-08-20, 11:18:23 1996-01-07. 14:33:02
v5: Wong 333445555 25000 4 999887777 1994-08-20 1998-01-31 1996-01-07, 14:33:02 uc
v6: Wong 333445555 30000 5 999887777 1996-02-01 ahora 1996-01-07, 14:33:02 1997-03-28, 09:23:57
v7: Wong 333445555 30000 5 999887777 1996-02-01 1997-03-31 1997-03-26, 09:23:57 uc
v8: Wong 333445555 40000 5 888665555 1996-04-01 ahora 1997-03-26, 09:23:57 uc
v9: Brown 222447777 28000 4 999887777 1996-05-01 ahora 1996-04-27, 16:22:05 1997-06-12, 10:11:07
v10: Brown 222447777 28000 4 999887777 1996-05-01 1997-08-10 1997-08-12, 10:11:07 uc
v11: Narayon 666884444 38000 5 333445555 1996-08-01 ahora 1996-07-28, 09:25:37 uc
...
TV_DEPT
...
• Las principales extensiones que se necesitan para las BD espaciales son modelos que pueden
interpretar características espaciales.
• Se necesitan estructuras especiales de indexación y almacenamiento para mejorar el
rendimiento.
• Se considerarán algunas de las extensiones del modelo para BD espaciales bidimensionales.
• Las extensiones básicas necesarias son las de incluir conceptos geométricos bidimensionales:
◦ Ej.: Puntos, líneas y segmentos de línea, círculos, polígonos y arcos.
◦ Para especificar las características espaciales de objetos.
• Se necesitan:
◦ Operaciones espaciales para operar con las características espaciales de los objetos (ej.:
Calcular la distancia entre dos objetos).
◦ Condiciones booleanas espaciales (ej.: Verificar si dos objetos se solapan espacialmente).
• Las siguientes categorías muestran los tres tipos característicos de consultas espaciales:
◦ Consulta de rango: encontrar los objetos de un tipo concreto que están dentro de un área
espacial determinada o de una distancia concreta a partir de una localización determinada.
◦ Consulta de vecindad más cercana: encontrar un objeto de un tipo concreto que está más
cercano a una localización dada.
◦ Reuniones o superposiciones espaciales: reunir los objetos de dos tipos basados en una
condición espacial determinada, como la intersección o coincidencia de objetos espacialmente
o que se encuentren a una determinada distancia entre sí.
• Se necesitan técnicas especiales para la indexación espacial.
• Una de las técnicas más conocidas es el empleo de árboles R y sus variantes:
◦ Los árboles R agrupan, en los mismos nodos hoja de un índice estructurado en árbol, los
objetos que se hallan en proximidad física espacial cercana.
• Bases de datos multimedia
• Permiten almacenar y consultar diferentes tipos de información multimedia, que incluye
imágenes, video clips, audio clips, y documentos.
• Los principales tipos de consultas que se necesitan incluyen:
◦ Localización de fuentes multimedia que contengan determinados objetos de interés, por ej.
Una persona determinada.
◦ Localización de video clips que estén basadas en determinadas actividades, por ej. Que se
marque un gol en un partido de fútbol por un jugador o equipo determinado.
• Estos tipos de consultas se conocen con el nombre de recuperación basada en contenido:
◦ Se está recuperando la fuente multimedia basándose en determinados objetos o actividades
que contiene.
• La BD multimedia debe emplear algún modelo para organizar e indexar las fuentes multimedia
• Basándose en su contenido.
• La identificación del contenido de las fuentes multimedia resulta una tarea ardua y que lleva
mucho tiempo.
• Un método se basa en el análisis automático de las fuentes multimedia para identificar ciertas
características matemáticas en sus contenidos:
◦ Usa técnicas diferentes dependiendo del tipo de fuente multimedia.
• Otro método se basa en la identificación manual de los objetos y actividades de interés de cada
fuente multimedia y en emplear esta información para indexar las fuentes:
◦ Puede aplicarse a todas las fuentes multimedia, pero requiere una fase de procesamiento
manual.
• Se utilizan descriptores de configuración de Imágenes.
• Para identificar objetos de interés en una imagen, se la divide en segmentos homogéneos
empleando un predicado de homogeneidad
• Una consulta típica sería encontrar las imágenes que sean similares a una imagen determinada:
• La imagen determinada podría ser un segmento aislado que contenga, por ej., Un patrón de
interés, y la consulta es la de localizar otras imágenes que contengan el mismo patrón.
• Un método emplea una función de distancia para comparar la imagen dada con las imágenes
almacenadas y sus segmentos.
• Otro método, denominado el método de transformación, mide la similitud de imagen mediante un
pequeño número de transformaciones. Las transformaciones incluyen rotaciones, traslaciones y
cambios de escala.
• Los objetos y actividades identificados en cada segmento de video pueden emplearse para
BD para GIS
• Los sistemas de información geográfica (GIS) se emplean para recoger, modelar, almacenar y
analizar información que describe las propiedades físicas del mundo geográfico.
• Los GIS abarcan dos tipos de datos:
◦ Datos espaciales, procedentes de mapas, imágenes digitales, fronteras administrativas y
políticas, carreteras, redes de transporte; datos físicos tales como ríos, características del
suelo, regiones climáticas, elevaciones del terreno.
◦ Datos no espaciales como cómputos del censo, datos económicos e información sobre ventas
o marketing.
• Clasificación posible de las aplicaciones GIS:
Aplicaciones GIS
Introducción
ISO The totality of features and characteristics of a product or service that bear on its ability
to satisfy specified or implied needs.
Funcionalidad
e
st
Co
Oportunidad
Calidad de información
• Es la propiedad deseable de un sistema, una red, una BD o un proceso, que indica su habilidad
para:
◦ Extender el margen de operaciones sin perder calidad.
◦ Manejar el crecimiento continuo de trabajo de manera fluida.
◦ Estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos.
◦ Cambiar su tamaño o configuración para adaptarse a las circunstancias cambiantes.
• Un sistema cuyo rendimiento es mejorado después de haberle añadido más capacidad hardware,
proporcionalmente a la capacidad añadida, se dice que pasa a ser un “sistema escalable”.
◦ La escalabilidad puede ser clasificada en:
▪ Escalabilidad en carga:
• Esta cae dentro de los sistemas distribuidos, ya que hacen ampliar o disminuir los
recursos para acomodar las cargas más pesadas o ligeras según lo que se requiera.
▪ Escalabilidad geográfica:
• Es cuando un sistema no se ve afectado por las distancias geográficas que puedan
haber entre los usuarios.
▪ Escalabilidad administrativa:
• Esta debe de manejarse con facilidad sin importar las organizaciones que necesiten
compartir un solo sistema distribuido.
• Ejemplo:
◦ Un sistema de procesamiento y transacción en línea o un sistema administrador de base de
datos escalable se puede actualizar para procesar más servicios sumándole dispositivos y
almacenamiento, que pueden implementarse con facilidad por medio de los procesadores
nuevos.
• Escalabilidad vertical y horizontal:
◦ Vertical:
◦ Si originalmente no existe una clave principal compacta, se puede utilizar una columna de
identidad implementada como un entero.
◦ Un índice con una o sólo algunas columnas de claves se denomina un índice estrecho.
◦ Un índice con varias columnas de claves se denomina un índice ancho.
◦ Los índices anchos suelen estar asociados con las longitudes de clave grandes.
• Modelado y calidad de datos - ISO 9126:
◦ Evaluación de productos de software.
◦ Características de calidad y lineamientos para su uso.
FIABILIDAD
Madurez
Tolerancia a fallos
FUNCIONALIDAD Recuperación USABILIDAD
Adecuación Conforme Comprensible
Exactitud Fácil de usar
Interoperabilidad Atractivo
Seguridad Conforme
Conformidad
CALIDAD EFICIENCIA
PORTABILIDAD Temporal
Adaptabilidad Recursos
Facilidad de instalación Conforme
Coexistencia
Reemplable
Conforme MANTENIBILIDAD
Estabilidad
Posibilidad de cambio
Facilidad de prueba
Capacidad de Diagnóstico
Conforme
• ISO 9126
◦ Funcionalidad: capacidad del producto software para proporcionar funciones que satisfagan
las necesidades especificadas e implícitas.
◦ Fiabilidad: capacidad del producto software para mantener un nivel especificado de
rendimiento.
◦ Usabílídad: la capacidad del producto software de ser entendido, aprendido, utilizado y
atractivo al usuario.
◦ Eficiencia: la capacidad del producto software para proporcionar el rendimiento apropiado,
relativo a la cantidad de recursos utilizados.
◦ Mantenibilidad: la capacidad del producto software para ser modificado. Las modificaciones
pueden incluir correcciones, mejoras o adaptación del software a cambios en el entorno, en
los requisitos o en las especificaciones funcionales.
◦ Portabilidad: la capacidad del producto software de ser transferido de un entorno a otro.
Calidad en Bases de Datos: Calidad del Gestor. Calidad del Modelo de Datos y Calidad de los
Datos
Sistema Sistema
Consultas/Categorías A B A/B
Media geométrica
Para la categoría
Promedio simple de las categorías
• Calidad del modelo de datos
• No hay criterios sobre calidad aceptados universalmente en la comunidad de expertos.
• El diseño de un modelo de datos se basa en la experiencia práctica y en el estudio de casos.
• No hay métricas objetivas para evaluar la calidad de un modelo de datos:
◦ Existen aproximaciones.
Aproximaciones para evaluar la calidad en modelos de datos:
Autor(es) Propósito Características Tipo Enfoque
Moody and Shanks Evaluar la calidad de Factores de calidad, Marco de referencia. Práctico.
(1994). modelos E/R. estrategias y métodos de
Moody (1998). evaluación.
Batini, Ceri and Navathe Mejorar la calidad de un Características de calidad Lista. Práctico.
(1992) esquema de bases de de un buen esquema,
datos. transformaciones de
esquemas.
Modelo de
Calidad
• Las métricas propuestas para los distintos factores son las siguientes:
◦ Factor de calidad correctitud:
▪ Número de violaciones a los estándares de Modelado de datos.
▪ Número de instancias de redundancia de Entidad.
▪ Número de instancias de redundancia de Relaciones.
▪ Número de instancias de redundancia de atributo.
◦ Factor de calidad completitud:
▪ Número de requerimientos omitidos.
▪ Número de requerimientos superfluos.
▪ Número de requerimientos definidos incorrectamente.
▪ Número de inconsistencias con el modelo de procesos.
◦ Factor de calidad integridad:
▪ Número de reglas de negocio omitidas.
▪ Número de reglas de negocio incorrectas.
▪ Número de reglas de negocio inconsistentes con el modelo de procesos.
▪ Número de reglas de negocio redundantemente definidas en reglas del modelo de
procesos.
◦ Factor de calidad flexibilidad:
▪ Número de elementos del modelo de datos que están sujetos a cambios.
▪ Probabilidad ajustada del costo de cambio.
▪ Impacto estratégico del cambio.
◦ Factor de calidad comprensibilidad:
▪ Tasa (%) de comprensibilidad del usuario.
▪ Errores de interpretación del usuario.
▪ Tasa de comprensibilidad del desarrollador de la aplicación.
▪ Relación área sujeto - entidad.
▪ Relación entidad - atributo.
◦ Factor de calidad simplicidad:
▪ Número de entidades (e).
▪ Complejidad del sistema (e + r).
▪ Complejidad total (aE + bR + cA); se utilizan coeficientes de ponderacion.
Proveedor Usuario
Normas de Calidad
◦ 5.10 Mantenimiento.
◦ 6.1 Administración de la configuración.
◦ 6.2 Documentos de control.
◦ 6.3 Calidad de los archivos.
◦ 6.4 Medidas.
◦ 6.5 Reglas y convenciones.
◦ 6.6 Herramientas y técnicas.
◦ 6.7 Compra.
◦ 6.8 Productos de software incluidos.
◦ 6.9 Formación.
• Relación de ISO 9000-3 con otros estándares:
◦ El ISO 9001 y el IEEE 730 son los que se relacionan más directamente con el ISO 9000-3.
◦ El ISO 9001 especifica requerimientos para garantizar la calidad de los sistemas , incluye los
procesos que dan cobertura al ciclo de vida.
◦ El IEEE 730 es el puente entre la gestión de la calidad y la ingeniería del software.
ISO 9001
ISO 9000-3
IEEE 730
Calidad externa
E interna
Calidad en
Uso
Seguridad de
Efectividad Productividad Satisfacción
Acceso
◦ Efectividad:
▪ Capacidad del producto software para permitir a los usuarios alcanzar objetivos
especificados con exactitud y completitud, en un contexto de uso especificado.
◦ Productividad:
▪ Capacidad del producto software para permitir a los usuarios gastar una cantidad
adecuada de recursos con relación a la efectividad alcanzada, en un contexto de uso
especificado.
◦ Seguridad física:
▪ Capacidad del producto software para alcanzar niveles aceptables del riesgo de hacer
daño a personas, al negocio, al software, a las propiedades o al medio ambiente en un
contexto de uso especificado.
◦ Satisfacción:
▪ Capacidad del producto software para satisfacer a los usuarios en un contexto de uso
especificado.
• Norma ISO / IEC 9126 - Calidad del software
Eficiencia
Funcionalidad Portabilidad
CALIDAD DE SOFTWARE
Confiabilidad Usabilidad
Mantenibilidad
Mantenibilidad
Complejidad
Complejidad
Producto o
Problema Complejidad
Complejidad
Complejidad Cognitiva
Estructural
• Proceso de evaluación
Diseñar
evaluación Producir plan de evaluaciión (9.1)
Nivel planeado
Satisfactorio
Valor medido
Rango objetivo
Nivel Actual
Mínimamente aceptable
El caso peor
Insatisfactorio
Inaceptable
• Alcance:
◦ Ejecutar, planificar, gestionar, controlar y mejorar los procesos de:
▪ Adquisición.
▪ Suministro.
▪ Desarrollo.
▪ Operación.
▪ Soporte.
• Estructura de ISO 15504:
Parte 1 Parte 9
Conceptos y guía introducción Vocablo
Parte 7 Parte 8
Guía para usar en Guía para usar en
un proceso de mejora La determinación de la
capacidad de un proveedor
Evaluación de Procesos
Parte 3 Parte 2
Realizar una Un modelo de referencia
evaluación De procesos y de
Capacidad de los procesos
• La información reduce nuestra incertidumbre (sobre algún aspecto de la realidad) y, por tanto,
nos permite tomar mejores decisiones.
• Inicialmente la finalidad de los si era recopilar información sobre una porción del mundo para
ayudar en la toma de decisiones:
◦ Recuentos de cereales en babilonia, censos civiles y militares romanos o chinos, libros
contables de árabes o sefardíes, etc.
• Actualmente, con la informatización de las organizaciones y la aparición de aplicaciones software
operacionales sobre el si, la finalidad principal de los sistemas de información es dar soporte a los
procesos básicos de la organización:
◦ Ventas, producción, personal, etc.
• Primero se busca satisfacer la necesidad de tener un soporte informático para los procesos
básicos de la organización:
◦ Sistemas de información para la gestión.
• Luego las organizaciones exigen nuevas prestaciones de los sistemas de información:
◦ Sistemas de información para la toma de decisiones.
• Los principales aspectos en la evolución efectuada son los siguientes:
◦ 60’s: informes batch:
▪ La información es difícil de encontrar y analizar.
▪ Son poco flexibles.
▪ Es necesario reprogramar cada petición diferente.
◦ 70's: primeros DSS (decision support systems) y EIS (executive information systems):
▪ Basados en terminal.
▪ No integrados con el resto de herramientas.
◦ 80’s: acceso a datos y herramientas de análisis integradas (conocidas como intelligent
business tools):
▪ Herramientas de consultas e informes, hojas de cálculo, interfaces gráficos e integrados,
fáciles de usar.
▪ Acceden a las bases de datos operacionales.
◦ 90’s: almacenes de datos y herramientas olap.
◦ 00’s: herramientas de minería de datos y simulación.
• La Inteligencia de Negocios o Business Intelligence (BI) es el término que caracteriza una amplia
variedad de tecnologías, plataformas de software, especificaciones de aplicaciones y procesos.
• El objetivo primario de la inteligencia de negocios es:
◦ Contribuir a tomar decisiones que mejoren el desempeño de la empresa u organización.
◦ Promover su ventaja competitiva.
• La inteligencia de negocios faculta a la organización a tomar mejores decisiones más rápidas.
• La inteligencia de negocios se caracteriza por:
◦ Buscar hechos cuantitativos medibles y objetivos acerca de la empresa u organización.
◦ Usar métodos y tecnologías para el análisis de hechos.
◦ Desarrollar modelos que expliquen la causa-efecto de las relaciones entre:
BD
ETL
Estrella
Sistemas Datawarehouse /
Transaccionales Datamarts
ARQUITECTURA
• Conclusión:
◦ Las organizaciones requieren gestionar no sólo datos, sino información y también
conocimiento.
◦ El objetivo final es mejorar la toma de decisiones
◦ En un mundo cada vez más competitivo.
◦ Algunas de las posibles soluciones son las que utilizan DataWarehouse y Data Marts.
Almacenes de Datos
Definición
Colección de datos diseñada
para dar apoyo a los procesos
de toma de decisiones.
Bases de Datos
Transaccionales
PAIS GAMA
CURSO ... ...
...
Información
VENTA Necesaria
REUNION ...
...
PRODUCTO
PROTOTIPO ...
...
Fuente de Fuente de
Datos 3 Fuente de
Datos 1
Bases de Datos Texto HTML Datos 2
Transaccional 1
Fuentes
Externas
Fuentes
Bases de Datos Internas
Transaccional 2
Almacén
de Datos
Carga
• La arquitectura de un almacén de datos viene determinada por su situación central como fuente
de información para las herramientas de análisis.
• Ejemplo:
◦ Organización: cadena de supermercados.
◦ Actividad objeto de análisis: ventas de productos.
◦ Información registrada sobre una venta: “del producto “tauritón 33cl” se han vendido en el
almacén “almacén nro.l” el día 17/7/2003, 5 unidades por un importe de 103,19 euros”.
◦ Para hacer el análisis no interesa la venta individual (ticket) realizada a un cliente sino las
ventas diarias de productos en los distintos almacenes de la cadena.
Marca
Descripción Semana
Producto
Categoría
Tiempo
Departamento Mes
Nro_producto Día Terrestre
Tipo Año
as
nt
Ve
Importe
Unidades
Almacén
Ciudad
Tipo
Almacén
Región
Dimensiones (puntos de
Vista) desde los que
se puede analizar la
actividad
Marca
Descripción Semana
Producto
Tiempo
Categoría
Departamento Mes
Nro_producto Día Terrestre
Tipo Año
as
e nt
V
Importe
Unidades
Almacén
Ciudad
Tipo
Dimensiones (puntos de
Almacén
Región
Vista) desde los que
se puede analizar la actividad
• Modelo multidimensional:
◦ En un esquema multidimensional se representa una actividad que es objeto de análisis
(hecho) y las dimensiones que caracterizan la actividad (dimensiones).
◦ La información relevante sobre el hecho (actividad) se representa por un conjunto de
indicadores (medidas o atributos de hecho).
◦ La información descriptiva de cada dimensión se representa por un conjunto de atributos
(atributos de dimensión).
Marca
Descripción Semana
Producto
Categoría
Tiempo
Departamento Mes
Nro_producto Día Terrestre
Tipo Año
as
nt
Ve
Importe
Unidades
Almacén Dimensión
Medidas Ciudad
Tipo
Almacén
Región
Atributos
Producto
Almacén
Ciudad Regiión
Almacén
Tipo
Tiempo
Semana
PERSONAL
Equipo
Tiempo
VENTAS
Producto
Lugar
• Se pueden obtener hechos a diferentes niveles de agregación:
◦ Obtención de medidas sobre los hechos parametrizadas por atributos de las dimensiones y
restringidas por condiciones impuestas sobre las dimensiones.
◦ Un nivel de agregación para un conjunto de dimensiones se denomina cubo.
◦ Ejemplo de hecho:
▪ “El primer trimestre de 2004 la empresa vendió en valencia por un importe de 22.000
euros del producto tauritón 33 CL”.
Ventas en MILES de EUROS
LUGAR: Ciudad
Murcia
Alicante
Zaragoza
Madrid
Barcelona
Valencia
17
Zumo Piña 1L
57
Cola 33 CL.
PRODUCTO:
Artículo
93
Jabón Saitre
Zumo Piña 1L 22
5
Zumo Piña 1L
12
Zumo Piña 1L
• ¿Se puede recopilar toda la información necesaria en un único esquema estrella o copo de nieve?:
◦ No: necesidad de varios esquemas.
◦ Cada uno de estos esquemas se denomina datamart.
◦ El siguiente es un ejemplo de un almacén formado por cuatro datamarts.
• El almacén de datos puede estar formado por varios datamarts y, opcionalmente, por tablas
adicionales:
◦ El datamart es un subconjunto de un almacén de datos, generalmente en forma de estrella o
copo de nieve.
◦ Los datamarts se definen para satisfacer las necesidades de un departamento o sección de la
organización.
◦ Un datamart contiene menos información de detalle y más información agregada.
• El sistema encargado del mantenimiento del almacen de datos es el sistema E.T.T. (extracción
-transformación -transporte) o E.T.L. (extracción -transformación - load (carga)):
◦ La construcción del sistema E.T.T. es responsabilidad del equipo de desarrollo del almacén de
datos.
◦ El sistema Extracción, Transformación y Transporte es construido específicamente para cada
almacén de datos. Aproximadamente 50% del esfuerzo.
◦ En la construcción E.T.T. se pueden utilizar herramientas del mercado o programas diseñados
específicamente.
• Las funciones del sistema Extracción, Transformación y Transporte Son:
◦ Carga inicial (initial load).
◦ Mantenimiento o refresco periódico: inmediato, diario, semanal, mensual,... (refreshment)..
• El almacenamiento intermedio permite:
◦ Realizar transformaciones sin paralizar las BD operacionales y el almacén de datos.
◦ Almacenar metadatos.
◦ Facilitar la integración de fuentes externas.
Correspondencia
Extracción
Correspondencia
Transformación
Bases de Datos Opracionales Almacenamiento Almacén de Datos
Intermedio
• Transformación:
◦ Las claves con estructura se deben descomponer en valores atómicos.
◦ Ej.: Código de producto = 12M65431345:
▪ Código del país: 12.
▪ Zona de ventas: M.
▪ Número de producto: 65431.
• Transformación:
◦ Se debe crear las claves.
• Transporte (carga):
• La fase de transporte consiste en:
◦ Mover los datos desde las fuentes operacion ale s o el almacenamiento intermedio hasta el
almacén de datos, y.
◦ Cargar los datos en las correspondientes estructuras de datos.
◦ La carga puede consumir mucho tiempo.
◦ En la carga inicial del ad se mueven grandes volúmenes de datos.
◦ En los mantenimientos periódicos del ad se mueven pequeños volúmenes de datos.
◦ La frecuencia del mantenimiento periódico está determinada por el gránulo del ad y los
requisitos de los usuarios.
• Transporte:
◦ Creación y mantenimiento de un almacén de datos:
▪ Crear el almacén de datos (base de datos).
▪ En intervalos de tiempo fijos añadir cambios al almacén de datos:
• Se deben determinar las “ventanas de carga” más convenientes para no saturar la BD
operacional.
▪ Ocasionalmente archivar o eliminar datos obsoletos que ya no interesan para el análisis.
◦ Obtención de agregados:
▪ Durante la extracción.
▪ Después de la carga (transporte).
• Etapas:
Recogida y anáisis de
requisitos
Diseño conceptual
Diseño físico
Implementación
Recogida y anáisis de
requisitos Análisis
Diseño conceptual
Discernimiento de las
Requisitos de
Fuentes necesarias
Usuario (consultas
Del sistema de
De análisis necesarias,
Informacón de la
Nivel de
Diseño lógico Organización (OLTP)
Agregación, ...)
Y externas
Diseño físico
Recogida y anáisis de
requisitos Diseño lógico
Diseño conceptual
Diseño físico
Implementación Esquemas
Estrella
Recogida y anáisis de
requisitos Implementación
Diseño conceptual
Diseño físico
Preparación de las
Implementación Vistas de usuario
(herramienta OLAP)
Recogida y anáisis de
requisitos La visión multidimensional seguida por
Las herramientas de explotación de
Almaceness de datos (OLAP) ha
Inspirado los modelos y metodologías
Diseño conceptual De diseño de este tipo de sistemas
Diseño lógico
Diseño físico
• Modelado multidimensional:
◦ En un esquema multidimensional se representa una actividad que es objeto de análisis
(hecho) y las dimensiones que caracterizan la actividad (dimensiones).
◦ La información relevante sobre el hecho (actividad) se representa por un conjunto de
indicadores (medidas o atributos de hecho).
◦ La información descriptiva de cada dimensión se representa por un conjunto de atributos
(atributos de dimensión).
◦ El modelado multidimensional se puede aplicar utilizando distintos modelos de datos
• (conceptuales o lógicos).
◦ La representación gráfica del esquema multidimensional dependerá del modelo de datos
utilizado (Relacional, ER, UML, OO, etc.).
• El desarrollo de la tecnología de almacenes de datos se ha caracterizado por:
◦ Un temprano desarrollo industrial provocado por las demandas de los usuarios.
◦ El uso de metodologías de diseño centradas principalmente en los niveles lógico e interno:
▪ La atención se ha centrado en mejorar la eficiencia en la ejecución de consultas.
◦ Ej. De metodología de diseño basada en el modelo relacional:
▪ Modelo multidimensional de kimball.
• Los pasos en el diseño del almacen de datos son:
◦ Paso 1: elegir un “proceso” de la organización para modelar.
◦ Paso 2: decidir el gránulo (nivel de detalle) de representación del proceso.
◦ Paso 3: Identificar las dimensiones que caracterizan el proceso.
◦ Paso 4: Decidir la información a almacenar sobre el proceso.
• Paso 1: Elegir un “proceso ” de la organización para modelar:
◦ Proceso: actividad de la organización soportada por un OLTP del cual se puede extraer
información con el propósito de construir el almacén de datos:
▪ Pedidos (de clientes).
▪ Compras (a suministradores).
▪ Facturación.
▪ Envíos.
▪ Ventas.
▪ Inventario
▪ Etc.
• Ejemplo:
◦ Cadena de supermercados:
▪ Cadena de supermercados con 300 almacenes en la que se expenden unos 30.000
productos distintos.
◦ Actividad: ventas
▪ La actividad a modelar son las ventas de productos en los supermercados (almacenes) de
la cadena.
• Paso 2: Decidir el grànulo (nivel de detalle) de representación:
◦ Gránulo: es el nivel de detalle al que se desea almacenar información sobre la actividad a
modelar:
▪ El grànulo define el nivel atómico de datos en el almacén de datos.
▪ El grànulo determina el significado de las tuplas de la tabla de hechos.
▪ El grànulo determina las dimensiones básicas del esquema:
• Transacción en el OLTP.
• Información diaria.
• Información semanal.
• Información mensual.
• Etc.
Tabla de Hechos
Tabla 3 Tabla
Dimensión 1 Dim Dimensión 3
1
Dim id_dim1
id_dim2
id_dim3
…
id_dim n
…
Tabla n Tabla
Dim
(hechos)
Dimensión 2 2 Dimensión n
Dim
• Ejemplo:
◦ Cadena de supermercados.
◦ Grànulo:
▪ “Se desea almacenar información sobre las ventas diarias de cada producto en cada
almacén de la cadena”.
◦ Grànulo:
▪ Define el significado de las tuplas de la tabla de hechos.
▪ Determina las dimensiones básicas del esquema.
o
to mp
duc Producto Tie
Pro
Dia
Almacén
Ventas
n
acé
Alm
• Granulo inferior:
◦ No se almacena información a nivel de línea de ticket porque no se puede identificar siempre
al cliente de la venta:
▪ Si se pudiera, permitiría hacer análisis del comportamiento (hábitos de compra) del
cliente.
• Granulo superior:
◦ No se almacena información a nivel semanal o mensual porque se perderían opciones de
análisis interesantes:
▪ Ventas en días previos a vacaciones, ventas en fin de semana, ventas en fin de mes, etc.
• En un Data Warehouse se almacena información a un nivel de detalle (grànulo) fino:
◦ No porque se vaya a interrogar el almacén a ese nivel.
◦ Sino porque ello permite clasificar y estudiar (analizar) la información desde muchos puntos
de vista.
Tabla
Dimension1 id_dim1
…
)
tos
at ribu
(
• Ejemplo:
◦ Cadena de supermercados.
◦ Nota: en las aplicaciones reales el número de dimensiones suele variar entre 3 y 15.
◦
Tiempo
Definición Dimensiones
De gránulo Básicas Producto
Establecimmiento
• Dimensión tiempo:
◦ Dimensión presente en todo ad porque el ad contiene información histórica sobre la
organización.
◦ Aunque el lenguaje SQL ofrece funciones de tipo date, una dimensión tiempo permite
representar otros atributos temporales no calculables en SQL.
◦ Se puede calcular de antemano.
◦ Atributos frecuentes:
▪ Nro. De día, nro. De semana, nro. De año:
• Valores absolutos del calendario juliano que permiten hacer ciertos cálculos
aritméticos.
▪ Día de la semana (lunes, martes, miércoles,...):
• Permite hacer análisis sobre días de la semana concretos (ej. Ventas en sábado,
ventas en lunes,..).
• Dimensión tiempo:
◦ Atributos frecuentes:
▪ Día del mes (1.31):
• Permite hacer comparaciones sobre el mismo día en meses distintos (ventas el io de
mes).
▪ Marca de fin de mes, marca de fin de semana:
• Permite hacer comparaciones sobre el último día del mes o días de fin de semana en
distintos meses.
▪ Trimestre del año (1..4):
• Permite hacer análisis sobre un trimestre concreto en distintos años.
▪ Marca de día festivo (feriado):
• Permite hacer análisis sobre los días contiguos a un día festivo.
▪ Estación (primavera, verano..).
▪ Evento especial:
• Permite marcar días de eventos especiales (final de fútbol, elecciones...).
◦ Jerarquía natural:
▪ Día - mes - trimestre -año.
• Dimensión producto:
◦ La dimensión producto se define a partir del fichero maestro de productos del sistema OLTP.
◦ Las actualizaciones del fichero maestro de productos deben reflejarse en la dimensión
producto (¿cómo?).
◦ La dimensión producto debe contener el mayor número posible de atributos descriptivos que
permitan un análisis flexible:
▪ Un número frecuente es de 50 atributos.
◦ Atributos frecuentes:
▪ Identificador (código estándar), descripción, tamaño del envase, marca, categoría,
departamento, tipo de envase, producto dietético, peso, unidades de peso, unidades por
envase, fórmula, etc.
◦ Jerarquías:
▪ Producto-categoría-departamento.
• Dimensión establecimiento (store):
◦ La dimensión almacén representa la información geográfica básica.
◦ Esta dimensión suele ser creada explícitamente recopilando información externa que sólo
tiene sentido en el ad y que no la tiene en un OLTP:
▪ Número de habitantes de la ciudad del establecimiento, caracterización del tipo de
población del distrito, etc.
◦ Atributos frecuentes:
▪ Identificador (código interno), nombre, dirección, distrito, región, ciudad, país, director,
teléfono, fax, tipo de almacén, superficie, fecha de apertura, fecha de la última
remodelación, superficie para congelados, superficie para productos frescos, datos de la
población del distrito, zona de ventas, etc.
◦ Jerarquías:
▪ Establecimiento - distrito - ciudad - región - país (jerarquía geográfica).
▪ Establecimiento - zona ventas - región ventas (jerarquía de ventas).
• Paso 4: decidir la información a almacenar sobre el proceso:
◦ Hechos: información (sobre la actividad) que se desea almacenar en cada tupla de la tabla de
hechos y que será el objeto del análisis:
▪ Precio
▪ Unidades
▪ Importe
▪ Etc.
◦ Nota: algunos datos que en el OLTP coincidirían con valores de atributos de dimensiones, en
el almacén de datos se pueden representar hechos:
▪ Ej.: El precio de venta de un producto.
• Ejemplo:
◦ Cadena de supermercados.
◦ Gránulo: “se desea almacenar información sobre las ventas diarias de cada producto en cada
establecimiento de la cadena”.
◦ Importe total de las ventas del producto en el día.
◦ Número total de unidades vendidas del producto en el día.
◦ Número total de clientes distintos que han comprado el producto en el día.
◦ Evitar normalizar:
▪ Si se define una tabla de dimensión para cada dimensión identificada en el análisis, es
frecuente que entre el conjunto de atributos de la tabla aparezcan dependencias
funcionales que hacen que la tabla no esté en 3a f.n.
◦ Razones para evitar normalizar:
▪ El ahorro de espacio no es significativo.
▪ Se multiplican los join durante las consultas.
◦ Siempre introducir la dimensión tiempo:
▪ En un almacén de datos muchas consultas son restringidas y parametrizadas por criterios
relativos a periodos de tiempo
• Último mes, este año, etc.
◦ Dimensiones “que cambian”:
▪ Se considera relevante el caso en que, en el mundo real, para un valor de una dimensión:
• Cambia el valor de un atributo que es significativo para el análisis sin cambiar el valor
de su clave.
◦ Ej.: En un almacén de datos existe la dimensión cliente:
▪ En la tabla correspondiente un registro representa la información sobre el cliente “María
García” cuyo estado civil cambia el 15-01-1994 de soltera a casada.
▪ El estado civil del cliente es utilizado con frecuencia en el análisis de la información.
◦ Existen tres estrategias para el tratamiento de los cambios en las dimensiones:
▪ Tipo 1: Realizar la modificación.
▪ Tipo 2: Crear un nuevo registro.
▪ Tipo 3: Crear un nuevo atributo.
◦ Definición de agregados:
▪ En un almacén de datos es usual consultar información agregada.
▪ El almacenamiento de datos agregados por distintos criterios de agregación en la tabla de
hechos mejora la eficiencia del ad.
▪ Las estrategias de almacenamiento de datos agregados son:
• Estrategia 1: definir nuevas tablas de hechos (resp. Dimensiones) para almacenar la
información agregada (resp. La descripción de los niveles de agregación).
• Estrategia 2: insertar en la tabla de hechos (resp. Dimensiones) tuplas que
representan la información agregada (resp. Los niveles de agregación).
• Conclusiones:
◦ El diseño de un dw tiene características propias que lo hacen diferente al diseño de datos
para una base de datos operacional.
◦ La etapa de extracción de datos y su posterior actualización deben ser consideradas
cuidadosamente para preservar la utilidad real del data warehouse.
Tabla
Pivote 1
OLAP
Tabla
Pivote n
• Las herramientas de OLAP presentan al usuario una visión multidimensional de los datos o
esquema multidimensional, para cada actividad que es objeto de análisis.
• El usuario formula consultas a la herramienta olap seleccionando atributos de este esquema
multidimensional sin conocer la estructura interna o esquema físico del almacén de datos.
• La herramienta olap genera la correspondiente consulta y la envía al gestor de consultas del
sistema:
◦ P. ej. Mediante una sentencia SELECT.
• Una consulta a un almacén de datos consiste generalmente en la obtención de medidas sobre los
hechos parametrizadas por atributos de las dimensiones y restringidas por condiciones impuestas
sobre las dimensiones.
• Ej.: ¿cuál es el importe total de las ventas durante el año 2002 de los productos del
departamento bebidas, por trimestre y por categoría”?:
◦ Medida: importe
◦ Hecho: ventas.
◦ Restricciones: productos del departamento bebidas, ventas durante el año 2002.
◦ Parámetros de la consulta: por categoría de producto y por trimestre.
Marca
Descripción “Bebidas” Semana
Producto
Categoría
Tiempo
Departamento Mes
Nro_producto Día Terrestre
Tipo Año
as
e nt “2002”
V
Importe
Unidades
Almacén
Ciudad
Tipo
Almacén
Región
“Importe total de ventas en el
Año 2002, del departamento
De “Bebidas”, por categoría y
trimestre”
Oracle Discoverer
Arquitecturas OLAP
Servicios de Explotación
Detalles
Agregados
Detalle Agregados
Detalle Agregados
Estructuras Herramienta
Multidimensionales OLAP
Servidor MOLAP
Warehouse
• MOLAP:
◦ Datos:
▪ Arrays.
▪ Extraídos del almacén de datos.
▪ Almacenamiento y procesos eficientes.
▪ La complejidad de la BD se oculta a los usuarios.
▪ El análisis se hace sobre datos agregados y métricas o indicadores precalculados.
SQL Ampliado
• Lo interesante no es poder realizar consultas que, en cierto modo, se pueden hacer con
selecciones, proyecciones, concatenaciones y agrupamientos tradicionales.
• Lo realmente interesante de las herramientas OLAP son sus operadores de refinamiento o
manipulación de consultas:
• DRILL.
• ROLL.
• SLICE & DICE.
• PIVOT.
• El carácter agregado de las consultas en el análisis de datos, aconseja la definición de nuevos
operadores que faciliten la agregación (consolidación) y la disgregación (división) de los datos:
◦ Agregación (ROLL): permite eliminar un criterio de agrupación en el análisis, agregando los
grupos actuales.
◦ Disgregación (DRILL): permite introducir un nuevo criterio de agrupación en el análisis,
disgregando los grupos actuales.
• Si se desea introducir la dimensión almacén en el análisis anterior e incluir un nuevo criterio de
agrupación sobre la ciudad del almacén:
◦ ¿“Importe total de las ventas durante el año 2002 de los productos del departamento
bebidas, por trimestre, por categorías y por ciudad del almacén”?.
◦ Restricciones: productos del departamento bebidas, ventas durante el año 2002.
◦ Parámetros de la Consulta: por categoría de producto, por trimestre y por ciudad del
almacén.
Cada grupo (categoría-trimestre) de la consulta original se disgrega en dos nuevos grupos (categoría-
trimestre-ciudad) para las ciudades de león y valencia.
* se asumen dos ciudades: valencia y león.
• Si se desea eliminar el criterio de agrupación sobre la dimensión tiempo en la consulta original:
◦ ¿“importe total de las ventas durante el año 2002 de los productos del departamento bebidas,
por Categorías”?.
•
• Las operaciones de disgregación (DRILL) y agregación (ROLL) se pueden hacer sobre:
◦ Atributos de una dimensión sobre los que se ha definido una jerarquía: DRILL-DOWN, ROLL-
UP:
▪ Departamento - categoría - producto (producto).
▪ Año - trimestre - mes - día (tiempo).
◦ Sobre dimensiones independientes: drill-across, roll-across:
▪ Producto - almacén -tiempo.
Ventas Ventas
Store 1
Toys $1,9 $1,4 Toys $1,9 $0,75
Q1
Store 2
Toys $0,75 $0,4 Toys $1,4 $0,4
Q2
Ventas Ventas
Q1
Clothing $2,3 $2,6 Toys $1,9
Cosmetics $1,1 $1,1
• Motivación:
◦ Nuevas necesidades del análisis de grandes volúmenes de datos.
◦ El aumento del volumen y variedad de información que se encuentra informatizada en bases
de datos digitales ha crecido espectacularmente en la última década.
◦ Gran parte de esta información es histórica, es decir, representa transacciones o situaciones
que se han producido.
◦ Aparte de su función de “memoria de la organización”, la información histórica es útil para
predecir la información futura.
◦ La mayoría de decisiones de empresas, organizaciones e instituciones se basan también en
información de experiencias pasadas extraídas de fuentes muy diversas.
◦ Las decisiones colectivas suelen tener consecuencias mucho más graves, especialmente
económicas, y, recientemente, se deben basar en volúmenes de datos que desbordan la
capacidad humana.
◦ El área de la extracción (semi-)automática de conocimiento de bases de datos ha adquirido
recientemente una importancia científica y económica inusual.
• Tamaño de datos poco habitual para algoritmos clásicos:
◦ Número de registros (ejemplos) muy grande (10 8 a 1012 Bytes).
◦ Datos altamente dimensionales (n° de columnas / atributos): 10 2-104.
• El usuario final no es un experto en aprendizaje automático ni en estadística.
• El usuario no puede perder más tiempo analizando los datos:
◦ Industria: ventajas competitivas, decisiones más efectivas.
◦ Ciencia: datos nunca analizados, bancos no cruzados, etc.
◦ Personal: “information overload”...
• Los sistemas clásicos de estadística son difíciles de usar y no escalan al número de datos típicos
en BD.
• Aparece el “Descubrimiento de conocimiento a partir de bases de datos”:
◦ KDD: Knowledge Discovery from Databases.
• Relación de la minería de datos con otras disciplinas:
◦ KDD: “Proceso no trivial de identificar patrones válidos, novedosos, potencialmente útiles y
en última instancia comprensibles a partir de los datos”:
▪ Fayyad, 1996.
◦ Diferencia clara con métodos estadísticos:
Inteligencia
Estadística Artificial / Machine
Learning
Data
Mining
Informática
Bases de Datos
• Áreas de aplicación:
◦ Toma de decisiones:
▪ Banca - Finanzas - Seguros, Marketing, Políticas sanitarias / demográficas, etc.
◦ Procesos industriales:
▪ Componentes químicos, compuestos, mezclas, esmaltes, procesos, etc.
◦ Investigación científica:
▪ Medicina, astronomía, meteorología, psicología, etc.
▪ Aquí la eficiencia no es tan importante.
◦ Soporte al diseño de bases de datos.
◦ Reverse engineering:
▪ Dados una base de datos, desnormalizarla para que luego el sistema la normalice.
◦ Mejora de calidad de datos.
◦ Mejora de consultas:
▪ Si se descubren dependencias funcionales nuevas u otras condiciones evitables.
• Áreas de aplicación - problemas tipo:
◦ Aplicaciones de KDD para toma de decisiones, según Dilly - 1996:
▪ Comercio / Marketing:
• Identificar patrones de compra de los clientes.
• Buscar asociaciones entre clientes y características demográficas.
• Predecir respuesta a campañas de mailing.
• Análisis de cestas de la compra.
▪ Banca:
• Detectar patrones de uso fraudulento de tarjetas de crédito.
• Identificar clientes leales.
• Predecir clientes con probabilidad de cambiar su afiliación.
• Determinar gasto en tarjeta de crédito por grupos.
• Encontrar correlaciones entre indicadores financieros.
• Identificar reglas de mercado de valores a partir de históricos.
▪ Seguros y salud privada:
• Análisis de procedimientos médicos solicitados conjuntamente.
• Predecir qué clientes compran nuevas pólizas.
• Identificar patrones de comportamiento para clientes con riesgo.
• Identificar comportamiento fraudulento.
▪ Transportes:
• Determinar la planificación de la distribución entre tiendas.
• Analizar patrones de carga.
▪ Medicina:
• Identificación de terapias médicas satisfactorias para diferentes enfermedades.
• Asociación de síntomas y clasificación diferencial de patologías.
• Estudio de factores (genéticos, precedentes, hábitos, alimenticios, etc.) De riesgo /
salud en distintas patologías.
• Segmentación de pacientes para una atención más inteligente según su grupo.
• Predicciones temporales de los centros asistenciales para el mejor uso de recursos,
consultas, salas y habitaciones.
• Estudios epidemiológicos, análisis de rendimientos de campañas de información,
prevención, sustitución de fármacos, etc.
◦ Aplicaciones de KDD para procesos industriales:
▪ Extracción de modelos sobre comportamiento de compuestos.
▪ Detección de piezas con fallas.
▪ Predicción de fallos.
▪ Modelos de calidad.
▪ Estimación de composiciones óptimas en mezclas.
▪ Extracción de modelos de coste.
▪ Extracción de modelos de producción.
▪ Simulación costes/beneficios según niveles de calidad.
Pre-
Selección Procesamiento Minería de Interpretación /
Transformación Datos Evaluación
Pre-
Selección Procesamiento Minería de Interpretación /
Transformación Datos Evaluación
Pre-
Selección Procesamiento Minería de Interpretación /
Transformación Datos Evaluación
Variables Predictoras
• Tipos de conocimiento:
◦ Asociaciones: una asociación entre dos atributos ocurre cuando la frecuencia de que
se den dos valores determinados de cada uno conjuntamente es relativamente alta:
▪ Ejemplo: en un supermercado se analiza si los pañales y los potitos de bebé se
compran conjuntamente.
◦ Dependencias: una dependencia funcional (aproximada o absoluta) es un patrón en el
que se establece que uno o más atributos determinan el valor de otro. Ojo! Existen
muchas dependencias nada interesantes (causalidades inversas):
▪ Ejemplo: que un paciente haya sido ingresado en maternidad determina su sexo.
◦ La búsqueda de asociaciones y dependencias se conoce a veces como análisis
exploratorio.
◦ Clasificación: una clasificación se puede ver como el esclarecimiento de una
dependencia, en la que el atributo dependiente puede tomar un valor entre varias
clases, ya conocidas:
▪ Ejemplo:
◦ Se sabe (por un estudio de dependencias) que los atributos edad, número
de miopías y astigmatismo han determinado los pacientes para los que su
operación de cirugía ocular ha sido satisfactoria.
◦ Podemos intentar determinar las reglas exactas que clasifican un caso
como positivo o negativo a partir de esos atributos.
◦ Agrupamiento / segmentación:
▪ El agrupamiento (o clustering) es la detección de grupos de individuos.
▪ Se diferencia de la clasificación en el que no se conocen ni las clases ni su
número (aprendizaje no supervisado).
▪ El objetivo es determinar grupos o racimos (clusters) diferenciados del resto.
◦ Tendencias / regresión: el objetivo es predecir los valores de una variable continua a
partir de la evolución sobre otra variable continua, generalmente el tiempo:
▪ Ejemplo: se intenta predecir el número de clientes o pacientes, los ingresos,
llamadas, ganancias, costes, etc. A partir de los resultados de semanas, meses o
años anteriores.
◦ Información del esquema: descubrir claves primarias alternativas, R.I.
◦ Reglas generales: patrones no se ajustan a los tipos anteriores; recientemente los
sistemas incorporan capacidad para establecer otros patrones más generales.
• Taxonomía de técnicas de minería de datos:
● Tipos de sistemas:
● Standalone: los datos se deben exportar / convertir al formato interno del sistema de data mining:
● Knowledge seeker IV (angoss international limited, groupe bull).
● On-Top: pueden funcionar sobre un sistema propietario:
● Clementine sobre ODBC, Micro Strategy sobre Oracle.
● Embedded: propietarios:
● Oracle Discoverer, Oracle Darwin, IBM Intelligent Miner, etc.
● Extensible (tecnología plug-ins): proporcionan unas herramientas mínimas de interfaz con los datos,
estadísticas y visualización, y los algoritmos de aprendizaje se pueden ir añadiendo con plug-ins:
● Ejemplo: Kepler.
bajo) hace que los outliers caigan en “muy alto” o “muy bajo” sin mayores problemas.
• Acciones ante datos faltantes (missing values):
◦ Ignorar:
▪ Algunos algoritmos son robustos a datos faltantes (p.ej. Árboles).
◦ Filtrar (eliminar o reemplazar) la columna:
▪ Solución extrema, pero a veces existe otra columna dependiente con datos de mayor
calidad. Preferible a eliminar la columna es reemplazarla por una columna booleana
diciendo si el valor existía o no.
◦ Filtrar la fila:
▪ Claramente sesga los datos, porque muchas veces las causas de un dato faltante están
relacionadas con casos o tipos especiales.
◦ Reemplazar el valor:
▪ Por medias. A veces se puede predecir a partir de otros datos, utilizando cualquier técnica
de ML.
◦ Segmentar:
▪ Se segmentan las tuplas por los valores que tienen disponibles. Se obtienen modelos
diferentes para cada segmento y luego se combinan.
◦ Modificar la política de calidad de datos y esperar hasta que los datos faltantes estén
disponibles.
• Razones sobre datos faltantes (missing values):
◦ A veces es importante examinar las razones tras datos faltantes y actuar en consecuencia:
▪ Algunos valores faltantes expresan características relevantes:
• P.ej. La falta de teléfono puede representar en muchos casos un deseo de que no se
moleste a la persona en cuestión, o un cambio de domicilio reciente.
▪ Valores no existentes:
• Muchos valores faltantes existen en la realidad, pero otros no. P.ej. El cliente que se
acaba de dar de alta no tiene consumo medio de los últimos 12 meses.
▪ Datos incompletos:
• Si los datos vienen de fuentes diferentes, al combinarlos se suele hacer la unión y no
la intersección de campos, con lo que muchos datos faltantes representan que esas
tuplas vienen de una/s fuente/s diferente/s al resto.
• Transformación del esquema:
◦ Esquema original:
▪ Ventajas:
• Las R.I. (relaciones iniciales (originales)) se mantienen (no hay que reaprenderlas, no
despistan).
▪ Inconvenientes:
• Muchas técnicas no se pueden utilizar.
◦ Tabla universal:
▪ Cualquier esquema relacional se puede convertir (en una correspondencia 1 a 1) a una
tabla universal:
▪ Ventajas:
• Modelos de aprendizaje más simples (proposicionales).
▪ Desventajas:
• Muchísima redundancia (tamaños ingentes). La información del esquema se pierde.
Muchas dependencias funcionales se vuelven a redescubrir! ! Se debe añadir
metainformación.
◦ Desnormalizado tipo estrella o copo de nieve (Datamarts):
▪ Ventajas:
• Se pueden buscar reglas sobre información sumarizada y si resultan factibles se
pueden comprobar con la información detallada. Se utilizan operadores propios: roll-
up, drilldown, slicing and dicing.
▪ Desventajas:
• Orientadas a extraer un tipo de información.
• Intercambio de dimensiones: (filas por columnas):
◦ Ejemplo:
▪ Una tabla de cestas de la compra, donde cada atributo indica si el producto se ha
comprado o no.
X X f(2.2) = ?
X ? X
XX X
▪ Prediccion secuencial:
• 1, 2, 3, 5, 7, 11, 13, 17, 19,...?.
▪ Aprendizaje supervisado:
• 1 3 → 4.
• 3 5 → 8.
• 7 2 → 9.
• 4 2 → ?.
• Técnicas descriptivas:
◦ No se asigna ningún papel predeterminado a las variables.
◦ No se supone la existencia de variables dependientes ni independientes y tampoco se supone
la existencia
◦ De un modelo previo para los datos.
◦ Los modelos se crean automáticamente partiendo del reconocimiento de patrones.
◦ Incluyen:
▪ Clustering y segmentación (que también son técnicas de clasificación en cierto modo).
▪ Asociación y dependencia.
▪ Análisis exploratorio de datos.
▪ Reducción de la dimensión factorial, componentes principales, correspondencias, etc.
◦ Ejemplos descriptivos:
◦ Segmentación (aprendizaje no supervisado):
Regresión
Modelos de elección discreta
Modelización Análisis de la varianza
Predictivas Análisis canónico
Redes neuronales
Discriminante
Clasificación ad hoc
Técnicas de Árboles de decisión
Minería
Clustering
Clasificación post hoc
Segmentación
Descriptivas Asociación
Dependencia
Reducción de la dimensión
Análisis exploratorio
1 n
• covx, y = n Σ (x – x)(y – y)
i i
i=1
1 n 1 n n n 1 n
• covx, y = n Σ (x – x)(y – y)
i i =n Σxy–xΣy–yΣx
i i i i + nxy =n Σ x y – nxy
i i
i=1 i=1 i=1 i=1 i=1
1 n
• E.C.M.= n Σ (y – a – bx )
i i
2
i=1
• a = y – covx, y x ; b = covx, y
vx vx
• El coeficiente de correlacion lineal entre x e y se define como:
◦ r= covx,y
vx vy
• Coeficiente de correlación parcial
• Es la relación entre dos variables cuando se ha eliminado de cada una de ellas el efecto que sobre
ellas tiene una tercera variable:
◦ x, y son las variables objeto del estudio.
◦ z es la variable de control.
◦ Consiste en estudiar las correlaciones y combinarlas:
◦ rXY, rXZ, rYZ
◦ rXZ . Y = rXZ - (rXY) (rYZ)
vx vy
• Técnicas para la modelización
• La clasificación de las técnicas discrimina entre la existencia o no de variables explicativas y
explicadas.
• Técnicas predictivas o métodos explicativos:
◦ Existe una dependencia entre las variables explicadas y sus variables explicativas, que pueda
plasmarse en un modelo.
• Estas técnicas de análisis de la dependencia:
◦ Pueden clasificarse en función de la naturaleza métrica o no métrica de las variables
independientes y dependientes.
VARIABLES INDEPENDIENTES
Métricas No métricas
xβ
i
Pi = F(xi, β) + ui = (2π) -∞ e dt + ui
t^2/2
◦
• El análisis de la varianza simple se utiliza para analizar la relación entre:
◦ Una variable dependiente (o endógena) métrica y
◦ Varias variables independientes (o exógenas) no métricas.
• El objetivo es determinar si diversas muestras proceden de poblaciones con igual media.
• Los valores no métricos de las variables independientes determinarán una serie de grupos en la
variable dependiente.
• El modelo ANOVA mide la significación estadística de las diferencias entre las medias de los
grupos
• Determinados en la variable dependiente por los valores de las variables independientes:
◦ y = F(x1, x2, …, xn)
◦ Donde la variable dependiente y es métrica y las variables independientes son no métricas.
• Se trata por tanto de otro caso particular del modelo de regresión múltiple.
• El análisis de la covarianza simple es una tecnica utilizada para analizar la relación entre una
variable dependiente (o endógena) métrica y varias variables independientes (o exógenas), parte
de las cuales son no métricas, siendo la otra parte métricas (co variables):
◦ y = F(x1, x2, …, xn)
◦ Donde la variable dependiente y es métrica y las variables independientes son algunas
métricas y otras no métricas.
• Es otro caso particular del modelo de regresión múltiple.
• El análisis de la varianza múltiple es una técnica utilizada para analizar la relación entre:
◦ Varias variables dependientes (o endógenas) métricas y
◦ Varias variables independientes (o exógenas) no métricas.
• El objetivo es contrastar si los valores no métricos de las variables independientes determinarán
la igualdad de vectores de medias de una serie de grupos determinados por ellos en las variables
dependientes.
• El modelo MANOVA mide la significación estadística de las diferencias entre los vectores de
medias de los grupos determinados en las variables dependientes por los valores de las variables
independientes.
• La expresión es:
◦ G(y1, y2, …, ym) = F(x1, x2, …, xn)
◦ Donde las variables dependientes son métricas y las variables independientes son no
métricas.
• Es otro caso particular de la regresión múltiple.
• El análisis de la covarianza múltiple se usa para analizar la relación entre:
◦ Varias variables dependientes (o endógenas) métricas y
◦ Varias variables independientes (o exógenas) mezcla de variables métricas y no métricas.
• La expresión es:
◦ G(y1, y2, …, ym) = F(x1, x2, …, xn)
◦ Donde las variables dependientes son métricas y las variables independientes son una parte
métricas y otra parte no métricas.
• En el análisis de la covarianza (simple y multiple):
◦ Las variables métricas independientes (covariables) tienen como objetivo eliminar
determinados efectos que puedan sesgar los resultados incrementando la varianza dentro de
los grupos:
▪ Eliminar, mediante una regresión lineal, la variación experimentada por las variables
dependientes producida por la covariable o covariables de efectos indeseados.
▪ Hacer un análisis ANOVA o MANOVA sobre las variables dependientes ajustadas (residuos
de la regresión anterior).
• La regresión multiple admite la posibilidad de trabajar con variables independientes no métricas
si se emplean variables ficticias para su transformación en métricas:
◦ A cada clase de la variable no métrica se le asigna un valor numérico.
• El modelo de regresión multiple con variables ficticias:
◦ Es similar al análisis de la regresión múltiple.
◦ La diferencia es que las variables independientes pueden ser también no métricas.
• Se usa para analizar la relación entre una variable dependiente (o endógena) métrica y varias
• La regresión multiple tiene como objetivo analizar un modelo que pretende explicar el
comportamiento de una variable (endógena, explicada o dependiente), y, utilizando un conjunto
de variables explicativas (exógenas o independientes), X 1, X2, …, XK.
• El modelo lineal (modelo econométrico) viene dado por:
◦ Y = b0 + b1X1 + b2X2 + … + bkXK + u.
• Los coeficientes (parámetros) b1, b2, …, bK denotan la magnitud del efecto que las variables
explicativas (exógenas o independientes) X1, X2, …, XK tienen sobre la variable explicada
(endógena o dependiente) Y.
• El coeficiente b0 se denomina término constante (o independiente) del modelo.
• El término u se denomina término de error del modelo.
• Si se dispone de un conjunto de t observaciones para c/u de las variables endógena y exógenas,
el modelo se escribe de la forma:
◦ Yt = b0 + b1X1t + b2X2t + … + bkXKt + ut. t=1,2,3,...,T
• La aparición (no necesaria) de un término independiente en el modelo puede interpretarse como
la presencia de una primera variable X0 cuyo valor sea siempre 1.
• Problema fundamental: suponiendo que la relación entre la variable Y y el conjunto de variables
X1, X2, …, XK es como se ha descrito en el modelo, y que se dispone de un conjunto de T
observaciones para c/u de las variables, la endógena y las exógenas, ¿cómo pueden asignarse
valores numéricos a los parámetros b0, b1, b2,…, bK basándonos en la información muestral?:
◦ Estos valores se llamarán estimaciones de los parámetros.
• Una vez encontradas las estimaciones de los parámetros del modelo:
◦ Se podrá hacer predicciones acerca del comportamiento futuro de la variable Y.
• El modelo lineal se formula bajo las siguientes hipótesis:
◦ Las variables X1, X2, …, XK, son deterministas (no son variables aleatorias), ya que su valor es
un valor constante proveniente de una muestra tomada.
◦ La variable u (término de error) es una variable aleatoria con esperanza nula y matriz de
covarianzas constante y diagonal (matriz escalar):
Para todo t, la variable ut tiene media cero y varianza σ no dependiente de t, y además
2
▪
cov(ui,uj)=0 para todo i y para todo j distintos entre sí:
• El hecho de que la varianza de ut sea constante para todo t (que no dependa de t\ se
denomina hipótesis de homocedasticidad.
• El hecho de que cov(ui,uj)=0 para todo i distinto de j se denomina hipótesis de no
autocorrelación.
• La variable y es aleatoria, ya que depende de la variable aleatoria u.
• Se supone la ausencia de errores de especificación:
◦ Se supone que todas las variables x que son relevantes para la explicación de la variable y,
están incluidas en la definición del modelo lineal.
t=1 t=1
∂S T T T T T
• Estas ecuaciones forman un sistema denominado sistema de ecuaciones normales, que puede
resolverse para b0, b1, …, bK mediante cualquier método apropiado para resolver sistemas de
ecuaciones lineales.
• De esta forma se obtiene la estimación del modelo.
• Predicciones
• Una de las finalidades del análisis de los modelos econométricos es hacer predicciones para la
variable dependiente.
• Si se estima el modelo Y=XB y se obtiene el modelo estimado Y =XB:
◦ Se tiene que Y0 = X0B es un estimador lineal insesgado óptimo del pronóstico de Y, para un
valor dado X0 de X.
• Se puede predecir:
◦ La media E(Y0).
◦ El valor puntual Y0.
• Los errores de predicción vendrán cuantificados por las varianzas de los predictores:
◦ Varianza para la predicción en media:
σ X0(X'X) X0'.
2 -1
▪
◦ Intervalo de confianza para la predicción en media al nivel α:
Y0 ± tT-k-1(α/2) σ X0(X'X) X0':
-1
▪
• tT-k-1(α/2) es el valor de la t de student con T-k-1 grados de libere ad en el punto
(α/2).
◦ Varianza para la predicción puntual:
σ (X0(X'X) X0' + 1).
2 -1
▪
◦ Intervalo de confianza para la predicción puntual:
Y0 ± tT-k-i(α/2) σ 1 + X0(X'X) X0':
-1
▪
• tT-k-1(α/2) es el valor de la t de student con T-k-1 grados de libere ad en el punto
(α/2).
• Análisis de residuos
Σ (u t - ut-1)
2
◦ D= t=2
T
Σu t
2
t=1
◦ SC = - T + T
T e'e
▪ l = - 2(1 + log(2π) + log T )
▪ K es el número de variables independientes del modelo (sin incluir la constante).
▪ T es el tamaño muestral o número de observaciones de que se dispone para la estimación
del modelo.
▪ e es el error del modelo.
• Es posible seleccionar modelos lineales ajustados de acuerdo a su capacidad predictiva.
• Se dispone, entro otros, de los siguientes estadísticos (siendo n el horizonte de predicción: límite
práctico y válido para la predicción):
◦ Raíz del Error Cuadrático Medio (Root Mean Squared Error):
n
Σ (Y - Y )
i i
2
◦ RECM = i=1°
n
◦ Error absoluto medio (mean absolute error):
n
Σ |Yi - Yi|
◦ EAM = i=1°
n
◦ Proporcion del sesgo (BIAS proportion):
(Y - Y)
2
◦ PS = n
Σ (Yi - Yi) /n
2
i=1°
◦ PS = n
Σ (Yi - Yi) /n
2
i=1°
i=1°
• Mientras más próximos estén a cero los valores de los dos primeros estadísticos:
◦ Mejor será la capacidad predictiva del modelo.
• Las tres proporciones varían entre 0 y 1:
◦ Es conveniente que sean pequeñas.
• Ejemplo de MLG Multivariante
◦ A var(β) = [l(β )] =
.
k -1
Σ G(X ' β) + (1 - G(X ' β))
i=1
i i
1+ Σ exp(Xβ )
i=1
h
1+ Σ exp(Xβ )
i=1
h
◦ P(Y = 0 | X) = 1 = p0(Xβ)
n
1+ Σ exp(Xβ )
i=1
h
• Es util cuando se desea construir un modelo predictivo para pronosticar el grupo al que pertenece
una observación a partir de determinadas características observadas que delimitan su perfil.
• Permite asignar o clasificar nuevos individuos u observaciones dentro de grupos previamente
definidos:
◦ Por ello es una técnica de clasificación ad hoc.
• Se lo conoce como análisis de la clasificación:
◦ Su objetivo fundamental es:
▪ Producir una regla o un esquema de clasificación.
▪ Debe predecir la población a la que es más probable que tenga que pertenecer una nueva
observación o individuo.
• El modelo predictivo define la relación entre:
◦ Una variable dependiente (o endógena) no métrica (categórica), y.
◦ Varias variables independientes (o exógenas) métricas.
• La expresión es:
◦ y = F(x1,x2, ….,xn).
• Las categorías de la variable dependiente definen los posibles grupos de pertenencia de las
observaciones o individuos.
• Las variables independientes definen el perfil conocido de cada observación.
• El objetivo esencial:
◦ Es utilizar los valores conocidos de las variables independientes medidas sobre un individuo u
observación (perfil).
◦ Para predecir con qué categoría de la variable dependiente se corresponden para clasificar al
individuo en la categoría adecuada.
• Las dos grandes finalidades son:
◦ La descripción de diferencias entre grupos, y.
◦ La predicción de pertenencia a grupos.
• La interpretación de las diferencias entre los grupos responde al objetivo de determinar:
◦ En qué medida un conjunto de características observadas en los individuos permite extraer
dimensiones que diferencian a los grupos.
◦ Cuáles de estas características son las que en mayor medida contribuyen a tales
dimensiones, es decir, cuáles presentan el mayor poder de discriminación.
• Las características usadas para diferenciar entre los grupos reciben el nombre de variables
discriminantes.
• Al análisis para valorar el grado en que las variables independientes contribuyen a la
diferenciación entre los grupos se le denomina análisis discriminante descriptivo.
• La predicción de pertenencia a los grupos requiere una o más ecuaciones matemáticas,
denominadas funciones discriminantes:
◦ Deben permitir la clasificación de nuevos casos a partir de la información que poseemos
sobre ellos.
◦ Combinan una serie de características o variables de tal modo que su aplicación a un caso
nos permite identificar el grupo al que más se parece:
▪ En este sentido se puede hablar del carácter predictivo del análisis discriminante.
• Hipótesis en el modelo discriminante
• El modelo del análisis discriminante requiere de una comprobación de determinados supuestos.
• La aplicación del análisis discriminante requiere que se cuente con:
◦ Un conjunto de variables discriminantes (características conocidas de los individuos).
◦ Una variable nominal que define dos o más grupos (cada modalidad de la variable nominal se
corresponde con un grupo diferente).
• Los datos deben corresponder a individuos o casos clasificados en dos o más grupos mutuamente
excluyentes:
◦ Cada caso corresponde a un grupo y sólo a uno.
• Las variables discriminantes han de estar medidas en una escala de intervalo o de razón:
◦ Permitiría el cálculo de medias y varianzas y la utilización de éstas en ecuaciones
matemáticas.
• Teóricamente, no existen límites para el número de variables discriminantes:
◦ Salvo la restricción de que no debe ser nunca superior al número de casos en el grupo más
pequeño.
◦ Es conveniente contar al menos con 20 sujetos por cada variable discriminante si queremos
que las interpretaciones y conclusiones obtenidas sean correctas.
• La aplicación del análisis discriminante se apoya en una serie de supuestos básicos:
◦ Normalidad multivariante.
◦ Homogeneidad de matrices de varianza-covarianza (homoscedasticidad).
◦ Linealidad y ausencia de multicolinealidad.
• Estimación del modelo discriminante
• Una vez comprobado el cumplimiento de los supuestos subyacentes al modelo matemático, se
persigue:
◦ Obtener una serie de funciones lineales a partir de las variables independientes que
permitan:
▪ Interpretar las diferencias entre los grupos
▪ Clasificar a los individuos en alguna de las subpoblaciones definidas por la variable
dependiente.
◦ Estas funciones lineales:
▪ Se denominan funciones discriminantes.
▪ Son combinaciones lineales de las variables discriminantes
• Con G grupos (G > 2) en análisis discriminante múltiple, el número máximo de funciones o ejes
discriminantes que se pueden obtener viene dado por:
◦ Min (G-1, k).
◦ Pueden obtenerse hasta G-1 ejes discriminantes:
▪ Si el número de variables explicativas k es mayor o igual que g-1:
Objetivos de la investigación
Clasificación de observaciones en grupos predicción de pertenencia de individuos a grupos examen de las
diferencias entre grupos identificación de dimensiones
Diseño de la investigación
Selección de variable dependiente e independientes tamaño muestral, muestra de análisis y reserva
Asunciones
Normalidad de variables independientes y linealidad de relaciones ausencia de multicolinealidad entre
variables independientes matrices de igual dispersión para poblaciones de grupos
Método discriminante
Estimación de funciones discriminantes (simultánea o paso a paso) significación estadística de las
funciones discriminantes significación de la precisión de la predicción
Validación de resultados
Muestras partidas o validación cruzada diferencias de grupos perfiladas
k=1
• La distancia euclídea al cuadrado entre dos individuos se define como la suma de los cuadrados
de las diferencias de todas las coordenadas de los dos puntos:
◦ La distancia euclídea se define como la raíz cuadrada positiva de la distancia anterior.
• La distancia de Minkowski es una distancia genérica que da lugar a otras distancias en casos
particulares y se define como la raíz q-éslma de la suma de las potencias pésimas de las
diferencias, en valor absoluto, de las coordenadas de los dos puntos considerados.
• La distancia City – Block o distancia de Manhattan:
◦ Es un caso particular de la distancia o medida de Minkowski cuando q = 1.
◦ Es la suma de las diferencias, en valor absoluto, de todas las coordenadas de los dos
individuos cuya distancia se calcula.
◦ Es cero para la similitud perfecta y aumenta a medida que los objetos son más disimilares.
• La distancia de Chebichev:
◦ Se define como el caso límite de la medida de Minkowski para q → ∞.
◦ Es el máximo de las diferencias absolutas de los valores de todas las coordenadas.
• La distancia Canberra es una modificación de la distancia Manhattan que es sensible a
proporciones y no sólo a valores absolutos.
• Los coeficientes de asociación suelen utilizarse para el caso de variables cualitativas, y en general
para el caso de datos binarios (o dicotómicos):
◦ Son aquellos que sólo pueden presentar dos opciones:
▪ Blanco - negro, si - no, hombre - mujer, verdadero -falso, etc.
◦ Existen diferentes medidas de proximidad o similitud, partiendo de una tabla de frecuencias
2x2 en la que se representa el número de elementos de la población en los que se constata la
presencia o ausencia del carácter (variable cualitativa) en estudio.
Variable 1
Variable 2 Presencia Ausencia
Presencia a b
Ausencia c d
Jaccard – Sneath Sj = a = a
(a + u) (a + b + c)
Σ (x
k=1
ij - Xi) (xjk - Xj)
Coeficiente de correlación rij =
n n
(Σ x
k=1
ij - xjk )
Distancia del coseno cos αij =
n n
(Σ (x ) Σ (x ) )
k=1
ik
2
k=1
ik
2 1/2
• Entre las medidas de similaridad para probabilidades condicionales destacan las siguientes:
• Entre las medidas de predicción se encuentran la Dxy de anderberg, la Yxy de Yule y la Qxv de
Yule:
Dxy = max(a,b)+max(c,d)+max(a,c)+max(b,d)+max(a+c,b+d)+max(a+b,c+d)
2(a+b+c+d)
Yxy = ad - bc Q xy = ad - bc
ad + bc ad + bc
2
Euclídea binaria: EBxy = b+c Diferencia de forma: DFxy = (a+b+c+d)(b+c)-(b-c)
2
(a+b+c+d)
2 2
Euclídea binaria : EB xy = b + c Varianza disimilar: Vxy = b+c
4(a+b+c+d)
2
Dispersión: Dxy = ad – bc Diferencia de tamaño: Txy = (b-c)
2 2
(a+b+c+d) (a+b+c+d)
1 0
D = [dik]ik= 2 9 0
3 3 7 0
4 6 5 9 0
5 11 10 2 8 0
(35) 1 2 4
(35) 0
D = [dik]ik= 1 3 0
2 7 9 0
4 8 6 5 0
◦ Es el criterio de varianza.
◦ Lleva a seleccionar una configuración cuando la suma de las varianzas dentro de cada grupo
sea mínima:
▪ Varianza residual mínima.
• Hay diversos algoritmos de clasificación no jerárquica:
◦ Intentan minimizar progresivamente la varianza.
◦ Difieren en:
▪ La elección de los clusters provisionales que necesita el arranque del proceso.
▪ Método de asignación de individuos a los grupos.
◦ Los más utilizados son:
▪ Algoritmo de la H-medias.
▪ Algoritmo de las K-medias.
• El algoritmo de las H-medias:
◦ Parte de una primera configuración arbitraria de grupos con su correspondiente media.
◦ Se elige un primer individuo de arranque de cada grupo.
◦ Se asigna posteriormente cada caso al grupo cuya media es más cercana.
◦ Se calcula de nuevo las medias o centroides y se las toma en lugar de los primeros individuos
como una mejor aproximación de los mismos.
◦ Se repite el proceso mientras la varianza residual vaya disminuyendo.
◦ La partición de arranque define el n° clusters:
▪ Puede disminuir si ningún caso es asignado a alguno de ellos.
• El algoritmo de las K-medias:
◦ Es el más importante desde los puntos de vista conceptual y práctico.
◦ Parte también de unas medias arbitrarias.
◦ Contrasta el efecto que sobre la varianza residual tiene la asignación de c/u de los casos a c/u
de los grupos.
◦ El valor mínimo de varianza determina una configuración de nuevos grupos con sus
respectivas medias.
◦ Se asignan otra vez todos los casos a estos nuevos centroides.
◦ El proceso que se repite:
▪ Hasta que ninguna transferencia puede ya disminuir la varianza residual, o.
▪ Se alcance otro criterio de parada:
• Un número limitado de pasos de iteración.
• Que la diferencia obtenida entre los centroides de dos pasos consecutivos sea menor
que un valor prefijado.
• El procedimiento configura los grupos maximizando la distancia entre sus centros de gravedad:
◦ Como la varianza total es fija:
▪ Minimizar la residual hace máxima la factorial o intergrupos.
◦ Minimizar la varianza residual es equivalente a conseguir que sea mínima la suma de
distancias al cuadrado desde los casos a la media del cluster al que van a ser asignados.
◦ El método utiliza la distancia euclídea al cuadrado.
• Proporciona una solución final única para el n° de clusters elegido:
◦ Se llegará con menor número de iteraciones cuanto más cerca estén las “medias” de
arranque de las que van a ser finalmente obtenidas.
◦ Se seleccionan estos primeros valores, tantos como grupos se pretenda formar, entre los
puntos más separados de la nube.
• Los clusters no jerárquicos están indicados para:
◦ Grandes tablas de datos.
◦ Detección de casos atípicos:
▪ Si se elige previamente un n° elevado de grupos, superior al deseado, aquellos que
contengan muy pocos individuos servirían para detectar casos extremos que podrían
distorsionar la configuración.
• Un problema importante es la elección de un n° adecuado de clusters.
• Se usan criterios tanto matemáticos como de interpretabilidad.
• Entre los criterios matemáticos se han definido numerosos indicadores de adecuación:
◦ Criterio cúbico de clusters.
◦ Pseudo F.
• El uso inteligente de los criterios matemáticos, combinado con la interpret abilid ad práctica de
los grupos:
◦ Constituye el arte de la decisión en la clasificación multivariate de datos.
• Se supone que n es el n° de sujetos a clasificar formando k grupos, respecto a n variables X 1,...,
X n.
• Sean W, B y T las matrices de dispersión dentro grupos, entre grupos y total respectivamente:
◦ T = B + W.
◦ T no depende de la forma en que han sido agrupados los sujetos.
◦ Un criterio razonable de clasificación consiste en:
▪ Construir grupos.
▪ Lograr que B sea máxima o W sea mínima, siguiendo algún criterio apropiado.
• Algunos de estos criterios apropiados son:
A) Minimizar la traza(W)
B) Minimizar determinante(W)
C) Minimizar det(W)/det(T)
D) Maximizar traza(W B)
-1
K Ni
E) Minimizar Σ Σ(X
i=1 h=1
ih – Xi)' Si (Xih – Xi)
-1
• Se supone que se desea conocer qué pasajeros del titanic tuvieron más probabilidades de
sobrevivir a su hundimiento, y qué características estuvieron asociadas a la supervivencia al
naufragio.
• La variable de interés (vd) es el grado de supervivencia.
• Se podría entonces dividir a los pasajeros en grupos de edad, sexo y clase en la que viajaban y
observar la proporción de supervivientes de cada grupo.
• Un procedimiento arborescente selecciona automáticamente los grupos homogéneos con la mayor
diferencia en proporción de supervivientes entre ellos; en este caso, el sexo (hombres y
mujeres).
• El siguiente paso es subdividir cada uno de los grupos en función de otra característica,
resultando que los hombres son divididos en adultos y niños, mientras que las mujeres se dividen
en grupos basados en la clase en la que viajan en el barco.
• Utilizar diferentes predictores en cada nivel del proceso de división supone una forma sencilla y
elegante de manejar interacciones que a menudo complican en exceso los modelos lineales
tradicionales. Cuando se ha completado el proceso de subdivisión el resultado es un conjunto de
reglas que pueden visualizarse fácilmente mediante un árbol.
• Si un pasajero del titanic es hombre y es adulto, entonces tiene una probabilidad de sobrevivir
del 20 por ciento.
• La proporción de supervivencia en c/u de las subdivisiones puede utilizarse con fines predictivos
para vaticinar el grado de supervivencia de los miembros de ese grupo.
• Ejemplo:
◦ Algoritmo divide y vencerás:
▪ 1. Se crea un nodo raíz con s:= todos los ejemplos.
▪ 2. Si todos los elementos de s son de la misma clase, el subárbol se cierra. Solución
encontrada.
▪ 3. Se elige una condición de partición siguiendo un criterio de partición (split criterion).
▪ 4. El problema (y s) queda subdivido en dos subárboles (los que cumplen la condición y
los que no) y se vuelve a 2 para cada uno de los dos subárboles.
• Representación lógica:
◦ (outlook=sunny and humidity=normal) or (outlook=overcast) or (outlook=rain and
wind=weak).
◦ Ej.: La instancia (outlook = sunny, temperature = cool, humidity = high, wind = strong) es
no.
• Caracteristicas de los arboles de decisión
• Las características más importantes son:
◦ La especificación de los criterios para minimizar los costes.
◦ La selección del método de división.
◦ La elección del tramo de árbol adecuado o problema del sobreajuste.
• En cuanto a la especificación de los criterios para minimizar los costes, el objetivo es clasificar o
predecir con el mínimo coste.
• Generalmente los costes hacen referencia a la proporción de casos mal clasificados.
• Pueden influir también en los costes finales de una clasificación:
◦ Las probabilidades a priori.
◦ Los costes de una clasificación errónea.
• Las probabilidades a priori o ponderaciones de clase:
◦ Especifican la probabilidad, sin tener ningún conocimiento previo de los valores de los
predictores, de que un caso caiga en c/u de las clases de la variable dependiente.
◦ Ej.: En un estudio educacional, se observa que en general en secundaria existen muchos
menos abandonos escolares que chicos que siguen estudiando:
▪ La probabilidad a priori de que un estudiante abandone la escuela es menor que la
probabilidad de que permanezca en ella.
• Las probabilidades a priori constituyen elementos centrales de cualquier árbol de decisión.
• Es posible utilizar ponderaciones estimadas según las proporciones de cada clase.
• Otra posibilidad es especificar probabilidades iguales para cada clase, tratando a todas ellas como
si fuesen del mismo tamaño.
• Otro factor que influye en el coste de una clasificación son los costes de una clasificación errónea.
• La mayor parte de los árboles de decisión permiten especificar también costes variables de una
clasificación errónea.
• Reglas de parada:
◦ Una primera estrategia consiste en detener la generación de nuevas divisiones cuando estas
supongan una mejora muy pequeña de la predicción.
• Ejemplo:
◦ Si con diez divisiones se clasifican correctamente al 90 por ciento de los sujetos y con 11
divisiones el porcentaje sube al 90,1 por ciento, no tiene mucho sentido añadir más al árbol.
• Hay muchas reglas de parada directa para detener la construcción del árbol.
• Las principales son las siguientes:
◦ Extensión máxima del árbol, es decir, n° de niveles máximos permitidos por debajo del nodo
raíz.
◦ Mínimo n° de casos en un nodo, especifica que los nodos no sobrepasen un número
determinado de casos.
◦ Mínima fracción de objetos, que consiste en que los nodos no contengan más casos que una
fracción determinada del tamaño de una o más clases.
• La regla de parada la establece a priori el propio investigador, en función de investigaciones
pasadas, análisis previos, o incluso en función de su propia experiencia e intuición.
• Para determinar si el tamaño de nuestro árbol es el adecuado se debe evaluar, una vez detenido
el proceso de división, su calidad predictiva en muestras distintas a las utilizadas para su cálculo.
• Las principales formas de validación cruzada de la calidad predictiva de un árbol son:
◦ Validación cruzada en dos mitades:
▪ Consiste en dividir los datos disponibles en dos partes, la muestra de estimación y la
muestra de validación.
▪ Desarrollar un árbol a partir de la muestra de estimación.
▪ Utilizarlo para predecir la clasificación de la muestra de validación.
◦ Validación cruzada en v partes:
▪ De la muestra disponible se extrae aleatoriamente v submuestras.
▪ Se calculan v árboles de clasificación, cada vez dejando fuera una de las v submuestras
para validar el análisis.
▪ Cada submuestra se utiliza v - 1 veces para obtener el árbol y una sola vez para
validarlo:
• Opción sumamente útil con muestras pequeñas.
◦ Validación cruzada global:
▪ Se replica el análisis completo un n° determinado de veces.
▪ Se aparta una fracción de los casos (casos holdout; para validar el árbol seleccionado.
▪ Resulta especialmente útil en combinación con las técnicas automáticas de selección de
arboles:
• Enlaza con la segunda de las estrategias para evitar el sobreajuste: la PODA.
• PODA
• Breiman, friedman, losen y stone (1984) llegaron a la conclusión de que resulta imposible
especificar una regla que sea totalmente fiable.
• Existe siempre el riesgo de no descubrir estructuras relevantes en los datos debido a una
finalización prematura del análisis.
• Sugieren un enfoque alternativo en dos fases:
◦ Primera fase: se desarrolla un enorme árbol que contenga cientos o incluso miles de nodos.
◦ Segunda fase: el árbol es podado, eliminándose las ramas innecesarias hasta dar con el
tamaño adecuado del árbol.
• Para calcular los costes de validación se utiliza una función que penaliza la progresiva complejidad
del árbol a medida que éste va teniendo más ramas.
• Esta función entra en funcionamiento cuando se alcanza un valor crítico que sobrepasa los costes
del proceso de división (cada vez menores).
• En ese momento, los costes dejan de descender y comienzan a ascender ligeramente, y es
alrededor de ese punto de inflexión donde se localiza el tamaño idóneo del árbol.
• Como es común que existan varios árboles con costes vc (validación cruzada) cerca del mínimo,
se puede utilizar la regla 1et:
◦ Seleccionar el árbol de menor complejidad de entre todos los árboles que no superen el
mínimo coste vc más 1 medida de su error típico.
◦ Otros métodos de poda son:
▪ Desvianza-complejidad, error reducido y poda pesimista.
Health 1
NeedNeed -0.7378 1
• Coeficientes de regresion:
◦ Indica que un incremento de 1 en el factor Health aumenta la probabilidad de que no
aparezca el paciente en un 64.34%.
◦ Independent variable coefficient
◦ Health .6434
◦ Need .0445
◦ Transportation -.2391
◦ Child care -.0599
◦ Sick time -.7584
◦ Satisfaction .3537
◦ Ease -.0786
• Métodos descriptivos: Reglas de Asociación y Dependencia:
◦ La terminología no es muy coherente en este campo.
◦ Fayyad, p.ej. Suele llamar asociaciones a todo y regla de asociación a las dependencias.
◦ Asociaciones:
▪ Se buscan asociaciones de la siguiente forma:
• (X1 = a) (X4 = b).
▪ De los n casos de la tabla, que las dos comparaciones sean verdaderas o falsas será
cierto en RC casos.
▪ El parámetro TC (confidence) es:
• TC = Certeza de la regla = RC/n.
▪ Si consideramos valores nulos, tenemos también un número de casos en los que se aplica
satisfactoriamente (diferente de TC) y denominado TS.
• Dependencias de valor:
◦ Se buscan dependencias de la siguiente forma (if ante then cons):
1 x x x
2 x x x
3 x x x x
4 x x
S1 = {{1}. {2}, {3}, {4}, {5}} S’1:support = {{1}:2, {2}:3, {3}:3, {5}:3}
S2 = {{1,2}, {1,3}, {1,5}, {2,3}, {2,5}, {3,5}} S’2:support = {{1,3}:2, {2,3}:2, {2,5}:3, {3,5}:2}
S3 = {{1,2,3}, {1,2,5}, {1,3,5}, {2,3,5}} S’3:support = {{2,3,5}:2}
Customer sequence
Customer Customer sequences
John (Beer) (Brandy)
Frank (Juice, Coke) (Beer) (Wine, Water, Cider)
Mitchell (Beer, Gin, Cider)
Mary (Beer) (Wine, Cider) (Brandy)
Robin (Brandy)
Mining results
• Definición
• Es un conjunto de elementos de procesamiento de la información altamente interconectados, que
son capaces de aprender con la información que se les alimenta.
• Puede aplicarse a gran número de problemas que pueden ir desde problemas complejos reales a
modelos teóricos sofisticados, como por ej.:
◦ Reconocimiento de imágenes.
◦ Reconocimiento de voz.
◦ Análisis y filtrado de señales.
◦ Clasificación.
◦ Discriminación.
◦ Análisis financiero.
◦ Predicción dinámica, etc.
• Las redes neuronales:
◦ Tratan de emular el sistema nervioso.
◦ Son capaces de reproducir algunas de las tareas que desarrolla el cerebro humano.
◦ Reflejan algunas características fundamentales de comportamiento del cerebro.
• Intentan modelizar:
◦ Una de las estructuras fisiológicas de soporte del cerebro, la neurona.
◦ Los grupos estructurados e interconectados de varias de ellas, conocidos como redes de
neuronas.
• Construyen sistemas que presentan un cierto grado de inteligencia.
• Los sistemas neuronales artificiales tienen limitaciones y sólo poseen un parecido superficial con
sus contrapartidas biológicas.
• Las redes neuronales, en relación con el procesamiento de información, heredan tres
características básicas de las redes de neuronas biológicas:
◦ Paralelismo masivo.
◦ Respuesta no lineal de las neuronas frente a las entradas recibidas.
◦ Procesamiento de información a través de múltiples capas de neuronas.
• Una de sus principales propiedades es su capacidad de lm aprender y generalizar a partir de
ejemplos reales:
◦ La red aprende a reconocer la relación que existe entre:
◦ y'j = Σw
i=1
i,j .xi
• Multilayer perceptron:
j=1
▪ Donde:
▪ f(x, W) es la salida de la red.
▪ El vector x = (1, x1, x2, …, xr) ' representa las entradas de la red.
γj = (γj0, γj1, …, γji, …, γjr)' son los pesos de las neuronas de la capa de entrada a
r+1
▪
las de la intermedia u oculta.
▪ ßj , j = 0,..., q, representa la fuerza de conexión de las unidades ocultas a las de salida:
• q es el número de unidades intermedias, es decir, el número de nodos de la capa
oculta.
▪ F: → la función de activación de la unidad de salida.
▪ G: → es la función de activación de las neuronas intermedias.
▪ W es un vector que incluye todos los pesos de la red:
• γj
• ßj
• Función f(x, W).
•
• Se emplean como funciones de activación funciones de umbral:
◦ El efecto es que las unidades se activan bruscamente, esto es, o no se activan, o se activan
de golpe.
◦ Son adecuadas para tareas de clasificación y reconocimiento.
• Se usan también funciones de activación que permiten que las neuronas se activen gradualmente
a medida que el nivel de actividad de sus entradas aumenta:
◦ Una función es la sigmoidal o logística:
▪ g(a) = 1/(1 +exp(-a)):
▪ Produce una respuesta sigmoidal alisada.
• Si en la expresion de f(x, W) se considera que a=x'yj, se tiene que g(x'yj) se corresponde con el
modelo Logit Binario.
• En general, las funciones f y g pueden adoptar cualquier forma en la expresión de f(x, W).
• Funcion de salida y funciones de transferencia o activación
• Es habitual considerar:
• Que la función de activación de las neuronas de salida y de las intermedias es idéntica:
◦ F(a) = G(a)
◦ Que se corresponde con la función sigmoidal.
• Que F(a) = a (función identidad) y que g(a) es la función logística o sigmoidal:
◦ Sólo existe función de activación (la sigmoidal) en las unidades ocultas.
◦ Esta última hipótesis simplifica la notación y es la más usada.
• Generalmente se emplea la función sigmoidal:
◦ Sus propiedades permiten emplear algoritmos de aprendizaje como el de retropropagación de
errores.
• También es posible demostrar que una rna con una capa oculta y función de activación sigmoidal
es capaz de aproximar cualquier función medible.
• Suponiendo que sólo existe función de activación en las neuronas intermedias y que ésta se
corresponde con la sigmoidal:
q
▪ f(x, W) = F(ß0 + Σß
j=1
J G(x'γj))
• Otra posibilidad muy usada en aplicaciones econométricas es considerar una red neuronal:
◦ Alimentada hacia delante.
◦ Con r entradas.
◦ Con 1 capa oculta con q elementos de proceso.
◦ Con 1 unidad de salida.
◦ Con conexiones directas entre la capa de entrada y la de salida.
◦ La salida de la red se obtiene mediante la siguiente expresión:
q
▪ f(x, W) = x'α + ß0 + Σß
j=1
J G(x'γj))
• Después de diseñar una red neuronal se pretende que para ciertas entradas, o patrones ejemplo
suministrados a la red:
◦ La red neuronal genere una salida deseada.
• Para ello se requiere:
◦ Que la topología de la red (entendida como la estructura de la red) sea adecuada.
◦ Que aprenda a proporcionar soluciones correctas:
▪ Es necesario un proceso de aprendizaje o entrenamiento.
• El aprendizaje puede entenderse como:
◦ Un procedimiento de prueba y error.
◦ Permite la estimación estadística de los parámetros del modelo de red neuronal empleado.
• Hay tres tipos basicos de aprendizaje.
• Cuando el entrenador proporciona a la red la salida deseada, se dice que el aprendizaje es
supervisado.
• En caso contrario nos encontramos ante un aprendizaje no supervisado.
• Un tipo intermedio de aprendizaje es el reforzado o híbrido:
◦ El entrenador sólo proporciona a la red una indicación de si la respuesta a una entrada dada
es buena o mala.
• Las redes neuronales con aprendizaje no supervisado son aquellas que entrenan sin necesidad de
un supervisor o entrenador externo que proporcione a la red la salida deseada:
◦ Son capaces de organizar sus parámetros internamente adaptándose al entorno del mejor
modo posible.
• La red neuronal:
◦ Una vez se le presentan las entradas:
▪ Es capaz de determinar por sí sola:
• Las características, correlaciones, regularidades o categorías de las entradas.
• Proporcionar una salida codificada:
◦ Estas redes poseen propiedades de autoorganización.
• Este tipo de aprendizaje sólo se utiliza cuando existe algún grado de redundancia en los patrones
de entrada que se le presentan a la red:
◦ En caso contrario, la red es incapaz de detectar las pautas de comportamiento y
características de los datos que se le ofrecen.
• La estructura de la red debe ser la adecuada para el tipo de datos de entrada que se le
presentan.
• Los sistemas neuronales con aprendizaje no supervisado se caracterizan por poseer arquitecturas
simples.
• La mayoría de las red neuronal son alimentadas hacia adelante, o feed-forward con una sola capa
oculta.
• Los modelos más característicos que entrenan mediante aprendizaje no supervisado son las redes
de kohonen y de grossberg.
• Suelen utilizarse para la clasificación.
• Las redes de kohonen suelen utilizarse:
◦ Cuando uno de los objetivos del análisis sea la visualización sencilla e intuitiva de los
conglomerados.
◦ Cuando se desconoce su forma.
◦ Cuando existan casos atípicos o errores en los datos.
• Las red neuronal con aprendizaje supervisado:
◦ Se asocian al perceptrón multicapa (multilayer perceptron: mlp) y la función de base radial
RBF.
◦ Presentan un patrón de salida o variable dependiente que les permite contrastar y corregir los
datos.
• Las redes neuronales con patrón de salida se utilizan para la clasificación y para la predicción:
◦ Se pueden segmentar mercados, posicionar productos, realizar previsiones de demanda,
evaluaciones de expedientes de crédito o de análisis del valor de acciones en bolsa y muchas
aplicaciones más.
• El modelo de red neuronal perceptron multicapa:
◦ Se fundamenta en el aprendizaje por retropropagación del error: back-propagation.
◦ Utiliza habitualmente el:
▪ Algoritmo por retropropagación.
▪ Algoritmo del gradiente descendente: Conjugate gradient descent.
▪ Algoritmo de Levenberg-Marquardt.
• En el perceptron multicapa todas las capas tienen la misma estructura (lineal).
• En la función de base radial (fbr) la capa intermedia tiene precisamente una estructura radial.
• La función de base radial:
◦ Es una función supervisada con patrón de salidaque realiza clasificaciones (y o previsiones) a
partir de elipses e hiperelipses que parten el espacio de entrada de datos.
◦ Presenta ciertas ventajas con respecto a las red neuronal multicapas:
▪ Se puede modelizar usando nada más que una capa intermedia en vez de varias.
▪ Su algoritmo es más rápido.
▪ No se queda nunca en una solución local.
• En ocasiones, aunque sea posible aplicar el aprendizaje supervisado, los métodos de aprendizaje
no supervisado pueden resultar de gran utilidad, e incluso ofrecer mejores resultados.
• Ej.: El algoritmo de retropropagación de errores (back-propagation) en redes multicapa es muy
lento:
◦ El valor que adopta cada peso depende de los valores que toma en las demás capas.
◦ Para evitar este problema podría emplearse:
▪ Un método de aprendizaje no supervisado.
▪ Un sistema híbrido, que permita a algunas capas autoorganizarse antes de que sus
salidas pasen a la red supervisada.
• Puede ser aconsejable efectuar entrenamiento no supervisado a redes previamente entrenadas
mediante mecanismos de aprendizaje supervisado:
◦ Para que la red se adapte paulatinamente a los posibles cambios del entorno.
• El aprendizaje reforzado o hibrido es intermedio
• Entre el supervisado y el no supervisado.
• Existe un profesor o supervisor externo.
• El “entrenador” no proporciona a la red las salidas deseadas:
◦ Su comportamiento se evalúa de manera global.
◦ Sólo es posible decidir e indicar a la red si su respuesta es buena o mala y en qué grado se
comporta bien.
• El fundamento del aprendizaje reforzado es que se deben reforzar aquellas acciones que generan
una mejora en el comportamiento y respuesta de la red neuronal.
• Como no se proporcionan salidas deseadas al sistema, es imposible computar la fracción de error
que
• Comete c/u de las unidades de salida:
• Para la creacion y aplicacion de una red neuronal a un problema concreto se deben distinguir los
siguientes pasos:
• Conceptualización del modelo para el estudio del problema concreto:
◦ En este modelo se debe señalar las entradas, las salidas y la información de que se dispone.
• Adecuación de la información de que se dispone a la estructura de la red a crear:
◦ Se constituirán:
▪ Los patrones de aprendizaje:
• Parte de la información que va a ser utilizada para el entrenamiento o aprendizaje de
la red.
▪ Los patrones de validación:
• Parte de la información que va a ser utilizada como validación de la red.
• Fase de aprendizaje:
◦ Se le va presentando a la red los patrones adecuados.
◦ La red va proporcionando una salida.
◦ Este proceso se repite un cierto n° de etapas.
◦ Estas salidas se comparan con las salidas esperadas.
◦ Los algoritmos de aprendizaje intentan minimizar el error que hay entre la salida
proporcionada por la red y la salida esperada.
• Fase de validación:
◦ Se presentan a la red entrenada el conjunto de patrones de validación.
◦ Se ve el error cometido por la red en este conjunto.
◦ Este error es una medida de la bondad de la red.
• Fase de generalización:
◦ Si se ha conseguido una red adecuada se procede a utilizar la red como modelo predictor.
◦ Aportándole una nueva entrada, la red la procesará y dará una salida.
• Ejemplo:
• Se considera que una entidad bancaria quiere construir un modelo para la concesión de créditos
personales para la compra de un automóvil.
• El conjunto de información está constituido por un fichero de 5.000 clientes anteriores en el que
consta para el cliente las siguientes variables: sexo, estado civil, salario, bienes, cuenta corriente
etc., Y si ha hecho frente a los pagos regularmente o no.
• El modelo tendría:
◦ Una capa de entrada con tantos nodos como variables aparecen en el fichero.
◦ Una o varias capas intermedias.
◦ Una capa de salida con un nodo:
▪ Aparece una salida cero o uno según haya hecho frente a los pagos regularmente o no.
• Se divide el fichero en una parte que será el conjunto de aprendizaje y la otra el conjunto de
validación.
• A la red se le da como entrada un conjunto de aprendizaje, la red se entrenará.
• Se valida el modelo con el conjunto de validación.
• Cuando llegue el nuevo cliente:
▪ netj = Σwo
i=1
ij i
▪ netk = Σw
j=1
jk oj
◦ u= Σ wx
i=1
j j es el potencial sináptico.
◦ θ es el umbral.
1 si u ≥ θ
◦ y = -1 si u < θ
• La primera cuestion es como determinar los pesos sinápticos de manera que el perceptrón
consiga una clasificación correcta de cada uno de los patrones de entrada.
Se supone que se tiene p patrones de entrada, representados por (x 1 , x2 ,..., xn ) , r = 1, 2,...,p.
r r r
•
• Se conoce la clase a la que pertenece c/u de ellos (los vectores o patrones de entrenamiento.
Ej.: (x1 , x2 ,..., xn ) puede representar un conjunto de n síntomas del paciente r que puede (y= 1),
r r r
•
o no (y=-1), presentar una cierta enfermedad.
• Es posible modificar los pesos sinápticos a través de un procedimiento iterativo, el proceso de
aprendizaje de la red:
◦ Después de un n° finito de iteraciones debe clasificar correctamente los p patrones de
entrada, siempre que sea posible:
▪ Las clases C1 y C2 deben ser separables linealmente.
▪ Dos clases se dice que son linealmente separables si existe un conjunto de pesos, w 1, w2 ,
…, wn tal que:
n
• Σ wx
i=1
j j ≥ θ;(x1, x2,..., xn) C1
• Σ wx
i=1
j j < θ;(x1, x2,..., xn) C2
• El proceso de aprendizaje consiste en observar los valores de salida para c/u de los patrones de
entrenamiento y comprobar si es correcta la clasificación realizada por el perceptrón.
• En caso de clasificación incorrecta se modifican los pesos.
• Se repite el proceso, patron a patron, hasta conseguir:
◦ Clasificar correctamente a todos los patrones de entrenamiento, o.
◦ Que el n° de clasificaciones incorrectas se considere adecuado. Concretamente:
Si en la iteración k se ha introducido el patrón (x1 , x2 ,..., xn ) que pertenece, por ej., A la
r r r
▪
clase C1 y que ahora se representa por (x1(k), x2(k),..., xn(k)), entonces:
• Si y = +1 la clasificación es correcta y no se modifican los pesos, es decir, w j(k+1) =
wj(k), j = 1,2,..., n.
• Si y = -1 la clasificación es incorrecta y wj(k+1) = wj(k) + η(k)xj(k), j = 1,2,..., n.
donde el parámetro η(k) es la tasa de aprendizaje que controla el ajuste aplicado a
los pesos sinápticos en la iteración k y η(k) [0,1].
• Si η(k) = η donde η es una constante, independiente del n° de la iteración, se tiene la
regla de adaptación de incremento fijo para el perceptrón.
Si en la iteración k se ha introducido el patrón (x1 , x2 ,..., xn ) que pertenece, por ej., A la
r r r
▪
clase C2, y que ahora es (x1(k), x2(k),..., xn(k)), entonces:
• Si y = -1 la clasificación es correcta y no modificamos los pesos, es decir, w j(k+1) =
wj(k) , j = 1, 2,n.
▪ Si y = +1 la clasificación es incorrecta y wj(k+1) = wj(k) + η(k)xj(k), j = 1,2,..., n.
• Por lo tanto, en la salida de la red hay un controlador o supervisor que:
◦ Compara la salida de la red con el valor deseado.
◦ En caso de que no coincidan (salida incorrecta) modifica los pesos de la red.
◦ Es un aprendizaje supervisado con corrección de error.
• La regla de aprendizaje anterior también se puede expresar de la siguiente forma:
◦ wj(k+1) = wj(k) + η[d(k)-y(k)]xj(k), j = 1,2,..., n.
◦ Donde d(k) es la salida deseada en la etapa k.
• La tasa de aprendizaje habra que elegirla de forma que se acelere la convergencia del
procedimiento:
◦ Una elección adecuada es:
▪ η = 2|w(k)'x(k)|
||x(k)||
2
Una regla discriminante d es una aplicacion que corresponde a una partición del espacio R
n
•
neuronal en L regiones disjuntas R1, R2, …, RL y viene definida como:
◦ Asigna x a la población Ci si x R1.
• El clasificador gaussiano de máxima verosimilitud corresponde a un procedimiento de estimación
paramétrico donde:
◦ Las muestras (conjunto de señales de entrada) de la clase C i, i = 1,2, siguen una distribución
normal multivariante de:
▪ Media = μi = (μi1, μi2,..., μn)'.
▪ Matriz de covarianza Σ.
• Una serie temporal consiste en una secuencia de valores de varias variables que evolucionan (van
cambiando) en el tiempo.
• Se trata de predecir el comportamiento futuro del fenómeno o sistema dinámico que genera esos
valores basándose en una colección de datos históricos.
• Ej.: La predicción del consumo de energía eléctrica o la predicción del n° de vacunas contra la
gripe que se van a demandar en una región determinada.
• La mejor manera de resolver esto es encontrando la ley subyacente que genera dichos procesos:
◦ Se puede obtener mediante métodos analíticos, como puede ser un conjunto de ecuaciones
diferenciales.
• La información que se tendrá del proceso va a ser generalmente parcial o incompleta:
◦ La predicción no dispone de un modelo analítico conocido.
• Se intentara descubrir alguna regularidad empirica fuerte en las observaciones de las series
temporales:
◦ En muchos problemas del mundo real algunas regularidades, como la periodicidad, aparecen
enmascaradas por ruidos.
◦ Algunos procesos dinámicos se describen por series de tiempo caóticas, donde los datos
parecen aleatorios sin periodicidades aparentes.
◦ El caos impide cualquier predicción a largo plazo.
◦ Se consiguen buenos resultados para predicciones a corto plazo utilizando red neuronal que
emplean una función multivariante no lineal:
▪ y(t) = F[y{t-1), y(t-2),..., y(t-k)]
▪ y(í), t = m, m-1, …, k, son las muestras dadas de la serie de tiempo.
▪ F es una función no lineal desconocida.
▪ k<m.
• La mayoría de las técnicas disponibles suponen relaciones lineales:
◦ Entre las variables, o.
◦ Entre las variables desfasadas en el tiempo.
• La formulación de modelos no lineales razonables es una tarea muy difícil.
• Las red neuronal son una buena alternativa para el cálculo de predicciones.
• El problema principal es la dificultad de encontrar la red adecuada para cada caso.
• El perceptrón multicapa es el modelo más utilizado de red neuronal para predicción de valores
futuros.
• La unidad de salida da una combinación lineal de las salidas de todas las unidades ocultas:
h k
◦ y(t) = ω0 + Σ ω Ψ (Σ ω
i=1
j j
i=1
ji y(t-1) + ωj0 )
◦ Ψj es la función de activación.
◦ Los pesos sinápticos ωji y ωj se van ajustando durante el proceso de aprendizaje y pueden
ser positivos, negativos o nulos.
• Para diseñar la red neuronal se tiene que ver cuántas neuronas ocultas debemos utilizar:
◦ Generalmente es proporcional al tamaño de la muestra que se utiliza para el entrenamiento
de la red.
• El comportamiento de la red se valora según la función de error:
◦ E(ω) = (y(k) - y(k))
2
◦ y(t) = ω0 + Σ ω ø (Σ ω
i=1
j i
i=1
ji y(t-1) + ωj0 )
◦ X(t)=(y(t-l),...,y(t-k))'
Ci R (i = 1, 2,..., h) Son los centros de las funciones de base radial.
k
◦
◦ Una función de base radial muy utilizada es la función gaussiana:
ø(r) = exp(-r /σ )
2 2
▪
• Se ha demostrado experimentalmente que las red neuronal con funciones de base radial
aproximan una amplia clase de funciones multidimensionales
• Presentan la ventaja sobre el perceptrón de que sus tiempos de entrenamiento son mucho
menores
• ω* es el vector propio principal (aquel que corresponde al mayor valor propio) de la matriz de
covarianza.
• Las tecnicas de clustering se ocupan de realizar una partición de un conjunto dado de datos en
varios grupos o categorías.
• Tienen aplicaciones en muchos campos como la medicina, la biología, la zoología y, sobre todo,
en las tecnologías de la información.
• La mayoría de las técnicas que se han desarrollado se puede dividir en tres grandes grupos:
◦ Jerárquicas.
◦ De minimización de costes o distorsiones.
◦ De teoría de grafos.
• Cuando se trata de grandes conjuntos de datos, sólo las técnicas de minimización de costes son
las adecuadas, por razones de complejidad computacional.
Se tiene un conjunto de datos {xi R , i = 1, 2, …, p}
n
•
• Los datos corresponden a n valores de un vector aleatorio x cuya función de distribución fx, se
desconoce:
◦ Se sabe que es una mixtura de m funciones de distribución.
• El problema consiste en formar m grupos o categorías con los datos según una cierta función de
distancia o medida de distorsión:
◦ En este caso será el error cuadrático (la distancia euclídea al cuadrado).
• Cada grupo estara representado por su centroide, es decir, su vector media.
Se trata de determinar m centroides, ωi R , i = 1, 2, …, m de manera que la distorsión entre
n
•
cada dato y su centroide sea mínima, es decir, minimizar:
n n
i i
• La solucion de este problema conduce a una particion del conjunto de datos en m clases,
categorías o regiones, c = 1,
◦ ωi Ci ||xj – ωi|| < ||xj – ωk||, k ≠ i
• Para una particion dada, los vectores de representación ú)¿ , i = 1, 2,..., m, también llamados
prototipos o vectores de referencia, que hacen mínima la distorsión son los centroides del grupo:
n
◦ ωi = Σ
ω C
xj
i i
ni
◦ Donde n, es el n° de elementos del grupo Ci .
• El n° de particiones diferentes de un conjunto de n elementos en k grupos es:
1 n k
◦ S(n, k)= K! Σ (-1)
i=1
k-1
i i
N
• Conceptos:
◦ Web mining se refiere al proceso global de descubrir información o conocimiento
potencialmente útil y previamente desconocido a partir de datos de la web (etzioni).
◦ Web mining combina objetivos y técnicas de distintas áreas:
▪ Information retrieval (IR).
▪ Natural language processing (NLP).
▪ Data mining (DM).
▪ Databases (DB).
▪ www research.
▪ Agent technology.
◦ ¿Esta la informacion de la web lo suficientemente estructurada para facilitar minería de datos
efectiva? (etzioni).
◦ Web mining se puede estructurar en fases (kosala & blockeel):
▪ Descubrimiento de recursos.
▪ Extracción de información.
▪ Generalización.
▪ Análisis, validación e interpretación de los patrones.
◦ Descubrimiento de recursos:
▪ Localización de documentos relevantes o no usuales en la red.
▪ Ésta es la función de:
• Índices buscadores: extraen contenido en palabras, zona del documento, idioma.
• Índices temáticos: clasifican los documentos.
◦ Extracción de información:
▪ Extraer determinada información a partir de un documento, ya sea html, xml, texto, ps,
pdf, latex, faqs, ....
◦ Generalización:
▪ Descubrir patrones generales a partir de sitios web individuales: clustering, asociaciones
entre documentos.
• Vision clasica como recuperacion de informacion:
◦ Web mining como information retrieval (ir):
▪ Disparado por consulta (query-triggered):
• Es el objetivo de numerosas herramientas: buscadores e índices.
• Las herramientas son clásicas estadísticas y ad-hoc....
• Visión más ambiciosa como extracción de información:
◦ Web mining como information extraction (ie):
▪ Disparado por datos (data-triggered):
• Es una visión más ambiciosa del web mining.
• Las herramientas son más generales y de aprendizaje automático.
◦ Information Retrieval persigue seleccionar documentos relevantes mientras que Information
Extraction persigue extraer hechos relevantes a partir de los documentos. (kosala &
blockeel).
◦ No sólo se requiere información relevante sino información de calidad o autorizada.
◦ Para ello es importantísimo no analizar los documentos de forma inconexa, sino analizar su
red de interconexiones (sus enlaces).
◦ Mucha información está en enlaces entrantes:
▪ Muchas páginas no se autodescriben. P.ej. Una página puede ser clasificada por los
enlaces que le llegan (referentes), que suelen ir acompañados de una pequeña
descripción de la página o junto a otros enlaces similares (clustering).
◦ También (no tanta) información sobre la página se encuentra en enlaces salientes.
• Clasificación del web mining: clasificación no disjunta (kosala & blockeel):
◦ Web content mining.
◦ Web structure mining.
◦ Web usage mining.
◦ Web content mining:
▪ Extraer información del contenido de los documentos en la web.
▪ Se puede clasificar a su vez en:
• Text mining: si los documentos son textuales (planos).
• Hypertext mining: si los documentos contienen enlaces a otros documentos o a sí
mismos.
• Markup mining: si los docs. Son semiestructurados (con marcas).
• Multimedia mining: para imágenes, audio, vídeo,...
◦ Web structure mining:
▪ Se intenta descubrir un modelo a partir de la topología de enlaces de la red.
▪ Este modelo puede ser útil para clasificar o agrupar documentos.
• Web usage mining:
◦ Se intenta extraer información (hábitos, preferencias, etc. De los usuarios o contenidos y
relevancia de documentos) a partir de:
▪ Las sesiones.
▪ Comportamientos de los usuarios y navegantes.
• Web content mining:
◦ Las técnicas varían dependiendo del tipo de documento:
▪ Text mining: técnicas de recuperación de información (ir) fundamentalmente. Técnicas
estadísticas y lingüísticas.
▪ Hypertext mining: no sólo se refiere a enlaces entre documentos sino también intro-
documentos (oem). Se ha de construir un grafo de referencias...
▪ Markup mining: la información de las marcas contiene información (html: secciones,
tablas, negritas: relevancia, cursiva, etc., Xml: mucho más...).
▪ Multimedia mining: algunos trabajos sobre bibliotecas de imágenes.
• Web content mining. Text mining:
◦ Cientos o miles de palabras.
◦ Hay aplicaciones diferentes: text categorization, text clustering.
◦ Existen varias aproximaciones a la representación de la información (hearst and hirsh):
▪ “Bag of words”.
▪ n-gramas o frases.
▪ Representación relacional (primer orden).
▪ Categorías de conceptos.
◦ Algunos problemas:
▪ “Vocabulary problem” (furnas).
▪ Sinonimia y quasi-sinonimia (comunicado, declaración).
▪ Polisemia (bomba).
▪ Lemas (descubrir, descubrimiento).
▪ Etcétera.
◦ “Bag of words”:
▪ Cada palabra constituye una posición de un vector.
▪ El valor se corresponde con el n° de veces que ha aparecido.
◦ N-gramas o frases:
▪ Permite tener en cuenta el orden de las palabras.
▪ Trata mejor frases negativas “... Excepto ...” “... Pero no...”, Que tomarían en otro caso
las palabras que le siguen como relevantes.
◦ Representación relacional (primer orden):
▪ Permite detectar patrones más complejos:
• Si la palabra x está a la izquierda de la palabra 7 en la misma frase.
◦ Categorías de conceptos.
• Clasificando texto con NB classifier:
◦ Ejemplo:
▪ Consideremos documentos de texto o de hipertexto t, que se pueden clasificar en varias
clases, p.ej. (interesante, no-interesante) o en diferentes temas.
▪ Definimos un atributo ai como cada posición i de cada palabra en el texto:
◦ Por ejemplo, dado este párrafo, tendríamos 40 atributos, donde el valor ¿7 para
el primer atributo sería “definimos”, el valor para el segundo sería “un”, etc.
◦ Se debe hacer la siguiente suposicion falsa:
▪ La probabilidad de una palabra es independiente de sus precedentes y sus siguientes.
▪ Los p(a¡|vj) son independientes entre sí.
◦ Falso, por ejemplo, con las palabras “por” y “ejemplo”.
◦ Este supuesto no es tan grave en general y permite utilizar el clasificador bayesiano naïve.
|T|
nk + |voc| + 1
P(wk | vj) = nk + mp = |voc| = nk + 1
n+m n+m n+m
▪ Los “navigation trails” se utilizan para construir una hypertext probabilistic Grammar
(HPG).
▪ Una HPG:
• Es una tupla <V, Σ, S, P>.
• No es más que un tipo especial de gramáticas probabilísticas regulares, con la
característica especial que tienen el mismo número de terminales i que no terminales
v (con lo que se hace una correspondencia 1 a 1 entre ellos).
◦ Se construye el grafo de transiciones de la gramática de la siguiente manera:
▪ Se añade un único nodo inicial S y un nodo final F, que no corresponden con ningún url.
▪ Se añaden tantos nodos como urls distintos
▪ ¿Qué valores probabilísticos ponemos en las flechas?.
▪ Existen dos parámetros para construir esta HPG:
• α: importancia de inicio:
◦ Si α=0 sólo habrá flechas de s a los nodos que han sido alguna vez inicio de
sesión, y el valor de la flecha dependerá de cuántas veces lo han sido.
◦ Si α=1 el peso de las flechas dependerá de la probabilidad de visitas a cada nodo,
independientemente de que fueran iniciales.
◦ Si α>0 habrá flechas con peso > 0 de s a todos los nodos.
• N (donde n>1):
◦ Valor de n-grama.
◦ Determina la memoria cuando se navega la red, es decir el número de urls
anteriores que pueden influir en la elección del próximo url.
◦ Si n=1 el resultado será una cadena de markov.
• Ejemplo: supongamos la siguiente tabla de navigation trails:
•
▪ De aqui extraemos los no terminales y los terminales correspondientes:
• V = {S,A1,A2,A3,A4,A5,A6,F}.
• Σ = {a1, a2, a4, a5, a6}.
▪ Tenemos 6 trails y 24 visitas, donde al9 p.ej., Fue visitada 4 veces, 2 de las cuales como
pagina de inicio.
▪ Por tanto, tomando p.ej. oc=0.5 y n=1, podemos calcular la probabilidad de la produccion
p(s -> axax) que corresponde con la flecha de s a a1 en el grafo de transiciones de la
siguiente manera:
• P(s → a1A1) = (0.5 4)/24 + (0.5 2)/6 = 0.25.
▪ Las flechas interiores se calculan de manera similar.
▪ P.ej.: Si a4 se ha visitado 4 veces, 1 justo antes del final, otra antes de ae y dos antes de
al tenemos:
• P(a4->a1) = 2/4.
▪ P(a4->a6) = ¼.
• P(a4->f) = ¼.
▪ Siguiendo así para el resto se tiene:
• En forma tabular podemos expresar el conjunto de producciones probabilísticas p
derivadas del grafo anterior (para oc=0.5 y n=\ ):
Start prod. transitive prod. final prod.
S → a1A1 0.25 A1 → a2A2 0.25 A1 → F 0.25
S → a2A2 0.08 A1 → a2A2 0.5 A1 → F 0.4
S → a3A3 0.11 A1 → a2A2 0.75 A1 → F 0.25
S → a4A4 0.17 A1 → a2A2 0.25 A1 → F 1.0
S → a5A5 0.35 A1 → a2A2 0.4
S → a6A6 0.04 A1 → a2A2 0.2
A1 → a2A2 0.5
A1 → a2A2 0.25
A1 → a2A2 0.6
A1 → a2A2 0.4
• Perspectivas:
• La navegación es mucho más que un recorrido de enlaces.
• Ls páginas web son cada día más interactivas,
• Existen búsquedas, formularios,... (mena).
• Por ejemplo:
◦ If search-keywords are “reliarle software”
◦ And age 24-29
◦ Then download =‘linux’
◦ With accuracy = 20% and support = 1%
• Existe una tendencia hacia “adaptive web sites” (perkowitz & ertzioni).
• Nos acercamos al “application usage mining”, o la extracción de conocimiento automático
sobre cómo un usuario utiliza una determinada aplicación software, sea distribuida o no:
• Personalización