Download Bases de datos en Grid
Document related concepts
Transcript
GRID GRIDS ING. DE INFORMACION II Ing. Alfredo Ramos Uso de Bases de Datos en Grid Introducción ¿Qué es una base de datos? Un conjunto de datos no redundantes, almacenados en un soporte informático, organizados de forma independiente de su utilización y accesibles simultáneamente por distintos usuarios y aplicaciones. Un conjunto de datos relacionados almacenados de forma persistente. Las bases de datos son necesarias cuando el volumen o la organización de los datos hace imposible un seguimiento “a mano” de los mismos por el usuario. Si bien hay aplicaciones grid que tienen poca o ninguna necesidad de acceso a base de datos, el uso de aplicaciones cada vez más complejas ha hecho que cada vez estén más presentes en este entorno. Ventajas del uso de bases de datos Globalización de la información. Eliminación de información redundante. Eliminación de información inconsistente. Si el sistema esta desarrollado a través de archivos convencionales, esta es una operación costosa y potencialmente peligrosa. Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad. Permite mantener la integridad en la información. Solo se almacena la información correcta. Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hacer cambios en las aplicaciones o en los programas. SGBD: Sistema Gestor de Bases de Datos Es el conjunto de programas que permiten: definir, manipular y utilizar la información que contienen las bases de datos, realizar todas las tareas de administración necesarias para mantenerlas operativas, mantener su integridad, confidencialidad y seguridad. Una BD nunca se accede o manipula directamente sino a través del SGBD. Se puede considerar al SGBD como el interfaz entre el usuario y la BD. Se pueden considerar tres niveles: Externo. Lógico. Interno. Algunos de los más conocidos son: Relacionales: IBM DB2, Informix, Oracle, MySQL, PostGreSQL, SQL Server… XML: Tamino, Xindice… Tipos de Bases de datos Jerárquica. Estructura en árbol (padre/hijo). • Relaciones uno-a-uno o uno-a-muchos. • Pero no muchos-a-muchos. Problemas: • Redundancia de la información. • Borrado en cascada. Red. Evita el problema de redundancia con conectores. Relacionales (objeto-relacionales) Orientadas a objeto. Acceso directo a objetos desde programas OO. Tipos de datos flexibles, abstracción, etc. Propiedades ACID Las bases de datos con transacciones deben implementar estas de tal manera que se cumplan las siguientes propiedades: Atomicity (atomicidad): las operaciones de una transacción son o bien completadas con éxito o bien abortadas (la base de datos queda en su estado anterior). Consistency (consistencia): una transacción lleva la base de datos de un estado consistente a otro. Isolation (aislado): los efectos de la transacción no son visibles para otras transacciones (u otras operaciones de la base de datos) hasta que se ha completado. Durability (durabilidad): los cambios realizados en una transacción que finaliza correctamente son permanentes, y deben ser inmunes a un fallo del sistema. El modelo relacional Desarrollado por E. F. Codd a finales de los sesenta. Es el más extendido hoy en día. Motivos de su éxito: ofrecen sistemas simples y eficaces para representar y manipular los datos se basan en un modelo, el relacional, con sólidas bases teóricas (matemáticas): álgebra y teoría de conjuntos. La estructura fundamental es la relación o tabla. SQL es el lenguaje que se utiliza para manejar este tipo de bases de datos. Estándar ANSI (1986), ISO (1987). Versión actual SQL92. Aunque la mayoría de las bases de datos solo implementan el “entry level”. Sirve para realizar tanto operaciones en los datos (DML) como en su estructura (DDL). El modelo objeto-relacional que hoy implementan las compañías más importantes (IBM, Microsoft y Oracle) es una extensión del mismo. Debe ser estandarizado en parte con la adopción especificación SQL3 (SQL1999). El modelo relacional (2) La estructura fundamental del modelo relacional es precisamente esa, "relación", es decir una tabla bidimensional constituida por líneas (tuplas) y columnas (atributos). Las relaciones representan las entidades que se consideran interesantes en la base de datos. Cada instancia de la entidad encontrará sitio en una tupla de la relación, mientras que los atributos de la relación representarán las propiedades de la entidad. En realidad, siendo rigurosos, una relación es sólo la definición de la estructura de la tabla, es decir su nombre y la lista de los atributos que la componen. Cuando se puebla con las tuplas, se habla de "instancia de relación". Las tuplas en una relación son un conjunto en el sentido matemático del término, es decir una colección no ordenada de elementos diferentes. El modelo relacional (3) Para distinguir una tupla de otra, se recurre al concepto de "llave primaria", o sea a un conjunto de atributos que permiten identificar unívocamente una tupla en una relación. Naturalmente, en una relación puede haber más combinaciones de atributos que permitan identificar unívocamente una tupla ("llaves candidatas"), pero entre éstas se elegirá una sola para utilizar como llave primaria. Los atributos de la llave primaria no pueden asumir el valor nulo (que significa un valor no determinado), en tanto que ya no permitirían identificar una tupla concreta en una relación. Esta propiedad de las relaciones y de sus llaves primarias está bajo el nombre de integridad de las entidades (entity integrity). Normalización El proceso de normalización es un estándar que consiste, básicamente, en un proceso de conversión de las relaciones entre las entidades, evitando: La redundancia de los datos: repetición de datos en un sistema. Anomalías de actualización: inconsistencias de los datos como resultado de datos redundantes y actualizaciones parciales. Anomalías de borrado: pérdidas no intencionadas de datos debido a que se han borrado otros datos. Anomalías de inserción: imposibilidad de adicionar datos en la base de datos debido a la ausencia de otros datos. Existen 4 formas normales básicas. Existen algunas más menos extendidas y prácticas. Las TRES formas normales Se dice que una tabla se encuentra en primera forma normal (1NF) si y solo si cada uno de los campos contiene un único valor para un registro determinado. La segunda forma normal compara todos y cada uno de los campos de la tabla con la clave definida. Si todos los campos dependen directamente de la clave se dice que la tabla está es segunda forma normal (2NF). Se dice que una tabla está en tercera forma normal si y solo si los campos de la tabla dependen únicamente de la clave, dicho en otras palabras los campos de las tablas no dependen unos de otros. . Extensiones Objeto Relacionales Nuevos tipos de datos: BLOB CLOB Arrays “Estructuras” Tipos de datos definidos por el usuario. Jerarquías de tablas. Funciones sobrecargadas. Implementaciones comerciales: IBM DB2 Informix Universal Server (IDS 9.x) Oracle 8i, muchas nuevas características en 9i. Open Source: PostgresSQL Data Grid vs. Computational Grid Primero surgió el concepto de Computational Grid: Compartir recursos de cálculo a gran escala. Transparente para el usuario. Flexible, seguro....... El Data Grid extiende los recursos a compartir a los datos: Compartir servidores: cinta, disco.... Grandes bases de datos distribuidas. “Data mining” sobre bases de datos inhomogéneas. "Access to distributed data is typically as important as access to distributed computational resources." Hoy en día los proyectos Grid también contemplan compartir otros recursos como instrumentos de medida. Bases de datos en el Grid La ausencia de un modelo unificado de almacenamiento de datos es un problema potencial. El “middleware” debe proporcionar métodos de acceso transparente para consultar los distintos tipos de bases de datos presentes. Nuestro grupo ha propuesto el uso de XML como lenguaje común de intercambio de datos. Las bases de datos relacionales no tuvieron en un principio muy buena acogida en grid pero: Se fueron introduciendo en el campo del metadata, por ejemplo, Spitfire del WP2 de EU DataGrid. El paso al modelo tipo web services facilitará su integración ya que es un campo más conocido para el desarrollo de aplicaciones que usan bases de datos. Las grandes empresas de software (de bases de datos) están dando pasos para adaptarse al grid. Oracle ha denominado a la última versión de su SGBD Oracle 10g. Usos de Bases de Datos en Grid Datos de las aplicaciones Por ahora no son muy usadas para los datos en si. Generalmente se usan ficheros planos. Metadata de las aplicaciones Catálogos de ficheros de datos. Sirven para seleccionar los ficheros de datos que se quieren usar. Metadata del “middleware” Monitorización Replicas … Acceso a bases de datos en Grid Un acceso grid a bases de datos debería ser posible usando la Grid Security Infrastructure (GSI). GSI está basado en el uso de claves públicas encriptadas, certificados X.509, SSL... Por ahora las bases de datos no admiten el acceso directo a las mismas usando tecnologías grid (autentificación con certificados, etc.) ¿Oracle 10g? Autentificación GSI mediante middleware: Spitfire (webservice front end): • Mapeado de certificados de usuarios a roles en la base de datos. SRB (Storage Resource Broker): • Admite la autentificación GSI de clientes ante servidores. Tipos de metadata Técnico Localización, esquema físico, características de los datos, propietario, versión, métodos de acceso. Capacidades de las bases de datos. Contextual Esquema lógico, clasificaciones, terminologías, ontologías, datos derivados. Mapeo de esquema Evolución y conversión del esquema Proyectos: MCAT (SRB) Spitfire (EDG) TOPOLOGIA Registry GDSR Factory GDSF Analyst Factory creates GridDataService Grid Data Service GDS Consumer GDS interacts with database Database (Xindice, MySQL Oracle, DB2) Futuro Migración a web/grid services Nuevos casos de uso: Queries distribuidas en grid Aplicaciones grid que accedan directamente a bases de datos Adaptación a grid de bases de datos existentes: Oracle 10g IBM DB2 v8.1 MySQL (open source) (autentificación GSI en 4.1) ¿Será posible mantener una infraestructura estándar?