CURSO de DISEÑO de BASE DE DATOS #15 📚 MODELO de DISEÑO I

yacklyon
27 Nov 201907:31

Summary

TLDREn este episodio del curso de diseño de bases de datos, Jack Layton guía a los estudiantes a través del proceso de modelado de una base de datos de fábricas de chocolates y tiendas. Se discuten atributos como el nombre, dirección, nit y código, y se enfatiza la importancia de identificar correctamente las llaves primarias para evitar repeticiones. Se explora la relación de 'provee' entre fábricas y tiendas, y cómo gestionar la cardinalidad en un modelo de base de datos. Además, se sugiere la creación de tablas de relación para abordar la multiplicidad de muchos a muchos, y se ofrecen consejos para mantener la consistencia y evitar inconsistencias en los datos.

Takeaways

  • 😀 El video es una lección de diseño de base de datos presentada por Jack Layton.
  • 🏭 Se propone crear una base de datos de fábricas de chocolates, registrando detalles como nombre, dirección, NIT y otros atributos.
  • 🔑 El NIT, que identifica legalmente a cada empresa, es considerado como una llave primaria única.
  • 🍫 Se sugiere crear una entidad separada para el chocolate, incluyendo atributos como sabor y tamaño, que no corresponden directamente a la fábrica.
  • 🛒 Las fábricas distribuyen chocolates a tiendas, que también se modelan con detalles como dirección, teléfono y horario de atención.
  • 📊 Para las pequeñas tiendas que no tienen NIT, se utiliza un código como llave primaria para su registro.
  • 🔗 La relación entre fábricas y tiendas es de muchos a muchos, ya que una fábrica puede proveer a múltiples tiendas y viceversa.
  • 📋 Se debe asignar atributos que implican acciones (como precio y cantidad de chocolates) a la relación entre entidades, no a las entidades en sí.
  • 🗂️ Al modelar la base de datos, se crean tablas para fábricas de chocolates y tiendas, y se establece una tabla de relación para la cardinalidad muchos a muchos.
  • ❌ Se identifican problemas de consistencia cuando se repiten valores en la tabla de relación, lo que se resuelve creando una llave primaria compuesta.

Q & A

  • ¿Qué es lo que se va a modelar en el ejercicio de diseño de base de datos mencionado en el guion?

    -Se va a modelar una base de datos para una fábrica de chocolates, registrando todas las fábricas que existen en la ciudad.

  • ¿Cuáles son algunos de los atributos que se consideran para la entidad 'fábrica de chocolates'?

    -Los atributos considerados incluyen el nombre, la dirección, el NIT, el logotipo de la empresa, el representante legal y el teléfono.

  • ¿Por qué se considera al NIT como una llave primaria para la entidad 'fábrica de chocolates'?

    -El NIT es único y no se repite, cumpliendo con los requisitos de una llave primaria, que es no repetirse y no cambiar en el tiempo.

  • ¿Qué entidades se relacionan con la 'fábrica de chocolates' y cómo se relaciona con ellas?

    -La 'fábrica de chocolates' se relaciona con 'tiendas' a través de la acción de 'proveer' chocolates.

  • ¿Qué atributos se consideran para la entidad 'tienda' y cuál es su llave primaria?

    -Los atributos de la entidad 'tienda' incluyen el código, el NIT, el encargado, la dirección, el teléfono y el horario. La llave primaria es el código.

  • ¿Qué se debe hacer cuando no se encuentra ningún atributo que cumpla con los requisitos de una llave primaria?

    -Si no se encuentra un atributo que cumpla con los requisitos de una llave primaria, se debe crear uno que tenga las propiedades necesarias para evitar registros repetidos.

  • ¿Cómo se aborda la relación de 'provee' entre 'fábrica de chocolates' y 'tienda' en términos de cardinalidad?

    -La relación de 'provee' es de muchos a muchos, lo que significa que muchas fábricas pueden proveer a muchas tiendas.

  • ¿Dónde se deben asignar los atributos relacionados con la transacción de proveer chocolates, como el precio y la cantidad?

    -Estos atributos, que implican una acción, deben asignarse en la relación entre las entidades, no en las entidades 'fábrica de chocolates' o 'tienda' por sí solas.

  • ¿Cómo se resuelve el problema de inconsistencia en la base de datos cuando se repiten valores que no deben repetirse?

    -Para resolver la inconsistencia, se deben considerar atributos adicionales como elementos de llave primaria o se deben agregar más identidades para evitar la repetición de registros.

  • ¿Qué se debe tener en cuenta al diseñar la tabla de relación en una base de datos con una relación de muchos a muchos?

    -Al diseñar la tabla de relación, se debe asegurar que no haya repetición de valores de llave primaria de las entidades relacionadas y, si es necesario, se deben agregar más identidades para mantener la integridad de los datos.

