Free YouTube Transcribe

Video transcript

BD - Clase 02 - Conceptos, Modelos y Arquitecturas

Germán · 12,299 words · 56 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Repaso Ventajas

0:01[Música]

0:07[Aplausos]

0:08tiempo que son iguales, pero pueden

0:11tener diferentes en en columnas

0:14diferentes

0:15eh valores.

0:17En en ese en ese caso no se podría saber

0:20cuál es el correcto.

0:21Entonces, a eso cómo lo llamamos o cómo

0:24se lo puede llamar ese problema.

0:28Redundancia no controlada,

0:30¿no? Eso es redundancia no controlada,

0:32está bien, pero ese efecto colateral,

0:37inconsistencia de los datos.

0:40Inconsistencia de los datos. Te escucho

0:42muy despacito, no sé por qué será, pero

0:44sí puede ser eso. Nos referimos con

0:47inconsistencia de los datos. ¿Por qué?

0:49Porque acá se refiere a que en dos

0:52lugares distintos tenemos cargada la

0:54misma información.

0:57está. Entonces, e

1:01cuando hablamos de eso, cuando sucede

1:04eso, puede ser que eh puede ser que eh

1:08como mínimo tengamos duplicado esa ese

1:11esos datos, con lo cual perdemos espacio

1:14de almacenamiento. Eso habíamos dicho

1:16que hoy en día en menor escala, en una

1:19escala menor,

1:22no es gran problema. ¿Sí? ¿Por qué?

1:24Porque hoy en día el almacenamiento está

1:26muy barato. Pero así todo los otros dos

1:30problemas, ¿cuáles serían? Uno lo

1:32nombraron que es la inconsistencia, es

1:34decir, puedo llegar a tener, por

1:36ejemplo, dos direcciones eh distintas,

1:40dos correos diferentes para la misma

1:42persona. Sí. Y la otra que no nombramos

1:47todavía,

1:49lo que vamos a tener es duplicación del

1:51trabajo. ¿Sí? Porque al tener, por

1:53ejemplo, dos lugares en donde actualizar

1:56los mismos datos, vamos a tener que

1:57hacerlo dos veces,

2:00¿sí?

2:01Ya sea la misma persona, ¿sí? O dos

2:05personas distintas, con lo cual la

2:06cantidad de obras hombres se termina

2:09duplicando. ¿Sí? Entonces, todo esto que

2:13dijimos son desventajas, por supuesto.

2:16¿Okay?

2:18Entonces, esto que vimos es redundancia

2:20de qué tipo

2:26redundancia no controlada.

2:27Redundancia no controlada, ¿sí? En

2:29definitiva, no deseada. Okay.

2:34Por otra parte, sí podemos tener la

2:38redundancia no siempre es mala. Sí.

2:42a esa redundancia que la hacemos a

2:44propósito, se la llama redundancia

2:47controlada o redundancia deseada.

2:51Sí. Y se hace con qué

2:54propósito

2:56aunque sea uno, por ejemplo, tablas en

2:59este caso

2:59para cotejar,

3:02mejorar el rendimiento de la consulta,

3:03puede ser

3:05la persistencia de datos, ¿no es así?

3:08Bueno, ahí tenemos ahí me nombraron creo

3:11que ya todos los que podrían ser por un

3:13lado mejorar qué el rendimiento, o el

3:16funcionamiento de nuestra base de datos.

3:19Sí, porque a veces es necesario

3:25duplicar la información para que el

3:27acceso sea más rápido. Sí, cuando

3:30tenemos mucha concurrencia.

3:32Sí, siempre y cuando esa esa duplicación

3:36justamente esté controlada, esa

3:37redundancia esté controlada. ¿Sí? Y por

3:41el otro lado

3:43tenemos eh,

3:47¿cómo se llama? Eh, el tema de la

3:49confiabilidad,

3:52¿sí?

3:53que es popularmente tiene que está

3:56vinculado a tener redundancia por si

3:59pasa algo con el resto de los datos. Es

4:02decir, tenemos varios servidores,

4:05¿sí? Con la misma con los mismos datos.

4:08Entonces, si se cae uno, no hay

4:10problema, redireccionamos las consultas

4:12al otro, a los restantes.

4:16Entonces, a eso lo denominamos

4:17redundancia controlada. Sí, puede ser

4:19por performance, ¿sí? Y puede ser por

4:23confiabilidad,

4:25¿sí? Para evitar caídas.

4:28Estamos,

4:31por ejemplo, eso sería una posibilidad

4:36lo que están mencionando en el chat.

4:39Bien, entonces esto es algo que todas

4:42las ventajas en sí seguramente en algún

4:44momento se las pediré. Ya habíamos

4:46hablado esta, pero quería dejar en claro

4:49esta lo que tiene que ver con la

4:52redundancia en sí. Eh, bueno, si no hay

4:57preguntas de

4:59lo que se lo que se habla en espejo es

5:01cuando tenemos eh vamos a decir

5:03configurado el hardware en forma de

5:05discos, por ejemplo, ride y esas cosas.

5:08Exactamente,

5:09exactamente a eso se refiere. Y eh

5:13obviamente hay varias

5:15pensé que había otro tipo de despejado

5:18que no sea eso.

5:20No, no, a eso es básicamente a eso se

5:23refiere, pero ahí más que nada estamos

5:25hablando no es tanto una técnica de base

5:28de datos en sí, sino que ya es más a

5:32nivel de sistema operativo y hardware,

5:34¿no?

5:34Claro, de hardware. Sí, sí, sí. Por eso

5:36le preguntaba.

5:37Mm. Sí, sí.

5:39Eh, acá, a ver, como para mencionar,

5:45se les conocen alguna por ahí, los que

5:48ya usaron conocen alguna técnica que

5:51sirva más vinculada de la base de datos

5:54que sirva para

5:56justamente tener duplicados los datos

5:59por por confiabilidad,

6:03sinceramente, no

6:07escucharon hablar en algún momento de la

6:09replicación.

6:17La replicación de bases de datos es

6:22conocida en el sentido de decir que yo

6:25voy a tener

6:28duplicados

6:30una o más veces eh la misma información

6:33o una parte de mi base de datos en en

6:37los cuales yo puedo tener, por ejemplo,

6:40un esquema maestro esclavo. Sí.

6:44en el sentido de que decir, voy a tener

6:47una tabla, una tabla, una base de datos

6:50principal y se supone que en el esclavo

6:53yo tengo una un espejo o una sección, un

6:58subconjunto de tablas, vamos a decir, de

7:01esos datos

7:03que yo sé que si yo digo que voy a hacer

7:05toda la base de datos, voy a decir,

7:07bueno, esa base de datos va a estar

7:09duplicándose, sincronizándose, se llama.

7:12Sí. voy a tener una sincronización entre

7:14esas bases de datos cada x cantidad de

7:17tiempo. Sí, eso me permite a mí, por

7:21ejemplo, tener un esquema, tener un que

7:24tenga un doble sentido.

7:26Sí, por un lado, al tener un maestro,

7:31yo sé que yo cuento con ese como la

7:33fuente principal en general, donde yo

7:36voy a enviar todas mis actualizaciones.

7:39Sí.

7:41Y los esclavos van a ser en general

7:43donde yo voy a hacer la mayor cantidad

7:45de lecturas.

7:47Sí, obviamente este esquema depende si

7:50mi base de datos va a estar preparada

7:54para hacer más escrituras que lectura o

7:57está. Hay que fijarse bien si me sirve

8:01para eso. La replicación también se da

8:04cuando yo tengo, por ejemplo, un esquema

8:05de sucursales. Hoy en día fue mutando el

8:08uso de esto, pero en un principio se

8:11daba, por ejemplo, también al margen de

8:13esta cuestión para decir, bueno, yo

8:15tengo en mi empresa muchas sucursales

8:19y digo, en cada sucursal yo tengo una

8:23copia o parte de mi base de datos.

8:27pueden ser los registros que le

8:28interesan a esa sucursal nada más.

8:31Entonces, lo que hago cada tanto esa

8:33sucursal envía, ese es otro esquema,

8:36envía las actualizaciones al maestro.

8:40Sí, ahí ya no se hace tanto por eh por

8:45performance, sino por una un tema de

8:48distribución de los datos en sí.

8:51Okay.

8:53Hoy en día con internet y en la

8:56disponibilidad de hardware y la

8:58disponibilidad infraestructura, por ahí

9:00cambió un poco ese enfoque, ¿sí?

9:02Entonces está todo mucho más a su vez

9:05centralizado,

9:07pero dentro de esa centralización

9:09también existen duplicación de datos

9:11para mantener la confiabilidad, la

9:14performance, etcétera. Sí. Bueno, eso es

9:17un poco a lo que se refiere con

9:19replicación, tener ese esquema que me

9:21sirve a diferentes propósitos. ¿Sí?

9:27Este era el ejercicio que ustedes tenían

9:28que hacer. Ahí habíamos visto uno,

9:31algunos de ellos. Sí.

9:34Y ahora lo que me quedó pendiente de

9:36esta diapositiva es básicamente cuándo

¿Por qué no usar BBDD?

9:40no usar una base de datos.

9:43Sí.

9:45Eh, y en realidad las alternativas de

9:49cuándo no usar una base de datos son

9:51pocas,

9:53porque

9:55en un principio el no uso de una base de

9:58datos estaba muy vinculado al costo que

10:01tenían. Sí, pero hoy en día tenemos

10:05disponible bastantes alternativas

10:08abiertas gratuitas.

10:10Sí. Entonces, por un lado, si el costo

10:14es un factor que

10:18para adquirir el producto en sí no sería

10:22no sería un factor decisivo. Obviamente

10:27por ahí sí el costo estaría presente

10:30entre elegir una base de datos o otras.

10:33Sí, pero cuando hablamos de elegir acá,

10:36acá se refiere a usar una base de datos

10:40o usar un enfoque de archivos simple,

10:42¿está? Entonces decimos usar, ¿por qué

10:45no usar una base de datos? porque el

10:48costo de inversión de esa base de datos

10:50o de implementación de la base de datos

10:52es elevado y no me conviene.

10:56Y en ese sentido, hoy son muy pocas las

10:59eh

11:02digamos los casos en que realmente lo

11:05pueda justificar por ese lado. Sí.

11:10Entonces está ahí como para eh como para

11:13tenerlo en cuenta.

11:16El otro punto es la simplicidad o

11:19simpleza del escenario que yo quiero

11:22usar. ¿Sí? Es decir,

11:26si yo tengo una aplicación muy simple en

11:29la cual se persisten muy pocos datos,

11:33entonces debería pensar si es necesario

11:36eh recurrir al uso de una base de datos.

11:40Porque la base de datos quiera o no,

11:42agrega una pequeña sobrecarga

11:45al eh proceso de desarrollo.

11:48Entonces, yo tengo que sopesar si esa

11:50sobrecarga del modelado de de eh, ¿cómo

11:54se llama?, de la utilización o la

11:56implementación dentro de mi dentro de mi

12:00programa, de mi aplicación, vale la pena

12:02que en la mayoría de de los casos lo

12:04vale, porque en realidad me simplifica

12:06muchas veces más el trabajo que

12:08complicármela. Sí. Entonces, si yo digo

12:11que mi aplicación es muy simple, no

12:13tengo que persistir tantos datos, los

12:15datos de persistir son básicos, entonces

12:19no utilizaría base de datos en ese caso.

12:22Sí.

12:24Lo otro

12:27tiene que ver con el desempeño.

12:30Si de nuevo necesito

12:34tener una aplicación que tiene, estamos

12:36hablando de requerimientos muy estrictos

12:38de velocidad, básicamente de tiempo

12:42real, en la cual no puedo soportar la

12:45sobrecarga que conlleva las consultas o

12:48las actualizaciones sobre una base de

12:51datos.

12:52de nuevo, porque quiera o no, hay una

12:55capa ahí agregada. Sí.

13:00Entonces, debería pensar en otro

13:02esquema, por ejemplo, en un esquema de

13:04archivos o una base de datos muy eh

13:08digamos especial o específica para lo

13:11que yo tengo que realizar.

13:15¿Por qué se supone que la base de datos

13:17ahí agregaría un componente

