Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

1

Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

Introducción a las bases de datos relacionales

2

Historia de las bases de datos relacionales

3

Entidades y atributos

4

Entidades de Platzi Blog

5

Relaciones

6

Múltiples muchos

7

Diagrama ER

8

Diagrama Físico: tipos de datos y constraints

9

Diagrama Físico: normalización

10

Formas normales en Bases de Datos relacionales

11

Diagrama Físico: normalizando Platziblog

RDBMS (MySQL) o cómo hacer lo anterior de manera práctica

12

¿Qué es RDB y RDBMS?

13

Instalación local de un RDBMS (Windows)

14

Instalación local de un RDBMS (Mac)

15

Instalación local de un RDBMS (Ubuntu)

16

Clientes gráficos

17

Servicios administrados

SQL hasta en la sopa

18

Historia de SQL

19

DDL create

20

CREATE VIEW y DDL ALTER

21

DDL drop

22

DML

23

¿Qué tan standard es SQL?

24

Creando Platziblog: tablas independientes

25

Creando Platziblog: tablas dependientes

26

Creando Platziblog: tablas transitivas

Consultas a una base de datos

27

¿Por qué las consultas son tan importantes?

28

Estructura básica de un Query

29

SELECT

30

FROM

31

Utilizando la sentencia FROM

32

WHERE

33

Utilizando la sentencia WHERE nulo y no nulo

34

GROUP BY

35

ORDER BY y HAVING

36

El interminable agujero de conejo (Nested queries)

37

¿Cómo convertir una pregunta en un query SQL?

38

Preguntándole a la base de datos

39

Consultando PlatziBlog

Introducción a la bases de datos NO relacionales

40

¿Qué son y cuáles son los tipos de bases de datos no relacionales?

41

Servicios administrados y jerarquía de datos

Manejo de modelos de datos en bases de datos no relacionales

42

Top level collection con Firebase

43

Creando y borrando documentos en Firestore

44

Colecciones vs subcolecciones

45

Recreando Platziblog

46

Construyendo Platziblog en Firestore

47

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

48

Bases de datos en la vida real

49

Big Data

50

Data warehouse

51

Data mining

52

ETL

53

Business intelligence

54

Machine Learning

55

Data Science

56

¿Por qué aprender bases de datos hoy?

Bonus

57

Bases de datos relacionales vs no relacionales

58

Elegir una base de datos

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Construyendo Platziblog en Firestore

46/58
Recursos

Aportes 137

Preguntas 24

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Resumen
Emplear colecciones de nivel cero para entidades fuertes, que mas adelante se empleen para realizar busquedas exhaustivas.
Emplear subcolecciones para entidades débiles, que solo permitan plasmar información relacionada, pero que dicha data no sea una fuente de consulta primaria para nuestra aplicación.

Me caen mejor los “reference” que los foreign keys jajaja

Para que hagan COPY-PASTE de la info del post. Espero les sirva 😉 ❤️