Outlines

00:00

🍫 Diseño de Base de Datos para Fábricas de Chocolates

En este episodio, Jack Layton nos guía a través del proceso de diseño de una base de datos para una fábrica de chocolates. Se enfatiza la importancia de la complejidad real y la necesidad de adaptarse a diferentes situaciones legales y empresariales. Se discuten atributos como el nombre, dirección, NIT y características especiales, destacando la necesidad de un atributo único como llave primaria. Además, se introducen las entidades de 'tienda' y 'fábrica de chocolates', y se explica cómo las pequeñas tiendas pueden no cumplir con ciertos requisitos legales, lo que lleva a la creación de un atributo 'código' para su identificación. Finalmente, se establece la relación de 'provee' entre fábricas y tiendas, destacando la naturaleza de muchos a muchos y la importancia de los atributos de relación como precio, fecha y cantidad.

05:03

🗂 Conversión de Modelo a Tablas de Base de Datos

En el segundo párrafo, se aborda la conversión del modelo de identidad relación a un modelo de orden nacional, es decir, la creación de tablas en una base de datos. Se detallan las tablas 'fábrica de chocolates' y 'tienda', con sus respectivos atributos y llaves primarias. Se destaca la relación de provee y cómo se gestiona la cardinalidad de muchos a muchos entre fábricas y tiendas. Se plantea el problema de la incoherencia en la base de datos debido a la repetición de valores que no deberían repetirse y se sugiere la implementación de una llave primaria compuesta para solucionar este problema. Además, se ofrece un consejo sobre la importancia de rellenar adecuadamente las tablas de relación para evitar inconsistencias y se menciona brevemente otro caso que se abordará en futuras sesiones.

Mindmap

Keywords

💡Entidad

Una entidad es un objeto o concepto que puede tener datos almacenados sobre él en una base de datos. En el video, se menciona la 'fábrica de chocolates' como una entidad, la cual tiene atributos como el nombre, la dirección y el NIT. Las entidades son la base de los modelos de base de datos, ya que representan los elementos principales que se van a gestionar.

💡Atributos

Los atributos son las características o propiedades de una entidad. En el contexto del video, los atributos de la entidad 'fábrica de chocolates' incluyen el nombre, la dirección, el NIT, y el logotipo. Los atributos definen qué información se almacena sobre cada entidad en la base de datos.

💡Llave primaria

Una llave primaria es un campo o conjunto de campos que identifica de manera única a cada registro en una tabla. En el video, se utiliza el NIT como la llave primaria de la fábrica de chocolates, ya que es un dato único que no se repite. La llave primaria es esencial para evitar duplicados y asegurar la integridad de los datos.

💡Relación

Una relación describe cómo las entidades están conectadas entre sí. En el video, se establece que una fábrica de chocolates 'provee' chocolates a una tienda, lo que implica una relación entre las dos entidades. Las relaciones pueden ser de uno a uno, de uno a muchos o de muchos a muchos, dependiendo de cómo interactúan las entidades.

💡Cardinalidad

La cardinalidad define la cantidad de entidades que participan en una relación. En el video, se describe una relación de 'muchos a muchos' entre fábricas y tiendas, lo que significa que varias fábricas pueden proveer chocolates a varias tiendas. La cardinalidad es crucial para modelar correctamente las interacciones en una base de datos.

💡Llave foránea

Una llave foránea es un campo en una tabla que se refiere a la llave primaria en otra tabla, estableciendo una relación entre ellas. En el video, la relación entre fábrica y tienda se modela mediante una tabla intermedia que incluye las llaves primarias de ambas tablas como llaves foráneas, lo que permite vincular las entidades de manera consistente.

💡Tabla de relación

Una tabla de relación es una tabla que se utiliza para gestionar relaciones de muchos a muchos entre entidades. En el video, se menciona que las fábricas de chocolates y las tiendas están relacionadas mediante una tabla de relación llamada 'fábrica de chocolates provee tienda'. Esta tabla almacena las llaves primarias de ambas entidades junto con atributos adicionales como el precio y la cantidad.

💡Inconsistencia

La inconsistencia en una base de datos ocurre cuando hay datos duplicados o contradictorios que pueden afectar la precisión de la información. El video aborda la posibilidad de inconsistencia en la tabla de relación, donde el NIT y el código de la tienda podrían repetirse, lo que se corrige añadiendo un nuevo atributo como parte de la llave primaria.

💡Acción

En el contexto de bases de datos, una acción es una interacción entre entidades que genera un conjunto de datos, como una transacción o un proceso. El video menciona que proveer chocolates de una fábrica a una tienda es una acción, y los atributos relacionados con esa acción, como el precio y la cantidad, deben estar en la tabla de relación, no en las entidades individuales.

💡Normalización

