lunes, 30 de marzo de 2015

Actividad 14


Algoritmos Distribución Datos No Replicados.


Debido al uso que se da a las redes de computadoras en la actualidad incluyendo Internet, cada vez es más factible implementar Sistemas de Bases de Datos Distribuidas, sin embargo, esta tecnología lleva a los desarrolladores a enfrentar un problema, la carencia de metodologías y herramientas de apoyo para su diseño que permitan decidir la ubicación de los datos en cada uno de los diferentes sitios que componen la red de computadoras.
Este problema se conoce como Diseño de la Distribución y nace de la necesidad de especificar las unidades de almacenamiento adecuadas, ya sea fragmentos verticales, horizontales o mixtos, junto con su ubicación dentro de la aplicación.
El Modelo FURD, ha sido desarrollado para resolver el problema del diseño de las Bases de Datos Distribuidas, el cual está divido en dos etapas o fases: la fragmentación y la ubicación de fragmentos. Estas fases ya se concentran en el Modelo FURD.
Una vez que se resuelve el Modelo FURD se puede dar solución al problema del diseño. Sin embargo la dificultad radica precisamente en la forma de resolverlo, pues es un problema de optimización muy complejo que a medida que va creciendo su tamaño, se va haciendo más difícil la forma de resolverse.

lunes, 23 de marzo de 2015

Actividad 13 - PARTE 3


 c) Hacer los ejercicios del documento 1 ( Esquemas de fragmentación, álgebra relacional)
Sociedad médica.

• Cuenta con una oficina central y 3 centros médicos. Cada centro médico atiende ciertas especialidades. Una especialidad se puede atender en varios centros. Todo centro médico tiene al menos una especialidad.
• Actualmente utilizan la siguiente BD relacional centralizada:
• Diseñar esquemas de fragmentación y álgebra relacional de una BDD que tenga la mayor autonomía local, sabiendo que en los centros se necesita:
– En la oficina central (Centro.Código=0) la información para realizar las nóminas de todos los empleados.
Algebra relacional :

σ (nombre, salario, IRPF, centro) where Centro.codigo=0 (Empleado)
π(se debe de tomar la clave en las proyecciones) código, nombre, dirección, Tfno (Centro)

En el resto de centros, los horarios de sus consultas y la información de su personal y de sus especialidades.
π código, nombre, dirección, Tfno (Centro)
σ centro, hora (Consulta)

π código, nombre, dirección, salario, IRPD, fecha_inic, centro (Empleado)
π código, nombre, descripcion (Especialidad)

Ejercicios Miércoles 25

Actividad 13 - PARTE 2


b) leer los siguientes documentos, elabore un resumen
Resumen Martes 24
http://www.unirioja.es/cu/arjaime/Temas/09.Distribuidas.pdf
http://www.uax.es/publicacion/diseno-de-un-sistema-gestor-de-base-de-datos-distribuida-basada-en-oracle9i.pdf













viernes, 20 de marzo de 2015

Actividad 13 - PARTE 1

Investigar :


a)Sistemas gestores de bases de datos distribuidas existentes
Definición de un Sistema Gestor de Base de Datos (DBMS)
  • Un SGBD es una colección de programas que permiten a los usuarios crear y mantener una base de datos.
  • Sistema software de propósito general que facilita los procesos de definición, construcción y manipulación de la base de datos para distintas aplicaciones.
Definición de la base de datos: Especificar tipos de datos, estructuras y restricciones.
Construcción de la base de datos: Almacenar datos.
Manipulación de la base de datos: Consultar, actualizar el diseño y generar informes. 
Si la base de datos son los datos almacenados el Sistema Gestor de Bases de Datos es el programa o conjunto de programas que gestionan y mantienen consistentes estos datos.

Sistemas Gestores De Bases de Datos
Oracle
Precio: 80 y 400 dólares dependiendo del tipo de licencia de usuario
Seguridad: 
  • Oracle pone al alcance del DBA varios niveles de seguridad:
  • Seguridad de cuentas para la validación de usuario.
  • Seguridad en el acceso a los objetos de la base de datos.
  • Seguridad a nivel de sistema para la gestión de privilegios globales. 
Flexibilidad:
La tecnología Oracle para organizaciones en crecimiento es abierta, fácil de integrar, simple de administrar y altamente escalable, lo cual ayuda a adaptarse más rápido a los cambios del mercado o a los requerimientos del cliente. Las soluciones Oracle permiten alinear sus procesos con las cambiantes necesidades durante un largo período, brindando así valor continuo para su empresa.
Estabilidad:
  • Es muy resistente.
Capacidad:
La capacidad de BDD es alta ya que soporta hasta 4 peta bytes deinformación.
MySql
Precio:
  • Sin costo 