13:19de retardo? ¿Cuál es la cuestión?

13:26Y por los por las relaciones, por las la

13:29forma de buscar las cosas en el índice.

13:33Si hablo de una base de datos

13:35relacional, sí, si hablo por ahí tengo

13:38otro tipo de bases de datos. Por ahí las

13:40bases de datos, no SQL, que están más

13:42orientadas al a grandes volúmenes y a

13:45performance podría mejorar ese esa

13:48cuestión. Pero el tema es que recuerden

13:51que habíamos dicho que las bases de

13:52datos son de propósito

13:56general.

13:57General. Y para hacer esa para ser

14:00general

14:02indefectiblemente necesita contemplar

14:04muchos casos de uso.

14:07Sí,

14:07le agregan más capas.

14:09Claro que tienen que agregar muchas

14:12líneas de código en el medio para poder

14:14resolver ciertas cuestiones. Entonces,

14:17cuando yo tengo algo específico,

14:20que yo sé que necesito hacerlo rápido y

14:25tengo que sopesarlo bien, si estoy

14:27hablando de desempeño, decir yo estoy

14:30debo estar seguro de que lo puedo hacer

14:32mejor sin base de datos,

14:34está

14:36o con una base de datos eh digamos

14:40adaptada o específica para lo que yo

14:42quiero hacer. Sí,

14:45podría dar un ejemplo.

14:47Sí, claro. O sea, vamos a suponer que

14:50estoy hablando de por un lado eh una

14:54aplicación que utiliza fuertemente,

14:58vamos a decir, animaciones en 3D, ¿sí?

15:03que que necesitas tener información

15:06en todo, necesitas recabar información

15:09en todo momento y necesitas hacerlo en

15:12tiempo real porque o si no la gráfica se

15:14va a ver degradada y si esa información

15:17vos la estás consultando una base de

15:19datos por ahí no va a ser lo mejor. Sí,

15:24necesitaría tener algún tipo de archivo

15:27o una base de datos muy adaptada a lo

15:29que voy a usar.

15:31Lo otro es que por ahí sí necesito, por

15:33ejemplo, para

15:35un proceso de fabricación o algo que

15:38necesito hacer un control muy rápido,

15:42¿sí?,

15:42de elementos que estoy desarrollando

15:45y eso esas consultas que tengo que hacer

15:48las tengo que hacer en milisegundos, no

15:51puedo no pueden tardar mucho. Entonces

15:55ahí quizás una base de datos no no va a

15:58ser la mejor opción para este tipo de

16:01cosas. Sí. Entonces tiene que ver con

16:05requerimientos de tiempo real. Sí,

16:08siempre es mucho más rápido acceder a un

16:11archivo pequeño que a una tabla en una

16:14base de datos, ¿entiendes?

16:17o todo lo que tiene que ver con el tema

16:18de caché, que se normalmente se utiliza

16:23por ejemplo, pero piensan más allá de lo

16:25que es una aplicación

16:28común en base, a ver,

16:31a esto me refiero con que por ahí eh

16:33serían aplicaciones muy específicas en

16:36el sentido de decir que quizás no van a

16:38ser masivas, uno por ahí piensa en en en

16:41bases de datos y grandes volúmenes de

16:43datos cuando yo estoy hablando de acceso

16:46concurrente.

16:48Pero ahí se da una cuestión.

16:51Yo al tener acceso en general son muchas

16:55personas, muchos usuarios accediendo

16:57manera concurrente de la cual tengo que

16:59guardar datos y en general los datos

17:00suelen ser complejos, por lo cual no me

17:03queda una no me queda otra alternativa

17:04que usar base de datos. Y ante la

17:06alternativa de usar base de datos, sí o

17:09sí voy a tener que elegir una que tenga

17:11la mejor performance.

17:13Pero a lo que yo voy es por ahí necesito

17:18almacenar datos que no son tan

17:20complejos, pero sí necesito una

17:22velocidad

17:24fenomenal. ¿Sí? Entonces, en ese caso

17:29estamos hablando ni que una base de

17:31datos, vamos a decirlo, clave o valor

17:34puede llegar a servir. Por más simple

17:36que sea su guardado, quizás no me no me

17:40serviría. Por ahí podríamos hablar una

17:42base de datos en memoria RAM, como lo

17:45por ahí lo estás mencionando. Bueno,

17:47podría ser una posibilidad.

17:49Sí,

17:51claro. Sí, a eso me refería.

17:53Eso podría ser una posibilidad, pero ahí

17:55fíjense que estamos disminuyendo la capa

17:58de base de datos del eh del sistema

18:00gestor de base de datos a un mínimo,

18:03entonces sería una chance.

18:06Está.

18:08Pero bueno, esto es una cuestión ahí muy

18:11que hoy en día está un poqu debatible,

18:15así como hoy en día el costo es

18:17debatible, el desempeño es debatible

18:19porque tenemos mucha variedad de base de

18:21datos. Entonces, de nuevo, es eh habría

18:25que analizarlo bien. Sí.

18:29Eh, bien. Y el otro,

18:34la otra cuestión es, por ejemplo, bueno,

18:36voy a tener una aplicación monousuario.

18:39Sí,

18:42esto qué implica vamos, voy a tener un

18:44solo usuario accediendo en todo momento.

18:46Bueno, no voy a tener esa no voy a tener

18:49ese requerimiento de manejo de la

18:51concurrencia,

18:53que las bases de datos están preparadas

18:55para eso. Entonces podría decantar por

18:58otra alternativa. Por supuesto que acá

19:02vuelvo a recalcar, estamos hablando de

19:04que se trata de en general

19:06almacenamiento de datos simples. Sí, no,

19:08no tengo una estructura compleja que voy

19:11a almacenar

19:13porque si yo tuviera un requerimiento,

19:15si yo tuviera una aplicación mono, por

19:17más que tenga una aplicación

19:18monousuario, si tengo ya cierta

19:21cantidad, vamos a decir, de tabla o de

19:23elementos de información almacenar y voy

19:26a elegir una base de datos pequeña, pero

19:28voy a elegir una base de datos en sí

19:30para usarla.

19:32¿Okay?

19:36Y lo otro, bueno, tiene que ver con el

19:38eh con el almacenamiento. Sí. Eh que

19:42esto se refiere a se acuerdan cuando

19:46estuvimos trabajando la el cuatrimestre

19:49pasado y en uno de los ejemplitos muy

19:51pequeños que hicimos, utilizamos una

19:53base de datos atachada.

19:57Sí, en este caso era una base de datos

19:59de SQL, pero también podría ser otra

20:02base de datos como SQLite y demás.

20:05El solo hecho de atachar la base de

20:07datos vacía hace que ocupe un pequeño

20:10espacio,

20:12¿sí? Más o menos, dependiendo de la

20:15implementación de la base de datos y

20:17demás.

20:18Si el espacio

20:22que puede llegar a ocupar la base de

20:24datos es crítico,

20:26estando ya vacía, me refiero, sí, desde

20:29cero.

20:31Entonces, puede ser que una base de

20:33datos no me sirva. Esto en general lo

20:35vamos a esta restricción en general la

20:37vamos a tener en qué tipo de

20:38dispositivos.

20:43Sí, en dispositivos embebidos en

20:45general.

20:47Profe, atachado, ¿qué es?

20:49Que está adosada a una aplicación.

20:53Sí, recuerden que nosotros habíamos

20:55visto, por ejemplo, el ejemplo de una

20:57basecita de datos MDF.

21:00Sí,

21:03ustedes podrían atachar cualquier otro

21:05tipo de base de datos que quisieran,

21:07siempre que esté preparado para eso.

21:09¿Sí? Entonces, si si

21:12el dispositivo en donde yo voy a correr

21:14la aplicación no tiene los recursos

21:17suficientes,

21:20ese podría ser una restricción.

21:23Sí,

21:27estamos. Entonces, estos son los cinco

21:28elementos

21:30o los cinco las cinco cuestiones que

21:33debería analizar al momento de usar una

21:35base de datos. Por supuesto que por

21:38defecto cuando yo tengo que guardar

21:39información en lo primero que pienso es

21:42una base de datos. Sí,

21:45deberían haber razones muy fuertes

21:47vinculadas a estos criterios para que no

21:50las use. ¿Se entiende

21:56bien? Sí, profe.

21:59Bueno,

22:01listo. Entonces, pasemos a la otra

22:05diapositiva.

22:08Deberían estar viendo

22:11una diapositiva que dice modelos.

Modelos

22:16Bien.

22:16Sí, profe.

22:18Perfecto. Entonces,

22:21ahora vamos a empezar. Hoy la idea de

22:24hoy es ver rápidamente o tratar de

22:28determinar, digamos, con

22:32lo vinculado a eh modelos y

22:34arquitecturas en general de bases de

22:37datos. Sí,

22:40una cuestión muy importante cuando

22:43nosotros hablamos de una base de datos

22:45es el modelo en que está basado. Pero

22:47antes de eso, entonces vamos a ir al

22:49concepto de modelo en sí.

22:52¿Cómo podríamos definir a un modelo?

22:55¿Qué es un modelo

22:57en general? No solo de datos.

23:01Representación de datos en este caso o

23:03una representación determinada.

23:05Es una representación de algo. Es una

23:08abstracción.

23:09Sí, el modelo.

23:12Y saliendo un poco de lo que es sistemas

23:15y bases de datos y todo eso, ¿qué eh se

23:20les ocurre un ejemplo en otro ámbito de

23:22lo que es un modelo? No sé que hayan

23:25visto por ahí.

23:34¿Cuál cuál es el

23:36una maqueta? Podría ser de

23:39cómo

23:40una maqueta de algo de

23:44Exactamente.

23:46Por ejemplo, una maqueta es un modelo a

23:50escala de algo.

23:53Sí.

23:55Un plano es un modelo de algo.

23:59Sí. El plano de una casa es un modelo de

24:03ala. Ahora, y ahí para ser un poquito

24:07más quisquilloso, en realidad la maqueta

24:10en sí no es el modelo, ni el plano es el

24:12modelo en sí.

24:14¿Qué son esos que estaba mencionando?

24:20Son representaciones.

24:22Exactamente. Exactamente. Son esa eso

24:26que estaba mencionando son el plano, la

24:28maqueta, son representaciones del modelo

24:32que yo quiero realizar o que valgar la

24:36redundancia, quiero modelar. El

24:38propósito de un modelo es tratar de

24:42estudiar ciertos fenómenos, cierta

24:45estructura

24:47y resaltar aquellos aspectos que son más

24:49importantes. Por eso hablamos de

24:51abstracción, que es el mismo concepto

24:53que nosotros utilizamos en orientación

24:55objetos. ¿Sí?

24:58Entonces, cuando cuando nosotros hacemos

25:00un modelo de algo es porque intentamos

25:04tratar de comprender un fenómeno en que

25:08queremos estudiar. ¿Sí?

25:11Ahora,

25:12ese ese modelo, digamos, es más que nada

25:15algo conceptual, es un conjunto de ideas

25:18fundamentalmente

25:20que yo lo puedo hacer concreto o lo

25:24puedo plasmar en alguna representación.

25:28Esa representación puede ser un dibujo,

25:31un como el plano que estábamos

25:33mencionando. Sí. Y en el caso de la

25:37maqueta es algo físico a escala. Sí,

25:43también podría tener un modelo digital

25:46de un plano de de esa estructura en 3D.

25:50Sí,

25:52eso es lo más conocido.

25:56Y fíjense que no todos los modelos

26:00representan todas las características de

26:02una de de ese fenómeno que yo quiero

26:05estudiar, que en el caso de arquitectura

26:07tiene que ver con con tratar de modelar

26:10la casa que yo quiero construir, ¿sí?, o

26:13el edificio que yo quiero construir.

26:15Fíjense que cuando hablamos de plano, lo

26:18primero que se me viene, lo primero que

26:20nos nos suele venir a la mente es el

26:23plano eh típico

26:26en el cual yo veo las paredes, veo las

26:28puertas, las ventanas y demás. Sí, pero

26:32hay otro tipo de planos además de eso.

26:36Sí, los del suelo que se usan para para

26:40el petróleo sobre todo.

