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

Creando y borrando documentos en Firestore

52/67
Recursos

Aportes 139

Preguntas 30

Ordenar por:

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

Tipos de datos en Firestore:

  1. String: Cualquier tipo de valor alfanumérico

  2. Number: Soporta enteros y flotantes.

  3. Boolenan: Los clásicos valores True y False

  4. Map: Permite agregar un documento dentro de otro.

  5. Array: Permite agregar un conjunto de datos (soporte multi type) sin nombre e identificador.

  6. Null: Indica que no se ha definido un valor.

  7. Timestamp: Permite almacenar fechas (guarda el año, mes, día y hora).

  8. Geopoint: Guarda una localización geográfica (coordenadas latitud-longitud).

  9. Reference: Permite referencia un documento (relaciona dos documentos, no importa su colección).

Tengo 2 años de experiencia con Firestore, y luego de meterme hasta los dientes al punto de mantener contacto con google devs detrás del driver de Firestore para Node levantando hilos en Github, dejenme decirles que Firestore solo es excelente cuando quieres maquetar ideas o hacer MVP de un proyecto. En lógicas de negocio nivel medio y avanzado es una verdadera decepción. Vayanse a Mongo Atlas definitivamente, ahí yo encontré la solución a todos mis problemas aunque me haya costado mucho más estudio que lo que me tomó Firestore.

Tipos de datos en Firestore
• String
• Number
• Boolenan
• Map -> Da la opcion de meter otro document dentro del que ya estas creando
• Array ->Arreglo para meter un grupo de datos que no se ocupa identificador y estructura
• Null -> No se ha definido el valor
• Timestamp
• Geopoint ->Guarda una localización geográfica.
• Reference -> Mandar liga a otro documento. Puede ser en la colección actual u otra colección

