Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Apache Derby

Presentación BDA
by

José Islas Ramírez

on 5 February 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Apache Derby

Integrantes:
Dulce Janeth Santos Hilario
José Abraham Islas Ramírez
Pedro Hernández APACHE DERBY Apache Derby es un sistema gestor de base de datos relacional  escrito en Java que puede ser instalado en aplicaciones Java y utilizado para procesos de transacciones online. Tiene un tamaño de 2 MB de espacio en disco e incluye un controlador integrado JDBC (Base de Datos Java de Conectividad). Inicialmente distribuido como IBM Cloudscape, Apache Derby es un proyecto open source licenciado bajo la Apache 2.0 Licene. Actualmente se distribuye como Sun Java DB.
 
Apache Derby comenzó como Cloudscape a mediados de la década de 1990, luego fue adquirida por Informix antes de ser rebautizado como IBM Cloudscape cuando IBM se hizo cargo de los activos de Informix. En el 2004, IBM contribuyó con el código Cloudscape al proyecto Apache y en el 2005 la primera versión de Apache Derby fue lanzada como versión 10.1.1. Apache Derby se puede ejecutar en dos modos, ya sea como un motor de base de datos totalmente funcional incorporado (por ejemplo, tal como se utiliza en Apache Tomcat y la aplicación de servidor Red Hat) o como una base de datos tradicional cliente-servidor mediante Derby Network Server. Ventajas APIs para JDBC  y SQL. Soporta todas las características de SQL92 y la mayoría de SQL99. La sintaxis SQL usada proviene de IBM DB2.
Su código pesa alrededor de 2000KB comprimido.
Soporta cifrado completo, roles y permisos. Además posee SQL SHEMAS  para separar la información en un única base de datos y control completo de usuarios.
Soporta internamente procedures, cifrado y  compresión.
Trae soporte multilenguaje y localizaciones específicas.
A partir de la versión 10.4 trae un sistema simple de replicación maestro-esclavo.
Transacciones y recuperación ante errores  ACID.
Posee tres productos asociados a la marca:
Derby Embedded Database Engine: El motor propiamente dicho.
Derby Network Server: Permite convertir Derby en una base de datos que sigue el modelo cliente-servidor  tradicional.
Database Utilities: Un paquete de utilidades. Desventajas Derby está escrito en Java y no tiene bindings para otros lenguajes (no tendría mucho sentido) por lo que limita al programador a utilizarlo mediante la máquina virtual de Java y en programas escritos en ese lenguaje o lenguajes de scripting que se ejecuten sobre JVM (Jython, JRuby, Jacl, etc.).
Esto por otro lado hace que las aplicaciones sean altamente portables. 
Derby hace uso de una mayor cantidad de memoria y su rendimiento y compatibilidad SQL es inferior que otras alternativas como puede ser la base de datos gratuita y de código libre H2 por lo que su uso tiene poco sentido.
En su modo empotrado sólo soporta un único proceso que tenga abierta la base de datos. Sin embargo en su modo de cliente/servidor soporta el acceso de varios procesos simultáneos mediante bloqueo de filas.  Ejemplo de como crear una base de datos: import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class CreateDataBase {

public static void main(String[] args) {
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
String dbName = "/DerbyDB/ExampleDB";
    String dbParam = "create=true"; //la base de datos se creará si no existe todavía
String connectionURL = "jdbc:derby:" + dbName + ";" + dbParam;
Connection conn = null;
try{ 
Class.forName(driver);
       } catch(java.lang.ClassNotFoundException e) {
e.printStackTrace();
} try {
conn = DriverManager.getConnection(connectionURL);
Statement st = conn.createStatement();
String sqlCreateTableUsers =
             "CREATE TABLE users ( " +
"FirstName VARCHAR(20) NOT NULL, " +
"LastName VARCHAR(20) NOT NULL, " +
"idUser INTEGER NOT NULL CONSTRAINT idUser_PK PRIMARY KEY "+
             ")"; // la sentencia SQL crea una tabla con 3 campos
st.execute(sqlCreateTableUsers);
System.out.println("La base de datos '" + dbName + "' se ha creado correctamente");
}  catch (Throwable e)  {
 System.out.println("Error al crear la base de datos '" + dbName +"'");
      e.printStackTrace();
    } finally {
      try { conn.close(); }
catch (Throwable t){}
}
}
} Arquitectura general: 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. CLIENTE/SERVIDOR: Es Posible implementar Derby como un tradicional Cliente /Servidor de Base de Datos. Derby incluye un servidor de red, pero tambien puede ejecutar una infraestructura del servidor de su elección. PERSISTENCIA DE DATOS: 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. FLEXIBILIDAD: 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.
Full transcript