26:41Bueno, pero yendo fundamentalmente a lo

26:44que es esto de de hacer una casa, por

26:46ejemplo,

26:48planos eléctricos,

26:50los planos eléctricos, los planos

26:52sanitarios, por ejemplo. Sí.

26:55Entonces, ese modelo tiene diferentes

26:58facetas y yo me eh concentro,

27:03en una faceta a la vez para tratar de

27:06estudiar eso. Sí,

27:09estamos. Entonces, el modelo se refiere

27:11a esa cuestión. Ahora, cuando

27:15ya eh queremos ser un poco más

27:18específicos y entrando a lo que nos

27:20compete en este caso, un modelo de

27:23datos, ¿sí? Es un conjunto de conceptos

27:27que nos pueden servir a nosotros para eh

27:30describir una estructura de base de

27:32datos, ¿sí? Para tratar de entender esa

27:36base de datos que yo quiero realizar.

27:40Por eso cuando nosotros hagamos los

27:42diagramas y demás, tienen que entender

27:44que eso es la representación del modelo

27:46que nosotros tenemos en la mente. Sí,

27:50estamos.

27:52Y cuando hablamos de modelos, esos

27:54modelos de datos, vamos a tener en

27:57general diferentes eh diferentes escalas

28:02o niveles o tipos de modelos, ¿sí?, de

28:06datos.

28:07Okay.

28:09Pero en particular cuando nosotros

28:11hablamos de modelo, vamos a hablar

28:13entonces de la de la estructura de la

28:16base de datos. ¿Sí? Cuando hablamos de

28:18estructura base de datos, por ejemplo,

28:20¿de qué elementos estamos hablando?

28:25De las tablas, de las filas, las

28:27relaciones. Puede ser

28:29tablas, filas, relaciones. Y dentro de

28:31las tablas, ¿qué tenemos?

28:34Columnas.

28:35Columnas. Y las columnas pueden ser

28:40eh

28:41de determinado tipo. ¿Sí?

28:45Entonces,

28:48nuestro modelo tiene que representar

28:50todo eso de lo que hablamos, ¿okay? Y

28:53ahí es donde aparecen las los diferentes

28:56tipos o categorías de modelo de datos.

29:00¿Si?

29:02Entonces, en el nivel más alto, más

29:06abstracto,

29:08eh tenemos los modelos eh conceptuales.

29:11Una característica que tienen los

29:13modelos conceptuales es que están más

29:15cerca del usuario final, por lo tanto,

29:19es es un son modelos que nos sirven a

29:23nosotros para tratar de comunicarnos,

29:25por ejemplo, con nuestro cliente.

29:28Sí. ¿Por qué decimos esto? Porque ahí eh

29:33eh vamos a estar hablando de cosas tales

29:37como factura, cliente, producto, ¿sí?

29:42Nada muy eh tecnológico, digamos. Sí, va

29:46a estar vinculada a la jerga que conoce

29:50ese usuario, ese cliente. Entonces, a

29:52este modelo se lo conoce como modelo de

29:53alto nivel o conceptual. Sí.

30:00En estos en este nivel, en este en este

30:03en estos tipo de modelo, nosotros vamos

30:05a ver uno en particular vinculado al

30:08modelo de dato que es el MER, ¿sí? en el

30:11cual eh esos conceptos de los que

30:14hablaba se pueden modelar como

30:16entidades,

30:18como atributos

30:20y además para vincular o para relacionar

30:24esas entidades vamos a estar utilizando

30:27vínculos. ¿Sí? Entonces, hay cabe

30:30mencionar que esas entidades representan

30:33conceptos que nosotros tenemos que eh

30:37que que modelar en este en este

30:41minimundo o en este dominio que estamos

30:43tratando de entender. Sí,

30:47por eso que les decía palabras como

30:49factura, producto,

30:51cliente, sí son conceptos. Ahora, no

30:56todo concepto es una entidad porque hay

30:58conceptos más pequeños, ¿sí? Quizás no

31:01tan importantes, que me ayudan en

31:04realidad a describir esa entidad y a eso

31:06lo denominamos atributo. ¿Sí?

31:11Y cuando en realidad estamos encontrando

31:14no tanto concepto, sino más algo

31:16vinculado a acciones, a verbos, en

31:19general estamos hablando de vínculos.

31:22Sí.

31:26Entonces, ¿podríamos decir que el mer es

31:28lo mismo que el modelo relacional?

31:33No,

31:36no está. El mer no es lo mismo que el

31:39modelo relacional. Esa es una cuestión

31:41que ya el cuatrimestre pasado yo se los

31:43mencioné muy por arriba, pero sí o sí

31:47tenemos que hacer énfasis en tratar de

31:49comprender de que no lo es. Sí. Sií. son

31:53modelos diferentes, tienen diferentes

31:55niveles de abstracción,

31:58¿okay?

32:00Que están muy relacionados, seguro,

32:04está,

32:06pero están a diferentes niveles de eh de

32:09abstracción en esta en esta escala de

32:11modelos, ¿sí?

32:15si se quiere por ahí un modelo un un

32:18modelo de entidad relación es como es

32:21como el eh la fase previa

32:26a un modelo de objetos,

32:30nada más que acá no tenemos la parte de

32:33comportamiento.

32:35Sí,

32:38está más hacia ese lado.

32:42De hecho, van a ver cuando veamos en

32:44detalle el modelo de entidad relación

32:47que muchas de las construcciones que

32:51tiene se parecen mucho a orientación

32:53objeto.

32:55Sí,

32:58pero bueno, el modelo de entidad

33:00relación surgió primero. Okay.

33:05Ahora, el siguiente son el siguiente

33:08nivel son los modelos de representación.

33:13Sí,

33:15son un nivel intermedio en el cual

33:18todavía

33:20nos sirve a nosotros para comunicarnos

33:22con nuestro cliente, pero a su vez

33:24también están ya un poco más cerca de lo

33:27que yo tengo que llevar a la base de

33:30datos o de la forma en que yo voy a

33:32almacenar esa información, esos datos en

33:34sí. Entonces, se llaman modelos de

33:38representación o de implementación. Sí.

33:41Y en este nivel es donde se encuentra

33:44específicamente el modelo relacional,

33:47¿sí? El modelo de tablas

33:51el es aquel que nosotros vamos a estar

33:54eh guardando en nuestra base de datos.

33:57¿Sí?

34:01Fíjense que aquí en este en este nivel

34:03también tenemos otros otros modelos de

34:05datos que quizás no lo escucharon

34:08ustedes se los menciono. No voy a hacer

34:10hincapié ahí porque son viejos. Yo jamás

34:12lo utilicé. Si hice los conceptos

34:15eh de qué se trata, pero nunca nunca los

34:19utilicé en realidad. Uno es eh si

34:22alguien lo escuchó por ahí me dice, uno

34:24es el modelo de red y el otro es el

34:27modelo jerárquico.

34:29Sí, que también se encuentran en este

34:32nivel de eh de abstracción. ¿Sí

34:37escucharon hablar de esos otros modelos

34:39de datos?

34:44No, profe.

34:45Bueno, son son modelos bastante viejos.

34:48Uno, de hecho, son de eh se se

34:53fueron muy famosos y se utilizaron mucho

34:56en a partir de los 60, de los años 60.

34:59Sí. Y de hecho todavía existen grandes

35:04sistemas eh vinculados a esto, a estos

35:08tipos de modelos. Obviamente son

35:10sistemas legacy, ¿no?

35:13Bien,

35:16nada, lo que tienen en común es que

35:19cuando eh los datos aquí se representan

35:22a través de registros,

35:25¿sí?

35:27Y esos registros tienen elementos de

35:29información adentro que lo podemos

35:31llegar a llamar campo, por ejemplo.

35:34Sí.

35:37Y antes de pasar al físico, voy a meter

35:40aquí el modelo orientado objetos, porque

35:43sí, efectivamente, en base de datos

35:45existe los modelos orientados objetos.

35:49El tema es que en el camino se perdieron

35:52en algún momento y no se hicieron

35:54popularmente

35:56comerciales.

35:58Entonces, eh

36:01por ahí hoy en día, fíjense que uno

36:03hubiera pensado que íbamos a pasar de

36:06los relacionales a los orientados objeto

36:08directamente o iba a ser el la gran las

36:13grandes bases de datos iban a estar

36:15ubicadas allí. Sin embargo, pasó que nos

36:17fuimos para otros lugares. ¿Sí?

36:22Entonces, un modelo orientado objeto, yo

36:25sinceramente si lo tendría que ubicar lo

36:28vería como uno conceptual, pero el libro

36:31menciona que está ubicado en realidad en

36:34algún lugar entre los conceptuales y los

36:36de representación. Sí, es como un

36:39intermedio así.

36:42Okay.

36:47Sí, profe.

36:48Bien. Y eh

36:53puse autodescriptivos acá, pero lo voy a

36:56dejar para el final como para que se

36:57entiendan los tres principales, porque

37:00el tercero principal son los físicos,

37:03digamos. Nosotros

37:06cuando hablamos de modelo de datos

37:08físicos y nosotros en la materia no nos

37:10vamos a estar centrando en decir

37:12exactamente

37:13cómo se va a almacenar esto, pero sí hay

37:16muchas cuestiones que vamos a tener que

37:18tener en cuenta o ciertas cuestiones, al

37:20menos. Por ejemplo, fíjense que cuando

37:22hablamos de la representación física, ya

37:24directamente estamos hablando de cómo se

37:26están guardando esos modelos en la base

37:29de datos, en el disco. O sea, es

37:33ya estamos hablando de un nivel más bajo

37:35que el relacional. O sea, que cuando

37:38nosotros hablamos de un modelo

37:39relacional, ya estamos hablando, estamos

37:41hablando ya de tipos de datos y demás,

37:44pero acá ya no estamos e estamos

37:47diciendo, por ejemplo, qué tipo, cuál va

37:51a ser la forma en que vamos a guardar

37:52esos datos internamente, si vamos a

37:55utilizar índices o no, si vamos a cifrar

37:58esos datos o no. ¿Se entiende?

38:02Entonces, ya estamos hablando de

38:04cuestiones de implementación que en el

38:06modelo relacional

38:08ni nos preocupábamos.

38:11¿Okay?

38:13Entonces, cuando ya hablamos de cosas

38:15físicas, sí ya estamos hablando de

38:17cuestiones de bajo nivel.

38:20Bien.

38:22Y los modelos autodescriptivos, que en

38:24realidad eso no lo van a encontrar en

38:27todas las versiones del libro. ¿Por qué?

38:29Porque más que nada son estos modelos

38:33vinculados a varias bases de datos,

38:35¿no?, SQL, ¿sí?

38:39Es decir, que están ahí en algún lugar

38:41entre se podría decir que están cerca de

38:44los de representación, ¿sí? Y ahí vamos

38:47a ver entran todos esos tipos de datos,

38:50¿sí? como pueden ser base de datos

38:52basadas en XML, en clave de valor. Sí,

38:57como para darle algunos ejemplos.

39:00Fíjense que en esos tipos de en esos

39:03tipos de modelos en sí, la forma en que

39:05están almacenados los datos eh puede

39:08variar grandemente la formalidad. Sí,

39:14en algunos importa bastante la forma en

39:17que se guarda y en otros esa forma, esa

39:19estructura es un poco más laxa. Sí, no

39:23importa tanto.

39:26Eso sí hay que tener en claro. Cuando

39:27estamos hablando de modelos

39:28relacionales, la estructura con que se

39:31guarda es fundamental.

39:35Bien,

39:38eso es una es una gran diferencia.

39:43Okay.

Esquemas y ejemplares

39:52Y estos son algunos conceptos

39:55vinculados. Sí,

39:58hoy habíamos dicho entonces que cuando

40:00hablábamos en modelo de datos, un

40:03concepto que estaba ahí muy cercano es

40:05el es el esquema de la base de datos.

40:08¿Sí?

40:10Entonces, cuando se acuerdan que

40:12nosotros habíamos visto,

40:15no sé si es el que sigue este, ¿no?

40:20Bueno, nada, porque si no voy a contar

40:22el final de la película.

40:24Eh, habíamos visto eh un

40:29enfoque de de la arquitectura simple de

