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

¿Qué es RDB y RDBMS?

14

Instalación local de un RDBMS (Windows)

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 155

Preguntas 32

Ordenar por:

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

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

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

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.

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.

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 😃

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!

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

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

Mi proyecto de farmacos para Acne y HIV:

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

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

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?

se repite mucho el nombre del campo... una manera mas rapida seria que Firestore automaticamente agregara los campos solo agragas la informacion o borras el campo
![](https://static.platzi.com/media/user_upload/image-1fc43d72-9a20-4d34-a2f2-7b70a8fad457.jpg)

El enfoque de Firestore se basa en la organización de datos en colecciones y documentos, lo que permite una flexibilidad en la estructura de datos. Es importante entender cómo adaptar un proyecto SQL a una base de datos NoSQL para enfrentar los desafíos en proyectos futuros.

La idea principal es que, aunque la forma de estructurar y acceder a los datos es diferente en Firestore, se pueden mantener las relaciones y lograr el mismo propósito: almacenar y acceder a la información de manera efectiva.

Con este tipo de bases de datos veo más intuitivo en la creación de la base de datos, y puede ser una ventaja que se pueda modificar fácilmente en el momento que se requiere guardar nuevos datos.

Bueno, si practiqué el pasar mi proyecto a firebase, aunque me faltaron entidades a definir basicamente si se puede como dice el profe y de hecho la flexibilidad ayudó a resumir cosas:

Aquí esta el resultado de la Base de Datos que creé de un restaurante de comida mexicana 🌮 💚

Lo estuve pensando así:

Colecciones principales: Autor, Categoría, Etiqueta y Subcategoría.
_Colección principal con subcolecciones: _Libro, con subcolecciones de Libro-Autor y Libro-Etiqueta.

Se ve mejor firebase

![](

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