viernes, 27 de marzo de 2015

Actividad #14

Una base de datos no replicada guarda una base de datos en un solo sitio por consiguiente, por consiguiente no existe no existen base de datos duplicadas.
Varios factores influyen en la decisión de utilizar replicas de datos.
Tamaño de base de datos.
Frecuencia de usos.
Costos- de desempeño, software,  indirectos y de administración, - asociados con la sincronización de las transacciones y de sus componentes vs beneficios de tolerancias a las fallas asociados con los datos  replicados.

Permite maximizar el costo de comunicación y al mismo tiempo maximizar el tiempo de respuesta. El administrador de bases de datos debe de evaluar el modo de operar de la base de datos, es decir como su nombre lo indica no podemos realizar el algoritmo en aquellas copias, pero debe ser sobre la base de datos original .La fragmentación hibrida es de preferencia lo que debe de llevar este tipo de algoritmos, porque estas utilizan las tres fragmentaciones y las mas aconsejables.
Hablar de algoritmos implica sobre la Programación

Hay gestores que son muy flexibles en cuestiones de programación, mientras que otros ofrecen más rendimiento. Así, al diseñar el algoritmo tendrá que hacer toda la información referente a la vida de la base de datos pero por otro lado deberá buscar siempre de darle soluciones al usuario, pues este será el que al final de cuentas interesa. Existen en la actualidad infinidad de tecnologías en cuanto a los gestores de la base de datos se refiere, el que utilizaremos (el mas actual) será SQL SERVER, este gestor comenzó a crearse por la década de los 90´s, ofrece muchas ventajas sobre otros gestores, la única desventaja que podríamos encontrar en su compatibilidad con los Windows mas comerciales como el 98, XP entre otros. Se preguntaran que tiene que ver el gestor con los algoritmos de datos no replicados, sin embargo la respuesta es muy sencilla, y esta es que este algoritmo es fácil de implantar en SQL SERVER.

Ejercicios

Ejercicio de diseño de base de datos distribuidos: La sociedad médica.
Primero se realiza una proyección de la tabla:
∏código, nombre, dirección, salario, centro (empleado where (centro.código=0))
Fragmentación vertical.
Código
Nombre
Dirección
Salario
Centro

En el resto de centros, los horarios de sus consultas y la información de su personal y de sus especialidades.
Se hace una proyección de en su mayoría los campos de la tabla centro, después también se toman las demás tablas para saber la informacion que se quiere obtener.
∏código, nombre, dirección, teléfono (centro) AND hora (consulta) AND fecha_inic (empleado) AND descripción (especialidad)
Fragmentación vertical.
Código
Nombre
Dirección
Teléfono
Hora
Fecha_inic
Descripción

Ejercicio de diseño de base de datos distribuidoas: servicios informáticos.
Se realiza una fragmentación horizontal (selección) de los atributos de la tabla proyecto.
código, nombre, presupuesto, empresa, jefe, unidad (proyecto)
Fragmentación horizontal.
Código
Nombre
Presupuesto
Empresa
Jefe
Unidad

Así mismo, se realiza también una fragmentación horizontal (selección) con la tabla empleado, arrojando los siguientes datos:
código, nombre, apellidos, dirección, unidad (empleado)
Fragmentación horizontal.
Código
Nombre
Apellidos
Dirección
Unidad

La unidad de recursos humanos realiza la facturación y usa todos los datos de las empresas. El resto de unidades sólo necesita el código y nombre de las empresas con las que trabaja.
Como se desea saber todos los datos de la empresa se hace una selección de todos los atributos de la misma, luego se impone una condición donde solo se necesita el código de las empresas, y los proyectos con los que se esta trabajando.
código, nombre, dirección, correos (empresa where  empresa.código= proyecto.empresa AND (proyecto.unidad=unidad.código AND (unidad.edificio=edificio.código=0)))
Fragmentación horizontal.
Código
Nombre
Dirección
Correos




código, nombre (empresa where (empresa.código=proyecto.empresa AND (proycto.unidad=unidad.código NOT (unidad.edificio=edificio.código=0)))
Fragmentación horizontal.
Código
Nombre

Hay proyectos internos, y por tanto sin factura, que tienen valor nulo en su campo empresa.
código, nombre, presupuesto, jefe, unidad (proyecto)
Fragmentación horizontal.
Código
Nombre
Presupuesto
Jefe
Unidad



miércoles, 25 de marzo de 2015

Actividad 13 ejercicios

Ejercicios.

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 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.
Esquema de fragmentación:



Álgebra relacional:
π  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)










lunes, 23 de marzo de 2015

Actividad #13 (B)


Sistema de computación distribuido: Son las partes del procesamiento que ayudan en ejecutar las tareas, que están interconectadas por una red de ordenadores.
Las bases de datos distribuidas son aquellas BD que están interconectadas lógicamente, situadas en algún nodo especifico.
Un sistema gestor de bases de datos distribuido, como su nombre lo indica administra o gestiona las bases de datos distribuidas, pero para el usuario esto no es notorio, ya que lo ve como si fuera una centralizada.
Entre las ventajas que encontramos esta, como ya lo comente una localización transparente, ya que las instrucciones no deben de depender de los datos ni de donde se esté ejecutando.
Transparencia en nombres, por lo que un objeto se accede por su nombre y nada más.
Expansión más sencilla, por lo tanto se pueden añadir mucho más datos, mejor procesamiento.
Un directorio global o catálogo global, tiene la información de fragmentado, por lo que el SBDD lo utiliza.
La replicación mejora tener al alcance los datos y en casos extremos tener una réplica de la base de datos sería algo en el cual podrías estar más seguro de tener esa información.
En un SGBD sin transparencia de distribución se debe de indicar el sitio y la tabla sobre la que se realiza la consulta, aparte de que también si no se tiene transparencia de la replicación, tenemos que mantener nosotros mismos la consistencia de esos datos, en cambio teniendo estos aspectos de transparencia, aparte también teniendo transparencia de fragmentación, se obtienen beneficios muy valiosos como lo es que las consultas y las actualizaciones se comportasen como si fuera en un sistema centralizado,.
Aparte de que el sistema gestor de bases de datos es el encargado de descomponer y empezar a dirigir a los fragmentos adecuados.

sábado, 21 de marzo de 2015

Actividad 13 (B)

Da algunas características de lo que son las BDD, aparte del concepto que si bien ya lo hemos definido bien durante el trayecto del curso.
También cita algunas de las ventajas que ofrecen, como lo son mejora del rendimiento, Más fiabilidad y disponibilidad, y como ya lo vimos en el tema anterior la transparencia de fragmentación.
Así mismo habla de lo importante que es contar con una replicación para la disponibilidad de los datos.
Algunos diseños de bases de datos se pueden solucionar según se den las situaciones de cada empresa y en la que cada planteamiento del problema puede variar, y que bueno como ya sabemos, las BDD están unidas por medio de una red de comunicaciones.
Aparte de que Un SGBDD con consultas optimizadas, realizará una evaluación de las posibles soluciones a una consulta, de tal manera que ejecutará la más eficiente, midiendo la eficiencia en términos de bytes transferidos.



viernes, 20 de marzo de 2015

Actividad #13 (A)

Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
  • Hay múltiples computadores, llamados sitios o nodos.
  • Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.

Algunos de los sistemas gestores de bases de datos son los siguientes mencionados:
  • Microsoft SQL server 2008
  • Oracle 11g
  • Apache Cassandra.


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 de gestores de bases de datos como son Oracle, PostgreSQL y MYSQL.



Oracle Database 11g brinda desempeño y escalabilidad récord en servidores UNIX, Linux y Windows. Brinda un ROI rápido al permitir a los usuarios pasar de un solo servidor a grid computing sin tener que cambiar ni una sola línea de código.
Oracle Database 11g ofrece mejores resultados al automatizar las tareas administrativas y ofrecer características de cumplimiento regulatorio y seguridad líder del sector. Su funcionalidad de Clusters en Tiempo Real permite la máxima disponibilidad de datos. Con un rango de ediciones y costos de operatividad más bajos que IBM DB2 o Microsoft SQL Server, es la opción ideal para las empresas en crecimiento. Encuentre la edición justo para usted.


Apache Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su plataforma. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P con lo que la redundancia es máxima.
Cassandra está desarrollada por Apache Software Foundation.
En las versiones iniciales utilizaba un API propia para poder acceder a la base de datos. En los últimos tiempos están apostando por un lenguaje denominado CQL (Cassandra Query Language, no confundir con Contextual Query Language) que posee una sintaxis similar a SQL aunque con muchas menos funcionalidades. Esto hace que iniciarse en el uso de la misma sea más sencillo. Permite acceder en Java desde JDBC.


jueves, 12 de marzo de 2015

Actividad#12

Tipos de fragmentación.

Fragmentación horizontal.

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.


Básicamente consiste en realizar una serie de búsquedas o "querys", en la que la tabla original se vea afectada de forma horizontal, es decir sacar los valores que se desean pero en cuanto a renglones, como vemos en el ejemplo de la imagen, se hicieron las fragmentaciones donde de los "SNUM" que había solo satisfacieron la condición los "SNUM" S1,S2,S3; mientras que por FH2, solo S3,S4 cumplieron las condiciones establecidas.

Fragmentación vertical.