40:32una base de datos de la clase pasada, en

40:34la cual teníamos estaban los datos y el

40:38catálogo.

40:42El esquema de esa base de datos, de cada

40:44base de datos, se encuentra almacenado

40:47en el catálogo y lo que hace es

40:51justamente contener la descripción de la

40:55base de datos en sí. Sí, son los

40:57metadatos.

40:59O sea, que si yo voy a guardar, por

41:00ejemplo, allí un producto, ahí voy a

41:05decir que mi producto va a tener un

41:06código, va a tener un nombre, voy a va a

41:10tener un precio, ¿sí? Y de qué tipo de

41:14datos vas a hacer, ¿sí? O sea, código va

41:18a ser entero, nombres va a ser un string

41:21o una cadena. Sí, precio va a ser tipo

41:25money o float o decimal, si se quiere.

41:32Float, obviamente es un ejemplo porque

41:34no es la mejor forma de almacenar

41:36precios ya que estamos. Sí.

41:40Bien. Entonces, eso es el esquema. Sí,

41:44esos esquemas. Estábamos mencionando que

41:48cada una de esas partes que yo voy a

41:51tener en mi esquema se llaman elementos

41:55del esquema. ¿Sí? Vamos a decir, si

41:59tengo una tabla cliente, si tengo una

42:01tabla factura. Esos son elementos de ese

42:04esquema de base de datos. ¿Sí?

42:07Y para tratar de estudiar ese esquema,

42:10yo puedo recurrir a los diagramas.

42:12Fíjense que yo nombré un montón de

42:15conceptos,

42:18¿sí? Estoy nombrando el esquema, estoy

42:20nombrando los elementos, les di ejemplos

42:22de lo que pueden ser. Todo eso, conforma

42:24mi modelo. ¿Sí? Y ahora les nombro el

42:27diagrama. ¿Sí? Y el diagrama es la forma

42:30en que yo voy a representar gráficamente

42:33ese modelo.

42:35Sí,

42:37ese diagrama del esquema. Entonces, me

42:39va a servir a mí para entender el

42:41esquema de la base de datos. Sí, al

42:44menos gráficamente.

42:46Okay.

42:48Ahora,

42:51cuando nosotros

42:54Disculpe, profe,

42:55el diagrama de esquema sería algo así

42:58como un UML, ¿verdad?

43:00Sí. o directamente

43:03como para ir directo al grano. Cuando

43:06hablamos de un esquema relacional,

43:10estamos hablando de las cabeceras

43:12básicamente de la de las tablas.

43:16Sí,

43:18pero tu ejemplo también es válido.

43:22Okay.

43:28Y entonces ahí viene el concepto de

43:31ejemplares.

43:33¿Sí?

43:34Cuando nosotros hablamos de eh

43:40del estado de una base de datos, eso se

43:44refiere al conjunto de los valores

43:48posibles o los valores específicos,

43:50mejor dicho, que tienen determinado

43:52momento esa base de datos. ¿Sí?

43:55Entonces, un sistema gestor de base de

43:58datos tiene que controlar que todos los

44:01estados, todos los estados de una base

44:04de datos sean estados válidos. Sí,

44:08estamos. Entonces, el esquema, el

44:11perdón, el estado de una base de datos

44:13es el conjunto de valores de todas las

44:16tablas, de todos los registros,

44:17etcétera, etcétera, en determinado

44:19momento. ¿Okay?

44:23Ah.

44:25al conjunto de esos valores, ¿sí? Se lo

44:29denomina ejemplares.

44:31Sí, es como como para hacer una

44:35analogía. Hablamos de clases y hablamos

44:38de instancias, bueno, hablamos de

44:40esquemas y hablamos de ejemplares.

44:43¿Se comprende

44:44con eso? Se comprendió bastante bien.

44:46Perfecto. Está

44:49bien.

44:53Y lo importante sí o sí acá el concepto

44:56de estado, fíjense que hablamos de el

44:59valor de todos de todos los de todas las

45:03tablas y sus registros en determinado

45:05momento. Decimos que tienen que ser

45:07válidos y eso es el encargado de

45:09controlarlo es el sistema gestor de base

45:12de datos.

45:14Eso como por ejemplo cuando eh querés

45:16ingresar un valor y ponés nulo en alguna

45:20columna y esa columna no permite nulo,

45:23¿sería algo de eso.

45:25Exactamente. Exactamente. Controlar, por

45:27ejemplo, que las restricciones se

45:29cumplan.

45:30Por ejemplo, querés eliminar eh un

45:33registro que su ID o clave de primaria

45:36está en otra tabla como clave de fogía.

45:40Exactamente.

45:41Sin hacer la cascada. Exacto. Vamos a ir

45:43al ejemplo que uso siempre, que es el de

45:46la factura y el cliente.

45:48Eh, si yo elimino un cliente,

45:54tengo que ver qué hago con la factura,

45:57¿sí? Porque no puedo dejarla colgada.

46:01Entonces, la base de datos se tiene que

46:03encargar de decirme, hay un error. El

46:06desarrollador es el encargado de decir

46:08cómo va a solucionar esa circunstancia.

46:12Okay.

46:16Entonces, cuando nosotros eh otra forma

46:20de mencionar esto sí es al esquema

46:22llamarlo intención

46:25y al conjunto o al estado completo de la

46:28base de datos se la llama extensión de

46:31ese esquema.

46:32¿Sí?

46:35Esto como ya habíamos hablado antes de

46:37los conjuntos, intención o barra

46:39comprensión, digamos. Definir un

46:41conjunto por intención o por comprensión

46:44es lo mismo. Decimos que la intención o

46:47la comprensión es el esquema y el

46:49conjunto de todos los valores en

46:50determinado momento también es la

46:53extensión de ese esquema.

46:56¿Sí?

46:59Bien, esto es en general

47:02eh

47:06son conceptos que van apareciendo que

47:08después vamos a ir vamos a ir eh

47:13viendo un poquito más en profundidad

47:14cuando avancemos con en particular el

47:16modelo relacional. ¿Sí?

47:21Bien, esto es lo que ustedes tenían que

47:23hacer como

47:26eh ejercicio. Sí. Así que yo por lo que

47:30vi no lo alcanzaron a completar. Vamos a

47:34tomarnos 15 minutos, completamos este

47:37ejercicio y retomamos. Sí. Mientras

47:41tanto, vayan posteándolo ahí en la en el

47:45en el aula virtual y después lo

47:47conversamos acá. Okay, 15 minutos.

47:50¿Le puedo hacer una consulta?

47:52Sí, dime.

47:53En el aula virtual había un trabajo

47:55práctico para eh presentar que yo no lo

47:58había visto, que es ventajas y roles,

48:00que es grupal.

48:02Mm.

48:02Era lo de la clase anterior, ¿verdad?

48:05Claro.

48:07Ajá. Y eso tenemos tiempo hasta

48:09No, no hay problema. Pero es la idea era

48:12que lo tengan medio terminado para hoy,

48:14pero presentarlo cuando puedas.

48:17Ah, perfecto, profe, disculpe.

48:20Eh, bueno, eh, comprendido. Entonces,

48:24hacemos un una pausa de 15 minutos y nos

48:26volvemos a conectar. O sea, nos

48:28estaríamos conectando aproximadamente

48:30a las 20

48:3440 20. Pongamos para redondear. Sí.

Arquitectura ANSI-SPARC

48:39Entonces, eh de vuelta para recapitular

48:42esta última parte, eh

48:46lo que les decía es se puede hacer un un

48:51una relación entre los las abstracciones

48:54de modelo que teníamos hoy al principio

48:56y esto. Y la respuesta es más o menos

49:00por qué. Porque sí tenemos una relación

49:03entre el modelo interno, entre el modelo

49:05físico y el esquema interno, ¿sí? Porque

49:09hablamos de los mismos elementos,

49:12pero no en el esquema conceptual y el

49:15modelo conceptual, porque fíjense que

49:17ahí se perdió. ¿Qué es lo que no está?

49:19¿Qué es lo que en teoría no aparece acá?

49:22El modelo de implementación o de

49:24representación.

49:27Okay.

49:32Entonces, esto que acá nombra esquema

49:34conceptual se representa con lo que

49:38nosotros vimos recién o hace algunos

49:41minutos atrás como el modelo de

49:44implementación

49:46o el modelo de

49:49representación.

49:51Está acá es donde yo voy a encontrar el

49:54digamos un esquema relacional si se

49:56quiere.

49:59¿Se entiende?

50:04Recuerden que esto no es de no viene

50:07todo una misma fuente, por eso hay esa

50:09por eso están esas divergencias. Sí.

50:12En esta arquitectura Ania Spark,

50:15al esquema conceptual se lo vincula

50:19con el modelo relacional. En cambio, hoy

50:23cuando hablamos al principio, estábamos

50:26hablando de modelo conceptual, modelo

50:30relacional o mejor dicho modelo de de

50:33implementación o de representación y

50:35modelo físico. El modelo físico va bien

50:38con el esquema interno. Ahora, tenemos

50:40problemas en el esquema conceptual

50:42porque allí en realidad estamos hablando

50:44de un esquema de implementación o de

50:46representación.

50:50Sí. ¿Se

50:54se comprende esa parte o no, chicos?

50:56Sí, profe.

50:57Sí. Bueno, ahora

51:03al nivel de vistas, entonces es el la

51:06parte ya externa,

51:09¿sí? es lo que los usuarios van a ver

51:12directamente,

51:15¿okay? Y allí es donde vamos a tener un

51:19esquema fragmentado, es decir, cada

51:22vista va a mostrar una parte de toda la

51:27base de datos, la parte que le interesa

51:31al usuario para el cual está destinada

51:32esa vista,

51:35¿sí? O la que puede ver. Es decir, por

51:38eso ahí habla de confidencialidad.

51:41Estamos allí nos concentramos en

51:46hablar de eh de digamos particionar

51:51esa esas vistas. Sí, cada uno ve lo que

51:55tiene que ver.

51:56De nuevo,

51:59allí tenemos que otro mapeo más, pero

52:01desde el esquema conceptual

52:05al esquema externo de vistas.

52:08Sí, la parte de arriba es el esquema

52:10externo.

52:15Bien,

52:17ahora la pregunta es, ¿tengo un relación

52:21uno a uno entre el esquema conceptual y

52:24la vista? Es decir, yo lo que hago es si

52:27tengo, por ejemplo, vamos a ir un

52:29ejemplo concreto, yo tengo una lista de

52:32precios que la tengo almacenada en

52:34productos. Yo voy a del esquema

52:37conceptual, ¿va a pasar tal cual a la

52:39vista o hay algo ahí en el medio?

52:45Otro mapeo.

52:46Hay otro mapeo.

52:49Sí.

52:50Entonces, los datos no se van a pasar de

52:52manera cruda, va a haber otra

52:54transformación.

52:56Sí. Así como yo tengo una transformación

52:58entre el esquema interno y conceptual,

52:59también voy a tener esa transformación

53:01entre el conceptual y la vista, ¿sí? O

53:04los externos.

53:05Eso dependería de cómo se arma la vista.

53:08Eso depende de cómo se arma la vista en

53:11sí.

53:13Una vista es un agregado

53:17que puede ser de una o más tablas,

53:21¿sí?, del esquema conceptual.

53:26Okay.

53:30Y acá ni siquiera está y para que se

53:33entienda bien, esto está muy apuntado a

53:35lo relacional, pero ni siquiera habla

53:38específicamente del modelo relacional y

53:40ni siquiera para aquellos que ya tienen

53:42experiencia en base de datos y ni

53:43siquiera está hablando de la palabra

53:46vista, del view o de esa construcción

53:48que nosotros que algunos habrán visto en

53:51SQL. Sí, por supuesto que el concepto de

53:55vista en SQL viene de acá,

53:58¿sí?

54:00Pero puede estar basado en otras eh en

54:03otra en otros tipos de construcciones o

54:05de tecnologías. Sí.

54:08Lo que me está diciendo es entonces todo

54:10esto me expresa que los datos guardados

54:13en sí se encuentran en la parte física.

54:16El resto son todos transformaciones que

54:18yo voy haciendo.

54:22¿Comprendido?

54:26Entonces,