Seguridad:
Para encontrar información específica sobre el sistema de control de accesos que MySQL. Utiliza para crear cuentas de usuarios y comprobar el acceso a las bases de datos.
Flexibilidad:
Es sumamente fácil de administrar, operar y es famoso por su instalación de 15 minutos, la cual en 15 minutos es posible instalar, configurar y montar una BD relacional ya sea sistemas OLTP o bien OLAP, aunque por excelencia MySQL Server es comunmente usado para desarrollos Web 2.0 y Enterprise2.0.
Estabilidad:
Intentaremosclarificar estas cuestiones y responder algunas preguntas importantes quepreocupan a muchos usuarios potenciales. La información en esta sección se basaen datos recopilados de las listas de correo, que son muy activas paraidentificar problemas así como para reportar tipos de usos.
Capacidad dealmacenamiento:
  • Win32 w/ FAT/FAT32 2GB/4GB 
  • Win32 w/ NTFS 2TB
  • Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
  • Linux 2.4+ (usando ext3 filesystem) 4TB
  • Solaris 9/10 16TB
  • MacOS X w/ HFS+ 2TB
  • NetWare w/NSS filesystem 8TB
DBase
Precio:
  • Sin costo.
Seguridad:
La seguridad en dBASE Plus sigue siendo muy similar a la que ya existía antiguamente en la base de datos MS/DOS dBASE 2.0, 
Básicamente tiene dos niveles, el primero es similar a la de cualquier otra base de datos, si se establece, es necesario dar usuario, grupo y contraseña. 
Aunque es un poco mejor que la simple protección de acceso a la base de datos, puesto que se puede catalogar a cada usuario en 9 niveles, desde el nivel 0 que seria como un administrador, hasta el nivel 9 que sería la menor autorización. El programador puede controlar a través de la función ACCESS () el nivel que tiene el usuario, y adaptar la visualización de menús en función de dicho nivel, etc. etc. 
Flexibilidad:
La ventana deEscritorio descrita en este artículo es una combinación de estilos que se tomode diferentes programas. Es un tributo al poder fácil y entendible flexibilidadque hace de dBASE una plataforma superior de desarrollo. Como es a menudo elcaso, una simple vista de diseño puede enmascarar mucho de la complejidad delsoftware. Es difícil hacer que el software se vea fácil.
Estabilidad:
Es excelente para el uso de base de datos.
Capacidad de almacenamiento:
Dbase soportamas de 40 tablas abiertas osea DBF files. Cada una con capacidad para 2billones de transacciones en almacenamiento.
FileMaker Pro
Precio:
475.58
Seguridad:
La Gestione el acceso de los usuarios mediante la autenticaciónexterna a través de Active Directory/Open Directory. Proteja la transferenciade sus datos con el cifrado SSL.
Flexibilidad:
FileMaker Pro es el programa de bases dedatos que tiene la potencia y flexibilidad para manejar todas tus funciones decada día en casa y en la oficina sin tener que aprender instrucciones deprogramación complejas.
Estabilidad:
Su estabilidad es buena ya que es muysencilla y también uno no se pierde en las pantallas como se hace en Access.
Microsoft Access

Precio:
139.99
Seguridad:
Existen diferentes estrategias paracontrolar el nivel de acceso a la base de datos de Microsoft Access ysus objetos. Estas estrategias se describen brevemente a continuación,ordenadas por nivel de seguridad:
  • -Codificación y decodificación
  • -Mostrar u ocultar objetos en la ventanaBase de datos
  • -Utilizar opciones de inicio
  • -Mediante una contraseña
  • -Seguridad por usuarios
  • -Evitar que los usuarios copien una base de datos, y establezcan -contraseñas u opciones de inicio
  • -Proteger el código de Microsoft Visual Basic para Aplicaciones (VBA)
  • -Proteger páginas de acceso a datos
Flexibilidad:
Para lograr la máxima flexibilidad parauna base de datos, la información tiene que estar organizada en tablas, paraque no haya redundancias.
Estabilidad:
Su estabilidad es buena porquees adaptable y se puede utilizar en algunos sistemas operativos.
Capacidad de almacenamiento:
El limite esta en dosmil millones de registros o un tamaño de 2GB.
Publicar investigacion Lunes 23

jueves, 12 de marzo de 2015

Actividad 12


• Investigar y exponer los diferentes tipos de fragmentación: horizontal, vertical e híbrida. Publicando
en su blog individual.

Fragmentación

El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red. Inmediatamente aparece la siguiente pregunta: ¿Cuál es la unidad razonable de distribución?. Se puede considerar que una relación completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas.

