• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • Conoce los Días Naranjas de PcComponentes: descuentos de hasta un 40% en tecnología. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

AYUDA Líneas contínuas y discontinuas en Mysql Workbench

airda95

Chapucillas
Registrado
11 Nov 2015
Mensajes
56
Puntos
18
Edad
28
¡Buenas tardes!

Estoy haciendo un grado superior de informática y en la asignatura de Bases de datos estamos haciendo modelaje con la herramienta Mysql Workbench. El problema que tengo es que la profesora nos ha explicado un montón de veces la diferencia entre usar líneas contínuas y líneas continuas de este programa y yo no se si la profesora no lo explica bien pero no acabo de ver en que casos tengo que relacionar las tablas(entidades) con líneas díscontinuas o discontínuas. En alguna página de internet me pone: las lineas discontinuas indican que la FK no es parte de la llave principal(PK) de la tabla huespet, pero a mi esta definicion tampoco me aclara la duda entre usar lineas continuas o discontinuas para relacionar las entidades.

¿Hay alguien que me pueda dar una definicion para que pueda entender la diferencia de usar las líneas contínuas o discontinuas y un ejemplo de una base de datos que se pueda ver claramente la diferencia?

Muchas gracias.
 
Te lo subo!
 
Creo que es para relacionar claves foraneas y primarias.

La discontinua es solo si la clave foranea no es principal en la otra, por ejemplo, con estas tablas.

USUARIOS
id INT PK
nombre VARCHAR(20)
localidad INT FK

LOCALIDADES
id INT PK
nombre

usuarios.localidad y localidades.id estarian unidas por una discontinua, porque localidad es FK a id.

Creo que te lo he resuelto, no es mi punto fuerte,representar BBDD...
 
La diferencia es esa, yo no tenia ni idea porque siempre he usado lineas continuas para todo xd, pero leyendo documentación la diferencia es esa.

Imagino que tienes claros los conceptos de fk y pk.
Sabiendo eso, cuando relacionas dos entidades, la clave principal de la entidad A pasa a ser clave foránea en la entidad B (ejemplo).
Si además de ser clave foránea en B también forma parte de la clave primaria de B en ese caso la linea es continua.
Si solamente es un atributo más no clave en B, la línea es discontinua.

Un ejemplo muy claro de linea continua son las relaciones de tipo N:M como por ejemplo cliente producto.
Por norma las relaciones de este tipo se transforman en una entidad propia, pasando a un modelo del tipo cliente 1:N compra N:1 producto.
En este caso la clave primaria de compra estara formada por el conjunto de claves primarias de cliente y producto, que a la vez son claves foraneas en compra.
Por lo tanto en este caso las dos lineas deberian ser continuas.
 
La diferencia es esa, yo no tenia ni idea porque siempre he usado lineas continuas para todo xd, pero leyendo documentación la diferencia es esa.

Imagino que tienes claros los conceptos de fk y pk.
Sabiendo eso, cuando relacionas dos entidades, la clave principal de la entidad A pasa a ser clave foránea en la entidad B (ejemplo).
Si además de ser clave foránea en B también forma parte de la clave primaria de B en ese caso la linea es continua.
Si solamente es un atributo más no clave en B, la línea es discontinua.

Un ejemplo muy claro de linea continua son las relaciones de tipo N:M como por ejemplo cliente producto.
Por norma las relaciones de este tipo se transforman en una entidad propia, pasando a un modelo del tipo cliente 1:N compra N:1 producto.
En este caso la clave primaria de compra estara formada por el conjunto de claves primarias de cliente y producto, que a la vez son claves foraneas en compra.
Por lo tanto en este caso las dos lineas deberian ser continuas.

¡Gracias por tu ayuda! El concepto de las PK y FK si que lo tengo claro: Las FK son las claves primarias que identifican cada atributo de forma única de las entidades y las FK son las llaves que están entre 2 tablas relacionadas entre sí por una relación. ¿Cierto? Lo único que no he entendido es lo siguiente que has dicho:
Si además de ser clave foránea en B también forma parte de la clave primaria de B en ese caso la linea es continua.
Si solamente es un atributo más no clave en B, la línea es discontinua.