54:30esto nos lleva a tener dos

54:31características o una característica

54:34dependiendo de cómo lo querramos ver

54:39o una propiedad, si se quiere,

54:44que viene de la mano y que justamente es

54:47el objetivo que hoy al principio

54:49estábamos hablando, viene de la mano de

54:51lo que es esta arquitectura de tres

54:52niveles. ¿Cuáles o cuáles son

55:02el MBC, si no me equivoco,

55:04no no eso es demasiado moderno.

55:07Claro,

55:14lo tuvieron que haber leído cuando

55:15estaban investigando esto.

55:18¿Cuál fue la pregunta, profe? Disculpe,

55:22esta organización arquitectural de An

55:25Spark, nosotros decíamos que buscábamos

55:28algo con esto, que lo mencionamos de

55:31alguna manera, pero específicamente

55:34son

55:36esto lleva a que surjan dos propiedades

55:39específicas o una propiedad específica

55:42cuando aplicamos esta arquitectura.

55:44¿Cuál es?

55:47Poder tener independencia de cada parte.

55:50Exactamente. Sí.

55:51De los datos.

55:53Entonces, independencia de los datos.

55:56Sí. Y allí van a ver que existen dos

55:59tipos de independencias. ¿Cuáles son?

56:05La física y la lógica.

56:06La física y la lógica. Perfecto. Bueno,

56:09ahora quiero que

56:13me den. Ah, bueno, primero vamos a ir a

56:16lo conceptual y después vamos al

56:18ejemplo.

56:21¿Qué significa?

56:23¿Qué quiere decir independencia lógica

56:26respecto de los datos?

56:29Que modificar los tipos de datos o las

56:31relaciones entre los datos no debería

56:33alterar e la vista del,

56:36o sea, de un grupo de usuarios, por

56:38ejemplo.

56:39Ajá.

56:41Perfecto. O sea, que una una alteración,

56:45el ideal es que una alteración en el

56:48esquema conceptual

56:52no me altere las vistas.

56:57Sí.

57:00Y la independencia física, ¿a qué se

57:02refiere?

57:05la capacidad de cambiar en el esquema

57:07interno sin que haya alteración en el

57:10esquema conceptual.

57:11Perfecto.

57:14A ver si se entendió esto. Vayamos,

57:16díganme un ejemplo que se les ocurra

57:19entre el esquema conceptual y el de las

57:21vistas.

57:28Cambiar un tipo de datos.

57:32Ajá.

57:34Dame, dame inventarme un escenario bien,

57:37bien concreto.

57:43Supongamos que yo separo de una tabla eh

57:46unas columnas porque quiero que estén en

57:48otra tabla. el usario debería poder

57:51seguir viendo esos datos, pero la

57:54estructura en la que está armado eso va

57:55a ser diferente.

57:59Bien, o sea, por ejemplo, podríamos

58:01llegar a decir que

58:04vamos, vamos a dar el ejemplo más

58:06sencillo,

58:08decir, podría yo en la tabla cliente

58:13agregar un campo.

58:16Vamos a suponer que hasta el momento no

58:18guardaba

58:20eh

58:22un segundo

58:24teléfono de contacto. Sí. Entonces

58:27agrego eso. Eso

58:32según este esquema debería ser que no

58:35deba cambiar, no afecte a las vistas o

58:38el usuario no debería percibirlo.

58:41¿Creen que eso es posible?

58:47Sí, sí, profe, es posible.

58:49Claro, porque la vista está bien. Ah,

58:52no, disculpe.

58:54Perdón.

58:56Es posible cuando nosotros podemos

58:58podemos llegar a agregar datos en las

59:00tablas que sean, por ejemplo, campos que

59:03permitan nulos, entonces no afecta

59:05directamente al a la, vamos a decir, a

59:08la estructura que ya teníamos.

59:10Perfecto. O sea, ahí es lo que me está

59:12diciendo. Bueno, yo tenía mi tabla

59:13original que tenía el quid, el nombre y

59:17apellido del cliente y un teléfono.

59:20Ahora vamos a suponer que eso estaba en

59:23la vista uno. Sí.

59:28Las aplicaciones que utilizan la vista

59:30uno van a seguir ocupando esas tres esos

59:33tres datos.

59:34Y ahora yo agrego un cuarto, un tercer

59:37un cuarto dato que lo voy a ocupar en la

59:39vista dos. Vamos aar. Entonces no afecta

59:43para nada la vista uno y no tengo que

59:45cambiarlo.

59:47Sí, a eso se refiere.

59:50Ahora

59:52puede darse el caso de que modificar

59:56restricciones. También puede ser.

1:00:00Puedes darse el caso de que elimine un

1:00:04campo y no afecte a la vistas,

1:00:09a las vistas, perdón.

1:00:15Si ese campo es llamado en una de las

1:00:18vistas. Sí, profe.

1:00:19Exactamente. O sea, este esta esta

1:00:22independencia se puede lograr hasta

1:00:24cierto punto.

1:00:27Sí.

1:00:29Si ese campo no es utilizado en en

1:00:34todas las vistas, bueno, vamos a suponer

1:00:36que ese campo que elimino es solamente

1:00:39utilizado en la vista N. Bueno, va a ser

1:00:42afectada esa vista N, pero el resto de

1:00:44las vistas no. Sí.

1:00:47Entonces tiene mucho que ver también

1:00:50como yo construyo esas vistas. O sea, en

1:00:54cada vista tengo que colocar

1:00:57la información específicamente que

1:00:59necesito.

1:01:02Bien,

1:01:03profe, le le hago una consulta ahí. Eh,

1:01:06yo entiendo que no estamos hablando

1:01:08directamente, por ejemplo, de hacer un

1:01:09select, pero vamos a suponer,

1:01:11pero sí, no, vayamos a ese ejemplo

1:01:13concreto. Sí.

1:01:15Ajá. Vamos a suponer que yo estoy

1:01:16haciendo un select asterisco. En ese

1:01:18caso, no me implicaría un error, sería

1:01:23en la vista,

1:01:25¿no? Ni digamos. ¿Por qué? Porque ese C

1:01:28asterisco lo que va a hacer es, fíjate

1:01:30vos que depende de ahí como yo tenga

1:01:32hecho el programa ya. Y justamente eso

1:01:36es

1:01:36de cómo consuma la la aplicación sería

1:01:40exactamente.

1:01:42Okay. Tirar, va a traer todo no más.

1:01:44Claro, en este caso traería todo,

1:01:46simplemente que no me daría error la

1:01:48consulta, sino ya el error estaría en la

1:01:51capa superior.

1:01:53Exactamente.

1:01:54Claro.

1:01:54Exactamente. Sí, sí.

1:01:58Profe, una pregunta.

1:01:59Dime.

1:02:00Yo no entiendo bien la diferencia que

1:02:01hay entre la

1:02:04en la independencia de los datos físicos

1:02:06y lógicas. No, no entiendo la diferencia

1:02:08entre una y otra.

1:02:09Es que recién hablamos de la lógica.

1:02:13Sí. con,

1:02:15o sea,

1:02:17por ahora dijimos, bueno, yo hago

1:02:19cambios a nivel de los datos que yo

1:02:21quiero guardar esa cuestión conceptual,

1:02:24es decir, le saco el DNI, voy ahora sí

1:02:26voy a colocar DNI, voy a utilizar un

1:02:28teléfono o le agrego un email, ese tipo

1:02:31de cosas, voy a tener una relación entre

1:02:33tablas.

1:02:35Eso, eso es lo que vimos hasta ahora.

1:02:37Ahora vamos a la parte física.

1:02:40Ah, claro, yo había entendido que ya

1:02:41vimos física, por eso no entendía. No,

1:02:43hablamos del concepto nada más, pero si

1:02:47vamos a un ejemplo,

1:02:50¿sí?

1:02:52¿Qué podríamos qué ejemplo podríamos dar

1:02:55de independencia entre el esquema

1:02:58interno y el esquema conceptual?

1:03:02Este es un es dependiendo obviamente de

1:03:05los cambios que hagamos, es más fácil y

1:03:08fíjense que de lograr

1:03:10entre el interno y el conceptual. Profe.

1:03:12Sí. Sí,

1:03:13cuando tenemos almacenado ya el dacto

1:03:16específico, seríam

1:03:18si nosotros eh en este caso sería que si

1:03:21nosotros llegamos a cambiar algo en un

1:03:24que no afecte al al esquema conceptual,

1:03:26sería,

1:03:27¿qué decíamos? ¿Qué qué qué cuestiones

1:03:29teníamos que tener en cuenta en el a

1:03:33nivel físico? Lo habíamos dicho.

1:03:36Fíjense lo siguiente. Obviamente todo

1:03:39esto,

1:03:42vamos, vamos al ejemplo de SQL Server.

1:03:45Sí,

1:03:49SQL Server guarda mayormente su

1:03:53información en dos archivos.

1:03:56Para cada base de datos que creo, crea

1:03:58dos archivos,

1:04:00un MDF y un LDF.

1:04:03Sí,

1:04:05el esquema conceptual está enterado de

1:04:07eso,

1:04:11¿no?

1:04:13Cuando yo cuando yo decido poner una

1:04:15factura a un cliente, ni me importa eso.

1:04:20Sí.

1:04:21Ahora,

1:04:23¿qué pasa si el día de mañana por

1:04:25cuestiones de performance yo decido que

1:04:27en vez de dos archivos voy a crear tres

1:04:29o cuatro archivos?

1:04:32Eso afectaría al esquema conceptual.

1:04:37No, no debería.

1:04:39No debería.

1:04:40¿Qué pasa si esos archivos se volvieron

1:04:42gigantes? Porque después de mucho tiempo

1:04:47tuve muchas transacciones, borrados,

1:04:49agregados y demás y quedó basura en el

1:04:53medio,

1:04:55quedaron huecos

1:04:57y necesito comprimir eso para salvar

1:05:00espacio.

1:05:02Eso afecta al esquema conceptual.

1:05:07Tampoco

1:05:08no debería,

1:05:09¿no?

1:05:10Porque el método de acceder a los datos

1:05:12sigue siendo el mismo. Si no me

1:05:14equivoco,

1:05:15es que yo voy a estar almacenando los

1:05:17mismos conceptos y el sistema de gestor

1:05:20para el sistema el sistema de gestor de

1:05:22base de datos hace que eso sea

1:05:24transparente para el esquema conceptual.

1:05:28¿Sí?

1:05:29Y justamente este enfoque de esta

1:05:32arquitectura de tres esquemas

1:05:36es la inspiración para este tipo de

1:05:39sistema de gestores base decir

1:05:43recuerden lo más el peor diseño que

1:05:46podríamos tener es que tengamos nuestra

1:05:50aplicación esté atada de la forma en que

1:05:53esto se almacena físicamente.

1:05:57Sí.

1:06:00Es decir, que en vez de tener tres

1:06:02archivos, ahora tengo dos, entonces

1:06:04tengo que cambiar mi aplicación.

1:06:06Entonces ahí esto no va. La arquitectura

1:06:09de tres esquemas me dice ya de entrada,

1:06:11el sistema, incluso el sistema de gestor

1:06:13de base de datos se encarga de

1:06:15separarlo. Lo que yo tengo que saber es

1:06:16dónde está la dónde está la base de

1:06:18datos particularmente no el sistema

1:06:21gestor de base de datos el que se

1:06:22encarga de decir de si esto lo tiene que

1:06:25buscar en tal o cual archivo.

1:06:29Sí. O de comprimir el archivo o de

1:06:32reorganizar el archivo.

1:06:35Sí. o descifrar ese archivo.

1:06:42Se comprendió la diferencia entonces

1:06:44entre

1:06:46entre lo que es independencia

1:06:50física y lógica

1:06:53y qué significa cada una.

1:07:02Bien,

1:07:04¿alguna pregunta?

1:07:08Bueno, hoy mi idea eh

1:07:12no no quiero pasarme de no quiero

1:07:15pasarme mucho de tiempo porque creo que

1:07:17acá hay muchas personas que mañana

1:07:19tienen que rendir el recuperatorio. No

1:07:21sé si estoy

1:07:24equivocado,

1:07:26¿eh? Así que

