[Pgsql-ayuda] UNA PREGUNTA DE SQL

Jose Antonio Leo jaleo8@storelandia.com
Tue, 23 Jul 2002 09:17:55 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_0015_01C23229.D47DD720
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

Hola Luis, voy a intentar ser imparcial al máximo, aunque te advierto que de
entrada te diria que deberias rediseñar esa base de datos.

La teoria dice que todas las bases de datos tiene que estar normalizadas
como mínimo hasta 4ª Forma Normal, eso segurament, por lo que dices no lo
tenrás hecho. En la práctica todos los diseñadores de bases de datos
intentan que sus accesso sean rápidos, y eficientes y si para eso tiene que
redundar datos lo hacen.
En tu caso no lo se, pero a simple vista parecen muchos 100 campos.
El hecho de normalizar la Bd implica que las sentencias de busqueda o
mantenimiento sean algo mas complejas y un poco mas lentas, pero evitarias
redundacia de datos, espacio y posibles incongruencias en datos, es decir
registros que deberian tener los mismos datos y no los tienen. Por otra
parte tener una bd como la tienes implica un trabajo extra de mantenimiento.
Por otra parte, MSQL no tiene un buen control de claves foraneas, eso
complica la normalización, ya que deberias controlar eliminaciones y
modificaciones de estas claves a través d la aplicación que gestiona la BD.

En fin, hay que normalizar las bases de datos, teniendo en cuenta la
explotación que hará sobre ella. Pero también hay que tener en cuenta que si
la cosa funciona y no te genera trabajo extra por ello, mejor no tocarlo.

Un saludo.


  ---Mensaje original-----
  De: pgsql-ayuda-admin@tlali.iztacala.unam.mx
[mailto:pgsql-ayuda-admin@tlali.iztacala.unam.mx]En nombre de Luisito Suárez
  Enviado el: viernes, 19 de julio de 2002 17:06
  Para: pgsql-ayuda@tlali.iztacala.unam.mx
  Asunto: [Pgsql-ayuda] UNA PREGUNTA DE SQL


  SALUDOS.
      VI UN E-MAIL TUYO, AYUDANDO A UN AMIGO CON UN PROBLEMA DE
NORMALIZACION, Y QUISIERA NO MOLESTARTE CON ESTA PREGUNTA.


  -TENGO UNA TABLA CON MAS DE 100 CAMPOS, Y ESTA TABLA CONTIENE MAS DE
200,000 REGISTROS.
  UN AMIGO MIO ME DIJO QUE ESA TABLA TENIA MUCHOS CAMPOS Y QUE DEBIA
DIVIDIRLA EN VARIAS TABLAS
  CON MENOS CAMPOS.

  ENTONCES NO SE QUE ES MEJOR, TENER UNA TABLA CON 100 CAMPOS Y 200,000
REGISTROS O TENER VARIAS
  TABLAS (3 ó 4) CON 200,000 REGISTROS, PERO CON MENOS CAMPOS.

  ESTOY TRABAJANDO CON MS-SQL.



  TE AGRADECERIA MUCHO TU RESPUESTA.


  UN AMIGO DOMINICANO
  LUIS SUAREZ

