UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN
Licenciatura En Informática
Bases de Datos Autor: L.I. María de Lourdes Isabel Ponce Vásquez
AGOSTO - DICIEMBRE 2008
Contenido UNIDAD 7. NUEVAS TÉCNOLOGÍAS..................................................................................................................3
Objetivos Específicos.......................................................................................................................3 7.1. Introducción..............................................................................................................................3 7.2. Almacenes de Datos (Dataware Housing)................................................................................3 7.2.1. Bases de Datos operacionales y Almacenes de datos.......................................................3 7.2.2. Arquitectura de un Almacén de Datos................................................................................4 7.2.3. Modelos de Datos para Almacenes de Datos....................................................................5 7.2.4. Consultas al Almacén de datos y la Extensión OLAP de SQL-1999..................................8 7.2.5. Técnicas de Indexación......................................................................................................9 7.2.6. Vistas y Materialización de Vistas....................................................................................10 7.3. Minería de Datos.....................................................................................................................12 7.3.1. Propósitos de la Minería de Datos...................................................................................12 7.3.2. Tipos de Descubrimiento de Conocimiento .....................................................................13 7.3.3. Métodos Usados para Desarrollo de Reglas....................................................................15 7.1.1.1. Árboles de decisión....................................................................................................15 7.1.1.2. Regresión...................................................................................................................15 7.1.1.3. Redes Neuronales......................................................................................................16 7.1.1.4. Agrupación.................................................................................................................17 7.3.4. Aplicaciones de la Minería de Datos................................................................................17
Unidad 7. Nuevas Tecnologías
Página 2
UNIDAD 7. NUEVAS TÉCNOLOGÍAS Objetivos Específicos
Conocer la tecnología de Dataware Housing (almacén de datos) Aprender las diferencias entre una BD operacional y un almacén de datos Describir la arquitectura básica de un almacén de datos Mostrar los modelos de datos para almacenes de datos Conocer la tecnología de minería de datos Describir los métodos empleados para el desarrollo de reglas de minería de datos Comprender las aplicaciones de la minería de datos
7.1. Introducción
Muchas organizaciones que usan tecnología estándar de BD para recolectar y procesar cantidades masivas de sus datos operacionales han empezado a ver sus datos actuales e históricos como fuente de información que les ayude a tomar mejores decisiones, por ejemplo, decisiones sobre dónde abrir una nueva tienda, la audiencia para una campaña de publicidad, qué créditos aprobar y cuándo solicitar más artículos, pueden realizarse con mayor confianza cuando se basan en el análisis cuidadoso de patrones encontrados en los datos existentes. En ocasiones, estos datos proceden de varias BD y en vista de que muchos de los análisis de datos realizados son recurrentes y predecibles, los proveedores de DBMS y el personal de sistemas han comenzado a diseñar sistemas para realizar estas funciones. Los almacenes de datos (dataware house), el procesamiento analítico en línea (OLAP – On Line Analytical Processing) y la minería de datos (data minning) ofrecen esta funcionalidad y son el origen de esta última unidad. El mercado para estos sistemas ha tenido gran crecimiento desde mediados de los noventa, y los proveedores han sacado partido de la popularidad del estos términos para impulsar un mercado de diversos productos relacionados y los consultores han ofrecido una gran variedad de servicios relacionados con los almacenes de datos. Sin embargo, los almacenes de datos difieren bastante de las BD tradicionales en su estructura, funcionamiento, rendimiento y propósito.
7.2. Almacenes de Datos (Dataware Housing) El término Dataware House (Almacen de datos) fue acuñado por W.H. Inmon, quién los definió como: una colección de datos orientados a temas, integrados, variante en el tiempo y no volátil que soporta el proceso de toma de decisiones de las organizaciones. Un almacén de datos está pensado para soporte de aplicaciones de toma de decisiones en vez del procesamiento ordinario de transacciones. Está optimizado para extraer datos, en oposición al procesamiento de transacciones.
7.2.1. Bases de Datos operacionales y Almacenes de datos Las BD operacionales tradicionales soportan procesamiento de transacciones en línea (OLTP), que característicamente involucra un limitado número de transacciones repetitivas, cada una de las cuales afecta unas cuantas tuplas a la vez en una BD relacional. Una BD como esta está desarrollada para proporcionar las necesidades de información de los usuarios finales, y está diseñada para soportar las operaciones diarias de la empresa. La alta disponibilidad y eficiencia en el desempeño son factores críticos en el éxito de una BD operacional. Debe proporcionar soporte para Unidad 7. Nuevas Tecnologías
Página 3
un gran número de operaciones en línea en un corto tiempo. Una BD operacional se actualiza en tiempo real, con forme ocurren las transacciones. Las actualizaciones, inserciones y eliminaciones deben realizarse rápidamente para mantener la BD en un estado que refleje el ambiente actual de la empresa. En contraste, un almacén de datos soporta OLAP (Procesamiento Analítico en Línea) y toma de decisiones. Los datos en un almacén de datos pueden tomarse directamente de múltiples BD operacionales, en diversos periodos de tiempo (datos históricos), y también puede incluir datos de otras fuentes, sumarizando datos y metadatos. Las fuentes pueden tener diferentes modelos o estándares, pero los almacenes de datos integran los datos de modo que los usuarios ven un modelo consistente. Un almacén de datos generalmente contiene muy grandes cantidades de datos y está optimizado para el procesamiento de consultas eficiente y la presentación de resultados para soporte de decisiones. Las actualizaciones no son tan frecuentes como lo son el las BD operacionales, pero son realizadas periódicamente. Las aplicaciones OLAP generalmente deben recorrer grandes cantidades de datos par producir resultados. El analista examina los datos almacenados en el almacén de datos usando consultas complejas, generalmente involucrando operadores de agregación y agrupaciones. Éstos hacen análisis en series de tiempo usando los datos históricos.
7.2.2. Arquitectura de un Almacén de Datos A diferencia de una BD operacional, para la cual los requerimientos pueden especificarse por adelantado, un almacén de datos debe diseñarse para soportar consultas específicas y nuevas y tipos de análisis no anticipados. Una arquitectura típica, los datos se toman de fuentes de datos, los cuales pueden incluir múltiples BD operacionales, otras entradas como archivos independientes y datos de ambiente como información geográfica o datos financieros. Los datos deben extraerse de las fuentes usando herramientas de sistemas de almacenamiento que pueden acomodar las diferencias entre fuentes heterogéneas. Los datos son reformateados en una forma consistente. Los datos también pueden verificarse por integridad y validación, un proceso llamado limpieza de datos, para asegurar su calidad antes de cargarse en el almacén de datos. Los datos son después colocados en el modelo de datos para el almacén de datos y cargados, ya que pueden provenir de diversos modelos, se deben transformar generalmente de un modelo relacional, orientado a objetos, de red o jerárquico a un modelo multiimensional. El proceso de carga es una larga transición, ya que un gran volumen de datos es generalmente involucrado, de modo que el sistema debe usar herramientas de manejo de transacciones para asegurar la recuperación apropiada en caso de que fallen durante la transacción de carga. El DBMS que soporta el almacén de datos tiene un catálogo del sistema que almacena metadatos, y otros componentes del sistema de BD. Los almacenes de datos se usan entonces para soportar consultas para OLAP, para proporcionar información para sistemas de soporte de decisiones que se usan por administradores para hacer decisiones estratégicas, y para proporcionar los datos para herramientas de minería de datos que descubren nueva información acerca de patrones en los datos. Ciertos segmentos de los datos se organizan en subconjuntos llamados data marts, que se enfocan en situaciones específicas. Por ejemplo, un data mart puede contener información especializada sobre un solo departamento en la organización. Todos estos usos pueden culminar en nuevo conocimiento, que puede ser usado entonces como fuente de datos de la cual se pueden formatear datos y poner en el almacén de datos. Los datos de todas las fuentes de datos deben ser periódicamente refrescados. Si existe suficiente espacio de almacenamiento, los nuevos datos se agregan simplemente al almacén de datos existente y los datos anteriores se mantienen mientras sean útiles. De lo contrario, los datos que ya no se usan se purgan periódicamente y se agregan nuevos datos. La frecuencia y alcance de las actualizaciones depende del ambiente. Los factores que deben ser considerados para decidir la política de actualización incluyen cuánto espacio de almacenamiento está disponible, si el almacén de datos necesita datos recientes, si puede estar fuera de línea durante la actualización, y cuánto dura el Unidad 7. Nuevas Tecnologías
Página 4
proceso de transmitir los datos, limpiar, formatear, cargar y construir índices. La política usual es hacer actualizaciones parciales periódicamente.
Extraer
Data Marts SSD
Formatear Modelo Limpiar
DBMS
Almacén de Datos
Soporte OLAP
Refrescar Fuentes de Datos
Catálogo
Minería de Datos
Arquitectura de un Almacén de Datos
7.2.3. Modelos de Datos para Almacenes de Datos Aunque los modelos en las fuentes de datos pueden variar, el almacén de datos debe usar un solo modelo consistente que se acomode a las necesidades de los usuarios. Los almacenes pueden almacenarse en BD relacionales, sin embargo, generalmente se usa un modelo multidimensional. Se puede pensar en datos almacenados en una matriz multidimensional llamada cubo de datos o hipercubo.
Cada celda del cubo contiene datos agregados que relacionan elementos de las dimensiones. Los usuarios pueden ver los datos por cualquier dimensión que les interese, acercando el contenido de los datos al modelo mental del analista del negocio y facilitando su navegación. De hecho, las dimensiones actúan como índices para identificar valores dentro del cubo. El componente de acceso de los almacenes de datos soporta funcionalidad de hoja de cálculo extendida, un procesamiento de consultas eficiente, consultas estructuradas, consultas ad hoc, Unidad 7. Nuevas Tecnologías
Página 5
minería de datos y vistas materializadas. Así, el usuario puede navegar por los datos de distintas maneras: Drill-down (exploración descendente), el usuario navega entre los niveles de los datos desde los más resumidos a los más detallados, ofreciendo una visión más concreta y disgregando los datos. Por ejemplo, al hacer drill-down en una dimensión geográfica con el objetivo de ver las ventas producidas en un periodo, se pueden ver las ventas de un mes particular y después esas ventas por tipos de productos. Roll-up (exploración ascendente ó agregación), desplaza jerarquías hacia arriba, agrupando en unidades mayores a través de una dimensión y que puede ser simple (los totales por producto se agregan por mes y estos por años) o expresiones complejas que afectan a la consolidación de datos de varias dimensiones. Slicing y Dicing (rebanar y cortar), con estos nombres se le conoce a la capacidad de ver la BD desde diferentes puntos de vista, haciendo proyecciones sobre alguna dimensión. Así, por ejemplo una rebanada de la BD de ventas puede corresponder a las ventas de los productos en un año. El corte en rebanadas suele hacerse frecuentemente a lo largo del eje de tiempo para analizar las tendencias y encontrar patrones. Pivoting (pivotar, pivotación o rotación), consiste en reorientar la visión multidimensional de los datos rotando el cubo de daos para mostrar una orientación diferente, por ejemplo, en dos dimensiones se pueden cambiar las filas por columnas, en vez de tener productos, por región, en cada mes, se puede pivotear a regiones por mes, de cada producto. Nesting (anidamiento o sub-cubo), es una técnica de visualización utilizada para mostrar el resultado de una consulta multidimensional que devuelve un sub-cubo, nuevamente haciendo algún tipo de proyección de los datos. Reach through (derivación), es un modelo de extender los datos accesibles al usuario final más allá de lo que se encuentra almacenado en el servidor OLAP, consultando y recuperando de forma automática datos de un almacén o sistema OLTP, generalmente obteniendo atributos que se calculan mediante operaciones con valores almacenados y derivados. No hay razones para limitar los datos en un cubo de datos a dos o tres dimensiones. Los diseñadores pueden almacenar fechas usando tantas dimensiones como deseen (en hipercubos), si estas dimensiones son de interés para ellos. Sin embargo, más allá de la tercera dimensión, no se puede dibujar una representación física de los cubos de datos. Aún así, es posible aplicar el proceso de pivoteo, rollup, y drilling down a hipercubos. Los primeros almacenes de datos usaban arreglos multidimensionales, creando sistemas OLAP multidimensionales (MOLAP). Si se usa un modelo relacional, se describe el sistema como un sistema OLAP relacional (ROLAP). Un almacén de datos relacional consiste de múltiples tablas relacionales. Un esquema ampliamente usado para almacenes de datos multidimensionales es un esquema de estrella. Existe una tabla central de renglones de datos, llamado tabla de factual o de hechos, que almacena datos no agregados, observables, está compuesta de tuplas, una por cada hecho registrado. La tabla factual tiene algunos atributos que representan dimensiones y otros atributos dependientes que son de interés. Cada dimensión se representa en su propia tabla, y las tablas dimensionales pueden verse como puntos de una estrella cuyo centro es la tabla factual. Por ejemplo, en la siguiente figura, la tabla factual ORDEN, se muestra en el centro. Cada tupla de esta tabla proporciona información acerca de una orden, la cual involucra la venta de productos a un cliente particular. Para cada orden la tabla almacena noOrden, idProducto, idCliente, idVendedor, fecha, precioUnitario y cantidadOrdenada. Existen tablas dimensionales para el producto, cliente, vendedor y fecha. Cada una de ellas puede usarse como una dimensión en un hipercubo, Unidad 7. Nuevas Tecnologías
Página 6
permitiendo hacer consultas sobre las ventas de un producto particular, las ventas a un cliente particular, las ventas de un vendedor, o las ventas hechas en una fecha específica. Las tablas dimensionales Producto, Cliente, Vendedor y Fecha se muestran relacionándose con sus atributos dimensionales correspondientes de la tabla factual. Normalmente estos atributos son llaves foráneas en la tabla factual. Las tablas dimensionales proporcionan información adicional acerca de cada dimensión. Por ejemplo, la tabla dimensional vendedor proporciona más detalles del vendedor que toma la orden. Los atributos restantes de la tabla factual, noOrden, precioUnitario y cantidadOrdenada, son atributos dependientes. Una variación del esquema de estrella es el esquema copo (snowflake), en el cual las tablas dimensionales tienen dimensiones, porque están normalizadas. Algunos almacenes de datos normalizan hasta tercera forma normal para poder acceder a los datos con mayor detalle Por ejemplo, la dimensión Producto puede tener una tabla dimensional Proveedor, que contiene los datos de los proveedores y se relaciona mediante el numProveedor, si hay otras tablas no normalizadas se normalizan formando un copo con la tabla factual en el centro. Una constelación de hechos es un conjunto de tablas factuales que comparten algunas tablas de dimensiones, limitando las consultas que pueden hacerse al almacén de datos. Así, se puede tener una tabla de hechos que incluye predicciones económicas y que comparte la tabla de dimensiones de producto con la tabla de hechos de resultados económicos. Producto idProducto nombre numProveedor nombreProveedor teléfonoProveedor costo
Órden noOrden idProducto idCliente idVendedor fecha precioUnitario cantidadOrdenada
Cliente idCliente nombre dirección teléfono límiteCrédito
Vendedor idVendedor nombre apellido dirección teléfono zona ventasAnuales
Fecha día mes año
Esquema de Estrella Proveedor numProveedor nombre dirección teléfono estado
Producto idProducto nombre numProveedor costo Cliente idCliente nombre dirección teléfono límiteCrédito
. Órden noOrden idProducto idCliente idVendedor fecha precioUnitario cantidadOrdenada
Vendedor idVendedor nombre apellido dirección teléfono zona ventasanuales Fecha día mes año
Esquema de Copo
Unidad 7. Nuevas Tecnologías
Página 7
7.2.4. Consultas al Almacén de datos y la Extensión OLAP de SQL-1999 Las funciones de agregado SUM, COUNT, MAX, MIN y AVG son parte del estándar SQL92. Estas funciones pueden usarse en algunas consultas de rebanar y cortar para un almacén de datos. La forma general de esta consulta es: SELECT
FROM , WHERE … GROUP BY ; Por ejemplo, para la tabla factual Orden con el esquema: Orden (noOrden, idProducto, idCliente, idVendedor, fecha, precioUnitario, cantidadOrdenada) y la tabla dimensional Producto con esquema: Producto(idProducto, nombre, numProveedor, costo) Se puede escribir: SELECT idProducto, SUM(cantidadOrdenada) FROM Orden O, Producto P WHERE O.idProducto = P.idProducto AND P.numProveedor = 101 GROUP BY P.idProducto; Lo que muestra una lista de productos surtidos por el proveedor 101 y la cantidad total de cada uno. Nótese que se ha obtenido una rebanada sobre Producto y se ha cortado sobre el numProveedor para esta consulta. Típicamente las consultas para almacenes de datos requieren funciones de agregado adicionales. SQL99 incluye las funciones stddev (desviación estándar), y variance (varianza) para atributos simples. Estas son medidas estadísticas estándar que indican cómo divulgar un conjunto de valores de datos significativos. Por ejemplo, una desviación estándar alta del total de las ventas mensuales podría indicar que la cantidad de ventas varía ampliamente de un mes a otro, mientras que una desviación estándar baja podría indicar que las ventas permanecen constantes en el período. Otras funciones estadísticas son correlación, covarianza y regresión, que aplican a pares de atributos. SQL99 también tiene funciones para calcular el rank (rango ordinal) para valores de datos. Por ejemplo, si el esquema de la tabla Vendedor es: Vendedor(idVendedor, nombre, apellido, dirección, teléfono, zona, ventasAnuales) Se puede querer encontrar en rango de vendedores de acuerdo a su total de ventas. El comando: SELECT idVendedor, rank() over (order by (ventasAnuales) Desc) FROM Vendedor WHERE apellido = ‘Jackson’; Unidad 7. Nuevas Tecnologías
Página 8
Desplegará el id del vendedor y el rango del vendedor Jackson. Si dos personas tienen la misma cantidad de ventas, obtienen el mismo rango, pero el siguiente rango es saltado. Por ejemplo, si dos personas obtienen las ventas más altas, ambos obtienen el rango 1, pero el siguiente vendedor obtiene el rango 3. Si no se desean saltar números, se puede usar dense_rank() en vez de rank. La cláusula order by dentro de la función rank indica que el atributo se usa para el rango, no despliega las tuplas en el orden del rango, si se desean obtener en orden se debe agregar la cláusula ORDER BY al final de la consulta. La cláusula GROUP BY también se ha extendido en SQL99 con las opciones CUBE y ROLLUP para datos cúbicos. Por ejemplo, si la tabla factual Ventas es: Ventas(numeroTienda, nombreDepartamento, mes, cantidad) Y las tablas dimensionales para tienda, departamento y mes para los datos de un supermercado se representan el cubo de datos, la consulta: SELECT nombreDepartamento, numeroTienda, mes, sum(cantidad) FROM Ventas GROUP BY CUBE(nombreDepartamento, numeroTienda, mes); Produce las ocho posibles combinaciones GROUP BY para los tres atributos, departamento, tienda y mes. La agrupación será hecha sólo por departamento, sólo por tienda, sólo por mes, por la combinación de tienda y mes, la combinación tienda y departamento, la combinación de mes y departamento, la combinación de los tres y de ninguno. En contraste al cubo, que agrupa sobre todas las posibles combinaciones de los atributos nombrados, el ROLLUP permite a los usuarios especificar qué atributos se usan para la agregación. Si se escribe: SELECT nombreDepartamento, numeroTienda, mes, sum(cantidad) FROM Ventas GROUP BY ROLLUP(nombreDepartamento, numeroTienda); Se agregan todos los pares de valores nombresDepartamento y numeroTienda y también sólo nombreDepartamento, pero no sobre numeroTienda.
7.2.5. Técnicas de Indexación La cantidad de datos en el almacén de datos puede ser tan grande que los índices eficientes son importantes de modo que las consultas puedan ejecutarse en una cantidad de tiempo razonable. Ya que los datos en un almacén de datos no es actualizable por transacciones ordinarias, es relativamente estático. Sin embargo, una vez que se crean los índices para los datos, el costo de mantenerlos no es un factor. Técnicas especiales de indexación, incluyendo indexación de mapa de bits (o bitmap) e indexación de reunión, que son eficientes para grandes cantidades de datos estadísticos se aplican al ambiente de almacenes de datos. Los índices de mapas de bits se construyen para cualquier atributo que tenga un número limitado de distintos posibles valores. Estos son especialmente apropiados si el dominio es pequeño. Para cada valor en el dominio, se construye un vector de bits para representar esos valores, colocando un 1 en la posición para ese valor. Por ejemplo, la siguiente figura muestra la tabla Profesores con un índice de mapa de bits para nivel y otro para departamento. Ya que el primer registro de Profesor tiene un nivel de Profesor, el primer renglón del índice de nivel tiene un 1 en la columna Profesor. Ya que el departamento del primer registro de Profesor es Arte, existe un 1 en la columna Arte del Unidad 7. Nuevas Tecnologías
Página 9
primer renglón del índice de departamento. Los índices de mapas de bits ocupan menos espacio que los índices estándar, y permiten procesamiento eficiente de algunas consultas directamente desde el índice. Por ejemplo en la consulta: SELECT COUNT() FROM Profesor WHERE nivel = ‘Profesor’ AND departamento = ‘Arte’; Los dos índices pueden ser comparados construyendo un nuevo vector de bits para usar el operador AND, comparando el cuarto bit del vector de bits con el primer bit del vector de departamento. El número de 1s en el nuevo vector de bits es el número de Profesores en el departamento Arte. Procedimientos similares pueden usarse para acelerar otras operaciones, incluyendo la reunión. Profesor idProf nombre P101 Adams P105 Tanaka P110 Byrne P115 Smith P221 Smith Índice de mapa de bits para nivel Instructor Asistente Asociado Profesor 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
depto Arte Informática Matemáticas Historia Informática
nivel Profesor Instructor Asistente Asociado Profesor
Índice de mapa de bits para Departamento
Arte 1 0 0 0 0
Informática 0 1 0 0 1
Historia 0 0 0 1 0
Matemáticas 0 0 1 0 0
Ya que la reunión es difícil cuando las tablas son grandes, el almacén de datos puede usar indexación de reunión para acelerar las consultas con reunión. La mayoría de las operaciones de reunión son hechas sobre llaves foráneas. En un almacén de datos usando un esquema de estrella, la operación de reunión generalmente involucra comparación de tablas factuales con tablas dimensionales. Un índice de reunión relaciona los valores de una tabla dimensional a los renglones de la tabla factual. Para cada valor del atributo índice en la tabla dimensional, el índice almacena el ID de las tuplas en la tabla factual teniendo ese valor. Por ejemplo, para la tabla de órdenes que contiene el cliente, si se tiene un índice de reunión sobre la tabla de dimensión de cliente, para cada cliente este índice mantiene los identificadores de las órdenes que correspondan a cada cliente. Los índices de reunió pueden tener varias dimensiones.
7.2.6. Vistas y Materialización de Vistas Las vistas juegan un papel importante en los almacenes de datos, como en las BD operacionales, incluyendo el ambiente del usuario. Los operadores SQL incluyendo los operadores de extensión OLAP de CUBE y ROLLUP, pueden ser desarrollados sobre vistas y tablas. El comando de SQL Unidad 7. Nuevas Tecnologías
Página 10
CREATE VIEW simplemente define la vista y no crea nuevas tablas. Cuando una consulta se escribe sobre una vista, una forma en que puede ejecutarse es mediante el uso de modificación de consultas, que remplaza la referencia en la línea WHERE de la definición del VIEW. Por ejemplo, se puede tener una vista MejoresVendedores definida por: CREATE VIEW MejoresVendedores AS SELECT V.idVendedor, V.apellido, V.nombre, V.telefono, V.ventasAnuales FROM Vendedor V WHERE V.ventasAnuales > (SELECT AVG(ventasAnuales) FROM Vendedor); Si se escribe una consulta usando la vista, como: SELECT SUM(V.ventasAnuales) FROM MejoresVendedores V; Y si se usa modificación de consulta, la referencia en la línea cláusula FROM se remplaza por la definición de la vista, resultando: SELECT SUM(B.ventasAnuales) FROM (SELECT V.idVendedor, V.apellido, V.nombre, V.telefono, V.ventasAnuales FROM Vendedor V WHERE V.ventasAnuales > (SELECT AVG(ventas) FROM Vendedor) AS B; En un ambiente de almacén de datos, donde las consultas y vistas son muy complejas y donde el analista usa el sistema en un ambiente interactivo, la modificación de consultas puede generar retrasos inaceptables en tiempos de respuesta. Sin embargo, un método alterno de manejo de vistas es materializarlas, resolverlas previamente a partir de la definición y almacenarlas para usos posteriores. Para acelerar el procesamiento, pueden crearse índices para las vistas materializadas. El diseñador del almacén de datos debe considerar qué vistas deben materializarse, examinando las restricciones de almacenamiento contra los posibles beneficios de velocidad las consultas más importantes. El diseñador también debe decidir una política de mantenimiento para materializar vistas. Cuando las tablas origen cambian, la vista también debe actualizarse. Esto puede realizarse como parte de la transacción de actualización para las tablas base, como una política llamada mantenimiento inmediato de vistas, que hace más lenta la transacción de actualización para el almacén de datos. Una alternativa es usar mantenimiento de vistas diferido. Algunas políticas posibles incluyen: Actualización Perezosa, que actualiza la vista cuando una consulta ejecuta una vista y la versión de la materialización actual es obsoleta. Actualización Periódica, que actualiza la vista a intervalos regulares de tiempo. Actualización Forzada, que actualiza la vista después de que un número específico de actualizaciones se han hecho a las tablas base. El proceso de actualización puede hacerse volviendo a ejecutar la vista materializada. Sin embargo, para vistas complejas, especialmente aquellas con reuniones o agregaciones, esto puede ser muy costoso. En vez de eso, la actualización puede hacerse incrementalmente, incorporando sólo los cambios hechos a las tablas base.
Unidad 7. Nuevas Tecnologías
Página 11
7.3. Minería de Datos La minería de datos es el proceso de descubrir nueva información buscando en grandes cantidades de datos. El propósito es descubrir patrones, reglas o tendencias en los datos que sean útiles para la organización. Además de la tecnología de BD, la minería de datos usa técnicas de los campos de estadística e inteligencia artificial, especialmente descubrimiento de conocimiento. Ya que involucra grandes cantidades de datos, es necesario tener una BD grande o un Almacén de Datos (Data Warehouse). La minería de datos puede usarse con una BD operacional o un Almacén de datos, suficientemente grande. Anteriormente se mencionó la minería de datos como una de las aplicaciones principales para los almacenes de datos, junto con OLAP y sistemas de soporte a las decisiones. Un almacén de datos que se usa como fuente de minería de datos debe incluir datos sumarizados y renglones de datos tomados de las fuentes de datos originales como de BD operacionales. Ya que los tipos de operaciones usadas en minería de datos difieren de las analíticas para OLAP y sistemas para soporte de decisiones, las aplicaciones de minería de datos deben ser consideradas en el diseño original del almacén de datos. La minería de datos, generalmente requiere conocimiento del dominio (por ejemplo, el ambiente de la empresa estudiada) y conocimiento del proceso de minería de datos. El formato de los datos requeridos generalmente es un “archivo plano” en el cual todos los datos para cada caso de valores observados aparecen como un renglón simple, en vez de relacionales u objeto-relacionales. Si los datos no se representan como casos individuales, o si se requieren reuniones (joins) para poner todos los datos de un caso junto, se debe dedicar un esfuerzo considerable a preparar los datos y reformatearlos. Sin embargo, el diseño del almacén de datos debe crearse con la minería de datos en mente.
7.3.1. Propósitos de la Minería de Datos Para la mayoría de las empresas, el principal propósito de la minería de datos es proporcionar conocimiento que dará a la empresa una ventaja competitiva, permitiendo obtener mayores utilidades. Las compañías usan la minería de datos con la esperanza de ser capaces de cumplir lo siguiente: Predecir. La minería de datos puede mostrar el modo en que actuarán ciertos atributos en el futuro. Por ejemplo, estudiando los datos de tres supermercados, se puede probablemente, predecir las ventas para el mismo período el siguiente año. Si se tiene una BD sobre salud, que contiene datos de las epidemias de gripe de los cinco inviernos anteriores, probablemente se puede predecir el número de tales infecciones para el siguiente invierno. Determinados patrones de ondas sísmicas pueden predecir un terremoto con una alta probabilidad. Clasificar. La minería de datos puede dividir los datos de modo que las diferentes clases o categorías se puedan identificar basándose en combinaciones de parámetros. Por ejemplo, a partir de los datos crediticios de los clientes en el pasado, se puede clasificar un cliente nuevo como una buena o mala oportunidad de crédito. La clasificación también se usa en medicina, para determinar cuál de los diagnósticos severos posibles es el apropiado para un paciente, basado en datos anteriores acerca de otros pacientes y sus síntomas. Identificar. Los patrones pueden servir para identificar la existencia de un artículo, evento o actividad. Por ejemplo, si se conoce el patrón típico de las existencias de ventas que se presentó en casos previos, y se observa el mismo patrón ocurriendo nuevamente, se puede identificar el mercado actual. Las compañías de seguros estudian patrones y características de reclamaciones previas conocidas como fraudes para determinar cuáles de las nuevas reclamaciones pueden ser fraudes. Optimizar. Uno de sus objetivos puede ser optimizar el uso de recursos limitados como el tiempo, espacio, dinero o materiales y maximizar las variables de salida como las ventas o Unidad 7. Nuevas Tecnologías
Página 12
beneficios bajo un conjunto de restricciones. La minería de datos puede modelar escenarios para ayudar a determinar el mejor lugar para equipamiento, la forma más lucrativa para invertir el dinero o la forma más eficiente de usar el tiempo disponible para maximizar la productividad u obtener otros objetivos. El término minería de datos se emplea en un sentido muy amplio. En algunas situaciones incluye análisis estadístico y optimización restringida, así como aprendizaje automático. No existe una línea bien definida entre estas disciplinas.
7.3.2. Tipos de Descubrimiento de Conocimiento El descubrimiento de conocimiento en bases de datos (KDD – Knowledge Discovery in Databases), abarca más que la minería de datos. El proceso de descubrimiento de conocimiento está compuesto de seis fases: Selección. Obtener los datos relativos a elementos específicos o categorías de elementos, o datos procedentes de una región o área concreta. Por ejemplo, las órdenes de un solo cliente. Limpieza de datos. Corregir los datos no válidos o eliminar tuplas con datos incorrectos. Por ejemplo, corregir códigos postales inválidos o eliminar registros con prefijos telefónicos incorrectos. Enriquecimiento. Ampliar los datos con fuentes de información adicionales. Por ejemplo, agregar datos de edad, ingresos y valoración crediticia. Transformación de datos y/o codificación. Para reducir la cantidad de datos. Por ejemplo, se pueden agrupar los códigos de productos por categorías (audio, video, electrónicos, accesorios, etc.), los códigos postales se pueden agrupar por área geográfica, los ingresos dividirse en diez niveles, etc. Minería de datos. Para extraer reglas y patrones diferentes. Por ejemplo asociaciones, secuencias, clasificaciones, descubriendo conocimiento sobre patrones de compra en relación a edades, ingresos y regiones de los clientes; que se usarán para lanzar nuevos productos, campañas publicitarias, etc. Presentación y visualización de la información descubierta. Los resultados se pueden presentar usando listas, gráficas, tablas de resumen o visualizaciones. En los sistemas expertos, el conocimiento se obtiene usando la lógica deductiva. Un sistema experto de ingeniería de inferencia se usa para aplicar las leyes de lógica a hechos almacenados en la BD para deducir nuevos hechos en forma mecánica. El conocimiento se puede clasificar como inductivo o deductivo. La minería de datos usa inducción en vez de deducción. Examina un gran número de casos y concluye que existe un patrón o regla. El conocimiento puede representarse en gran variedad de formas, incluyendo reglas, árboles de decisión, redes neuronales o jerarquías de clases marcos de referencia (frames). El conocimiento descubierto puede describirse de las siguientes formas: Reglas de asociación: estas reglas establecen una correlación entre la presencia de un conjunto de elementos con otro rango de valores para otro conjunto de variables. Tienen la forma {x} => {y}, donde x y y son eventos que ocurren al mismo tiempo. Un ejemplo típico involucra pares de productos que los clientes generalmente compran juntos, analizando los datos de la cesta de compra, que muestra cuáles elementos se compraron en una transacción. Por ejemplo, si un cliente compra pan, es probable que compre mantequilla al mismo tiempo. La regla puede expresarse como una implicación: Unidad 7. Nuevas Tecnologías
Página 13
{pan} => {mantequilla} Nótese que ambos lados, izquierdo (pan) y derecho (mantequilla) pueden ser conjuntos de elementos en vez de elementos individuales. Dos medidas importantes conectadas a las reglas de asociación son el soporte y la confianza. Para un conjunto de elementos, el soporte es el porcentaje de transacciones en el conjunto de datos que contienen todos estos elementos incluidos en ambos lados. Nótese que la transacción puede incluir elementos adicionales que no son parte de la asociación. Por ejemplo, si se tiene un millón de registros de ventas, y 100,000 de ellas incluyen ambos, pan y mantequilla, el soporte para la regla pan => mantequilla es 10%. Si el soporte es bajo, implica que no hay una evidencia abrumadora de que los elementos ocurran conjuntamente. La confianza es una medida de qué tan seguido se comprueba la regla como verdadera, esto es, para los casos donde el lado izquierdo de la implicación está presente, la confianza es el porcentaje de aquellos en los que el lado derecho también está presente. Para un millón de registros de ventas, probablemente 500,000 incluyen pan, pero sólo 100,000 de ellos incluyen también mantequilla, así que la confianza en esta regla es 20%. El soporte y la confianza no van necesariamente unidos, por lo tanto, el objetivo de las reglas de asociación de la minería de datos es el de generar todas las reglas posibles que superen en un mínimo los umbrales de soporte y confianza especificados por el usuario. Reglas de clasificación: la clasificación es el problema de colocar instancias en la categoría correcta de varias posibles categorías. El objetivo es crear jerarquías de clases a partir de conjuntos de eventos o transacciones. Las clases pueden ser predefinidas o determinarse durante la tarea de clasificación. El sistema se desarrolla para proporcionar un conjunto de instancias pasadas para las cuales la clasificación correcta se conoce, llamado conjunto de entrenamiento. Usando estas muestras, el sistema desarrolla un método para clasificar correctamente un nuevo elemento cuya clase es actualmente conocida. Un ejemplo clásico de regla de clasificación es el problema de decidir cuáles clientes son merecedores de crédito, basado en hechos como ingresos, propiedades, etc. Patrones secuenciales: lo que se persigue es encontrar una secuencia de acciones o eventos, detectando asociaciones entre eventos con determinadas relaciones temporales. Una aplicación típica de patrones secuenciales es la predicción de que un cliente que compra un producto particular en una transacción seguirá con la compra de un producto relacionado en otra transacción. Por ejemplo, una persona que compra una impresora en una tienda de computadoras, probablemente comprará papel en su próxima visita. Tales patrones se representan como secuencias. La secuencia {impresora}{papel} representa dos visitas del mismo cliente en las cuales el patrón secuencial es observado, esto es, el cliente compra una impresora en la primera visita y papel en la siguiente visita. El porcentaje de veces que ocurre una secuencia en el conjunto de transacciones de ventas es el soporte para el patrón. La primera subsecuencia, {impresora}, es llamada predictor o previsor de la segunda subsecuencia {papel}. La confianza para estas predicciones es la probabilidad que cuando {impresora} ocurre en una visita, {papel} ocurrirá en una siguiente visita. Esta probabilidad puede calcularse examinando el renglón de datos de las transacciones de ventas observadas. Los patrones secuenciales pueden involucrar más de un elemento en cada subsecuencia, y más de una subsecuencia. En términos generales, si la secuencia S1, S2,… Sn, donde Si es un conjunto de elementos, ha sido válida, entonces S1 es un predictor de S2 a Sn. Patrones de series de tiempo. Una serie de tiempo es una secuencia de eventos que son del mismo tipo. La minería de datos puede detectar similitudes en las posiciones de las series de tiempo. Por ejemplo, si el total de ventas para un supermercado se calcula y registra al final de cada mes durante un largo período de tiempo, estas medidas constituyen una serie de tiempo. Los datos de series de tiempo pueden estudiarse para descubrir patrones y Unidad 7. Nuevas Tecnologías
Página 14
secuencias. Por ejemplo, se pueden observar los datos y encontrar el período más largo cuando las ventas aumentan, o encontrar la declinación de un mes al siguiente. Los precios de almacenamiento, tasas de intereses, tasas de inflación, y muchas otras cantidades pueden analizarse usando series de tiempo.
7.3.3. Métodos Usados para Desarrollo de Reglas
Existen diversas técnicas que ayudan a descubrir reglas dependiendo del tipo de reglas a descubrir. 7.1.1.1. Árboles de decisión Un método de desarrollo de reglas de clasificación es desarrollar un árbol de decisión. El árbol que se muestra a continuación se usa para tomar decisiones acerca de si aceptar a un estudiante en una universidad, basado en una predicción de si el estudiante será un estudiante mediocre, promedio, bueno o excelente. Considera el promedio del estudiante en preparatoria y el total del examen. Si el promedio es menor a 70% y el examen está abajo de 1000, la predicción es que el estudiante será mediocre en el colegio. En el otro extremo, si el promedio está arriba de 90 y el examen arriba de 1400, el sistema predice que el estudiante será excelente. El árbol puede construirse inicialmente examinando los registros de estudiantes pasados, considerando sus características de Promedio en Preparatoria y Examen. Estos atributos se llaman atributos particionales, ya que permiten definir instancias de muestra a romper o particionar en clases disjuntas. Las condiciones particionales se muestran en las ramas. Nótese que las condiciones no tienen que ser idénticas en todas las ramas. Por ejemplo, si el promedio más alto de preparatoria es arriba de 90, se considera sólo las calificaciones del examen arriba de 1400, y no se usa el valor 1000, como se hace en otras ramas. Promedio Prepa
<70 70-90 Examen
Mediocre >90
Examen
Promedio Examen
Bueno
<1000 <1000
>1400
>1400
1000-1400
1000-1400
>1400
Excelente
>1400
Árbol de decisión 7.1.1.2. Regresión La regresión es una aplicación especial de la regla de clasificación. Es un método estadístico para predecir los valores de un atributo, Y, (llamado la variable dependiente), dados los valores de atributos X1, X2, …, Xn (llamadas variables independientes). Un ejemplo es son los exámenes de los alumnos y el promedio de la preparatoria son variables independientes para predecir el promedio al final de cuatro años de la universidad, que es la variable dependiente. Muchos paquetes estadísticos de software permiten identificar hechos potenciales que son útiles para predecir el valor de las variables dependientes. Usando progresión lineal, el paquete encuentra la contribución o peso de cada variable independiente para la predicción, en forma de coeficientes, a0, a1, … an para una función lineal teniendo la forma: Y = a0 + a1 X1 + a2 X2 + . . . + an Xn Unidad 7. Nuevas Tecnologías
Página 15
La fórmula derivada representa una curva que corresponde a los valores observados tan detalladamente como sea posible. En minería de datos, se puede pedir directamente al sistema que identifique las variables independientes, y encuentre la función de regresión. Los sistemas de minería de datos también pueden usar regresión no lineal, usando la aproximación mediante una curva correspondiente, encontrando la ecuación de la curva que corresponde a los datos observados tan detalladamente como sea posible. También puede trabajar con datos no numéricos. 7.1.1.3. Redes Neuronales Estas técnicas incluyen una variedad de métodos usando un conjunto de muestras para todas las variables para encontrar las relaciones más fuertes entre variables y observaciones. Los métodos tienen origen en el campo de la inteligencia artificial. Estos usan una forma generalizada de regresión, proporcionando un método iterativo y usando una técnica de ajuste de curva para encontrar una función a partir del conjunto de muestras. Las redes neuronales usan un método de aprendizaje, adaptándose con forme aprenden nueva información examinando muestras adicionales. Por ejemplo, un modelo simple de una red neuronal que representa compras en Internet, puede predecir los clientes potenciales que comprarán en un sitio específico. Algunas variables de entrada que involucran edad, educación e ingresos se usan en las predicciones. Por ejemplo, se ha demostrado que los graduados mayores de 21 años con ingresos mayores a 50,000 dólares compran equipos de fotografía en Internet. En la etapa de aprendizaje la red obtiene un conjunto de muestras de prueba que proporcionan hechos acerca de estos valores de entrada para un ejemplo de clientes, y también el sitio en el que solicitan. Las capas ocultas se desarrollan por el sistema con forme examina estos casos, usando técnicas de regresión generalizadas. Además de los casos proporcionados, el sistema refina sus capas ocultas hasta que ha aprendido a predecir correctamente un cierto porcentaje. Entonces prueba los casos proporcionados para evaluar el sistema. Si se desempeña bien en los casos de prueba, el sistema puede ser usado para nuevos datos donde la salida es conocida. Las redes neuronales tienen diversos elementos que hacen difícil trabajar con ella. Uno de los problemas principales es que la curva concuerde. El conjunto de datos de entrenamiento, como cualquier otro renglón de datos, siempre tiene cierta cantidad de “ruido”, inconsistencias o variaciones que no son significativas y que deben ser ignoradas. En vez de eso, las redes neuronales pueden acomodar sus funciones de predicción para contabilizar estos valores, produciendo una curva que corresponde perfectamente al conjunto de muestras. La función de predicción se realizará pobremente sobre nuevos datos. Un segundo problema es que el conocimiento de cómo el sistema toma sus predicciones está en las capas ocultas, de modo que los usuarios no tienen una buena vista del razonamiento usado. A pesar del modelo de regresión, donde los coeficientes muestran la contribución de cada atributo, el peso asignado a los hechos en el modelo no puede ser interpretado de modo natural por los usuarios. Aún cuando el modelo puede trabajar bien, la salida puede ser difícil de comprender e interpretar. edad < 21
libros edad > 21
Capas Ocultas
< prepa
Artículos deportivos
Viajes
prepa
Equipo fotográfico
profe sional
< Unidad 7. Nuevas Tecnologías 5000 > 5000
Página 16
Modelo Simple de una Red Neuronal 7.1.1.4. Agrupación
Ingresos
La agrupación o segmentación se refiere a métodos usados para colocar tuplas en clusters o grupos que pueden ser disjuntos o traslapados. Usando un conjunto de muestras, el sistema identifica un conjunto finito de clusters en los cuales las tuplas de la BD pueden ser agrupadas. Las tuplas en cada cluster son similares, compartiendo algunas propiedades y son diferentes a las tupla en otros clusters. Similarmente se miden usando algún tipo de función de distancia que es definida para los datos. Por ejemplo, si edad es un atributo, la diferencia entre las edades de las personas puede ser usada como la función de distancia. En algunos problemas, las categorías pueden ser organizadas jerárquicamente. Un ejemplo puede ser de gente agrupada por educación y niveles de ingresos. Mostrando el grado máximo completado por cada persona en el eje de las X y los ingresos anuales en el eje de Y. A partir de los datos, se puede notar que existen tres grupos. Hay gente con el nivel más bajo de educación que tienen bajos ingresos, gente con bajos niveles de educación con ingresos moderadamente altos y gente con alto nivel de educación con altos ingresos. 80000 60000 40000 20000 0 0
5 10 Nivel Educativo
15
20
Método de Agrupación
7.3.4. Aplicaciones de la Minería de Datos La minería de datos tiene usos en una amplia variedad de contextos de toma de decisiones en el ámbito empresarial. Entre las más útiles están las siguientes: Ventas al menudeo. o Manejo de relaciones con los clientes (MRC). Es una nueva aplicación de la minería de datos. El MRC permite que una venta a menudeo proporcione una experiencia personalizada de ventas a los clientes para crear lealtad de los clientes. La minería de datos se usa para identificar y anticipar las necesidades de los clientes, de modo que las ventas tendrán elementos que solicitan y podrán sugerir productos relacionados que el cliente compra. Por ejemplo, las tiendas de libros por Internet analizan las preferencias de clientes por región y el historial de ventas para sugerir nuevas compras o sugerir compras relacionadas a la actual o Las campañas publicitarias usan minería de datos para identificar los clientes que probablemente comprarán en respuesta a los anuncios. Para firmas de ventas por catálogo, se usa para identificar a aquellos que responderán positivamente. Los datos se pueden crear en respuesta a un modelo. Ese modelo, que incluye datos Unidad 7. Nuevas Tecnologías
Página 17
demográficos y geográficos, se usa para identificar a la gente que responderá positivamente a nuevas campañas, basadas en su demografía y otros atributos. Bancos y Finanzas o Créditos. Vendedores a menudeo, Bancos, y otros que proporcionan crédito a los clientes pueden usar una variedad de técnicas de minería de datos para construir un modelo para determinar si se proporciona un crédito a un nuevo cliente. o Detección de fraudes y prevención. La minería de datos ha sido usada satisfactoriamente para detectar transacciones de tarjetas de crédito fraudulentas, tanto en tiempo real como después de del hecho, negando las transacciones potenciales. Las compañías de seguros también han usado minería de datos para determinar si los reclamos son fraudulentos. La industria de telecomunicaciones también usa la minería de datos para detectar usos fraudulentos del uso de sistemas telefónicos. Producción o Optimización del uso de recursos. Los modelos de minería de datos pueden ser usados para determinar el mejor empleo de equipo, recursos humanos y materiales. o Optimización del proceso de producción. El proceso de producción por si mismo puede ser analizado para determinar el mejor costo/beneficio y/o forma más eficiente de producir productos. o Diseño de productos, Examinando los datos acerca de defectos de productos y reparándolos, las productoras pueden eliminar partes que pueden ser defectuosas, mejorando el diseño. Los resultados de investigaciones de mercado pueden también ser usadas para diseñar productos que los consumidores pueden preferir. Medicina o Determinar la efectividad de tratamientos. Los pacientes, proveedores de medicamentos, y seguros de salud se benefician de la capacidad de determinar qué tratamientos son más efectivos. La minería de datos no sólo proporciona las bases para resultados estadísticos de estudios de varios tratamientos, sino que revela hechos escondidos que tienen influencia en el tratamiento. o Analizar efectos de drogas. Antes y después de que una droga sale al mercado, una gran cantidad de datos deben recolectarse y proporcionarse acerca de los efectos de las drogas. Los estudios a gran escala sobre las drogas, involucran grandes cantidades de datos, y juegan un papel vital en la industria farmacéutica. o Encontrar relaciones. Los patrones entre los cuidados de los pacientes y los tratamientos pueden ser determinados. Además de la relación obvia entre el tratamiento o droga y el paciente, relaciones ocultas entre otros factores, como el lugar donde se proporciona el cuidado, y el restablecimiento, pueden ser descubiertas usando minería de datos. Las investigaciones en el área de almacenes de datos y minería de datos son muy activas, cada vez existen más herramientas para el manejo de estas tecnologías, con mayor cantidad de funcionalidades y cada vez mejores. Tarea. a. Leer al menos 2 fuentes adicionales sobre los temas vistos en esta unidad y hacer un resumen de la unidad (máximo 1 cuartilla). No olvidar conclusiones y bibliografía. b. Cuál es la diferencia entre OLAP y OLTP, entre el esquema de estrella y de copo, entre las vistas de las BD transaccionales y las de un almacén de datos y entre los patrones secuenciales y las series de tiempo. c. Investigar qué herramientas proporciona MySQL para Almacén de datos y Minería de datos.
Unidad 7. Nuevas Tecnologías
Página 18