Proyecto final: transformando tu proyecto en una db no relacional
Clase 56 de 67 • Curso de Fundamentos de Bases de Datos 2019
Contenido del curso
Introducción a las bases de datos relacionales
- 3

Qué son entidades y atributos
10:38 min - 4

Historia de las bases de datos relacionales
03:19 min - 5

Entidades de Platzi Blog
08:05 min - 6

Relaciones
10:25 min - 7

Múltiples muchos
02:25 min - 8

Diagrama ER
05:12 min - 9

Diagrama Físico: tipos de datos y constraints
13:50 min - 10

Diagrama Físico: normalización
10:16 min - 11

Formas normales en Bases de Datos relacionales
02:54 min - 12

Diagrama Físico: normalizando Platziblog
14:46 min
RDBMS (MySQL) o cómo hacer lo anterior de manera práctica
SQL hasta en la sopa
- 19

Historia de SQL
03:53 min - 20

DDL create
13:53 min - 21

Playground: CREATE TABLE
- 22

CREATE VIEW y DDL ALTER
10:17 min - 23

DDL drop
05:16 min - 24

Playground: VIEW, ALTER y DROP en SQL
- 25

DML
17:03 min - 26

Playground: CRUD con SQL
- 27

¿Qué tan standard es SQL?
10:26 min - 28

Creando Platziblog: tablas independientes
11:34 min - 29

Creando Platziblog: tablas dependientes
11:24 min - 30

Creando Platziblog: tablas transitivas
09:19 min
Consultas a una base de datos
- 31

¿Por qué las consultas son tan importantes?
02:34 min - 32

Estructura básica de un Query
06:23 min - 33

SELECT
11:15 min - 34

Playground: SELECT en SQL
- 35

FROM y SQL JOINs
07:10 min - 36

Utilizando la sentencia FROM
14:46 min - 37

Playground: FROM y LEFT JOIN en SQL
- 38

WHERE
14:00 min - 39

Utilizando la sentencia WHERE nulo y no nulo
10:16 min - 40

Playground: Filtrando Datos con WHERE
- 41

GROUP BY
11:55 min - 42

ORDER BY y HAVING
13:02 min - 43

Playground: Agrupamiento y Ordenamiento de Datos
- 44

El interminable agujero de conejo (Nested queries)
12:39 min - 45

¿Cómo convertir una pregunta en un query SQL?
06:14 min - 46

Preguntándole a la base de datos
10:08 min - 47

Consultando PlatziBlog
12:35 min - 48

Playground: Prueba Final con PlatziBlog
Introducción a la bases de datos NO relacionales
Manejo de modelos de datos en bases de datos no relacionales
Bases de datos en la vida real
Bonus
Dentro de las bases de datos relacionales tenemos diferentes niveles de datos. En primer lugar tenemos las Bases de Datos o Esquemas como repositorios donde vivirán los datos que nos interesa guardar. Dentro del esquema existen las Tablas que provienen del concepto de entidades; y a su vez dentro de las tablas tenemos las tuplas o renglones.
Cuando trabajamos con bases de datos basadas en documentos como Firestore, aún existe la figura de la base de datos, sin embargo cambiaremos las tablas en favor de las colecciones y las tuplas en lugar de los documentos.
Recuerda:
Tabla -> Colección
Tupla -> Documento
Dentro de las Colecciones existen 2 grandes tipos. Las Top level collection o colecciones de nivel superior y las subcollections o subcolecciones. Estas últimas viven únicamente dentro de un documento padre.
¿Cómo saber cuál escoger?
Para determinar si tu colección debe ser top level o subcolección no hay una regla escrita en piedra y más bien tiene que ver con el caso de uso en particular y con la experiencia que hayas ganado como desarrollador.
Lo cierto es que no hay una sola forma de estructurar nuestra DB basada en documentos, y por tanto no existe una respuesta correcta, sin embargo a continuación te ofrezco un par de reglas guía que puedes utilizar para transformar tu proyecto que ya trabajaste en bases de datos relacionales en un proyecto no relacional.
Regla 1. Piensa en la vista de tu aplicación
La primera pista que te puedo dar es que pienses en un inicio en la manera en que los datos serán extraídos. En el caso de una aplicación, la mejor forma de pensarlo es en términos de las vistas que vas a mostrar a un momento determinado en la aplicación.
Es decir, al armar la estructura en la base de datos que sea un espejo o que al menos contenga todos los datos necesarios para llenar las necesidades que tiene nuestra parte visual en la aplicación.
En el caso de Platziblog por ejemplo si tienes una vista de un blog post individual, generalmente conviene mostrar además de los datos inherentes al post como el contenido, datos adicionales como las etiquetas que tiene o por ejemplo el autor (o autores si es colaborativo), en este caso tal vez convenga guardar estas dos “entidades” (autores y etiquetas) como subcolecciones de cada documento blog post.
Regla 2. La colección tiene vida propia
Esta regla se refiere a que la excepción a la regla 1 es cuando tenemos un caso en que la “entidad” que tiene necesidad de vivir y modificarse constantemente de manera independiente a las otras colecciones. Por ejemplo en Platziblog podemos en el ejemplo anterior hacer una excepción a autores porque nos conviene tenerlas como top level collection en el sentido que se añadan, borren, cambien o listen los usuarios sin depender del blog post.
Experimenta aplicando estas dos reglas a un proyecto que ya conozcas en una base de datos relacional y trata de convertirla en un proyecto de Firestore y comentanos los retos a los que te enfrentaste.