jueves, 26 de marzo de 2015

Actividad #13

Esquema de framentación y distribución de una BDD
El objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas.Cada relación global puede ser dividida en porciones que no se solapen llamados fragmentos. 
El mapa resultante se denomina esquema de fragmentación. Una relación global puede dividirse en n fragmentos y un fragmento sólo puede pertenecer a una relación global.
Los fragmentos son porciones lógicas de relaciones globales que pueden estar físicamente ubicadas en uno o varios nodos de la red. 
El esquema de ubicación define en qué nodos un fragmento va a ser almacenado. El tipo de mapa definido en el esquema de ubicación determina si la BDD es redundante o no. Todos los fragmentos que corresponden a la misma relación global R y están ubicados en el mismo nodo constituyen la imagen física de una relación global R en el nodo. Las imágenes físicas se pueden referenciar por el nombre de la relación global R y un superíndice; por ejemplo, Rj indica la imagen física de la relación global R en el nodo j.
se denomina copia de fragmento a la información de un fragmento en un nodo determinado en un nodo dado, y se denota usando el nombre de la relación global, un subíndice y un superíndice. Por ejemplo, R3 2 indica copia del fragmento R2 que está ubicado en el nodo 3. Dos imágenes físicas pueden ser idénticas; se dice entonces que una imagen física es copia de otra imagen física.
Esquema de fragmentacion:
Es el conjunto de fragmentación que:
  • fragmentación completa: todos los atributos y tuplas están en algún fragmento.
  • permite reconstruir la BD original
Presentación:







viernes, 20 de marzo de 2015

Actividad #12

Sistema de Gestión de Base de Datos Distribuida
Un sistema de gestión de bases de datos distribuidas (SGBDD) es un Sistema de Gestión de bases de datos que gestiona la BD distribuida
Funcionalidades adicionales de un SGBDD
  • Accede a sitios remotos y transmite consultas y datos a través de varios sitios mediante una red de comunicación.
  • Almacena el esquema de distribución y replicación de los datos en el catalogo del sistema.
  • Establece las estrategias de ejecución de las consultas y las transacciones que acceden a los datos en más de un sitio.
  • Decide sobre cual copia de los datos replicados acceder.
  • Mantiene la consistencia de las copias de los datos replicados.
  • Realiza la recuperación ante los fallos.

Oracle
es una potente herramienta cliente/servidor para la gestión de Bases de Datos. Explicamos la herramienta y las ayudas que ofrece al desarrollador.
Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que sólo se vea en empresas muy grandes y multinacionales, por norma general. En el desarrollo de páginas web pasa lo mismo: como es un sistema muy caro no está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server, etc.
Microsoft SQL Server 
es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son OraclePostgreSQL o MySQL.
PostgreSQL
es un Sistema de gestión de bases de datos relacional orientado a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
MySQL 
es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB—desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.

Resumen 1: Bases de datos Distribuidas(BDD)
Sistema de computación distribuido: elementos de procesamiento que cooperan en la ejecución de tareas, interconectados por una red de ordenadores.
– No han de ser homogéneos
– Dividen un problema en otros más manejables y los resuelven de modo coordinado
BD distribuida (BDD): son varias BD interrelacionadas lógicamente y situadas en diferentes nodos de una red de ordenadores.
SGBD distribuido: el que gestiona BD distribuidas de forma transparente para el usuario (éste ve las BD como si fueran una sola BD centralizada)
Ventajas de las BDD:
– Localización transparente de los datos: las instrucciones no dependen de dónde se ejecutan ni de dónde se sitúan los datos
– Transparencia en los nombres: un objeto se accede por su nombre, sin ambigüedad y sin especificar nada más.
– Transparencia de fragmentación: fragmentación horizontal es distribuir una tabla en varios conjuntos de tuplas (cada uno en un ordenador). La vertical en distribuir la tabla en conjuntos de atributos. La consulta sobre la tabla se transforma de modo automático en varias consultas sobre sus fragmentos
Fragmentar: decidir dónde situar las partes de la BDD 
– Se puede plantear top-down (como aquí) o bottom-up 
• Idea simple: situar cada tabla en un ordenador distinto
La replicación mejora la disponibilidad de los datos
• Caso extremo: tener una réplica de la BD completa en cada sitio (ordenador):
– Ventajas: mejora el rendimiento local y global además de la disponibilidad (con un sitio activo se accede a toda la BD) 
– Inconvenientes: actualizaciones más costosas (se deben realizar en todas las réplicas para mantener la coherencia). El control de concurrencia y recuperación es también más costoso.
Esquema de replicación: describe qué se replica
Asignación: dónde se sitúan los fragmentos y réplicas
– La elección del lugar y el grado de replicación depende de los objetivos de rendimiento y disponibilidad. También del tipo de transacciones y su frecuencia.
– Encontrar una solución óptima o incluso una buena es un problema complejo