En la startup que funde (https://waypooltech.com/) usamos firebase y realmente ha sido excelente la experiencia con los servicios!!! recomendada

Pregunta de certificacion:
Tipos de datos de FireStore?

  • string
    -number
    -boolean
    -map
    -array
    -null
    -timestamp
    -geopint

Como curiosidad, dentro de un array no puedes meter directamente otro array, pero si puedes meter un map y dentro del map uno o varios arrays más.

Apuntes:
Un ID en un documento, funciona como un N° de serie.
Los tipos de datos con los que se pueden trabajar pueden ser de tipo string (como cadenas de texto), number (que acepta tanto valores enteros como decimales), asi como también booleanos (que aceptan un true o false, es decir verdadero o falso).
El tipo de dato map en específico, permite crear un documento dentro de otro documento. El tipo de datos array, como su nombre lo indica acepta un arreglo que a su vez permite contener datos con sus respectivos índice y valor, similar al map.
El tipo de datos timestamp y el tipo de dato null, funciona de manera muy similar al modelado SQL.
El tipo de dato geopoint, nos permite guardar una localización geográfica, algo muy útil en aplicaciones como Google maps.
El tipo de datos reference nos envia una “liga” a otro documento, es decir funcionaria como una llave foránea, haciendo alusión a SQL.

37. Mis apuntes sobre: “Creando y borrando documentos en Firestore”

Tenemos los siguientes tipos de datos en Firebase

  • String: Permite de 1 a muchos caracteres consecutivos (cadenas de textos).
  • Number: Permite números enteros o decimales.
  • Boolean: Permite solo los valores -> True o False.
  • Map: Permite almacenar un documento dentro del valor del campo, y puede tener otro más y otro más.
  • Array: Este tipo de campo permite tener adentro una colección de campos de cualquier tipo y tamaño.
  • null: Crea un campo con un nombre pero sin un valor.
  • timestamp: Es un campo que guarda como valor fecha (año, mes y día) y hora (hora, minuto, segundo).
  • geopoing: Guarda la latitud y longitud en grados.
  • reference: Referenciar el campo a otro documento que está en otro lugar.
<h3>Tipos de datos</h3>

string todo lo que es texto

number enteros o decimales

boolean true/false

map meter otro documento dentro del documento

array meter grupos de datos sin identificador

null

timestamp fecha y hora

geopoint localización geográfica

reference referencia la liga a otro documento. “la llave foránea”

Definitivamente muy buen curso para ser un básico, genial la explicacion acerca de las bases de datos no relacionales!

Orden de los tipos de valor
Cuando una consulta incluye un campo con valores de varios tipos, Cloud Firestore usa un orden determinista basado en representaciones internas. La lista siguiente muestra el orden:

**Null **- Valores nulos
**Boolean **-Valores booleanos
**Integer, Floating, Numeric ** Valores de números enteros y de coma flotante, en orden numérico
Valores de fechas
Valores de strings de texto
Valores de bytes
Referencias de Cloud Firestore
Valores de puntos geográficos
Valores de matrices
Valores de mapas

Me parece soprendente que no puedes crear una colección sin documentos, pero sí puedes eliminar todos los documentos de una colección pero ella seguirá ahí.

Es curioso, no se puede meter un array dentro de un array pero se puede meter un map y dentro de ese map un array

me aburri del eco xd

en una base de datos NoSql se pueden definir mapas dentro de un registro.
en DynamoDB funciona de la misma manera
Ejemplo:
{
nombre: “Nombre estudiante”,
Apellido: “Apellido_Estudiante”,
Materias:
{
Nombre_Materia : "Nombre1"
Contenido: “Contenido de la mteria”
}
}

La profundidad con la cual se puede llegar a trabajar depende de cada base de datos

Al principio no encontraba la ventana que estaba mostrando el profesor en la clase y validando me di cuenta que había cambiado el nombre del botón de “Database” a “Cloud Firestore”. Quizás a alguien le sirva de ayuda jejej

Creación de documentos
El formato es el siguiente:
campos → tipos de datos → valor(es)
Tipos de datos en Firestore:

  • string → cualquier valor de tipo texto (alfanumérico)
  • number → cualquier número
  • boolean → valores lógicos (true/false)
  • map → permite insertar otros documentos dentro del documento
  • array → permite insertar distintos valores de distintos tipos en un documento (no tienen id ni nombre)
  • null → documento vacío, modificable después
  • timestamp → fecha y hora
  • geopoint → ubicación geográfica (latitud y longitud)
  • reference → permite enlazar (referenciar) a otro documento

Creando y borrando documentos en Firestore

  • El tipo de dato para las cadenas de texto es string .
  • El tipo de dato para los números es number .
  • Esta el tipo de dato booleano boolean , este permite el true o false .
  • Existe un tipo de dato llamado map , da la opción de crear “documentos” dentro de un documento. Para asignar un grupo de campos y valores. Permite crear estructuras de datos más complejas.
  • Esta el tipo de dato array , permite indexar valores.
  • El tipo de dato null , que permite dejar un campo con nombre, pero lo define como un valor null.
  • El tipo timestamp , que permite seleccionar una fecha con el formato DD/MM/AAAA HH:MM:SS .
  • El tipo de dato geopoint , se refiere a guardar una localización geográfica. Requiere datos de latitud y longitud.
  • El tipo de dato reference , es una forma de relacionar otro documento con mi documento actual.

Platzi, ¿dónde estabas cuando yo sufría en la universidad tratando de programar aplicaciones móviles?
Necesitaba estas clases y mejor explicadas no pueden estar ^_^

Bastante sencilla la interacción con este tipo de base de datos, Firestore se ve que es fácil de utilizar, los id de los documentos son complejos pero bueno Google asegura que sean únicos.

Excelente vídeo, entre todas las variables que vimos me llamo la atención la de Map para crear subagrupaciones y la Geopoint para poder establecer un punto específico en el mapa, dependiendo la funcionalidad que le demos a la base de datos, estas tendrán bastante utilidad.

Muy visual este gestor de bases de datos no relacionales.

Firebase actualmente es muy diferente por lo cual recomiendo leer la información de la pagina oficial. Evitaras muchos inconvenientes.

No se, pero estoy en Firebase, y no aparece lo mismo que esta explicando el profesor. Tal parece que cambio la interfaz.

El sistema escribe JSON por debajo. El tipo map escribe un objeto ‘{}’ llaves.

Tipo de datos -Orden de clasificación
Mapa- Por claves y, luego, por valor
Nulo- Ninguno
Referencia- Por elementos de ruta de acceso (colección, ID de documento, colección, ID de documento…)
String de texto- Orden de bytes con codificación UTF-8

Entre mas cerca este el cloud de tus clientes,sera mas rapida la respuesta del servidor para tus clientes.
.

  • Google crea un hasj para definir el id predeterminado por colección.
  • No es necesario un CHAR o VARCHAR, simplemente se le asigna como un STRING

Los contextos de los tipos de datos especiales de Firestore los asocié correctamente.
Recuerdo que en un proyecto se pedía determinar la distancia entre dos puntos geográficos, y en MongoDB se empleaba algo como GEOjson

Firebase ofrece mucho y eso esta excelente, lo explotaré a ver hasta donde me permite la cuenta sin cobro, aunque después de eso planeo consumir este servicio para probar todas sus herramientas.

Esta es un área de trabajo totalmente nueva para mí, por lo cual encuentro bastante interesante la presente lección. Incluye tipos de datos que nunca había manejado y estoy emocionada de comenzar a trabajar con ellos.

Importa y exporta datos
Puedes usar el servicio administrado de importación y exportación de Firestore a fin de recuperar datos borrados de manera accidental y exportar datos para el procesamiento sin conexión. Puedes exportar todos los documentos o solo colecciones específicas. Asimismo, puedes importar todos los datos de una exportación o solo colecciones específicas. Los datos exportados de una base de datos de Firestore se pueden importar a otra base de datos de Firestore. También puedes cargar exportaciones de Firestore en BigQuery.

En esta página, se describe cómo importar y exportar documentos de Firestore mediante el servicio administrado de importación y exportación y Cloud Storage. El servicio administrado de importación y exportación de Firestore está disponible a través de la herramienta de línea de comandos de gcloud y las API (de REST y de RPC) de Firestore.

Las entidades en sql son como plantillas que se deben llenar con la misma cantidad de atributos en cambio cada un documento en una base de datos NOSQL puede seguir sus propias reglas y un regrstro no tiene por que ser igual al otro aunque sea de la misma coleccion

Creando documentos, en el campo valor, tenemos restricciones con la ortografía?..tildes, la ñ… para nombres y apellidos

¿Alguien sabe si dejo una base de datos en Firebase y no se utiliza te cobran por eso?

El tipo de documento “Map” me recuerda a la definición de clases en cuanto a programación se refiere.

Desconocía el tipo de datos MAP, permite ingresar dos valores asociados a coordenadas.

Por su interfaz parece un juguete, pero posta que json es complicado!

Documenception!

Definitivamente tiene mucho parecido con el modelo de BD relacional.

Geopoint : Tipo de dato el cual se refiere a guardar una localización geográfica, latitud, longitud y se mide en grados.

Explicación clara y concisa, muy clara y de gran ayuda.

Creería conveniente actualizar esta sección del curso, ya que la pagina web a la fecha de hoy, esta totalmente diferente a como se muestra en el video de hace 4 años

Me estaba dando un poco de miedo esta plataforma, pero con esta clase siento que ya estoy empezando a entender. Excelente profesor

  • String --> Para datos de tipo, cadena de datos.
  • Number --> Datos de tipo integer o float
  • Map --> Crea un documento dentro de otro que se ha creado. pErmite realizar estructuras de datos complejas, agregando un doc o objeto JSON dentro del doc que se está creando.
  • Array --> Arreglo para un grupo de datos, para una serie de valor exceto otro array. No es necesario que tenga orden.
  • Geopoint --> Tipo de dato el cual se refiere a guardar una localización geográfica

Creación de documentos en Firestore

Tipos de Datos

  1. String = Texto
  2. Number = Enteros o decimales (flotantes)
  3. Boolean = True / false
  4. Map = Insertar otro documento dentro del documento actual (document insertion)
  5. Array = Collección de datos
  6. Null = Ausencia de datos en el campo especificado
  7. Timestamp = Fechas (month,day,year)
  8. Geopoint = Localización geográfica (latitud, longitud)
  9. Reference = Unir a otro documento

Huy profe que pedazo de clase se tiro, me parecio muy muy productiva esta clase.

80-123 está en Polonia, Europa

TIPO DE DATOS FIRESTORE EN FORMATO JSON

{
'STRING' : "texto",
'NUMBER' : "numeros enteros y flotantes",
'BOOLEAN' : "true or false",
'MAP' : "agregar un documento dentro de otro documento",
'ARRAY' : "agregar un grupo de datos como array",
'NULL' : "valor nulo",
'TIMESTAMP' : "almacena fechas",
'GEOPOINT' : "guarda localizacion punto A y punto B",
'REFERENCE' : "relaciona los documentos"
}

Documentacion oficial del Emulador Local de FireBase que se una en la clase
https://firebase.google.com/docs/emulator-suite

Tipo de datos:

* String, caracteres acepta letras y numeros

* Number, acepta numeros enteros y flotantes

* Boolean, valor booleano

* Map, Es un tipo de valor que permite agregar otros documentos dentro del mismo, algo asi como si fuera un folder y ademas admite dentro de su estructuraa crear otro tipo de maps

* Array, Arreglos son un tipo de datos que no necesariamente se necesita tener un tipo de identificador para cada uno de los datos sino que solamente se van a almacenar distintos valores dentro de este mismo campo, admite distintos campos de valores en excepcion de otro array

* NULL, Significa que el valor del campo va a tener valor nulo 

* TIMESTAMP, Almacena fecha dia mes y año ademas de la hora

* GEOPOINT, Almacena ubicaciones geograficas con latitud y longitud

* Reference, Es el unico campo donde se ve algo basado en relacion en base de datos NoSQL, Esto lo que hace es referenciar de un documento a otro

Aqui puedes acceder a una guia dentro de la pagina de FIREBASE y entender todo los tipos de DOCUMENTS, COLLECTIONS y otro modelos de datos inlcuso hay un canal de youtube de Google que tambien explica detalles especificos.

https://firebase.google.com/docs/firestore/data-model

Aqui puedes escribir datos al mismo tiempo que crea la coleccion, es bases de datos relacional si no esta creada la tabla genera error

Se nota que es bien completo lo que ofrece, firebase. Me ha gustado mucho, se puede ver claramente la analogía con lo que hacíamos en BD relacionales

La base de datos que creo en Firebase, la puedo exportar o guardar en formato que después lo pueda leer con Workbench sql?, lo digo por que para organizar la estructura se ve muy bien, y despues la puedo escalar en un servidor privado o trasladarlo a otros proveedor cloud

Hice un cuadro resumen por si le sirve a alguien

Si alguien se confundió como yo en firebase DataBase ahora se llama Cloud firestore y no realtime Database.

Firestore ahora esta generando pago con el Plan Blaze para poder crear una base de datos. 😦

Esto está buenísimo, pero la verdad si me estoy confundiendo bastante 😥

Muy interesante los diferentes tipos de datos que soporta Firestore.

Si te esta gustando este tema; Platzi tiene toda una carrera dedicada a firebase: https://platzi.com/firebase/

Muy buena DB, parece simple, se ve facil de usar.

Excelente información y bastante amigable la plataforma de Firebase.

Muy interesante lo de map, geopoint y reference

ese tipo de dato map hace mas sencillo a la hora de agregar datos , genial!!

Para ampliar los tipos de datos descritos por el profesor en la clase dejo enlace a la Documentación oficial de Firestore

Interesante herramienta

Firestore una excelente opción para aprender NoSQL.

al momento de generar los documentos, es necesario meter los valores o se pueden ingresar desde la aplicacion ?

funciones de los tipos de datos que se ingresan

Las había escuchado nombrar, pero nunca había tenido la oportunidad de verlas

Está genial este tipo de bases de datos, es muy sencillo crear, actualizar y elminiar los registros que creamos!!

interesante!

Me parece genial este tipo de nuevas herramientas para usar bases de datos !!!

Firebase tiene una interfaz muy amigable

La interfaz de Firestore es muy amigable

Esto es hermoso!!! :’(

Recomiendo poner la clase en velocidad 1.25 ☺

Firestore es una base de datos NoSQL en tiempo real, lo que significa que es ideal para aplicaciones que requieren sincronización de datos en tiempo real y escalabilidad. Asegúrate de manejar errores y autorizaciones de forma adecuada en tu aplicación para mantener tus datos seguros y funcionando sin problemas.

Tipos de datos

  • String: Texto
  • Number: tipos numéricos enteros y flotantes
  • Boolean: Valor binario / True or false
  • Map: Da la opción de meter un documento dentro de un documento
  • Array: Ingresar una serie de valores ( arreglo para ingresar un grupo de datos en el que no nos interesa un identificador).
  • Null: Si quiero tener ese campo pero ahorita tendrá un valor nulo
  • Timestamp: Para almacenar una fecha día mes año y hora.
  • Geopoint: Guardar una localización geográficas (grados coordenadas Latitud, longitud)
  • Reference: Referencia a otro documento de nuestra u otra colección

El tipo de dato geopoint también se asegura que el número ingresado sea una coordenada que existe. Por ejemplo, no se puede agregar una latitud mayor a 90.

firestore esta genial!

Una de las ventajas de las bases de datos relacionales es la cercanía y lo parecido a la vida real usando, bases de datos, documentos y colecciones

Tipos de datos

La mayoría de los tipos de datos de sql son iguales a los de Firestore, con algunas excepciones

  • Number: Contempla los números enteros y los números con decimales
  • Map: Es para crear documentos dentro de otros documentos
  • Array: Agrega un conjunto de datos como forma de array
  • GeoPoint: Agrega la ubicación geográfica de algún lugar
  • Reference: Sirve como la llave foránea, Referencia al documento de alguna colección

Encontré este link con información sobre el tema de como crear una base de datos en Firebase:

https://www.acontracorrientech.com/firebase-guia-practica-parte-1/

Es muy sencillo usar FIREBASE y su intefaz mil veces mas moderna que las DBRM es mucho mas ameno a la vista.

FireStore es sencillo

Firestone una plataforma bastante sencilla de manejar hasta ahora!

Ya había utilizado firebase en múltiples ocasiones, si hubiese visto esta clase antes… cuantos dolores de cabeza me hubiese ahorrado.

Si deseas eliminar una colección completa, solo es necesario repetir los pasos:

Nos vamos en la esquina superior y presionamos los tres puntos.
Damos click en ‘Eliminar colección’.
Nos salta un aviso en el que ponemos el ID de la colección (en este caso es people) y damos click en ‘Eliminar’.

El tipo de dato GeoPoint, permite el decimal, si no, no podriamos ubicar muchas direcciones o locaciones.

Excelente explicacion acerca de los tipos de datos que se encuentran en firestore, que en el fondo se parecen a los tipos de datos que se encuentran en BD relacionales.

Me parece que a la mitad del video se baja un poco el volumen, cuando empieza a explicar el geopoint 👀

Me parece que no está el tipo de dato BLOB, o es que no lo veo

Se ve que puede ser muy agradable trabajar en esa plataforma de base de datos

references

Tipo de dato reference.

El tipo de dato reference es como un foreign key en una base de datos relacional

Es muy sencillo y la interfaz muy amigable!

Excelente, desconocia de este tipo de base de datos.