La normalización es el proceso de organizar los datos en una base de datos para reducir la redundancia y mejorar la integridad. Aunque el término no se menciona explícitamente en el video, el enfoque de descomponer la información en múltiples entidades y relaciones, como la separación de los atributos de fábrica y tienda, es un ejemplo de normalización en práctica.

Highlights

Introducción a un nuevo episodio de diseño de base de datos

Modelado de una base de datos para una fábrica de chocolates

Identificación de atributos de la fábrica como nombre, dirección, nit y logotipo

Consideración del nit como llave primaria debido a su unicidad

Discriminación entre atributos de fábrica y atributos de chocolate

Creación de una entidad para el chocolate con atributos como sabor y tamaño

Modelado de una entidad para tiendas con atributos como dirección, teléfono y encargado

Inclusión de nit para tiendas grandes y código para tiendas pequeñas

Elección del código como llave primaria para la entidad tienda

Relación de provee entre fábricas y tiendas establecidas como de muchos a muchos

Asignación de atributos de la relación provee en una tabla independiente

Identificación de la necesidad de atributos adicionales para evitar inconsistencias

Solución de inconsistencias mediante la creación de una llave primaria compuesta

Importancia de rellenar tablas de relación para detectar repeticiones

Conclusión del diseño de la base de datos para la fábrica de chocolates

Anuncio de un nuevo caso de diseño de base de datos en el próximo episodio

Transcripts

play00:00

[Música]

play00:03

y

play00:06

qué tal soy jack layton y bienvenidos a

play00:08

un nuevo episodio de tu curso de diseño

play00:10

de base de datos hoy vamos a practicar

play00:12

con lo aprendido modelando una base de

play00:14

datos

play00:16

vamos a crear una base de datos pero a

play00:18

diferencia de los ejercicios anteriores

play00:20

donde considerábamos varios puntos como

play00:23

dados por hechos acá vamos a subir de

play00:25

nivel en este caso con la complejidad

play00:27

que vamos a aplicar en este ejercicio

play00:29

más que todo con un tinte real ok

play00:33

bien vamos a crear una entidad el cual

play00:36

vamos a llamarle fábrica de chocolates

play00:38

en este caso vamos a registrar todas las

play00:41

fábricas que existen en tu ciudad

play00:43

ok dentro de sus atributos encontramos

play00:46

el nombre la dirección el nit este

play00:49

número es el que identifica a cada

play00:51

empresa legalmente en un país ok

play00:54

ese nombre puede cambiar dependiendo de

play00:56

donde seas en mi país se le conoce con

play00:59

ese nombre y una característica especial

play01:01

es que precisamente este dato es único y

play01:05

no se repite por lo tanto vamos a

play01:07

considerarlo como una llave primaria

play01:10

continuamos vamos a encontrar el logo de

play01:13

la empresa el representante legal de esa

play01:16

empresa y al terminar el teléfono que

play01:19

otros atributos podemos considerar

play01:22

podemos considerar a el chocolate el

play01:25

sabor el tamaño del chocolate como

play01:27

atributos pues no no porque esos

play01:31

atributos no corresponden a la fábrica

play01:33

ok en este caso si ese fuese el tipo de

play01:38

información que se necesita entonces

play01:40

vamos a crear una entidad de nombre de

play01:43

chocolate y vamos a asignar precisamente

play01:46

esos valores o que en este caso nos

play01:48

estamos fijando simplemente en la

play01:51

fábrica ok ahora bien esta fábrica

play01:55

distribuye chocolates a tiendas ok esta

play01:59

tienda tiene una dirección un teléfono

play02:02

seguramente un horario de atención a la

play02:05

vez tiene un encargado o un supervisor

play02:07

de la tienda a eso vamos a añadirle que

play02:10

también tiene un nit en este caso un

play02:13

registro en el cual verificamos que

play02:16

están legalmente ok ahora bien qué pasa

play02:20

pero con las pequeñas empresas a ellas

play02:23

no voy a poder distribuir los chocolates

play02:26

yo creo que vamos a poder distribuir a

play02:28

todo ok en este caso las tiendas

play02:31

pequeñas al ser pequeñas no cumplen con

play02:34

algunos requisitos vamos a decirlo de

play02:36

esa manera por lo tanto es muy probable

play02:38

que no tengan un nit entonces para este

play02:42

ejercicio vamos a tomarlos en cuenta a

play02:44

todos ok en este tipo de situación lo

play02:48

que vamos a hacer es crear un atributo

play02:50

de nombre código ok

play02:53

de esta manera registramos a todas las

play02:55

tiendas que existen en nuestra ciudad

play02:57

analizando el ejercicio a quien

play03:00

otorgamos la llave primaria al nyt o al

play03:03

código así es al código porque gracias a

play03:08