Resumen 2: Diseño de un sistema gestor de base de datos distribuida basado en Oracle9i
Una BDD (base de datos distribuida) a “una colección lógicamente interrelacionada de datos compartidos (junto con una descripción de estos datos) físicamente distribuidas por una red informática”

Un SGBDD se compone de una única base  de datos lógica, que físicamente está dividida en fragmentos ubicados en nodos distintos e interconectados mediante una red de comunicaciones.
La diferencia entre SGBD distribuido y SGBD paralelo definido como “un SGBD  que se ejecuta sobre múltiples procesadores y utilizando múltiples discos y que está diseñado para ejecutar las operaciones en paralelo”
El factor más importante que diferencia a  unos SGBDD de otros es la transparencia.
Esto supone que no se requiere soporte para la manipulación de datos (transparente para el usuario) pero si se requieren operaciones de definición de datos (FRAGMENT, REPLICATE).
Desde el punto de vista académico los dos tipos de software conocidos son:
•  Microsoft Access, con un SGBD muy sencillo porque da soporte a una base de datos de oficina muy poco sofisticada. No proporciona funcionalidad de BDD, pero se pueden implementar módulos que simulen la fragmentación, replicación y consultas distribuidas. Sin embargo, no se garantiza la fiabilidad del SGBDD desarrollado.
•  MySQL, no proporciona actualmente soporte alguno para los BDD verdaderos.
•  Oracle9i, (KOCH, G., 2003); no ofrece utilidades para fragmentar, replicar y realizar consultas optimizadas, pero se  la ha elegido como plataforma para desarrollar la transparencia debido a sus prestaciones como SGBD.
El catálogo en una base de datos centralizada proporciona la información relativa a las relaciones, vistas e índices se almacena en un CATALOGO o DICCIONARIO DE DATOS.
Fragmentación de la base de datos original: La fragmentación debe poder ser mixta y derivada con asignación de los fragmentos a distintos nodos. La fragmentación mixta es una combinación de horizontal y vertical. La fragmentación horizontal se aplica cuando se extraen fragmentos por selección de tuplas que cumplan una determinada condición.  La fragmentación vertical se aplica cuando se extraen fragmentos por selección de atributos de todas las tuplas. Por tanto, la fragmentación mixta se aplica a la selección de varios  atributos de las tuplas que cumplan una determinada condición. La fragmentación derivada es aquella que afecta a más de una tabla porque el criterio de fragmentación de una tabla afecta a atributo(s) que actúa(n) como clave extranjera en otra(s).






jueves, 12 de marzo de 2015

Actividad #11


Tipos de Fragmentación
Existen  tres  tipos  de  fragmentación:
1.  Fragmentación horizontal
2. Fragmentación vertical
3. Fragmentación mixta o híbrida.
Dado que una relación se corresponde esencialmente con una tabla y la cuestión consiste en dividirla en fragmentos menores, inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. Estos  dos  tipos  de  partición  podrían  considerarse  los fundamentales y básicos. Sin embargo, existen otras alternativas. Fundamentalmente, se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores.
En algunos lenguajes y especialmente en la teoría de bases de datos, una tupla se define como una función finita que mapea (asocia unívocamente) los nombres con algunos valores.
FRAGMENTACIÓN HORIZONTAL (HF):
La fragmentación horizontal se realiza sobre las tuplas de la relación. Cada fragmento será un subconjunto de las tuplas de la relación. Existen dos variantes de la fragmentación horizontal: la primaria y la derivada. La fragmentación horizontal primaria de una relación se desarrolla empleando los predicados definidos en esa relación. Por el contrario, la fragmentación horizontal derivada consiste en dividir una relación partiendo de los predicados definidos sobre alguna otra.

