Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problemas al normalizar tabla.

Estas en el tema de Problemas al normalizar tabla. en el foro de Bases de Datos General en Foros del Web. Hola tengo que normalizar una tabla que me han dado y tengo un problema que reflejo asi: Usuario = ({DNI,Nombre,Aficcion,Tipo_Aficcion},L); Donde DNI es el dni ...
  #1 (permalink)  
Antiguo 06/03/2008, 09:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas al normalizar tabla.

Hola tengo que normalizar una tabla que me han dado y tengo un problema que reflejo asi:

Usuario = ({DNI,Nombre,Aficcion,Tipo_Aficcion},L);

Donde DNI es el dni del usuario, nombre es el nombre del usuario afficciones son todas las posibles aficciones que puede tener un usuario (leer,correr,baloncesto...) y tipo_aficciones es la agrupacion de afacciciones puedes ser (deporte,....)

Unos ejemplos de lo que podria haber en la tabla

('11223344',''Pepe','Correr','Deporte')
('11223344','Pepe','Baloncesto','Deporte')
.......
('99887766','Maria','Leer','Educativa')
('99887766',Maria','Correr','Deporte')
.......

Empiezo a normalizar y me sale esto como df (dependencia funcionales) con el recubrimiento minimo ya hecho:

L = {
DNI -> Nombre
Aficcion -> Tipo_Aficcion
}


La clave candidata de esta tabla es {DNI,Aficcion}

Bien ahora miro las FN y la primera la cumple pues todos los atributos solo toman un unico valor.
Ahora biene la jodida la 2FN en la que se que no esta pues ni Nombre ni Tipo_Aficcion dependen totalmente de la clave pues entonces hacemos dos tablas no????

Usuario = ({DNI,Nombre},{DNI->Nombre})
Clave Candidata = {DNI}

Afic = ({Aficciones,Tipo_Aficcion},{Aficciones->Tipo_Aficcion})
Clave Candidata = {Aficcion}

Pues aki hay un problema esto es lo que hacen en todo lo que e visto y en las formulas que dan por ahi esto es lo que saldria. Pero esto esta mal por que ahora ya no existe ninguna relacion entre usuario y afic, si a partir del enunciado hago yo mi e-er pues me sale otra tabla:
Tiene = ({DNI,Aficciones},{sin df})
esta tabla "Tiene" sale de una relacion de varios a varios entre usuario y afic pero que si se hace como yo lo hice arriba no sale.

La pregunta por si no quedo muy claro es:
¿se debe dejar simplemente las tablas usuario y afic y poniendo una nota como "se perderan relaciones entre atributos", o seria valido poner la tercera tabla "tiene"?

Gracias.
  #2 (permalink)  
Antiguo 07/03/2008, 05:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Problemas al normalizar tabla.

a ver, deberias tener:

usuario (dni (PK), nombre)
tipo_aficion (id_tipo_aficion (PK), nombre_tipo_aficion)
aficiones (id_aficion(PK), nombre_aficion, id_tipo_aficion(FK tipo_aficion(id_tipo_aficion))
usuario_x_aficiones (dni FK usuario(dni), id_aficion(FK aficiones(id_aficion), PK(dni, id_aficion))

Esta es la forma correcta, desde mi punto de vista, de modelar este problema.

A la espera
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:03.