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

Qu茅 son 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

Instalaci贸n local de un RDBMS (Windows)

13

驴Qu茅 es RDB y RDBMS?

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

Playground: SELECT en SQL

31

FROM y SQL JOINs

32

Utilizando la sentencia FROM

33

WHERE

34

Utilizando la sentencia WHERE nulo y no nulo

35

GROUP BY

36

ORDER BY y HAVING

37

El interminable agujero de conejo (Nested queries)

38

驴C贸mo convertir una pregunta en un query SQL?

39

Pregunt谩ndole a la base de datos

40

Consultando PlatziBlog

Introducci贸n a la bases de datos NO relacionales

41

驴Qu茅 son y cu谩les son los tipos de bases de datos no relacionales?

42

Servicios administrados y jerarqu铆a de datos

Manejo de modelos de datos en bases de datos no relacionales

43

Top level collection con Firebase

44

Creando y borrando documentos en Firestore

45

Colecciones vs subcolecciones

46

Recreando Platziblog

47

Construyendo Platziblog en Firestore

48

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

49

Bases de datos en la vida real

50

Big Data

51

Data warehouse

52

Data mining

53

ETL

54

Business intelligence

55

Machine Learning

56

Data Science

57

驴Por qu茅 aprender bases de datos hoy?

Bonus

58

Bases de datos relacionales vs no relacionales

59

Elegir una base de datos

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
19H
25M
48S

Creando Platziblog: tablas transitivas

26/59
Recursos
  • Las tablas transitivas sirven como puente para unir dos tablas. No tienen contenido sem谩ntico.
  • Reverse Engineer nos reproduce el esquema del cual nos basamos para crear nuestras tablas. Es 煤til cuando llegas a un nuevo trabajo y quieres entender cu谩l fue la mentalidad que tuvieron al momento de crear las bases de datos.

Aportes 807

Preguntas 118

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Esta es la estructura de una base que uso en mi trabajo q arranco con 3 entidades y me fueron pidiendo agregar mas. No me entra la pantalla para ordernarlo 馃槮

Yo estoy usando phpMyAdmin porque ya estoy acostumbrado a esta interfaz.
Al que le interese en este programa se puede hacer lo de reverse enginneer en la pesta帽a dise帽ador

As铆 se ve mi esquema de platziblog 馃槂

Wooow!!! Hora de hacer reverse engineer a todo las bases que me tope.