1:07:31por eso voy, vamos a tratar de hacerlo

1:07:33un poco más corto. Sí.

1:07:36Bueno,

1:07:38esto nos lleva a los lenguajes genéricos

1:07:41que deberían estar presentes en todo

1:07:43sistema gestor de base de datos

1:07:47y creo que habíamos hablado de las 9:30,

1:07:50¿no? El horario del recuperatorio.

1:07:57Bien.

1:08:00Sí, por supuesto,

1:08:03¿no? A las 9:30 de la noche un sábado,

1:08:05¿no? Todavía

Lenguajes

1:08:08bien. Eh,

1:08:12lenguajes,

1:08:13sí, cuando hablamos de lenguajes, en

1:08:16toda base de datos deberían existir

1:08:18algunos lenguajes genéricos. No estamos

1:08:20hablando acá de un lenguaje específico

1:08:22en particular, ¿sí?

1:08:25sino que deberían existir diferentes

1:08:27categorías de lenguajes. Entonces,

1:08:31uno de ellos es el lenguaje DDL.

1:08:36Sí, el DDL significa lenguaje de

1:08:39definición de datos.

1:08:41está. Y este concepto está vinculado con

1:08:45lo que veníamos viendo antes. Entonces,

1:08:47nosotros decimos que una base de datos

1:08:49va a tener su estructura en un catálogo.

1:08:51El DDL impacta en ese catálogo porque lo

1:08:53que a lo que me ayuda es a definir la

1:08:56estructura de esa base de datos. Por

1:08:57ejemplo, cuando quiero agregar una

1:08:59tabla, cuando quiero agregar un campo en

1:09:01determinada tabla, cuando quiero sacar

1:09:04un campo en determinada tabla.

1:09:06Eso es parte de eso debería ser parte de

1:09:10lo que es el lenguaje de definición de

1:09:12datos. Sí,

1:09:14esto sería el create, el el alter

1:09:18truncate.

1:09:20Ex truncate, no

1:09:24truncate.

1:09:25El drop también entraría acá,

1:09:28¿eh?

1:09:28Drop

1:09:29drop, sí, drop, sí.

1:09:32Está típicamente create, alter y drop.

1:09:37Okay.

1:09:43Ahora, eso como mínimo. Después vamos a

1:09:46hablar de otras posibilidades.

1:09:48El otro lenguaje es el DML,

1:09:52¿sí? El lenguaje de manipulación de

1:09:55datos. Acá ya no hablamos de la

1:09:57estructura, sino que estamos hablando de

1:09:59los datos en sí. Por lo tanto, esto va a

1:10:01tener impacto directamente en la base de

1:10:03datos almacenadas.

1:10:05Cuando dice manipulación de datos se

1:10:06refiere tanto a la actualización de

1:10:08datos, ya sea por inserción,

1:10:12eh modificación

1:10:14o borrado, consultas, básicamente

1:10:17o por consultas de obtención. Sí,

1:10:21exactamente.

1:10:24El tronquate es un ejemplo

1:10:27de esto.

1:10:30Sí.

1:10:34Estamos. Entonces, tenemos estos dos DL

1:10:36y DML.

1:10:39Sí,

1:10:39en el DML también entraría select y eso.

1:10:43DML select para los que hablan de SQL.

1:10:46Select, insert, update y delete.

1:10:51A ver, gracias.

1:10:58Si tenemos una estructura completamente

1:11:00separada, o sea, que cumple

1:11:05con todos con este esquema de tener de

1:11:10tener lenguajes para la parte de

1:11:13implementación o de la parte física y la

1:11:16de vistas, podríamos llegar a tener

1:11:19lenguajes de BDL y SDL. Sí, el lenguaje

1:11:23de definición de vistas

1:11:26y el lenguaje de eh definición de

1:11:29almacenamiento.

1:11:33¿Okay? Normalmente estos dos lenguajes

1:11:38en la práctica se encuentran dentro de

1:11:39lo que es el DDL.

1:11:43¿Sí?

1:11:46¿Por qué? Porque el hecho de definir una

1:11:48vista,

1:11:50si bien no estamos hablando de que vamos

1:11:53a almacenar datos para eso, sí es parte

1:11:56del esquema esa vista. No van a existir

1:12:00datos almacenados de esa vista porque

1:12:02van a estar los datos crudos. Lo que se

1:12:05genera con una vista es calculado. Sí,

1:12:09pero sí va a estar cómo está formada esa

1:12:12vista.

1:12:15para para ir a algo concreto,

1:12:19eh

1:12:21podríamos tener una vista que sea el

1:12:25cliente y sus facturas. Entonces

1:12:26podríamos tener en esa vista, yo podría

1:12:30tener una tabla que sea cliente, ¿sí?

1:12:32Con, vamos a poner número, el quid, el

1:12:35nombre y el teléfono. Y en otra tabla

1:12:38puedo tener factura. Para hacerla

1:12:40simple, vamos a poner el número de

1:12:41factura, la fecha,

1:12:44el tipo de factura y el total. Estoy

1:12:47dando un ejemplo muy muy por arriba.

1:12:50Entonces, la vista BDL podría llegar a

1:12:53tener podría generar una vista que sea

1:12:58listar

1:13:00todos los clientes con el total

1:13:02facturado de ese cliente. ¿Sí?

1:13:08Entonces yo obviamente no voy a el total

1:13:11entre todas las facturas. Sí, vamos a

1:13:14suponer que le vendí generé 10 facturas.

1:13:17Bueno, la sumatoria de ese total.

1:13:19Entonces eso puede ser una vista y eso

1:13:21se define con el lenguaje de definición

1:13:23de vista. Y el SDL va a lo físico,

1:13:28¿eh?

1:13:30No, a ver, en la actualidad DDL, el SDL

1:13:35está implementado parcialmente porque

1:13:38eh conviene más que esto se encuentre en

1:13:41forma de comandos más que de sentencias,

1:13:45¿sí?

1:13:47Es decir, en el S, ¿qué cosas

1:13:50particularmente encontramos vinculadas a

1:13:52SDL? Por ejemplo, la creación de

1:13:54índices,

1:13:57¿okay?

1:14:00Pero por ejemplo, para comprimir un

1:14:02archivo, ya estamos hablando de un

1:14:04comando particular de ese motor de base

1:14:09de datos.

1:14:11¿Sí?

1:14:14Y en la actualidad

1:14:17la representación

1:14:20total o cabal de todo esto es el

1:14:23lenguaje SQL.

1:14:25Sí, el lenguaje SQL contempla todos

1:14:29estos lenguajes genéricos.

1:14:32Sí.

1:14:36Una cuestión que tiene que quedar clara

1:14:39de acá

1:14:42es que cuando hablamos de eh por ejemplo

1:14:48el lenguaje DML,

1:14:51podemos hablar de

1:14:53lenguajes

1:14:55por procedimientos

1:14:58o no por procedimientos

1:15:02o de conjuntos.

1:15:04Sí. ¿Qué significa esto cuando hablamos

1:15:07de DML de alto nivel y esto saliéndonos

1:15:10y corriéndonos un poquito de SQL en sí,

1:15:13que es el ejemplo y es el concepto a su

1:15:16vez?

1:15:20Nosotros decimos que un DML de alto

1:15:23nivel es aquel que me dice

1:15:25al cual en el cual yo por eso qué es lo

1:15:28que tengo que hacer y no cómo hacerlo.

1:15:31Sí.

1:15:37Entonces

1:15:39ese lenguaje de Tony Bets es sin duda

1:15:42SQL

1:15:44porque cuando, fíjense lo siguiente,

1:15:47cuando yo digo select

1:15:50de tales campos, de tales tablas, yo le

1:15:52estoy diciendo qué hacer.

1:15:55No sé cómo el motor hace para encontrar

1:15:57eso.

1:16:02Puedo repetirlo, profe. Me perdí un

1:16:04poquito. Ahí

1:16:05bien. Cuando hablamos de DML en

1:16:09particular y también puede estar

1:16:10incluido el DDL, pero bueno, vayamos a

1:16:13la parte DML.

1:16:16Yo puedo tener dos tipos de DML,

1:16:19¿sí?

1:16:21Uno es de alto nivel y el otro de bajo

1:16:24nivel.

1:16:27O podríamos decir, para hacerlo más

1:16:31claro, quizás,

1:16:33el DML alto nivel es declarativo

1:16:37y el DML bajo nivel es procedural.

1:16:42¿Conocen las diferencias entre los dos,

1:16:44entre esos dos?

1:16:50Bueno,

1:16:52sería qué quiere hacer y cómo se hace,

1:16:56hacerlo

1:16:57exactamente, tengo que

1:16:59expresarlo concretamente.

1:17:02Por eso les daba el ejemplo de SQL. Sí,

1:17:07yo digo que SQL tiene esa parte DML, ese

1:17:11lenguaje de consultas,

1:17:14¿sí? es declarativo y de alto nivel

1:17:18porque yo le estoy diciendo, hacemos un

1:17:21select de tales campos, de tal tabla.

1:17:24Sí, no le digo cómo.

1:17:30Ahí está, ahí lo entendí.

1:17:32Sí. En cambio, sería procedural si yo le

1:17:36si yo dijera de tal archivoá

1:17:40tantas veces

1:17:42hasta encontrar cierto campo, ¿se

1:17:44entiende?

1:17:45Eso es procedural

1:17:53y también se dice entonces que SQL y lo

1:17:57en general

1:18:01son es un lenguaje de conjuntos

1:18:05y esto es realmente importante.

1:18:09¿Qué significa eso?

1:18:12Quizás para los que no trabaja, para la

1:18:15gran mayoría que está acá, que no

1:18:16trabajaron con base de datos

1:18:19relacionales, es difícil de entender en

1:18:21este momento,

1:18:24pero tiene que ver también tiene no es

1:18:27exactamente que sea declarativo, pero

1:18:29tiene que mucho que ver con el hecho de

1:18:31serlo.

1:18:33Sí.

1:18:35Es decir, que cuando yo, fíjense en el

1:18:39ejemplo de vuelta, yo digo seleccionar

1:18:41todos los clientes,

1:18:44yo estoy especificando cada registro en

1:18:47sí,

1:18:48estoy yendo por cada registro en sí o

1:18:50digo, "Traeme el conjunto de registros

1:18:53que cumplen con ese criterio?"

1:18:56En definitiva, nosotros al poner

1:18:57asterisco, eh, SQR interpreta que traiga

1:19:01cada uno de los registros. Claro, pero

1:19:05y suponete que no le pongais código,

1:19:08pongo select.

1:19:09Ah,

1:19:10select nombre from cliente.

1:19:14Y ahí estoy trayendo un subconjunto.

1:19:17Mi universo sería el clientes.

1:19:19Exactamente. Un fragmento de la tabla.

1:19:22Estoy trayendo una parte de la tabla,

1:19:24pero así todo sigue siendo sigue siendo

1:19:27un conjunto completo porque no le digo

1:19:30tal o cual registro.

1:19:32Sí,

1:19:34no le digo el registro que está ubicado

1:19:37en tal lugar. Tráeme todo este conjunto

1:19:40y ya.

1:19:43Y

1:19:44cuando yo quiero proces el lenguaje SQL

1:19:48por ahí no es el más adecuado cuando yo

1:19:51requiero hacer un procesamiento

1:19:54pormenorizado registro a registro.

1:19:58Sí,

1:19:59eso lo voy a ver cuando normalmente hay

1:20:02consultas que se vuelven superclicadas

1:20:04con SQL,

1:20:06que en realidad serían más eficientes,

1:20:09procesadas

1:20:11con un lenguaje de programación

1:20:13procedural, es decir, en el cual tenga

1:20:15un for, un if o lo que fuera. SQL, si

1:20:19bien presenta esas estructuras

1:20:22o mejor dicho transac SQL, que es la

1:20:25versión de SQL Serverpad, tiene if,

1:20:28tiene un for,

1:20:32la performance

1:20:34no es buena para eso porque fueron

1:20:36creados para trabajar con conjunto de

1:20:38registros y no para recorrerlos uno a

1:20:41uno, ¿se entiende?

1:20:43Claro, en este caso también sería algo

1:20:46similar como cuando tenemos eh en