La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecución concurrente de varias transacciones que accesan porciones diferentes de una relación. Sin embargo, el uso de sub-relaciones también presenta inconvenientes. Por ejemplo, las vistas de usuario que no se pueden definir sobre un solo fragmento necesitarán un procesamiento adicional a fin de localizar todos los fragmentos de una vista. Aunado a esto, el control semántico de datos es mucho más complejo ya que, por ejemplo, el manejo de llaves únicas requiere considerar todos los fragmentos en los que se distribuyen todos los registros de la relación. En resumen, 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.

Tipos de fragmentación:

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.

Fragmentación Horizontal:

Como se ha explicada anteriormente, 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.


Fuentes de investigación:
https://iessanvicente.com/colaboraciones/BBDDdistribuidas.pdf
http://amazonasopina.blogspot.mx/2012/09/la-transparencia-en-las-bases-de-datos.html

martes, 10 de marzo de 2015

Actividad 11

Usando como referencia el libro de fundamentos de base de datos responda a las siguientes preguntas y publique en su blog.


¿Qué es una transacción?

Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos.
Una transacción se inicia por la ejecución de un programa de usuario escrito en un lenguaje de manipulación de datos de alto nivel o en un lenguaje de programación, y está delimitado por instrucciones de la forma inicio transacción y fin transacción. La transacción consiste en todas las operaciones que se ejecutan entre inicio transacción y el fin transacción.
¿Qué significa ACID? y defina cada una de las palabras que forman las siglas.

El acrónimo se obtiene de la primera letra de cada una de las cuatro propiedades en inglés (Atomicity, Consistency, Isolation y Durability, respectivamente)
Atomicidad. O todas las operaciones de la transacción se realizan adecuadamente en la base de datos o ninguna de ellas.
Consistencia. La ejecución aislada de la transacción (es decir, sin otra transacción que se ejecute concurrentemente) conserva la consistencia de la base de datos.
Aislamiento. Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que para cada par de transacciones Ti y Tj que para los efectos de Ti su ejecución antes de que comience Ti , o bien que Tj ha comenzado su ejecución después de que Ti termine. De este modo, cada transacción ignora al resto de las transacciones que se ejecuten concurrentemente en el sistema.
Durabilidad. Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema, se cumple, o bien Tj ha terminado.

¿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
Los siguientes son los aspectos más importantes relacionados con el 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 (Active): El estado inicial; la transacción permanece en este estado durante su ejecución. 
  • Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.
  • Fallida (Failed): Tras descubrir que no se puede continuar la ejecución normal.
  • Abortada (Rolled Back): 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 (Commited): Tras completarse con éxito.


lunes, 9 de marzo de 2015

Actividad 10

• Explicar los tipos de transparencia y como se aplican en un BDD (transparencia de localización, transparencia de fragmentación, transparencia de réplica.)

• Buscar ejemplos de fragmentación ( minimo 3) y publicar en el blog.

Tipos de transparencias
a) Transparencia de Localización.- Permite a los usuarios accesar a la información de un archivo cualquiera de la BD sin necesidad de indicar en que computadora se encuentra el archivo.
b) Transparencia de Fragmentación.- Permite al usuario accesar a la información de un archivo fragmentado como si todos los datos del archivo estuvieran en una misma computadora. Es decir, cuando se crea transparencia de fragmentación, el sistema crea la ilusión de que los archivos no están fragmentados.
c) Transparencia de réplica.- La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos, esta debe ser controlada por el SMBDD, más no por el usuario. El usuario no necesita saber sobre la replicación de los datos, la función principal de la transparencia de replicación es la de mantener la consistencia entre las copias, esta funciona en forma transparente a las aplicaciones.
La replicación puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, porque alterna opciones de acceso de los datos existente

Fragmentación



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.
La fragmentación vertical se basa en los atributos de la relación para realizar la división, es decir: la subdivisión de atributos en grupos. La fragmentación es correcta si cada atributo se mapea en al menos un atributo del fragmento.
La partición vertical resulta más complicada que la horizontal. Esto se debe al aumento del número total de alternativas que tenemos disponibles.
Ejemplo:



Fragmentación horizontal

Se realiza sobre las tuplas de la relación, es decir que cada fragmento será un subconjunto de las tuplas de la relación.
Una tabla T se divide en subconjuntos, T1, T2, …Tn. Los fragmentos se definen mediante una operación de selección. Su reconstrucción se realizará mediante la unión de los fragmentos componentes.
Existen dos tipos de fragmentación como es: fragmentación horizontal primaria y la fragmentación horizontal derivada.
Ejemplo:



Fragmentación Mixta

La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y, posteriormente, aplicando la fragmentación horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones.
Ejemplo:



viernes, 6 de marzo de 2015

Evidencias 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.

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