Datos en Columnas VS Datos en Filas

25/04/2008 - 17:16 por Penta | Informe spam
Estimados.
Utilizo SS2000 SP4

Tengo el siguiente panorama:

Deseo establecer la data de 30 campos, la problematica es si dejarlos
en columnas o filas.

Primera Opcion, en filas.
La estructura sería:

Codigo Asignatura Seccion Ano Periodo Item Nota
1 ABC 1 2008 1 1 5.5
1 ABC 1 2008 1 1 6.0
2 ABC 2 2008 1 1 4.0
etc

Segunda Opcion
Codigo Asignatura Seccion Ano Periodo Nota1 Nota2 etc hasta Nota30
1 ABC 1 2008 1 5.5 60 NUL
NULL etc
2 ABC 2 2008 1 4.0 NULL NULL
etc


A mi me gusta la Primera Opcion, pero no encuentro argumentos tecnicos
para indicar a desarrollo que es mejor,
ya que al hacer pruebas con 100 mil registros la Segunda Opcion se
demora menos.

Atte.
Penta.

Preguntas similare

Leer las respuestas

#6 Gux (MVP)
25/04/2008 - 20:51 | Informe spam
Imagino que la clave primaria podria ser (Codigo, Asignatura, Seccion, Ano,
Periodo, Item). Asumo que Item es un secuenciador de corte de control y que
los datos serán algo como esto:

Codigo Asignatura Seccion Ano Periodo Item Nota
1 ABC 1 2008 1 1 5.5
1 ABC 1 2008 1 2 6.0 <-- Item es 2
y no 1
2 ABC 2 2008 1 1 4.0
etc

...pero que lo confirme Penta.



Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Alfredo Novoa" wrote:

El Fri, 25 Apr 2008 09:43:03 -0700, Gux (MVP) escribió:

> En la opción 1 no veo con claridad cuál será la clave primaria?

Es cierto, falta una columna con el número de la nota.


Saludos

Respuesta Responder a este mensaje
#7 Penta
25/04/2008 - 21:11 | Informe spam
Mil disculpas.
Efectivamente en la columna Item va una secuencia partiendo del 1

Codigo Asignatura Seccion Ano Periodo Item Nota
1 ABC 1 2008 1 1 5.5
1 ABC 1 2008 1 2 6.0
2 ABC 2 2008 1 3 4.0

(error de copy paste)

Atte.
Penta.
Respuesta Responder a este mensaje
#8 Penta
25/04/2008 - 21:15 | Informe spam
Sin lugar a dudas es "fuera de lo normal" la Segunda Opcion pero no
tengo fundamento técnicos para defender la primera :(
Lo unico que fundamente es que al hacer un SP con la primera oción no
se debe modificar nada, caso contrario con la segunda opcion donde
argumente que si la cantidad de campos cambia de 30 a 35 se debera
modificar el SP, lamentablemente me argumentan que en ningun caso eso
sucedera :(




Atte.
Penta.
Respuesta Responder a este mensaje
#9 Maxi Accotto
25/04/2008 - 21:27 | Informe spam
Hola, bueno argumentos puedes tener, uno es el principio de las formas
normales de una base de datos, un buen diseño deberia estar en la 3FN.
Tu ejemplo 2 no es muy normalizado que digamos ;-) por ende aca hay uns
discusion eterna: Normalizacion vs Performance


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Penta" escribió en el mensaje de
noticias:
Sin lugar a dudas es "fuera de lo normal" la Segunda Opcion pero no
tengo fundamento técnicos para defender la primera :(
Lo unico que fundamente es que al hacer un SP con la primera oción no
se debe modificar nada, caso contrario con la segunda opcion donde
argumente que si la cantidad de campos cambia de 30 a 35 se debera
modificar el SP, lamentablemente me argumentan que en ningun caso eso
sucedera :(




Atte.
Penta.
Respuesta Responder a este mensaje
#10 Gux (MVP)
25/04/2008 - 21:40 | Informe spam
Entiendo que Item es un secuenciador y que no corta cuando cambia el grupo
(Codigo, Asignatura, Seccion, Ano, Periodo). Entonces Item puede ser la clave
primaria de la tabla.

Imagino que en su modelo conceptual hay una dependencia funcional expresada
como "el código, la asignatura, la sección, el año y el período determinan un
conjunto de notas" ?

CODIGO x ASIGNATURA x SECCION x ANO x PERIODO --> { NOTA }

A nivel físico, la tabla de la Opción 1 que usted mostró está mejor
normalizada que la segunda opción. Pero la Opción 2 también puede ser buena y
favorecer el rendimiento de las consultas.

Por ejemplo: Dados c (un Código), g (una Asignatura), s (una Sección), a (un
Año) y p (un Período), obtener todo el conjunto de notas de (c, g, s, a, p).
O también esta otra consulta: Obtener el promedio de notas de (c, g, s, a, p).

Para estas consultas la implementación 2 necesita acceder solamente a una
fila de la tabla, cuando en la opción 1 accede a varias filas (posiblemente
30).

En fin, sin ánimos de discutir solamente quiero poner sobre la mesa que hay
muchas más cosas a considerar para poder elegir la mejor opción. Sería bueno
considerar cuáles serán las consultas típicas a realizar.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Penta" wrote:

Mil disculpas.
Efectivamente en la columna Item va una secuencia partiendo del 1

Codigo Asignatura Seccion Ano Periodo Item Nota
1 ABC 1 2008 1 1 5.5
1 ABC 1 2008 1 2 6.0
2 ABC 2 2008 1 3 4.0

(error de copy paste)

Atte.
Penta.

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