viernes, 19 de febrero de 2010

UNIDAD # 2 BASE DE DATOS PARA LA TOMA DE DECISIONES




INSTITUTO TECNOLOGICO
DE CERRO AZUL



BASE DE DATOS AVANZADAS

ING. SALVADOR SAMORA GARZA

HP42
ESPERANZA DE LA PAZ GRANADOS GARCIA



2.1 Almacenes de Datos (Data Warehouse)


Es una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza.

Bill Inmon define un data warehouse (almacén de datos) en términos de las características del repositorio de datos.

Es una gran colección de datos que recoge información de múltiples sistemas fuentes u operacionales dispersos, y cuya actividad se centra en la Toma de Decisiones -es decir, en el análisis de la información- en vez de en su captura. Una vez reunidos los datos de los sistemas fuentes se guardan durante mucho tiempo, lo que permite el acceso a datos históricos; así los almacenes de datos proporcionan al usuario una interfaz consolidada única para los datos, lo que hace más fácil escribir las consultas para la toma de decisiones.


2.1.1 Características
del Almacén de Datos



Organizado en torno a temas. La información se clasifica en base a los aspectos que son de interés para la empresa.



Integrado. Es el aspecto más importante. La integración de datos consiste en convenciones de nombres, codificaciones consistentes, medida uniforme de variables, etc.



Dependiente del tiempo. Esta dependencia aparece de tres formas:

  • La información representa los datos sobre un horizonte largo de tiempo.
  • Cada estructura clave contiene (implícita o explícitamente) un elemento de tiempo (día, semana, mes, etc.).
  • La información, una vez registrada correctamente, no puede ser actualizada.

No volátil. El Almacén de Datos sólo permite cargar nuevos datos y acceder a los ya almacenados, pero no permite ni borrar ni modificar los datos.




2.1.2 Arquitectura Data Warehouse


La estructura básica de la arquitectura Data Warehouse incluye:
Datos operacionales. Origen de datos para el componente de almacenamiento físico del Almacén de Datos.


Extracción de datos. Selección sistemática de datos operacionales usados para formar parte del Almacén de Datos.


Transformación de datos. Procesos para sumarizar y realizar cambios en los datos operacionales.

Carga de datos. Inserción de datos en el Almacén.

Almacén. Almacenamiento físico de datos de la arquitectura Data Warehouse.

Herramienta de acceso. Herramientas que proveen acceso a los datos.


2.1.3 Diseño

Para construir un Data Warehouse se necesitan herramientas para ayudar a la migración y a la transformación de los datos hacia el almacén. Una vez construido, se requieren medios para manejar grandes volúmenes de información. Se diseña su arquitectura dependiendo de la estructura interna de los datos del almacén y especialmente del tipo de consultas a realizar. Con este criterio los datos deben ser repartidos entre numerosos data marts. Para abordar un proyecto de data warehouse es necesario hacer un estudio de algunos temas generales de la organización o empresa.


Situación actual de partida.- Cualquier solución propuesta de data warehouse debe estar muy orientada por las necesidades del negocio y debe ser compatible con la arquitectura técnica existente y planeada de la compañía.


Tipo y características del negocio.- Es indispensable tener el conocimiento exacto sobre el tipo de negocios de la organización y el soporte que representa la información dentro de todo su proceso de toma de decisiones.


Entorno técnico.- Se debe incluir tanto el aspecto del hardware (mainframes, servidores, redes,...) así como aplicaciones y herramientas. Se dará énfasis a los Sistemas de soporte a decisiones (DSS), si existen en la actualidad, cómo operan, etc.

Expectativas de los usuarios.- Un proyecto de data warehouse no es únicamente un proyecto tecnológico, es una forma de vida de las organizaciones y como tal, tiene que contar con el apoyo de todos los usuarios y su convencimiento sobre su bondad.

Etapas de desarrollo.- Con el conocimiento previo, ya se entra en el desarrollo de un modelo conceptual para la construcción del data warehouse.

Prototipo.- Un prototipo es un esfuerzo designado a simular tanto como sea posible el producto final que será entregado a los usuarios.


Piloto.- El piloto de un data warehouse es el primero, o cada uno de los primeros resultados generados de forma iterativa que se harán para llegar a la construcción del producto final deseado.

Prueba del concepto tecnológico.- Es un paso opcional que se puede necesitar para determinar si la arquitectura especificada del data warehouse funcionará finalmente como se espera.



2.2 Minería de datos (Data Mining)



La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información que reside de manera implícita en los datos. Dicha información era previamente desconocida y podrá resultar útil para algún proceso. En otras palabras, la minería de datos prepara, sondea y explora los datos para sacar la información oculta en ellos.


Las bases de la minería de datos se encuentran en la inteligencia artificial y en el análisis estadístico. Mediante los modelos extraídos utilizando técnicas de minería de datos se aborda la solución a problemas de predicción, clasificación y segmentación.


El datamining (minería de datos), es el conjunto de técnicas y tecnologías que permiten explorar grandes bases de datos, de manera automática o semiautomática, con el objetivo de encontrar patrones repetitivos, tendencias o reglas que expliquen el comportamiento de los datos en un determinado contexto.


El datamining surge para intentar ayudar a comprender el contenido de un repositorio de datos. Con este fin, hace uso de prácticas estadísticas y, en algunos casos, de algoritmos de búsqueda próximos a la Inteligencia Artificial y a las redes neuronales.




2.2.1 Antecedentes


Data mining es una etapa dentro de un proceso mayor llamado extracción de conocimiento en bases de datos, en el entorno comercial, etc. Lo que hace es reunir las ventajas de varias áreas como la Estadística, la Inteligencia Artificial, la Computación Gráfica, las Bases de Datos y el Procesamiento Masivo, principalmente usando como materia prima las bases de datos.

Es un proceso no trivial de identificación válida, novedosa, potencialmente útil y entendible de patrones comprensibles que se encuentran ocultos en los datos.


Desde el punto de vista empresarial, lo definimos como: La integración de un conjunto de áreas que tienen como propósito la identificación de un conocimiento obtenido a partir de las bases de datos que aporten un sesgo hacia la toma de decisión.


Desde los años sesenta los estadísticos manejaban términos como data fishing, data mining o data archaeology con la idea de encontrar correlaciones sin una hipótesis previa en bases de datos con ruido.

A principios de los años ochenta, Rakesh Agrawal, Gio Wiederhold, Robert Blum y Gregory Piatetsky-Shapiro, entre otros, empezaron a consolidar los términos de data mining y KDD.


El data mining es una tecnología compuesta por etapas que integra varias áreas y que no se debe confundir con un gran software. Durante el desarrollo de un proyecto de este tipo se usan diferentes aplicaciones software en cada etapa que pueden ser estadísticas, de visualización de datos o de inteligencia artificial, principalmente. Actualmente existen aplicaciones o herramientas comerciales de data mining muy poderosas que contienen un sinfín de utilerías que facilitan el desarrollo de un proyecto. Sin embargo, casi siempre acaban complementándose con otra herramienta.


La data mining es la etapa de descubrimiento en el proceso de KDD: Paso consistente en el uso de algoritmos concretos que generan una enumeración de patrones a partir de los datos pre procesados

2.2.2 Fases de proyectos de minería de datos


Los pasos a seguir para la realización de un proyecto de minería de datos son siempre los mismos, independientemente de la técnica específica de extracción de conocimiento usada:

  • Filtrado de datos

  • Selección de Variables

  • Extracción de Conocimiento

  • Interpretación y Evaluación


Las prácticas de minería de datos se realizan con base a procedimientos como:


Clasificación. Consiste en examinar las características de una entidad nueva y asignarle una clase predefinida. Por ejemplo: Clasificar a un nuevo cliente según su riesgo de crédito (alto, medio, bajo).
Estimación. Similar a lo anterior, pero aplicado a variables continúas. Por ejemplo: ingresos, balance de tarjetas de crédito, etc...

Predicción. Predicción de fidelidad de clientes "Churn Modeling". Por ejemplo: predecir qué clientes nos abandonarán en los próximos 6 meses

Grupos Afines o Reglas de Asociación. El objetivo de los grupos afines es determinar qué cosas van juntas. También puede ser usado para identificar oportunidades de “cross-selling” (venta cruzada de productos complementarios). Por ejemplo: que productos debieran ir juntos en un supermercado, recomendaciones de productos.

Clustering. Clustering tiene como objetivo el segmentar a un grupo diverso en un conjunto de subgrupos o “cluster”. A diferencia de clasificación, clustering no depende de clases predefinidas. Y es el primer paso en segmentación de mercado. Por ejemplo: un cluster particular de síntomas puede indicar una enfermedad particular

Descripción y Visualización. Algunas veces el objetivo es simplemente describir qué está ocurriendo en una base de datos compleja, para así aumentar nuestro entendimiento de las personas, productos o procesos que generaron los datos inicialmente.

2.2.3 Filtrado de datos


El formato de los datos contenidos en la fuente de datos (base de datos, Data Warehouse...) nunca es el idóneo, y la mayoría de las veces no es posible ni siquiera utilizar ningún algoritmo de minería sobre los datos en bruto.

Mediante el pre procesado, se filtran los datos (de forma que se eliminan valores incorrectos, no válidos, desconocidos... según las necesidades y el algoritmo a usar), se obtienen muestras de los mismos (en busca de una mayor velocidad de respuesta del proceso), o se reducen el número de valores posibles


2.2.4 Selección de Variables