Fragmentación Vertical:
El objetivo de la fragmentación vertical consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento. Sobre este marco, una fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos.

Fragmentación mixta o híbrida:
En muchos casos la fragmentación vertical u horizontal del esquema de la base de datos no será suficiente para satisfacer los requisitos de las aplicaciones. Como ya se citó al comienzo de este documento podemos combinar ambas, utilizando por ello la denominada fragmentación mixta. Cuando al proceso de fragmentación vertical le sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentación mixta HV

Presentación





martes, 10 de marzo de 2015

Actividad #10

¿Qué es una transacción?
Es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos.

¿Qué significa ACID?  y defina cada una de las palabras que forman las sigla
ACID: Atomicity, Consistency, Isolation y Durability
  • La atomicidad asegura que, o bien todos los efectos de la transacción se reflejan en la base de datos, o bien ninguno de ellos; un fallo no puede dejar a la base de datos en un estado en el cual una transacción se haya ejecutado parcialmente.
  •  La consistencia asegura que si la base de datos es consistente inicialmente, la ejecución de la transacción (debido a la misma) deja la base de datos en un estado consistente.
  • El aislamiento asegura que en la ejecución concurrente de transacciones, están aisladas entre sí, de tal manera que cada una tiene la impresión de que ninguna otra transacción se ejecuta concurrentemente con ella.
  • La durabilidad asegura que, una vez que la transacción se ha comprometido, las actualizaciones hechas por la transacción no se pierden incluso si hay un fallo del sistema. 
¿Qué significa Tx?
Tx significa Transmisión o Transmisor (en este caso Transacción).


¿Para que nos sirve el Rollback?
En tecnologías de base de datos, un rollback es una operación que devuelve a la base de datos a algún estado previo.


Defina Integridad de datos
Integridad de datos en general: hace referencia a que todas las características de los datos (reglas, definiciones, fechas, etc) deben ser correctos para que los datos estén completos.
Integridad de datos en bases de datos: Integridad de datos se refiere al estado de corrección y completitud de los datos ingresados en una base de datos.

Defina concurrencia
La concurrencia es la propiedad de los sistemas que permiten que múltiples procesossean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.


Defina Grado de consistencia
Podría definirse como la coherencia entre todos los datos de la base de datos.


Mencione aspectos relacionados al procesamiento de transacciones
  • Modelo de estructura de transacciones: Es importante considerar si las transacciones son planas o pueden estar anidadas.
  • Consistencia de la base de datos interna: Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.
  • Protocolos de confiabilidad: En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales.
  • Algoritmos de control de concurrencia: Los algoritmos de control de concurrencia deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.
  • Protocolos de control de réplicas: El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).
Defina los estados de una transacción:
  • Activa: el estado inicial; la transacción permanece en este estado durante su ejecución.
  • Parcialmente comprometida, después de ejecutarse la última instrucción.
  • Fallida, tras descubrir que no puede continuar la ejecución normal.
  • Abortada, después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
  • Comprometida, tras completarse con éxito.

lunes, 9 de marzo de 2015

Actividad #9

Transparencia

La transparencia oculta al usuario la parte del cómo están organizadas las bases de datos distribuidas en los diferentes nodos físicos en las que se encuentran, esto hace que el usuario vea a la base de datos distribuida como si fuera una sola base de datos.

Tipos de transparencia:
  • Transparencia de Sistemas de gestión de base de datos SGBD
  • Transparencia de transacción
  • Transparencia de concurrencia
  • Transparencia respecto a fallos
