Rubens A. Rangel Gomez
Lusbin Agudelo
Cesar Galindo
Detrás de cada compra cotidiana se esconde un sistema capaz de registrar decenas de datos en segundos. Una clienta en Bogotá adquiere un teléfono y tres paquetes de café, y en ese instante el sistema captura quién compró, dónde, cuándo, quién la atendió, qué productos eligió, a qué precio, en qué categoría caen, qué tipo de clienta es y en qué país ocurrió [0:03]. Una sola compra, nueve piezas de información distintas. Multiplicado por 850 sucursales, miles de clientes diarios y todos los días del mes, el resultado son millones de registros. La pregunta inevitable es cómo se organiza todo sin que se convierta en un caos absoluto.
¿Qué es TiendaLatam y por qué funciona como caso de estudio?
TiendaLatam es una cadena de retail con presencia en doce países latinoamericanos: Argentina, Colombia, México, Chile, Perú y más [0:44]. Opera con 850 sucursales, 2.4 millones de clientes registrados y un catálogo que va desde electrónica hasta alimentos. Es una operación del tamaño de las que existen en la vida real, y toda esa actividad diaria se organiza en exactamente nueve archivos [1:23].
Esos nueve archivos están en formato CSV (Comma Separated Values), es decir, valores separados por comas [1:33]. La primera fila contiene los nombres de las columnas y cada fila siguiente es un registro. Se pueden abrir con Excel, Google Sheets o cualquier editor de texto.
¿Cuáles son las tablas de referencia que dan estructura al sistema?
Las tres primeras tablas no guardan ventas ni movimientos. Son catálogos de referencia que el resto del sistema consulta constantemente [1:56].
Estas tres tablas no registran lo que pasa en el negocio, sino que le dan estructura y contexto a todo lo que sí lo hace.
¿Dónde ocurre la operación real del negocio?
La tabla Sucursales guarda información de cada una de las 850 tiendas físicas: identificador, nombre, ciudad, dirección, país y si está activa [3:23]. Algo clave aquí es que la columna de país no almacena el nombre directamente, sino el identificador que le corresponde en la tabla Países [3:39]. Si una sucursal tiene identificador de país igual a dos y en Países el registro dos es Colombia, sabemos que esa sucursal está en Colombia. Esa columna que conecta una tabla con otra se llama clave foránea (foreign key) [4:00].
La tabla Empleados almacena nombre, apellido, correo electrónico, fecha de ingreso, cargo y estado activo [4:12]. También usa una clave foránea hacia Sucursales para indicar en qué tienda trabaja cada persona.
La tabla Clientes es una de las más grandes, con 2.4 millones de registros [4:36]. Contiene nombre, apellido, correo, teléfono, ciudad, fecha de registro y estado. Posee dos claves foráneas: una hacia Países y otra hacia Tipos de Cliente.
La tabla Productos guarda el catálogo completo: identificador, código, nombre, categoría, precio, stock disponible, descripción y si está activo [5:00]. Su conexión con Categorías funciona igual que las anteriores.
¿Por qué las ventas se separan en dos tablas?
La tabla Pedidos registra cada venta: quién compró, quién atendió, en qué sucursal, cuándo ocurrió y cuánto se cobró en total [5:43]. Tiene claves foráneas hacia Clientes, Empleados y Sucursales. Sin embargo, esta tabla no guarda qué productos se compraron.
De eso se encarga la tabla Detalle de Pedidos [5:11]. Por cada producto comprado en un pedido, crea una fila. Si alguien compró tres artículos, habrá tres filas apuntando al mismo pedido.
¿Qué pasaría si todo estuviera en una sola tabla?
Si los productos estuvieran directamente en Pedidos, habría que crear columnas como producto uno, producto dos, producto tres [6:44]. Cuando alguien compra quince artículos, nos quedamos sin columnas. Cuando compra solo uno, las demás quedan vacías. La otra opción sería duplicar la información del pedido en cada fila, pero corregir un dato significaría cambiarlo en múltiples lugares [7:00]. Un error y los datos se contradicen.
Por eso la solución es separar: Pedidos guarda la información general una sola vez, y Detalle de Pedidos crea una fila por cada producto comprado [7:20]. Simple y ordenado.
Un detalle importante: el precio unitario aparece tanto en Productos como en Detalle de Pedidos, y pueden ser distintos [7:32]. Los precios cambian con el tiempo, y el detalle guarda el precio exacto al momento de la venta. Así el registro histórico queda intacto aunque el precio actual sea diferente.
Volviendo al ejemplo de María [7:56]: la tabla Clientes la tiene registrada, Tipos de Cliente indica que es premium, Países confirma que la compra ocurrió en Colombia, Sucursales ubica la tienda exacta, Empleados identifica al vendedor, Pedidos crea el registro general y Detalle de Pedidos genera dos filas, una por el smartphone y otra por el café, apoyándose en Productos y Categorías para clasificarlos.
Eso es precisamente lo que hacen las claves foráneas: conectan las tablas entre sí para que toda la información tenga sentido como un sistema [8:52]. Sin esas conexiones, serían nueve archivos sueltos con datos que no se relacionan. Con ellas, una sola compra de cinco minutos queda registrada de forma completa, organizada y sin repetir información innecesaria.
Ahora es momento de abrir los nueve archivos CSV y recorrer cada uno con tres preguntas: ¿qué guarda?, ¿qué columna lo conecta con otra tabla? y ¿puedo explicar qué representa una sola fila? Si logran responder sin mirar notas, estarán listos para lo que viene.
Rubens A. Rangel Gomez
Lusbin Agudelo
Cesar Galindo
Gonzalo Vidal
Andrés Gómez Vásquez
Héctor Galindo
Javier Ramos
Francisco Javier Cisneros Ruiz
Juan Pablo García Carrillo
David Rugeles
David Rugeles
José Miguel García Salazar
Cesar Ortiz
Javier Ramos
Samuel Alejandro Peña Gonzalez
Daniel Afanador
Kenneth Angulo L
Roberto Carlos Moreira España
Darlinson Felipe Polania Camacho
ERIK ANTONIO BARRERA CUELLAR
Jesús Guaita
Carlos Ivan De Jesus Mendoza
Uriel Rosero
Rubens A. Rangel Gomez
Samuel Alejandro Peña Gonzalez
Jorge Antonio Medina Trujillo
William Serrano
Daniel Choxin
Wilmer Yesid Bautista Velandia
Wilson Pulido
Team PlatziJose Oswaldo De La Cruz De La O
Kenneth Angulo L
Max Alcantara
Luis Alfredo Ponce
Simón Mazuela
Kenneth Angulo L
Jeffer Daniel Pacheco Peña
Me parece interesante cómo el curso no solo enseña SQL sino también la lógica detrás de cómo se organizan los datos, porque eso es lo que realmente evita errores cuando la información crece. Algo que me llamó la atención es cómo separar Pedidos y Detalle de pedidos hace todo más escalable y ordenado. Creo que eso demuestra que diseñar bien desde el inicio ahorra muchos problemas después. ¿Ustedes creen que este tipo de modelado también aplica igual para sistemas pequeños o solo cuando ya hay muchos datos?
Tengo entendido que para sistemas pequeños, las tablas relacionales son buena opción, pero para negocios muy grandes, son mejores las tablas no relacionales
Sirve para todo, la idea es crear los tier (capas) correctas, para que la información este lo mejor organizada posible de acuerdo a las reglas de negocio, y limpieza de la data, lo mencionaba el video, que pasa cuando no diseñamos bien y los datos se contradicen? a quien se le cree? Mejor un buen diseño desde el principio
Sé que ahorran mucho usando IA (tanto para audio, imágenes y video) pero al menos podrían depurar lo que van a subir en las clases... hay muchos datos sin sentido que distraen mucho al estudiante...
algunos detallitos curiosos, en el video, pero le presto mayor atencion la idea central en el audio
Para quien tenga el gusto de trabajar en Linux, acá una herramienta en CLI:
Excelente gracias por el aporte
Esta buenisimo amigo!! Muchas gracias
Hay discrepancias entre el video generado por IA y los archivos de la clase, eso distrae!
IA tenia que ser
A mi también me desconcentran mucho (porque son muchísimos) los errores de la IA, en lugar de añadirle, le resta.
reaprendiendo base de datos y SQL
igual yo
estamos en las mismas jajaja
En la tabla productos falta el Currency, ya que el precio en la moneda de cada país va a ser diferente.
De acuerdo, excelente recomendacion.
Algo así me quedo, si lo necesitan los amigos, pueden bajarlo sin problema
Le sirve alguien que tenga datos de una empresa multinacional jeje
Este curso actualizado se ve espectacular y, lo más importante, muy práctico, que es lo que ayuda a aprender. La otra de Fundamento de bases de datos es agradable, y el profe se da a entender, pero sentía que estaba ya algo quedada. Ojalá sigan actualizando las clases, porque hay más áreas que están bastante dejadas.
Cambien esa voz narradora, suena demasiado sintético (IA). Pareciera que abrí un documento y lo estoy leyendo con una voz de Microsoft Edge...
Excelente curso y buen contenido para ir comenzando a aprender hacerca de bases de datos.
Este curso es excelente ya que Walter es un especialista en Arquitectura e Ingenieria de Datos donde aplica todos lo que plasmo en su libro de (Anaya Multimedia) muy recomendado
Total, se nota cuando un profesor tiene experiencia real en el área porque explica el por qué de las cosas y no solo el cómo. Eso ayuda mucho a entender mejor los conceptos. ¿Has leído el libro que mencionas o solo el curso?
Interesante donde puedo comprar ese libro para leerlo??
Qué manera de comenzar el curso. Muy claro y conciso.
Interesante como separan los datos en 9 archivos y estos se integran mediante claves.
Tiene buena pinta este curso
Saludos a todos.
Me pasa que descargo los archivos, descomprimo y abro en Excel y los registros en algunos no corresponden con lo mencionado en el playbook. Por ej. El archivo de sucursales me muestra 40, no las 850 que mencionan. El de clientes me muestra 100, no los 2,4 millones que mencionan.
Estaré haciendo algo mal o hay un error en los archivos? Agradezco sus comentarios.
Éxitos.
Hola Wilmer! El Playbook no está directamente relacionado con la base de datos que está en los recursos. El playbook es una forma adicional que quisimos crear para que puedan aterrizar los conceptos vistos en las clases.
Le mostré esto a mi sobrina que también apenas a comenzado sus estudios y se perdió. El motivo no capto eso de tablas, normalización, pk, fk, relación, histórico y la lógica. Yo por mi parte que conozco de esto no me molesta, el motivo es sencillo la IA hace un salto enorme suponiendo que reconoces varios conceptos y se salta o se olvida tu condición es para " fundamentos de base de datos ", le mostré un vídeo de otro lado (todo antiguo y roñoso) pero volvió a entender lo de "conocer la tienda", interpretar un problema. Tienen que tener cuidado al utilizar IA
Tengo la misma sensacion al ver este video.
Conozco las bases pero me pierdo rapido con este tipo de video, no se cual razon emocional o psicologica actue alli, pero no logro conectar las ideas que se trasmiten.
Estoy contento de aprender con platzi y al gobierno de El Salvador por darnos la oportunidad de aprender y salir adelante
Excelente partir desde las bases pero de forma así súper práctica. Muy buen inicio del curso 👏🏼
me encanta SQL
SQL Rocks !!
TEAM SQL MI BRO