titulo Se presenta nuevo movil en evento
fecha_publicacion 2030-04-5
contenido Phasellus laoreet eros nec vestibulum varius. Nunc id efficitur lacus, non imperdiet quam. Aliquam porta, tellus at porta semper, felis velit congue mauris, eu pharetra felis sem vitae tortor. Curabitur bibendum vehicula dolor, nec accumsan tortor ultrices ac. Vivamus nec tristique orci. Nullam fringilla eros magna, vitae imperdiet nisl mattis et. Ut quis malesuada felis. Proin at dictum eros, eget sodales libero. Sed egestas tristique nisi et tempor. Ut cursus sapien eu pellentesque posuere. Etiam eleifend varius cursus.\n\nNullam viverra quam porta orci efficitur imperdiet. Quisque magna erat, dignissim nec velit sit amet, hendrerit mollis mauris. Mauris sapien magna, consectetur et vulputate a, iaculis eget nisi. Nunc est diam, aliquam quis turpis ac, porta mattis neque. Quisque consequat dolor sit amet velit commodo sagittis. Donec commodo pulvinar odio, ut gravida velit pellentesque vitae. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.\n\nMorbi vulputate ante quis elit pretium, ut blandit felis aliquet. Aenean a massa a leo tristique malesuada. Curabitur posuere, elit sed consectetur blandit, massa mauris tristique ante, in faucibus elit justo quis nisi. Ut viverra est et arcu egestas fringilla. Mauris condimentum, lorem id viverra placerat, libero lacus ultricies est, id volutpat metus sapien non justo. Nulla facilisis, sapien ut vehicula tristique, mauris lectus porta massa, sit amet malesuada dolor justo id lectus. Suspendisse sit amet tempor ligula. Nam sit amet nisl non magna lacinia finibus eget nec augue. Aliquam ornare cursus dapibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\nDonec ornare sem eget massa pharetra rhoncus. Donec tempor sapien at posuere porttitor. Morbi sodales efficitur felis eu scelerisque. Quisque ultrices nunc ut dignissim vehicula. Donec id imperdiet orci, sed porttitor turpis. Etiam volutpat elit sed justo lobortis, tincidunt imperdiet velit pretium. Ut convallis elit sapien, ac egestas ipsum finibus a. Morbi sed odio et dui tincidunt rhoncus tempor id turpis.\n\nProin fringilla consequat imperdiet. Ut accumsan velit ac augue sollicitudin porta. Phasellus finibus porttitor felis, a feugiat purus tempus vel. Etiam vitae vehicula ex. Praesent ut tellus tellus. Fusce felis nunc, congue ac leo in, elementum vulputate nisi. Duis diam nulla, consequat ac mauris quis, viverra gravida urna.
estatus TRUE

titulo Tenemos un nuevo auto inteligente
fecha 2025-05-04
contenidoPhasellus laoreet eros nec vestibulum varius. Nunc id efficitur lacus, non imperdiet quam. Aliquam porta, tellus at porta semper, felis velit congue mauris, eu pharetra felis sem vitae tortor. Curabitur bibendum vehicula dolor, nec accumsan tortor ultrices ac. Vivamus nec tristique orci. Nullam fringilla eros magna, vitae imperdiet nisl mattis et. Ut quis malesuada felis. Proin at dictum eros, eget sodales libero. Sed egestas tristique nisi et tempor. Ut cursus sapien eu pellentesque posuere. Etiam eleifend varius cursus.\n\nNullam viverra quam porta orci efficitur imperdiet. Quisque magna erat, dignissim nec velit sit amet, hendrerit mollis mauris. Mauris sapien magna, consectetur et vulputate a, iaculis eget nisi. Nunc est diam, aliquam quis turpis ac, porta mattis neque. Quisque consequat dolor sit amet velit commodo sagittis. Donec commodo pulvinar odio, ut gravida velit pellentesque vitae. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.\n\nMorbi vulputate ante quis elit pretium, ut blandit felis aliquet. Aenean a massa a leo tristique malesuada. Curabitur posuere, elit sed consectetur blandit, massa mauris tristique ante, in faucibus elit justo quis nisi. Ut viverra est et arcu egestas fringilla. Mauris condimentum, lorem id viverra placerat, libero lacus ultricies est, id volutpat metus sapien non justo. Nulla facilisis, sapien ut vehicula tristique, mauris lectus porta massa, sit amet malesuada dolor justo id lectus. Suspendisse sit amet tempor ligula. Nam sit amet nisl non magna lacinia finibus eget nec augue. Aliquam ornare cursus dapibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n\nDonec ornare sem eget massa pharetra rhoncus. Donec tempor sapien at posuere porttitor. Morbi sodales efficitur felis eu scelerisque. Quisque ultrices nunc ut dignissim vehicula. Donec id imperdiet orci, sed porttitor turpis. Etiam volutpat elit sed justo lobortis, tincidunt imperdiet velit pretium. Ut convallis elit sapien, ac egestas ipsum finibus a. Morbi sed odio et dui tincidunt rhoncus tempor id turpis.\n\nProin fringilla consequat imperdiet. Ut accumsan velit ac augue sollicitudin porta. Phasellus finibus porttitor felis, a feugiat purus tempus vel. Etiam vitae vehicula ex. Praesent ut tellus tellus. Fusce felis nunc, congue ac leo in, elementum vulputate nisi. Duis diam nulla, consequat ac mauris quis, viverra gravida urna.
estatus TRUE

El curso de firebase para web es un buen inicio para hacer uso de firestore esta muy bueno y super recomendado con esto puede ir complementado su ruta para aprender mas sobre firestore https://platzi.com/clases/firebase-web/

Es algo raro pasar de lo que ya estaba acostumbrada a las BD no relacionales, pero me esta gustando

Muchas gracias por el vídeo instructor Israel. Mientras estaba practicando el desarrollo de mi proyecto en Firestore, note las siguientes cosas:

  1. Puedes guardar las fechas sin escribir hora alguna quedando por defecto el 00:00:00, así te ahorras algunos segundos mientras añades los documentos.
  2. A medidas que vas agregando colecciones, subcolecciones y documentos, se va volviendo más difícil distinguirlos si usas las Id automáticas proporcionadas por Firebase.
  3. Es sencilla de manejar una vez te familiarizas con la interfaz, pero dependerá bastante de la aplicación a la que se asocie para que pueda ser realmente eficiente al momento de añadir registros.
     
    Por último, comparto una imagen del proyecto hecho en Firestore:
     

Hola! En cuanto a las etiquetas, yo las agregué como Top Level Collections y en los posts creé una subcolección llamada posts_etiquetas que tienen un campo de tipo “reference” y allí coloqué la referencia a cada etiqueta del top level collection 😃

Por si acaso se confunden como yo:
Cloud Firestore a.k.a. Firestore es la base de datos (NoSQL) más reciente de Firebase para el desarrollo de apps para dispositivos móviles.
Firebase es una plataforma para el desarrollo de aplicaciones web y aplicaciones móviles.

Debido a que este es un curso de base de datos no muestran como funciona junto con el backend, al menos no a este punto. En la vida real no hay nadie llenando las bases de datos manualmente, este tipo de base de datos manejan esquemas en ingles scheme es algo asi como una guia para que al momento de guardar la colección sepa como hacerlo adjunto imagen de un schema en MongoDB para un blog sencillo.

  • tiene un titulo
  • la etiqueta
  • el body

al final retorna un JSON.

No estoy muy seguro de que estos videos mostrándonos como usar una interfaz de firebase sea lo que en verdad necesitamos para aprender bases de datos no relacionales. Este tiempo se pudo haber invertido en cosas mucho más prácticas y que de verdad requieran conocimiento real del tema, porque manejar una base de datos por medio de una interfaz me parece que no requiere mucho skill.

Estimado Profe: Seguí esta clase, con MongoDB, y me encontre con la sorpresa de que esa Base de Datos no soporta de Manera Nativa los JOINs o referencias entre documentos y/o colecciones… Lo q me hace pensar en el como los datos pueden ser consultados en estos tipos de bases de datos… !!! Y en lo ORDENADO, que se debe ser, al trabajar con estas Bases de Datos.

Interesante el cambio de paradigma, es notable que debes cambiar tu enfoque al momento de diseñar tu estructura y evitar pensar en relaciones entre entidades.

Me gusto, empiezo a comprender mejor, pero me salen un buen de dudas, la mas importante, como lo consultamos y como lo consumimos?

Subo imagen de mi proyecto:

Es romper el conocimiento de bases relacional, para poder abordar una solución de no relacional

Hay algún limite de caracteres en el valor del campo contenido? suponiendo que sea un texto realmente largo, Firebase permite agregarlo todo? De antemano gracias. Saludos.

Excelente!

Calculo que lo hice bien:

al final guardamos en la subcoleccion etiquetas 2 veces el campo nombre etiqueta, para esto deberiamos usar un array, ya que estamos sobreescribiendo en el campo nombre etiquera y se borra el anterior.

Excelente clase sobre bases de datos no relacionales. Nunca había trabajado con este tipo de bases de datos, pero me ha surgido hambre por aprender sobre este tema. Gracias por este curso.

Que buena clase, pienso que las bases de datos no relacionales se basan mas que todo en la lógica y el sentido de utilidad que le dará la persona que desarrolle, entiendo que tienes sus diferencias y limitaciones en cuanto a las BD relacionales, pero veo que estas son de un manejo mucho mejor.

