20251202 UD2-BDR-Intro - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Venga, vamos a ver, realmente contenidos no son muchos, lo que tenemos que ver de acceso a bases de datos relacionales.
00:00:00
No, el primer RA sí que dije que eran como muchas cositas sueltas, entonces eso tiene un efecto sinérgico que despista, esto es más concreto, ¿vale?
00:00:09
¿Por qué? Para empezar, lo que es una base de datos relacional, todos lo sabéis, ahí no hay que meterse, y conocéis SQL, ahí no hay que meterse, y a ver, nosotros no nos va a preocupar hacer sentencias gordas o no, sino cómo ejecutar sentencias, nada igual, nada más, ¿vale?
00:00:21
Entonces, las bases de datos relacionales pues hicieron magia en realidad, porque tienen más años que la TANA y ahí siguen y ahí siguen y ahí siguen y es complicadísimo quitárselas de encima, no hay manera.
00:00:43
las bases de datos
00:00:56
porque cuando la programación orientada a objetos
00:00:57
pues bueno, no hace falta parar
00:00:59
porque en total hemos estampado las reglas
00:01:01
cuando la programación orientada a objetos
00:01:03
se quedó
00:01:06
de alguna manera, se quedó instalada
00:01:08
en el desarrollo de aplicaciones comerciales
00:01:10
pues efectivamente, rápidamente
00:01:12
se identificó el desfase
00:01:14
el desfase que se llama
00:01:15
objeto relacional, que es Polines
00:01:18
tengo una aplicación basada en objetos
00:01:19
que tienen propiedades dentro
00:01:21
y esos objetos tienen objetos dentro
00:01:23
y este objeto tiene un objeto dentro
00:01:25
y mi aplicación trabaja con datos
00:01:27
porque si no, no sirve para nada
00:01:30
y los datos tienen otro diseño
00:01:32
distinto, que es
00:01:34
alumno, matrícula por aquí
00:01:35
secretaría por aquí, sin embargo
00:01:37
mi aplicación tiene la matrícula dentro del alumno
00:01:40
no la tiene aparte
00:01:42
como en la tabla, ¿qué desfase es este?
00:01:43
¿qué cachondeo es este?
00:01:45
pues al identificar este desfase
00:01:47
allá por principios
00:01:49
de los 2000 o un poquito antes
00:01:51
dijeron, pues hombre, bases adrelacionales
00:01:53
ya anticuadas a la corra, vamos a desarrollar tecnologías
00:01:55
de bases de datos orientadas a objetos, de tal manera que
00:02:00
cargar los datos de los objetos de la base de datos es que sea
00:02:03
inmediato, sea una correspondencia biunívoca
00:02:08
pues se intentó, se intentó, se hicieron bases de datos orientadas a objetos
00:02:11
puras de... al final el grupo que se
00:02:15
creó para desarrollar estas tecnologías, para normalizar
00:02:20
todo eso, pues ese grupo
00:02:23
se fue cada uno a su casa
00:02:25
y se aburrieron
00:02:27
y hombre, lo que sí que se han quedado es
00:02:29
lo que sí que se ha quedado es
00:02:32
en
00:02:35
la tierra
00:02:36
vaya panda de delincuentes
00:02:38
que tenemos ahí
00:02:45
vale
00:02:46
esos son los alumnos míos, no van a conocer
00:02:46
entonces
00:02:50
lo que sí que se ha quedado es
00:02:52
en las bases adrelacionales, tal cual las
00:02:54
conocéis, se ha quedado
00:02:56
pues la probabilidad también
00:02:58
de en el modelo, en el DDL
00:03:00
pues crear objetos y esas cositas
00:03:02
pero luego realmente al final
00:03:04
las bases adrelacionales se usan tal y como
00:03:06
las habéis estudiado el año pasado
00:03:08
un montón de tablas
00:03:09
que son una secuencia
00:03:11
de tuplas con
00:03:14
claves que las relacionan entre ellas
00:03:16
al final se ha quedado así, tal y como
00:03:18
se inventaron hace 50 años
00:03:20
o 60 años, tal cual
00:03:22
Luego, ¿qué es un base de datos relacional?
00:03:24
Tal cual la conocéis.
00:03:26
¿Cuál es nuestro problema ahora?
00:03:28
Pues hombre, tengo una aplicación Java
00:03:30
y necesito comunicarme con mi base de datos relacional.
00:03:32
¿Qué hago?
00:03:39
Esto no tiene nada que ver con esto.
00:03:40
¿Cómo lo hago?
00:03:41
Bueno, pues bueno, aquí llega ya todo el proceso de estandarización.
00:03:42
Vamos a hacer unos estándares para que todos hagamos las cosas igual.
00:03:48
Ese proceso de estandarización
00:03:52
Como se hace en Java
00:03:55
Mediante APIs
00:03:56
Es decir, me voy a hacer
00:03:58
Un conjunto de interfaces
00:04:01
Con métodos, con un nombrecito
00:04:03
Conocido, explicativo
00:04:05
Todos usamos esas APIs
00:04:07
Que yo distribuyo
00:04:09
En mi JDK
00:04:11
La gran mayoría, otras no, pero las puedo poner con dependencia
00:04:12
Todos usamos esas APIs
00:04:15
Es decir, todos usamos esos nombres
00:04:17
Todos llamamos de la misma manera las cosas
00:04:18
y ahora ya vamos a implementar
00:04:21
como toque
00:04:24
y como tocará
00:04:25
pues depende de la base de datos que yo esté usando
00:04:26
porque el problema aquí viene
00:04:29
en eso, que la base de datos
00:04:31
yo puedo estar usando MySQL
00:04:33
puedo estar usando Postgre, Oracle
00:04:35
puedo estar usando mil cosas
00:04:38
entonces tendría que hacer
00:04:40
un programa, tendría que cambiar
00:04:42
el programa cada vez que cambie de base de datos
00:04:44
pues no tendría ningún sentido cambiarlo
00:04:46
entonces el estándar por tanto
00:04:48
se basa en, oye, vamos
00:04:50
a crear una API con unos métodos
00:04:52
yo llamo a esta API
00:04:54
y ahora
00:04:58
esta API ya que se implemente
00:04:59
como toque
00:05:02
como toque, vale
00:05:03
pues, la API básica
00:05:05
sobre lo que todo
00:05:08
lo demás está montado
00:05:10
la API básica que usamos
00:05:11
sí o sí, bueno, sí o sí con
00:05:13
matices, porque bueno, luego tendríamos
00:05:16
la API básica
00:05:18
que se usa sí o sí
00:05:22
para acceder desde Java
00:05:24
a una base A tradicional
00:05:26
es lo que llamamos
00:05:27
la API JDBC
00:05:29
que es una de las del trabajito del año pasado
00:05:32
¿verdad? la API JDBC
00:05:34
Java
00:05:36
Database Connectivity
00:05:37
esto es un conjunto de métodos
00:05:39
para
00:05:42
directamente hablar con la base de datos
00:05:44
de tú a tú, tal cual
00:05:46
para meterse en el fango tal cual
00:05:48
para hablar con la base de datos
00:05:49
y hablar con la base de datos que implica
00:05:51
crear conexión
00:05:53
ejecutar
00:05:55
la sentencia, suele ser SQL
00:05:58
que yo quiera, que puede ser también
00:05:59
de crear modelos
00:06:02
y cerrar conexión
00:06:03
esencialmente es eso
00:06:06
eso es lo que hace la API JDBC
00:06:07
se baja al barro directamente
00:06:11
a la tierra
00:06:13
a hablar directamente con la base de datos
00:06:13
para crear la conexión tal cual
00:06:17
ejecutar, toma este SQL
00:06:19
ala, ejecútalo
00:06:22
si es una consulta, dame los resultados
00:06:24
venga, cierre conexión
00:06:26
esencialmente es eso, bueno
00:06:28
hay otras cositas más que se pueden hacer ya metidos
00:06:30
en el barro de la base de datos
00:06:32
bueno, pues
00:06:34
esto, la API
00:06:35
JDBC tiene métodos
00:06:38
para hacer estas cosas
00:06:40
¿vale? para hacer esas cosas
00:06:41
entonces, uno
00:06:43
no necesitaría nada más, puede hacer
00:06:46
cualquier aplicación directamente así
00:06:48
y tendría un control
00:06:50
exhaustivo de la aplicación
00:06:52
lo que pasa es que bueno
00:06:53
que se queda una aplicación
00:06:55
un poquito
00:06:57
poco escalable, poco mantenible
00:06:58
porque yo tengo ahí un montón de SQL
00:07:02
tengo que hacer mi propia gestión de conexiones
00:07:04
tengo un montón de tries y cuts
00:07:06
tengo un montón de historias raras de código
00:07:08
que maravilloso porque yo lo controlo
00:07:10
pero jolín que feo
00:07:12
entonces sobre esto se pueden ir poniendo
00:07:13
capas de abstracción
00:07:16
sobre esto se pueden ir poniendo capas
00:07:18
¿vale? que son las, son capas
00:07:20
pues que iremos incorporando
00:07:21
las capas de abstracción, ¿vale?
00:07:23
hasta llegar a una capa en la que
00:07:26
ya no saben lo que estás haciendo
00:07:28
efectivamente, tú ya dices, eh
00:07:29
quiero un alumno, y ya está
00:07:31
y de repente ahí empiezan a arrancar
00:07:34
cosas, millones de cosas
00:07:36
y todo para que te dé un alumno
00:07:37
digo, joder, ¿para esto?
00:07:40
hombre, si tú has
00:07:43
configurado bien las capas, debería
00:07:44
darte bien ese alumno
00:07:45
hombre, a ver
00:07:46
que algo más exagerado
00:07:51
el poner capas no significa que tú al final no sabes
00:07:53
lo que estás haciendo
00:07:55
se supone que cada capa que pones
00:07:56
la configuras
00:07:59
correctamente y sabes qué hace
00:08:01
y de qué va, lo que pasa es que es cierto
00:08:03
que cada capa de abstracción ya te mete
00:08:05
un montón de cosas
00:08:07
y al final puedes llegar a una situación que no sabes muy bien
00:08:08
lo que estás haciendo, pero ¿cómo te funciona?
00:08:11
pues ahí lo dejas
00:08:13
entonces, bueno, es verdad que eso tiene el peligro
00:08:15
de que a veces a lo mejor algo te deja
00:08:17
de funcionar y dices
00:08:19
¿y por qué me lo deja de funcionar? ni por yo tener idea
00:08:20
porque como he puesto tantas cosas, ya es que no sé
00:08:22
dónde está el fallo, pero bueno, ese es vuestro trabajo
00:08:24
¿vale?
00:08:27
Esa es una pregunta
00:08:33
filosóficamente interesante
00:08:35
la respuesta
00:08:36
políticamente correcta
00:08:38
que no me comprometes, depende del contexto
00:08:40
y es que
00:08:43
es hasta real, depende del contexto
00:08:45
en una aplicación tuya en la que vas a hacer
00:08:46
cuatro SQLs, cuatro no sé qué
00:08:49
pues hombre, ¿a qué vas a poner
00:08:51
capas? JDC, claro
00:08:53
¿para qué le vas a meter
00:08:55
carga y peso? En una aplicación empresarial
00:08:57
que tiene un modelo
00:08:59
con un montón de clases
00:09:01
como tengas tú
00:09:02
que andar
00:09:04
reconstruyendo cada campo para
00:09:05
construir el objeto, te estás ahí dos horas
00:09:08
bueno, que digo yo dos horas
00:09:11
te estás dos meses
00:09:12
pues por eso es que depende del contexto
00:09:14
si es una aplicación que tira de un modelo
00:09:18
muy complicado, pues hombre
00:09:21
si tú no usas capas
00:09:23
el mapeo entre la base de datos
00:09:24
y el modelo lo vas a tener que estar haciendo todo el rato
00:09:27
en cuanto cambie algo
00:09:29
del modelo, de la base de datos
00:09:31
el cambio tuyo en tu código es enorme
00:09:33
si tú lo haces con esas capas
00:09:35
un cambio en la base de datos
00:09:37
implica tunear muy poquito
00:09:39
en esas capas, pero claro, tienes que controlarlas
00:09:41
tienes que controlar un poco lo que hacen
00:09:43
un poco, pero ahora
00:09:45
vamos rápidamente a
00:09:47
este tema 2
00:09:49
es JDBC, con lo cual
00:09:51
fijaos que poquita cosa, es JDBC
00:09:53
entonces vamos a ver la arquitectura básica de
00:09:55
JDBC y como
00:09:57
se usa más o menos
00:09:59
y ya está, y ya esa parte estaría
00:10:00
y luego ya pasaríamos a
00:10:03
vamos a poner una pequeña capita mínima
00:10:04
de abstracción
00:10:07
que todavía no es un ORM
00:10:08
una pequeña capita mínima de abstracción
00:10:10
para que no sea un JDBC
00:10:12
puro y duro tan feo, para ver que se le puede poner
00:10:14
una mínima capa de abstracción
00:10:16
y ya está, ese sería el tema 2
00:10:17
y el tema 3 es, venga, ahora vamos a poner una capa más gorda
00:10:20
vamos a poner lo que se llama un ORM
00:10:22
y ya está
00:10:24
no hay tanto que queda, pero bueno
00:10:26
vamos a intentar no
00:10:28
perdernos, vale, entonces
00:10:29
cuando yo he hablado
00:10:32
de que esta API
00:10:34
JDBC que se distribuye
00:10:35
con el JB que está en JDK
00:10:37
no tienes que importar ninguna dependencia
00:10:39
ni nada, ahí viene
00:10:41
cuando he dicho que ya veremos
00:10:43
cómo se rellena, pues claro
00:10:45
esto ya sí que
00:10:47
depende de la base de datos con la que yo estoy trabajando
00:10:49
entonces esto ya sí que
00:10:51
es responsabilidad de uno
00:10:53
coger el relleno
00:10:55
coger el relleno, la implementación
00:10:57
coger la implementación de la API
00:11:00
y la implementación de la API
00:11:01
o el relleno
00:11:04
¿cómo se llama? pues es el driver
00:11:05
entonces, que tú trabajas con MySQL
00:11:07
te tienes que preocupar
00:11:10
de descargarte
00:11:12
o conectarte a la dependencia
00:11:14
del driver JDBC
00:11:17
de MySQL, que trabajas con Oracle
00:11:19
pues tienes que ponerte
00:11:21
esta dependencia
00:11:23
entonces, con esta arquitectura
00:11:23
el cambio de base de datos es inmediato
00:11:26
cambias el driver y ya está, no tienes que tocar
00:11:28
nada, porque el API es igual
00:11:31
pues MySQL
00:11:32
porque es la relacional estándar
00:11:34
más fácil de usar y más
00:11:36
vale
00:11:38
y esta sería
00:11:43
la idea de cómo funciona
00:11:46
JDBC, nuestro trabajo va a ser
00:11:48
seleccionar el
00:11:50
driver, esto es lo que se
00:11:52
llama en general el conector
00:11:54
por eso pues esto se le
00:11:55
llama pues
00:11:58
conectar de base de datos con conectores, se le suele llamar
00:11:59
conector o driver JDBC
00:12:02
pues vamos simplemente a eso
00:12:03
a instalar nuestro MySQL
00:12:05
y ver un poquito, más o menos,
00:12:08
cómo se suele usar, en qué tipo de
00:12:10
qué forma de programar
00:12:12
normalmente usamos
00:12:14
para hacer esto, para conectarnos a la base de datos
00:12:15
y poder hacer cualquier cosa con ella, cualquiera
00:12:18
lo que me dé la gana con JBG.
00:12:20
¿Vale? Hay ciertos patrones, pues
00:12:23
usar el try con recursos,
00:12:24
pues unas cositas que más o menos
00:12:27
para hacerlo mono y elegante.
00:12:28
Crear un pool de conexiones,
00:12:30
si estamos en multihilo, algunos detallitos
00:12:32
de eso.
00:12:34
Pues, ¿quién ha suspirado?
00:12:35
Todos
00:12:38
No, no vamos a hacer aplicaciones multilo, Dios no es libre
00:12:38
Se ha entendido
00:12:41
Nosotros en el trabajo de Fintech
00:12:43
Eso, bueno
00:12:46
Si queréis, si no, no
00:12:48
Vale
00:12:49
Pues entonces
00:12:51
Voy a parar la grabación
00:12:56
Porque ahora lo que vamos a hacer va a ser
00:12:59
Instalar MySQL
00:13:01
No
00:13:03
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Segundo Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 2
- Fecha:
- 3 de diciembre de 2025 - 12:10
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 13′ 04″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 649.25 MBytes