domingo, 5 de mayo de 2013

ARQUITECTURA DE BASE DE DATOS


Ventajas de los sistemas actuales

Relación directa entre el sistema de computo y la arquitectura
    de la base de datos
v  Arquitecturas Disponibles:
v  Centralizada
v  Cliente-Servidor
v  Paralelas
v  Distribuidas

ARQUITECTURA CENTRALIZADA
Sistemas con un único servidor que se encarga de todas lastareas (terminales brutas)
ARQUITECTURA  CLIENTE-SERVIDOR
v  De la arquitectura centralizada a la arquitectura
   Cliente-Servidor
v  Mejoras en los equipos del lado del cliente:
Memoria
Procesador
Disco
Tarjeta de Video (Soporte de las GUIS del sistema)


DISTINCIÓN ENTRE  EL CLIENTE  Y  EL SERVIDOR





El Cliente:
manejo de la interfaz grafica, entradas, reportes,algunas validaciones, notificaciones, etc. (la parte visible alusuario). Otras formas de cliente: Hojas de calculo, paquetes estadísticos, etc. El Servidor: Manejo de las transacciones, procesamiento, validaciones de integridad, control de concurrencia, etc. Posibles arquitecturas: Servidor de Transacciones y Servido de Datos
La Interfaz (Api): Mecanismo de comunicación entre el cliente y el servidor (JDBC, ODBC)
SERVIDOR DE TRANSACCIONES
v  Los clientes envían peticiones (SQL), el servidor las resuelve y retorna el resultado al cliente. Componentes:
v  Procesos servidor: Proceso o hilo que atiende las peticiones del usuario
v  Gestor de bloqueos: Concesión de bloqueos y detección de Interbloqueos
v  Proceso escritor: Volcado a disco de bloques en memoria Principal
v  Escritor de registros: Escritura del registro histórico Proceso de puntos de revisión
v  Monitor de Procesos: Revisión y recuperación de otros procesos




SERVIDOR DE DATOS
v  Útiles en BDOO
v  Los datos son enviados a los clientes y este puede realizar procesamiento de los mismos y enviarlos al servidor. Se requiere un buen canal de comunicación entre los nodos

ARQUITECTURAS  PARALELAS
v  Solución al problema de transacciones masivas
v  Paralelismo a nivel de disco (I/O) y de procesador
v  Medidas del rendimiento en:
v  Productividad (Throughput): #Tareas/U.Tiempo
v  Tiempo de Respuesta: T para una tarea

NIVELES DE PARALELISMO
v  Grano Grueso: Cada transacción en un procesador diferente
v  Grano Fino: Las operaciones de cada transacción se pueden
v  distribuir en varios procesadores
v  Ganancia o escalamiento:
v  Velocidad: A mayor sea la cantidad de recursos, mayor es la
v  velocidad del sistema
v  Ampliabilidad: Tareas mas largas en menos tiempo. Puede ser medida en:
v  Lotes: Base de datos mas grande (mayor numero de registros), las transacciones duran mas tiempo
v  Transacciones: Aumenta el numero de transacciones que llegan a la base de datos y crece el tamaño de la misma

INCONVENIENTES  CON  EL PARALELISMO
v  Costo de Inicio: Tiempo para iniciar un proceso.
v  Interferencia: Cuellos de botella para acceder a los recursos Compartidos
v  Sesgo: La partición de las tareas en procesos paralelos no siempre es uniforme

ESQUEMA CON MEMORIA COMPARTIDA


Comunicación a través de escrituras en memoria, Límite del numero de procesadores por el canal de comunicación

ESQUEMA CON DISCO COMPARTIDO



  Creación de Clúster  Aumento de la redundancia
   (tolerancia a fallos)
v  Cuello de botella el acceso a los discos


ESQUEMA SIN COMPARTIMENTO



v  Alta ampliabilidad
v  Deficiencia en la comunicación de datos entre nodos

ESQUEMA  JERARQUICO




v  Combinación de las anteriores.
v  Obtener las ventajas de cada esquema
v  Memoria virtual distribuida
Bases de Datos Distribuidas
v  Nodos (Emplazamiento) distribuidos geográficamente
v  Administración independiente (Autónoma) de cada nodo
v  Canales de comunicación mas lentos
v  Utilización de transacciones globales, locales y remotas
v  Sistemas distribuidos heterogéneos

VENTAJAS
v  Compartimento de Datos: Los usuarios de cada nodo pueden acceder a los datos de otros nodos (transacciones globales)
v  Autonomía: La administración de cada nodo es local (independiente de los otros) distribuyendo así la carga del
DBA
v  Disponibilidad: La existencia de replicas permite que la caída de un nodo no implique la caída total del sistema ( se aumenta en complejidad de recuperación pero se gana en disponibilidad del sistema)


DESVENTAJAS
v  Complejidad en la coordinación de la distribución de los datos
v  Costos en el desarrollo de software
v  Aumento en la probabilidad de errores
v  Mayor sobrecarga de procesamiento







USUARIOS DE BASE DE DATOS


Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y usan

.Se consideran tres clases generales de usuarios  1.1 PROGRAMADOR DE APLICACIONES :  Los profesionales en computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.) encargado de escribir programas de aplicación que utilicen bases de datos. Estos programas de aplicación operan con los datos de todas las maneras usuales: recuperan información, crean información nueva, suprimen o cambian información existente, etc.


1.2 USUARIO FINAL :  accesa a la base de datos desde una terminal, puede emplear un lenguaje de consulta proporcionado como parte integral del sistema o recurrir a un programa de aplicación escrito por un usuario programador que acepte órdenes desde la terminal y a su vez formule solicitudes al DBMS en nombre del usuario final.
1.3 ADMINISTRADORES DE BASE DE DATOS O DBA : Es la persona o grupo de personas encargadas del control general del sistema de base de datos.

2. Los usuarios que accedan a una base de datos pueden clasificarse como
2.1 programadores de aplicaciones.
2.2 usuarios sofisticados :  Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos SQL.

2.3 USUARIOS ESPECIALIZADOS : Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos.
Entre estas aplicaciones están los sistemas de diseño asistido por computadora, sistemas de bases de conocimiento y experto, sistemas que almacenan los datos con los tipos de datos completos y sistemas de modelado del entorno.

2.4 USUARIOS INGENUOS : Los usuarios no sofisticados interactúan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero

3. Muchas personas participan en el diseño uso y mantenimiento de una base de datos grande con algunos cientos de usuarios. Estas personas se clasifican en dos tipos Actores en el escenario y Trabajadores tras bambalinas.
3.1 ACTORES EN EL ESCENARIO: Personas cuyo trabajo requiere el empleo cotidiano de una base de datos grande y son:

3.1.1 ADMINISTRADORES DE BASES DE DATOS(DBA: DATABASE  ADMINISTRATOR) : Administra 2 recursos el primero es la propia base de datos y el segundo es el SGBD y el software con el relacionado. El DBA se encarga de autorizar el acceso a la base de datos, de coordinar y vigilar su empleo, y de adquirir los recursos necesarios de software y hardware. El DBA es la persona responsable cuando surgen problemas como violaciones a la seguridad o una respuesta lenta del sistema.

3.1.2 DISEÑADORES DE BASES DE DATOS: Se encarga de identificar los datos que se almacenarán en la base de datos y de elegir las estructuras apropiadas para representar y almacenar dichos datos. Los diseñadores tienen la responsabilidad de comunicarse con todos los futuros usuarios de la base de datos, a fin de comprender sus necesidades, y de presentar un diseño que satisfaga esos requerimientos. Casi siempre, los diseñadores interactúan con cada uno de los grupos de usuarios potenciales y desarrollan una vista de la base de datos que satisfaga los requerimientos de datos y de procesamiento para ese grupo.
3.1.3 Usuarios finales: Son las personas que necesitan tener acceso a la base de datos para consultarla, actualizarla y generar informes; la base de datos existe primordialmente para que ellos la usen. Hay varias categorías de usuarios finales:

3.1.3.1  Usuarios finales esporádicos: Tiene acceso de vez en cuando a la base de datos, pero es posible que requieran información diferente en cada ocasión. Utilizan un lenguaje de consulta de base de datos avanzado para especificar sus solicitudes, y suelen ser gerentes de nivel medio o alto u otras personas que examinan de modo superficial y ocasional la base de datos.

3.1.3.2  USUARIOS FINALES SIMPLES O PARAMÉTRICOS: Constituyen una porción apreciable de la totalidad de los usuarios finales. La función de su trabajo gira en torno a consultas y actualizaciones de la base de datos, utilizando tipos estándar de estas operaciones que se han programado y probado con mucho cuidado. Todos estamos acostumbrados a tratar con varios tipos de estos usuarios, los cajeros bancarios revisan saldos y asientan retiros y depósitos, los encargados de reservaciones aéreas revisan las disponibilidades para una solicitud presentada y hacer reservaciones.

3.1.3.3 USUARIOS FINALES AVANZADOS: Se cuentan ingenieros, científicos, analistas de negocios y otros, quienes conocen a cabalidad los recursos del SGBD para satisfacer sus complejos requerimientos

3.1.3.4 USUARIOS AUTÓNOMOS: emplean bases de datos personalizadas gracias a los paquetes de programas comerciales que cuentan con interfaces de fácil uso, basadas en menús o en gráficos. Un ejemplo es el usuario de un paquete fiscal que almacena diversos datos financieros personales para fines fiscales.

3.1.4    ANALISTAS DE SISTEMAS Y PROGRAMADORES DE APLICACIONES: Determinan los requerimientos de los usuarios finales, sobre todo de los simples y paramétricos, y desarrollan especificaciones para transacciones programadas que satisfagan dichos requerimientos. Los programadores de aplicaciones implementan esas especificaciones en forma de programas, y luego prueban, depuran, documentan y mantienen estas transacciones programadas. Para realizar dichas tareas, estos analistas y programadores deben de conocer a la perfección toda la gama de capacidades del SGBD.
3.2 TRABAJADORES TRAS BAMBALINAS: Laboran para mantener el entorno del sistema de base de datos, pero que no tienen un claro interés en la base de datos en sí misma.

3.2.1    DISEÑADORES E IMPLEMENTADOTES DEL SGBD: Se encargan de diseñar e implementar los módulos e interfaces de SGBD en forma de paquetes de software. Un SGBD es un sistema complejo de software que consta de diversos componentes o módulos, como los módulos para implementar el catálogo, los lenguajes de consulta, los procesadores de interfaz, el acceso a los datos y la seguridad.

3.2.2    CREADORES DE HERRAMIENTAS: Las herramientas son paquetes de software que facilitan el diseño y el empleo de los sistemas de base de datos, y que ayudan a elevar el rendimiento. Estos paquetes son opcionales y a menudo se adquieren por separado. Incluyen paquetes para diseñar bases de datos, vigilar el rendimiento, proporcionar Interfaces de lenguaje natural o gráficos, elaborar prototipos, realizar simulaciones y generar datos de prueba. Los creadores de herramientas se ocupan de diseñar e implementar estos paquetes. En muchos casos hay proveedores independientes de software, que crean y comercializan estas herramientas

3.2.3    OPERADORES Y PERSONAL DE MANTENIMIENTO: Son los miembros del personal de administración del sistema que tienen a su cargo el funcionamiento de mantenimiento reales del entorno del hardware y software del sistema de base de datos.

BASE DE DATOS EN LA NUBE 4