Transparencia de Sistemas de gestión de base de datos SGBD
No es necesario para el usuario saber los nombres de los fragmentos menos la ubicación de estos, como se hace la replicación los nombres en cada uno de los nodos.
  1. Transparencia de fragmentación. El usuario no sabe cómo están fragmentadas las tabla en las base de datos. El usuario no necesita especificar el nombre de los fragmentos de las tablas.
  2. Transparencia de la ubicación. Puede darse el caso de que el usuario conozca cómo se encuentran fragmentadas las tablas, pero no conoce y no es necesario que sepa la ubicación de etas.
  3. Transparencia de la replicación. El usuario no sabe que nodos que contienen los fragmentos son replicados, tampoco es necesario que lo sepa para poner en funcionamiento una aplicación.
  4. Transparencia de denominación.  Cada elemento de la base de datos distribuida debe tener un nombre igual en cada uno de los nodos en que se encuentra distribuida, eso hace que el usuario manipule los elementos como si estudiaran centralizados en una sola base de datos.
Transparencia de concurrencia
  1. Los sistemas de gestión de base de datos distribuidas brindan transparencia de concurrencia si es que las transacciones independientes son lógicas y tienen similitud con que se puedan hacer al mismo tiempo, es decir los resultados serían los mismos se hiciere de una sola vez. Esto sucede con la replicación, por ejemplo, dado que este proceso es asíncrono.
Transparencia de transacción
  1. Se garantiza que todas las transacciones mantengan la integridad y coherencia de datos de la base de datos distribuida, es decir en todos sus nodos y fragmentos. Por ejemplo se puede utilizar todos los fragmentos de una tabla – estos fragmentos pueden estar físicamente en diferentes ubicaciones – de una sola vez.
  2. Una transacción internamente está dividida en sub transacciones para ocupar cada uno de los nodos que contenga los datos que se requiere, esto no es visible para el usuario. Este, simplemente envía una sola transacción.
Transparencia respecto a fallos
  1. Garantizar la atomicidad de la transacción, es decir mostrar los resultados si es que todas las sub transacciones no tuvieron error, o parar todo el proceso y algún subproceso tuvo error. Por lo tanto SGBDD debe sincronizar todas las sub transacciones mediante la transacción global


viernes, 6 de marzo de 2015

Evidencia de la práctica de Base de Datos Distribuida


Este es un reporte que contiene las evidencias del trabajo en clase sobre el proyecto de Base de Datos Distribuída.

Yamileth González                                                                                      Cristian Ramírez

Base de datos: "Librería"

a) Genere un reporte individual que contenga:
  • · Diseño de la base de datos
  • · Conceptual (Diagrama entidad relación), Lógico (Esquema relacional, Diccionario de datos), Físico (Implementación)
· 1.- Conceptual (Diagrama entidad relación).
2.- Lógico (Esquema relacional, Diccionario de datos).



3.- Fisico (Implementación)


  • Diagrama de la base de datos ( Cómo se distribuyeron los datos)
    · Ejemplo con la tabla libro



  • Software utilizado.
    Para la implementación de ésta BDD se utilizó el software Mysql-workbench
    (Imagen de la instalación)






  • Problemas encontrados y como resolvieron.

Durante el proceso de la elaboración de la BDD surgieron algunos problemas que tardaron en solucionarse ya que no contábamos con los conocimientos suficientes para hacerlo.

1: No teníamos idea de cómo comenzar ya que únicamente teníamos experiencia con las BD centralizadas. Así que tuvimos que investigar y retomar los conceptos vistos en la primera unidad de la materia.

Aún así, no funcionaba y procedimos a buscar tutotiales en YouTube y Blogs en internet
Encontramos un video sobre replicación de BD y procedimos a implementarla como Master- Master.
Hasta que la maestra, nos dijo que no era ésto lo que pedía el problema.

Finalmente, uno de nuestros compañeros de clase: Ernesto Valdéz encontró el tutorial adecuado y logró conectarlas bases de datos entre los integrantes de su equipo. Fue él quién nos dijo cuál software utilizar y cómo configurar tanto el servidor como el usuario normal.

Finalmente lo logramos.
Y pudimos aprender cómo es que funcionan éstas bases, y la importancia de los privilegios como administrador.

**Presentación de la práctica en Power Point**
https://drive.google.com/?authuser=0#my-drive