Sql Sin Duplicados Ni Nulos

Páginas: 5 (1197 palabras) Publicado: 12 de abril de 2012
“SIN DUPLICADOS NI NULOS”
LAS RELACIONES NO CONTIENEN TUPLAS DUPLICADAS, YA QUE UNA RELACION ES UN CONJUNTO DE TUPLAS Y SUPONE EN LAS MATEMATICAS NO CONTIENEN ELEMENTOS DUPLICADOS.
EN ESTE CAPITULO SE UTILIAZARAN TERMINOLOGIA DE SQL NO DE MODELO RELACIONAL.

“QUE ESTA MAL EN LOS DUPLICADOS”
HAY ARGUMENTOS PRACTICOS A FAVOR DE LA POSICION DE LAS FILAS DUPLICADAS, ESTO DEBE SER PROHIBIDO.
LOSDBMS RELACIONES SON UN COMPONENTE LLAMADO OPTIMIZADOR, QUE CONSITSTE EN ENCONTRAR LA MEJOR MANERA DE IMPLEMENTACION DE CONSULTAS PARA LOS USUARIOS.
REESCRITURA DE LA CONSULTA ES EL PROCESO DE TRANSFORMACION DE UNA EXPRESION RELACIONAL, QUE PRESENTA LAS CONSULTAS DE LOS USUARIOS.

AQUÍ TENEMOS UNA BASE DE DATOS RELACIONAL CON DUPLICADOS
LA PRESENCIA DE DUPLICADOS SUGIERE QUE PARTE DE ESTESIGNIFICADOESTA OCULTO
EN ETA FIGURA NOS HABLA UN POCO DE EL TIPO DE PIEZAS QUE ESTANDUPLICADAS EN LA BASE DE DATOS.
EN ESTO EJEMPLO VEMOS LAS CONSULTAS (EL NUMERO DE PIEZAS SUMINISTRADOS POR EL PROOVEDOR S1 (FORMULACIONES CANDIDATAS SQL PARA LA CONSULTA)

1. SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw'
OR P.PNO IN
( SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1' )
Result: P1 * 3, P2 * 1.

2.SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
OR SP.PNO IN
( SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw' )
Result: P1 * 2, P2 * 1.

3. SELECT P.PNO
FROM P, SP
WHERE ( SP.SNO = 'S1' AND
SP.PNO = P.PNO )
OR P.PNAME = 'Screw'
Result: P1 * 9, P2 * 4.

4. SELECT SP.PNO
FROM P, SP
WHERE ( SP.SNO = 'S1' AND
SP.PNO = P.PNO )
OR P.PNAME = 'Screw'
Result: P1 * 8, P2 * 4.
5. SELECT P.PNOFROM P
WHERE P.PNAME = 'Screw'
UNION ALL
SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
Result: P1 * 5, P2 * 2.

6. SELECT DISTINCT P.PNO
FROM P
WHERE P.PNAME = 'Screw'
UNION ALL
SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
Result: P1 * 3, P2 * 2.

7. SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw'
UNION ALL
SELECT DISTINCT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
Result: P1 * 4, P2 * 2.

8.SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw'
OR P.PNO IN
( SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1' )
Result: P1 * 3, P2 * 1.

9. SELECT DISTINCT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
OR SP.PNO IN
( SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw' )
Result: P1 * 1, P2 * 1.
10. SELECT P.PNO
FROM P
GROUP BY P.PNO, P.PNAME
HAVING P.PNAME = 'Screw'
OR P.PNO IN
( SELECT SP.PNO
FROM SPWHERE SP.SNO = 'S1' )
Result: P1 * 1, P2 * 1.
11. SELECT P.PNO
FROM P, SP
GROUP BY P.PNO, P.PNAME, SP.SNO, SP.PNO
HAVING ( SP.SNO = 'S1' AND
SP.PNO = P.PNO )
OR P.PNAME = 'Screw'
Result: P1 * 2, P2 * 2.

12. SELECT P.PNO
FROM P
WHERE P.PNAME = 'Screw'
UNION
SELECT SP.PNO
FROM SP
WHERE SP.SNO = 'S1'
Result: P1 * 1, P2 * 1.
EN ESTAS COSNULTAS NOS HABLA DE LAS FORMULACIONES QUE SEHACEN PARA ASUMIR QUE CADA PIEZA ES DE POR LO MENOS UN PROVEEDOR, A UNQUE CADA UNA DE LAS FORMULACIONES Y CONSULTAS, PRODUCE SUS RESULTADOS, DEPENDIENDO DE SU GRADO DE DUPLICACION, AUNQUE EN ESTE EJEMPLO SE HACEN 12 DIFERENTES FORMULACIONES NO SON LAS UNICAS QUE S EPUEDEN HACER PARA CHECAR LA DUPLICACION, PARA ELLO EL USUARIO NECESITA SER MUY CUIDADOSO EN LA FORMULACION Y LA CONSULTA PARA TENER UNBUEN RESULTADO.

EL OPTIMIZADOR ES CUIDADOSO EN LA TRANSFORMACION DE LA EXPRESION, ESTE NO ES LIBRE DE TRANSFORMAR, LAS FILAS DUPLICADAS ACTUAN COMO INHIBIDOR IMPORTANTE EN LA OPTIMIZACION.

EL CODIGO DEL OPTIMIZADOR ES MAS FACIL DE ECSRIBIR , AUNQUE MAS DIFICL DE MANTENER Y MAS DEFECTUOSO , LO CUAL HACE UN PRODUCTO MAS CARO Y MENOS CONFIABLE , SU RENDIMIENTIO ES PEOR DE LO QUE SERIA.

LOSUSUARIOS DEBEN DE CREAR UNA CONSULTA DETERMINADA PARA TENER UN MEJOR REDNIMIENTO EN ELE STADO DE LAS COSAS, LO QUE EL MODELO RELACIONAL EVITA .
LAS FORMULACIONES PUEDE PRODUCIR RESULTADOS DIFERENETES, ESTOS ES LO QUE CAUSA LOS DUPLICADOS QUE SON EL INHIBIDOR DE LA OPTIMIZACION, AUNQUE ESTO NO PODRIA PERACATARLO EL USUARIO.

EN ESTA APARTADO Y EJEMPLO D ELA STABLAS NOS HABLA DE QUE UNO SE...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Duplicado
  • Duplicados
  • Nulo
  • nulo
  • Nules
  • nulida
  • Nulo
  • Nulo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS