DAM AD01 Contenidos 2016 VI PDF
DAM AD01 Contenidos 2016 VI PDF
DAM AD01 Contenidos 2016 VI PDF
Caso práctico
Ada es una programadora experta en BK
Programación, empresa que desarrolla software
de diferente tipo y para diferentes plataformas,
suele trabajar como supervisora en casi todos los
proyectos que acomete la empresa.
1 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
otra aplicación.
2 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
1.- Introducción.
Pero, ¿a qué nos referimos cuando hablamos de acceso a datos en una aplicación
informática?
3 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
En esta unidad inicial, vas a ver una panorámica de los diversos métodos de
persistencia que encontramos en el mercado.
Autoevaluación
Señala la opción correcta. Para almacenar datos de manera
persistente no utilizaremos:
Ficheros de texto.
Bases de datos orientadas a objeto.
Memoria RAM.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
.NET
5 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
Mediante ficheros.
Bases de datos, que pueden ser:
Relacionales,
Orientadas a objetos,
Objeto-relacionales.
Mapeo objeto relacional (ORM).
Bases de datos XML (eXtensible Markup Language).
Componentes.
6 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Autoevaluación
Verdadero Falso
Falso
La idea es la contraria a la afirmación, es decir, separar los datos
de la aplicación en sí.
7 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Pues..., no hay una respuesta fácil para esas preguntas, no se puede afirmar que
haya un método que sea el mejor de manera absoluta. Más bien, la cuestión es
tener claro qué tipo de aplicación hay que construir y, según eso, estudiar qué tipo
de sistema de almacenamiento será mejor usar: si una base de datos orientada a
objetos, o una base de datos XML, etc.
Por poner un ejemplo, lo más sencillo posible: si voy a crear una base de datos para
guardar mi colección de vídeos, probablemente no me va a interesar utilizar una
base de datos Oracle, sino un producto mucho más barato, y sencillo de instalar y
mantener.
Autoevaluación
Señala la opción correcta. La mejor opción para lograr la
persistencia de los datos de una aplicación es:
8 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
información en estudio.
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
9 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
3.- Ficheros.
Caso práctico
Ada, María y Juan les explican a Ana y
Antonio, que una empresa a la que hay
que desarrollar un programa, tiene un
par de aplicaciones antiguas. Esas
aplicaciones son tan antiguas, que
todavía usan ficheros planos para
guardar los datos y, claro está, están
pensando en evitar ese sistema de
almacenamiento, y utilizar otro más adecuado a los tiempos que
corren, evitando problemas como las redundancias e inconsistencias
en los datos que se presentan
...
Esto tenía como efecto, que el programador de las aplicaciones que usaran ese
fichero, tuviera que construir el programa conociendo detalladamente las posiciones
de los datos, para saber desde qué posición hasta qué otra posición, se guardaba
el nombre y apellidos, etc. Además, tendría que controlar si se guardan filas de
datos duplicadas, y así un montón de inconvenientes. Por eso, cuando surgieron las
bases de datos, se empezó a dejar de usar los ficheros convencionales.
Pero bien es cierto, que aún en las más modernas aplicaciones, a veces
necesitamos un simple fichero para guardar información, como por ejemplo un
10 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
fichero de configuración, o un fichero log. Es decir, no siempre nos hace falta una
base de datos para almacenar la información.
Reflexiona
Antiguamente, en el inicio de la informática, cuando no existían los
discos duros, ni los ficheros, los datos y los programas se
almacenaban en tarjetas perforadas. En esta entrada de blog tienes
un ejemplo.
Tarjetas perforadas
Spectrum+2
11 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
De especial interés y uso cada vez más extendido, son los ficheros XML. Éstos son
archivos de texto que por consiguiente no necesitan un software propietario para
ser interpretados, como ocurre con la mayoría de los archivos binarios, y tienen
normalmente la extensión xml.
También debemos tener en cuenta, que las bases de datos relativamente modernas,
como son las bases de datos XML, guardan sus datos empleando ficheros xml.
Por eso, en muchas ocasiones se recurre a utilizar este tipo de soluciones, el uso de
ficheros en vez de bases de datos, y en particular de ficheros XML cuando se
necesita intercambiar información a través de varias plataformas de hardware o de
software, o de varias aplicaciones. A veces se exporta de una base de datos a
ficheros XML para trasladar la información a otra base de datos que leerá esos
ficheros XML.
Por esta razón se emplea XML en tecnologías de comunicación como, por ejemplo,
en WML (lenguaje de formato inalámbrico) y WAP (protocolo de aplicaciones
inalámbricas).
Autoevaluación
Señala la opción correcta. Respecto a los ficheros podemos
asegurar que:
12 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
Tutorial XML
13 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
14 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
Juan, después de la reunión que han
tenido, sigue con su trabajo.
Actualmente está trabajando en un
proyecto, desarrollando unas mejoras,
en una aplicación informática que
gestiona una cadena de farmacias. En
esas farmacias, guardan los datos en
una base de datos relacional. Entre
algunos de los datos, destacan los productos que venden, con sus
precios, stock actual, precio de compra, etc. Juan opina tras estudiar
la situación, que tal y como funciona el sistema, esa base de datos
que usan está bien diseñada y no requerirá tocarla para nada, tan solo
tendrá que conocer bien su estructura para programar las mejoras
que necesitan.
15 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Séneca.
16 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
4.1.- Introducción.
Las ventajas que aportan los sistemas de bases
de datos respecto a los sistemas de archivos
convencionales son:
Autoevaluación
Señala la opción correcta. El uso de bases de datos provoca que
el usuario:
17 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Solución
1. Incorrecto
2. Incorrecto
3. Incorrecto
4. Opción correcta
18 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Las bases de datos relacionales son adecuadas para manejar grandes cantidades
de datos, compartir datos entre programas, realizar búsquedas rápidas, 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.
19 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
20 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
La existencia de problemas al
representar cierta información y modelar
ciertos aspectos del mundo real. Los
modelos clásicos 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
información, 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
conversión alguna, en las BDOO.
21 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
22 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Cada vez más, las necesidades de las aplicaciones actuales con respecto a las
bases de datos son:
Jasmine
ObjectStore
GemStone
Definición de interoperabilidad
23 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Gestión de versiones
Autoevaluación
Señala las opciones correctas. Las bases de datos orientadas a
objetos:
Mostrar retroalimentación
Solución
1. Correcto
2. Incorrecto
3. Incorrecto
4. Correcto
24 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Podemos decir que las ventajas de un SGBDOO frente a las relacionales son:
25 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Reflexiona
Puedes ver un poco sobre la vida de Edgar F.Codd, el "padre" del
modelo relacional en el siguiente enlace.
Edgar F.Codd.
Autoevaluación
26 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Siempre.
Cuando necesitamos la mayor cercanía al mundo real, la mayor
capacidad de modelado, como en sistemas CAD/CAM.
En aplicaciones de sistemas de control.
En programas de control de stock.
No siempre es así.
¡Así es! Hay algunos casos como ese en los que las bases de
datos orientadas a objetos son preferibles a las relacionales.
¡No es correcto!
Solución
1. Incorrecto
2. Opción correcta
3. Incorrecto
4. Incorrecto
Curso de SQL
27 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
28 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
En una Base de Datos Objeto Relacional el diseñador puede crear sus propios tipos
de datos y crear métodos para esos tipos de datos.
La ventaja de este tipo de base de datos es que los usuarios pueden pasar sus
aplicaciones actuales sobre bases de datos relaciones este nuevo modelo sin tener
que reescribirlas. Más tarde, se pueden ir adaptando las aplicaciones y bases de
datos para que utilicen las funciones orientadas a objetos.
29 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
30 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
Antonio, después de salir la reunión
que tuvieron con Ada y los tutores,
pensó que ya no se acordaba de una
de las cosas que había comentado
Ada, concretamente había dicho algo
sobre JDBC. Antonio sabía
perfectamente que lo había estudiado
en el ciclo, pero ahora mismo no
recordaba con total exactitud qué significaba ese término. Por ello, en
cuanto llegara a casa, repasaría sus apuntes o lo buscaría por
Internet, para calmar su inquietud.
Este modelo continúa teniendo una gran importancia estratégica y es la base para
el continuo crecimiento del mapeo Objeto-Relacional (O/R) y está asociado a los
mecanismos de persistencia.
El API JDBC define interfaces y clases para escribir aplicaciones de bases de datos
en Java realizando conexiones de base de datos.
31 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Mediante JDBC el programador puede enviar sentencias SQL, y PL/SQL a una base
de datos relacional. JDBC permite embeber SQL dentro de código Java.
No obstante hay un trabajo de traducción para mapear los campos devueltos por
cada consulta a la colección de objetos correspondiente. Y hay que trabajar las
sentencias de actualización, inserción y eliminación para cada uno de los campos.
Esto constituye una razón para tratar de buscar alternativas menos costosas en
tiempo de desarrollo.
¿Sabías que…?
El controlador de ODBC (Open Database Connectivity, Conectividad
abierta de bases de datos) es la interfaz de programación de base de
datos que utiliza Microsoft para tener acceso a distintas bases de
datos relacionales en diversas plataformas. También existe un
estándar que sirve de puente entre JDBC-ODBC en las versiones
Solaris y Windows de la plataforma Java, para que se pueda utilizar
ODBC desde un programa Java.
Debes conocer
Esta introducción a JDBC te resultará muy interesante y práctica.
32 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
María está trabajando con Ana en un
proyecto que utiliza un acceso a datos
de tipo mapeo objeto-relacional. Ana al
principio se limita a ver y estudiar
cuidadosamente lo que hace María,
puesto que aunque estudió estos
conceptos en el ciclo, ahora en una
situación real, le impone bastante, y no
quiere meter la pata. María por su parte intenta calmar a Ana, y le
dice que no tenga miedo, y que siga atentamente las indicaciones que
ella le va a dar, y verá como refrescando los conceptos, la cosa no es
tan difícil como parece.
El sistema más extendido en las empresas hoy en día para guardar la información
de sus aplicaciones es el uso de una base de datos relacional. Tradicionalmente,
dichas aplicaciones están 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.
33 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
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 gestión del acceso a base de
datos esté centralizada en un componente único permitiendo su reutilización.
Mapeo objeto-relacional.
Autoevaluación
Señala las opciones correctas:
34 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Mostrar retroalimentación
Solución
1. Correcto
2. Incorrecto
3. Correcto
4. Incorrecto
35 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
La capa de persistencia traduce entre los dos modelos de datos: desde objetos a
registros y desde registros a objetos. Así, si el programa quiere grabar un objeto,
entonces llama al motor de persistencia, el motor de persistencia traduce el objeto
a registros y llama a la base de datos para que guarde estos registros.
De este modo el programa sólo ve que puede guardar y recuperar objetos, como si
estuviera programado para una base de datos orientada a objetos. Y la base de
datos sólo ve que guarda y recupera registros como si el programa estuviera
dirigiéndose a ella de forma relacional.
Las alternativas más importantes basadas en el estándar, son EJB 3.2 y JDO 3.1.
36 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Debes conocer
No dejes de visitar los siguientes enlaces al respecto de la
persistencia, EJB, JDO y diferencias.
Persistencia.
EJB.
JDO.
Autoevaluación
Señala las opciones correctas:
37 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Mostrar retroalimentación
Solución
1. Correcto
2. Incorrecto
3. Incorrecto
4. Correcto
38 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
María, aunque hoy ha llegado algo
cansada a casa, va a echar un rato en
un proyecto de dispositivos móviles
que está haciendo con Juan, antes de
irse a la cama. En ese proyecto tienen
que guardar información en un tipo de
bases de datos que habitualmente no
usaban en sus proyectos anteriores: las
bases de datos XML.
Estas bases de datos almacenan los datos estructurados como XML sin la
necesidad de traducir los datos a una estructura relacional o de objeto.
39 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Las bases de datos XML nativas permiten trabajar con XQL (eXtensible Query
Language), el cuál sirve un propósito similar a SQL en una base de datos relacional.
El trabajo con bases de datos XML nativas involucra dos pasos básicos:
Lenguaje XQL.
Recomendación
Te recomendamos que veas la siguiente presentación sobre las bases
de datos XML:
40 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Autoevaluación
Señala la opción correcta:
Mostrar retroalimentación
Solución
1. Incorrecto
2. Incorrecto
3. Correcto
4. Correcto
41 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Caso práctico
Ada está pensando en un proyecto que han
encargado a la empresa BK Programación
recientemente. Es un proyecto ambicioso y
bastante amplio. Piensa que en casi todos los
proyectos en los que se embarcan, suelen utilizar
partes de software parecidas, o a veces iguales
que en otros proyectos. Por eso cree que podría
aprovecharse esta cuestión e intentar programar
componentes software que se puedan usar no en
uno sino en muchos proyectos.
42 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Aumenta la competencia.
Reduce los costes.
Facilita la construcción de estándares.
Por tanto, así el software se hace cada vez más rápido, de mejor calidad y a menor
coste incluso de mantenimiento.
Interfaces requeridas.
Entorno de ejecución: máquina necesaria, sistema operativo a utilizar, etc.
Autoevaluación
43 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
44 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
8.2.- JavaBeans.
45 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Autoevaluación
Indica si la siguiente afirmación es verdadera o falsa:
Falso
Evidentemente no, ya que son componente de Java y por tanto
multiplataforma.
JavaBeans.
46 de 47 31/8/16 14:24
Introducción al acceso a datos. http://localhost:51235/temp_print_dirs/eXeTempPrintDir_K3gT...
Recurso Recurso
Datos del recurso (1) Datos del recurso (2)
(1) (2)
47 de 47 31/8/16 14:24