Professional Documents
Culture Documents
1 INTRODUCCIN
En general el trmino de acceso a datos significa el proceso de recuperacin o
manipulacin de datos extrados de un origen de datos local o remoto. Los orgenes
de datos no tienen por qu ser relacinales y pueden provenir de muchas fuentes
distintas. Algunos de los orgenes de datos con los que podemos encontrarnos son:
una base de datos relacional remota en un servidor, una base de datos relacional
local, una hoja de clculo, un fichero de texto en nuestro ordenador, un servicio de
informacin online, etc.
En esta unidad nos centraremos en los orgenes de datos relacinales, aprenderemos
a realizar programas Java para acceder a una base de datos relacional. Para ello
necesitaremos los conectores, que no son ms que el software que se necesita para
realizar las conexiones desde nuestro programa Java con una base de datos
relacional.
2 EL DESFASE OBJETO-RELACIONAL
Actualmente las bases de datos orientadas a objetos estn ganando cada vez ms
aceptacin frente a las bases de datos relacinales, ya que solucionan las
necesidades de aplicaciones ms sofisticadas que requieren el tratamiento de
elementos ms complejos. Un ejemplo de estas son las aplicaciones para diseo y
fabricacin en ingeniera, los sistemas de informacin geogrfica (GIS), experimentos
cientficos, aplicaciones multimedia, etc. Dentro de estas nuevas aplicaciones se
definen las orientadas a objetos (OO) y en general el Paradigma de Programacin
Orientada a Objetos (POO) cuyos elementos complejos (nombrados anteriormente)
son los Objetos.
En este sentido, las bases de datos relacinales no estn diseadas para
almacenar estos objetos ya que existe un desfase entre las construcciones tpicas
que proporciona el modelo de datos relacional y las proporcionadas por los ambientes
de programacin basados en objetos; es decir, al guardar los datos de un programa
bajo el enfoque orientado a objetos se incrementa la complejidad del programa dando
lugar a ms cdigo y ms esfuerzo de programacin debido a la diferencia de
esquemas entre los elementos a almacenar (objetos) y las caractersticas del
repositorio de la base de datos (tablas). A esto es a lo que se denomina desfase
objeto-relacional (o desajuste de la impedancia) y se refiere a los problemas que
ocurren debido a las diferencias entre el modelo de datos de la base de datos y el del
lenguaje de programacin orientado a objetos.
Sin embargo, el paradigma relacional y el paradigma orientado a objetos pueden ser
"amigos". Cada vez que los objetos deben extraerse o almacenarse en una base de
datos relacional se requiere un mapeo desde las estructuras provistas en el modelo de
datos a las provistas por el entorno de programacin.
para ella. La base de datos se inicia cuando se ejecuta la aplicacin y termina cuando
se cierra la aplicacin (DB4).
Por lo general, este tipo de bases de datos vienen del movimiento Open Source,
aunque tambin hay algunas de origen propietario.
3.1 SQLITE
SQLite es un sistema gestor de base de datos multiplataforma escrito en C que
proporciona un motor muy ligero. Las bases de datos se guardan en forma de
ficheros por lo que es fcil trasladar la base de datos con la aplicacin que la usa.
Cuenta con una utilidad que nos permitir ejecutar comandos SQL contra una base de
datos SQLite en modo consola. Es un proyecto de dominio pblico.
La biblioteca implementa la mayor parte del estndar SQL-92, incluyendo
transacciones de base de datos atmicas, consistencia de base de datos, aislamiento
y durabilidad, triggers (o disparadores) y la mayor parte de las consultas complejas.
Los programas que utilizan la funcionalidad de SQLite lo hacen a travs de llamadas
simples a subrutinas y funciones. SQLite se puede utilizar desde programas en C/C++,
PHP, Visual Basic, Perl, Delphi, Java, etc.
Su instalacin es sencilla. Desde la pgina http://www.sqlite.org/download.html se
puede descargar. Para sistemas Windows podemos descargar el fichero ZIP sqliteshell-win32-x86-3070900.zip, al descomprimirlo obtenemos un nico fichero
ejecutable (sqlite3.exe). Al ejecutarlo desde la lnea de comandos escribimos el
nombre del fichero que contendr la base de datos, si el fichero no existe se crear, si
existe cargar la base de datos. El siguiente ejemplo crea la base de datos ejemplo.db
(en la carpeta D:\db\SQlite), todas las tablas que creemos en esta sesin se
almacenarn en este fichero, para finalizar se escribe el comando .quit:
D:\>sqlite3 D:\db\SQlite\ejemplo.db
SQLite versin 3 . 7 . 9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> BEGIN TRANSACTION;
sqlite> CREATE TABLE departamentos (
> dept_no TINYINT(2) NOT NLL PRIMARY KEY,
> dnombre VARCHAR(IS),
> loc VARCHAR(15)
sqlite>
sqlite>
sqlite> INSERT INTO departamentos VALUES (10,'CONTABILIDAD','SEVILLA')
sqlite> INSERT INTO departamentos VALUES (20,'INVESTIGACIN','MADRID)
sqlite> INSERT INTO departamentos VALUES (30,'VENTAS','BARCELONA');
sqlite> INSERT INTO departamentos VALUES (40,'PRODUCCIN','BILBAO');
sqlite> COMMIT;
sqlite> .quit
http://usemossoftwarelibre.wordpress.com/cc/tutorial-sqlite-enespanol/capitulo-4-tutorial-sqlite/
Hay muchos orgenes de datos que no son bases de datos relacinales, algunos
puede que ni si quiera sean bases de datos, tal es el caso de los ficheros planos y los
almacenes
de
correo
electrnico.
OLE-DB
(Object
Linking
and
EmbeddingforDatabases-Enlace e incrustacin de objetos para bases de datos) de
Microsoft es una API de C++ con objetivos parecidos a los de ODBC pero para
orgenes de datos que no son bases de datos. OLE-DB proporciona estructuras para
la conexin con orgenes de datos, ejecucin de comandos y devolucin de resultados
en forma de conjunto de filas. Sin embargo, se diferencia de ODBC en algunos
aspectos. Los programas OLE-DB pueden negociar con los orgenes de datos para
averiguar las interfaces que soportan. En ODBC los comandos siempre estn en SQL,
en OLE-DB pueden estar en cualquier lenguaje soportado por el origen de datos,
puede que algunos orgenes soporten SQL o un subconjunto limitado de SQL y otros
ofrezcan el acceso a los datos de los ficheros planos sin ninguna capacidad de
consulta. La API ADO (Active Data Objects - Objetos activos de datos) creada por
Microsoft ofrece una interfaz sencilla de utilizar con la funcionalidad OLE-DB, que
puede llamarse desde los lenguajes de guiones como VBScript y JScript.
La API JDBC es compatible con los modelos tanto de dos como de tres capas para el
acceso a la base de datos. En el modelo de dos capas, un applet o una aplicacin
Java "hablan" directamente con la base de datos, esto requiere un driver JDBC
residiendo en el mismo lugar que la aplicacin. Desde el programa Java se envan
sentencias SQL al sistema gestor de base de datos para que las procese y los
resultados se envan de vuelta al programa. La base de datos puede encontrarse en
otra mquina diferente a la de la aplicacin y las solicitudes se hacen a travs de la
red (arquitectura cliente-servidor). El driver ser el encargado de manejar la
comunicacin a travs de la red de forma transparente al programa.
En el modelo de tres capas, los comandos se envan a una capa intermedia que se
encargar de enviar los comandos SQL a la base de datos y de recoger los resultados
de la ejecucin de las sentencias. Es decir, tenemos una aplicacin o applet corriendo
en una mquina y accediendo a un driver de base de datos situado en otra mquina.
En este caso los drivers no tienen que residir en la mquina cliente.
propias del protocolo de red usado por el motor de base de datos. No exige
instalacin en cliente.
Los tipos 3 y 4 son la mejor forma para acceder a bases de datos JDBC. Los tipos 1 y
2 se usan normalmente cuando no queda otro remedio, porque el nico sistema de
acceso final al gestor de bases de datos es ODBC (es decir, no existen drivers
disponibles para el SGBD); pero exigen instalacin de software en el puesto cliente.
En la mayora de los casos la opcin ms adecuada ser el tipo 4.
Catlogo de la BD
Esquema de la BD
Patrn que indica el nombre de las tablas que queremos obtener.
Es un string que admite dos valores: table y view.