miércoles, 25 de marzo de 2015

Actividad#13 Ejercicios

EJERCICIO #1  (Sociedad Medica)
DIAGRAMA ORIGINAL

1.-En la oficina central (Centro.Código=0) la información para realizar las nóminas de todos los empleados.
Se aplica la fragmentación vertical & la operación en algebra relacional es la proyección.



 
Operación AR:
σ centro=0 Empleado (nombre, salario, IRPF, centro)
Π código, nombre, dirección, teléfono (centro)




2.- En el resto de centros, los horarios de sus consultas y la información de su personal y de sus especialidades.



Operación AR:
σ centro, empleado, hora (Consulta)
Π  código, nombre, dirección, telefono (Centro)
Π  código, nombre, dirección, salario, IRPD, fecha_inic, centro (Empleados)
Π código, función, experiencia (Medico)
Π  código, nombre, descripción (Especialidad)




EJERCICIO#2 (Servicios Informáticos)
http://2.bp.blogspot.com/-p_SiknsT2pA/VRJPO4fE3bI/AAAAAAAAAHA/Mvoe-jF-GDE/s1600/4.jpg
Diagrama Original

1.- Cada unidad gestiona las nóminas de sus empleados y necesita la información de los proyectos que realiza.




Operación AR:
Π código, nombre, apellidos, dirección, unidad (Empleado)
Π código, nombre, presupuesto, empresa, jefe, unidad (Proyecto)




2.-La unidad de Recursos humanos (edificio 0) 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.





Operación AR:
π código, nombre, dirección,Tfno (Edificio)
σ edificio=0 Unidad (código, nombre)
π código, nombre, apellido, dirección, unidad (Empleado)
π empleado, proyecto, horas (Trabaja_en)
π código, nombre, presupuesto, empresa, jefe, unidad (Proyecto)
π código, nombre, dirección, ApdoCorreos (Empresa)

3.- Hay proyectos internos, y por tanto sin factura, que tienen valor nulo en su campo Empresa.





Operación AR:

σ código, nombre, presupuesto, jefe, unidad (Proyecto)

viernes, 20 de marzo de 2015

Actividad#13

Sistemas Gestores de Bases de Datos Distribuidas

“Los usuarios deben actuar de la misma forma tanto si están ante un sistema distribuido como 
si están ante uno centralizado”.

Hay diferentes tipos de SGBDD. El factor para categorizarlos es su grado de homogeneidad. 
Partiendo de él, tenemos dos tipos de SGBDD. 

• Homogéneos: todos los nodos utilizan el mismo SGBD 
• Heterogéneos: los nodos pueden utilizar distintos SGBD. Base de Datos Distribuidas                                                                     
Los sistemas homogéneos son mucho más fáciles de diseñar y mantener. Esta técnica permite el crecimiento incremental, haciendo que la adición de un nuevo nodo al SGBDD sea sencilla, y también permite conseguir unas mayores prestaciones, al aprovechar las capacidades de procesamiento paralelo de los múltiples nodos. 

         
 • INGRES/STAR de Relational Technology, Inc.
 • SQL*STAR, de Oracle Corp.
 • DB2 versión 2 Edición 2, de IBM.                  


BASE DE DATOS DISTRIBUIDAS 

sistema distribuido:  se define como un conjunto de elementos  de procesamiento que cooperan juntos para llevar acabo tareas, estos elementos están conectados entre si por una red.
Base de Datos Distribuida: conjunto de bases de datos que se relacionan lógicamente pero se encuentran situadas en diferentes sitios de la red.
Sistema Gestor de Bases de Datos Distribuido: similar al SGBD la diferencia del distribuido es que gestiona  todas las bases de datos distribuidas como si estuviesen centralizadas es decir, situadas en un mismo nodo.

Algunas de las ventajas de las bases de datos distribuidas son la transparencia en localización, en los nombres y de fragmentación, así también como fiabilidad, disponibilidad, mejor rendimiento y expansión mas sencilla.