Por lo que entiendo al decir que al ser clave foránea B también forma parte de la clave primaria de B en este caso la linea contínua, ¿es que has querido decir que habría una relación de línea continua en la misma tabla B? No sé si me explico.. Lo que quiero decir es que ¿has querido ponerme un ejemplo de relación que no sea entre 2 entidades y solo existe una relación como si fuera reflexiva en la tabla B? Y lo de solamente es un atributo más no clave en B tampoco lo he entendido muy bien..
 
La diferencia es esa, yo no tenia ni idea porque siempre he usado lineas continuas para todo xd, pero leyendo documentación la diferencia es esa.

Imagino que tienes claros los conceptos de fk y pk.
Sabiendo eso, cuando relacionas dos entidades, la clave principal de la entidad A pasa a ser clave foránea en la entidad B (ejemplo).
Si además de ser clave foránea en B también forma parte de la clave primaria de B en ese caso la linea es continua.
Si solamente es un atributo más no clave en B, la línea es discontinua.

Un ejemplo muy claro de linea continua son las relaciones de tipo N:M como por ejemplo cliente producto.
Por norma las relaciones de este tipo se transforman en una entidad propia, pasando a un modelo del tipo cliente 1:N compra N:1 producto.
En este caso la clave primaria de compra estara formada por el conjunto de claves primarias de cliente y producto, que a la vez son claves foraneas en compra.
Por lo tanto en este caso las dos lineas deberian ser continuas.

Bien explicado. Me ha servido para recordarlo, las bases de datos no son mi punto fuerte...
 
Hola de nuevo.. he encontrado un video que me ha aclarado un poco más la duda entre usar lineas contínuas y discontínuas, el video es el siguiente por si alguien tiene la misma duda que yo, les aclarará un poco y sabréis más cuando usar líneas continuas y discontinuas: https://www.youtube.com/watch?v=BhQIg2vySoc lo explica a partir del minuto 9:45, aunque es mejor ver el vídeo entero para así ver de que se trata la base de datos que él está creando. Él dice que se usan líneas continuas entre las entidades cuando por ejemplo la segunda tabla necesita la primera tabla para poder completamente identificada, en cambio las líneas discontinuas se usan para relacionar tablas cuando la segunda tabla no necesita la primera tabla para poder ser identificada, es decir que cada una es identificada completamente sin depender de la otra. Bueno.. más o menos.. Quizás lo he explicado un poco poco mal, pero es más o menos lo que ha dicho el del video y os recomiendo que lo veáis. A mi su explicación me ha solucionado esta gran duda.

De todas formas muchas gracias a Sampi y a pabs11 para intentar ayudarme, y si teneis algo que decirme o quereis comentarme algo al respecto de lo que ha dicho lo del video podéis hacerlo y en cuando pueda os contesto.

Un saludo!
 
A ver si me explico mejor.
PK o primary key, clave primaria en español, es un atributo que identifica de forma única a cada tupla o registro.
Es decir, en una entidad cliente por ejemplo, sabemos que un cliente solo puede tener un codigo de cliente en nuestra base de datos, y cada codigo cliente pertenece a una sola persona.
Un ejemplo muy claro es el DNI. Digamos que el DNI es la clave primaria de cualquier persona.
FK o foreign key, clave foranea en español, ajena o cualquier otro nombre es un atributo de una entidad que forma parte de la clave primaria de otra entidad distinta.
Por ejemplo, en las tablas que te puso pabs

USUARIOS
id INT PK
nombre VARCHAR(20)
idLocalidad INT FK

LOCALIDADES
idLocalidad INT PK
nombre


En usuarios la id es PK, porque cada usuario esta identificado por una id, y una id solo pertenece a una persona. No puede haber dos personas con el mismo id.
En localidad ocurre lo mismo con la idLocalidad, esta es la PK de localidad porque una idLocalidad solo puede pertencer a una localidad. No hay dos localidades con la misma idLocalidad.
Usuario y localidad están relacionados, y como ves, en Usuarios aparece la idLocalidad. Por eso idLocalidad en Usuarios es FK, porque es un atributo que es PK en otra entidad.
Resumiento, idLocalidad es PK en localidad y a la vez es FK en Usuario.
Sin embargo idLocalidad no forma parte de la PK de Usuario, por eso se relacionan con lineas discontinuas.
En caso de que idLocalidad tambien fuera parte de la PK de usuario, ademas de ser FK de usuario, se unirian por linea continua.

