miércoles, 25 de marzo de 2015
Resumen Documento 2
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].
Se considera un SGBDD (sistema gestor de base de datos distribuido) a un “sistema
software que permite gestionar la base de datos distribuida y hace que dicha distribución
sea transparente para los usuarios”, [CONOLLY 2005].
Se habla de replicación, que consiste en mantener réplicas de fragmentos en varios nodos, según una política de replicación que va desde una replicación mínima (un fragmento replicado en otro nodo)
a una replicación total (todos los fragmentos son replicados).
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.
En una base de datos distribuida el catálogo se usa también para hacer un seguimiento de los datos distribuidos en varios sitios. Ese seguimiento debe tener en cuenta cómo han sido fragmentadas y replicadas
las relaciones.
martes, 24 de marzo de 2015
Resumen Documento 1
Conceptos de BDD
• Sistema de computación distribuido: elementos de procesamiento que cooperan en la ejecución de tareas,
interconectados por una red de ordenadores.
• 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)
Otras funciones de las BDD:
– Seguir la pista a los datos: fragmentación, réplica
– Procesar consultas distribuidas
– Gestionar transacciones distribuidas
– Gestionar datos replicados: qué copia usar, mantener la consistencia
– Recuperar BDD: de fallos de ordenadores individuales
– Seguridad: privilegios, autorizaciones de acceso
– Gestionar el catálogo distribuido: contiene los metadatos. Debe ser global para toda la BDD o local para cada sitio.
Diseño de la BD "Empresa"
Diseño de BDD: fragmentación
• Directorio (catálogo) global: contiene la
información de fragmentación. Lo utiliza el SBDD.
• 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
• Fragmentación horizontal:
– Ejemplo: un ordenador por departamento.
Cada departamento quiere tener su información en su ordenador. (BD Empresa)
– Supone dividir las tuplas de cada tabla
en 3 trozos.
Cada trozo en el ordenador de su
departamento.
– Así, EMPLEADO se divide en: σND=1, σND=4
y σND=5
– La tabla original se reconstruye con
UNIÓN de los 3 trozos.
– Es posible generar fragmentos que
compartan tuplas (no disjuntos)
• Fragmentación horizontal derivada: la
partición de la tabla primaria DEPARTAMENTO se aplica a tablas secundarias,
como EMPLEADO, que la referencian mediante una clave extranjera (ND)
• Fragmentación vertical:
– De EMPLEADO en información personal y
laboral:
• πNOMBRE, INIC, APELLIDO, FECHA_NCTO,
DIRECCIÓN, SEXO
• πNSS, SALARIO, NSS_SUPERV, ND
– Esta división no es apropiada porque no
se puede reconstruir la tabla original: es necesario añadir NSS a la primera
división (clave primaria)
– Para reconstruir la tabla original se usa
REUNIÓN EXTERNA COMPLETA (o UNIÓN EXTERNA). Con REUNIÓN
simple, las tuplas de una relación que no se reúnen con ninguna tupla de la
otra tabla no aparecen en el resultado.
– Podemos generar fragmentos que compartan
otros atributos además de la clave (no disjuntos)
• Toda fragmentación debería ser completa:
– Horizontal: todas las tuplas están en
algún fragmento
– Vertical: todo atributo está en algún
fragmento
• Fragmentación mixta: cuando se aplica
fragmentación vertical y horizontal sobre la misma tabla
• Esquema de fragmentación es un conjunto
de fragmentos que:
– Fragmentación completa: todos los
atributos y tuplas están en algún fragmento
– Permite reconstruir la BD original.
– Interesante (no necesario) que los
fragmentos sean disjuntos
Diseño de BDD: replicación y asignación
• 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.
• El otro extremo es no tener ninguna replicación (salvo las claves primarias en fragmentos verticales).
• Entre ambos extremos: replicación parcial. Hay muchasposibilidades.
• 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
BDD y cliente-servidor:
arquitectura de 2 niveles
• Los SGBD totalmente distribuidos (transparentes) aun no son viables comercialmente
• En su lugar se han creado sistemas basados en cliente-servidor
• 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
BDD y cliente-servidor:
arquitectura de 3 niveles
• Actualmente es más común utilizar una arquitectura en 3 niveles, sobre todo para aplicaciones web.
• Las 3 capas 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
• La división de funcionalidad entre las 3 capas puede variar.
• El servidor de aplicaciones (SA) también:
– Tiene acceso a diccionarios de datos para consultar
cómo se distribuyen las BDD entre los servidores de BD
(SBD)
– Puede incluir módulos para descomponer una consulta
en varias subconsultas locales a cada SBD
• La interacción entre SA y SBD puede ser así:
– El SA construye una consulta utilizando datos tomados
por el cliente. Descompone la consulta en varias
subconsultas, cada una de ellas local a un SBD, y las
envía a sus correspondientes SBD.
– Cada SBD procesa sus consultas y envía los resultados al
SA que las solicitó. Cada vez es más frecuente utilizar el
formato XML para devolver los resultados.
– El SA combina los resultados para obtener el resultado
de la consulta original. Dota al resultado de un formato,
como HTML y lo envía al cliente para su presentación.
• El SA es responsable de (en arquitectura de 2 niveles lo es el
cliente):
– Generar un plan de ejecución distribuido y supervisar su
ejecución.
– Garantizar la consistencia de las réplicas de datos.
– Asegurar la atomicidad de las transacciones globales
(que no se puedan ejecutar “a medias”, o sea que bien se ejecuta
toda la transacción o no se ejecuta nada)
lunes, 23 de marzo de 2015
Actividad #13 Sistemas gestores de bases de datos distribuidas existentes
Microsoft SQL Server es una plataforma de base de datos que
se utiliza en el procesamiento de transacciones en línea a gran escala, el
almacenamiento de datos y las aplicaciones de comercio electrónico; es también
una plataforma de Business Intelligence para soluciones de integración,
análisis y creación de informes de datos.
CARACTERÍSTICAS
· Escalabilidad, estabilidad y seguridad.
· Soporta procedimientos almacenados.
· Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
· Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información.
· Además permite administrar información de otros servidores de datos.
- Es un sistema de gestión de bases de datos objeto-relacional.
- Código fuente disponible libremente.
- PostgreSQL utiliza un modelo cliente/servidor
- Usa multiprocesos en ves de multihilos.
- Postgres intenta ser un sistena de bases de datos de mayor nivel que MySQL, a la altura de Oracle, Sysbase o Interbase.
CARACTERISTICAS
· Es una base de datos ACID
· Integridad referencial
· Implementación del estándar SQL92/SQL99.
· Implementa el uso de rollback's, subconsultas y transacciones.
· Se pueden realizar varias operaciones al mismo tiempo sobre la misma tabla.
· Licencia BSD
· Soporta un subconjunto de SQL92 MAYOR que el que soporta MySQL. Ademas, tiene ciertas caracteristicas orientadas a objetos.
· Gestión de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos.
MySQL es un sistema de gestión de base de datos relacional.
Capaz de almacenar una enorme cantidad de datos de gran variedad.Mysql utiliza el lenguaje de consulta estructurado (SQL).Incluye un motor de almacenamiento InnoDb y ACID.Además dispone de store procedures, triggers, vistas.Mysql es GPL (General Public Licence) no tiene costo, en lo que gana la empresa es en el soporte y entrenamiento.Al ser una empresa que maneja sus códigos con el tipo de licencia GPL reduce los costos de desarrollo, administración.
CARACTERISTICAS
- Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example en 5.x), permitiendo al usuario escoger la que sea más adecuada para cada tabla de la base de datos.
- Uso de multihilos mediante hilos del kernel.
- Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice
- Tablas hash en memoria temporales
- El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL
- Completo soporte para operadores y funciones en cláusulas select y where.
- Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación
- Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros.
Es un manejador de base de datos relacional que hace uso de
los recursos del sistema informático en todas las arquitecturas de hardware
Es el mayor y mas usado Sistema Manejador de Base de Dato
Relacional (RDBMS) en el mundo. La Corporación Oracle ofrece este RDBMS como un
producto incorporado a la línea de producción. Además incluye cuatro
generaciones de desarrollo de aplicación, herramientas de reportes y
utilitarios.
Oracle corre en computadoras personales (PC),
microcomputadoras, mainframes y computadoras con procesamiento paralelo masivo
CARACTERISTICAS
- Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en ingles de Relational Data Base Management System,), desarrollado por Oracle Corporation.
- Soporte de transacciones
- Estabilidad
- Escalabilidad
- Soporte multiplataforma.
- Permite el uso de particiones para la mejora de la eficiencia, de replicación e incluso ciertas versiones admiten la administración de bases de datos distribuidas.
jueves, 12 de marzo de 2015
miércoles, 11 de marzo de 2015
Actividad #11 Cuestionario
¿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.
¿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, se cumple que para los efectos de Ti, o bien Tj ha terminado
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.
¿Qué significa Tx?
Transmisor o Transmisión
¿Para que nos sirve el Rollback?
defina Integridad de datos
defina concurrencia
Defina Grado de consistencia
Mencione aspectos relacionados al procesamiento de transacciones
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 última instrucción.
Fallida (Failed):tras descubrir que no 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.
martes, 10 de marzo de 2015
Actividad #10 Niveles de transparencia
La transparencia se define como la separación de la
semántica de alto nivel de un sistema de los aspectos de bajo nivel
relacionados a la implementación del mismo. Un nivel de transparencia adecuado
permite ocultar los detalles de implementación a las capas de alto nivel de un
sistema y a otros usuarios.
La independencia de datos se puede dar en dos aspectos:
lógica y física.
.1 Independencia lógica de datos. Se refiere a la
inmunidad de las aplicaciones de usuario a los cambios en la estructura lógica
de la base de datos. Esto permite que un cambio en la definición de un esquema
no debe afectar a las aplicaciones de usuario. Por ejemplo, el agregar un nuevo
atributo a una relación, la creación de una nueva relación, el reordenamiento
lógico de algunos atributos.
.2 Independencia física de datos. Se refiere al
ocultamiento de los detalles sobre las estructuras de almacenamiento a las
aplicaciones de usuario. La descripción física de datos puede cambiar sin
afectar a las aplicaciones de usuario. Por ejemplo, los datos pueden ser
movidos de un disco a otro, o la organización de los datos puede cambiar.
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 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.
La transparencia a nivel de fragmentación de datos
permite que cuando los objetos de la bases de datos están fragmentados, el
sistema tiene que manejar la conversión de consultas de usuario definidas sobre
relaciones globales a consultas definidas sobre fragmentos. Así también, será
necesario mezclar las respuestas a consultas fragmentadas para obtener una sola
respuesta a una consulta global. El acceso a una base de datos distribuida debe
hacerse en forma transparente.
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.
Fragmentación
Es una relación que corresponde a una tabla, consiste en
dividirla en fragmentos menores, cada fragmento se guarda en sitio diferente, tiene como objetivo buscar
alternativas para dividir una de las tablas o instancias en otras más pequeñas
Existen tres tipos de fragmentación:
1. 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.
2. 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 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.
Suscribirse a:
Entradas (Atom)