PARTES FUNDAMENTALES DE LA FRANGMENTACION
Directorio global: catalogo que utiliza el sistema gestor de base de datos,  contiene la información gral de la fragmentación.
Fragmentar: es la parte en la que se decide donde se situaran las BDD es decir en que nodo de la red, ya que deben estar situadas en diferentes nodos.
TIPOS DE FRAGMENTACION
Horizontal (primaria y derivada)
Vertical
Mixta (HV)
REPLICACION
La replicación nos ayuda a mejorar la disponibilidad de los datos
En Caso extremo: tener una réplica de la BD completa en  cada sitio (ordenador).

Algunas ventajas de la replicación son  mejora el rendimiento local y global  además de la disponibilidad (con un sitio activo se accede a toda la BD)
Las desventajas que se tiene al aplicar la replicacion son 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.
En caso extremo es no tener ninguna replicación (salvo las claves primarias en fragmentos verticales).

PARTES DE LA REPLICACION
 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

 DESCOMPOSICION DE ACTUALIZACIONES Y CONSULTAS
SGBD sin transparencia de distribución: se debe indicar el sitio y la tabla sobre la que se realiza la consulta.
SGBD sin transparencia de replicación: debe mantener a mano la consistencia de los datos 


ARQUITECTURA DE DOS NIVELES
La forma habitual de dividir la funcionalidad del SGBD entre cliente y servidor ha sido la arquitectura de 2 niveles:
Servidor (o servidor SQL): donde se sitúa el SGBD. Una BDD se situaría en varios servidores.
Clientes: Envían consultas/actualizaciones a servidores, tienen interfaces SQL, de usuario y funciones de interfaz del lenguaje de programación, consultan en el diccionario de datos la información sobre la distribución de la BD entre los servidores, tienen módulos que descomponen consultas globales en varias locales a cada servidor, interacción cliente-servidor (arquitectura de 2 niveles):
– El cliente analiza la consulta del usuario. La descompone en varias subconsultas y envía cada una a un servidor. (También puede hacerlo el usuario a mano) 
– Cada servidor ejecuta su subconsulta y devuelve el resultado al cliente 
– El cliente combina los resultados recibidos y muestra al usuario el resultado de su consulta. En este enfoque al servidor se le llama máquina back-end (o subyacente) y al cliente máquina front-end (de la parte visible). Al servidor también se le llama servidor de transacciones y procesador de BD y al cliente procesador de aplicaciones.

ARQUITECTURA DE TRES NIVELES
 Las 3 niveles son: 
Cliente (Presentación): Es la interfaz (interfaces web, formularios, …), Suelen usar navegadores web y lenguajes como HTML, JavaScript, PERL, gestiona las entradas, salidas y la navegación con páginas web estáticas o, cuando accede a BD, con páginas dinámicas (ASP, JSP, …).
Servidor de aplicaciones (SA) (lógica de negocio):  Incluye, por ejemplo, consultas basadas en datos introducidos por el usuario, o resultados de consultas a los que da formato y envía para su presentación, puede incluir otro tipo de funcionalidad como comprobaciones de seguridad o de la identidad, puede acceder a varias BD conectándose mediante ODBC, JDBC u otras técnicas
 Servidor de BD (SBD): Procesa consultas y actualizaciones solicitadas por la capa de aplicación, puede devolver los resultados en formato XML.

DISEÑO DE UN SGBDD
De las primeras bases de datos centralizadas, ha habido una evolución hacia la descentralización, paralela al desarrollo de redes informáticas, dando lugar a arquitecturas como cliente-servidor, bases de datos paralelas, y bases de datos distribuidas. Esta estructura de organización de la información empresarial imita a la propia estructura organizativa de la empresa, que está estructurada en unidades como divisiones, cada una de las cuales mantiene sus propios datos operacionales. Los sistemas gestores de bases de datos distribuidos se han diseñado para cubrir dos objetivos: la compartición de los datos y la eficiencia de acceso a ellos, ubicando la información en aquellos nodos donde se acceda con más frecuencia, pero haciéndola a la vez disponible al resto de los nodos.

Se considera una BDD (base de datos distribuida) a “una colección lógicamente interrelacionada de datos compartidos (junto con una descripción de estos datos) fisicamente distribuidas por una red informática”, [CONOLLY 2005]. 

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. Así, existirán aplicaciones locales, que solo accederán a los datos almacenados en el mismo nodo, y aplicaciones globales, que accederán a datos de varios nodos. El SGBDD ejecutará así las funciones requeridas para dar servicio a este último tipo de aplicaciones. 








fuentes:
http://moodle2.unid.edu.mx/dts_cursos_mdl/pos/TI/BE/AM/05/Modelos_avanzados_de_bd.pdf

martes, 10 de marzo de 2015

Actividad#11

1.-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 (por ejemplo SQL, COBOL, C, C++ o Java), y está delimitado por instrucciones (o llamadas a función) 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.

2.-ACID
Son las propiedades de transacciones que emplea el sistema de base de datos que sirven para asegurar la integridad de los datos.

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.
Estas propiedades a menudo reciben el nombre de propiedades ACID; 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).

3.-TX
transaccion
Atomicity: Una Transacción (Tx) se ejecuta completamente ó de otra manera se eliminan los cambios parciales realizados.
Begin Transaction - Programa - End Transaction
Responsable: El método de recuperación, de no completar todas las operaciones, devuelve la BD a su estado anterior a empezar esa Tx rollback).
Coherencia: Asegura que los datos que observamos no cambian (por otros usuarios) hasta que acabemos la Transacción.
Después de terminar una Transacción la Base de datos no viola ninguna de sus reglas: valores obligatorios, claves únicas,etc.
Responsable: los programadores mediante la definición adecuada de la integridad referencial: check, triggers, primary key, foreign key,…
Aislamiento: Los efectos de una Tx no son visibles a otros usuarios mientras no se confirmen.
Responsable: el método de concurrencia: mecanismos, reglas, protocolos
Durabilidad: Si el sistema falla no debe permitir que se pierdan las operaciones realizadas por Tx ya confirmadas.
4.-¿PARA QUE NOS SIRVE EL ROLLBACK?
Nos sirve para revertir una transacción explícita o implícita hasta el inicio de la transacción o hasta un punto de retorno dentro de la transacción. Puede usar ROLLBACK TRANSACTION para borrar todas las modificaciones de datos realizadas desde el inicio de la transacción o hasta un punto de retorno. También libera los recursos que mantiene la transacción.
5.-INTEGRIDAD DE DATOS 
Se refiere a la corrección y complementación de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT,DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.

6.-CONCURRENCIA
El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE ADMINISTRACION DEBD) permiten que muchas transacciones puedan accesar a unamisma base de datos a la vez.En un sistema de estos se necesitan algún tipo de mecanismos de control de concurrencia para asegurar que las transacciones concurrentes no interfieran entre si.En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se pueden producir inconsistencias importantes derivadas del accesoconcurrente, como por ejemplo, el problema de la operación perdida.

7.-GRADO DE CONSISTENCIA
El objetivo de la consistencia de grado dos es evitar abortar en cascada sin asegurar necesariamente la secuencialidad. El protocolo de bloqueo para la consistencia de grado dos utiliza los mismos dos modos de bloqueo que se utilizan para el protocolo de bloqueo de dos fases: compartido (C) y exclusivo (X). Las transacciones deben mantener el modo de bloqueo adecuado cuando tengan acceso a un elemento de datos.
 La posibilidad de que se produzca inconsistencia con la consistencia de grado dos hace que este enfoque no sea conveniente para muchas aplicaciones.


8.- ASPECTOS RELACIONADOS CON EL PROCESAMIENTO DE TRANSACCIONES

las propiedades aspectos de transacciones que emplea el sistema de base de datos que sirven para asegurar la integridad de los datos son las ACID.
 y tambien  el inicio y el fin de la transaccion.

9.-ESTADOS DE UNA TRANSACCION
Una transaccion debe estar en uno de los estados siguientes:

activa, el estado inicial; la transaccion permanece en este estado durante su ejecucion.

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




Actividad#10 Transparencia & Fragmentacion

TIPOS DE TRANSPARENCIA

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.
5- Transparencia de concurrencia 
 °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.
 6- Transparencia de transacción 
°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.
°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.
 7- Transparencia respecto a fallos 
transparencia de transaccion
°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.


FRAGMENTACION
Horizontal: se generan varios conjuntos de tuplas
 a partir de una relación y los mismos son almacenados
 en distintas localidades.

 Vertical: los atributos de una relación son subdivididos
y almacenados en diversas estaciones de trabajo.
transparencia de la ubicacion
transparencia de replicacion
          



















































transparencia de denominacion





































































transparencia de concurrencia