miércoles, 3 de marzo de 2010
Enlaces De La Segunda Unidad
Enlaces De La Primer Unidad
Enlace de la Presentación de Power Point, Trabajo En equipo
Unidad # 1
Enlace al Cuestionario de la unidad # 1
NOTA: Si al momento de entrar al enlace no muestra la información, de clic en el boton descargar y posteriormente abrir.
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
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
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.
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.
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
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.
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
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.
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.
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:
• Y aquellos que buscan variables independientes mediante tests de sensibilidad, algoritmos de distancia o heurísticos.
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
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
Ing. Salvador Zamora Garza
Base de Datos Distribuidas
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.
- 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 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)
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.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.
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
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
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.
- 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
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
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.