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

No tienes acceso a esta clase

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

Creando y borrando documentos en Firestore

43/58
Recursos

Aportes 126

Preguntas 26

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

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).

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

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.

Pregunta de certificacion:
Tipos de datos de FireStore?

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

Documentación oficial Firebase:
https://firebase.google.com/docs

<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”

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.

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.

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

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 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í.

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

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

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.

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.

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.

Si alguien le sirve y le quedo dudas con lo de el tipo de dato map por acá les dejo un video en el caso de Js, al final la representacion de esta nueva estructura de alamcenar datos no es lejano a lo que hacemos con los lengujes de programacion ejemplo:

en programacion tenemos

1- hash generado por el gestor de memoria del disco (5f1s2)
2- Variable o constante
3- Tipo de dato
4- Valor asignado

https://www.youtube.com/watch?v=e2gBknyVJo8&t=916s

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.

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 ^_^

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.

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

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.

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

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

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

Muy visual este gestor de bases de datos no relacionales.

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!!! :’(

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

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

Firestone una plataforma bastante sencilla de manejar hasta ahora!

  • 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

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.

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.

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.

Que buena interfaz!

genial

Que excelente herramienta

Excelente repaso y explicación de tipos de datos!

Bastante interesante el tema de Firestore, el fundamento de BD es mySQL en definitiva

Muy buena la explicación del profesor lo hace de manera muy amena…excelente curso

Aprendí sobre bases de datos no relacionales, nunca había visto sobre ese tema.

Muy intuitivo la consola de FireStore

Muy parecido a carpetas de un sistema operativo 😁

Como se administra una base de datos Mysql en producción?

Esta genial esto 😮

Excelente.

Interesante herramieta, practica de usar.