este atributo vamos a poder registrar

play03:10

todas las tiendas

play03:13

ok entonces si no se encuentra ningún

play03:16

atributo que pueda ser candidato de

play03:18

llave primaria debes adicionar otro en

play03:22

el cual te permita que ese registro que

play03:24

vas a introducir no se repita espero que

play03:27

esta parte esté claro que cuando no

play03:29

vemos un atributo que cumple con los

play03:31

requisitos de una llave primaria ok que

play03:34

no se repita que no cambie en el tiempo

play03:36

que son requisitos de la llave primaria

play03:38

entonces vamos a crear uno en el cual

play03:41

vamos a darle todas esas propiedades

play03:43

bien ahora vamos a continuar con este

play03:45

ejercicio vamos a relacionar lo íbamos a

play03:48

decir lo siguiente una fábrica de

play03:51

chocolates provee chocolates a una

play03:54

tienda recordemos que la relación

play03:56

siempre implica una acción ok por eso

play04:00

usamos provee ahora vamos a relacionarlo

play04:03

ya llegando a este punto vamos a

play04:06

relacionarlo con la cardinal y that en

play04:09

este caso muchas fábricas de chocolates

play04:11

proveen a muchas tiendas ok eso quiere

play04:15

decir que la relación en cardinal y that

play04:18

será de muchos a muchos bien parece que

play04:21

hemos concluido pero aún podemos hacer

play04:24

lo siguiente ese chocolate que vamos a

play04:27

distribuir ok debe tener un precio un

play04:31

número de transacción en qué fecha

play04:33

provee ese ese chocolate la cantidad

play04:36

etcétera etcétera donde asignamos esos

play04:39

atributos en la fábrica de chocolates o

play04:43

en la tienda

play04:45

la respuesta es en ninguno porque estos

play04:49

atributos si nos damos cuenta implican

play04:51

una acción ok entonces eso quiere decir

play04:55

que pertenecen a la relación provee

play04:59

ahora sí bien hemos concluido con este

play05:02

diagrama de identidad relación ahora

play05:05

vamos a convertirlo a modo del orden

play05:07

nacional vamos a crear la tabla fábrica

play05:11

de chocolates donde sus atributos serán

play05:13

el nyt el nombre del teléfono la

play05:15

dirección representante legal y el

play05:17

logotipo ok de la misma manera vamos a

play05:21

considerar a cnet como llave primaria

play05:24

vamos a pasar a la siguiente entidad

play05:26

tienda que ahora es una tabla con los

play05:28

atributos código nit encargado dirección

play05:32

teléfono horario y llave primaria en

play05:35

este caso va a ser código ahora vamos a

play05:38

comenzar a relacionarlos para eso

play05:40

creamos la tabla fábrica de chocolates

play05:42

provee tienda ok como relación bien

play05:47

verificamos el tipo de relación por la

play05:49

cardinal y that en este caso es de

play05:52

muchos a muchos entonces tomaremos en

play05:55

cuenta la llave primaria de la fábrica

play05:57

de chocolates y la llave primaria de la

play06:00

tierra y posteriormente eso asignamos

play06:02

los atributos de provee

play06:05

pero aún si revisamos esta tabla puede

play06:08

que tanto el nyt como el código de la

play06:11

tienda puedan repetirse por ejemplo acá

play06:15

notamos que cuando una fábrica provee

play06:17

chocolates a una tienda otra vez vemos

play06:21

que se repite el leit como el código de

play06:24

esta tienda por lo tanto nuestra base de

play06:27

datos es inconsistente porque se repiten

play06:30

estos valores que no deben repetirse

play06:33

como podemos arreglar esta situación en

play06:37

este caso vamos a considerar a un

play06:39

atributo como elemento de llave primaria

play06:41

ok

play06:42

acabamos el nombre a la fecha con esa

play06:44

referencia de esta manera no vamos a

play06:47

tener ya este tipo de problema si aún

play06:50

así no es suficiente tomemos más

play06:53

identidades para corregir ese detalle

play06:56

ok los que sean necesarios un tipo

play06:59

particular que te puedo dar es que

play07:01

siempre pongas datos o registros en las

play07:04

tablas más que todo en la tabla de

play07:07

relación de esta manera te vas a dar

play07:09

cuenta si un elemento se repite

play07:12

ok bien en la segunda parte de este tema

play07:14

vamos a tocar otro caso que puede darse

play07:17

al momento de diseñar una base de datos

play07:19

pero por el momento vamos a dejarlo acá

play07:21

soy jack lion

play07:23

no te olvides suscribirte y nos vemos en

play07:25

el siguiente episodio

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
Diseño de BDModeladoChocolatesFábricasTiendasRelacionesAtributosLegalidadDistribuciónLógica de Negocio
Besoin d'un résumé en anglais ?