Una base de datos en la nube es una base de datos que se ejecuta en la nube. Hay dos modelos de implementación: los usuarios pueden ejecutar la bases de datos en la nube de forma independiente, utilizando una imagen de máquina virtual, o pueden comprar el acceso a un servicio de base de datos, gestionada por un proveedor de base de datos en nube. De las bases de datos disponibles en la nube, algunas son basadas en SQL y algunos utilizan un modelo de datos NoSQL.
Existen dos métodos principales para ejecutar una base de datos en la nube:
·         Imagen de máquina virtual:
 Las plataformas en la nube permiten a los usuarios comprar instancias de máquinas virtuales por un tiempo limitado. Es posible ejecutar una base de datos en estas máquinas virtuales. Los usuarios pueden subir su imagen propia con una base de datos instalada en ella, o utilizar imágenes prefabricadas de máquinas que ya incluyen una instalación optimizada de una base de datos. Por ejemplo Oracle provee una imagen prefabricada con una instalación de Oracle Database 11g Enterprise Edition on Amazon EC2.1
·         Base de datos como servicio:
 Algunas plataformas en la nube ofrecen opciones para el uso de bases de datos como servicio, sin lanzar físicamente una instancia de máquina virtual para la base de datos. En esta configuración, los propietarios de aplicaciones no tienen que instalar y mantener la base de datos por su cuenta. En cambio, el proveedor de servicios de base de datos se encarga de la instalación y el mantenimiento de la base de datos, y los propietarios de aplicaciones pagan de acuerdo a su uso.2 Por ejemplo, Amazon Web Services provee dos servicios de base de datos como parte de su oferta en la nube, SimpleDB que almacena pares llave-valor en formato NoSql y Amazon Relational Database Service que esta basado en SQL con una interfaz MySql.
Una tercera opción es administrar el alojamiento de una base de datos en la nube, donde la base de datos no se ofrece como un servicio, pero el proveedor de la nube aloja la base de datos y administra en nombre del propietario de la aplicación. Por ejemplo, el servicio en la nube de Rackspace ofrece alojamiento gestionado para bases de datos MySQL.3
Arquitectura y características en común

·         La mayoría de los servicios de bases de datos ofrecen consolas web, que el usuario final puede utilizar para aprovisionar y configurar las instancias de la base de datos. Por ejemplo, la consola web de Amazon Web Services permite a los usuarios lanzar instancias de bases de datos, crear instantáneas (similar a las copias de seguridad) de bases de datos y realizar un seguimiento de las estadísticas de la base de datos.4
·         Los servicios de las bases de datos consisten en un componente de administración que controla las instancias de cada base de datos subyacente utilizando una API de servicios. La API de servicios se expone al usuario final, y permite a los usuarios realizar operaciones de mantenimiento y ampliar sus instancias de la base de datos. Por ejemplo, el servicio de Amazon Relational Database provee una API que permite crear una instancia de una base de datos, modificar los recursos disponibles de cada instancia, eliminar una instancia, la creación de una instantánea (similar a una copia de seguridad) de una base de datos y restauración de una base de datos a partir de una instantánea.5
·         Los servicios de las bases de datos mantienen la pila del software subyacente, transparente al usuario - la pila normalmente incluye el sistema operativo, base de datos y el software de terceros utilizado por la base de datos. El proveedor de servicios es responsable de la instalación, parches y actualización de la pila de software subyacente.
·         Los servicios de las bases de datos cuidan la escalabilidad y la alta disponibilidad de la base de datos. Características de escalabilidad difieren entre los proveedores - algunos ofrecen auto-escala, mientras que otros permiten al usuario ampliar mediante una API, pero no escalar automáticamente. Normalmente hay un compromiso para un cierto nivel de alta disponibilidad (por ejemplo, 99,9% o 99,99%).

Modelo de datos

También es importante diferenciar entre bases de datos en la nube que son relacionales en oposición a las no relacionales (NoSQL):
·         Bases de datos SQL,
 son un tipo de base de datos que se puede ejecutar en la nube (ya sea como una imagen de máquina virtual o como un servicio, dependiendo del proveedor). Las bases de datos SQL poseen baja escalabilidad, ya que no fueron nativamente diseñadas para entornos en la nube, aunque los servicios en la nube de base de datos basado en SQL están tratando de hacer frente a este desafío.6
