Modulo Tema1 Acceso A Datos DAM
Modulo Tema1 Acceso A Datos DAM
Modulo Tema1 Acceso A Datos DAM
1.- Introduccin.
Iniciamos esta primera unidad del mdulo Acceso a datos, en el que veremos la gran
variedad de mtodos de acceso a datos que tenemos en el panorama actual.
Los contenidos del mdulo son eminentemente prcticos, y los ejemplos estarn
basados en Java. Utilizaremos como entorno de programacin NetBeans, por coherencia
con otros mdulos del ciclo y por ser ambos gratuitos. Adems, NetBeans es un entorno
muy potente y fcil de usar, si lo comparamos con otros entornos de desarrollo.
Pero, a qu nos referimos cuando hablamos de acceso a datos en una aplicacin
informtica?
Podemos afirmar que en la mayora de aplicaciones informticas se pueden diferenciar,
a grandes rasgos, dos partes:
Por otro lado, los datos con los que opera el programa. Esos datos pueden ser
obtenidos por el programa mediante diversos mtodos: ledos mediante teclado,
escaneados, ledos de algn soporte de almacenamiento secundario, etc.
En la mayora de los casos, cuando programamos, nos interesa que el programa guarde
los datos que le hemos introducido, o los resultados que dicho programa haya obtenido,
de manera que si el programa termina su ejecucin, los datos no se pierdan y puedan
ser recuperados posteriormente, es decir, persistan. Una forma tradicional de hacer
esto es mediante la utilizacin de ficheros o de bases de datos que se guardarn en un
dispositivo de memoria no voltil (normalmente un disco).
Te habrs dado cuenta de que el almacenamiento en memoria RAM, mediante variables
o vectores, es temporal y los datos se pierden cuando el programa termina. Quizs te
habr pasado alguna vez que, debido a un apagn elctrico, has perdido el trabajo que
estabas haciendo, que todava no habas grabado. Los datos que se guardan en
almacenamiento secundario, como ficheros o bases de datos, se denominan datos
persistentes, porque existen, o persisten ms all de la ejecucin de la aplicacin.
Ese almacenamiento secundario de datos que acabamos de mencionar, habitualmente
suele consistir en una base de datos relacional, si bien, a veces, hay otros mtodos de
almacenamiento, y por tanto, mtodos de acceso a esos datos. De conocer esos tipos
de almacenamiento y cmo acceder a ellos es de lo que trata este mdulo.
En esta unidad inicial vas a ver una panormica de los diversos mtodos de
persistencia que encontramos en el mercado.
2. Acceso a datos.
Hay diversas estrategias de acceso a datos para gestionar la persistencia de los datos:
Mediante ficheros.
Bases de datos, que pueden ser:
Relacionales.
Orientadas a objetos.
Objetos-relacionales.
Mapeo Objeto relacional (ORM).
Bases de datos XML (eXtensible Markup Language).
Componentes.
Al principio, en los primeros tiempos de la informtica, los datos se guardaban en
ficheros convencionales. Con el tiempo, y la experiencia de trabajar con ellos, se
observaron sus inconvenientes, y para intentar solucionarlos surgieron las bases de
datos, que entre otras ventajas permitan:
01 AD
Eliminar el problema de la informacin redundante.
Eliminar informacin inconsistente.
Globalizar o centralizar la informacin.
Garantizar el mantenimiento de la integridad en la informacin. nicamente se
almacena la informacin.
Independencia de datos. La independencia de datos implica una separacin entre
programas ydatos, es decir, se pueden hacer cambios en la informacin que
contiene la base de datos, o tener acceso a la base de datos de diferente
manera, sin tener que hacer cambios en las aplicaciones o en los programas.
3. Ficheros.
En las antiguas aplicaciones informticas, antes de que surgieran las bases de datos, la informacin se guardaba
en ficheros.
As, por ejemplo, una aplicacin que guardaba los datos de personas, almacenaba dichos datos en un fichero
convencional cuyo contenido bien poda ser este:
Antonio Prez Prez 30 C/ Morales n 11 Madrid Madrid
Feliciano Gmez Sander 25 C/ Terreros n 121 Vitoria Vitoria
Arturo Bueno Hernndez 46 C/ Cocoliso n 43 Murcia Murcia
01 AD
Esto provocaba que el programador de las aplicaciones que usaran ese fichero tuviera que construir el programa
conociendo detalladamente las posiciones de los datos, para saber en qu rango de posiciones se guardaba el
nombre y apellidos, etc. Adems, tendra que controlar si se guardan filas de datos duplicadas entre otros
inconvenientes. Por eso, cuando surgieron las bases de datos, se empez a dejar de usar los ficheros
convencionales.
Bien es cierto que an en las ms modernas aplicaciones, a veces necesitamos un simple fichero para guardar
informacin, como por ejemplo un fichero de configuracin, o un fichero log. Es decir, no siempre nos hace falta una
base de datos para almacenar la informacin.
En Java, como en otros lenguajes de programacin, hay diversas clases para el manejo de ficheros, pues, como
hemos dicho, a veces son muy tiles. Para guardar poca informacin, es mejor usarlos que usar otro mtodo.
Un sistema de informacin orientado hacia los datos, que pretende recuperar y almacenar la informacin
de manera eficiente y cmoda.
Surge en un intento de resolver las dificultades del procesamiento tradicional de datos, teniendo en cuenta
que los datos suelen ser independientes de las aplicaciones.
01 AD
Independencia de los datos respecto de los procedimientos. El usuario tiene una visin abstracta de los
datos, sin necesidad de ningn conocimiento sobre la implementacin de los ficheros de datos, ndices,
etc. Esto supone un gran ahorro en los costes de programacin, de forma que la modificacin de la
estructura de los datos no suponga un cambio en los programas y viceversa. Sin ella, el mantenimiento de
la base de datos ocupara el 50% de los recursos humanos dedicados al desarrollo de cualquier aplicacin.
Disminucin de las redundancias y en consecuencia.
Disminucin de la posibilidad de que se produzca inconsistencia de datos.
Mayor integridad de los datos.
Mayor seguridad de los datos.
Mayor privacidad de los datos.
Mayor eficiencia en la recogida, codificacin y entrada en el sistema.
Lo que se suele denominar interfaz con el pasado y futuro: una base de datos debe estar abierta a
Podemos afirmar, generalizando, que se usa un sistema de ficheros convencional que no justifica las desventajas
del uso de los sistemas de bases de datos. Por ejemplo, para guardar los datos del resultado de la instalacin de un
programa, usamos un fichero de texto, no se guardan los datos en una base de datos.
01 AD
Las bases de datos relacionales son adecuadas para manejar grandes cantidades de datos, compartir datos entre
programas, realizar bsquedas rpidas, etc. Pero tienen como desventaja fundamental que no presentan un buen
modelo de las relaciones entre los datos, ya que todo se representa como tablas bidimensionales, o sea, en filas y
columnas.
Podemos decir de las bases de datos relacionales que:
Son el comn denominador de muchos sistemas y tecnologas. Una base de datos puede ser utilizada en
programas realizados en Java, o en C++, etc.
El origen de las Bases de datos orientadas a objetos (en adelante: BDOO) se debe bsicamente a las siguientes
razones:
La existencia de problemas al representar cierta informacin y modelar ciertos aspectos del mundo real.
Los modelos clsicos permiten representar gran cantidad de datos, pero las operaciones y
representaciones que se pueden realizar sobre ellos son bastante simples.
Pasar del modelo de objetos al modelo relacional para almacenar la informacin genera dificultades que en
el caso de las BDOO no surgen, ya que el modelo es el mismo. Es decir, los datos de los programas
escritos en lenguaje orientado a objetos se pueden almacenar directamente, sin conversin alguna, en las
BDOO.
01 AD
Los sistemas de bases de datos orientadas a objetos soportan un modelo de objetos puro, ya que no estn
basados en extensiones de otros modelos ms clsicos como el relacional.
Por ello, una caracterstica general es que el lenguaje de programacin y el esquema de la base de datos
utilizan las mismas definiciones de tipos.
Gestin de versiones.
Interconexin e interoperabilidad.
Como ejemplos de Sistemas Gestores de Bases de datos Orientados a Objetos podemos sealar:
Jasmine
ObjectStore
GemStone
Interoperabilidad
El Instituto de Ingenieros Elctricos y Electrnicos (IEEE) define interoperabilidad como la habilidad de dos o ms
sistemas o componentes para intercambiar informacin y utilizar la informacin intercambiada.1
Ms all de la perspectiva tecnolgica, actualmente la interoperabilidad es entendida como un concepto ms mplio
con un grupo de dimensiones diferenciadas. En este sentido, el Marco Iberoamericano de
Interoperabilidad2 recoge para el mbito de la administracin electrnica una de las definiciones ms completas
existentes actualmente en lnea con la definicin dada por la Comisin Europea, definiendo interoperabilidad
como la habilidad de organizaciones y sistemas dispares y diversos para interaccionar con objetivos
consensuados y comunes y con la finalidad de obtener beneficios mutuos. La interaccin implica que las
organizaciones involucradas compartan informacin y conocimiento a travs de sus procesos de negocio, mediante
el intercambio de datos entre sus respectivos sistemas de tecnologa de la informacin y las comunicaciones.
01 AD
Gestin de versiones
Control de versiones es la gestin de los diversos cambios que se realizan sobre los elementos de algn
producto o una configuracin del mismo. Una versin, revisin o edicin de un producto, es el estado en el que
se encuentra el mismo en un momento dado de su desarrollo o modificacin.
Permiten mayor capacidad de modelado. El modelado de datos orientado a objetos permite modelar el
mundo real de una manera mucho ms fiel. Esto se debe a que:
Un objeto permite encapsular tanto un estado como un comportamiento.
Un objeto puede almacenar todas las relaciones que tenga con otros objetos.
Los objetos pueden agruparse para formar objetos complejos (herencia).
Extensibilidad debido a que:
Se pueden construir nuevos tipos de datos a partir de los ya existentes.
Podemos agrupar propiedades comunes de diversas clases e incluirlas en una superclase, lo que
reduce la redundancia.
Tenemos reusabilidad de clases, lo que repercute en una mayor facilidad de mantenimiento y un
menor tiempo de desarrollo.
Disposicin de un lenguaje de consulta ms expresivo, el acceso navegacional desde un objeto al
siguiente es la forma ms comn de acceso a datos en un sistema gestor orientado a objetos. Mientras que
SQL utiliza el acceso declarativo. El acceso navegacional es ms adecuado para gestionar operaciones
tales como consultas recursivas, etc.
Adaptacin a aplicaciones avanzadas de base de datos. Hay muchas reas en las que las bases de
datos relacionales no han tenido excesivo xito, como es el caso de en sistemas de diseo CAD, CASE,
sistemas multimedia, en los que las capacidades de modelado de los SGBDOO han hecho que esos
sistemas s resulten
efectivos para este tipo de aplicaciones.
Prestaciones. Los sistemas gestores de bases de datos orientadas a objetos proporcionan mejoras
significativas de rendimiento con respecto a los SGBD relacionales. Aunque hay autores que han
argumentado que los bancos de prueba, usados en dichas pruebas, estn dirigidos a aplicaciones de
ingeniera donde los SGBDOO son ms adecuados. Tambin est demostrado, que los SGBDR tienen un
rendimiento mejor que los SGBDOO en las aplicaciones tradicionales de bases de datos como el
procesamiento de transacciones en lnea (OLTP).
Reglas de acceso. En las bases de datos relacionales, a los atributos se accede y se modifican a travs
de operadores relacionales predefinidos. En las orientadas a objetos se procede mediante las interfaces
que se creen a tal efecto de las clases. Desde este punto de vista, los sistemas orientados a objetos dan
una independencia a cada objeto que el sistema relacional no permite.
01 AD
Clave. En el modelo relacional, las claves primarias generalmente tienen una forma representable en texto,
sin embargo los objetos no necesitan una representacin visible del identificador.
La reticencia del mercado, tanto para desarrolladores como usuarios, a este tipo de bases de datos.
Carencia de un modelo de datos universal. No hay ningn modelo de datos que est universalmente
aceptado para los SGBDOO y la mayora de los modelos carecen de una base terica. El modelo de
objetos an no tiene una teora matemtica coherente que le sirva de base.
Carencia de experiencia. Al ser una tecnologa relativamente nueva, todava no se dispone del nivel de
experiencia del que se dispone para los sistemas relacionales.
Panorama actual. Tanto los sistemas gestores de bases de datos como los sistemas gestores de bases
de datos objeto-relacionales estn muy extendidos. SQL es un estndar aprobado
y ODBC y JDBC son estndares de facto. Adems, el modelo relacional tiene una slida base terica y los
productos relacionales disponen de muchas herramientas de soporte que sirven tanto para desarrolladores
como para usuarios finales.
CREATE
(nif
nombre
direccin
telfono
fecha_nac
TYPE persona_t
VARCHAR2(9),
VARCHAR2(30),
VARCHAR2(40),
VARCHAR2(15),
DATE);
AS
OBJECT
01 AD
Por poner un ejemplo, si consideramos la base de datos Oracle, debido a los requerimientos de las nuevas
aplicaciones, el sistema de gestin de bases de datos relacional desde versin 8i fue extendido con conceptos del
modelo de bases de datos orientadas a objetos. De esta manera, aunque las estructuras de datos que se utilizan
para almacenar la informacin siguen siendo tablas, los diseadores pueden utilizar muchos de los mecanismos de
orientacin a objetos para definir y acceder a los datos. Se reconoce el concepto de objetos, de tal manera que un
objeto tiene un tipo, se almacena en cierta fila de cierta tabla y tiene un identificador nico (OID). Estos
identificadores se pueden utilizar para referenciar a otros objetos y as representar relaciones de asociacin y de
agregacin.
La ventaja de este tipo de base de datos es que los usuarios pueden pasar sus aplicaciones actuales, sobre bases
de datos relaciones, a este nuevo modelo sin tener que reescribirlas. Ms tarde, se pueden ir adaptando las
aplicaciones y bases de datos para que utilicen las funciones orientadas a objetos.
Con las Bases de Datos Objeto-Relacional se ampla el modelo relacional destacando las siguientes aportaciones:
se pueden crear nuevos tipos de datos que permitan construir aplicaciones complejas con una
gran riqueza de dominios. Se soportan tipos complejos como: registros, conjuntos, referencias,
listas, pilas, colas y vectores.
Se pueden compartir varias libreras de clases ya existentes, esto es lo que conocemos como reusabilidad.
SyBASE
01 AD
La mayora de las aplicaciones importantes de una empresa estn respaldadas por una arquitectura normalizada y
optimizada de bases de datos relacionales. Tradicionalmente, dichas aplicaciones estn basadas en sentencias
SQL con las cuales se gestionan todos los datos que manejan.
Este modelo contina teniendo una gran importancia estratgica y es la base para el continuo crecimiento del
mapeo Objeto-Relacional (O/R) y est asociado a los mecanismos de persistencia.
Un driver JDBC es un componente software que posibilita a una aplicacin Java interaccionar con una base
de datos.
El API JDBC define interfaces y clases para escribir aplicaciones de bases de datos en Java realizando conexiones
de base de datos.
Mediante JDBC el programador puede enviar sentencias SQL, y PL/SQL a una base de datos relacional. JDBC
permite embeber SQL dentro de cdigo Java.
La ilustracin muestra una representacin de los diferentes mecanismos de mapeo O/R y cmo se relacionan con
el cdigo de la aplicacin y con los recursos de datos relacionados. Se observa claramente la funcin crtica que
desempea el driver JDBC puesto que est situado en la base de cada uno de los marcos de trabajo.
La ventaja de usar conectores JDBC es que independiza la aplicacin de la base de datos que utilice.
No obstante hay un trabajo de traduccin para mapear los campos devueltos por cada consulta a la coleccin de
objetos correspondiente. Y hay que trabajar las sentencias de actualizacin, insercin y eliminacin para cada uno
de los campos. Esto constituye una razn para tratar de buscar alternativas menos costosas en tiempo de
desarrollo.
10
01 AD
El sistema ms extendido en las empresas hoy en da para guardar la informacin de sus aplicaciones es el uso de
una base de datos relacional. Tradicionalmente, dichas aplicaciones estn basadas en sentencias SQL con las
cuales se gestionan todos los datos que manejan. Este sistema es la base para el continuo crecimiento del mapeo
Objeto-Relacional (O/R) y est asociado a los mecanismos de persistencia.
Cuando se programan sistemas orientados a objetos, utilizando una base de datos relacional, los programadores
invierten gran cantidad de tiempo en desarrollar los objetos persistentes, o sea, convertir los objetos del lenguaje de
programacin a registros de la base de datos. Igualmente, tambin pasan bastante tiempo implementando la
operacin inversa, es decir, convirtiendo los registros en objetos.
El mapeo objeto-relacional (Object-Relational Mapping, o ORM) consiste en una tcnica de programacin para
convertir datos entre el sistema de tipos utilizado en un lenguaje de programacin orientado a objetos y el sistema
utilizado en una base de datos relacional.
Cuando se trabaja con programacin orientada a objetos y con bases de datos relacionales, es fcil observar que
estos son dos paradigmas diferentes. El modelo relacional trata con relaciones y conjuntos, es de naturaleza
matemtica. Por el contrario, el paradigma orientado a objetos trata con objetos, atributos y asociaciones de unos
con otros.
Cuando se requiere almacenar la informacin de los objetos utilizando una base de datos relacional se comprueba
que hay un problema de compatibilidad entre estos dos paradigmas, el llamado desfase objeto-relacional.
Por ello, para ahorrar trabajo al programador, se puede utilizar un framework que se encargue de realizar estas
tareas de modo transparente, de modo que el programador no tenga por qu usar JDBC ni SQL, y la gestin del
acceso a base de datos est centralizada en un componente nico permitiendo su reutilizacin.
11
01 AD
Cada uno de los mecanismos de mapeo O/R tiene una dependencia particular en el conector JDBC para poder
comunicarse con la base de datos de una forma eficiente. Si el conector JDBC que participa en la comunicacin no
es ptimo, la posible gran eficiencia de cualquier framework quedar debilitada. Por tanto, seleccionar
el driver JDBC que mejor se adapte a la aplicacin es esencial a la hora de construir un sistema eficiente en el que
intervenga un mecanismo de mapeo O/R.
Bases de datos nativas XML. Consiste en un modelo lgico para documentos XML. El Sistema Gestor de
Base de Datos correspondiente almacena y recupera documentos de acuerdo a dicho modelo.
o
Productos ejemplo de esa filosofa son: eXist, Apache Xindice, Berkeley dbXML....
Bases de datos compatibles con XML (XML-enabled): son bases de datos, generalmente objetorelacionales, que admiten entradas de datos en forma de XML y proporcionan salidas en este mismo
formato.
o
Las bases de datos XML nativas permiten trabajar con XQL (eXtensible Query Language), el cual sirve un propsito
similar a SQL en una base de datos relacional.
El trabajo con bases de datos XML nativas involucra dos pasos bsicos:
Describir los datos mediante Definiciones de Tipos de Datos (Document Type Definitions, DTD) o
esquemas XML y
Definir un nuevo esquema de base de datos XML nativa o Mapa de Datos a usar para almacenar y obtener
datos.
12
01 AD
Aumenta la competencia,
Interfaces requeridas
8.2- JavaBeans.
El origen de los JavaBeans lo podemos encontrar en un par de necesidades que Java
tena:
13
01 AD
Un JavaBean es un componente software reutilizable basado en la especificacin
JavaBean de Sun (ahora Oracle) que se puede manipular visualmente con una
herramienta de desarrollo.
Hay una serie de propiedades que presenta un JavaBean:
14
01 AD
15
01 AD
16