Full transcript
Concepto de BD
0:01[Música]
0:07[Aplausos]
0:09Bueno, entonces eso era con respecto al
0:11concepto de bases de datos.
0:14¿Qué ejemplos encontraron? Yo les había
0:16pedido que busquen ejemplos de grandes
0:18bases de datos y ahí es por donde quizás
0:22eh no no estuvo bien la consigna o se
0:26malentendió en el sentido de decir que
0:28me me pusieron motores, algunos me
0:31pusieron motores de bases de datos y no
0:33ejemplos de grandes bases de datos. Sí,
0:36cuando yo me referí a grandes bases de
0:38datos son grandes volúmenes, ¿sí? O
0:40bases de datos que se consideran muy
0:43grandes, ¿sí? Eh, ¿qué encontraron
0:46respecto de eso?
0:49Yo encontré, por ejemplo, que decía las
0:51bases de datos de las consultas de
0:53Google.
0:55Ajá.
0:56Y la base de datos de la no es la Casa
1:01Blanca, era una institución de los
1:02Estados Unidos, del Congreso de los
1:04Estados Unidos, que decían que eran de
1:06las más grandes a nivel mundial.
1:09Bien, ahí creo los que buscaron por
1:13bases de datos y demás, la mayoría
1:15habrán encontrado más o menos la misma,
1:17porque hay una lista hace unos años que
1:20anda circulando, que por lo general no
1:23suelen liberar tanto los eh estos
1:26volúmenes de datos que tienen, pero
1:27obviamente sabemos cuáles pueden llegar
1:29a ser las más grandes bases de datos.
1:31Sí. Por un lado, cuando uno dice eso,
1:34fíjense que eh se le viene a la cabeza
1:37primero Google, Facebook, eh Amazon. Sí,
1:43seguramente vienen esos eh esos nombres
1:46a la mente. Obviamente ahí hay que tener
1:49diferenciar un poco de lo que tanto lo
1:52que es bases de datos en sí, como un
1:55conjunto de una colección de datos
1:56relacionados bajo cierto sistema y lo
2:00que son grandes cantidades de archivos
2:03también. Sí, ahí es un poco el es eh
2:07difuso el límite está porque por ahí
2:11tienen muchas cantidades de archivos.
2:14Tienen, no sé, por ahora decirles esto
2:16YouTube, ¿cuántos cuántos eh eh
2:20terabytes, petabytes, etcétera, debe
2:22tener de videos almacenados? Pero no sé
2:25si podríamos considerar eso como datos
2:27dentro de la base de datos o sí,
2:29digamos, se pueden considerar como datos
2:31blogs dentro de una base de datos. con
2:33lo cual es muy difícil que estén
2:35organizados de esa manera. Pero bueno,
2:37esa consideración quiero que tengan en
2:39mente. Por ahí cuando uno ve las
2:41cantidades de datos, a veces excluyen
2:43los tipos de archivos multimedia, ¿sí?
2:46porque suelen estar almacenados por
2:48fuera del sistema en y están almacenados
2:51en sistemas de archivos directamente.
2:53Sí, pero bueno, entonces ahí yo creo que
2:56más o menos todos encontramos lo mismo.
2:58Eh, ahí están publicando algunos, están
3:02posteando algunos en el en el chat. Eh,
3:06yo tenía acá uno para mostrarles nada
3:09más. Estos son unos datos de hace unos
3:12años.
3:13Fíjense, por ejemplo, este es el es uno
3:16de los que por ahí postearon también es
3:19una gráfica
3:21de el centro de datos mundial para el
3:23clima. Fíjense cómo cómo fue creciendo
3:25la totalidad de eh
3:29de los datos que van guardando. Esto
3:32estaba hasta 2016.
3:35Eh, y fíjense que estamos hablando en eh
3:38esto es en terabytes. Sí.
3:42Y después, por ejemplo, eh uno muy
3:44conocido es eh escucharon hablar hablar
3:49del CERM, ¿no?
3:50Sí,
3:51perfecto. Y del gran colisionador
3:54deadrones. Sí, esta este
4:00proyecto, digamos, en realidad fue uno
4:04de los de los impulsores y gran parte de
4:07la tecnología vinculada a la
4:10informática. Sí,
4:13a ver si tienen en mente
4:16que otro gran proyecto, otro gran hito
4:20vinculado a informática salió de del
4:24CERN y en particular del gran
4:26colisionador de drones.
4:28Exacto. La World Wide Web. Sí.
4:32Eh, Tim Bernlee, que es un un
4:35investigador que trabajaba allí, decidió
4:38decidió armar un sistema de documentos
4:40interconectados como un proyecto
4:43simplemente para tratar de organizar la
4:46gran cantidad de información que se
4:47generaba eh en este en este proyecto.
4:51Sí. Eh, y entonces, ¿qué es lo que
4:53sucedió? Bueno, después fue tan exitoso
4:55que hoy lo tenemos disponible todos
4:58mundialmente. Sí. O sea, que es la la
5:02web. Okay.
5:06Y
5:08no no no ahí eh ahí eso nada más que
5:11estoy mencionando como otro tipo otro
5:14otra descubrimiento, digamos, vinculado
5:18a lo que es el gran colisionador de
5:19drones, que como un un subproducto,
5:22digamos, se eh originó la web. Y en este
5:26caso lo que estoy hablando, lo que me
5:28interesa hablar en particular es eh,
5:32fíjense de la cantidad de eh de datos
5:37que se necesitan almacenar, que se
5:40genera con el gran colisionador de
5:42adrones. Y recuerden que estamos
5:44hablando de estamos hablando de
5:46partículas muy pequeñas, ¿sí? Entonces,
5:50cuando cada vez que hay un choque y
5:52demás o cada vez que quieran hacer un
5:54análisis de estas partículas, todo esto
5:56se tiene que almacerar en algún lugar.
5:59¿Sí?
6:00Y eh fíjense con qué tipo de base de
6:04dato podríamos llegar a manejar esto.
6:06Sí, seguramente no con una sola, ¿sí?
6:09Sino con un conjunto de tecnologías. A
6:12eso es lo que a eso es lo que me
6:13refiero. Okay. Las bases de datos eh SG
6:18yo les mencioné, no sé si lo alcanzaron
6:20a leer ahí en la en la pequeña
6:23información que les puse en el en el
6:26aula, ya tienen ya hace más de 50 años
6:30casi rozando los 60, se podría decir. Lo
6:32que pasa que un poco a nivel teórico,
6:34pero un un hito principal se dio con eh
6:39una asociación que hubo entre en un
6:43proyecto, ¿sí?, para la NASA, para
6:46enviar el
6:49Apolo a la Luna. Okay. Entonces ahí se
6:52hizo ahí se empezaron a idear una de las
6:55bases de datos, una de las primeras que
6:58eh fue gracias a IBM y otra empresa,
7:02¿sí? Que trabajaron en colaboración y
7:05esto estamos hablando ya desde el año
7:07antes del año 69. Sí, obviamente no eran
7:11bases de datos relacionales. Sí, eso es
7:14lo que tienen que tener en cuenta. Okay.
7:18Fíjense, eh, fíjense ahí pueden ver, por
7:21ejemplo,
7:24eh, ellos fueron eh IBM fue obviamente
7:28uno de los de las grandes empresas
7:30vinculadas a la a todo lo que tuvo que
7:33ver con la evolución de la informática,
7:35al menos en sus inicios. Sí.
7:39Y obviamente ahora fue pacada por otras
7:41empresas, pero sigue siendo un gigante
7:43de la computación. Eh, fíjense que así
7:47se llamaba este proyecto. Sí, fue en los
7:50años 60 y fue eh fue, ¿cómo se llama?,
7:54encomendado para justamente eh para
7:57tratar de enviar el para el proyecto
8:00Apolo, o para el programa Apolo. Sí,
8:03justamente esto otra vez esta base de
8:06datos fue un subproducto, ¿sí?, de algo
8:09que hizo la NASA. Y un pequeño detalle,
8:13esto
8:15fue un predecesor de lo que eh son las
8:18bases de datos de hoy, pero fíjense que
8:19también el inventor, el uno de los
8:21grandes ideólogos de la base de datos
8:23relacionales, sino que se puede
8:24considerar el padre de todo el este
8:26modelo, trabajó también para IBM. Sí,
8:31está, o sea, que forman parte de la
8:34historia total de
8:37de la computación.
8:39Bien, volvamos a lo nuestro. Pero hoy en
8:41día lo que tienen que tener en cuenta es
8:43que el foco de las bases de datos
8:45también fue cambiando, se fue
8:46diversificando, digamos, hasta hace
8:48algunos años atrás, vamos a poner 10, 15
8:52años atrás, 10, 12 años atrás, digamos,
8:55el el sí o sí no habían competencia para
8:59las bases de datos relacionales. Sí, hoy
9:02en día las bases de datos relacionales
9:04digamos que tienen competencia o tienen
9:06alternativas, digamos. Sí. Eh, ¿por qué?
9:11porque tiene que ver todo con el
9:12advenimiento de eh justamente la gran
9:15masividad que genera la web. ¿Sí?
9:19Entonces se buscan otras otras formas de
9:21almacenar datos también vinculadas a al
9:25modelo relacional. Pero ahora después si
9:26tenemos tiempo les muestro, les voy a
9:28dar el link para que vean hoy en día
9:30cuáles son las bases, los motores de
9:32base de datos más usados. ¿Sí? Bueno,
9:36con respecto a eso entonces eh es lo que
9:40les quería mencionar, digamos, como para
9:42darle un ejemplo general de eh grandes
9:44volúmenes de datos. ¿Sí?
9:47Eh, bien,
Sistema Gestor de BD (SGBD/DBMS)
9:51esto es con este tema está vinculado el
9:55ejercicio que yo les había pedido. En
9:57realidad ya no era en forma de
9:58ejercicio, sin era más que nada es hacer
10:01un foro, que vayan haciendo aporte y que
10:04cada uno vaya posteando una parte.
10:07Entonces, les va quedando ahí eh el
10:09material también. E sobre todo de qué se
10:13trata un sistema gestor de base de
10:15datos. Sí. Entonces, cuando hablamos de
10:18un eh sistema gestor de base de datos,
10:20lo van a ver también como DBMS por las
10:23dudas. E es un software que de propósito
10:27general que está basado en un conjunto
10:29de programas justamente para tratar de e
10:33crear y mantener bases de datos, ¿sí?
10:36Las bases de datos de la que estábamos
10:37hablando ahora.
10:39En particular, ese conjunto de programas
10:42me tiene que servir a mí para definir,
10:46construir,
10:48manipular y compartir eh los datos que
10:53allí tengo. Sí,
10:56ya que estamos, yo les eh les di dos
10:58libros, es el por ahora solamente les
11:01mencioné este libro que vamos a estar
11:02utilizando y es que es el centro de lo
11:04que nosotros vamos a estar haciendo,
11:06vamos a estar usando en la materia.
11:09Eh, y nada más que les mencioné dos
11:11versiones. Yo no sé si pudieron acceder
11:13a la plataforma y libros por las dudas.
11:17Sí, profe.
11:19Bien. A ver, es una plataforma que eh
11:24tiene cosas buenas y malas. Por un lado,
11:26tenemos libros gratuito y de manera
11:27legal para acceder ahí sin problemas.
11:30Mientras que sean alumnos de la UTN, no
11:32hay ningún problema. El único
11:34inconveniente que tiene es que por ahí
11:36al ser libros en eh al ser libros en
11:40castellano por ahí tienen unos años y lo
11:43otro es que no todos los libros en otros
11:45idiomas, sobre todo en inglés, se llegan
11:47a traducir o si se traducen, se traducen
11:49con algún tiempo de eh de retardo. ¿Sí?
11:56Entonces, fíjense, por ejemplo, que eh
11:59recién ahí está eh cada vez menos.
12:02Exactamente, por eso es que por ahí yo
12:03le suelo dar libros en inglés si los
12:05pueden conseguir, pero en este caso,
12:07bueno, está disponible ahí este libro.
12:10Eh, es la quinta edición la que están
12:14es la que está disponible en esta
12:15plataforma. Sí.
12:18Eh, no, simplemente,
12:20a ver, yo creo que no, la verdad es que
12:22no sé por qué le no sé que cómo es el
12:25tema de la confirmación de usuario,
12:27porque yo entré, si ustedes ingresan
12:31haciendo clic desde el campus en en el
12:36logo que está al costado,
12:39incluso pueden entrar directamente y
12:42leer los libros, ¿sí? sin crear ningún
12:45usuario. Está lo que sí, si quieren por
12:49ahí tienen una posibilidad de si ustedes
12:53quieren eh creo que copiar no te deja,
12:57pero
12:57para poder descargar te pide que te
13:00registres.
13:00Bueno, ahí tengo que ver como no sé si
13:02te deja te deja descargar.
13:04Sí, sí te deja. Yo lo descargué.
13:06Ajá. Perfecto. Bueno, eh
13:10y lo otro también es que por ahí tiene
13:12así como una estantería virtual,
13:13digamos, donde uno va dejando los los
13:16libros y demás. Solo para hacer ese tipo
13:18de cosas es necesario registrarse. Pero
13:21si usted Ah, eso está bien, lo de las
13:24palabras. Pero si eh si ustedes quieren
13:28e, ¿cómo se llama? acceder así no más,
13:31lo pueden hacer. Si quieren pegar una
13:33oada rápida, no, no hay problema. Ni
13:36siquiera necesitan un usuario, así que
13:38por eso me parece
13:40me parece raro. Sí, pero bueno, está
13:43interesante como para por ahí, ¿no? Hay
13:46algunos libros interesantes, otros
13:48sirven de complemento. La verdad que
13:50está bueno. Sí. Eh, de programación hay
13:54poquito y hay viejo por ahí. Hay más
13:57cosas eh de base, ¿sí? Eh, vinculados a
14:00programación.
14:02Bien,
14:04sigamos entonces. Eh, ¿qué? Ah, quedamos
14:06en el tema de eh definir. Y les decía
14:09con respecto a esto, ¿qué aquellos que
14:13pudieron leer algo y demás? ¿A qué nos
14:15referimos con definir una base de datos?
14:19Claro. Eh, bueno,
14:21sí, o sea, estamos hablando de la
14:23creación, pero específicamente de qué
14:25parte de la creación.
14:28¿Cómo van a ser las tablas y lasciones?
14:30El diseño,
14:31exactamente, el diseño de la estructura
14:33que vamos a estar utilizando en esa base
14:36de datos, los tipos de datos, las
14:38restricciones que vamos a tener, ¿sí?
14:41Todo lo que tiene que ver con la
14:43estructura de la organización que va a
14:45tener. Entonces, a eso le llamamos
14:47definición o definir. Bien, eh lo otro
14:51es construir una base de datos. Sí,
14:54cuando hablamos de construir una base de
14:56datos y ahí quizás pueda ser un poco más
14:59confuso, es muy parecido a manipulación,
15:02pero nada más que en diferentes etapas.
15:04¿A qué se a qué se le llama construir?
15:09Cargar la información dentro de de la
15:12base de datos.
15:13Cargar información, cargar la primera
15:16información, inicializar la base de
15:18datos. ¿Si? Entonces, en particular,
15:20nada más a eso se refiere con construir,
15:24¿sí? O sea, llenar con los primeros
15:27datos de esa base y a todo lo posterior,
15:31a todo la actualización
15:33o lectura que hagamos posteriormente.
15:37Es decir, recuerdan que habíamos dicho
15:39que
15:41eh nosotros en la definición de recién o
15:44uno de los elementos de recién,
15:45estábamos diciendo que una base de datos
15:49refleja lo que eh existe en ese
15:52minimundo que está intentando eh
15:54modelar. ¿Sí? Entonces, cuando hay un
15:58cambio en ese universo que está
15:59reflejando, eso debería ir hacia la base
16:02de datos. Sí.
16:04Y ese universo se debería también eh
16:07alimentar de lo que contiene la base de
16:09datos y justamente es el objetivo eh de
16:14los sistemas de gestión de base de datos
16:16en particular. Y después van a aparecer
16:19compartir, que compartir usualmente no
16:22estaba en creo yo, en las ediciones más
16:24viejas, yo no sé si en la quinta está.
16:27E
16:28compartir se refiere justamente a uno de
16:31los propósitos, una de las esencias de
16:32base de datos que en general está hecha
16:35para que sea usada por más de un
16:37usuario. ¿Sí? Entonces la idea es que
16:40esos datos tienen que estar disponibles
16:42para más de una persona. ¿Okay? De
16:45manera simultánea. Sí, eso de base.
16:49Okay.
16:52Bien.
16:53Ahí yo les había dado un ejercicio.
16:56Sí.
16:58Ese ejercicio, ¿de qué trata?
17:01Más que nada un ejercicio, una
17:02discusión, un ejemplo, digamos.
17:06Ese ejemplo es el mismo que está en el
17:09Es el mismo que está en el libro.
17:10Está en el libro. Sí.
17:11Sí. ¿De qué trata?
17:13Caso este era pidió las relaciones de
17:16las relaciones que tenía en cada tabla.
17:18Bien. A ver, entonces primero ahí vamos.
17:22Esperen que voy a ver exactamente qué es
17:24lo que
17:26les había solicitado. Les pedía primero
17:28que identifique los elementos de datos y
17:30su tipo y cómo se relacionan en este
17:32ejemplo. ¿Sí?
17:36¿Cuáles serían los elementos de datos
17:38que yo tengo acá?
17:42¿O se imaginan que se podrían ser?
17:45Las tablas, por ejemplo, son elementos.
17:47Por ejemplo, las tablas podrían podrían
17:49ser elementos de datos. Sí, ahí tenemos
17:52estudiantes, curso, sección, informe,
17:55calificación y además qué otras cosas?
18:01Las columnas,
18:03las columnas que tenemos ahí, los
18:05digamos esos atributos, los nombres, el
18:08número de estudiantes, la clase, por
18:10ejemplo, y los tipos. Sí, yo les había
18:12pedido que ensayen unos tipos ahí. Y
18:14después eso se lo dejo para ustedes,
18:16además de que identifiquen cuáles son
18:21las columnas, ¿sí?, o los atributos que
18:24van a estar utilizando para vincular
18:26entre sí, para vincularse entre sí.
18:29Entonces, eso después eh se lo dejo para
18:31que ustedes vayan eh respondiendo ahí y
18:34que eso completo. Ya es un ejercicio
18:36inicial.
18:39Lo otro era que eh digamos piensen qué
18:42usuarios podrían acceder a esta
18:44información, o sea, y cuáles podrían qué
18:48información podrían necesitar cada uno
18:50de estos. Sí. Y finalmente, la tercera
18:53es cómo se relacionan los anteriores
18:55puntos con los procesos que lleva a cabo
18:58en SGB. Entonces, el primer punto que
19:02estaba ahí es justamente el concepto que
19:05nosotros tenemos acá.
19:07Sí, que es o el item de cuál que tiene
19:10que ver con qué.
19:16¿Qué es lo primero que yo le estoy
19:18pidiendo ahí?
19:20Definir.
19:24Definir, profe.
19:25Definir definir la base de datos. ¿Sí?
19:28Entonces, el la primer cuestión que yo
19:30le estoy pidiendo que hagan ahí es
19:32definir esa base de datos. Sí. Y por
19:35otro lado,
19:36después estaba pidiendo que,
19:40fíjense, le dice, les digo, piensen qué
19:42usuarios podrían accederlo y qué
19:44información podrían necesitar. Entonces
19:46ahí ya tenemos entre la parte de
19:47construcción, manipulación y compartir.
19:51Entonces eso es lo que quiero que
19:52ustedes vinculen y se aprendan de esa
19:56manera estos conceptos básicos. ¿Sí?
19:59Entonces, bueno, eso queda para que
20:01ustedes lo vayan completando. Sí,
20:05recuerden que
20:06las llaves también serían eh un
20:08elemento.
20:10Las eh las claves.
20:12Las claves, sí, perdón, las claves.
20:13Claro. Pero fíjense que acá eh sí
20:16podemos identificar algunas claves.
20:18Seguramente sí podrían ser elementos
20:20también. Totalmente. Sí, sí, sí, sí.
20:25Bueno, pero eso ya eh está en el foro,
20:29terminen de completarlo por ahí. Sí, los
20:32puse así porque eh con que unos cuantos
20:36completen ya basta y queda para todos.
20:38Se contempla como participación en clase
20:41también y justamente por esto es la idea
20:43de tener un poco de participación
20:46asincrónica y sincrónica a través de la
20:48clase, ¿sí? Así que les pido que después
20:50lo completen
20:52bien. Eh,
Arquitectura básica (SBD/DBS)
20:56¿qué tenemos que tener en cuenta con
20:58respecto a eh
21:00a el formato básico, la arquitectura
21:04básica que va a tener eh una
21:09una base de datos? Y primero ver qué
21:11conceptos similares tenemos involucrados
21:14allí. Sí, fíjense que después nosotros
21:17vamos a ver una una versión un poco más
21:21eh un poco más detallada de este
21:24esquema, ¿sí? Pero esto en definitiva
21:26refleja como una arquitectura
21:29muy generalizada de lo que es un sistema
21:31gestor de base de datos. Entonces van a
21:33ver que hemos dicho que el sistema
21:35gestor de base de datos es un conjunto
21:37de programas que me sirve para crear y
21:38manipular o mantener una base de datos,
21:42una o más bases de datos en sí. está
21:45teniendo en cuenta eh teniendo en cuenta
21:47que estos programas pueden definir,
21:49construir, manipular y compartir
21:53estos datos dentro de la base. ¿Sí?
21:56Entonces vemos que la parte digamos que
21:58es violeta, por llamarlo de algún color,
22:02eh el el el rectángulo del centro,
22:07tenemos allí adentro dos componentes.
22:09Por un lado, el software para procesar
22:11consultas y por el otro lado, un
22:13software para acceder a los datos
22:15almacenados. Por eso es que ahí
22:16mencionaba, obviamente esto es una s
22:19simplificación, pero ahí mencionaba que
22:21dice que es un conjunto de programas.
22:23Entonces, van a ver que el sistema
22:25gestor de base de datos se considera que
22:26está formado por programas más pequeños
22:29que me permiten acceder a estos datos.
22:31Una de las características particulares
22:34que dentro de la base de datos yo voy a
22:36tener dos partes separadas, ¿sí? Una que
22:40es la base de datos o los datos
22:42almacenados en sí y por el otro lado voy
22:44a tener la definición de la base de
22:47datos. Okay.
22:51Exactamente. Los metadatos.
22:53Bien,
22:55al conjunto de estas aplicaciones, o
22:58sea, de lo que vendría a ser el CORD,
23:00que es el sistema gestor de base de
23:01datos, más estos estos archivos, vamos a
23:05suponer esta parte física, se lo
23:08denomina sistema de base de datos. ¿Sí?
23:12Entonces, por un lado, fíjense que
23:13tenemos la base de datos almacenada en
23:16la parte inferior, ¿sí? Los tamborcitos,
23:20que es la típica forma de representar
23:22una base de datos. En el medio tenemos
23:25el sistema gestor de base de datos, que
23:29eh normalmente es lo que conocemos como
23:31motor de la base de datos, ¿sí? O la
23:34instancia de la base de datos. Y por
23:37fuera tenemos nuestras aplicaciones y
23:38consultas que dependiendo de cuán
23:40vinculada esté también se podrían
23:42considerar parte del sistema de base de
23:44datos. Entonces a todo ese conjunto se
23:46lo denomina sistema de base de datos.
23:49¿Sí? Eso como para eh considerar cuáles
23:54serían las eh los diferentes conceptos
23:57involucrados y cómo los vamos a estar
23:58llamando. ¿Sí?
24:00Eh, normalmente vamos a estar hablando
24:02de sistema gestor de base de datos y de
24:04la base de datos almacenadas,
24:07pero ahí lo que quisiera que me
24:08respondan es lo siguiente.
24:12¿Por qué?
24:15Fíjense acá
24:21decíamos que tiene un propósito
24:23específico
24:28y acá hablamos de que es un software de
24:30propósito general.
24:35¿Dónde está la diferencia?
24:37¿Se está refiriendo a lo mismo o a cosas
24:39distintas?
24:41Se están hablando de cosas diferentes.
24:44Por un lado, hablá sobre una base de
24:46datos específica para una aplicación
24:48específica y por otro lado estás
24:50hablando del sistema de gestor de base
24:52de datos que sirve para muchas cosas.
24:55Perfecto. Está. Entonces, cuando decimos
24:58que hablamos que el software es de
25:01propósito general, estamos hablando del
25:03sistema gestor de base de datos. Sí, no
25:06nos referimos a la base de datos en sí,
25:07la base de datos en sí, esta partecita,
25:11¿sí? La parte de abajo y junto con la
25:14definición de la base de datos
25:15almacenada, eso sí es de propósito
25:17específico.
25:19Sí,
25:21pero de todas maneras hay que aclarar
25:24algo. Son de propósito general por lo
25:27siguiente, digamos. Eh,
25:30a ver, esto quiere decir que eh para que
25:33no se malinterprete, nosotros tenemos
25:36bases de datos que por ahí están
25:38adaptadas a funcionar de mejor manera
25:40con ciertas aplicaciones, ¿sí? Con
25:43cierto tipo de aplicaciones. ¿Alguien se
25:45atreve a a darme un ejemplo
25:48de una base de datos con algún tipo de
25:50aplicación? Claro. O sea, por ejemplo,
25:52vamos a suponer nosotros en estas
25:54materias vamos a estar utilizando de
25:57base
25:58de de base, digamos, para aclararlo más
26:01como motor de base de datos para lo que
26:04son las prácticas. Más adelante vamos a
26:06estar utilizando SQL Server.
26:08SQL Server funciona con, hasta donde
26:11tengo entendido con Windows o hasta hace
26:12muy poco con Windows.
26:14Exacto.
26:15Bien.
26:16Yo uso mucho MySQL y María DB.
26:18Ajá. Perfecto. Y esa qué y My SQL, SQL
26:24Server, María DB, ¿a qué tipo de
26:27aplicaciones se adaptan? ¿Tienen un
26:30tienen una un objetivo específico o son
26:33de propósito más bien amplio general?
26:38Eh, ambas cosas depende.
26:40Ajá. A ver,
26:42hay aplicaciones que son de propósitos
26:44específicos y hay aplicaciones que
26:46tienen tienen propósitos generales.
26:49Claro, pero por ejemplo a lo que me
26:50refiero es yo con un SQL Server, con un
26:53MySQL podría ser un sistema de
26:56facturación, ¿no?
26:58Sí,
26:58tranquilamente. ¿Qué otra cosa podría
27:00ser?
27:02Aplicación web.
27:04una aplicación web para eh vamos a
27:06suponer para
27:08nosotros manejamos aplicaciones móviles,
27:10por ejemplo, con Mysql, vinculaciones
27:12con aplicaciones móviles entre APIs, por
27:15ejemplo.
27:16Bien. Y y ¿qué? Dame un ejemplo de a,
27:20por ejemplo, por ejemplo, trabajamos el
27:22home banking de clientes,
27:24eh en el cual se conectan, pueden
27:26conectarse a través de eh PHP en la en
27:30sitios web
27:31o bien a través de aplicaciones Android
27:33o iOS a través de APIs que que vinculan
27:37con la base de datos.
27:38Bueno, perfecto. Entonces ahí tenés otro
27:40ejemplo de aplicación. Eh, no sé si lo
27:42estoy interpretando bien, pero
27:43vinculadas a home banking, ¿sí? Mismo, o
27:46sea, otro tipo de base de datos se
27:48pueden, por ejemplo, para almacenar eh
27:51clientes de una empresa de
27:52telecomunicaciones.
27:54¿Sí? Entonces son base de datos de
27:57propósito estrictamente general, es
27:59decir, se pueden adaptar a muchos
28:01escenarios posibles. Ahora,
28:04y eso está bien porque eso me dice la
28:06definición,
28:08pero hay motores de bases de datos que
28:11se adapten mejor a ciertos escenarios.
28:15Sí, por ejemplo, Ready se adapta mejor a
28:17lo que es aplicaciones móviles porque
28:19hace como un cacheo en memoria de de la
28:22base de datos. Nosotros hacemos un un,
28:24vamos a decir, un híbrido ahí entre las
28:26bases de datos relacionales con bases de
28:28datos eh no relacionales.
28:32Perfecto. Bien. Entonces eh e cuando
28:37dice base de datos en los chat de
28:39WhatsApp y Telegram almacenados en un
28:42Sí, sí. A ver, son son diferentes tipos,
28:46digamos. Incluso, fíjense, yo creo que
28:48les había mencionado, ahora no está muy
28:50muy en uso. Ustedes pueden correr
28:52motores de bases de datos, si bien no es
28:55la idea, si van a ser monousarios,
28:58pueden correr un motorcito de base de
28:59datos en un celular. Ahora,
29:03eh hay un límite fino entre lo que se
29:06puede considerar una base de datos de
29:08propósito general y un sistema de base
29:10de datos propietarios, o un sistema de
29:12archivo. Sí.
29:14Eh, por ahí hay que ver WhatsApp cómo lo
29:16maneja internamente a eso. Él creo que
29:18se está, vos te estás refiriendo a los a
29:20donde guarda los mensajes y demás, ¿no?
29:23En el teléfono.
29:25Exacto. Bueno, hay que ver ahí si se
29:26llega y ahora tenemos que ver cuál es la
29:28cuestión crítica para ver. Primero
29:30siempre hay que guiarse por el hecho de
29:32decir esto es de propósito general. Esto
29:36implica que no está orientado una sola
29:38aplicación. Y si ahí ya decimos que la
29:41base de datos que usa WhatsApp está solo
29:43para WhatsApp, entonces ya estamos ahí
29:45complicado entrar. Sí, eso por un lado,
29:49profe, entonces podría ser, por ejemplo,
29:51que WhatsApp use una base de datos que
29:53sea específica para eh sistema de
29:57comunicación, por ejemplo, ¿no?
30:00Bueno, y hacia ahí es donde voy el
30:02ejemplo que creo estaba dando Emilio
30:04también, él me dice, "Bueno, este tipo
30:07de base de datos se puede adaptar más a
30:10aplicaciones móviles." Sí.
30:14E
30:15pero hay aplicaciones por hay bases de
30:17datos que, por ejemplo, se adaptan a
30:20tipos de aplicaciones en general, como
30:21por ejemplo pueden ser las aplicaciones
30:24eh GIS, no sé si las escucharon nombrar.
30:28Sí, sí.
30:29Bueno, ¿qué son las aplicaciones GIS?
30:35Más o menos, digamos, no es necesario
30:37una definición.
30:40Exactamente. Son aquellas que se
30:42utilizan para eh el uso de mapas, ¿sí?
30:47Eh, una muy conocida obviamente es
30:50Google Maps, ¿sí? Pero en general
30:54hay aplicaciones por o hay sistemas de
30:56base de datos, sistemas gestores de base
30:58de datos que se adaptan mejor a eso. Y
31:01por ende, con esto que me refiero es que
31:04así como eh algún hay lenguajes de
31:07propósito general, también lenguaje de
31:09programación de propósito general con
31:11los cuales podemos programar muchos
31:13tipos de aplicaciones. Sí, hay otros
31:16lenguajes que están, si bien puedo
31:18programar muchos tipos de aplicaciones,
31:20pero de determinado tipo, en determinada
31:22categoría. Y algo similar viene
31:24sucediendo con las bases de datos a
31:26medida que pasa el tiempo, ¿sí? O sea,
31:28se van diversificando. Es decir, al
31:30principio las bases de datos estaban
31:32hechas más que nada para propósito
31:34general. Sí, se se podían hacer una
31:38infinidad de aplicaciones y después se
31:40se fueron especializando sin dejar de
31:43ser generales dentro de su ámbito. ¿Sí?
31:47Entonces, eso es lo que quiero que les
31:48quede claro. No hay una base de datos
31:51que sea mejor para todos. Sí podemos
31:53llegar a tener que algunos les guste más
31:56trabajar con un con un motor en
31:59particular. Sí.
32:02Y ya obviamente si si el tipo de modelo
32:05en el que se basan es igual, ahí
32:07podríamos llegar a hablar de cuál es
32:09mejor que otro, qué ventajas te ofrece
32:12uno sobre otro. Pero en general
32:14tendríamos que estar buscando cuál es la
32:17mejor opción para resolver el problema.
32:20Con esto no quiere decir que sea tan
32:21fácil como cambiarse la camisa. Sí,
32:24claro, porque también hay que tener hay
32:26que tener en cuenta también el el
32:28propósito de la aplicación. Por ahí hay
32:31bases de datos no relacionales que, por
32:33ejemplo, Firebase de Google que no te
32:36sirven para ciertas cosas que necesitas
32:39hacer en tu aplicación y necesitas sí o
32:41sí una base de datos relacional.
32:43Exactamente, exactamente. O sea, por eso
32:46es que por ahí hay hoy en día después
32:49vamos, creo, si nos da el tiempo ahora,
32:52eh, vamos a hablar un poquito de las
32:54diferentes bases de datos, pero nada,
32:57sepan que tenemos diferentes modelos y
33:00hay un cada vez hay más más variedad de
33:04base de datos, entonces elegir una se
33:05hace muy difícil. Sí, obviamente siempre
33:09tendemos a ir hacia las más conocidas.
33:12Sí.
33:13Vamos a hablar un poquitito más acerca
33:15de eso. Eh, pero bueno, eso quería que
33:18les quede claro para diferenciar bien y
33:20hasta dónde llega el tema de propósito
33:22general, propósito específico y demás.
33:25Ah, y de paso me gustaría saber eh
33:28bueno, acá algunos ya nombraron eh
33:30algunas bases de datos con las que
33:31trabajaron. Los demás
33:33trabajaron ya con alguna base de datos o
33:35todavía no.
33:40Aparte de lo que nosotros ya vimos el
33:42trimestre pasado.
33:46Yo no, profe.
33:48Posre SQL, bien. SQL de B,
33:53perfecto. O sea, ten ahí un mapeo
33:55general de todo. Eh,
33:59¿alguna Cassandra? Bien, perfecto.
34:03Después voy a preguntar para qué lo
34:05usaron, digamos. Bien, ¿alguna otra?
34:08¿Alguien alguien utilizó?
34:13No, eso sí que no.
34:16IBMDB2
34:20es paga la base de datos de Oracle,
34:22profesor o tiene una versión gratuita
34:24recontrapaga.
34:26Sí,
34:27lo que utilicé hace mucho tiempo en un
34:30trabajo que tuve es eh sistema de
34:33archivos eh ficheros para Cobol, por
34:36ejemplo, no maneja base de datos, sino
34:38es como una base de datos, pero en
34:40archivos.
34:43Perfecto. Claro. Es y ahí otra vez entra
34:46la cuestión, digamos, de la
34:47diferenciación.
34:49Perfecto. No, pregunto porque por ahí
34:51una minoría ya tuvo alguna experiencia.
34:55No sé si profesional, si para jugar un
34:58poco o no con las bases de datos.
35:00Entonces, por eso pregunto por si algún
35:02utilizó para tener un mapeo general de
35:06lo que aunque sea de un vistazo general
35:09de lo que pudieron ver de bases de
35:11datos, ¿no?
35:13Bien. Eh, eso era con respecto entonces
35:16a la arquitectura
35:18de vuelta general de una base de datos.
35:21El ejercicio que viene acá se los dejo
35:24para ustedes. Este era el ejemplo que
35:26habíamos visto.
35:27Vayan posteando ahí en el en la en el
35:32muro, vamos a decir, del
35:35del aula virtual y después sí
35:39no puede dejar como tipo como actividad
35:40tarea, así como dejó el primer ejercicio
35:42y listo.
35:44Hm. Lo que pasa es que si no los demás
35:47no saben que eh que esa es un poco la
35:50idea, los demás no saben que los demás
35:54eh colocan. Sí. O sea, fíjense que lo
35:57que se trata de emular cuando hacemos
35:59para mí hubiera sido más fácil,
36:00sinceramente, ¿no?
36:03Pero eh se trata se trata de emular la
36:05interacción de lo que ustedes van
36:07aportando acá. Entonces, por eso les
36:09pido que participen eh en esos en esos
36:13foros, ¿está?
36:15Okay, prof.
36:16Está. Entonces, todo lo demás pueden
36:17nutrirse. Incluso hay una actividad que
36:19está buena, que es la de taller, que voy
36:21a ver si la puedo aplicar después. No sé
36:23si ya lo utilizaron en M
36:27alguna vez. Bueno,
36:31bien. ¿Qué es lo que viene
36:35ahora?
36:37Ahora sí vamos a ver un poco más, vamos
36:40a centrarnos en las diferencias de eh
Enfoque de BD
36:44cuándo estamos eh hablando de archivos y
36:47cuándo simplemente estamos hablando de
36:49archivos y cuando estamos hablando de
36:50bases de datos. Sí.
36:53Eh,
36:55justamente a veces la diferencia es un
36:57poco gris, pero los criterios que vamos
36:59a tener son los siguientes, ¿no? En el
37:03cual una de las cuestiones principales
37:05es la noteraleza autodescriptiva de los
37:06sistemas de los de base de datos. Esto,
37:08¿qué quiere decir? Cuando nosotros en el
37:11procesamiento tradicional que tenemos de
37:13archivos, ¿sí?
37:16Lo que suele suceder normalmente es que
37:19eh y esto quizás por el ejemplo que dio
37:23recién Emilio,
37:25eh por ejemplo trabajando con Cobol.
37:27Puede ser que eh nosotros Cobol
37:30normalmente se trabajaba es un se
37:33trabajaba en conjunto con mainframes,
37:36¿sí?
37:38y eh puede ser que estén o no los
37:40archivos centralizados, pero cuando
37:42nosotros tratamos con archivos puede ser
37:44que cada uno de esos archivos estén
37:46distribuidos en diferentes
37:48en diferentes máquinas, en diferentes
37:51computadoras. Entonces, lo que puedes
37:53hacer, vamos a suponer este ejemplo que
37:55tendríamos de de las eh de de la
37:59universidad.
38:01Puede ser que, fíjense, a ver si se los
38:05muestro acá antes de seguir avanzando.
38:06Fíjense, por ejemplo, este eh esta tabla
38:10de estudiantes. Sí, yo podría tener una
38:13tabla de estudiantes, por ejemplo, en
38:15qué sector de la facultad, si trabajamos
38:18con trabajáramos con archivos,
38:21¿quién podría utilizar esta tabla de
38:23estudiantes?
38:25Si es acá alumnado,
38:27bueno, alumnado, por ejemplo, alumnado.
38:30Y si estuviera en forma de archivos en
38:32general, ellos tendrían su propia copia.
38:36Sí, esto es como se hacía en sus
38:37comienzos, ¿no? Tendría su propia copia,
38:40tendría que actualizar allí y después en
38:43qué otra parte podrían tener esta
38:46podrían estar utilizando información del
38:48estudiante.
38:56¿Qué otro departamento podría ser? La
38:58biblioteca, profesor.
38:59En la biblioteca, por ejemplo, podrían
39:01estar utilizando. ¿Y qué pasa si uno
39:03hace una modificación en un lugar?
39:07Sí tiene que después mandar esa
39:11modificación al otro, ¿sí?, al otro
39:13lugar. Entonces, por ahí pueden haber
39:15problemas primero de redundancia, ¿sí?
39:19Porque voy a tener esos valores
39:21repetidos, voy a tener archivo por
39:23separado,
39:24eh, y también puede haber problema de
39:26consistencia.
39:28Sí, porque y fíjense que en realidad acá
39:31tenemos estamos teniendo un problema
39:33bastante similar a pesar de que estamos
39:35trabajando con base de datos. Fíjense
39:38que por un lado tenemos nosotros ISA
39:40AccAD y en vez de que esté integrado
39:43eh eh por ejemplo el aula virtual y
39:45sacar los datos directamente de ahí, es
39:48un proceso que se hace por separado.
39:50¿Sí? Entonces si uno cambió los mails en
39:53un lado, tiene que cambiarlo en el otro.
39:55Sí. Entonces, esto con los archivos era
39:58ineludible, pasaba muchas veces así. Sí,
40:02con la base de datos, fíjense, si no hay
40:04una base de datos sincronizada, también
40:07puede ocurrir. Entonces, tengan en
40:09cuenta que estos problemas se pueden dar
40:11de una u otra forma. Lo que pasa que
40:13cuando tenemos archivos es mucho es
40:17mucho más probable que suceda, ¿sí?
40:19Cuando trabajamos de esta forma eh más
40:22desorganizada,
40:24¿sí?
40:26Entonces, una de las diferencias que
40:28tenemos es que cuando trabajamos con un
40:29enfoque de base de datos, vamos a tener
40:31una naturaleza autodescriptiva de los
40:33sistemas de base de datos. ¿Hacia dónde
40:36se dirige esto?
40:41¿Qué suponen? ¿A qué a qué se refiere
40:43esto exactamente? que nosotros cuando
40:47estamos trabajando acá eh con un sistema
40:51de base de datos, por un lado tenemos
40:54los datos almacenados y por el otro lado
40:56tenemos la descripción. Entonces, esa es
40:59una de las cuestiones que hace que un
41:01sistema gestor de base de datos o un
41:02sistema de base de datos pueda ser de
41:04propósito general que para cada nueva
41:07aplicación
41:09sí yo le tengo que tengo que definir
41:13cuál va a ser la estructura de datos o
41:15el modelo de datos que yo voy a utilizar
41:17para eso, ¿sí? el esquema que voy a
41:20estar utilizando. Estamos entonces
41:24en particular tienen que entender que
41:26esa es una de las características más
41:29importantes que lo diferencia entre lo
41:33que es un sistema de base de datos y un
41:36conjunto de archivos.
41:38Sí, porque incluso yo podría tener de la
41:41siguiente forma. podría ser mi diagrama
41:43y todo y podría tener un archivo que sea
41:45estudiante, un archivo que sea eh
41:49calificaciones, por ejemplo, y emular lo
41:52que es una tabla en un archivo.
41:55Pero, ¿qué pasa? ¿Por qué por qué se
41:58supone que eso no sucede con los
41:59archivos? ¿Por qué decimos que con la
42:01base de datos sí se da? ¿Cuál? ¿Dónde
42:04está la diferencia principal? Entonces,
42:11ya hablamos que la base de datos tiene
42:13los metadatos y en el caso de un
42:15archivo, ¿qué pasa?
42:18Tenés que llevarlo manualmente.
42:21Exactamente. Y esa lógica en general,
42:22¿dónde está la lógica de la estructura
42:26esa en general? ¿Dónde la suelo colocar?
42:28¿En qué parte?
42:31En la definición.
42:33No, en el sistema operativo, no.
42:37En la definición, profe, o
42:41en la definición de ¿qué?
42:44De la base de datos.
42:45No, pero si justamente le estoy
42:47preguntando,
42:49¿no? No tenés
42:51en el sistema archivo no tenés
42:52definición. En realidad
42:54no tenés definición. Entonces, pero a
42:56ver. Ah, no,
42:57yo de alguna manera
43:00tengo que saber, o sea, yo sé que, por
43:02ejemplo, vamos a suponer lo siguiente,
43:04yo sé que para eh estudiantes, sí, vamos
43:07a ir a este ejemplo de acá,
43:12yo sé que para estudiantes voy a tener
43:14cuatro columnas. ¿Sí?
43:18Ahora,
43:21eso en una base de datos
43:26está en el catálogo, ¿sí?, en la
43:28definición de la base de datos. Y eso yo
43:31lo defino por cada base de datos, por
43:32separado que yo armo.
43:35Digo, bueno,
43:35van a estar en la de archivos, van a
43:37estar por archivos.
43:38¿Cómo?
43:39En la de archivos estarían cada una en
43:41sus archivos específicos.
43:43En la de archivos lo que suele suceder
43:46es que esa estructura está metida dentro
43:48del programa.
43:51Claro, dentro del programa, pero se
43:52guarda en un archivo básicamente los
43:54datos.
43:55Exactamente. Pero bueno, eso que
43:57nosotros esos datos específicos acá,
44:00¿dónde están? En la base de datos
44:01almacenada. Sí,
44:04claro. Sí. Cuando hablamos de un
44:05archivo, en el archivo normalmente se
44:07guardan los datos específicamente.
44:10La forma en que yo tengo que accederla
44:12en general la sabe el programa
44:14por el código. Sí, sí, sí. Razón. Sí,
44:17sí,
44:17cóigo por el código. Sí. Entonces ahí
44:20esa es una de las cuestiones que tenemos
44:22que tener en cuenta. Obviamente que
44:25también va a depender de cuán bien
44:26diseñado está, etcétera, etcétera.
44:28Podría ser muchas conjeturas al
44:30respecto, pero vamos a para hacerlo
44:31simple, vamos a decir así. en general
44:34puede estar en el código
44:36y eso hace que sea mucho menos
44:38mantenible.
44:40Es una de las cuestiones principales por
44:42la cual nosotros decimos que el enfoque
44:45a base de datos en realidad
44:49es eh tiene una naturaleza
44:51autodescriptiva. ¿Sí?
44:54El otro punto es el siguiente, es la
44:57separación entre los programas,
45:01¿sí? y eh los datos y al final algo que
45:05se llama abstracción de datos. Entonces,
45:08por un lado dice, yo tengo yo tengo lo
45:10que es la independencia respecto a los
45:13programas y los datos. Esto es y que
45:15justamente se alimenta de lo que vimos
45:18recién.
45:20Sí. Al tener la la posibilidad de la
45:24base de datos de autodescribirse,
45:26yo puedo hacer una separación de mi
45:28programa y los datos que estoy
45:30guardando. Es decir, no tengo necesidad
45:32de guardar esa estructura o hacer tan
45:35dependiente la estructura de mi programa
45:37de los datos que voy a guardar o de la
45:39forma en que los guardo. Sí, obviamente
45:42con ciertos
45:44con ciertos recaos, o sea, a ver, si yo
45:48digo quiero obtener la fecha de
45:49nacimiento de un estudiante, ¿sí? Y yo
45:52no tengo la fecha de nacimiento de un
45:54estudiante, entonces obviamente no la
45:56voy a conseguir y ahí tengo una
45:57relación. Pero lo que me dice es lo
46:00siguiente, o sea, yo tengo en mi archivo
46:04lo tengo guardado de determinada manera.
46:06En tal secuencia, primero tengo el
46:08número, el DNI, después tengo el nombre
46:11del
46:13el nombre del estudiante, después tengo
46:15el la dirección. Entonces yo tengo que
46:18saber que lo tengo que acceder de esa
46:20forma. Entonces sí o sí soy dependiente
46:23uno de otro. Cuando yo hablo de cuando
46:27digo que hay separación entre los
46:28programas y los datos, digo, bueno, la
46:30estructura de cómo se almacena eso
46:32depende de la base de datos. Yo le pido
46:34los datos directamente. Sí. los datos
46:37más bien lógicos. ¿Okay?
46:40Y por otro lado, eh otro punto que nos
46:45está acá en la diapositiva es que dice
46:46independencia con respecto a los
46:48programas y las operaciones. Sí, esto se
46:51da más en tipos de bases de datos, ¿sí?
46:55Que están eh son eh
46:58base de datos multimodelos, ¿sí? O son
47:01relacionales y tienen algo de
47:03orientación a objetos. Entonces, cuando
47:05hablamos de programas y las operaciones,
47:07se dicen en aquellas operaciones que se
47:08pueden hacer en la base de datos. Si
47:10contemplamos operaciones como funciones
47:13que puede tener una base de datos como
47:14procedimiento almacenado, entonces
47:16podríamos hablar de esa independencia.
47:20Sí, después vamos a hablar más en
47:21detalle de eso. Eh, pero específicamente
47:25para ser estrictos en este caso puntual
47:27se refiere más que nada a base de datos
47:29por ahí orientado objeto. La base de
47:31datos relacionales también pueden tener
47:33funciones
47:35y pueden tener eh procedimientos
47:38almacenados vinculados a ciertos datos.
47:41Entonces, bajo ese punto de vista,
47:43podemos decir que yo hago un
47:45procedimiento almacenado o una función
47:48en mi base de datos. No importa lo que
47:51cambie allí dentro, yo le dejo la
47:53responsabilidad que, por ejemplo, tengo
47:56un procedimiento almacenado que es crear
47:58estudiante. Sí.
48:01No sé cómo lo hará la base de datos. yo
48:03le paso los datos, se encarga de hacerlo
48:05y a mí me devuelve, vamos a suponer, el
48:07número de legajo o el o el código del
48:09estudiante. ¿Sí? Entonces, esa es una
48:13forma de decir que tengo independencias,
48:16por un lado, respecto de los programas y
48:18los datos, respecto de los programas y
48:20las operaciones y al conjunto se lo
48:23denomina abstracción de datos. ¿Sí?
48:27Eso es un poquito lo que quería
48:30mencionarle respecto de esto.
48:33En el otro punto
48:35es el manejo de múltiples vistas de los
48:38datos. Sí, esto más que nada aquellos
48:41que por ahí eh ya vienen, ya trabajaron
48:45con algo de base de datos, se van a van
48:47a estar conscientes de qué se trata,
48:49digamos.
48:51Acá lo habla desde un punto de vista más
48:52conceptual, es decir, un conjunto, una
48:55base de datos con los mismos datos puede
48:59servir de diferentes maneras a
49:01diferentes partes de la organización y
49:03era era una parte del ejercicio que yo
49:05quería que hagan en el en el ejemplo que
49:08estaba ahí. Es decir, esa misma tabla
49:11estudiante en conjunto con otras tablas
49:13podría servir de diferentes maneras, a
49:15alumnado, a biblioteca, a decanato, a
49:19secretaría académica, etcétera, al
49:22departamento de la carrera. Sí. Es
49:25decir, cuando hablamos de vista
49:29refleja un un que estoy utilizando una
49:33parte de la base de datos, la parte de
49:35la base que interesa, por ejemplo, a un
49:38sector de la organización o a
49:39determinado usuario. Eso, ¿qué me
49:42posibilita? Me posibilita segmentar esa
49:45base de datos, ¿sí?, para que solamente
49:48tengan acceso a los datos que tienen
49:50permitidos. No solamente se lo hace por
49:52un tema de seguridad, sino que también
49:55se lo hace por una cuestión de enfoque,
49:57es decir, para qué mostrarle datos que
49:59no les sirven, digamos. ¿Sí
50:03se entienden? Entonces, para darles un
50:05ejemplo,
50:07eh en el caso de la biblioteca, por
50:10ejemplo, y alumnado, alumnado, a la
50:13biblioteca se le puede compartir si
50:14quieren la notas de los alumnos, pero
50:18para qué las quieren ver.
50:20Sí, no tienen no tiene nada que ver con
50:23su función. Sí.
50:26Entonces eh sin embargo, alumnado por
50:29ahí interesaría ver, por ejemplo, si
50:30está aprobado, si está regularizado,
50:32etcétera, etcétera. Entonces, es parte
50:34de su función. Entonces, tiene que ver
50:36con una cuestión de seguridad, de
50:37confidencialidad, de enfoque.
50:40Estamos
50:42hasta acá. ¿Alguna pregunta? Por último,
50:45entonces, el último punto
50:50y este dependiendo de cómo lo tratemos
50:52puede ser más o menos largo, es el el
50:56compartimiento de datos y el
50:57procesamiento de transacciones
50:59multiusarios. Acá yo les quiero
51:01mencionar un par de cositas nada más,
51:03que es todo una un capítulo, si si lo
51:07tendríamos que tratar, pero bueno, vamos
51:10a hablar de tema muy muy por arriba.
51:13Bueno, cuando nosotros hablamos una una
51:17de los ítems fundamentales es que si yo
51:19tengo una base de datos es porque
51:22también en general voy a querer que sea
51:24usada por más de un solo por más de un
51:26usuario. ¿Sí? Entonces, eh las bases de
51:30datos también tienen en realidad pueden
51:32probar digamos su su utilidad, su valía
51:35eh cuando tenemos más de un usuario
51:39interactuando con ellos. Sí.
51:42¿Cuáles son los problemas que pueden
51:44surgir entonces cuando hay más de un
51:46usuario allí interactuando con una base
51:49de datos o cuáles son las cuestiones que
51:51hay que tener en cuenta? Básicamente,
51:54paralelismo, la concurrencia.
51:56Exactamente. La concurrencia. Sí. y los
52:00privilegios tamb
52:01cómo
52:02los privilegios también para que no
52:03cualquiera pueda el el acceso a la base
52:07de datos, etcétera, etcétera. Perfecto.
52:10Entonces, pero una una cuestión que hay
52:13que hay que considerar ahí es el tema de
52:16la concurrencia. Nosotros habíamos
52:18hablado ya un ejemplo cuando vimos lo de
52:20Adonet del cuatrimestre pasado. En
52:23principio los mayores problemas se dan
52:25cuando
52:26no hay mayor problema cuando varios
52:29están queriendo acceder a los mismos
52:30datos para leerlos. El problema se da
52:33cuando yo estoy queriendo acceder a los
52:34mismos datos para escribir sobre esos
52:37datos. ¿Sí?
52:41Bueno, entonces lo que les decía era lo
52:43siguiente respecto a el compartimiento
52:45de datos. Una de las cuestiones que
52:47surge ahí tiene que ver con
52:49específicamente el control de eh
52:51concurrencia. ¿Sí? ¿Por qué? Porque eh
52:56obviamente al tener más de un usuario
52:58pueden surgir estas cuestiones, ¿sí?,
53:01vinculadas a eh a que determinados
53:05usuarios quieren estar en determinado
53:07momento accediendo a la misma a los
53:09mismos datos, a los mismos elementos de
53:11datos. Sí.
53:14Bueno,
53:17además de esta además de esta cuestión
53:19que el
53:22¿cómo se llama? El sistema gestor de
53:23base de datos sí o sí tiene que trabajar
53:26sobre eso, sí o sí tiene que tenerlo en
53:29cuenta. Eh, fíjense que ahí viene el
53:33concepto
53:35eh de los e de los sistemas OLTP, ¿sí?
53:41los sistemas eh de transac de
53:43procesamiento de transacciones online.
53:47Por las dudas,
53:49alguno quizás ha escuchado, escuchó la
53:52sigla, no sé, o el ETP está vinculado a
53:56eso, más que nada representa un una un
54:00tipo de aplicaciones muy amplio y el
54:04concepto es medio difuso,
54:06eh que tiene una alta carga de eh de
54:10trabajo de pequeñas transacciones. ¿Sí?
54:13Entonces, se podrán dar cuenta que este
54:15es uno de los principales usos que
54:16tenemos de las bases de datos eh de las
54:19bases de datos y en particular de las
54:21base de datos relacionales. ¿Sí? Em,
54:25¿por qué? Porque ahí tenemos en
54:28particular un concepto fundamental que
54:32es el de la transacción y el de manejo
54:35de la concurrencia para asegurar que esa
54:37transacción se va a llevar a cabo
54:39correctamente.
54:41¿Sí? Y de hecho ahí es una de las
54:44cuestiones donde los sistemas eh
54:47tradicionales de base de datos, los
54:49sistemas relacionales
54:51eh en general tienen la mayor sobrecarga
54:54al momento de ejecutar una consulta.
54:56¿Sí?
54:58Entonces, una de las características de
55:00estos sistemas OLTP tiene que ver con
55:03manejar esa gran cantidad o esa ese gran
55:06número de eh de pequeñas transacciones.
55:09Sí, pero tiene que también otra de las
55:12características que esas transacciones
55:14son en general conocidas, ¿sí? O sea,
55:16son se hacen, tenemos siempre las mismas
55:19transacciones ahí utilizando y la idea
55:21es que se hacen en poquito tiempo.
55:24Los típicos usos o la las típicas
55:27aplicaciones donde vamos a tener esto
55:29son en aplicaciones bancarias. De hecho,
55:32de ahí viene el concepto de transacción
55:35y de ahí viene el concepto este que
55:37estamos eh viendo, que que les voy a
55:40explicar ahora justamente vinculado al
55:42de la transacción en
Transacciones - ACID
55:45qué es una transacción
55:49en el en el eh en términos de base de
55:52datos
55:54una unidad de trabajo independiente de
55:56otras.
55:57Bien, una transacción entonces es uno
56:00más operaciones, mejor dicho, que se
56:02realizan en conjunto que tienen que
56:05llevarse, como decías vos, a cabo en una
56:08sola unidad, ¿sí? Conforman una unidad
56:12lógica de trabajo. ¿Okay?
56:16Entonces, ¿esto qué quiere decir? ¿Por
56:17qué decimos que es una o más operaciones
56:20que trabajan en conjunto? Porque puede
56:22ser simplemente una inserción en una
56:25tabla. Sí. O puede estar formado por una
56:29inserción en una tabla, un borrado en la
56:32otra, una modificación en una tercera,
56:35pero todo eso se lleva a cabo en
56:37conjunto. El ejemplo
56:40que siempre viene a cuento cuando
56:43hacemos esto es justamente el de una
56:46transferencia, ¿sí?
56:49porque es un ejemplo conocido bastante
56:51sencillo, al menos lógicamente, y que se
56:54da en el ámbito bancario, justamente. Es
56:56decir, que cuando nosotros eh intentamos
56:59hacer una transferencia, nosotros
57:01decimos, "Bueno, la transferencia
57:03primero, ¿qué operaciones va a
57:05involucrar?
57:10Estamos hablando entre cuentas
57:11bancarias." Sí.
57:23e
57:24quitar dinero de una cuenta y
57:26transferirse la otra.
57:27Claro. Y en ese proceso, o sea, primero
57:29vamos a tener sí o sí un débito, un
57:32crédito, ¿sí? Y de antemano, además,
57:36vamos a tener que corroborar que tenga
57:38suficiente saldo, ¿sí? Que las cuentas
57:42existan.
57:44Okay.
57:46Pero, ¿dónde está la parte crítica?
57:50La parte de depósito
57:52un lado de otro.
57:53Exactamente. O sea, lo peor que me
57:55podría lo que lo peor que podría pasar
57:57es que yo haga el débito
58:00y jamás llegue el crédito al otro lado.
58:04Sí.
58:06Entonces, ahí viene una colación, unas
58:08siglas eh muy conocidas,
58:12¿sí? en el ámbito de la de lo que son
58:15los sistemas gestores de base de datos,
58:17que son las siglas,
58:19¿sí?
58:20Que significan atomicidad, consistencia,
58:24aislamiento, isolation y durability o
58:28durabilidad.
58:30Sí,
58:33en particular todas estas forman el
58:35concepto o son propiedades necesarias en
58:38una transacción.
58:40Sí.
58:41Por lo tanto, cuando yo hablo y no
58:44quiero que se pierda el foco de donde
58:46estamos de donde estamos ubicados, acá
58:48estamos y empezamos a hablar de las
58:50cuatro características vinculadas al
58:52enfoque de base de datos y esta era la
58:54última y por eso le dije que quizá era
58:56un tema que podía dar para bastante,
58:59pero bueno, vamos a vamos a explicar
59:01rápidamente y lo cortamos acá en el
59:04sentido de decir
59:07cuando hablo de atomicidad
59:11Significa que esas transacciones,
59:13fíjense en el ejemplo que tengo acá en
59:15la diapositiva,
59:17¿sí? ¿Qué es lo que hace? Verifica la
59:21cuenta de origen,
59:24valida la cuenta de destino,
59:28extrae de la cuenta de origen, depositan
59:31la cuenta de destino.
59:35Lo que dice es que las operaciones
59:38se tienen que realizar con una
59:41estrategia de todo o nada. Sí. O se hace
59:45la operación completa o si no que tiene
59:47que pasar.
59:50Se aborta
59:51volver volver hacia atrás.
59:53Exactamente eso se conoce cómo lo
59:56conocemos normalmente por ahí lo que
59:58rb
59:59es el rollback. Sí, es el rollback.
1:00:03Está. Entonces es volver al estado en el
1:00:06que estaban cuando empezamos.
1:00:09¿Qué puede suceder? ¿Por qué puede
1:00:11suceder esto? ¿Hubo un fallo en un
1:00:12disco, hubo un fallo? Eh, se cortó la
1:00:15luz. Eh, o un tema de conexión en
1:00:19internet,
1:00:21pueden pasar varias cosas.
1:00:24Sí, hubo un error en el programa.
1:00:28Sí. Entonces, la automicidad, esto es
1:00:32una de las cosas de las que tiene que
1:00:33encargarse el motor de base de datos,
1:00:35¿sí? De que se ejecute todo o nada.
1:00:40Okay,
1:00:41profe, cuando se realiza una transacción
1:00:44desde el lado del lenguaje de alto
1:00:47nivel, sería por ejemplo no GAS o PHP,
1:00:51lo que fueram
1:00:52la transacción la maneja la base, el
1:00:54motor de base de datos,
1:00:56la debe siempre tiene que estar en en
1:00:59digamos en coordinación con la base de
1:01:01datos. Ahora,
1:01:03si vos elegís una estrategia
1:01:07que lo vos también podrías elegir una
1:01:09estrategia que se maneje desde el punto
1:01:12de vista de la aplicación y la base de
1:01:14datos ni se entera.
1:01:16Claro. Sí. Eh, por eso le preguntaba yo.
1:01:18Normalmente se utiliza transaction, por
1:01:20ejemplo, en los lenguajes de
1:01:21programación y vuelven hacia atrás y
1:01:24algo no se realizó correctamente.
1:01:27Claro. Y ahí
1:01:28ahí yo no sé si es la base de datos o
1:01:30realmente el, vamos a decir, el
1:01:32framework del entorno de programación el
1:01:34que se encarga de dato.
1:01:35Ah, ahí interviene la base de datos. Sí,
1:01:38ahí interviene la base de datos. Pero lo
1:01:41que pasa, lo que conviene más es cuando
1:01:43tenemos este tipo de transacciones que
1:01:45son de todo, nada.
1:01:47conviene que eh se hagan dentro de una
1:01:50operación en la base de datos, dentro de
1:01:53un procedimiento almacenado en la base
1:01:56de datos. Entonces,
1:01:57claro, porque entonces los vamos a decir
1:01:59los recursos no no consumen el servidor,
1:02:02por ejemplo, que aloja el programa, sino
1:02:05exactamente, exactamente, exactamente.
1:02:09Bien. El lo segundo es la consistencia.
1:02:14la consistencia y este tengan en cuenta
1:02:16porque hay diferentes modelos
1:02:19eh
1:02:21hay diferentes modelos que eh por ahí me
1:02:25refiero a modelos de propiedades
1:02:27vinculadas a esto
1:02:29que hablan de eh hablan del mismo
1:02:32término, pero con diferentes sentidos.
1:02:35Cuando hablamos de consistencia acá
1:02:38tiene que ver con que el motor se
1:02:40asegure que todo dato guardado sea
1:02:43válido.
1:02:45Está
1:02:49eso sí o sí tiene que ocurrir. O sea,
1:02:51vamos a ir al ejemplo más sencillo. Es
1:02:54que si sé,
1:02:56por ejemplo, si alguien
1:03:00justamente extrajo e
1:03:04eh extrajo dinero de la cuenta
1:03:08que no pueda y es una caja de ahorro,
1:03:10por ejemplo, no puede existir saldo
1:03:12negativo.
1:03:14Sí.
1:03:15o que si se inserta un registro, por
1:03:18ejemplo, no es el caso de este ejemplo,
1:03:21que no tenga una clave de una clave de
1:03:23tabla duplicada,
1:03:25¿sí? O que si se borra un registro no
1:03:28quede otro registro sin vinculación, ¿se
1:03:32entiende? Entonces, acá no se habla de
1:03:34la consistencia tanto porque tengan
1:03:36mismos valores en diferentes
1:03:38particiones. Se está hablando de
1:03:40consistencia en cuanto al cumplimiento
1:03:42de las reglas de la base de datos, las
1:03:45reglas, las restricciones
1:03:48que tiene esa base.
1:03:49Las reglas de negocio sería
1:03:51son ahí con cuidado, reglas de negocio
1:03:54que pueden que están escritas en la base
1:03:57de datos, ¿sí?
1:04:00a través de diferentes mecanismos,
1:04:03sí, pero que están escritos en la base
1:04:05de datos. Acá sí que si vos tenés reglas
1:04:08de negocios que solamente las reforzás
1:04:11del lado
1:04:13del lado de la aplicación, la base de
1:04:14datos ni se entera. Sí,
1:04:18acá me estoy, creo que ahí lo está
1:04:20diciendo Mauricio, eh, claro, puede ser
1:04:24el tema de actualización en cascada,
1:04:26borrado en cascada, puede ser que tenga
1:04:29triggers, ¿sí? Eh, vinculados a eso para
1:04:33reforzar estas reglas. Entonces, lo que
1:04:36te dice es que antes y después de una
1:04:37transacción siempre los estados tienen
1:04:40que ser válidos.
1:04:42Sí.
1:04:44Bueno, eh aislamiento lo que me dice es
1:04:48que, fíjense el ejemplito que tiene acá.
1:04:53Me dice que cuando tengo varias
1:04:54transacciones o ocurriendo de manera
1:04:58concurrente,
1:05:00lo que tiene que suceder es que cada
1:05:02transacción se tiene que ejecutar como
1:05:04si fuera la única que lo está haciendo.
1:05:07Sí, hasta que se entere de que no es
1:05:10así. ¿Qué significa esto?
1:05:12que
1:05:14cada cliente hace su petición y trata de
1:05:17hacer su, ¿cómo se llama?, su
1:05:20transferencia, vamos a decir, en este
1:05:22caso, ¿sí? O sea, cuando yo hago en el
1:05:24homebanking una transferencia, no me
1:05:26entero, ¿sí? ¿Quién qué qué personas o
1:05:30qué otras personas están haciendo
1:05:31transferencias al mismo tiempo? Y acá en
1:05:34particular es un ejemplo sobre una misma
1:05:35cuenta, digamos. Sí, vamos a suponer que
1:05:37todos estamos haciendo transferencia a
1:05:39la cuenta de la facultad. Yo no me
1:05:40entero que otros están haciendo
1:05:42transferencias en el momento y si llega
1:05:44a suceder que justo exactamente en el
1:05:47mismo milisegundo estamos intentando
1:05:50modificar la miso, el mismo registro,
1:05:55entonces la base de datos o el sistema
1:05:57gestor de base de datos el que se tiene
1:05:58que encargar de resolver esa situación.
1:06:01¿Sí?
1:06:03Por eso se dice que están en
1:06:05aislamiento, tienen que estar aisladas
1:06:08las eh las transacciones. O sea, esta
1:06:12hasta acá llegamos hasta y la D es
1:06:15digamos la más una de las más fáciles de
1:06:17entender. Tiene que ver con que una vez
1:06:20hecha la transacción, ese resultado
1:06:23tiene que persistir.
1:06:25Sí, por más que haya un problema de eh
1:06:29de que la aplicación se cuelgue, haya un
1:06:32problema con errores, haya problema de
1:06:34luz, etcétera, etcétera. O sea, que
1:06:36tiene que encargarse de que alguna
1:06:38manera ese valor persista en el tiempo.
1:06:42Sí, tal como se pretende.
1:06:47Se comprende entonces a qué nos
1:06:49referimos con las cláusulas, con estas
1:06:51siglas AIT.
1:06:53Sí, profe.
1:06:56¿Alguna pregunta por ahí? Quizás lo que
1:06:59tienen no trabajaron con base de datos
1:07:01lo que más me interesa que esto quede
1:07:04claro, digamos.
1:07:06Entonces,
1:07:07sí,
1:07:07en mayoría esto es de del lado de la
1:07:11base de datos, sería todas estas reglas.
1:07:13Sí, sí, sí. Acá acá nosotros por ahí
1:07:15vamos a nombrar las aplicaciones y
1:07:17demás, pero recuerden que estamos
1:07:18hablando de el sistema gestor de base de
1:07:20datos. Sí.
1:07:23Okay. Sí.
1:07:25Bien. Eh, Néstor, en particular, ¿alguna
1:07:28parte querés que vuelva a explicar o hay
1:07:33hay algo que no se entendió? Decimme,
1:07:37a mí me gustaría escuchar de nuevo
1:07:39aislamiento, bro.
1:07:41Bien, aislamiento es es lo siguiente.
1:07:44Vamos a concentrarnos en el ejemplo, en
1:07:46el ejemplo que está acá.
1:07:50Siempre acorddate lo siguiente, el
1:07:51aislamiento solamente se entiende cuando
1:07:54tengo dos transacciones concurrentes.
1:07:56Fíjate que en en los otros ejemplos
1:08:00los o en los otros en las otras
1:08:03propiedades, el ejemplo es de una sola
1:08:05transacción. No sé si se percataron de
1:08:07eso. Sí. Para atomicidad utiliza una
1:08:10sola transacción, para consistencia una,
1:08:12para durabilidad una, pero para
1:08:15aislamiento utiliza dos transacciones. Y
1:08:17es porque esto se ve,
1:08:21esto se ve únicamente cuando tengo más
1:08:23de una transacción corriendo al mismo
1:08:25tiempo. Esto, esto qué implicas e no sé
1:08:29si eh ¿Quién era que me hizo la
1:08:31pregunta?
1:08:33Borchichi.
1:08:34Borchichi. Bueno, vos estuviste en
1:08:35programación TR, ¿te acuerdas cuando
1:08:37estuvimos eh
1:08:40cuando estuvimos, no sé si vos estuviste
1:08:41en la clase de Adonet en la cual
1:08:44hablábamos de por ahí de las tablas y
1:08:47los dataset y quedaban errores cuando
1:08:49alguien ya había modificado la tabla
1:08:51previamente, ¿sí? un un registro que yo
1:08:54estaba. Bueno, esto va más o menos hacia
1:08:56el mismo sentido,
1:08:58o sea, decir, yo acá estoy, tengo dos
1:09:01transacciones, fíjate que lo que quieren
1:09:03es hacer más o menos lo mismo sobre la
1:09:05misma cuenta. Sí.
1:09:09Y lo que te dice el concepto de
1:09:10aislamiento es que cada transacción,
1:09:13vamos a suponer que es una transacción
1:09:15de transferencia,
1:09:17esta no está consciente de la existencia
1:09:19de la otra. Es decir, yo es como si
1:09:22fueran por compartimientos diferentes,
1:09:24¿no? No, cada cliente eh lanza su o
1:09:29vamos a suponer cada cajero del banco
1:09:32lanza la transferencia y no sabe si el
1:09:33otro lo hizo al mismo tiempo y sobre la
1:09:35misma cuenta. ¿Sí?
1:09:38Entonces, suponete que o supónganse,
1:09:41mejor dicho, que sucede lo siguiente.
1:09:45Esto es con propósitos de de del
1:09:47ejemplo, nada más. Vamos a suponer que
1:09:49yo me voy al banco, estoy en el Banco
1:09:51del Chaco, estoy me voy a tengo dos
1:09:55personas en línea de caja al mismo
1:09:57tiempo. Los dos están queriendo hacer
1:09:59una transferencia a
1:10:02una cuenta en particular. Sí, vamos a
1:10:04suponer la cuenta de la facultad.
1:10:06Entonces, lo que lo que hace ahí es el
1:10:08cliente A dice, "Bueno, yo de mi caja de
1:10:11ahorro quiero transferir
1:10:13100 pesos a la cuenta de la facultad. Yo
1:10:15y el otro de mi caja de ahorro quiero
1:10:17transferir 300es a la cuenta de la
1:10:18facultad.
1:10:20Resulta que la cuenta de la facultad
1:10:22tenía 1,000es antes de que todo esto
1:10:24suceda.
1:10:26¿Sí?
1:10:28Ahora, cuando esto va a suceder,
1:10:32vamos a suponer que exactamente los dos
1:10:35averiguaron cuánto tenía antes la cuenta
1:10:38de la facultad en el saldo. Sí. A ambos
1:10:41le decía que tenían 1,000 pesos. Sí.
1:10:45Ahora, por lo tanto, ¿qué es lo que va a
1:10:47hacer esta transacción? Va a decir,
1:10:48"Bueno, el del cliente A, el resultado
1:10:50final debería ser que hace la extracción
1:10:53de la cuenta y la facultad debería tener
1:10:5511 pesos en la cuenta al finalizar."
1:10:58Y el del cliente B que dije que iba a
1:11:00transferir 300 pesos, al final, al
1:11:02finalizar la transacción debería tener
1:11:041300 pesos la facultad. ¿Sí? Ahora, el
1:11:08problema es que los dos juntos están
1:11:11queriendo hacer esta misma transacción.
1:11:14Entonces,
1:11:16al terminar eso, van entran en la misma
1:11:20al mismo momento al querer hacerlo, pero
1:11:23la base de datos tiene que tomar la
1:11:25decisión de hacer uno primero que el
1:11:26otro. ¿Sí?
1:11:30Entonces, la base de datos dice, "Bueno,
1:11:31yo voy a tomar la del cliente A." Por lo
1:11:35tanto, dice, "Bueno, voy a actualizar la
1:11:37operación a 1100 pesos." Sí, el nuevo
1:11:40saldo de la facultad va a ser 1100
1:11:41pesos. Ahora, si se limita solamente a
1:11:46procesar directamente la otra
1:11:47transacción, lo que va a pasar es que la
1:11:50segunda transacción va a sobreecribir la
1:11:53anterior
1:11:54y en B el resultado final, si las dos se
1:11:57ejecutan una detrás de otra debería ser
1:11:59cuánto, 1400 pesos. Pero si la otra
1:12:03viene y la ejecuta directamente después
1:12:06con el valor que ya tenía, va a tomar y
1:12:09lo va a sobreescribir en 1300. Entonces,
1:12:11lo que tendría que hacer dependiendo de
1:12:13cómo esté programado, puede decir,
1:12:15"Bueno, acomoda la situación, si e
1:12:21deposita o mejor dicho actualiza el
1:12:23salto correctamente o el programa arroja
1:12:27internamente, obviamente, un error
1:12:29diciendo que ya ocurrió una transacción
1:12:31de antemano, que intente de nuevo, ¿sí?
1:12:34Tratando de volver a actualizar esa
1:12:36situación. Entonces, ¿qué tendría que
1:12:37hacer tu programa en ese momento? La
1:12:39base de datos te dice, "Mira, algo
1:12:40cambió acá." Lo que tenés que hacer es
1:12:44tratar de volver a hacer la transacción.
1:12:46Obviamente esto el cajero ni se entera,
1:12:49lo que hace es volver a obtener el valor
1:12:51nuevamente suma lo que quiere depositar
1:12:53y lo vuelve a eh lo vuelve a enviar.
1:12:57¿Sí? Entonces, como esa segunda
1:13:00transacción
1:13:01sí se tuvo que interrumpir la de 300es,
1:13:07tiene que volver atrás todo, ¿se
1:13:10entiende? Porque para ese momento,
1:13:12cuando estaba por actualizar,
1:13:16ya le había descontado el dinero a el a
1:13:19la cuenta de origen.
1:13:22Imagínate si deja ese dinero descontado
1:13:24y después quiere volver a descontárselo
1:13:26de nuevo para depositarlo.
1:13:29Sí. Entonces,
1:13:31ya lo entendí.
1:13:32Esa es la idea,
1:13:34Gabriel, y a todos los demás que
1:13:37se se comprendió esa parte. Entonces,
1:13:40sí, sí.
1:13:41Bien. Bueno, alguien había eh
1:13:45durabilidad,
1:13:48¿no? La parte de integridad es
1:13:51consistencia y durabilidad tiene que ver
1:13:55con el estado en que queda la base de
1:13:58datos después, pero esto se refiere a
1:14:00que tiene que persistir ese valor en el
1:14:03tiempo. Sí.
1:14:05Vamos a ir a los roles.
1:14:13Bueno, cuando hablamos de eh de roles,
1:14:19ah, perdón, acá le dijo una inquietud
1:14:21con respecto a las siglas.
1:14:23Sí,
1:14:27las sido estas propiedades que deben eh
1:14:31que deben existir en las con las
1:14:33transacciones.
1:14:36Eh, tienen que tener en cuenta que eh
1:14:40fueron creadas más que nada para tipos
1:14:42de base de datos relacionales y para
1:14:44otros tipos de base de datos eh,
1:14:49¿cómo se llama?, de con una estructura
1:14:51bien formalizada, digamos. ¿Sí?
1:14:55Entonces, eh
1:14:57lo que tenemos que tener en cuenta es
1:15:00que
1:15:02estas siglas,
1:15:05¿sí?
1:15:08A ver. Ah, bueno, estas siglas, estas
1:15:11siglas AID, eh, lo que lo que sucede es
1:15:15que muchos hoy en día los que empezaron
1:15:19a programar ya con aplicaciones más eh
1:15:22más vinculadas a la web, eh, tienen que
1:15:26tener en cuenta que eh no se pueden
1:15:29respetar en su totalidad.
1:15:32No sé si no sé si se llegaron a percatar
1:15:35de eso. Sí.
1:15:38La pregunta es, ¿cómo hace? Por ejemplo,
1:15:41nosotros estamos hablando acá de una
1:15:42base de datos relacional, ¿sí? Pero hoy
1:15:45en día, por ejemplo, están de moda las
1:15:48bases de datos, ¿no? SQL.
1:15:51Perdón, chicos, ¿están viendo la
1:15:52pantalla o no?
1:15:54Sí, profe,
1:15:55porque no sé si estaban discutiendo por
1:15:57eso o por otra cosa.
1:16:00Bien. E entonces lo que les decía, estas
1:16:03siglas adet son van perfecto en un motor
1:16:06de base de datos relacional, pero
1:16:09tenemos un problema si las queremos
1:16:11aplicar a otro tipo de tecnologías.
1:16:14¿Sí? Entonces, muchas de estas
1:16:16cuestiones o algunas de estas cuestiones
1:16:18no se pueden aplicar al mismo tiempo en
1:16:20otros tipos de bases de datos, como por
1:16:23ejemplo ese esa gran ese gran paraguas
1:16:27que hay o ese gran término que involucra
1:16:31a muchas bases de datos que se conoce
1:16:33como base de datos, ¿no? SQL. Sí,
1:16:37creo que varios de ustedes habrán
1:16:39escuchado nombrar el término y de hecho
1:16:41muchos me algunos me nombraron que ya
1:16:43trabajaron con alguna de esas bases de
1:16:44datos. ¿Sí? Entonces, rápidamente, una
1:16:48base de datos no SQL, ¿qué significa?
1:16:52que no ha sido el modelo relacional del
1:16:54MER en este caso.
1:16:56Eh, exactamente.
1:16:59Y al principio como todos estos términos
1:17:02que
1:17:04como todos estos términos, digamos que
1:17:06que que se van adoptando de facto y no
1:17:08no es que vienen de un consenso general,
1:17:11eh por ahí se van acomodando y al
1:17:13principio es como decía, bueno, son
1:17:15bases de datos no relacionales, ¿sí? O
1:17:18que no trabajan con un lenguaje SQL. Y
1:17:21después la fueron acomodando un poquito
1:17:22y dijeron, "No, en realidad significa el
1:17:26término más aceptado, el significado más
1:17:28aceptado es not only SQL." Sí. O estoy
1:17:32mezclando las consolamente
1:17:34SQL o not only SQL. SQL, ¿sí? Entonces,
1:17:39eh
1:17:42tienen que tener en cuenta esa cuestión.
1:17:44Sí. Eh, por ahí fueron cambiando,
1:17:46modificando el término. ¿Por qué? Porque
1:17:48a medida que fueron avanzando estas
1:17:50bases de datos, fueron incorporando
1:17:52algunos conceptos de bases de datos
1:17:54relacionales o fueron incorporando
1:17:57algunas
1:17:59el uso de lenguaje por ahí, no el SQL,
1:18:01pero sí lenguajes de consultas y demás,
1:18:05con lo cual ahora se dice que no no SQL
1:18:09significa not only SQL. Sí, es como la
1:18:12idea y claro, sí, por supuesto, por eso
1:18:15le digo, no SQL no es ni una marca ni
1:18:18nada, es un tipo de base de datos que
1:18:19decir, bueno, dejamos la base de datos
1:18:22relacionales aparte y digamos todo un
1:18:24gran
1:18:26eh abanico
1:18:29eh de cosas en las cuales pueden entrar
1:18:31muchos tipos de base de datos, incluso
1:18:32algunas que tienen algunos aspectos de
1:18:34base de datos relacionales. Sí.
1:18:38Eh, después vamos a ver eh si un poquito
1:18:41más adelante nos detenemos en eso, ¿sí?
1:18:43En en explicar un poquito más la
1:18:45cuestión. Lo que sí, eh, obviamente
1:18:47nosotros vamos a estar trabajando sobre
1:18:49un modelo eh relacional, básicamente.
1:18:53Sí. Bueno, aquí iba con esto y para ya
1:18:56me fui demasiado de tema, tengan en
1:19:00cuenta que estas siglas AS no son
1:19:02aplicables a muchas de estas bases de
1:19:05datos no SQL.
1:19:07Sí.
1:19:09¿Por qué? Entonces se decidió,
1:19:13¿sí? O se se fue optando por seguir
1:19:16otras estrategias, ¿sí? Y ahí van a
1:19:18encontrar términos como el término base
1:19:21o base.
1:19:23Sí,
1:19:25es un realidad un juego de palabra para
1:19:28acomodarlo, decir que yo tengo ácido y
1:19:32bases. Entonces dijeron, bueno, tenemos
1:19:35ac y sí. Y en realidad el término ve no
1:19:39refleja del todo bien lo que quiere
1:19:41significar, pero lo que dice es está
1:19:43como en la otra punta del espectro. Es
1:19:45decir, no seamos tan estrictos, podemos
1:19:48relajar alguna de las cuestiones que se
1:19:51piden con estas siglas así. Sí. Y hay un
1:19:55teorema de la persona que introdujo esto
1:19:59que se llama teorema CAP, ¿sí? Vinculado
1:20:03a esta cuestión. Pero eso nada, es para
1:20:06que escuchen una vez el término, después
1:20:08si quieren lo buscan y demás. No, no
1:20:10quiero que en este momento nos empezamos
1:20:13a mezclar con eso porque recién eh
1:20:16estamos empezando. Sí.
1:20:20Bien. Entonces, estas son las siglas
1:20:22adit que son propiedades que debe tener
1:20:25toda transacción en un
1:20:29en un gestor de base de datos
1:20:31relacional.
1:20:35Bueno, volviendo a los roles, que era lo
1:20:37que les iba a comentar
Roles
1:20:40con respecto a los roles, entonces
1:20:44tenemos los administradores,
1:20:46¿sí? Un administrador eh
1:20:50de base de datos ustedes lo van a
1:20:52encontrar esto en el libro como actores
1:20:54y trabajadores, ¿sí? Pero básicamente
1:20:56son roles que tenemos en las en una base
1:20:59de datos cuando estamos en un contexto
1:21:02de base de datos. ¿Sí? ¿Qué es lo que
1:21:05implica esto cuando nosotros hablamos
1:21:07administradores de base de datos? Es
1:21:08quizás un uno de los roles más es el rol
1:21:11más importante para mantener esa base de
1:21:14datos. es el que tiene acceso en general
1:21:17a todo los recursos que maneja esa gato.
1:21:20Entonces,
1:21:22a ver si me pueden me pueden decir cuál
1:21:26serían
1:21:27una o dos de las responsabilidades que
1:21:30tendría un administrador de base de
1:21:32datos en general, no más.
1:21:38Ajá. Pero, ¿a qué te referís con a qué
1:21:40se refiere con mantenimiento? ¿Qué
1:21:42involucra el mantenimiento, por ejemplo?
1:21:48Supónganse
1:21:49que ustedes son administradores de base
1:21:52de datos. ¿Qué se supone que deberían
1:21:54hacer cuando están enfrente de la base
1:21:56de datos?
1:21:58Piensen que tenemos, por ejemplo, vamos
1:22:00a suponer que estamos eh eh
1:22:03administrando una base de datos que eh
1:22:06al cual ingresan alrededor de eh
1:22:12100 usuarios por minuto.
1:22:15Sí, para no ser tan exagerados.
1:22:20¿Qué debería controlar allí?
1:22:23Monitorear el rating por lo que pasa en
1:22:25los usuarios. No sé, o sea, me di qué a
1:22:28cuántos usuarios vienen por minuto y la
1:22:30eh mantener la fiabilidad de eso en este
1:22:33caso.
1:22:33Bueno, por un lado saber cuántos
1:22:35usuarios están entrando. Sí, pero y
1:22:37además, o sea, ¿qué qué es lo que la
1:22:40base de datos
1:22:42y el controlar quién eso no se hace del
1:22:44lado de la base de datos, no?
1:22:45Bueno,
1:22:46garantizar la seguridad de los datos.
1:22:48Bueno, una de las cuestiones que tiene
1:22:49que hacer el
1:22:50respaldar,
1:22:52una de las cuestiones que tiene que
1:22:53hacer el administrador y una de las más
1:22:56críticas es garantizar la seguridad,
1:22:58¿sí? De la base de datos. Sí, quizás uno
1:23:02de los dolores que ha de cabeza más
1:23:03grande. Sí. Por ende, en general, con
1:23:06las bases de datos, lo que se trata de
1:23:08de en general no suele ser el frente de
1:23:11batalla de un sistema web, por ejemplo.
1:23:13Sí está un poco más expuesto cuando es
1:23:15un sistema eh que funciona en un
1:23:17intranet, ¿sí? Pero cuando hacemos un
1:23:20sistema web en general no se expone la
1:23:22base de datos, ¿sí? Eh está detrás de la
1:23:25aplicación, pero de todas maneras tiene
1:23:28que asegurarse que esa base de datos
1:23:30tiene todos los permisos correctos. Sí.
1:23:33Es decir, que la base de datos, por
1:23:34ejemplo, no salga con los permisos de un
1:23:36usuario administrador a producción, por
1:23:38ejemplo. Sí, desde ahí para arriba.
1:23:42Eh, ¿qué otra cosa?
1:23:46E,
1:23:49¿quién era? Ah, creo que era Melina.
1:23:51Melina mencionó Melina había mencionado,
1:23:54sí, hacer respaldos de los datos. Bueno,
1:23:57se hacen periódicos
1:23:59por si llega a pasar algo.
1:24:01Exactamente. Entonces, mantener la
1:24:03fiabilidad de de esos datos, es decir,
1:24:07que ante cualquier inconveniente se
1:24:10puedan recuperar hasta su último estado
1:24:13eh guardado. Obviamente, dependiendo de
1:24:17la periodicidad con la que hagamos esas
1:24:20esos resguardos,
1:24:22es cuán si tendríamos un problema,
1:24:25cuánto vamos a poder recuperar de lo que
1:24:27ya teníamos allí, ¿no? También no solo
1:24:30depende a veces en la arquitectura
1:24:33propia del despliegue de la base de
1:24:35datos está,
1:24:38¿cómo se llama?
1:24:41Eh,
1:24:43está el hecho de
1:24:43pasó con con la empresa Canon que
1:24:46perdieron casi una semana de datos, que
1:24:49eran casi 10 TB de datos de los
1:24:51usuarios.
1:24:52Ah, mira, no no no no conocía. Y al
1:24:55final
1:24:55estaban viendo si podían recuperar. Eso
1:24:57fue lo último que le Y encima fueron
1:24:59hackeados. Así que
1:25:01bueno, es a ver esas son las cuestiones
1:25:04en la cual a uno no le gustaría ser no
1:25:07le gustaría estar en el R.
1:25:08Nadie quiere estar en ese lugar. No, eh,
1:25:12a ver, todo lo que tenga que ver con
1:25:14administración de servidores en general
1:25:17o de base de datos en particular, me
1:25:19refiero a base de datos que que son
1:25:22accedidas realmente por muchos usuarios
1:25:24de manera concurrente, puedes pasar un
1:25:26tiempo en que no tengas que hacer nada,
1:25:28pero cuando tenés un problema, tené
1:25:30todos los problemas juntos. Entonces,
1:25:33estás las 24 horas tratando de
1:25:35solucionar los problemas.
1:25:37Es es un gran es un gran tema. Es un
1:25:40gran tema y requiere de mucha
1:25:42experiencia. requiere de mucha
1:25:43experiencia.
1:25:45Eh,
1:25:47pero bueno, porque aparte en de acuerdo
1:25:50al esquema que se está utilizando, el la
1:25:52base de datos puede ser el cuello de
1:25:55botella. Y ahí viene lo tercero
1:25:58que y una de las cosas más importantes,
1:25:59tiene que tratar de que la base de datos
1:26:01funcione con una performance adecuada.
1:26:05Es decir,
1:26:06imagínense si empiezan a ingresar más y
1:26:09más y más usuarios y puede puede ser
1:26:13víctima del éxito que puede llegar a
1:26:14tener la aplicación. Sí.
1:26:18Entonces, eso tiene que estar muy bien
1:26:20pensado.
1:26:21¿Okay?
1:26:23El administrador de base de datos se
1:26:25encarga nada más y nada menos de todas
1:26:28esas esas cuestiones.
1:26:32Sí.
1:26:34Bien. Eh, bueno, después
1:26:38una de las cuestiones centrales donde
1:26:40vamos a estar ubicados nosotros en la
1:26:42parte del diseño. Sí, el diseñador de la
1:26:46base de datos. Y acá tengo, quiero que
1:26:47tengan en cuenta que en realidad esto
1:26:49está separado de, fíjense que abajo
1:26:51tenemos analistas de sistemas y
1:26:53programadores.
1:26:55En realidad normalmente eso forma parte
1:26:57del equipo y por eso se llama rol. Sí,
1:27:00es decir, puede ser lo lo es decir, lo
1:27:03puse como rol porque de acuerdo a la
1:27:05envergadura que tenga eh el proyecto en
1:27:09el que estemos, estos roles pueden ser
1:27:12llevados por una o más personas a cabo.
1:27:14¿Sí?
1:27:16Entonces,
1:27:18el diseñador de de base de datos también
1:27:21tiene, si son personas diferentes, tiene
1:27:23que estar muy en contacto. Por un lado,
1:27:25con este sistema
1:27:28puede llegar a estar en contacto con el
1:27:31con
1:27:33el usuario final, un cliente, digamos,
1:27:35lo que vendría a ser el product owner,
1:27:38si están haciendo ágiles, están
1:27:40aplicando algún alguna metodología ágil,
1:27:44pero lo más normal es que si es solo
1:27:47diseñador esté más en contacto con la
1:27:50gente de con el equipo de desarrollo.
1:27:53Sí. Y en gran parte en la el el una gran
1:27:58parte del éxito de la de lo que tiene
1:28:01que ver con la performance de una base
1:28:03de datos tiene que recaen en manos de
1:28:06diseñador. Un mal diseño de base de
1:28:08datos puede repercutir en la performance
1:28:11totalmente de un sistema, aparte en el
1:28:13tiempo que incurre el desarrollo de una
1:28:17base de datos y el desarrollo de una
1:28:19aplicación en general. Sí.
1:28:24Bien, entonces, pero esencialmente es el
1:28:27encargado de definir, analizar qué
1:28:29estructuras eh voy a colocar, voy a
1:28:33definir en en la base de datos que se va
1:28:35a desarrollar, que se va a construir.
1:28:39¿Okay? Y eh finalmente
1:28:47eh mejor dicho eh dentro del equipo de
1:28:49desarrollo, sí, también vamos a tener
1:28:52los analistas de sistemas y
1:28:53programadores que obviamente en un
1:28:55principio van a trabajar mucho sobre la
1:28:57base de datos y esto es lo que quizás se
1:29:00hace es si
1:29:03o de vuelta depende de la envergadura
1:29:05del proyecto, pero si están hechas bien
1:29:08las cosas, bueno, los programadores y
1:29:11los desarrolladores en general no tienen
1:29:12que estar trabajando obviamente sobre la
1:29:14base de datos de producción, sino con
1:29:16sobre una réplica.
1:29:18Eh, y van a estar trabajando en conjunto
1:29:21con estos con los diseñadores de la base
1:29:23de datos en particular. nos quedan dos
1:29:26roles. Por un lado, los trabajadores de
1:29:28soporte, que yo, a ver, están están ahí
1:29:33juntos en un en un solo en una sola
1:29:36categoría, pero en realidad estoy
1:29:37agrupando muchas cosas importantes,
1:29:40¿sí? Nada más y nada menos como por
1:29:43ejemplo los diseñadores implementadores
1:29:45del sistema gestor de base de datos, es
1:29:47decir, los que desarrollaron el sistema
1:29:48gestor de base de datos en sí. Entonces,
1:29:50a eso en el libro se lo considera un eh
1:29:54un trabajador de soporte. Lo mismo
1:29:57pueden ser creadores de herramientas eh
1:30:00que podemos tener vinculadas, por
1:30:02ejemplo, al diseño de base de datos.
1:30:04¿Sí? alguna herramienta para hacer para
1:30:07hacer diagramas y que después me haga
1:30:08ingeniería directa sobre para crear la
1:30:11base de datos, por ejemplo, se podría
1:30:13considerar dentro de esta categoría,
1:30:16pero esencialmente una de las que
1:30:17nosotros nos vamos a imaginar y que
1:30:19normalmente es la que tienen que tener
1:30:21en mente cuando decimos trabajadores
1:30:23soporte con el rol de una base de datos
1:30:25tiene que ver con el personal que
1:30:28trabaja eh para el mantenimiento, por
1:30:32ejemplo, del hardware, del software, de
1:30:35las redes, sí,
1:30:38que de vuelta puede ser más o menos una
1:30:41persona, digamos. Sí. Eh, entonces eso
1:30:45aquel que maneja se encarga de
1:30:47configurar los servidores, de mantener
1:30:50los sistemas operativos correctamente,
1:30:52de mantener la infraestructura
1:30:54refuncionando.
1:30:55Sí, son todos roles supercíticos.
1:30:59O sea, el hecho de que estén todos
1:31:01agrupados en un solo lugar no les quita
1:31:03ningún mérito. De hecho, son los que uno
1:31:06de los principales, digamos. Lo que pasa
1:31:08que acá estamos poniendo relevancia
1:31:10sobre los roles específicos de base de
1:31:13datos y por eso el administrador es el
1:31:14que aparece ahí con mayor relevancia.
1:31:17¿Sí? Y por último, ahora sí tenemos el
1:31:20de eh los usuarios finales. Okay.
1:31:25El un usuario final eh o los usuarios
1:31:28finales se pueden dividir en varias en
1:31:31varias categorías y un poco el libro ahí
1:31:34trata cuatro categorías, digamos, en
1:31:36principio, pero eh algunas se solapan y
1:31:40es difícil diferenciarla, pero bueno,
1:31:42vamos a hacer un ensayo. Por un lado,
1:31:44decimos que tenemos los usuarios eh
1:31:47finales autónomos. Sí, los usuarios
1:31:51finales autónomos son aquellos que
1:31:53utilizan la base son en general se
1:31:55refiere a usuarios que trabajan sobre
1:31:56una aplicación monousuario, es decir,
1:31:58una pequeña aplicación con una base de
1:32:00datos chiquitita que utilizan algún
1:32:04programa para acceder a esa base de
1:32:05datos y ya digamos puede ser en un
1:32:07celular, en una aplicación de escritorio
1:32:09o lo que fuera. Y después tienes otro
1:32:12otro otra subcategorización ahí muy
1:32:15parecida que es la de los usuarios
1:32:16simples o paramétricos.
1:32:19Sí, los usuarios estos simples o
1:32:21paramétricos son aquellos que en
1:32:23realidad se acuerdan que estuvimos
1:32:25hablando hace un ratito de las
1:32:27aplicaciones o los sistemas OLTP. Sí.
1:32:31¿Qué dijimos? ¿Qué significado OLTP?
1:32:39eh de transacciones online.
1:32:41Es sistema de procesamiento
1:32:42transacciones online y me implicaba ¿qué
1:32:45cosa?
1:32:49eh altas cargas de trabajo en pequeñas
1:32:52transacciones.
1:32:53En pequeñas transacciones. Entonces,
1:32:54cuando habla de eh en particular de
1:32:58usuarios simples o paramétricos, se está
1:33:00refiriendo esto a usuarios de este tip
1:33:02que hacen uso de este tipo de
1:33:04aplicaciones. Es decir, eh usuarios que
1:33:07en general son empresas medianas,
1:33:10digamos, o grandes, pero que tienen
1:33:12sistemas que son altamente
1:33:14estructurados, es decir, o operaciones
1:33:16que son altamente estructuradas, que
1:33:17hacen exactamente lo mismo una y otra
1:33:19vez. Sí. Por eso en general el ejemplo
1:33:23que siempre se da acá es del de un
1:33:25cajero de banco, eh, o incluso un
1:33:28cliente bancario, ¿sí? O sea, puede
1:33:30depositar, puede transferir, puede
1:33:32obtener un extracto, es decir, siempre
1:33:35hace lo mismo de una y otra manera. Es
1:33:37decir, no no tiene forma de salirse de
1:33:40esa de esa operación. Por eso se llama
1:33:44usuario simple paramétrico, siempre
1:33:45utiliza las mismas. Y fíjense que si uno
1:33:48se pone a pensar, no hay mucha
1:33:50diferencia con el usuario autónomo. Nada
1:33:52más que eh tómenlo por este lado, este
1:33:55ejemplo que les di aplicación OLTP.
1:33:59Sí. Y después como en el otro extremo,
1:34:04sí podríamos agrupar a los usuarios
1:34:06esporádicos y a los usuarios avanzados.
1:34:09¿Qué tienen en común, digamos, si lo
1:34:11queremos relacionar así para acordarnos
1:34:13de los usuarios eh esporádicos?
1:34:17Es que los tanto los esporádicos como
1:34:19los avanzados eh normalmente hacen uso
1:34:22de la base de datos, pero hacen uso de
1:34:24manera diferente, ¿sí? cada vez que eh
1:34:27acceden, es decir, no siempre hacen las
1:34:30mismas consultas o las mismas eh las
1:34:33mismas actualizaciones. En el caso
1:34:35particular de los usuarios esporádicos,
1:34:37lo que se refiere es, bueno, el usuario
1:34:39esporádico se supone que no es una
1:34:41persona que que sepa que esté embebido
1:34:46en el ámbito de la de de de la
1:34:49informática. Es decir, seguramente sabe
1:34:51y demás y tiene conocimiento, pero lo
1:34:53que me dice es va a acceder a esa base
1:34:55de datos. a través de una aplicación
1:34:57seguramente, pero va a necesitar hacer
1:34:59cosas distintas y en general se piensa
1:35:01en un gerente de rango medio, gerente
1:35:04alto que de alto nivel, que lo que
1:35:07intenta es acceder a diferentes tipos de
1:35:10información en diferentes momentos.
1:35:13Entonces, eh no hace siempre el mismo
1:35:17trabajo. ¿Okay? ¿Y para qué sucede en
1:35:21ese caso?
1:35:23¿Cómo hacemos para que una persona así
1:35:27pueda acceder a la base de datos?
1:35:33¿Se comprende o no el ejemplo que le
1:35:35estoy dando?
1:35:45Chicos, ¿están por ahí?
1:35:47Sí, se
1:35:48bueno. Entonces, ¿de qué tipo? A ver,
1:35:50denme un ejemplo de eh Bueno, ahí me
1:35:53Rubén me dice que no, pero imagínense lo
1:35:56siguiente. Ustedes son eh
1:36:00ustedes son el gerente de un de de un
1:36:05banco internacional en la Argentina. Sí.
1:36:09Ustedes se imaginan que obviamente el
1:36:12gerente no va a estar haciendo
1:36:13transferencias y y depósitos y demás,
1:36:17sino que por se va a ocupar eh de tratar
1:36:21de obtener información de alto nivel de
1:36:23la base de datos. ¿Sí? Entonces, le va
1:36:27le va les van a interesar cosas como eh,
1:36:31¿qué es? por ejemplo, la cantidad de
1:36:33clientes que se adquir que entraron al
1:36:36banco en determinado tiempo y eso sería
1:36:39algo básico, pero quizás les va a
1:36:42interesar saber por qué esos clientes
1:36:44ingresaron en determinado momento, por
1:36:46qué vamos a suponer de febrero a marzo
1:36:49se el banco adquirió más clientes y
1:36:52perdió clientes en tal periodo, se
1:36:55entiende, es información muchas veces
1:36:58vinculada a estadísticas y demás.
1:37:01muchas veces vinculada, tiene que ver ya
1:37:04con inteligencia de negocios, que
1:37:06necesita obtener de toda la información
1:37:10que se fue cargando de a poquito en
1:37:13nuestra base de datos.
1:37:15Entonces, ese tipo de consultas
1:37:19es muy difícil de eh obtener de hacer
1:37:22una pantalla que me resuelva de manera
1:37:25fácil eso. Entonces, por lo tanto, se
1:37:28considera que tiene que tener una
1:37:29interfaz medianamente sofisticada
1:37:32para poder hacer eso o contemplando de
1:37:35menos eh una variedad de interacciones
1:37:38bastante interesantes.
1:37:42Y el último es el de los usuarios
1:37:44avanzados. Sí,
1:37:47van a ver allí que habla de ingenieros,
1:37:50¿no? No especifica cuál, cualquier tipo,
1:37:52científicos, lo que sea, que sepan
1:37:56utilizar base de datos y en general
1:37:57ellos ya van a hacer uso directo de la
1:37:59base de datos. van a tener que, por
1:38:00ejemplo, saber armar consultas SQL, por
1:38:03ejemplo. Sí, porque es decir, cualquier
1:38:05aplicación que se les haga puede llegar
1:38:08a resultar eh
1:38:11puede quedarse corta enseguida porque no
1:38:13va a tener en cuenta todas las
1:38:14necesidades que tiene. ¿Sí?
1:38:17Entonces, fíjense que ahí tenemos a esas
1:38:21cuatro divisiones o esas cuatro
1:38:22subcategorías que presentan ahí la
1:38:25podemos dividir, la podíamos podemos
1:38:28armar grupos de dos por un lado, los que
1:38:30tienen transacciones o hacen operaciones
1:38:34similares día tras día y aquellos que
1:38:36hacen operaciones distintas y poco
1:38:39predecibles.
1:38:43¿Comprendido?
1:38:47Sí,
1:38:48sí, profe.
1:38:50Bueno,
1:38:52bueno, ¿cómo están hasta ahora? ¿Ya
1:38:54están aburridos? ¿Están cansados?
1:38:55¿Quieren cortar acá o seguimos con un
1:38:57tema más?
1:39:01Un creo, profe.
1:39:02Eh,
1:39:03un crédito podría ser.
1:39:05Bueno, vamos a hacer una cosa, eh,
1:39:09si todavía tienen para tirar un poquito
1:39:11más, vamos a hacer un recreo de 10
1:39:13minutos y tocamos un tema más que nos a
1:39:17los nos llevará 30 minutos. Sí.
1:39:21Y después,
1:39:23¿qué prefieren? ¿Seguir de largo los 30
1:39:25minutos o hacer? Profesor, una pregunta
1:39:27nada más de todo. Lo último que conversó
1:39:30ahora es sobre la misma diap positiva en
1:39:33lo que está ahora o cambió
1:39:36todo lo que conversé ahora.
1:39:38Sí, sí, sí. El final
1:39:39es la misma diapositiva de roles, nada
1:39:41más que estaba inspirado.
1:39:44Está está. Gracias.
1:39:45Listo.
1:39:47Eh, ¿qué les iba a decir? Bueno,
1:39:49seguimos. Parece que
1:39:52eh bueno, parece que
1:39:55eh bueno, como quieran. Lo mismo
1:39:58si hacemos 10 minutos, 11 40 minutos.
1:40:00Seguimos. Todos dijeron, la mayoría dijo
1:40:02para seguir. Lo siento, Melina, pero
1:40:05vamos a seguir.
1:40:06Profe, podemos repasar un poquito el
1:40:08tema de
1:40:10e, ¿cómo se llama? de las definiciones
1:40:12de cada uno de los roles, eh, un
1:40:15repasito rápido por los diseñadores,
1:40:18usuarios finales, todo eso.
1:40:19Bueno, a ver, pero ahí te pido que
1:40:21eh chicos, yo si quieren les comparto
1:40:25después en un Google Drive estoy
1:40:26grabando la la clase como para después
1:40:29subirla al campus.
1:40:31Emilio, Emilio, acá yo la yo la grabo,
1:40:33yo la subo. Va, yo se las voy a ir
1:40:36pasando, así que no se preocupen. Aquel
1:40:37que quiera grabar lo hacen, pero yo
1:40:40tengo grabada la clase
1:40:42perfecto.
1:40:42Está por eso, pero si hay lo que quiero
1:40:45saber es si alguna cosa no se entendió,
1:40:47si no como ahí menciona Emilio, se puede
1:40:50se puede revisar, pero vayamos
1:40:52rápidamente.
1:40:54administradores. Ahí, ahí quiero que me
1:40:56ayuden ustedes a hacer el recuento.
1:40:57Entonces, vamos rápido. Administradores,
1:41:00¿cuáles son las responsabilidades
1:41:01principales que nombramos?
1:41:06La seguridad de la base de datos.
1:41:08Seguridad por un lado. La otra
1:41:10viabilidad.
1:41:11Fiabilidad. Vinculado a qué?
1:41:17Para distinguirlo un poco de la
1:41:18fiabilidad. ¿En qué se diferen la
1:41:20seguridad? ¿En qué se diferencia la
1:41:21fiabilidad de la seguridad?
1:41:24la protección y el backup de los datos
1:41:27en este caso.
1:41:27Eh, bueno, sí estamos. Y lo tercero que
1:41:30está que es lo una de las cosas más
1:41:32importantes
1:41:35que ante una cantidad, una aluión de
1:41:37gente o ante mucha concurrencia, ¿qué?
1:41:42La performance,
1:41:43la performance, que
1:41:45que la performance se siga manteniendo
1:41:47adecuadamente, que la base de datos
1:41:49pueda responder, que no se degrade. Sí.
1:41:53Estamos.
1:41:55Lo otro, de todas maneras, chicos, esto
1:41:58está en el libro buenísimo. O sea, acá
1:42:01yo estoy como para darle una explicación
1:42:03por arriba de esto, así que de ahí lo
1:42:06pueden sacar muy bien si alguien le
1:42:08quedó a alguien algo en el tintero. Lo
1:42:11otro, lo otro que habíamos visto es el
1:42:13diseñador.
1:42:15Sí, diseñador. Ya estamos hablando de lo
1:42:18mismo. Estamos hablando básicamente
1:42:21eh de un término prácticamente
1:42:24transparente, es decir, el que se va a
1:42:27encargar de diseñar la estructura o de
1:42:31elegir las estructuras apropiadas como
1:42:33para volcarla a la base de datos que
1:42:35vamos a estar elaborando.
1:42:37El trabajo del diseñador se hace una vez
1:42:39o es o es más o menos constante? ¿Qué
1:42:41qué piensan de eso?
1:42:45¿Se
1:42:47hace solamente cuando desarrollamos y
1:42:49ahí lo despedimos o o qué piensan al
1:42:53respecto?
1:42:57Para mí sí, en un principio se diseña
1:43:00una sola vez, pero supongo que el
1:43:02diseñador tiene en cuenta igual para el
1:43:05diseño que él desarrolló en caso que
1:43:07necesite crecer o la aplicación o lo que
1:43:10sea.
1:43:10Claro, de vuelta tiene que ver con la
1:43:12envergadura del proyecto. Sí.
1:43:15Obviamente un diseñador va a tener su
1:43:17carga de trabajo máxima cuando se está
1:43:20desarrollando el proyecto. Y cuando
1:43:23entra en producción, lo que puede llegar
1:43:26a ser que deje en manos de otra persona,
1:43:29¿sí? O puede ser que él mismo haga una
1:43:32especie de eh de mantenimiento de
1:43:35retroalimentación
1:43:36sobre esta base de datos en particular.
1:43:39Sí. Eh, ¿y porque tranquilamente? Esa es
1:43:43otra de las cuestiones. La estructura es
1:43:45normal que cambie, o sea, al principio
1:43:47vamos a tener los cambios más abruptos,
1:43:51¿si? Pero después eh vamos a ver que eso
1:43:56esa es el ritmo de cambios baja, pero
1:44:00igual pueden suceder algunas cosas.
1:44:03Eh, siempre que la aplicación se siga
1:44:05moviendo van a ver pueden haber cambios
1:44:07de estructura en la base de datos. ¿Sí?
1:44:11Y eh bueno, panelista de sistema y
1:44:13programadores es en este en este aspecto
1:44:16es algo menor, pero cuando hablamos de
1:44:19programadores de aplicaciones van a
1:44:20tener que conocer la base de datos para
1:44:22saber contra qué están programando.
1:44:24Obviamente dependiendo de qué parte de
1:44:26la aplicación están programando. Si
1:44:28solamente están en la parte de frontend,
1:44:30quizás sepan poco o nada de la base de
1:44:33datos. Sí, si están trabajando en el
1:44:35backend, obviamente van a estar en
1:44:37contacto directo con la base de datos y
1:44:39si hacen todo, no te les queda otra que
1:44:41conocerla también. Y lo mismo con un
1:44:44analista. ¿Cuál es la diferencia entre
1:44:46el analista y el diseñador de base de
1:44:48datos? Cuando habla cada analista se
1:44:49refiere al analista en sistema, el
1:44:51analista de sistema, que es el rol que
1:44:54se va a encargar de saber qué grandes
1:44:56datos vas a tener que ir ahí. Entonces,
1:44:58él se va a encargar de averiguar cuáles
1:45:00son los requerimientos de datos de esta
1:45:02aplicación. El diseñador se encarga de
1:45:05llevarlos o devolcarlos a la base de
1:45:07datos. Sí, claro. Trabajan sobre eh
1:45:11supuestamente réplica de la base de
1:45:12datos. Bien. Y eh yendo a los
1:45:17trabajadores de soporte, ahí el sin duda
1:45:20uno de los principales, ¿cuál era?
1:45:22Uruti.
1:45:24Había mencionado.
1:45:31Está por ahí. ¿Cómo? Uruti.
1:45:34Sí,
1:45:37Uruti. Me había pedido que que revise
1:45:39estos conceptos, ¿no?
1:45:41Sí, sí, sí.
1:45:42Pero
1:45:44pero lo que quiero saber es a ver si
1:45:46esta parte te quedó te quedó clara
1:45:49dentro de los trabajadores de soporte.
1:45:51¿Te acordas alguno que hayamos
1:45:52mencionado?
1:46:01No, no, profe, no estoy tipo revisando
1:46:03para poder
1:46:05Bueno, a ver, otro que lo otro que lo
1:46:07ayude.
1:46:08Y los desarrolladores de los gestores,
1:46:11eh, desarrolladores de herramientas que
1:46:13sirvan, por ejemplo,
1:46:15una ORM que te que te automatice el
1:46:19trabajo.
1:46:20Bien. y uno
1:46:22contacto más directo con la base de
1:46:24datos, con nuestro ecosistema, ¿cuáles
1:46:26serían?
1:46:32Que los había nombrado al final. Eso, el
1:46:34personal que trabaja sobre el hardware,
1:46:36las redes, el software. Sí,
1:46:39esos son típicamente los que se encar el
1:46:42personal, el que se encarga del
1:46:43mantenimiento de la infraestructura.
1:46:45¿Sí? Bien. Y de los usuarios habíamos
1:46:48dicho que existían dos tipos, dos
1:46:49grandes tipos. unos los que hacen los
1:46:52que hacen las mismas operaciones día
1:46:54tras día o operaciones similares y
1:46:56aquellos que hacen operaciones distintas
1:46:59todos los días. La diferencia está en
1:47:01que los otros para los primeros digamos
1:47:04se pueden tener interfaces diferentes a
1:47:06la de las bases de datos a través de una
1:47:09aplicación que son bastante predecibles,
1:47:12son estructuradas y demás y una vez que
1:47:14se diseñan no tienen mayores cambios.
1:47:17Ahora, cuando hablamos de los usuarios
1:47:19esporádicos y los usuarios avanzados,
1:47:21los usuarios esporádicos, por un lado,
1:47:23se refiere a gente va a acceder de
1:47:25manera esporádica o casual a a los datos
1:47:30en la base de datos, no necesariamente
1:47:32de manera directa, pero sí a través de
1:47:34una aplicación que le tiene que dar
1:47:35herramientas que sean lo suficientemente
1:47:37flexibles
1:47:39como para poder eh obtener los datos que
1:47:43necesitan. Sí.
1:47:46Y por el otro lado tenen los usuarios,
1:47:48tienen los usuarios avanzados que son
1:47:51personas que van a estar trabajando en
1:47:52general de manera directa con la base de
1:47:54datos. Fíjense que no por esto ya no
1:47:57tiene que ver en sí con bases de datos
1:47:59en particular, pero eh eh funciona más o
1:48:03menos al mismo nivel. Imagínense que
1:48:05ingenieros científicos y demás que eh
1:48:09personas que trabajan con estadísticas
1:48:11que no no no están estudiando una
1:48:14carrera de programador y demás, muchos
1:48:16se lanzaron a aprender. ¿Qué lenguaje de
1:48:18programación?
1:48:24Python.
1:48:25Python. Sí. Python. ¿Por qué?
1:48:31Porque un Excel seguramente les quedará
1:48:34corto, no les no le dará todas las
1:48:37herramientas matemáticas que necesitan o
1:48:39estadísticas que necesitan. Entonces,
1:48:40necesitan ir a algo mucho más flexible,
1:48:43es decir, necesitan acceder a un
1:48:44lenguaje de programación, ¿sí? que es un
1:48:47lenguaje de programación que se adapta
1:48:49bien, bastante bien a las necesidades
1:48:51que ellos tienen. Lo mismo sucede con
1:48:53aquellas personas que no tienen que ver
1:48:56necesariamente con la rama de
1:48:59informática, programación o lo que sea,
1:49:01pero que quizás les convenga más
1:49:04aprender, por ejemplo, un lenguaje SQL
1:49:08y empezar a acceder a la base de datos
1:49:09que estar dependiendo de un tercero para
1:49:11que le haga las interfaces, ¿se
1:49:13entiende?
1:49:16Entonces, a eso se refiere con usuarios
1:49:18avanzados.
1:49:21¿Comprendido?
1:49:24Sí, profe, gracias.
1:49:25Bueno, bueno, bueno. Listo. Eh, vayamos
1:49:29entonces a eh
1:49:33las características o las ventajas,
1:49:36mejor dicho,
1:49:40de
1:49:41las bases de datos. Sí. Y acá esta parte
1:49:45les voy a pedir que yo voy muy por
1:49:47arriba les voy a voy a hablar sobre el
1:49:49tema. Si alguien me me quiere me me pide
1:49:52una explicación, no hay problema con
1:49:53eso, pero esto después quiero que lo
1:49:55vean por su lado. Sí, esto seguro que si
1:49:58hay preguntas en el examen van a entrar
Características de las BD
1:50:00cosas sobre esto, ¿sí? Así que ténganlo
1:50:03en cuenta. Eh, bueno, ventajas de las
1:50:07bases de datos. Entonces, cuando
1:50:08hablamos de ventaja de la base de datos,
1:50:09nos referimos por un lado al control de
1:50:12la redundancia. Sí,
1:50:15estábamos hablando esto siempre cuando
1:50:17hace cuando está cotejando esta parte en
1:50:20general la contrasta con la con
1:50:25archivos, ¿sí? Con tener archivos eh
1:50:28sencillos, digamos. Sí. Entonces, cuando
1:50:31una base de datos debe estar preparada,
1:50:34el hecho de usar una base de datos sí o
1:50:36sí tiene que estar preparada para
1:50:38manejar la eh la redundancia que puede
1:50:41llegar a existir eh cuando nosotros
1:50:44vamos volcando datos en la misma. ¿Sí?
1:50:47Entonces, ¿recuerdan el ejemplo que hoy
1:50:49les habíamos les había mencionado
1:50:52respecto de que, por ejemplo, podían
1:50:54tener duplicado, sí, el registro de
1:50:56alumnos, sí, en biblioteca, en alumnado,
1:51:00en cooperadora, en tesorería, vamos a
1:51:03suponer, ¿sí? Entonces hace que haya un
1:51:08desperdicio de espacio, ¿si? Y una
1:51:11duplicación de del trabajo para mantener
1:51:14eso actualizado. Sí.
1:51:17Entonces,
1:51:19las bases de datos lo que permiten es
1:51:23mitigar el
1:51:26mitigar esta la existencia de estos
1:51:28problemas. Está obviamente cuando
1:51:31nosotros tenemos datos repetidos es lo
1:51:33mismo que cuando tenemos código repetido
1:51:35en nuestra aplicación. ¿Qué pasa cuando
1:51:37cambia?
1:51:40Tenemos que ir a cambiar a todos los
1:51:41lugares. Sí. en donde en donde hicimos
1:51:44copypaste de ese de ese código.
1:51:47Entonces, por eso así como cuando
1:51:50nosotros codificamos, obviamente se
1:51:52recomienda hacer reutilización de código
1:51:54y demás a través de diferentes técnicas
1:51:56que vimos. Cuando hablamos de datos, se
1:51:59recomienda el uso de base de datos
1:52:00porque me permite hacer control de esta
1:52:02redundancia que puede surgir por primero
1:52:06eh primero por no manejar bien los
1:52:09archivos, es decir, desperdicio espacio
1:52:12de almacenamiento, que hoy en día eso es
1:52:15muy secundario porque realmente el
1:52:17almacenamiento está muy barato. Pero las
1:52:20dos cuestiones principales en realidad
1:52:22tiene que ver con que
1:52:24si yo tengo duplicados archivos que
1:52:26cargan lo mismo, tengo que duplicar el
1:52:29trabajo. Es decir, si en alumnado tienen
1:52:31que cargar estudiante y en biblioteca
1:52:34tienen que cargar un estudiante, lo
1:52:35tienen que hacer dos veces. en vez de
1:52:36hacerlo una sola ve y que se actualice
1:52:38en ambos lugares.
1:52:41Y si lo tienen que cargar en dos lugares
1:52:43diferente, lo tercero que puede surgir
1:52:46es que haya inconsistencia entre esos
1:52:49valores, es decir, que uno lo cargue con
1:52:50un mail y el otro con otro, ¿sí? o que
1:52:53uno cargue el DNI con un número y en
1:52:56otro lugar esté cargado correctamente.
1:53:00Entonces, bueno,
1:53:01por eso
1:53:02eh
1:53:02deberían tener relaciones por eso las
1:53:04tablas, digamos, del alumno
1:53:06en los archivos las relaciones no
1:53:07existe, olvidate, eso lo tien que hacer,
1:53:09lo tenés que hacer a nivel de
1:53:11aplicación, por eso es que esto ya se da
1:53:14por sentado en las bases de datos, ¿sí?
1:53:17O sea, teniendo base de datos lo puedo
1:53:20hacer mal igual, ¿sí? Pero se supone que
1:53:23la base de datos te predispone a que
1:53:25hagas bien el trabajo,
1:53:28¿correcto? Entonces,
1:53:30a este tipo de redundancia
1:53:33se lo denomina redundancia, no es
1:53:36redundancia controlada.
1:53:39Sí, perdón, mejor dicho, me rectifico.
1:53:43Los problemas que recién le estabas los
1:53:46problemas que recién le estaba
1:53:47mencionando, ¿sí?, de duplicación del
1:53:50trabajo, de que pueden estar mal
1:53:51cargados los datos, etcétera. Eso se
1:53:53denomina redundancia no controlada
1:53:55porque es redundancia
1:53:59que uno que no es deseable, ¿sí?
1:54:04Que sucede porque están mal hechas las
1:54:07cosas.
1:54:08Entonces, la pregunta que les queda a
1:54:10ustedes es, ¿en qué casos
1:54:13conviene que haya redundancia?
1:54:17Okay, eso les queda a ustedes después
1:54:20para comentarme la próxima clase y
1:54:22demás. Ahora tenemos una actividad sobre
1:54:24eso.
1:54:27Bien, lo segundo es restricción de
1:54:30accesos no autorizado. Hoy lo habíamos
1:54:32mencionado cuando
1:54:36eh cuando hablábamos de administración,
1:54:40el tema de seguridad es esencial. Y acá
1:54:42les pido dos cositas.
1:54:45Cuando hablamos de restricción de acceso
1:54:48no autorizado, ¿qué dos conceptos
1:54:50tenemos que traer a colación?
1:54:59¿Cómo sabemos que alguien está
1:55:00autorizado a algo?
1:55:02¿Permisos?
1:55:03Bueno, permisos. Ahora, la autorización,
1:55:06¿con qué tiene que con qué tiene que
1:55:08ver? ¿Con con qué concepto?
1:55:11La
1:55:12autorización.
1:55:13La seguridad. con la autenticación
1:55:16podría ser.
1:55:17Exactamente. Y la autenticación, ¿para
1:55:19qué existe?
1:55:23Eh, para validar algún, bueno, algún
1:55:26usuario, alguien que quiera acceder.
1:55:28Exacto. Entonces, por un lado,
1:55:30autenticación
1:55:32me dice, me debe verificar que la
1:55:36persona
1:55:38si que está ingresando al sistema es
1:55:41quien dice ser.
1:55:43Sí,
1:55:46y
1:55:48eso tendría que hacer para las clases. Y
1:55:51la otra, la autorización
1:55:54es que para determinada persona que ya
1:55:58tenga autenticada, ¿qué
1:56:01cosas tienes autorizadas a realizar? Sí,
1:56:05en mi base de datos.
1:56:09Okay,
1:56:11entonces tenemos esas dos cuestiones,
1:56:13autenticación y autorización.
1:56:18Bien.
1:56:21Bueno, eh el otro punto es dice si
1:56:26proporcionar almacenamiento persistente
1:56:28para el objeto de programa. Bueno, esto
1:56:31evidentemente
1:56:33si se refiere a básicamente cuando yo
1:56:37estoy utilizando un una aplicación
1:56:41orientada a objetos, ¿cómo hago para
1:56:43guardar esos objetos
1:56:47en una base de datos?
1:56:50¿Sí? Entonces ahí viene una colación,
1:56:53una manera directa y fabulosa sería que
1:56:55las bases de datos orientados a objetos
1:56:57sean superpopulares.
1:56:59Sí,
1:57:01lamentablemente no lo son.
1:57:05Entonces, ¿qué es lo que sucede?
1:57:08¿Qué problema existe ahí?
1:57:17Nosotros dijimos que estamos por
1:57:19trabajar con qué tipo de base de datos
1:57:22relación.
1:57:24Base de datos relacionales. Sí.
1:57:28Eh, Mauricio, eh cuando cuando hables,
1:57:32por favor, deja habilitado el micrófono
1:57:33un milisegundo más porque se escucha la
1:57:35mitad de lo que de lo que
1:57:38Ah, dale, profe.
1:57:39Ya. Eh,
1:57:42lo entonces sí estamos hablando de base
1:57:44de datos relacionales. Sí. Bueno, y qué
1:57:48cuál es el problema que creo que ya los
1:57:49mencionamos antes, pero ¿cuál es el
1:57:51problema que existe ahí?
1:57:58Yo en mi en mi aplicación hay objetos
1:58:00tiene que tenés que transformar la
1:58:02información, separarla en distintos
1:58:04tipos.
1:58:06Exactamente. Está.
1:58:08Entonces ahí es donde vienen. Si yo sigo
1:58:12trabajando con base de datos
1:58:13relacionales, en el medio yo tengo que
1:58:15transformar la mano. Si o utilizar una
1:58:20herramienta
1:58:21M
1:58:22de mapeos.
1:58:24Exactamente. Bien. El problema ese que
1:58:27existe, que nosotros tenemos objetos por
1:58:31un lado y relaciones por el otro se
1:58:35llama un problema de impedancia de
1:58:37modelos.
1:58:39¿Sí? Es decir, quiero quiero poner es
1:58:43como decirle quiero enchufar un enchufe
1:58:45de dos patitas redondas en uno de tres
1:58:47patitas planas. Sí, no se puede. Tengo
1:58:51que adaptar. un adaptador.
1:58:53Necesito un adaptador. Ese adaptador es
1:58:55ORM, el herramiento RM o lo tengo que
1:58:57hacer yo con unos cables. Sí,
1:59:01como verán, el ejemplo también sirve
1:59:03para que ellan no lo hagan tanto a mano.
1:59:05Si lo van a hacer, tienen que saber
1:59:07hacerlo. Sí. ¿Cuál es el problema que
1:59:10surge en el medio? es que eh
1:59:15está bien hoy los servidores y demás
1:59:18tienen la suficiente velocidad como para
1:59:20acceder a eso, pero es otra capa más
1:59:25que estoy colocando en el medio.
1:59:29¿Se entiende? Y obviamente eso, ¿qué
1:59:31sucede con esa cuestión?
1:59:36Se hace más lento todo.
1:59:38Exacto. Hace un poco hace un poco más
1:59:40lento todo. Hace un poco más lento.
1:59:42También genera una dependencia porque
1:59:43depende de los desalladores de
1:59:45sangramienta para mantener la seguridad.
1:59:49Bueno, exactamente, exactamente.
1:59:53Es un muy buen análisis. Bien. Eh,
1:59:58bueno, el otro punto es
2:00:02proporcionar estructura de
2:00:03almacenamiento y técnicas de búsqueda de
2:00:06procesamiento. Este es un poco largo el
2:00:08ítem. Eh,
2:00:12y búsqueda de procesamiento de consultas
2:00:14eficientes. Bueno, todo esto se refiere
2:00:16a que básicamente estructuras más ¿Por
2:00:20qué? ¿Por qué es tan larga la cuestión?
2:00:22Porque por un lado son estructura y por
2:00:23el otro técnicas y están se juntan una a
2:00:28veces coinciden. ¿Sí?
2:00:31Eh, ¿cuál es el ejemplo directo?
2:00:34Diciendo lo específico, por ejemplo,
2:00:36para el acceso a una a una tabla en
2:00:38particular, una tabla que voy a estar
2:00:40leyendo constantemente,
2:00:43poner una estructura auxiliar que, por
2:00:44ejemplo, se conoce como índice. Sí,
2:00:49esto ya lo vamos a ver. tiene de manera
2:00:52conceptual y haciendo una analogía se
2:00:54llaman así por los índices de los
2:00:56libros. Sí, decir uno quiere, imagínense
2:01:00en un libro no digital, sí, el libro
2:01:02clásico de papel, uno quería quiere
2:01:05buscar una información, tiene 1000
2:01:08páginas en libro, pueden ir si quieren
2:01:10pasando las hojas, pero van a tardar un
2:01:13tiempo, entonces lo que conviene en ese
2:01:15caso era un índice, lo lleva a la página
2:01:17adecuada y se ahorra muchísimo tiempo en
2:01:19la búsqueda. El mismo concepto se usa en
2:01:22índices de
2:01:25base de datos. Sí. es una estructura
2:01:27separada de las tablas que voy a
2:01:29utilizar
2:01:31para hacer el acceso más rápido. Y a eso
2:01:34es uno de los ejemplos de eh de este
2:01:38punto. Okay, hay otros más que los dejo
2:01:40para que ustedes los lean.
2:01:43Bien,
2:01:50bueno, uno es eh el otro es suministro
2:01:53de múltiples interfaces con los
2:01:55usuarios, muy vinculado a lo que
2:01:57habíamos visto antes, nada más que esto
2:01:59lo ve levemente desde el punto de vista
2:02:01más de la interfaz que del usuario en
2:02:03sí. ¿Está con qué me refiero a esto?
2:02:08con que eh dependiendo del tipo de
2:02:10usuario y del tipo de aplicación, mi el
2:02:14acceso a mi base de datos lo voy a tener
2:02:15que hacer.
2:02:18Y esto para que lo diferencie porque en
2:02:20ese aspecto por ahí el libro mezcla un
2:02:22poquito las cuestiones y creo, considero
2:02:25humildemente que debería separarse así.
2:02:28Eh, la las aplicación por un lado habla
2:02:32del acceso a través de aplicaciones que
2:02:34pueden ser aplicaciones de escritorio,
2:02:36web, es muy difícil eh mejor dicho, si
2:02:40son si estamos hablando aplicaciones en
2:02:42general, pueden ser móviles. ¿Sí? Y por
2:02:45el otro lado habla de eh las interfaces
2:02:50de usuarios, pero las que vienen ya
2:02:53preparado, las que se usan de manera
2:02:55directa con la base de datos. Es decir,
2:02:58e aquellos que trabajaron con My SQL,
2:03:02no sé si se tienen un ejemplo a mano
2:03:04para darme.
2:03:08El PHP My Admin. Puede ser
2:03:10el PHP My Admin, que es de qué tipo?
2:03:16Web
2:03:16es web y y conocen alguno que sea
2:03:19escritorio para my SQLQLCH.
2:03:25El workbench, exactamente
2:03:27Pro también.
2:03:28Bien.
2:03:29Valentina Studio
2:03:31y existen, perdón, Emilio.
2:03:34Valentina Studio uso yo.
2:03:36Ah, mira, ese no lo conocía.
2:03:39Bueno, después en todo caso est
2:03:40es muy bueno.
2:03:41Después estaría en todo caso bueno que
2:03:43en algún momento si tenemos tiempo le lo
2:03:47muestres un ratito.
2:03:49Sí, sirve para todo en realidad, no solo
2:03:51paraales.
2:03:54Bien.
2:03:54Exacto.
2:03:56Perfecto. Eh,
2:03:58bueno, SQL,
2:04:00¿cómo
2:04:01Hey? SQL trae.
2:04:03E es, vos sabes que ese ese lo tenía
2:04:05el heo. Yo lo usaba mucho, pero para
2:04:08Linux no viene.
2:04:10Ajá. O sea, e ese es el que tenía en la
2:04:12lengua y no me estaba saliendo. He s
2:04:17¿Qué ibas a decir, Pablo?
2:04:20Eh, cuando te instalas Lara arabal para
2:04:22utilizarlo con la Arabel te trae ya como
2:04:26base de datos de prueba G SQL.
2:04:29Exacto. Eh, en Windows yo utilizaba
2:04:33mucho He SQL y era muy bueno, eh, porque
2:04:36tenía muchas ventajas a comparación de
2:04:39de otros. Por ejemplo, el Wbench es un
2:04:41poquito más complejo utilizarlo, pero el
2:04:43Valentina Studio después de utilizarlo
2:04:45es como muy similar al Heidi.
2:04:48Bien. Y bueno, por ejemplo, de el lado
2:04:51de eh SQL de Microsoft SQL Server, por
2:04:55ejemplo, tienen el administrador que
2:04:58viene con el que a ver, hoy en día se
2:05:02bajan por separado, pero es una
2:05:04herramienta que viene para utilizársela
2:05:07con SQL Server.
2:05:09Eh,
2:05:11y eh además, por ejemplo, que nosotros
2:05:14estuvimos viendo en Visual Studio,
2:05:16Visual Studio tiene entre muchas
2:05:18herramientas tiene una herramienta para
2:05:19manejar de manera sencilla SQL Server
2:05:22también. Sí. O sea, que ahí tenemos
2:05:25muchos ejemplos. Y por el otro lado,
2:05:27aquel que le gusta más la consola o
2:05:30simplemente no es que le guste más, sino
2:05:32que hay algunas cuestiones que son más
2:05:34convenientes hacerla por consola, es la
2:05:36que está disponible siempre.
2:05:39Sí.
2:05:40Eh, para ser usada, ¿no? Eh, y
2:05:44obviamente eh al todo esto de base tiene
2:05:48un lenguaje que en las bases de datos
2:05:50relacionales el lenguaje SQL. ¿Sí?
2:05:55Y bueno, eso después vamos a seguir
2:05:57agregando más cosas. Estamos. Entonces,
2:06:00eso tiene que ver con las interfaces.
2:06:02Después dice representación de vínculos
2:06:04complejos entre los datos. Sí.
2:06:08Esto no tiene mucho misterio y tiene que
2:06:11ver con el hecho de poder de qué manera
2:06:14la base de datos o el sistema gestor de
2:06:15base de datos viene preparado para poder
2:06:17representar esas relaciones, esos
2:06:19vínculos que yo hago en un diagrama.
2:06:22¿Sí? O sea, yo digo, "Bueno, mi tabla
2:06:24estudiantes o mi entidad, vamos a
2:06:27después vamos a ver cuáles son las
2:06:28diferencias. Mi entidad de estudiante
2:06:30está vinculada con mi entidad material.
2:06:35Sí. eh o mi tabla materia. Entonces, ¿de
2:06:39qué manera yo represento ese vínculo?
2:06:43Y vínculo un poco más complejo, cuando
2:06:45ya hay varias tablas involucradas, una
2:06:48tabla tiene vínculos a más de a a muchas
2:06:51otras, digamos.
2:06:53Y esto ni hablar de si por ahí se trata
2:06:56de eh una base de datos orientada a
2:06:59objetos, ¿sí? que por ahí además de
2:07:02representar vínculos específicos, tiene
2:07:05que también representar concepto de
2:07:08herencia, que es esencial para que se
2:07:10considere base de datos orientado a
2:07:12objetos. ¿Sí?
2:07:15Eh,
2:07:19bueno, eso cumplimiento de las
2:07:21restricciones de integridad. Esto es
2:07:23fundamental en una base de datos
2:07:26referencial.
2:07:28Sí.
2:07:29Eh,
2:07:31ya vamos aondar más sobre esta cuestión
2:07:33que, por ejemplo, alguna algunas cosas
2:07:37ya habíamos hablado hoy. Les doy una que
2:07:40tiene que ver con la integridad
2:07:42referencial, ¿sí? Es decir, vamos a
2:07:46suponer que el alumno se inscribió a una
2:07:48materia
2:07:50y resulta que eh después esa materia eh
2:07:55resulta que estaba mal escrita y el
2:07:57administrador decide eliminarla. Bueno,
2:08:00eso generaría un conflicto ahí porque si
2:08:02estaba inscripto significa que el alumno
2:08:05dependía esa materia y si la llega si
2:08:07alguien llega a borrar esa materia
2:08:10va a haber un problema de de integridad
2:08:12allí. Esas son las restricciones de
2:08:14clave foránea.
2:08:16Exactamente, son las restricciones de
2:08:18clave foránea. Es la manera en que se
2:08:20llevan a cabo. Eh, pero bueno, ahí, ¿qué
2:08:24vamos a tener que hacer? Eh, vamos a
2:08:27tener que ver qué estrategia vamos a
2:08:28usar. Hoy nombraron por ahí el uso de el
2:08:31uso de actualización en cascada o
2:08:34borrado en cascada o o lo que fuera.
2:08:36Alguna estrategia hay que utilizar para
2:08:39eh poder
2:08:41sobrellevar esa cuestión.
2:08:43Sí, estas cuestiones las nombro así muy
2:08:46por arriba, pero ya no se preocupen que
2:08:48vamos a entrar bien en detalle después.
2:08:51Eh, y el último que creo que yo tengo
2:08:54acá es el de respaldo y recuperación.
2:08:58Sí.
2:09:00Bueno, esto es una de las cuestiones que
2:09:01estaban hablando hoy de la fiabilidad de
2:09:05la información, es decir, que ante
2:09:06cualquier problema que pueda surgir
2:09:09tener una un respaldo de de esos datos,
2:09:13hay diferentes maneras de hacerlos y a
2:09:16diferentes niveles de granularidad.
2:09:18Algunos ya vienen, digamos, uno puede
2:09:21hacerlo a nivel quizás de sistema
2:09:23operativo o de hardware y decir y tener
2:09:26un a ver qué se les ocurre con respecto
2:09:29a tener algo a nivel de hardware o de
2:09:31sistema operativo.
2:09:33¿Qué podrían tener ahí?
2:09:37Y tener una copia en todo momento en
2:09:39otro disco, por ejemplo.
2:09:40En otro servidor.
2:09:42Bueno, pero y si y si no fuera así en un
2:09:45conectado, ¿qué podríamos tener?
2:09:47Discos despejados.
2:09:48Discos despejados. Exactamente. Sí. O
2:09:51sea, eso es una forma eh de de tenerlo.
2:09:54La otra es sin tener eh usar diferentes
2:09:57dispositivos que pueden ser extraíbles e
2:09:59ir haciendo backup o hacer copias
2:10:02directamente en otro disco que tenemos
2:10:04conectado, no espejado, pero podemos ir
2:10:07sincronizando cada tanto e ir haciendo
2:10:10eh respaldos allí.
2:10:14La historia no termina ahí porque eh
2:10:18si se hace bien el trabajo cada tanto,
2:10:21todo esto que yo le estoy nombrando muy
2:10:22alegremente realmente lleva mucho
2:10:24trabajo y por eso que muchas veces la
2:10:27gente no lo hace. Sí. Eh,
2:10:31hay que ir probando que los respaldos
2:10:33que vayas haciendo vayan sirviendo, ¿se
2:10:36entiende?
2:10:38O sea, no sea que esté haciendo
2:10:39respaldo, en algún momento se corrompió
2:10:41algo y no me sirva de nada. después
2:10:42cuando lo necesites.
2:10:45Okay. Entonces, la idea de eso es eh
2:10:49justamente ir controlando que hacer
2:10:52recuperaciones de prueba y después
2:10:56cuando necesita realmente tener ahí la
2:10:59información, los datos disponibles.
2:11:03Bien,
2:11:06preguntas hasta acá.
2:11:12En caso de que no exista ese respaldo,
2:11:15digamos, eh si se borra, no no hay forma
2:11:19de recuperar.
2:11:21Si no ten si no la estrategia que
2:11:25dijimos, no no va a tener forma de
2:11:27recuperar. No,
2:11:29no,
2:11:33no sé. Bueno, dependerá mucho de la
2:11:37dependerá mucho del tipo de error que
2:11:39tengas, ¿no?
2:11:42Pero
2:11:43en definitiva la respuesta es, ¿no?
2:11:45digamos, ya o tenés que algo, tenés que
2:11:48alguna estrategia explícita tenés que
2:11:50seguir, digamos,
2:11:52eh, no lo que normalmente eh lo que en
2:11:55una aplicación
2:11:57no estoy hablando así de aplicaciones
2:11:59monstruosas ni nada porque de hecho no
2:12:01sé como cada cada uno lo está llevando a
2:12:04cabo, ¿no? Pero normalmente lo que se
2:12:06hace es hacer eh backups diferenciales.
2:12:11Sí.
2:12:13Esto, ¿qué implica? que no no es que
2:12:15estás haciendo un backup, no es que vos
2:12:17en cada momento decís llevo toda la base
2:12:19de datos y la vuelco cada rato, ¿sí?
2:12:23Sino que cada tanto lo que hago es
2:12:25cambiar lo que
2:12:28eh mejor dicho hacer backup de lo que
2:12:30cambió. ¿Se entiende?
2:12:34Entonces, de esa manera, eh de esa
2:12:37manera voy teniendo cada tanto los
2:12:41asegurados los datos que necesito y no
2:12:44pasa tanto tiempo entre un backup y
2:12:46otro, ¿se entiende? Tiene sus pro y sus
2:12:48contras, que ya lo conversaremos.
2:12:51Okay.
2:12:53Okay. Bueno,
2:12:58tarea para ustedes.
2:13:01Sí, esto seguramente después también una
2:13:04vez que termine, por favor, les pido que
2:13:06vuelquen la info que vimos hoy, lo que
2:13:08estuvimos comentando en el foro, por lo
2:13:11menos algunos de ustedes allí. Y lo que
2:13:14les voy a pedir después que ustedes
2:13:15también analicen es parte de la lectura
2:13:18del material y demás que tienen y es
2:13:20parte de este de esta forma de trabajo
2:13:22que vamos a ir teniendo de no estar
2:13:24conectados hasta las 11. Hoy mi idea era
2:13:26estar conectado hasta las 9:30 9 sí,
2:13:30pero bueno, no entendimos un poco más,
2:13:31por eso no les quise dar una hora de
2:13:33entrada.
2:13:34Eh,
2:13:37lo que quiero es que elijan dos
2:13:38ventajas, las que usted quiera, si
2:13:40quieren las más importantes, las que más
2:13:41le gustan, las que más fácil les
2:13:43parezcan. Eligan el criterio que quieran
2:13:47y ejemplifíquenla. No, no quiero que me
2:13:50den una definición solamente si quieren
2:13:53poner decir qué es lo que significa
2:13:55bárbaro. Pero lo que quiero es que den
2:13:57un ejemplo que ustedes consideren,
2:13:59búsquenlo de internet donde quieran,
2:14:02vinculado a esa eh a esa ventaja. Sí. Y
2:14:09además que en ese ejemplo
2:14:13aparezcan alguno uno o más roles de los
2:14:16que vimos recién.
2:14:18¿Se
2:14:19comprende el la actividad o no?
2:14:22Ventajas de los gestores de de base de
2:14:24datos.
2:14:25Esto que estuvimos viendo recién, estas
2:14:26ocho cositas, estos ocho íems que
2:14:29estuvimos viendo recién, elijan, tomen
2:14:32dos.
2:14:34Sí, tomen dos de esto. Vamos a suponer.
2:14:38Elegí
2:14:40cumplimiento de restricciones de
2:14:41integridad. Sí, sobre cumplimiento de
2:14:44restricción e integridad.
2:14:46Doy un ejemplo,
2:14:48un elaborado,
2:14:50¿sí?
2:14:52Y digo, bueno, en este ejemplo, en esta
2:14:55situación que puede estar vinculada a la
2:14:58restricción de integridad,
2:15:00¿sí? Puede ser un error, puede ser cómo
2:15:02establecerla, además cómo se diseña.
2:15:05Ustedes eligen además un rol, es decir,
2:15:08quién va a ser el actor involucrado en
2:15:11ese en esa situación.
2:15:14¿Se comprende? Entonces ahí aunamos las
2:15:16ventajas con los roles que vimos.
2:15:20Es una actividad meramente conceptual,
2:15:22pero quiero que la apliquen a algo que
2:15:24ustedes suponen, ¿sí? Aquellos que no
2:15:27tuvieron contacto todavía con esto, que
2:15:29suponen que puede existir en la práctica
2:15:33diaria vinculada con estas ventajas.
2:15:37Bien, se comprendió, chicos.
2:15:39Perfecto.
2:15:39Okay.
2:15:41Sí, profe, ¿dónde los oiríamos?
2:15:43Eh, yo después eh voy a ver, quizás lo
2:15:45conversemos directamente o si no yo les
2:15:48voy a habilitar una actividad durante la
2:15:51semana. Sí.
2:15:55Perfecto, prof.
2:15:55Profe, muchas gracias.