Problema con claves

05/12/2008 - 16:29 por mooonk | Informe spam
Hola,os comento un problema que tengo y que no se como solucionar

Tengo una tabla , pongamos tabla1 , con un campo numerico que es
clave

Tabla1 -> ID

Tengo otra tabla , pongamos tabla2 , que tiene dos campos numericos
que son clave ID1 , ID 2 y hacen referencia cada uno a un registro de
tabla1 , digamos que definen una relacion entre dos registros de tabla
1



Tabla 1 Tabla2
1 registro1 ID1 ->1, ID2 ->2
2 registro2
3 registro3

Mi problema viene a la hora de que si creo una relacion desde ID1 de
tabla2 a ID de tabla1 y otra desde ID2 de tabla2 a ID de tabla1,

No puedo configurar las relaciones para que si yo borro el registro 1
en tabla 1 me borre automaticamente el registro de tabla2 , puedo
hacerlo con una de las relaciones ,pero no con las dos.Evidentemente
necesito que ese registro de tabla 2 se borre en el momento que se
borre cualquiera de sus dos ids de la tabla principal

No veo como hacerlo , os agradeceria alguna sugerencia..

Saludos

Preguntas similare

Leer las respuestas

#11 Gustavo Larriera (MVP)
07/12/2008 - 18:57 | Informe spam
Hola a todos, he venido siguiendo este hilo donde hablan ustedes de formas
normales y hay algo que no termino de entender.

No encuentro mención alguna en los posts al conjunto de dependencias
(funcionales, de valores múltiples, de producto...) entonces cómo pueden
ustedes sostener que el diseño está en una cierta FN ?

Están asumiendo cuál es el conjunto de dependencias? Cómo asumen eso? Cuál
es el conjunto?

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Alfredo Novoa" wrote:


Hola Alejandro,

El Sun, 7 Dec 2008 08:26:01 -0800, Alejandro Mesa escribió:

>> Espero que tú no le llames normalizar a esto :-)
>
> Entonces te pregunto como le debo llamar?

Pues cambiar el diseño o algo así.

Pero desde luego no normalizar. Normalizar no significa aumentar el número
de tablas sin más, sino que significa modificar un diseño para hacer que
las "tablas" estén en formas normales superiores.

> empleados(empleado_id,...,numero_celular_1, numero_celular_2,
> numero_celular_3)

Esto está en 5NF (si no hay cosas raras en los puntos suspensivos).

Otra cosa es si este diseño es bueno o no, y no lo parece mucho.

> Cuando ??????, quedaria:
>
> empleados(empleado_id)
> empleado_telefonos(empleado_id, numero_telefono, tipo)

Y esto también está en 5NF. No has alcanzado una forma normal superior, por
lo tanto no has normalizado nada.



Saludos
Alfredo

Respuesta Responder a este mensaje
#12 Alfredo Novoa
07/12/2008 - 19:14 | Informe spam
El Sun, 7 Dec 2008 09:57:00 -0800, Gustavo Larriera (MVP) escribió:

No encuentro mención alguna en los posts al conjunto de dependencias
(funcionales, de valores múltiples, de producto...) entonces cómo pueden
ustedes sostener que el diseño está en una cierta FN ?



Por que en estos ejemplos son muy fáciles de deducir.

Todos sabemos que es empleado_id y telefono_1.


Saludos
Respuesta Responder a este mensaje
#13 Alejandro Mesa
07/12/2008 - 19:39 | Informe spam
Alfredo Novoa,

> empleados(empleado_id,...,numero_celular_1, numero_celular_2,
> numero_celular_3)

Esto está en 5NF (si no hay cosas raras en los puntos suspensivos).




Estas seguro?

Para estar en 5NF, debe cumplir con las formas normales anteriores, y creo
que este modelo no cumple con la forma normal 1, dado la existencia de grupos
variables y repetitivos (telefono_1, telefono_2, telefono_3). Variables
porque no todos los empleados tienes la misma cantidad de telefonos, y
repetitivos porque la entidad o relacion telefono se repite.


AMB


"Alfredo Novoa" wrote:


Hola Alejandro,

El Sun, 7 Dec 2008 08:26:01 -0800, Alejandro Mesa escribió:

>> Espero que tú no le llames normalizar a esto :-)
>
> Entonces te pregunto como le debo llamar?

Pues cambiar el diseño o algo así.

Pero desde luego no normalizar. Normalizar no significa aumentar el número
de tablas sin más, sino que significa modificar un diseño para hacer que
las "tablas" estén en formas normales superiores.

> empleados(empleado_id,...,numero_celular_1, numero_celular_2,
> numero_celular_3)

Esto está en 5NF (si no hay cosas raras en los puntos suspensivos).