El ejemplo que te puse era un caso claro de union con linea continua

En una relacion del tipo CLIENTE_1__________N_COMPRA_N__________1_PRODUCTO

CLIENTE idCliente Es la pk de cliente.
PRODUCTO idProducto Es la pk de producto.
COMPRA idCliente idProducto. En este caso esta entidad tiene dos FK, las dos PK de cliente y producto, pero ademas de ser PK coincide que el grupo de idCliente + idProducto tambien son PK de la entidad compra (propagacion de clave). De ahi que la linea sea continua.

Resumiendo.
En una relacion entre dos entidades, cuando la clave primaria de una es clave foranea en la otra, linea discontinua.
Si la clave primaria de una, ademas de ser clave foranea de la otra, tambien forma parte de la clave primaria de la otra entidad, la linea es continua.

Perdon por el tocho xd.
 
A ver si me explico mejor.
PK o primary key, clave primaria en español, es un atributo que identifica de forma única a cada tupla o registro.
Es decir, en una entidad cliente por ejemplo, sabemos que un cliente solo puede tener un codigo de cliente en nuestra base de datos, y cada codigo cliente pertenece a una sola persona.
Un ejemplo muy claro es el DNI. Digamos que el DNI es la clave primaria de cualquier persona.
FK o foreign key, clave foranea en español, ajena o cualquier otro nombre es un atributo de una entidad que forma parte de la clave primaria de otra entidad distinta.
Por ejemplo, en las tablas que te puso pabs

USUARIOS
id INT PK
nombre VARCHAR(20)
idLocalidad INT FK

LOCALIDADES
idLocalidad INT PK
nombre


En usuarios la id es PK, porque cada usuario esta identificado por una id, y una id solo pertenece a una persona. No puede haber dos personas con el mismo id.
En localidad ocurre lo mismo con la idLocalidad, esta es la PK de localidad porque una idLocalidad solo puede pertencer a una localidad. No hay dos localidades con la misma idLocalidad.
Usuario y localidad están relacionados, y como ves, en Usuarios aparece la idLocalidad. Por eso idLocalidad en Usuarios es FK, porque es un atributo que es PK en otra entidad.
Resumiento, idLocalidad es PK en localidad y a la vez es FK en Usuario.
Sin embargo idLocalidad no forma parte de la PK de Usuario, por eso se relacionan con lineas discontinuas.
En caso de que idLocalidad tambien fuera parte de la PK de usuario, ademas de ser FK de usuario, se unirian por linea continua.

El ejemplo que te puse era un caso claro de union con linea continua

En una relacion del tipo CLIENTE_1__________N_COMPRA_N__________1_PRODUCTO

CLIENTE idCliente Es la pk de cliente.
PRODUCTO idProducto Es la pk de producto.
COMPRA idCliente idProducto. En este caso esta entidad tiene dos FK, las dos PK de cliente y producto, pero ademas de ser PK coincide que el grupo de idCliente + idProducto tambien son PK de la entidad compra (propagacion de clave). De ahi que la linea sea continua.

Resumiendo.
En una relacion entre dos entidades, cuando la clave primaria de una es clave foranea en la otra, linea discontinua.
Si la clave primaria de una, ademas de ser clave foranea de la otra, tambien forma parte de la clave primaria de la otra entidad, la linea es continua.

Perdon por el tocho xd.

Gracias, ahora ya lo he entendido mejor... Y no te precupes por el tocho jajaja, así lo he entendido mejor. Antes de recibir tu respuesta he publicado una respuesta porqué he encontrado un video que explicaba esto y gracias a este video y a ti ya lo entiendo mejor. Al parecer mientras tu estabas escribiendo la respuesta, yo también estaba escribiendo la respuesta con el tema del video que he encontrado. Pero bueno.. Muchas gracias por tu respuesta. Como he dicho he puesto el link del video y si tienes algo que comentarme por ejemplo si lo que dice él en el video está algo mal o algo por el estilo me lo puedes decir para así tenerlo más claro.

Saludos.
 
Arriba