Firestore es muy bueno, fue mucho mas fácil Workbench

Firestore es muy sencillo de usar 😁

Las “llaves foraneas” son más sencillas de trabajar como referencias

Excelente curso, base de datos no relacionales, me empezaron a gustar

Las bases de datos NoSQL cambian tu perspectiva con respecto al almacenamiento de la información.

Interesante curso… esta muy bueno para ser CURSO DE FUNDAMENTOS DE BD

Corríjanme si me equivoco. En SQL lo que intentamos crear son datos atómicos para luego poder hacer consultas complejas.
Mientras que en Firestore sólo buscamos almacenar la información de forma ramificada para que pueda funcionar nuestra aplicación.

PASOS A SEGUIR:
-Construimos categorias “espectaculos”,“deportes” y “ciencia” como top level collection.
-Creamos en top level la coleccion usuarios.
-Creamos la top level posts con dos articulos.
-Ahora hacemos la relacion del top level collection del usuario agregando un campo en un documento posts usando el campo reference agregando el usuario.
-Agregamos las referencias para las categorias.
-Finalmente agregamos las subcolecciones etiquetas a los posts en agregar coleccion.

Varía un poco la introducción de campos. Hay alguna forma de no escribir lo mismo todas las veces para los campos? Es decir como una plantilla donde solo se ponga el valor.

Me ha encantado este tipo DB, se aproxima mucho más al mindmap de un front end o las veo perfectas para trabajar con frameworks como react y consumir el estado desde la DB

Me gusto bastante la explicación, es bastante claro lo que dice, muchas gracias.
Una consulta que pasa si tengo 100 post (caso hipotético) y quiero agregar una categoría, debo de hacerlo uno por uno o puedo acceder a la categoría post principal y a travez de donde llamo a firebase lo puedo agregar? Saludos!

De verdad me parece super interesante como se trabajan con las base de datos NoSql. Traen consigo muchas ventajas y si bien la filosofia no es exactamante la misma que en las RDBMS, se trabaja de manera muy similar solo que aqui estructuramos la Bd segun el uso real que necesite la aplicacion para asi optimizar los recursos del proyecto.

el modulo de las bases de datos relacionales me parecio mas completo y quiza mas complicado, pero a mi punto de vista esto se debe a que la base de datos no relacional basada en documentos, es un poco mas intuitiva. Ya casi acabo el curso, y la verdad que me gusto mucho!!

Quiero pensar que hay una manea más rápida de ingresas datos ¿Verdad?
¿O hay que estar agregando datos unos por uno con todo y el nombre de su campo?

¿4 de Mayo?, ¿May the 4th be with you? :nerd_face:

muy interesante Firestone, no lo conocia

una pregunta, no mas facil poner añadir campo ? o difiere?

Estoy ansioso por hacer consultas en firestore.
Estoy pensando usarla para registrar mis contactos telefónicos

Yo solo veo en mi mente el codigo en JSON 😃

En mi proyecto solamente habría una top level collection, que sería el Workout:

Dentro de ella estarían las colecciones Athlete y Exercises. Dentro de atleta estaría la subcolección Trainer, y dento de ejercicios la subcolección Equipment.


Hice la base de datos de el club de ajedrez cerca de donde vivo, espero implementarla en alguna interfaz gráfica para poder darla en agradecimiento a ese club 😄

En NoSQL, contrariamente a las reglas de Codd:
La desnormalización es el proceso de duplicar datos con el fin de reducir o simplificar las consultas

En SQL:
Una 5FN hace referencia a que después de realizar el proceso de normalización, utilizaríamos JOIN para permitirnos regresar a la data original de la cual partió

Este método es habitual en las bases de datos NoSQL, ya que mejora el rendimiento de las operaciones de lectura y facilita mucho tu trabajo

Emplear el tipo _Reference _en los campos de un documento te permite hacer una relación a otra colección, en éste caso, se uso para ligar los documentos dentro de la top level collection posts a las otras dos top level collections, categoria y usuarios.

