46
Arquitectura general Apache Derby

Apache Derby Trabajo

Embed Size (px)

Citation preview

Page 1: Apache Derby Trabajo

Arquitectura general

Apache Derby

Page 2: Apache Derby Trabajo

El motor de base de datos es integrable.

Esto significa que en lugar de correr como un proceso separado, el software de motor de base de datos puede ser parte de la aplicación para que la misma y el motor de base de datos se ejecuten en la JVM (Máquina Virtual Java). Con un motor de base de datos integrada, la aplicación utiliza la API JDBC (Base de Datos Java de Conectividad) para acceder a la base de datos.

EMBEBIDO

Page 3: Apache Derby Trabajo
Page 4: Apache Derby Trabajo

Es Posible implementar Derby como un

tradicional Cliente /Servidor de Base de Datos. Derby incluye un servidor de red, pero también puede ejecutar una infraestructura del servidor de su elección.

CLIENTE/SERVIDOR

Page 5: Apache Derby Trabajo
Page 6: Apache Derby Trabajo

Derby proporciona la persistencia de datos

mediante el almacenamiento de datos en archivos de discos. Un motor de Derby puede manejar uno o más archivos de base de datos, pero cada archivo de base de datos, solo se puede acceder por un único motor de Derby. Los Datos en el disco de archivos de base de datos, se almacenan de una forma portátil, por lo que las bases de datos pueden ser fácilmente transportadas de una máquina a otra, independientemente de la arquitectura de CPU de cada máquina

PERSISTENCIA DE DATOS

Page 7: Apache Derby Trabajo
Page 8: Apache Derby Trabajo

Derby proporciona una gran flexibilidad

para los diseñadores del sistema. Cada Instancia de Derby puede gestionar múltiples base de datos, las cuales pueden estar en diversos medios de comunicación, y no hay nada para detener la aplicación de la conexión a otros SMBD.

FLEXIBILIDAD

Page 9: Apache Derby Trabajo
Page 10: Apache Derby Trabajo

Organización de Archivos

Apache Derby

Page 11: Apache Derby Trabajo

Apache Derby, es un Sistema Gestor de

Base de Datos Relacional, basado en «n» tuplas, donde una tupla al contrario que un segmento, permite representar tanto entidades como interrelaciones N:M.

Organización de archivos

Page 12: Apache Derby Trabajo

Además, la Organización de Archivos de

Derby, es de tipo Organización Indexada Secuencial, debido a que Derby implementa índices secundarios de SQL como BTrees (Estructura de Árbol B), específicamente implementa el algoritmo estándar de Árbol B+ (Donde los nodos de la hoja, están enlazados, lo cual ofrece un acceso ordenado a los registros según el campo de búsqueda).

Organización de archivos

Page 13: Apache Derby Trabajo

A nivel de hoja, Apache Derby puede

vincular las páginas padres, derecha e izquierda, ya que estas están contenidas por una clase pública llamada INDEXROWS, la cual es una implementación básica que permite colocar los índices a los nodos.

Organización de archivos

Page 14: Apache Derby Trabajo

ORGANIZACIÓN INDEXADA SECUENCIAL CON ESTRUCTURA DE DATOS ÁRBOL B

Page 15: Apache Derby Trabajo

Concurrencia

Apache Derby

Page 16: Apache Derby Trabajo

En base al Diccionario en línea de la

lengua española(RAE), la concurrencia se define como acaecimiento o coincidencias de varios sucesos o cosas en un mismo tiempo.

ahora bien, el control de concurrencia en los SMBD, es la forma de controlar la ejecución de transacciones que operan en paralelo, accesando a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.

Concurrencia

Page 17: Apache Derby Trabajo

Así mismo, el SGBD Apache Derby,

maneja el acceso de concurrencia con un sistema de Cierre de Páginas (Punto Muerto), el cual consta en la interrupción de operaciones, en espera de un bloqueo. Cuando Derby aborta y/o deshace una transacción, la misma recibe un SQLEXCEPTION (un mensaje de advertencia o error), el cual se muestra de tres maneras.

Concurrencia

Page 18: Apache Derby Trabajo

Un valor cero (0), significa la anulación

de una transacción en cualquier momento si de inmediato no puede obtener un bloqueo que lo solicite.

Un valor negativo (-), significa un tiempo de espera infinito, para obtener el bloqueo.

Un valor mayor a cero (>0), significa que no se realizará ninguna comprobación de punto muerto (cierre de páginas).

Concurrencia

Page 19: Apache Derby Trabajo

En este sentido, Derby como se

mencionó en el parrafo anterior utiliza en el control de concurrencia la técnica de bloqueo; especificamente el Bloqueo Exclusivo, el cual se utiliza para operaciones de modificación de datos, como INSERT, UPDATE o DELETE, garantizando que no pueden realizarse varias actualizaciones simultáneamente en el mismo recurso.

Concurrencia

Page 20: Apache Derby Trabajo

De acuerdo a que Apache Derby posee un

estructura de datos de tipo árbol B, los interbloqueos de cierre de páginas se organizan de arriba hacia abajo y de izquierda a derecha. Si se ejecutan varias transacciones a la vez, derby al momento de implementar el control de concurrencia de cierre de páginas a un nodo padre y a uno secundario, el nodo primario tiene que ser liberado, para así cumplir con el bloqueo exclusivo.

Concurrencia

Page 21: Apache Derby Trabajo
Page 22: Apache Derby Trabajo

Optimización de consultas

Apache Derby

Page 23: Apache Derby Trabajo

Al hablar de optimización de consultas nos

referimos a mejorar los tiempos de respuesta en un sistema de gestión de base de datos relacional, pues la optimización es el proceso de modificar un sistema para mejorar su eficiencia o también el uso de los recursos disponibles.  El sistema gestor de base de datos Apache Derby, implementa el mecanismo de optimización llamado Aqua Data Studio, el cual, es una herramienta de consulta de datos, que permite crear, editar y ejecutar de forma rápida consultas y scripts SQL.

Optimización de consultas

Page 24: Apache Derby Trabajo

Además con esta herramientas se pueden exportar e importar datos, tanto dentro como fuera de la base de datos Apache Derby. La herramienta Aqua Data Studio, es ventajosa, ya que, accede a mostrar estadísticas en una ejecución de consultas, presentando detalles de scripts de forma gráfica.

Optimización de consultas

Page 25: Apache Derby Trabajo

Aqua Data Studio

Page 26: Apache Derby Trabajo

Las funciones de Aqua Data Studio, se explican a continuación: Plan de explicación visual: Permite la optimización de

consultas, para su mejora y para el rendimiento del servidor. Scripts parametrizados: Requiere valores de parametros antes

de ejecutar scripts. Finalización automática: Aligera el establecimiento de scripts

con función finalización automática para tablas y columnas. Resalte de la sintaxis: Colorea automáticamente las palabras

primarias SQL. Consultas y gráficos: Muestra gráficas de las consultas en 2D y

3D. Entre otras funciones importantes, tales como cruzar tablas,

editar datos, guardar en archivos excel.

Aqua Data Studio

Page 27: Apache Derby Trabajo

Diccionario y Directorio de

Datos

Apache Derby

Page 28: Apache Derby Trabajo

Ahora bien, cuando hablamos de

Diccionario y/o Directorios de Datos, nos referimos a un archivo que contiene metadatos, es decir, "Datos acerca de los datos". Este archivo se consulta antes de leer y modificar los datos reales en el sistema de base de datos. Una base de datos Derby diccionario, contiene objetos como tablas, columnas, índices y archivos jar; también puede almacenar su propia información de configuración.

Diccionario y Directorio de datos

Page 29: Apache Derby Trabajo

Además, Apache Derby implementa el

directorio de datos, en base a un sistema que contiene las propiedades específicas del mismo, en un archivo de propiedades llamado Derby.Properties, el cual, es un archivo de texto que contiene la definición de los atributos y parámetros de configuración que son válidos para todo el sistema.

Los directorios y archivos que utiliza la base de datos Derby, son los siguientes:

Diccionario y Directorio de datos

Page 30: Apache Derby Trabajo

- Registro de la Guía: Contiene los archivos que

componen los registros de transacciones de la base de datos, de uso interno para la recuperación de datos.

- Seg0 Directorio: Contiene un archivo para cada tabla de usuario, tabla del sistema y el índice.

- Service. Properties Archivo: Contiene un archivo de texto con la información de configuración interna.

- TMP de la Guía: Directorio temporal utilizado por Derby, utilizado para variedad de sentencias SQL.

- Jar de la Guía: Contiene un directorio donde se almacenan los archivos jar cuando se utiliza la clase de carga de base de datos.

Diccionario y Directorio de datos

Page 31: Apache Derby Trabajo

Diccionario y Directorio de datos

Page 32: Apache Derby Trabajo

Seguridad e Integridad

Apache Derby

Page 33: Apache Derby Trabajo

Cuando hablamos de seguridad e

interigridad en una base de datos, nos referimos, a que la información de la base de datos debe estar protegida contra accesos no autorizados, destrucción o alteración con fines indebidos y la introducción accidental de inconsistencia. Pero la seguridad e integridad total de los datos puede conservarse permitiendo el acceso a distintos campos de una base de datos, solamente a usuarios autorizados para ello.

Seguridad e Integridad

Page 34: Apache Derby Trabajo

Tipos de privilegios y usuarios en Apache Derby.El SGBD

Apache Derby, maneja la seguridad en base a aplicaciones informáticas, donde se limitan los niveles de acceso a la base de datos, de acuerdo al usuario que solicita entrar a la misma. Apache utiliza un gestor llamado Liferay, el cual es un portal de gestión de contenidos de código abierto escrito en java; dicho portal controla el acceso a través de un conjunto de permisos denominados Rol, que a la vez estos se encuentran clasificados en Empresa, Comunidad e Individual. Dichos Roles y Permisos, son concedidos por el Administrador de la base de datos a cada usuario, permitiendo instaurar Grupos de Usuarios, donde cada miembro puede recibir los Roles y/o Permisos asignados

Seguridad e Integridad

Page 35: Apache Derby Trabajo

En cuanto a los tipos de privilegios que poseen los usuarios se tienen: Administración de Empresa: Tiene el nivel más

alto de las funciones de administración, ya que, tiene acceso a todas las organizaciones, localizaciones y usuario.

Administración de Organización: Puede acceder a su propia información y la correspondiente a las localizaciones y usuarios pertenecientes.

Administración de Localización: Puede acceder a su propia información y a los usuarios pertenecientes.

Seguridad e Integridad

Page 36: Apache Derby Trabajo

Definición de Privilegios en Apache

Derby para un Usuario. Como se explico anteriormente, apache

derby, soporta cifrado completo, roles y permisos. Además posee SQL SCHEMAS, que es la forma más general de identificar el nombre del dueño de la base de datos; con el fin de separar la información en un única base de datos y control completo de usuarios. Además los usuarios gozan y tienen acceso a los privilegios siguientes:

Seguridad e Integridad

Page 37: Apache Derby Trabajo

Ventanas de Consultas: Ejecutar y Editar un scripts;

permisos de SQL locales, Formateo de SQL, otros. Exporador de Scripts: Carpetas de scripts filtrables. Editor de Datos de Tablas: Insertar, modificar, eliminar,

deshacer resultados de registros visualmente. Herramientas: Exportación e importación de datos,

generador de scripts de esquemas, otros. Modelador de ER: Crear, editar y ver realaciones de

esquemas de Base de Datos mediante diagramas de Relación de Entidades.

Aspecto de Interfaz Configurable: Aqua Data Studio. Control de Código Fuente: Navegador de Repositorios.

Seguridad e Integridad

Page 38: Apache Derby Trabajo

Autenticación y Métodos

Apache Derby

Page 39: Apache Derby Trabajo

La autenticación de usuario de Apache Derby, se maneja de dos (2) formas: A través de Usuarios a Nivel de Sistemas (Para

todas las bases de datos de derby). Sólo los Usuarios a Nivel de Base de Datos.También se puede realizar la autentificación mediante el protocolo LDAP (Directorio de Protocolo de Acceso Directo), el cual proporciona un protocolo de directorio de acceso abierto a través de TCP/IP, que permite autenticar el nombre y contraseña de un usuario.

Autenticación y Métodos

Page 40: Apache Derby Trabajo

Debido a que apache derby es un sistema relacional escrito en java, los

métodos que se utilizan para la conexión de la base de datos desde cualquier plataforma java se basan en Objetos, y entre ellos se tienen:

Objeto Connection: Se encarga de realizar conexiones con la Interfaz de Programación de Aplicaciones Java (API), mediante la utilización de un método llamado getconnection, recibiendo como parametros la dirección de la base de datos (URL), el nombre del usuario y la contraseña.

Objeto Statement: Permite la ejecución de consultas SQL, utilizando dos (2) métodos, los cuales son; executeQuey, que permite ejecutar consultas con el comando SELECT, y el otro método executeUpdate, el cual permite ejecutar consultas con los comandos UPDATE y DELETE.

Objeto ResultSet: Se encarga de almacenar los datos obtenidos de la ejecución de consultas.

ResultSetMetaData y DataBaseMetaData: Son objetos que utilizan Connection y ResulSet, para obtener los metadatos de la base de datos, es decir los datos sobre los datos.

Page 41: Apache Derby Trabajo

MD5. Es un algoritmo de reducción criptográfico de 128 bits

ampliamente usados, en otras palabras es una firma digital compacta empleada en una amplia variedad de aplicaciones de seguridad, y también se utiliza comunmente para comprobar la integridad de los archivos.

Apache Derby, emplea el MD5 para verificar las emisiones, es decir, verificar la integridad de los archivos descargados. Asegurando que el archivo no fue dañado durante el proceso de descarga. El estado de salida del MD5 en apache derby, funciona de manera tal que si arroja un cero (0) significa que el proceso se completo sin errores, si arroja un uno (1), significa que la firma no coincide, y si arroja un dos (2) significa que el proceso no se pudo realizar.

Page 42: Apache Derby Trabajo

Llaves-ssh= Acceso Automático sin poner

Contraseña. Las llaves-ssh, significa crear claves privadas que identifiquen los servidores. Las mismas pueden protegerse con contraseñas o no necesariamente. Lo que se desea es que cada vez que un usuario intenta conectarse a un servidor utilizando llaves, la clave de descodificación se le pedirá. En caso de que cualquiera que pueda leer los archivos claves, solo verá una versión encriptada (procesos cifrados). Apache derby, implementa el ssh, de forma tal que se puede utilizar el nombre de usuario root db2 inst1or y la contraseña correspondiente al usuario para conectarse.

Page 43: Apache Derby Trabajo

Reglas de Acceso para los Usuarios sobre los Objetos de Apache

Derby. Las Reglas de Autorización para los usuarios sobre los Objetos de

Apache Derby son: Derby.database.defaultConnectionMode: Define el modo de conexión

por defecto para los usuarios o sistema por el que se establece esta propiedad. Los valores posibles se distinguen entre mayúsculas y minúsculas y son las siguientes:

NoAccess. No permite conexiones. readOnlyAccess. Conexiones de sólo lectura. FullAccess. Otorga acceso completo. Derby.database.FullAccessUsers: Específica una lista de nombres de

usuarios separados por comas a los que concede completo el acceso a la base de datos (Lectura y Escritura).

Derby.database.readOnlyAccessUsers: Específica una lista de nombres de usuarios separados por comas a los que concede solo el acceso de Lectura.

Page 44: Apache Derby Trabajo

La integridad de dominio es la que se encarga de

salvaguardar los datos en una columna de la base de datos. Mientras que la integridad relacional es la que se encarga de salvaguardar los datos de tablas relacionadas.

Por otra parte, apache derby, trabaja con un mapeador objeto-relacional (ORM), denominado Hibernate, el cual es un sistema que permite almacenar y/o salvaguardar objetos de aplicaciones java en las tablas de la base de datos. Con dicho sistema solo se necesitan escribir setencias java, y de manera independiente, el código escrito con Hibernate funcionará en cualquier motor de datos al que se le dé soporte, es decir, con este mapeo de objetos-relacional, tambien conocido como POJOS (Objeto LLanura Antiguo Java); no es necesario escribir códigos especificos sobre los objetos sin hacer que hereden de clases determinadas 

Integridad de Dominio e Integridad Relacional.

Page 45: Apache Derby Trabajo

La integridad de dominio es la que se encarga de

salvaguardar los datos en una columna de la base de datos. Mientras que la integridad relacional es la que se encarga de salvaguardar los datos de tablas relacionadas.

Por otra parte, apache derby, trabaja con un mapeador objeto-relacional (ORM), denominado Hibernate, el cual es un sistema que permite almacenar y/o salvaguardar objetos de aplicaciones java en las tablas de la base de datos. Con dicho sistema solo se necesitan escribir setencias java, y de manera independiente, el código escrito con Hibernate funcionará en cualquier motor de datos al que se le dé soporte, es decir, con este mapeo de objetos-relacional

Integridad de Dominio e Integridad Relacional.

Page 46: Apache Derby Trabajo

, tambien conocido como POJOS (Objeto LLanura Antiguo

Java); no es necesario escribir códigos especificos sobre los objetos sin hacer que hereden de clases determinadas . En vez de eso se trabaja con objetos que proporcionan librerías y con ficheros XML (Lenguajes de Marcas Extensibles), que permiten definir la gramática de lenguajes específicos.

Es importante resaltar que el sistema Hibernete no siempre es compatible o no siempre funciona correctamente, es por ello que apache derby también implementa un código abierto de java denominado OpenJPA, que a igual que Hibernte, se encarga de conservar la información en java a través de la utilización de una base de datos back-end (principio y final de un proceso), y no tener que escribir un monton desordenado de código JDBC.