![](

aca mi Diagrama de One Piece

Hola Profesor, que tal? Tengo una duda con la implementaci贸n de los v铆nculos entre las tablas 鈥減osts鈥, 鈥減ost_etiquetas鈥 y 鈥渆tiquetas鈥. En el esquema f铆sico inicial la relaci贸n entre las tablas eran:
posts N:::::::::::::::::::::1 posts_etiquetas
posts_etiquetas 1:::::::::::::::::::::N etiquetas

Como muestro en la siguiente imagen:

Y en este v铆deo, luego de establecer los v铆nculos con las FK entre dichas tablas las relaciones quedan de la siguiente manera:
posts 1:::::::::::::::::::::N posts_etiquetas
posts_etiquetas N:::::::::::::::::::::1 etiquetas

Subo a continuaci贸n la imagen que muestra las relaciones luego de realizar la ingenieria inversa en el workbench.

Es decir que se han 鈥渋nvertido鈥 las relaciones. Me encuentro con esta duda y necesitar铆a saber si est谩 bien el hecho que haya cambiado de esa manera las relaciones entre dichas tablas.

Saludos y espero su respuesta.

De esta manera se puede crear la base de datos en con la sintaxis de SQL, no cambia mucho.

CREATE TABLE categorias (
idCategoria INT IDENTITY(1,1) PRIMARY KEY,
nombre_categoria VARCHAR(30) NOT NULL);

CREATE TABLE etiquetas (
idEtiqueta INT IDENTITY(1,1) PRIMARY KEY,
nombre_etiqueta VARCHAR(30) NOT NULL);

CREATE TABLE usuarios (
idUsuario INT IDENTITY(1,1) PRIMARY KEY,
login VARCHAR(32) NOT NULL,
password VARCHAR(40) NOT NULL,
nickname VARCHAR(40) NOT NULL,
email VARCHAR(40) NOT NULL UNIQUE
);

CREATE TABLE posts (
idPost INT IDENTITY(1,1) PRIMARY KEY,
titulo VARCHAR(150) NOT NULL,
fecha_publicacion TIMESTAMP,
contenido TEXT NOT NULL,
estatus CHAR(8),
idUsuario INT,
idCategoria INT,
FOREIGN KEY (idUsuario) REFERENCES usuarios(idUsuario),
FOREIGN KEY (idCategoria) REFERENCES categorias(idCategoria)
);

CREATE TABLE comentarios (
idComentario INT IDENTITY(1,1) PRIMARY KEY,
comentario TEXT NOT NULL, 
idUsuario INT NOT NULL,
idPost INT NOT NULL,
FOREIGN KEY (idUsuario) REFERENCES usuarios(idUsuario)
ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY (idPost) REFERENCES posts(idPost)
ON UPDATE CASCADE
ON DELETE NO ACTION
);

CREATE TABLE posts_etiquetas(
idPostEtiqueta INT IDENTITY(1,1) PRIMARY KEY,
idPost INT NOT NULL,
idEtiqueta INT NOT NULL,
FOREIGN KEY (idPost) REFERENCES posts(idPost)
ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY (idEtiqueta) REFERENCES etiquetas(idEtiqueta)
ON UPDATE CASCADE
ON DELETE NO ACTION
);

隆Muy interesante lo de la Ing Inversa, este curso ha valido toda la pena, y el profe tiene una excelente actitud para ense帽ar, que buen trabajo al profe y a platzi por haberlo elegido!.

Me encanta como el Profe motiva !!!

Existe tambien la posibilidad en WorkBeanch, crear directamente el modelo grafico y ah铆 mismo volverlo una base de datos, lo contrario pero con los mismos resultados!

Mi cara cuando el profe utiliz贸 Reverse Engineer y apareci贸 el diagrama:

Ya me siento en otro nivel. hasta aqu铆 aprend铆 bastante.
este es mi proyecto, s茅 que est谩 para mejorar pero ah铆 vamos.

Ingenier铆a Inversa es una herramienta muy poderosa y nos ahorra mucho trabajo para realizar nuestro gr谩fico de la base de datos. Excelente clase.

as铆 quedo mi esquema de un gabinete de abogados

Hola que tal!! asi va quedando mi proyecto sobre un restaurante

Excelente herramienta para extraer el diagrama EER

Como forma de aprender es muy util, pero ya cuando uno se vuelca al desarrollo de manera profesional lo mas conveniente es saber realizar todas estas acciones directamente solo con el sql

Dejo mi base de datos de alumnos de universidades

Ingenier铆a inversa, muy buena forma para saber como est谩n construidas las bases de datos o tablas que uno no haya creado.

Buen d铆a, comparto el diagrama de m铆 db para el payroll, algo sencilla de momento para tratar de comprender correctamente los conceptos, agradezco si me hacen ver sus observaciones para poder mejorar, saludos!

(

reverse engineer de mi proyecto

aqu铆 el avance de mi proyecto

Ejercicio

create table comentarios(
id int not null auto_increment primary key,
comentario text not null,
usuario_id int not null,
posts_id int not null,
foreign key (usuario_id) references usuarios(id) on delete cascade on update cascade,
foreign key (posts_id) references posts(id) on delete cascade on update cascade
);

--tabla transitiva
create table posts_etiquetas(
id int not null auto_increment primary key,
posts_id int not null,
etiqueta_id int not null,
foreign key (posts_id) references posts(id) on delete no action on update no action,
foreign key (etiqueta_id) references etiquetas(id) on delete no action on update no action
);```

Con el diagrama fisico que es la representacion grafica de nuestra base de datos se procede a crear la base de datos propiamente dicha para esto se puede usar el lenguaje SQL, o para su mayor comodidad herramientas como MysqlWorkbench, PhpMyAdmin, Sequel, Heidi, Navicat, etc, etc, etc.
Por logica se debe empezar por las tablas que no tienen llaves foraneas (es decir que no tienen relaciones en su tabla) ya que de no ser asi no se pueden referenciar las llaves a tablas no existentes.
Lo siguiente es crear ya las tablas que tienen relaciones y indicar los campos que son llaves foraneas (foreing keys) y a que tabla y campo hacen referencia.

Las Foreing Key options son las siguientes:

On update:聽cuando la relacion sea modifica

  • cascade:聽Si el id de un usuario pasa de 11 a 12, entonces la relacion se actualizar谩 y el post buscar谩 el id nuevo en lugar de quedarse sin usuario.
  • restrict:聽Si el id de un usuario pasa de 11 a 12, no lo permitir谩 hasta que no sean actualizados antes todos los post relacionados.
  • set null Si el id de un usuario pasa de 11 a 12, entonces los post solo no estar谩 relacionados con nada.
  • no action:聽Si el id de un usuario pasa de 11 a 12, no se har谩 nada. Solo se romper谩 la relaci贸n.

On delete: cuando la relacion seal eliminada

  • cascade:聽Si un usuario es eliminado entonces se borrar谩n todos los post relacionados.
  • restrict: No se podr谩 eliminar un usuario hasta que sean eliminados todos su post relacionados.
  • set null: Si un usuario es eliminado, entonces los post solo no estar谩 relacionados con nada.
  • no action:聽Si un usuario es eliminado, no se har谩 nada. Solo se romper谩 la relaci贸n.

gracias Isaias Chavez

MI DIAGRAMA ER: EQUIPOS DE FUTBOL 鈿

Pueden ayudarme con la mejora de RDB ? 馃

Hice una peque帽a base de datos para una escuela y utilic茅 la tabla transitiva de materias-alumnos para guardar la calificaci贸n de cada alumno en cada materia, asi como el estatus, es decir si la cursa actualmente o ya la termin贸.

Por si alguien lo necesita, el resultado de Reverse Engineer del platziblog

Seria bueno ejemplificar tambien como se trata el caso especial donde La entidad tiene relacion consigo misma. Por ejemplo: Un componente, puede estar formado por componentes, que a su vez contengan componentes. Como seria el caso de un motor, es un componente que tiene otro componente, el carburador, que tiene como componente鈥 y as铆 sucesivo.

Recuerdo cuando estaba en el colegio, nos ense帽aron bases de datos modificando directamente con 鈥渋ngenier铆a inversa鈥 era interesante crear bases de datos. No le termin茅 de agarrar el gusto por como ense帽aban.

Ahora con el profe Israel, pude retomar conceptos y me est谩 gustando este mundo de bases de datos, est谩 genial
馃懢

Este es mi proyecto (es sobre una biblioteca)

si le ponen nombre a una llave foranea de una tabla, y luego le ponen el mismo nombre a la llave foranea de otra, sql no les deja hacer el proceso, lo digo porque estuve un rato pegado en eso para que los que tengan el mismo problema ahora o m谩s adelante no se estanquen.

As铆 se ve mi esquema de inventario de pelucas y lentes

Biblioteca personal :

Aqui mi Diagrama de sistema de compra y venta

Para los que lo van haciendo por comandos dejo este aporte:

alter table platziblog.posts_etiquetas
add constraint foreign key(post_id) references platziblog.posts(id)
on update no action on delete no action,
add constraint foreign key(etiqueta_id) references platziblog.etiquetas(id)
on update no action on delete no action;

Hecho 馃槂 muy buena clase

As铆 va mi proyecto de lol

Similar a como se ejecuta en el power pivot que es la extensi贸n de excel para el trabajo de tablas din谩micas, una notaa

Wow! ame la opci贸n Reverse Engineer 鉂わ笍

Desde el fondo de mi corazon: Gracias platzi !!! Acabo de resolver un millon de dudas, esta plataforma es genial!鈾

Realize el Reverse Engennier a un proyecto, adjunto el resultado

Me di cuenta que Reverse Enginee tambi茅n puede ser 煤til para detectar alg煤n error en las conexiones, tenia mal una clave for谩nea de en comentarios y fue viendo este esquema que lo detecte.

Mi diagrama de un almacen, donde varios departamentos de una empresa guardan sus productos. Tengo dudas en unidades_productos, la cual cree por que los productos que se guardan pueden ser litros, kilos, etc y con esa entidad se va diferenciar o saber que tipo de producto es.

Diagrama de un sistema de facturacion

HICE UNO NUEVO, acepto sus criticas

Mi diagrama.

Excelente video, me encant贸 la clase:

Cambi茅 alguna cosa respecto mi idea inicial. Y creo que deber铆a cambiar algo en los ejercicios para que el id vaya asociado simplemente al nombre, y a帽adir variables como intensidad o volumen en otra tabla.

Proyecto: Control de compra- venta de productos

Usando DBeaver Un gestor de BD multiplataforma (mysql, postgre, oracle, 鈥)

Esta es mi base de datos, de videojuegos y es algo corta si alguien tiene un comentario me gustar铆a recibirlo

Asi va mi base de datos de problemas resueltos de matematicas:

Me cost贸 tiempo pensarla, despu茅s de ver varias veces las clases 馃槄

Es una base para llevar la contabilidad de las transferencias hechas a una cuenta, que facturas de una revista se han pagado, todos los movimientos que haga un banco sobre una cuenta como deducciones, impuestos, los retiros y las consignaciones hechos a la cuenta. Estoy abierto a sugerencias 馃槂

  1. Al meter informaci贸n a las tablas, 驴C贸mo se logra que las tablas transitivas se actualicen de forma 鈥渁utom谩tica鈥?

  2. Al hacer mis tablas; como una pieza musical, tiene un compositor y ese compositor tiene una 茅poca, 驴es correcta la relaci贸n de piezas con 茅pocas? lo digo porque el compositor ya tiene su 茅poca y me parece redundante pero al mismo tiempo 驴no hace m谩s lenta la consulta de datos al momento de que no exista esa relaci贸n?

:p 馃槃

CREAR INGENIERIA INVERSA DE LA BD

![](

Qu茅 genial lo de Reverse Engineer.

demasiado nivel ese trukazooooo!!!

Excelente Herramienta el Reverse Engineering! No la conoc铆a

Muy padre la herramienta de Ingenier铆a Inversa, la considero bastante 煤til para comprender las BD.

Hola. Que buena herramienta Reverse Engineer. Gracias por compartir el conocimiento.

interesante herrramienta la de ingeneria invresa!!!

Veo que una tabla me qued贸 suelta

Buenas Noches.
Este es el Esquema F铆sico del proyecto que estoy realizando.

Quisiera saber si es que est谩 de manera correcta por favor.
Gracias.

  • Las tablas transitivas sirven como puente para unir dos tablas.
    No tienen contenido sem谩ntico.
  • Reverse Engineer nos reproduce el esquema del cual nos basamos para crear nuestras tablas. Es 煤til cuando llegas a un nuevo trabajo y quieres entender cu谩l fue la mentalidad que tuvieron al momento de crear las bases de datos.

Mi proyecto individual es una base de datos simple de las regiones, ligas, equipos y jugadores del competitivo del League of Legends. 馃槃

mi aporte es una BD pequena pero es solo el inicio de algo grande

cualquier aporte , a mi proyecto ser铆a lo mejorrrrrr!

mi aporte

el atributo status se puede llevar a otra tabla, para optimizar un poco mas la base de datos ya que el tipo de dato int es mas liviano que varchar(8)

Aqu铆 les comparto mi diagrama, he aprendido mas aqui en un fin de semana que 4 meses en mi universidad jaja

compartiendo mi DER despues de hacer Reverse Enginnering.

Reverse Engineer

Hola a todos, les comparto el diagrama generado por la ingenier铆a inversa de Workbench!

Hola, este es el MER del proyecto mio, lo que me gustan son las motos, asi que hice una bases de datos donde agrupa los modelos, marcas, precio, y cilidreje: ![](

yo creo q esta BIen (Para ser el primero)

Este es mi MER: ![](
Lo realice en SQL server me resulto un poco complejo de como sacarlo pero se logro jejeje

Hola comunidad, comparto mi diagrama creado en Workbench

Diagrama de un equipo de voleibol:

Teniendo en cuenta lo visto hasta ac谩, lo m谩s importante radica en saber identificar las entidades y normalizarlas. Ya lo dem谩s es pura m谩quina. Excelente este profesor

As铆 se ve mi esquema

Que herramienta tan 煤til.

Platzi blog

Proyecto personal:

  • La tabla de posts maneja dos campos, sin embargo se le agrega uno extra para que sea m谩s f谩cil de manejar.
  • La tabla de post_etiquetas se define como transitiva, ya que solo sirve para unir dos tablas.

Ac谩 esta mi diagrama, me di cuenta que hab铆a ciertas entidades que faltaba generar una relaci贸n con otras

Aqu铆 est谩 mi diagrama; mi base de datos la estoy creando sobre un videojuego que me gusta mucho, llamado Teamfight Tactics, por lo cual me pareci贸 muy divertido hacer este proyecto

La emoci贸n que produce cuando vemos perfecto el esquema al aplicar el REVERSE ENGINEER, da satisfacci贸n!

As铆 quedo mi base de datos, algo que me cuesta entender o no s茅 si hay alg煤n paradigma o regla con sql es como nombrar las bases de datos, las pk, fk y en si todas las columnas

Estoy encantada con este curso y lo genial que explica el profe. Gracias Platzi!

Un peque帽o aporte, por ahora solo es una parte de la estructura