lunes, 21 de diciembre de 2015

Base de Datos Distribuidas







Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.
Las localidades pueden conectarse físicamente de diversas formas, las principales son:
  • Red totalmente conectada
  • Red prácticamente conectada
  • Red con estructura de árbol
  • Red de estrella
  • Red de anillo
Las diferencias principales entre estas configuraciones son:
  • Coste de instalación: El coste de conectar físicamente las localidades del sistema
  • Coste de comunicación: El coste en tiempo y dinero que implica enviar un mensaje desde la localidad A a la B.
  • Fiabilidad: La frecuencia con que falla una línea de comunicación o una localidad.
  • Disponibilidad: La posibilidad de acceder a información a pesar de fallos en algunas localidades o líneas de comunicación.
Las localidades pueden estar dispersas, ya sea por un área geográfica extensa (a lo largo de un país), llamadas redes de larga distancia; o en un área reducida (en un mismo edificio), llamadas redes de área local. Para las primeras se utilizan en la comunicación líneas telefónicas, conexiones de microondas y canales de satélites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda ancha y fibra óptica.
Consideraciones al distribuir la base de datos
Existen varias razones para construir sistemas distribuidos de bases de datos que incluyen compartir la información, fiabilidad y disponibilidad y agilizar el procesamiento de las consultas. Pero también tiene sus desventajas, como desarrollos de software más costosos, mayor posibilidad de errores y costos extras de procesamiento.
Ventajas de la distribución de datos
La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la información de una forma fiable y eficaz.
Utilización compartida de los datos y distribución del control
La ventaja principal de compartir los datos por medio de la distribución es que cada localidad pueda controlar hasta cierto punto los datos almacenados local mente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseño del sistema distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se conoce como autonomía local. La posibilidad de contar con autonomía local es en muchos casos una ventaja importante de las bases de datos distribuidas.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la des activación del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.
Agilización del procesamiento de consultas
Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, así que no todas las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que hay repetición de los datos, el sistema puede pasar la consulta a las localidades más ligeras de carga.
Desventajas de la distribución de los datos
La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinación adecuada entre localidades.
El aumento de la complejidad se refleja en:
  • Coste del desarrollo de software: es más difícil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor
  • Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.
  • Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.

martes, 15 de diciembre de 2015





 LENGUAJES DEL SGBD


Lenguaje de definición de datos (DDL)


Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD no se mantiene una separación estricta de niveles, por lo que el administrador de la base de datos y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos
 (DDL). El SGBD posee un compilador de DDL cuya función consiste en procesarlas sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripción del esquema en el catálogo o diccionario de datos. Se dice que el diccionario contiene
Metadatos: describe los objetos de la base de datos. Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el DDL sólo sirve para especificar el esquema conceptual. Para especificar él es quema interno se utiliza un lenguaje de definición de almacenamiento
(ADL). Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería necesario disponer de un tercer lenguaje, el lenguaje de definición de vistas (VDL), que se utilizaría para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual.
Lenguaje de manejo de datos (DML) Una vez creados los esquemas de la base de datos, los usuarios necesitan un lenguaje que les permita manipular los datos de la base de datos: realizar consultas, inserciones, eliminaciones y modificaciones. Este lenguaje es el que se denomina lenguaje de manejo de datos
(DML).Hay dos tipos de DML: los procedurales y los no procedurales. Con un DML procedural  el usuario (normalmente será un programador) especifica qué datos se necesitan y cómo hay que obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la información requerida. Estos lenguajes acceden a un registro, lo procesan y basándose en los resultados obtenidos, acceden a otro registro, que también deben procesar. Así se va


Accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un DML procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual. A este lenguaje se le denomina
lenguaje anfitrión
. Las bases de datos jerárquicas y de red utilizan DML procedurales.
 Un DML no procedural  se puede utilizar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa. En muchos SGBD se pueden introducir interactivamente instrucciones del DML desde un terminal o bien embeberlas en un lenguaje de programación de alto nivel. Los DML no procedurales permiten especificar los datos a obtener en una consulta o los datos que se deben actualizar, mediante una sola y sencilla sentencia. El usuario o programador especifica qué datos quiere obtener sin decir cómo se debe acceder a ellos. El SGBD traduce las sentencias del LMD en uno o varios procedimientos que manipulan los conjuntos de registros necesarios. Esto libera al usuario de tener que conocer cuál es la estructura física de los datos y qué algoritmos se deben utilizar para acceder a ellos. A los DML no procedurales también se les denomina de aclarativos. Las bases de datos relacionales utilizan DML no procedurales, como SQL (Structured QueryLanguage) o QBE (Query-By-Example). Los lenguajes no procedurales son más fáciles de aprender y de usar que los procedurales, y el usuario debe realizaremos trabajo, siendo el SGBD quien hace la mayor parte. La parte de los DML no procedurales que realiza la obtención de datos es lo que se denomina un lenguaje de consultas. En general, las órdenes tanto de obtención como de actualización de datos de un DML no procedural se puede utilizar interactivamente, por lo que al conjunto completo de sentencias del DML se le denomina lenguaje de consultas, aunque es técnicamente incorrecto.

Lenguaje de control de datos (DCL)
Los lenguajes de control de datos contienen elementos útiles para trabajar en entornos multiusuario en los que son importantes la protección de datos, la seguridad de las tablas y el establecimiento de restricciones en el acceso, así como elementos para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieren unos con otros




                                                         Funciones de un SGBD
                                                                          
 

 Las funciones provistas por un SGBD pueden agruparse en tres clases:
  • Consulta y actualización de datos
  • Mantenimiento de esquemas
  • Manejo de transacciones
  Consulta y Actualización
   Ésta es la clase más básica de funciones y la única que es visible "desde afuera". Consiste en un conjunto de herramientas que permite a los distintos tipos de usuarios del SGBD extraer, manipular y modifica la información almacenada en la base de datos.
   Algunos sistemas proveen una única interfaz, llamada generalmente lenguaje de consulta, para ser usada por todos los tipos de usuario. Por ejemplo, el lenguaje SQL permite ejecutar consultas y actualizaciones en una notación vagamente similar al lenguaje natural. La expresión:
    select matricula, nombre
    from alumnos
    where carrera = "Ingeniería" and edad < 21
produce como resultado una tabla con los números de matrícula y los nombres de todos los alumnos menores de edad de la carrera de Ingeniería.
  Mantenimiento de esquemas
   El esquema de la base de datos es la descripción de la estructura de la información almacenada en ella. Por ejemplo, para un sistema basado en tablas, el esquema puede consistir en una lista de tablas en uso, los campos que contienen, el tipo de datos de cada campo, descripciones en lenguaje natural del propósito de cada tabla y cada campo, y restricciones sobre los valores admisibles en cada campo.
   Así como los usuarios necesitan acceder, agregar y modificar datos, también necesitan acceder, agregar y modificar el esquema de datos. Por ejemplo, un usuario que se acerca por primera vez a una base de datos querrá saber antes que nada qué información contiene ésta, un programador puede escribir programas que definan y creen nuevos tipos de entidades, o eliminen algunos preexistentes; el DBA necesita controlar qué usuarios tienen accesos a qué información, formulando reglas de seguridad que se hacen parte del esquema.
  Manejo de Transacciones
   Una de las áreas principales de aplicación de los sgbd's es lo que se llama procesamiento de transacciones. Una transacción es un programa de aplicación, generalmente de duración breve, que accede y actualiza una parte también generalmente pequeña de la base de datos. Típicos ejemplos son un depósito o extracción de una cuenta bancaria, o una reservación en un vuelo, o una verificación de una tarjeta de crédito.
   El menejo de transacciones consiste en controlar múltiples transacciones ejecutando el paralelo sobre una misma base de datos corriendo en un sistema que puede fallar. Los objetivos del gestor de transacciones del sgbd son: evitar que las transacciones interfieran unas con otras al ejecutar en paralelo, y garantizar que la base de datos no sea dañada en forma irreparable por caídas, ya sea del sistema en sí o de alguna de las transacciones. El primero de los objetivos da lugar a lo que se llama control de paralelismo; el segundo, a técnicas de recuperación.