·         Bases de datos NoSQL
son otro tipo de base de datos que puede ejecutarse en la nube. Las bases de datos NoSQL están diseñados para servir cargas pesadas de lecto-escritura y son capaces de escalar hacia arriba y hacia abajo con facilidad.7 y por lo tanto son más adecuadas para funcionar de forma nativa en la nube. Sin embargo, la mayoría de las aplicaciones actuales se construyen en torno a un modelo de datos SQL, así que trabajar con bases de datos NoSQL con frecuencia requiere una reescritura completa del código de la aplicación.

Proveedores

La siguiente tabla muestra los principales proveedores base de datos en la nube, clasificada por su modelo de implementación y el modelo de datos. Véase las referencias para más información de cada proveedor o [3] para ver más proveedores y comparación de servicios.
Proveedores de base de datos en la nube por implementación del modelo y modelo de datos
Maquina virtual
Base de datos como servicio
Modelo de datos SQL
·         Oracle Database1 9
·         IBM DB210
·         Ingres (Base de datos)11
·         PostgreSQL12
·         MySQL13
·         NuoDB14
·         GaianDB15
·         Amazon Relational Database Service (MySQL)
·         Microsoft SQL Azure (MS SQL)16
·         Heroku PostgreSQL como servicio (compartido o dedicado)17
·         Clustrix Base de datos como servicio18
·         Xeround Cloud Database - MySQL front-end2
·         EnterpriseDB Postgres Plus Cloud Database19
·         GaianDB20
Modelo de datos NoSQL
·         CouchDB en Amazon EC221
·         Hadoop en Amazon EC222
·         Apache Cassandra en Amazon EC223
·         Neo4J en Amazon EC224 or Microsoft Azure25
·         MongoDB en Amazon EC226 o Microsoft Azure27
·         Amazon DynamoDB
·         Amazon SimpleDB
·         Cloudant Data Layer28 (CouchDB)
·         Database.com por SalesForce29
·         Google App Engine Almacenamiento de datos
·         MongoDB Base de datos como servicio30

Base de datos en la nube
DANAConnect provee una versátil herramienta de base de datos que opera completamente en la nube, capaz de manejar millones de registros, realizar segmentaciones automáticas y proveer diferentes vistas y reportes sobre los datos de acuerdo a distintos parámetros de análisis.

La información cargada reside de forma segura enn-demand. Cuando ya no necesiten los recursos de datos, estos se reciclan de nuevo en la nube para reasignación, en lugar de quedar inactivos y desperdiciados.
 nuestros servidores de datos de alta disponibilidad y puede ser accedida simplemente a través de un navegador de internet tal como Firefox, Chrome e Internet Explorer. La aplicación cuenta con una interfaz sencilla que en pocos pasos permite la definición de una estructura de datos compleja, la carga masiva de datos y la generación de segmentos y reportes de gran utilidad.

que es una base de datos en la nube?
La computación en nube se refiere a una categoría de soluciones de tecnología que permite a los usuarios accesar a recursos informáticos (en este caso, a recursos de datos) on-demand, según sea necesario, así los recursos sean físicos o virtuales, dedicados o compartidos, y sin importar la forma en que se acceda a ellos (mediante conexión directa, red de área local [LAN], red de área amplia [WAN] o Internet).
Para ofrecer DBaaS en la nube, los departamentos de TI de las empresas deben construir y administrar una nube privada de datos corporativos (una plataforma consistente en hardware de almacenamiento, imágenes virtuales, esquemas de bases de datos, y más), y poner esa nube a disposición de los usuarios mediante una interfaz de servicios.
Una vez que esta infraestructura está en su lugar, a medida que la base de datos surge, los usuarios simplemente pueden ir a la nube, solicitar los recursos que necesitan y obtener acceso inmediato a su propia base de datos personal