Recuérdese que la fragmentación vertical de una relación R produce una serie de fragmentos R1, R2, ..., Rr, cada uno de los cuales contiene un subconjunto de los atributos de R así como la clave primaria de R. 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.

En pocas palabras la fragmentación vertical consiste en tomar las columnas que son necesarias para un posible informe o algún otro fin que se tenga, en el que los renglones no son fragmentados pero las columnas si.

Fragmentación mixta.

Generada a través de la aplicación recursiva de operadores del álgebra relacional en los fragmentos.

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. Podemos combinar ambas, utilizando por ello la denominada fragmentación mixta.

Ejemplo:



Considere la relación global de jugadores de fútbol



JUGADOR


RFC NombreJug NombreEqpo

Posición Contrato Salario





Después de la fragmentación vertical en:
Jugador1= p RFC, NombreJ, NombreE, Posición JUGADORJugador2= p RFC, Contrato, Salario JUGADORJugador1

Puede tener una fragmentación horizontal derivada basada en la liga en la que juega el jugadorJugador1.A= Jugador1 SJ EQUIPOA SJ= SemiJoinJugador1.N= Jugador1 SJ EQUIPON


Es usar ambas fragmentaciones ya vistas, como lo es la horizontal tanto la vertical.


Fuentes consultadas:

martes, 10 de marzo de 2015

Actividad #11

  1. ¿Qué es una transacción?
Se le llama transacción a una colección de operaciones que forman una única unidad lógica de trabajo. Un sistema de base de datos debe asegurar que la ejecución de las transacciones se realice adecuadamente a pesar de la existencia de fallos
2.  ¿Qué significa ACID?  y defina cada una de las palabras que forman las siglas
Son propiedades, para asegurar la integridad de los datos, que por sus siglas en inglés es atomicity, consistency, isolation & durability.

Atomicidad: Tienen que ser todas las transacciones hechas de manera exitosa o ninguna.


Consistencia: La ejecución aislada de la transacción, esto quiere decir que no tiene que haber ninguna otra transacción ejecutandose.


Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, cada transacción ignora al resto de las transacciones que se ejecuten concurrentemente en el sistema.


Durabilidad: Se mantienen los cambios realizados en la base de datos inclusive si son con fallos.


3.- ¿Que significa TX?


Tx significa Transmisión o Transmisor (en este caso Transacción).


4.- ¿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.
Esta función finaliza la transacción actual y deshace los cambios realizados.

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

6.- 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í.

7.- Defina grado de consistencia
Una de las definiciones para la consistencia sería la coherencia entre todos los datos de la base de datos.

8.- 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).
9.- Defina los estados de una transacción.
Activo (active): Es cuando empieza la transacción; el estado inicial.

Parcialmente comprometida (uncommited): Es después de ejecutarse la última transacción.

Fallida (Failed): Tras descubrir que no puede continuarla ejecución normal.

Abortada (Roller back): Después de que se retrocede la transacción, y la base de datos vuelve a el estado en el que estaba antes de la transacción.

Comprometida (commited): Tras completarse con éxito dicha transacción.


Fuente:
 libro de fundamentos de base de datos




lunes, 9 de marzo de 2015

Actividad #10

En una Base de datos distribuida es deseable que cuente con las transparencias de distribución, que facilita al usuario de la misma, realizar las tareas con mayor eficacia, las cuales son:
 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.
 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.

La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos, su existencia debe ser controlada por el sistema no por el usuario. Se debe tener en cuenta que al cuando el usuario se encarga de manejar las réplicas en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas teniendo así datos diferentes.

Tipos de fragmentación.





La forma en cómo se pueden extraer los datos al ser consultados en un ambiente distribuido, se puede hacer una fragmentación de distintas tablas pertenecientes a diversas Bases de Datos localizadas en diversos servidores. Dado que una relación que corresponde esencialmente con una tabla esta se la puede dividir en fragmentos menores, inmediatamente surgen alternativas lógicas para llevar a cabo el proceso:
 Existen tres tipos de fragmentación: 
1. Fragmentación horizontal
Una tabla T se divide en subconjuntos, T1, T2, ...Tn. Los fragmentos
se definen a través de una operación de selección y su reconstrucción se
realizará con una operación de unión de los fragmentos componentes.
Cada fragmento se sitúa en un nodo. Pueden existir fragmentos no disjuntos: combinación de fragmentación y replicación.
2. 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.
3. Fragmentación híbrida.
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.

Ejemplos de fragmentación horizontal:



Ejemplo de Fragmentación vertical:

Ejemplos de Fragmentación Híbrida:


 

http://delaoarrieta.blogspot.mx/2012/10/tipos-de-fragmentacion-de-datos.html

http://repositorio.utn.edu.ec/bitstream/123456789/522/4/04%20ISC%20151%20CAPITULO%20II.pdf