Otra cosa es si este diseño es bueno o no, y no lo parece mucho.

> Cuando ??????, quedaria:
>
> empleados(empleado_id)
> empleado_telefonos(empleado_id, numero_telefono, tipo)

Y esto también está en 5NF. No has alcanzado una forma normal superior, por
lo tanto no has normalizado nada.



Saludos
Alfredo

Respuesta Responder a este mensaje
#14 Alejandro Mesa
07/12/2008 - 19:51 | Informe spam
Correccion:

Variables porque no todos los empleados tienes la misma cantidad de telefonos, y
repetitivos porque la entidad o relacion telefono se repite.



Variables porque no todos los empleados tienen la misma cantidad de
telefonos y repetitivos por la relacion empleado - telefono se repite.


AMB


"Alejandro Mesa" wrote:

Alfredo Novoa,

> > empleados(empleado_id,...,numero_celular_1, numero_celular_2,
> > numero_celular_3)
>
> Esto está en 5NF (si no hay cosas raras en los puntos suspensivos).
>

Estas seguro?

Para estar en 5NF, debe cumplir con las formas normales anteriores, y creo
que este modelo no cumple con la forma normal 1, dado la existencia de grupos
variables y repetitivos (telefono_1, telefono_2, telefono_3). Variables
porque no todos los empleados tienes la misma cantidad de telefonos, y
repetitivos porque la entidad o relacion telefono se repite.


AMB


"Alfredo Novoa" wrote:

>
> Hola Alejandro,
>
> El Sun, 7 Dec 2008 08:26:01 -0800, Alejandro Mesa escribió:
>
> >> Espero que tú no le llames normalizar a esto :-)
> >
> > Entonces te pregunto como le debo llamar?
>
> Pues cambiar el diseño o algo así.
>
> Pero desde luego no normalizar. Normalizar no significa aumentar el número
> de tablas sin más, sino que significa modificar un diseño para hacer que
> las "tablas" estén en formas normales superiores.
>
> > empleados(empleado_id,...,numero_celular_1, numero_celular_2,
> > numero_celular_3)
>
> Esto está en 5NF (si no hay cosas raras en los puntos suspensivos).
>
> Otra cosa es si este diseño es bueno o no, y no lo parece mucho.
>
> > Cuando ??????, quedaria:
> >
> > empleados(empleado_id)
> > empleado_telefonos(empleado_id, numero_telefono, tipo)
>
> Y esto también está en 5NF. No has alcanzado una forma normal superior, por
> lo tanto no has normalizado nada.
>
>
>
> Saludos
> Alfredo
>
Respuesta Responder a este mensaje
#15 Gustavo Larriera (MVP)
07/12/2008 - 21:19 | Informe spam
Hola Alfredo Novoa,
"Alfredo Novoa" wrote:

El Sun, 7 Dec 2008 09:57:00 -0800, Gustavo Larriera (MVP) escribió:

> No encuentro mención alguna en los posts al conjunto de dependencias
> (funcionales, de valores múltiples, de producto...) entonces cómo pueden
> ustedes sostener que el diseño está en una cierta FN ?

Por que en estos ejemplos son muy fáciles de deducir.

Todos sabemos que es empleado_id y telefono_1.




No estoy de acuerdo, pues no creo que las dependencias sean fáciles de
deducir, tampoco en estos ejemplos. Considerar que soy muy malo adivinando :-)

Aunque todos sepamos qué pueda contener empleado_id o numero_celular_1 en
base al nombre elegido, estamos a mucha distancia de poder conocer cuáles son
las dependencias partiendo solamente de eso.

De nuevo, el ejemplo a normalizar que puso Alejandro:

empleados(empleado_id,...,numero_celular_1, numero_celular_2,
numero_celular_3)

Hasta que no sepamos bien cuáles son las dependencias que se cumplen, no que
se pueda asegurar nada de qué FN se cumple. Qué sucederá si hay una
dependencia entre los celulares?

Debemos interpretar que lo que se quiso modelar es que el empleado tiene N
teléfonos celulares y normalmente 3 es la cantidad de celulares que tiene?
Puede tener solamente 2 o puede también no tener celulares? Los celulares son
independientes entre sí? Puede un empleado usar el celular de otro empleado?

Por ejemplo, qué decir si yo tengo un celular secundario cuyo número depende
del celular principal al cual se le factura (el secundario es una especie de
"extensión del servicio" y no factura por sí mismo). También es posible que
yo use un celular un fin de semana cuando estoy de guardia, y otro empleado
podrá usar ese celular en otro momento?

A eso me refiero cuando digo que no se puede decir a tontas y a locas que se
cumple una FN X. Simplemente es moverse en territorio imaginario :-)

Saludos,
~gux
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida