SQL Server - Ayuda para comprender esto, por favor.

   
Vista:
Imágen de perfil de Quasar

Ayuda para comprender esto, por favor.

Publicado por Quasar (3 intervenciones) el 31/01/2016 03:33:24
Buenas, mi gran duda (aunque muy simple para muchos y hasta puede que molesta para otros) es porque en la tabla detalle de una factura se tienen que redundar los registros con el mismo nro de factura
me explico en la vista de la tabla quedan nro de factura repetidos que corresponden a cada compra de un producto quedando así :
:::Tabla detalle factura:::
nrafac idprod cant p/u valor
00001 etc etc etc etc
00001 etc etc etc etc
00002 etc etc etc etc
00002 etc etc etc etc
00003 etc etc etc etc
00003 etc etc etc etc
00003 etc etc etc etc
Claro que esto es resultado de la normalización de bdds, pero ¿Por qué la tabla queda de esa manera? Cuando uno de los principios básicos de las bases de datos es evitar la redundancia e inconsistencias de datos, ayuda por favor lo eh pensado mucho y he llegado a la conclusión de que los datos de ciertas tablas se tienen que redundar.
Espero que me puedan aclarar este dilema y si es posible que me recomienden algunos libros ya que estoy empezando con SQLserver.
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
Imágen de perfil de Wilfredo Patricio Castillo

Ayuda para comprender esto, por favor.

Redundar sería que en la tabla de detalle encuentres el IdCliente por ejemplo, o la fecha de creación de la factura o el monto total de la factura, ya que esos están en el encabezado de la factura.

En el caso del detalle, ese campo IdFactura o NroFactura es producto de la relación Muchos a Uno, muchos detalles de factura pertenecen justamente a ese número de factura, esa es la manera en que podrías determinar que esos detalles pertenecen a una factura y se puedan relacionar, de otra manera estarían huérfanos esos detalles.

Ya te responderá Isaías que es el especialista en SQL Server.

Saludos cordiales,
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
Imágen de perfil de Quasar

Ayuda para comprender esto, por favor.

Publicado por Quasar (3 intervenciones) el 02/02/2016 20:54:21
Muchas gracias por tu respuesta muy concreta y fácil de entender pero ahora tengo otra duda la cual es. ¿Por qué ese campo nroFact no puede ser clave primaria?. aunque creo que la respuesta es un poco obvia pero te agradeceria si me aclararas esa duda. Gracias por tomarte tu tiempo.

Saludos :)
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
Imágen de perfil de Isaias

Ayuda para comprender esto, por favor.

Publicado por Isaias (3186 intervenciones) el 02/02/2016 22:59:29
Wilfredo, ¿como que especialista?, no amigo, muchas gracias, todos los dias sigo aprendiendo cosas interesantes de SQL Server

Quasar, Tienes razon, la "redundancia" que mencionas es por el DRI (llaves primarias, heredan, llaves foraneas).

Hoy en dia existen campos que manejan los indices en forma de columna para evitar lo que tu llamas RENUNDANCIA, lee un poco sobre COLUMN STORE INDEX, aunque debo aclarar que esto, al parecer, solo se aplica a bases en DATAWARE HOUSE.

Imagina, en tu ejemplo, que tienes UNA FACTURA que ampara 10 productos y que solamente al primer registro le pusieras el dato del NUMERO DE FACTURA, ¿como saber que otros registros pertenecen a la misma factura?

Y como bien dice Wilfredo, seria UNA REAL REDUNDANCIA (por no decir pendeje......), que tu tabla detalle tuviera FECHA DE FACTURA, CLIENTE, DIRECCION POBLACION, CODIGO POSTAL, etc.

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
Imágen de perfil de Wilfredo Patricio Castillo

Ayuda para comprender esto, por favor.

Isaías, hermano, mis conocimientos en SQL Server no están a la altura tuya, y pues hay que reconocer que eres un maestro en el asunto, así que que no hay que ser mezquino en reconocerlo.

Saludos cordiales,
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
Imágen de perfil de Quasar

Ayuda para comprender esto, por favor.

Publicado por Quasar (3 intervenciones) el 03/02/2016 05:02:09
Cuánta modestia y humildad, Gracias a los dos por compartir sus conocimientos.
Yo creo que este campo de la informática es muy amplio y siempre hay algo nuevo que aprender o reaprender en mi caso jaja.
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