Tengo una gran inquietud tanto para Firebase como SQL. ¿cómo se puede ingresar datos de manera masiva? hasta ahora en Firebase lo hemos hecho uno por uno, y en SQL Israel nos dejó el código con toda la info. Es decir, la base se construye registro por registro o hay formas de hacer registros masivos en cuestión de segundos??

Los GUI son muy molestos

Interesante pero bien complejo estas bases de datos por documentos.

Gracias!

Brutal esta clase. Pienso que lo aquí prevalece es el sentido común a la hora de crear una base de datos y visualizar el comportamiento esperado de la misma.

Muy interesante el ejemplo. Es otra forma de visualizacion. Me parece mas comodo el SQL para un tipo de base de este tipo.

muy buen somnífero la clase!!!

Fácil e intuitivo.

excelente explicacion, muy dinamica !!

interesante!

Muy buena clase, gracias

Excelente clase.

Se siente un poca más intuitivo de usar

Wow, interesante ejercicio, mi base de datos tiene muchas tablas, 😉

¿Como se pueden importar datos de excel a firestore?

Es fácil pasar los datos hacia Firestore, el tema es organizar el tema de las colecciones cuando sea un ejemplo con muchísimas más entidades.

Por ahora todo el curso súper entendible.

para el login se puede usar Authentication con redes sociales, correo y contraseña, numero de telefono, etc.

Hasta aquí, super bien, pero aun no entiendo como establecer conexiones desde estos datos hacia frontend o visualizarlos.

En Firebase cómo se harían las consultas?

Es más sencillo manejar las referencias, ya que no se deben crear las llaves foráneas y los id, solo debemos saber a dónde pertenece y listo. Mientras que SQL es mucho mas engorroso el proceso de creación

No veo la lectura que dice el profesor que iba a dejar, alguien la tiene?

Yo lo hice de esta forma y e pidido entendelo mucho mejor ya que atraves del document-id lo puedo relacionar con otras collection. ![](
![](

Hola comunidad,
a si va quedando

Medio complicado esto de las DB NOSQL…

La organización de los datos es muy diferente a las RDB, pero es muy interesante y parece muy fácil. 💚

Para una aplicación real de 1000 usuarios, ¿tendría que hacer las referencias así, para cada uno de los usuarios y para cada post? OMG!

Me gusta mucho firestore, empezaré a considerarla para nuevos proyectos! Incluso su interfaz de usuario me parece super agradable

Y los comentarios?

Es más comodo crear la base de datos aquí ahahha

¿Qué hacer con las restricciones como UNIQUE?

Muy bueno el curso, permite estar actualizado y tener una nueva vision para la realización de los proyectos

Excelente clase!

Me parece muy flexible trabajar con este tipo de bases de datos, si bien tienen algunos puntos negativos, son mucho mas los positivos con respecto a las bases de datos relacionales.

En el futuro se pondran normas para facilitar el uso de las base de datos NOSQL y tendremos un motor de base de datos llamado “MONGODB SERVER” que sera de microsoft y se podra usar en la nube

Al ver las DB no relacionales me imagino en un archivero y es tal cual como uno.

Hola, tengo una pregunta. Es posible exportar los datos de Workbench o otro cliente gráfico a una base de datos NoSQL? o se tiene que hacer todo de forma manual?

Usando bases de datos relacionales ya tengo su tiempo. Y he usado Mongo alguna vez y me nace la duda en este caso ¿Porque poner las etiquetas como una colección y no como un array?

Si las BD relacionales usan SQL para poder hacer consultas sobre ellas , en las NoSQL DB cada tipo usa su propio lenguaje para poder hacer consultas?Como hago consultas sobre este tipo de BDs? Como influyen los archivos JSON aqui?

Que gran herramienta de practica es fire base.

Muy buena clase!!!

Buena explicación de Firestore.

No entiendo muy bien la diferencia de top level, hace referencia a la tercera columna de donde se crean campos intrínsecos del documento ?

interesante las bases no relacionales, pero como se hacen las consultas toca repasar eso.

genial

Gracias

Por fin entendi como se trabaja una base de datos de Firestore muy interesantes las Bases de Daos no relacionales