PostgreSQL - Normalizacion

 
Vista:
sin imagen de perfil

Normalizacion

Publicado por daniel (2 intervenciones) el 14/06/2018 21:50:07
buenas a toda la comunidad tengo la siguiente duda cual seria la manera mas correcta de normalizar estas 2 tablas ya que en base de datos una primary key no puede tener 2 o mas atributos si no solamente una. espero su pronta ayuda gracias esta son las tablas.

1
2
3
4
5
6
7
8
9
10
11
12
13
create table inscritos(
	nombre varchar(30),
	documento char (8),
	deporte varchar (15),
	matricula char(1), --'s'=paga 'n'=impaga
 
	primary key(documento,deporte)
);
 
create table inasistencia(
	documento char(8),
	deporte varchar(15),
	fecha date
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Normalizacion

Publicado por martin (121 intervenciones) el 15/06/2018 01:50:47
No se quien te dijo eso, pero una primary key puede esta compuesta por N columnas, y esas columnas también pueden ser claves foraneas.

SAludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Normalizacion

Publicado por YYanes (20 intervenciones) el 13/07/2018 21:35:18
Hola amigo:

ante todo, creo que has interpretado mal el concepto de la normalización. De hecho (como dice nuestro amigo Martin) una tabla puede tener tantas primary key como desees, la condición para normalizar sería que: todos los atributos no-clave representen un dato de los que sí son clave, en lugar de representar un dato de otro atributo no-clave.

Por ejemplo, supongamos la siguiente tabla:
Suceso(hora, lugar, descripcion_suceso, descripcion_lugar) // en donde los atribuos "hora" y "lugar" conforman la llave primaria (llave primaria compuesta)

-> Este ejemplo NO está normalizado, ya que aunque el atributo "descripcion_suceso" representa un dato de ambas llaves primaria, el atributo "descripcion_lugar" responde solamente a una parte de la llave primaria (a una sola de las dos), y no a ambas. La solución: crear una tabla "Lugar" que contenga su "nombre" y "descripción".

Revise esa condición en tu tabla "inscritos", yo creo que el atributo "nombre" es quien viola la normalización de la misma, pues el nombre debe ser el del "deporte" o el del "documento", no creo que responda a ambas partes de la tabla... Lo mismo sucede con el atributo "matricula".

Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar