comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Modelo Relacional

  • 11 Respuestas
  • 4250 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« en: Febrero 03, 2013, 06:51:24 pm »
Autora original del documento que fue adaptado:
Mónica María Rojas Rincón
mmrojas@elpoli.edu.co
Oficina: P19-103

Lo concideré un documento interesante y procedo a postearlo para que todos lo vean.



Modelo Relacional

Indice:
Normalización: ¿para qué sirve?
Anomalías
FORMAS NORMALES
PRIMERA FORMA NORMAL
SEGUNDA FORMA NORMAL
TERCERA FORMA NORMAL
BCNF
Partición SPI y SPD
Descomposición sin pérdida de DF (SPD)
Refencias

Saludos!
« Última modificación: Febrero 03, 2013, 07:23:09 pm por [H]arkonnen »

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #1 en: Febrero 03, 2013, 06:57:30 pm »
Normalización: ¿para qué sirve?

Para diseñar “buenas” relaciones desde el punto de
vista de:

* Minimizar la redundancia

* Minimizar el mantenimiento de datos

* Minimizar el impacto de futuros cambios de datos e ingreso de información.

La normalización consiste en descomponer una
relación de una BD en sub-relaciones.
Las anomalías son a menudo debidas a una mala
repartición de la información entre las relaciones.

SE DEBE TENERCUIDADO:
- La normalización tiene un impacto sobre la eficiencia.
- La normalización puede traer perdida de información y de DF.

Ejemplo

PERSONAL

CedulaNombreApellidoCargoEscalafónSalario
4325JuanGarcíaProfesor61.589
8564MarioLópezProfesor92.023
3698LuisPérezProfesor51.350
5874CarlosGómezProfesor61.589

Una restricción del mundo real es:
DF = {Cargo, Escalafón} -> Salario

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #2 en: Febrero 03, 2013, 06:58:45 pm »
Anomalías

* Anomalía de inserción: Para almacenar el salario de
un profesor de escalafón 3, es necesario que exista en
PERSONAL un maestro de escalafón 3.

* Anomalía de modificación: la redundancia de la
información en los profesores de escalafón 6 puede
introducir problemas si el salario de esa categoría es
modificado. Es necesario tener en cuenta que se debe
modificar la tupla 1 y 4

* anomalía de supresión : si el único profesor de
escalafón 5 (o del 9) cambia de escalafón se pierde la
información sobre el salario de los profesores de
escalafón 5 (o del 9)

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #3 en: Febrero 03, 2013, 07:01:57 pm »
FORMAS NORMALES

* 6 formas normales clásicas:

1NF, 2NF, 3NF, BCNF, 4NF, 5NF

* Mientras una relación esté en una forma normal más alta “mucho mejor”
* Generalmente se acepta normalizar hasta BCNF
* Las formas normales 4 y 5 son casos “extremos”

- Si una relación cumple una forma normal n automáticamente
cumplirá las n-1 formas normales anteriores, es decir, cada
forma normal es “más fuerte” que sus predecesoras.
- El análisis de 1NF, 2NF y 3NF está considerado sólo para
relaciones con una sola clave candidata. Para relaciones
con más de 1 clave candidata directamente se aplica BCNF

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #4 en: Febrero 03, 2013, 07:05:15 pm »
PRIMERA FORMA NORMAL

Definición:

Una relación está en 1NF si todos sus atributos tienen valores atómicos


* Solución: crear una entidad adicional y agregarla al esquema con relación 1:N




En otras palabras para que una tabla esté en 1NF todos sus campos deben hacer alusión a 1 solo dato, y cada registro en cada campo debe tener 1 solo dato, por ejemplo es incorrecto poner un campo Nombre y Apellido, porque el nombre es un dato y el apellido es otro, tendrían que estar en dos campos diferentes.

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #5 en: Febrero 03, 2013, 07:11:45 pm »
SEGUNDA FORMA NORMAL

* Una relación está en 2NF si y sólo si está en 1NF y todos los atributos no clave (si los hay) dependen funcionalmente por completo de la clave primaria.





en otras palabras para que una tabla esté en 2NF, la misma tiene que estar en 1NF, y que todos los campos de la tabla dependan del campo clave, lo que quiero decir es que si tienes un campo clave DNI, y varios campos nombre, apellido, edad, etc. estos dependen del numero de identificación de la persona que los identifica a todos ellos, pero si tu dices que el campo clave, es edad, no corresponde el dni, porque no dependencia con la edad. quiero decir que no necesariamente el dni es x, si la edad es i, pero si que la edad es x si el dni es i...

saludos!

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #6 en: Febrero 03, 2013, 07:17:44 pm »
TERCERA FORMA NORMAL

Una relación está en 3NF si y sólo si los atributos no clave (si
los hay) son:
* Mutuamente independientes
* Dependen por completo de la Clave Primaria

cédulahobbievalor_hobbie
10Música100
20Pintura200
30Música100
40Pintura200
50Bolos100

si tomamos como clave primaria al campo cedula, tenemos un inconveniente, y es que el campo valor_hobbie depende del campo hobbie, por tanto hay una dependencia entre campos no clave, y esto no está normalizado.

La solución es hacer dos tablas, una con la cedula y el hobbie, y otra tabla que se llame hobbie y tenga el hobbie y el valor.

saludos!
« Última modificación: Febrero 03, 2013, 07:20:49 pm por [H]arkonnen »

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #7 en: Febrero 03, 2013, 07:18:41 pm »
BCNF

* La 3NF de Codd trabaja sobre el supuesto de una única clave

candidata
* En cambio la BCNF trabaja el caso más general en donde
puede haber más de una clave candidata

NOTA : Toda relación en BCNF está en 3NF, pero no toda relación
en 3FN esta en BCNF

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #8 en: Febrero 03, 2013, 07:21:48 pm »
Partición SPI y SPD

* La partición que se hace al normalizar una relación puede ser:
* Sin pérdida de información (SPI) o con pérdida de información.
* Sin pérdida de dependencias funcionales (SPD) o con pérdida de
dependencias funcionales.
* En BCNF no siempre es posible normalizar SPD. Entonces ¿qué hacer?
intentar una normalización menor o aceptar la pérdida de la restricción.

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #9 en: Febrero 03, 2013, 07:23:48 pm »

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #10 en: Febrero 03, 2013, 07:24:31 pm »

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #11 en: Febrero 03, 2013, 07:25:22 pm »
Refencias

Basado en:

* Abraham Silberschatz, et. Al. Fundamentos de Bases de Datos. Cuarta Edición. 2004. Pág. 163-167
* Margarita Hincapie. Notas de clase Bases de Datos. Politécnico Colombiano Jaime Isaza Cadavid.

 

¿Te gustó el post? COMPARTILO!



Concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional

Iniciado por ANTRAX

Respuestas: 8
Vistas: 4178
Último mensaje Octubre 05, 2015, 08:55:25 pm
por graphixx