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 鈥渞eference鈥 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 鈥渞eference鈥 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 鈥渆spectaculos鈥,鈥渄eportes鈥 y 鈥渃iencia鈥 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 鈥渓laves 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 鈥渆Commerce鈥 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 鈥淢ONGODB 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.