1:20:49programación eh vamos a decir los ORM,

1:20:53que por ahí también nos sucede que el

1:20:55ORM hace muy lenta la, o sea, hay veces

1:20:58que no la performance es demasiado baja

1:21:01porque la consulta al querer armar entre

1:21:04las relaciones que tenés en la tabla se

1:21:07es muy grande. Entonces necesitas más

1:21:09vale recorrer con for o hacer if. y

1:21:13otros tipos de de controles antes de de

1:21:15realizar.

1:21:16Exactamente. O hacer la consulta a vos

1:21:18mismo en vez de hacer dejársela hacer al

1:21:20ORM.

1:21:22Claro. Tirarla directamente. Exacto.

1:21:25Bueno, acá es es va por el lado de eso

1:21:28que por ahí yo necesito hacer un

1:21:30procesamiento registro a registro cuando

1:21:33en realidad SQL funciona por conjuntos.

1:21:36Entonces estoy queriendo utilizarlo para

1:21:38otra cosa que no es

1:21:40que no fue pensado para eso.

1:21:44Está

1:21:47Sí, se entiende, profe.

1:21:50Bueno,

1:21:52los demás chicos, ¿se comprendió esta

1:21:54parte o no?

1:21:55Sí, profe. Sí, profe.

1:22:00Bueno, vamos a lo siguiente.

1:22:04Esto queda como tarea para ustedes. Si

1:22:06yo lo voy a saltear ahora.

1:22:09Está bueno que lo conozcan y además.

1:22:12Liste las diferentes interfaces de un

1:22:15SGBD.

1:22:17Caracterice y ejemplifique una de ellas.

1:22:21¿Sí? Fíjense en el libro cuáles son las

1:22:23diferentes interfaces que hay.

1:22:27Tomen una de esas, dicen qué

1:22:30características tienen y den un ejemplo

1:22:33en particular.

1:22:35¿Okay? Eso les queda como tarea para

1:22:38ustedes.

Arquitectura detallada de un SGBD

1:22:43Bueno,

1:22:47¿se acuerdan de este gráfico?

1:22:54Se les hace conocido. Esto lo vimos la

1:22:56clase pasada. Sí.

1:22:59un sistema gestor,

1:23:01sí, me está representando en alto nivel

1:23:06cuáles son los componentes

1:23:10de un sistema de base de datos y el

1:23:12lugar del sistema del sistema gestor de

1:23:15base de datos allí adentro, ¿no? Ya que

1:23:18estamos, fíjense que la sumatoria de las

1:23:21bases de datos almacenadas al catálogo

1:23:23más el sistema gestor, más las

1:23:25aplicaciones

1:23:26y eso un poquito ahí en duda, conforman

1:23:29el sistema de base de datos completo.

1:23:32¿Sí?

1:23:35¿Por qué les muestro esto ahora? Porque

1:23:37la idea es ir poquito más allá, es

1:23:40decir, no no es que vamos a ir al

1:23:41detalle, pero sí vamos a hablar un

1:23:43poquito más respecto de

1:23:47cuáles son los componentes. Y esto viene

1:23:51vinculado también a lo que vimos hace un

1:23:54ratito de la arquitectura. Entonces,

1:23:56¿cuál es el entorno que va a surgir de

1:23:58una base de datos?

1:24:02Siempre hablando de la arquitectura de

1:24:04una base de datos genérica y estamos

1:24:06hablando de los componentes, en

1:24:08particular, los módulos que componen esa

1:24:10base de Sí. Entonces, fíjense esto

1:24:14porque esto es como una abstracción de

1:24:17alto nivel y ahora lo que vamos a hacer

1:24:19es bajar un poquito más. ¿Qué es lo que

1:24:22viene después?

1:24:24Esto sí,

1:24:29fíjense. Vamos, vamos a ir, vamos a Mi

1:24:33es hacerlo con con una animación, pero

1:24:35no me alcanzó el tiempo, así que lo voy

1:24:37a ir explicando por por parte.

1:24:41Eh, bueno, ¿qué identificamos acá a

1:24:44priori respecto de lo que teníamos en el

1:24:48en el diagrama anterior?

1:24:50Vemos que tenemos los dos tamborcitos

1:24:52acá que están representando exactamente

1:24:54lo mismo, ¿sí? El catálogo

1:24:59y la base de datos almacenada.

1:25:01Sí,

1:25:04fíjense que toda la parte superior,

1:25:07vamos a decir esto que está en un

1:25:09celeste, un lila,

1:25:12eh,

1:25:14es que parte acá

1:25:17sí son las aplicaciones

1:25:22o consultas que tenemos allí arriba.

1:25:25Sí.

1:25:29Y en el medio, y acá algunas partes

1:25:33tenemos que tomarlas con pinzas porque

1:25:35en diferentes

1:25:38ediciones del libro las muestra de

1:25:40diferentes maneras. Sí. Así que por eso

1:25:43digo, tomémoslo con pinzas.

1:25:46Este recuadro estaría delimitando

1:25:50el sistema gestor de base de datos.

1:25:53Sí.

1:25:57Fíjense que lo que se encuentra en

1:26:00Celeste. Entonces, vamos a empezar por

1:26:02hablar en lila, perdón, vamos a empezar

1:26:05por hablar de las interfaces con el

1:26:09administrador de base de datos.

1:26:12Un administrador de base de datos, ¿qué

1:26:14es lo que puede

1:26:17hacer en sí?

1:26:19Por un lado, el administrador de base de

1:26:21datos va a ser el encargado de

1:26:23implementar

1:26:25aquellas estructuras que el diseñador

1:26:28propuso. ¿Sí?

1:26:30Entonces, esas estructuras, ¿cómo se van

1:26:32a poder implementar? ¿A través de qué

1:26:34tipo de sentencias?

1:26:38A través de sentencias

1:26:40DDL. Sí, esas sentencias DDL

1:26:45son pasadas al compilador

1:26:50del sistema gestor de base de datos y

1:26:53almacenadas,

1:26:55¿sí?, dentro del catálogo.

1:27:00Y ahí tenemos esa primer parte.

1:27:03Profe, le hago una consulta ahí

1:27:06en base a esta definición. Cuando

1:27:08nosotros tenemos, por ejemplo, ORMs eh

1:27:11de alto nivel, eh vendría a caer en el

1:27:15mismo lugar de la sentencias DDL y que

1:27:18de ahí se, vamos a decir, pasa por el

1:27:20compilador.

1:27:22Fije, ahora ya ahora ya llegamos a eso.

1:27:26Sí. una parte de una si nuestra

1:27:30sentencia cuando hablamos de aplicativos

1:27:33o de programadores,

1:27:35vamos a estar generando al inicio, ¿sí?

1:27:39Una estructura de base de datos, por lo

1:27:41tanto, parte de ello pasaría por este

1:27:43compilador de DL,

1:27:46pero la mayoría del tiempo va a estar

1:27:48pasando por qué compilador?

1:27:50Por el compilador DML.

1:27:54Sí.

1:27:55Pero bueno, vamos a seguir por el lado

1:27:56del DBA.

1:27:58Lo otro que puede hacer el DBA es

1:28:03y una de sus principales facultades es

1:28:07tratar de e mantener la base de datos

1:28:10funcional y para eso tiene acceso a

1:28:12comandos privilegiados.

1:28:14Esos comandos privilegiados, fíjense que

1:28:16impactan en el corazón de lo que es el

1:28:18SGB, que es el procesador de base de

1:28:22datos en tiempo de ejecución o el

1:28:23procesador en tiempo de ejecución de

1:28:25base de datos. Sí.

1:28:28cuya funcionalidad es ejecutar

1:28:33tanto los comandos como las sentencias

1:28:37que se le envíen a ese motor. Y eso

1:28:40impacta tanto en el catálogo

1:28:44como puede impactar tanto en el catálogo

1:28:47como en la base de datos almacenadas.

1:28:51Sí,

1:28:55fíjense que ya que mencionamos esta

1:28:58parte, acá van a ver este módulo que

1:29:01dice gestor de datos almacenados.

1:29:05¿Sí? Y hay una

1:29:08línea

1:29:10punteada o de rayas.

1:29:13¿Qué pasa?

1:29:15El color eh fue elegido a propósito en

1:29:19el sentido de decir, fíjense que todas

1:29:21estas rayas, estas líneas rosadas van a

1:29:25van a parar

1:29:27o tienen contacto con el almacenamiento

1:29:30físico.

1:29:32¿Sí?

1:29:33Entonces, el gestor de base eh el gestor

1:29:38de datos almacenados,

1:29:40

1:29:42se es el es la interfaz entre el sistema

1:29:46gestor de base de datos y el sistema

1:29:49operativo para el almacenamiento de bajo

1:29:52nivel en nuestro sistema de archivos

1:29:58de ese sistema operativo.

1:30:00Por lo tanto, dependiendo

1:30:04eh no no no no voy a tomar dependiendo

1:30:08de la

1:30:10dependiendo de la implementación del

1:30:13motor de base de datos, este gestor de

1:30:15datos almacenados puede estar un poco

1:30:19más adentro o más afuera del sistema

1:30:21gestor de base de datos, pero sí o sí

1:30:23siempre está vinculado a los accesos a

1:30:26nivel de el file system, digamos. Sí.

1:30:32Y acá un detalle no más. Fíjense que

1:30:35este esta raya violeta tendría que

1:30:37llegar a esta también, perdón, tendría

1:30:40que llegar a esta acceso porque

1:30:43obviamente la base de datos almacenada

1:30:45también está almacenada en el sistema de

1:30:47archivos.

1:30:48Por otra parte,

1:30:51cuando nosotros hablamos los se acuerdan

1:30:54de los usuarios casuales, ¿quiénes eran

1:30:56los usuarios casuales?

1:30:59los uses finales en el término de roles,

1:31:02¿cómo?

1:31:02Los que siempre entraban a hacer lo

1:31:03mismo.

1:31:05M

1:31:08en términos de roles sería el usuario

1:31:10final.

1:31:12Es un tipo de usuario final. Sí, pero

1:31:16fíjense que el paramétrico también es un

1:31:18usuario final.

1:31:21¿Qué hacía un ¿Qué diferencia tenía un

1:31:24usuario casual con el resto de los

1:31:27usuarios?

1:31:29No era que justamente no siempre hacía

1:31:32lo mismo, sino que entraba

1:31:33esporádicamente a hacer algo.

1:31:35Exactamente. Entra esporádicamente a

1:31:37hacer algo y cada vez que lo hacía era

1:31:39diferente.

1:31:40Y también acá, se acuerdan que yo dije

1:31:42que acá podríamos agruparlo en realidad

1:31:46como usuarios que

1:31:49pueden o no tener acceso esporádico,

1:31:52pero además

1:31:54acceden con diferentes niveles de de

1:31:58detalle a esa base de datos. Acá también

1:32:01entran los usuarios eh, por ejemplo, eh,

1:32:05específicos como son científicos,

1:32:08ingenieros y matemáticos, físicos, ¿sí?

1:32:12Que requieren de un uso de base de datos

1:32:14intensivo en cuanto a consultas y por

1:32:18eso no trabajan sobre un aplicativo.

1:32:20¿Sí? Entonces, necesitan tener acceso al

1:32:23detalle. Y fíjense que por eso habla de

1:32:25una interfaz a través de consultas

1:32:27interactivas.

1:32:32por esto que le había pedido que vean lo

1:32:34de los roles.

1:32:39Entonces, tienen acceso a esta esta

1:32:41interfaz de consultas interactivas.

1:32:44Eso va a ser compilado por el compilador

1:32:46de consultas, puede llegar a ser va a

1:32:49ser optimizado dentro del sistema gestor

1:32:52de base de datos y directamente se envía

1:32:55al procesador en tiempo de ejecución

1:32:58para finalmente acceder a los datos de

1:33:00almacenados.

1:33:03Sí,

1:33:06está.

1:33:08Y finalmente tenemos esta parte que es

1:33:11la más vidriosa, digamos, que es donde

1:33:14tenemos los programadores y los usuarios

1:33:18paramétricos. ¿Qué eran los usuarios

1:33:20paramétricos?

1:33:22¿Qué características tenían?