SISTEMA GESTOR DE BASE DE DATOS



Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.
Estos sistemas también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permiten presentar la información de la base de datos en variados formatos. La mayoría incluyen un generador de informes. También pueden incluir un módulo gráfico que permita presentar la información con gráficos y tablas.
Hay muchos tipos distintos según cómo manejen los datos y muchos tamaños distintos de acuerdo a si operan en computadoras personales y con poca memoria o grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales.
Generalmente se accede a los datos mediante lenguajes de interrogación, lenguajes de alto nivel que simplifican la tarea de construir las aplicaciones. También simplifican la interrogación y la presentación de la información. Un SGBD permite controlar el acceso a los datos, asegurar su integridad, gestionar el acceso concurrente a ellos, recuperar los datos tras un fallo del sistema y hacer copias de seguridad. Las bases de datos y los sistemas para su gestión son esenciales para cualquier área de negocio, y deben ser gestionados con esmero.
SISTEMA DE FICHEROS   DE BD

Sistemas de ficheros de disco

Son sistemas diseñados para almacenar ficheros en dispositivos de almacenaje de datos, que deben estar conectados directa o inderectamente al ordenador.
Ejemplos:
  • FAT
  • NTFS
  • HFS y HFS+
  • EXT2/3
  • ISO 9660
  • ODS-5
  • UDF
  • ...
Algunos sistemas de ficheros orientados a discos son tambien sistemas de ficheros con journaling (bitacora).

Sistemas de ficheros de bases de datos

Es un concepto nuevo de manejo de ficheros basado en bases de datos, como sustitutivo o añadido a la estructura jerarquica. Los ficheros se identifican por sus caracteristicas, tipo, asunto, autor o meta-informacion similar. Un fichero puede ser accedido a traves de una consulta SQL este donde este.
Ejemplos:
  • BFS
  • WinFS

Sistemas de ficheros transaccionales

Esto es una clase especial de sistema de fichero que almacena los eventos o transaciones. Sirven para asegurar la integridad del sistema comprobando que toda operacion debe estar acabada. En caso de que se pierda el acceso al sistema de ficheros y una operacion quede a medias esto queda reflejado en el journal (la bitacora) y en el siguiente arranque se puede comprobar las operaciones no completadas y deshacerlas.
Ejemplos:
  • ReiserFS
  • Reiser4
  • Ext3
  • NTFS (Solo metadatos).

Sistema de ficheros de red

Es un sistema de ficheros que actua como cliente para un servidor de acceso remoto a ficheros, permitiendo acceso a los ficheros en el servidor.
Ejemplos:
  • NFS
  • SMB
  • AFS
  • CIFS

Sistemas de ficheros para propisito especial

Basicamente es cualquier sistema de ficheros que no sea de disco o de red. Esto incluye los sitemas en que los ficheros son generados dinamicamente por el software.
Los sistemas de ficheros de proposito especial son usados normalmente en sistemas operativos orientados a ficheros como Unix.
Ejemplos:
  • Procfs
  • Devfs
DISEÑO LÓGICO DE DATOS 
 
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico. - See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpuf
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico. - See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpuf
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico. - See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpuf
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico.
- See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpuf
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico.
- See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpuf
Proceso que forma parte diseño de bases de datos, y que resulta en un esquema lógico.

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico.
- See more at: http://www.alegsa.com.ar/Dic/dise%C3%B1o%20logico%20de%20bases%20de%20datos.php#sthash.hSfHCHN6.dpufV
 Un esquema lógico es una descripción de la estructura de la base de datos en términos de las estructuras de datos que puede procesar un tipo de SGBD. El diseño lógico depende del tipo de SGBD que se vaya a utilizar, no depende del producto concreto.
DISEÑO LOGICO DE UNA BASE DATOS