------=_NextPart_000_0015_01C23229.D47DD720
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2715.400" name=3DGENERATOR></HEAD>
<BODY>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>Hola=20
Luis, voy a intentar ser imparcial al m=E1ximo, aunque te advierto que =
de entrada=20
te diria que deberias redise=F1ar esa base de datos.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN=20
class=3D190265906-23072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>La=20
teoria dice que todas las bases de datos tiene que estar normalizadas =
como=20
m=EDnimo hasta 4=AA Forma Normal, eso segurament, por lo que dices no lo =
tenr=E1s=20
hecho. En la pr=E1ctica todos los dise=F1adores de bases de =
datos&nbsp;intentan que=20
sus accesso sean r=E1pidos, y eficientes y si para eso tiene que =
redundar datos lo=20
hacen.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>En tu=20
caso no lo se, pero&nbsp;a simple vista parecen muchos 100=20
campos.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>El=20
hecho de normalizar la Bd implica que las sentencias de busqueda o =
mantenimiento=20
sean algo mas complejas y un poco&nbsp;mas lentas, pero evitarias =
redundacia de=20
datos, espacio y posibles incongruencias en datos, es decir registros =
que=20
deberian tener los mismos datos y no los tienen. Por otra parte tener =
una bd=20
como la tienes implica un trabajo extra de mantenimiento. Por otra=20
parte,&nbsp;MSQL no tiene un buen control de claves foraneas, eso =
complica la=20
normalizaci=F3n, ya que deberias controlar eliminaciones y =
modificaciones de estas=20
claves&nbsp;a trav=E9s d la aplicaci=F3n que gestiona la =
BD.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN=20
class=3D190265906-23072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>En=20
fin, hay que normalizar las bases de datos, teniendo en cuenta la =
explotaci=F3n=20
que har=E1 sobre ella. Pero tambi=E9n hay que tener en cuenta que si la =
cosa=20
funciona y no te genera trabajo extra por ello, mejor no=20
tocarlo.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN=20
class=3D190265906-23072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN =
class=3D190265906-23072002>Un=20
saludo.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><SPAN=20
class=3D190265906-23072002></SPAN></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
  <DIV class=3DOutlookMessageHeader dir=3Dltr align=3Dleft><FONT =
face=3DTahoma><BR><FONT=20
  size=3D2>---Mensaje original-----<BR><B>De:</B>=20
  pgsql-ayuda-admin@tlali.iztacala.unam.mx=20
  [mailto:pgsql-ayuda-admin@tlali.iztacala.unam.mx]<B>En nombre de =
</B>Luisito=20
  Su=E1rez<BR><B>Enviado el:</B> viernes, 19 de julio de 2002=20
  17:06<BR><B>Para:</B> =
pgsql-ayuda@tlali.iztacala.unam.mx<BR><B>Asunto:</B>=20
  [Pgsql-ayuda] UNA PREGUNTA DE SQL<BR><BR></FONT></FONT></DIV>
  <DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2>SALUDOS.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002>&nbsp;&nbsp;&nbsp; <FONT =
face=3DArial=20
  size=3D2>VI UN E-MAIL TUYO, AYUDANDO A UN AMIGO CON UN PROBLEMA DE=20
  NORMALIZACION, Y QUISIERA NO MOLESTARTE CON ESTA =
PREGUNTA.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial =
size=3D2>-TENGO UNA TABLA=20
  CON MAS DE 100 CAMPOS, Y ESTA TABLA CONTIENE MAS DE 200,000=20
  REGISTROS.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial size=3D2>UN =
AMIGO MIO ME=20
  DIJO QUE ESA TABLA TENIA MUCHOS CAMPOS Y QUE DEBIA DIVIDIRLA&nbsp;EN =
VARIAS=20
  TABLAS </FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial size=3D2>CON =
MENOS=20
  CAMPOS.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial =
size=3D2>ENTONCES NO SE QUE=20
  ES MEJOR, TENER UNA TABLA CON 100 CAMPOS Y 200,000 REGISTROS O TENER=20
  VARIAS</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial =
size=3D2>TABLAS (3 =F3 4)=20
  CON&nbsp;200,000 REGISTROS, PERO CON MENOS CAMPOS.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial =
size=3D2>ESTOY TRABAJANDO=20
  CON MS-SQL.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial size=3D2>TE =
AGRADECERIA=20
  MUCHO TU RESPUESTA.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial=20
  size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial size=3D2>UN =
AMIGO=20
  DOMINICANO</FONT></SPAN></DIV>
  <DIV><SPAN class=3D418265513-19072002><FONT face=3DArial size=3D2>LUIS =

  SUAREZ</FONT></SPAN></DIV></DIV></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_0015_01C23229.D47DD720--