1:33:26Esos sí eran los simples, esos eran los

1:33:28que entraban a hacer siempre lo mismo, o

1:33:31sea, siempre utilizaban las mismas

1:33:32consultas, eran

1:33:36los usuarios finales vendrían a ser

1:33:38todos estos son usuarios finales. Todos

1:33:41los usuarios son usuarios finales. Sí,

1:33:43profe. Esa era de los cajeros. Cajeros,

1:33:47ejemplo, ¿y cuál qué cuál qué qué

1:33:49características lo define mejor?

1:33:54Exactamente. Altamente estructurados,

1:33:56¿sí? Tareas repetitivas.

1:34:00Por eso van a ver que

1:34:03ahí también jugué un poco con los

1:34:05colores por el hecho de decir que esto

1:34:08que vemos acá como transacciones

1:34:10compiladas

1:34:12eh puede no el libro no dice exactamente

1:34:15de qué se trata, pero puede ir en dos

1:34:17sentidos. Sí.

1:34:20Uno, seguramente son transacciones que

1:34:23siempre se ejecutan, obviamente de la

1:34:25misma manera, ya sea a través de una

1:34:28aplicación o a través, por ejemplo, de

1:34:30procedimientos almacenados. Por eso es

1:34:32que están ahí, pero también tienen este

1:34:34color y este formato que podría ser algo

1:34:37externo. ¿Sí?

1:34:39Entonces, los usuarios paramétricos

1:34:41hacen uso de eso y las transacciones

1:34:43almacenadas, fíjense que tienen impacto

1:34:47de lleno sobre el procesador en tiempo

1:34:48de ejecución.

1:34:51Y por el otro lado están los

1:34:52programadores, que son los encargados de

1:34:55eh trabajar sobre los programas de

1:34:57aplicación.

1:35:00Esos programas de aplicación,

1:35:02además del código que funcione en el

1:35:05cliente, también van a necesitar enviar

1:35:08sentencias

1:35:09de ML y DDL. Por un lado, se separen las

1:35:13sentencias de ML, el precompilador.

1:35:16Eso es enviado al sistema gestor de base

1:35:19de datos. Este, fíjense esta parte que

1:35:21ese compilador de ML, de acuerdo a la

1:35:24versión, la muestra dentro o fuera del

1:35:26sistema gestor. Yo considero que el

1:35:28compilador de ML debería estar dentro

1:35:29del sistema gestor, por eso lo dejé así.

1:35:32Y eh

1:35:36eso consulta contra el catálogo. Si está

1:35:39correcto,

1:35:41lo une con el producto de la compilación

1:35:44del lenguaje anfitrión. El lenguaje

1:35:46anfitrión se refiere y sharp cs+. Sí. Y

1:35:51con eso armo una transacción compilada.

1:35:54Sí, que de vuelta puede ser un programa

1:35:57que está muy atado a la base de datos.

1:36:01Sí,

1:36:03ese es ese producto compilado tiene

1:36:05acceso al procesador en tiempo de

1:36:08ejecución.

1:36:10Sí.

1:36:12Finalmente, el último elemento que eh no

1:36:15lo habíamos mencionado directamente acá

1:36:18tiene que ver con el control de

1:36:20concurrencia y backup, que todo eso se

1:36:23realiza, ¿sí? Ya a bajo nivel también,

1:36:27¿okay? Y por eso figura ahí enlazado en

1:36:30el acceso a la base de datos almacenada.

1:36:34Sí.

1:36:38Bueno,

1:36:40se comprendió esta parte. En realidad,

1:36:42fíjense que no es que estamos yendo a

1:36:45bajo nivel porque son conceptos

1:36:48generales, ¿sí?

1:36:51Pero sí se intenta explicar un poquito

1:36:54más en detalle lo que eh lo que sucede

1:36:58dentro del sistema gestor.

1:37:00Obviamente cada sistema gestor de base

1:37:03de datos hace esto de manera diferente.

1:37:07¿Sí?

1:37:10Preguntas hasta acá.

1:37:14Ninguna, profe.

1:37:18Vamos a ver una cosita más y después los

1:37:20libero. Sí, quizás les dejo el resto

1:37:22para que ustedes también lo vean, los

1:37:24vean por su parte.

1:37:30¿De qué vamos a hablar ahora entonces?

1:37:32rápidamente

Utilerías de un SBD

1:37:35de las utilerías

1:37:38de un sistema de base de datos que

1:37:40podrían

1:37:42que forman parte de un de una base de

1:37:44datos en sí, pero bueno, se supone que

1:37:46son programas anexos, digamos, a esa

1:37:50base de datos. Dentro de la utilería

1:37:53podemos hablar de

1:37:56las utilerías de carga,

1:37:59¿sí? que son aquellas son aquellos

1:38:03programas que a mí me sirven para poblar

1:38:08o llenar la base de datos con datos.

1:38:10Justamente.

1:38:13Sí.

1:38:15Particularmente recuerdan que habíamos

1:38:18hablado de tres partes de una base de

1:38:22datos o mejor dicho cuatro procesos

1:38:25principales que tienen una base de

1:38:27datos. ¿Se acuerdan cuáles eran?

1:38:30Exacto. Definir, construir, manipular,

1:38:33compartir.

1:38:35Las utilerías de carga, ¿en dónde

1:38:38impactan fundamentalmente?

1:38:42A ver, en construir,

1:38:45¿sí? En la construcción.

1:38:48Okay. Entonces, recuerden eso.

1:38:53Cuando hablamos de utilería de carga

1:38:55tiene que ver con, por ejemplo, la

1:38:57importación inicial que puedo hacer de

1:38:59datos de algún lugar. Por ejemplo, traer

1:39:02cargar desde Excel, ¿sí?, un conjunto de

1:39:05datos a una tabla dentro de mi base de

1:39:07datos. Sí, lo que quiero que busquen es

1:39:12lo siguiente.

1:39:14Normalmente en la jerga, en la práctica,

1:39:18¿cómo se llama

1:39:21a este tipo de herramientas?

1:39:23Sí, eso se los dejo para que busquen

1:39:26ustedes.

1:39:28Suele ser pregunta de examen también.

1:39:31Sí. En la jerga normalmente, ¿cómo se

1:39:35llaman a este tipo de herramientas?

1:39:40Bueno, otro tipo de eh utilerías son las

1:39:44que tienen que ver con respaldo. Esto sí

1:39:46ya lo fuimos mencionando varias veces,

1:39:50¿sí? Eh, las utilías de respaldo, ¿para

1:39:53qué me sirven?

1:40:01Crear una copia de seguridad de la base

1:40:03de datos, una copia de respaldo.

1:40:05Bien. Y habíamos y y esas copias, ¿sí?

1:40:10Eh, ¿qué tecnologías se suelen utilizar

1:40:12para eso?

1:40:15¿De qué manera lo podemos hacer?

1:40:19Con un script.

1:40:22Bueno, sí, a ver, eso es en la parte de

1:40:24software, pero en la parte de hardware

1:40:26normalmente, ¿dónde

1:40:27discos despejados?

1:40:28Una forma es discos despejados,

1:40:31otra

1:40:34va en qué en qué en qué medios yo puedo

1:40:37hacer esa copia.

1:40:39Cinta de backup de respaldo,

1:40:41por ejemplo. Sí, podría utilizar cintas.

1:40:46Uno podría pensar la cinta, no no no es

1:40:49demasiado viejo eso.

1:40:52¿Qué tiene? Pero lo que lo que tiene

1:40:54bueno es que que

1:40:56dura dura mucho tiempo, o sea, el la

1:41:00calidad de la grabación es buena y creo

1:41:03que se hace se utiliza para la parte

1:41:05histórica de los datos históricos.

1:41:08Muy bien, perfecto. Sí, sí. Y a ver, uno

1:41:12uno utilizaría una cinta para datos que

1:41:14accede con frecuencia,

1:41:17¿no? Pues sería muy lento,

1:41:19¿no? No, exactamente las cintas práctic

1:41:22hoy en día se utilizan para backup.

1:41:25Sí, exactamente.

1:41:29Estamos.

1:41:31Y entonces una de las características

1:41:33que tiene es que es confiable, es eh y

1:41:36es barata para grandes cantidades de

1:41:39datos. Sí.

1:41:43Bueno, también podría podría hacer

1:41:46backup en medios ópticos quizás.

1:41:49Sí.

1:41:51Eh, pero todo depende de el costo. Okay.

1:41:57¿Y qué tipo? Habíamos hablado algo de

1:41:59esto. ¿Qué tipo de backup ahora sí en

1:42:01cuanto a las estrategias podría

1:42:03utilizar?

1:42:08explicación era uno que mencionó ahí.

1:42:11Bueno, eso era bueno, está bien, es una

1:42:13posibilidad, pero es es eso es una

1:42:15técnica en realidad, pero eh

1:42:20una copia total o en formato progresivo.

1:42:24Exactamente. Que si se quiere lo que

1:42:25habían nombrado Melina ahí, en la

1:42:31la que es la replicación, sí es una

1:42:35copia.

1:42:36progresiva, ¿sí? Porque se hace

1:42:39constantemente. Entonces, es decir, que

1:42:42cuando hablo de un backup,

1:42:45lo que hago es decir, vamos a suponer

1:42:47cada 10 horas o cada 12 horas hago un

1:42:51backup, o sea, voy a tener dos por día.

1:42:53¿Sí? Entonces, cada vez que hago ese

1:42:57backup,

1:42:58tengo que pensar si lo voy a hacer

1:43:00completo o si lo voy a hacer de manera

1:43:03incremental.

1:43:05Sí,

1:43:08el incremental es el que se fija que

1:43:11cambió, digamos.

1:43:12Exactamente. Se fija que cambió y actúa

1:43:16solamente

1:43:18eh hace backup de eso.

1:43:22Sí.

1:43:26Después tenemos qué otra parte tenemos

1:43:29la

1:43:31reorganización de archivos.

1:43:33Sí.

1:43:35que esto está vinculado

1:43:39justamente también con la performance

1:43:42normalmente de la base de datos y ya

1:43:45habíamos hablado de esto. ¿Qué ejemplos

1:43:47les mencioné?

1:43:50La clave primaria.

1:43:53Bueno, indirectamente sí, pero algo más

1:43:58directo.

1:44:05¿Qué podría llegar a ser allí?

1:44:09Los índices.

1:44:11Los índices. Muy bien. Ese es un ejemplo

1:44:15muy concreto.

1:44:17Había hablado otra cosa hoy también

1:44:21de que, por ejemplo, SQL Server usa dos

1:44:23archivos.

1:44:25Bueno, y ahí podría llegar a ahí eso es

1:44:28por defecto y yo podría decir, "No, no

1:44:30es lo mejor. Yo quiero utilizar tres,

1:44:33cuatro, la cantidad que sea." Sí.

1:44:38Está

1:44:40bien. Eh,

1:44:42y por último,

1:44:45vigilancia del rendimiento. Sí, estas

1:44:48utilerías tienen que ver con los típicos

1:44:51profilers, ¿sí? O sea, ver, tratar de

1:44:55ver cuál es la carga a la cual está

1:44:57siendo sometida una base de datos.

1:45:01Sí.

1:45:02Por ejemplo, típicamente yo estoy

1:45:04teniendo un cuello de botella en mi base

1:45:06de datos, está funcionando lento,

1:45:09entonces tengo que empezar a analizar

1:45:10las consultas que están llegando

1:45:13y

1:45:15lanzo una consulta y veo que esa

1:45:17consulta me está durando 2 segundos. Sí,

1:45:21imagínense eso replicado por muchos

1:45:23usuarios.

1:45:25está.

1:45:27Entonces, bueno, ir viendo allí cómo

1:45:29puedo hacer para mejorar eso. Para eso

1:45:32tengo estas herramientas que me dicen la

1:45:34cantidad de segundos que dura, la

1:45:35cantidad de CPU que está utilizando, la

1:45:38cantidad de acceso a disco que está

1:45:39teniendo.

1:45:41¿Okay?

1:45:44Entonces, esto tiene que ver con las

1:45:45utilerías.

1:45:53Bien.

1:45:54Vamos a dejar acá entonces. Sí.

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.