Aún después de haber sido pre procesado, en la mayoría de los casos se tiene una cantidad ingente de datos. La selección de características reduce el tamaño de los datos eligiendo las variables más influyentes en el problema, sin apenas sacrificar la calidad del modelo de conocimiento obtenido del proceso de minería.

Los métodos para la selección de características son básicamente dos:
• Aquellos basados en la elección de los mejores atributos del problema
• Y aquellos que buscan variables independientes mediante tests de sensibilidad, algoritmos de distancia o heurísticos.


2.2.5 Extracción de Conocimiento


Mediante una técnica de minería de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables.
También pueden usarse varias técnicas a la vez para generar distintos modelos, aunque generalmente cada técnica obliga a un pre procesado diferente de los datos.


2.2.6 Interpretación y Evaluación

Una vez obtenido el modelo, se debe proceder a su validación, comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias.


En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos.


2.3Minería Web


La minería web (o minería de uso de la web) es una aplicación especial de la minería de datos que consiste en extraer información y conocimiento útil específicamente de la actividad de un sitio web: análisis de tráfico (visitas y visitantes), contenidos más accedidos, procedencia, tipo de usuarios, navegadores y sistemas operativos, reglas de asociación entre páginas (tasa de conversión), etc.

El análisis de esta información, a partir del tráfico de un sitio web registrado de una manera adecuada, es fundamental, por una parte, para entender el comportamiento y los hábitos de los clientes/usuarios del sitio y, por otra, porque ayudan a mejorar su diseño.El problema es que obtener una información fiable y precisa sobre el comportamiento real de los usuarios de un sitio web es una labor complicada por varios motivos: las particularidades de Internet (cachés intermedias, direcciones IP dinámicas, deslocalización geográfica, etc.), la heterogeneidad de las visitas (usuarios con diferentes expectativas, robots, navegadores, buscadores, etc.) o la complejidad de la información recibida (concepto de sesión, visitantes detrás de servidores proxy, nombres de máquinas y dominios, protocolos, etc.).

lunes, 15 de febrero de 2010

UNIDAD #1 Base de Datos Distribuidas

Instituto Tecnologico

De cerro Azul


Ing. Salvador Zamora Garza




Grupo: HP42

Esperanza de la Paz Granados García


Unidad 1





Base de Datos Distribuidas




Una Base de Datos Distribuida es, una base de datos construida sobre una red computacional y no por el contrario en una máquina aislada. La información que constituye la base de datos esta almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan accedan datos en distintos sitios.

Es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de la red.
Se almacenan físicamente en varias bases de datos "reales" distintas ubicadas en diferentes sitios.
Cada sitio tiene sus propias bases de datos "reales" locales, sus propios usuarios locales, sus propios DBMS y programas para la administración de transacciones.





Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual:
  • Cada sitio es un sistema de base de datos en sí mismo, pero,
  • Los sitios han convenido en trabajar juntos ( si es necesario ) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.

1.1ARQUITECTURA

La tecnología y prototipo de los sistemas de gestión de bases de datos distribuidas se han desarrollado de uno a otro y cada sistema adopta una arquitectura particular propia.

La arquitectura de un sistema de base de datos se divide en 3 niveles comunes, nivel interno, conceptual y externo.

Nivel Interno: Es el más cercano al almacenamiento físico, es decir, es el que se ocupa de la forma como se almacenan físicamente los datos.

Nivel Externo: Es el mas cercano a los usuarios, es decir, es el que se ocupa de la forma como los usuarios reciben los datos.

Nivel Conceptual: Es el nivel de mediación entre los 2 anteriores:
Externo (aplicaciones)
Conceptual (modelo, (entidad/relación))
Interno (Hardware)

1.1.1 AUTONOMÍA
La autonomía local es el grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del sistema distribuido.

Autonomía Local: Los sitios distribuidos deben ser autónomos, es decir que todas las operaciones en un sitio dado se controlan en ese sitio.








1.1.2 HETEROGENEIDAD





La Heterogeneidad de las BD es inevitable cuando diferentes tipos de BD coexisten en una organización que trata de compartir datos entre éstas.
Se caracteriza por el uso de diferentes DBMS en los nodos locales.
Hay dos subclases principales:
Los que hacen su integración totalmente dentro del sistema, y los más simples “hooks” (gancho) o los apéndices externos llamados Gateway (enlaces), para permitir enlace a sistemas ajenos.




1.1.3DISTRIBUCIÓN Y ESQUEMA GLOBAL
En los sistemas Cliente/Servidor, un objeto distribuido es aquel que está gestionado por un servidor y sus clientes invocan sus métodos utilizando un "método de invocación remota". El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje.

1.1.2 DISEÑO DE BASES DE DATOS DISTRIBUIDAS

En un sistema de base de datos distribuida, los datos se almacenan en varios computadores.
Los computadores de un sistema distribuido se comunican entre sí a través de diversos medios de comunicación, tales como cables de alta velocidad o líneas telefónicas. No comparten la memoria principal ni el reloj.
Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función.
Pueden incluir microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores.







Estructura de Base de Datos Distribuidas

Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.
Las localidades pueden conectarse físicamente de diversas formas, las principales son:
  • Red totalmente conectada
  • Red prácticamente conectada
  • Red con estructura de árbol
  • Red de estrella
  • Red de anillo
fiabilidad y disponibilidad

Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando.

En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.

El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo.

El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real.
Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.

Transparencia y Autonomía
Una relación r puede almacenarse de varias formas en un sistema de base de datos distribuida. Es esencial que el sistema reduzca al mínimo la necesidad de que el usuario se dé cuenta de cómo está almacenada una relación. Un sistema puede ocultar los detalles de la distribución de la información en la red.

Esto se denomina transparencia de la red. La transparencia de la red se relaciona, en algún modo, a la autonomía local.

La transparencia de la red es el grado hasta el cual los usuarios del sistema pueden ignorar los detalles del diseño distribuido. La autonomía local es el grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del sistema distribuido.
Los temas de transparencia y autonomía serán considerados desde los siguientes puntos de vista:
  • Nombre de los datos.
  • Repetición de los datos.
  • Fragmentación de los datos.
  • Localización de los fragmentos y copias.


1.2.1DISEÑO TOP- DOWN : FRAGMENTACIÓN.



Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos.
Consiste en partir desde el análisis de requerimientos para definir el diseño conceptual y las vistas de usuario. A partir de ellas se define un esquema conceptual global y los esquemas externos necesarios.
Se prosigue con el diseño de la fragmentación de la base de datos, y de aquí se continúa con la localización de los fragmentos en los sitios, creando las imágenes físicas.
Esta aproximación se completa ejecutando, en cada sitio, "el diseño físico" de los datos, que se localizan en éste.










1.2.2 DISEÑO BOTTOM-UP : INTEGRACIÓN DE BASES DE DATOS.


El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.
Se utiliza particularmente a partir de bases de datos existentes, generando con esto bases de datos distribuidas.
El diseño bottom-up de una base de datos distribuida requiere de la selección de un modelo de bases de datos común para describir el esquema global de la base de datos. Es posible que se utilicen diferentes SMBD.
Después se hace la traducción de cada esquema local en el modelo de datos común y finalmente se hace la integración del esquema local en un esquema global común.



1.1.3 DISTRIBUCIÓN Y ESQUEMA GLOBAL


En los sistemas Cliente/Servidor, un objeto distribuido es aquel que esta gestionado por un servidor y sus clientes invocan sus métodos utilizando un "método de invocación remota". El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje.



1.3 ARQUITECTURAS CLIENTE/SERVIDOR PARA SGBD


Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
Es Ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.


1.3.1 FILOSOFÍA CLIENTE/SERVIDOR


La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores.
Algunas redes disponen de tres tipos de nodos:


  • Clientes que interactúan con los usuarios finales.
  • Servidores de aplicación que procesan los datos para los clientes.
  • Servidores de la base de datos que almacenan los datos para los servidores de aplicación.


    Ventajas:

  • Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema.
  • Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado.

  • Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente).

1.3.2 SOCKETS

Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable ( emita o reciba información ) con otro proceso incluso estando estos procesos en distintas máquinas.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un teléfono es al sistema de comunicación entre personas: un punto de comunicación entre dos agentes( procesos o personas respectivamente ) por el cual se puede emitir o recibir información
El mecanismo de comunicación vía sockets tiene los siguientes pasos:
1º) El proceso servidor crea un socket con nombre y espera la conexión.
2º) El proceso cliente crea un socket sin nombre.
3º) El proceso cliente realiza una petición de conexión al socket servidor.
4º) El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre.

1.3.3 RPC( REMOTE PROCEDURE CALL )


Llamada a Procedimiento Remoto
Es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos.
Es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.


1.3.4 CORBA


Es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.
CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos.
Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red.
CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información.
CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones. Y así este no es un sistema operativo en si, en realidad es un middleware.


1.4 OPTIMIZACIÓN DE PREGUNTAS Y TRANSACCIONES

Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica
El lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.
BEGIN TRAN
COMMIT TRAN
ROLLBACK TRAN
Protocolo de compromiso en dos fases. (Twophasecommitprotocol).
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 (Sí o No).
3. El coordinador recoge los mensajes con los votos de todos los participantes. Si todos han votado Sí, entonces el coordinador también vota si y envía un mensaje omita todos los participantes.
4. Cada participante que ha votado sí, espera del coordinador un mensaje conmutado para terminar la transacción de forma normal o abortarla.