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

2

Playground: tu primera consulta en bases de datos

Introducción a las bases de datos relacionales

3

Historia de las bases de datos relacionales

4

Qué son entidades y atributos

5

Entidades de Platzi Blog

6

Relaciones

7

Múltiples muchos

8

Diagrama ER

9

Diagrama Físico: tipos de datos y constraints

10

Diagrama Físico: normalización

11

Formas normales en Bases de Datos relacionales

12

Diagrama Físico: normalizando Platziblog

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

13

Instalación local de un RDBMS (Windows)

14

¿Qué es RDB y RDBMS?

15

Instalación local de un RDBMS (Mac)

16

Instalación local de un RDBMS (Ubuntu)

17

Clientes gráficos

18

Servicios administrados

SQL hasta en la sopa

19

Historia de SQL

20

DDL create

21

Playground: CREATE TABLE

22

CREATE VIEW y DDL ALTER

23

DDL drop

24

Playground: VIEW, ALTER y DROP en SQL

25

DML

26

Playground: CRUD con SQL

27

¿Qué tan standard es SQL?

28

Creando Platziblog: tablas independientes

29

Creando Platziblog: tablas dependientes

30

Creando Platziblog: tablas transitivas

Consultas a una base de datos

31

¿Por qué las consultas son tan importantes?

32

Estructura básica de un Query

33

SELECT

34

Playground: SELECT en SQL

35

FROM y SQL JOINs

36

Utilizando la sentencia FROM

37

Playground: FROM y LEFT JOIN en SQL

38

WHERE

39

Utilizando la sentencia WHERE nulo y no nulo

40

Playground: Filtrando Datos con WHERE

41

GROUP BY

42

ORDER BY y HAVING

43

Playground: Agrupamiento y Ordenamiento de Datos

44

El interminable agujero de conejo (Nested queries)

45

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

46

Preguntándole a la base de datos

47

Consultando PlatziBlog

48

Playground: Prueba Final con PlatziBlog

Introducción a la bases de datos NO relacionales

49

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

50

Servicios administrados y jerarquía de datos

Manejo de modelos de datos en bases de datos no relacionales

51

Top level collection con Firebase

52

Creando y borrando documentos en Firestore

53

Colecciones vs subcolecciones

54

Recreando Platziblog

55

Construyendo Platziblog en Firestore

56

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

57

Bases de datos en la vida real

58

Big Data

59

Data warehouse

60

Data mining

61

ETL

62

Business intelligence

63

Machine Learning

64

Data Science

65

¿Por qué aprender bases de datos hoy?

Bonus

66

Bases de datos relacionales vs no relacionales

67

Elegir una base de datos

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Construyendo Platziblog en Firestore

55/67
Recursos

Aportes 148

Preguntas 30

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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:
     

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.

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 😃

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?

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.

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

Subo imagen de mi proyecto:

Firestore es muy sencillo de usar 😁

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.

Excelente!

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.

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.

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

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

Me eh dado cuenta que hay saber cuando colocar las subcolecciones y las referencias en los documentos segun a nuestro punto de vista y que sea entendible para otro usuario todo depende de que seas ordenado cuando uses topcollection.

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

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

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 😄

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.

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

Mi proyecto de farmacos para Acne y HIV:

Las explicaciones del profesor son geniales! Si bien empece desde la clase 40 porque nunca había visto bases de datos no relaciones, pude aprenderlas y aplicarlas directamente sobre mongodb. Gracias profesor!

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

Medio complicado esto de las DB NOSQL…

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.


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?

![](

Ya la clase anterior me queda clara como el agua.

Mi proyecto League of legends

esta mas facil introducir datos me esta gustando mas nosql

Pase toda la Data de Platzi Blog a Firebase y la verdad es muy facil de hacerlo, me queda la duda es si al usar la consola funciona igual que SQL, lo averiguaremos.

Mi proyecto de tienda “eCommerce” en Firestore.

Seria conveniente saber como se crea un diagrama correcto con este tipo de NoSql Data Base

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

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!

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.