Machetes Varios

apuntes varios erp cwa logic ( ahora SoftLand Logic ) – sql y veremos que otra cosa

Normalización de Bases de Datos


Fuente: Libro An Introduction to Database Systems ( C.J Date )

Primera y Segunda Formal Normal: está bien explicado en wikipedia
y aqui

Ejemplo Base: Proveedores y Partes, el código del proveedor más el código de parte determinan la cantidad

S( Suppliers) : SNAME,STATUS,CITY

P(Parts): PNAME,COLOR,WEIGHT

S#,P# > QYT

Tercera Forma Normal: Una Relación R está en 3FN si y sólo si está en 2FN y todos los atributos que no forman parte de la clave dependen en forma no transitiva de la misma

Supongamos que STATUS depende funcionalmente de CITY, entonces se debe eliminar la dependencia transitiva del atributo que no forma parte de la clave:

S#,STATUS,CITY ( no está en 3FN)

a

S#,STATUS

CITY,STATUS

FD ( dependencia funcional): Dada una relación R, el atributo Y  es funcionalmente dependiente del atributo X,

R.X >  R.Y

si y sólo si por cada valor que tome X en R hay un sólo valor  de Y

BOYCE/CODD NORMAL FORM: Es una extensión de la definición original de la 3FN, la cual tiene problemas cuando

  1. existen varias claves candidatas, donde
  2. dichas claves son compuestas, y
  3. tienen al menos un atributo en común( overlapped)

entonces,

Una Relación R está en BCNF si y sólo si cada determinante ( cualquier atributo del cual dependa – full functionally – ) es un candidato a ser clave

Ejemplo: Relación SJT ( Student, Subject, Teacher ), con las siguientes restricciones:

  • Por cada materia, cada estudiante de esa materia puede tomar clases de solamente un maestro
  • Cada maestro enseña una sola materia
  • Cada materia es enseñada por varios maestros

La siguiente tabulación está en 3FN pero no en BCNF:

S J T

Smith Math Prof White

Smith Physics Prof Green

Jones Math Prof White

Jones Physics Prof Brown

Tenemos dos candidatas a clave overlaping, que son la combinación (S,J) y (S,T) . Si queremos borrar la información de que Jones estudia física, también hará que se pierda la información de que es enseñada por Brown.

La solución es reemplazar la tabulación por dos proyecciones BCNF

ST(S,T) y TJ ( T,J)

Cuarta Forma Normal ( dependencias multivaluadas )

Una relación R está en 4FN si y sólo si, por cada MVD( dependencia multivaluada) , digamos A>>B, todos los atributos de R son también funcionalmente dependientes de A. Es decir, de deben eliminar las dependencias multivaluadas en la tabla

Sea la Relación CTX ( curse, Teacher, Text ). Cada curso puede tener varios Profesores y a la vez varios textos.

Se dan las siguientes dependencias multivaluadas:

course >> teacher

course >>text

Por ejemplo Física es enseñada por Green y Brown y tiene dos textos de referencia. Matemática es enseñada por Green y tiene tres textos de referencia. Ningún atributo determina funcionalmente a otro, entonces la siguiente Tabla está en BCNF

COURSE TEACHER TEXT

Fisica Green F1

Fisica Green F2

Fisica Brown F1

fisica Brown F2

Mat Green M1

Mat Green M2

Mat Green M3

Si queremos agregar la información que el curso de Matemática tiene un nuevo profesor, se hace necesario agregar 3 nuevos registros, uno por cada uno de los textos.

La Solución es hacer la siguiente proyección:

CT( Course,Teacher) y CX( Course, Text )

Quinta Forma Normal ( proyect-join Normal Form )

Una Relación R está en 5FN si y sólo si cada dependencia para el join en R es una consecuencia de las candidatas a clave en R

Hasta la 4FN se suponía que se podía descomponer una tabla en dos sin perder datos. Con la quinta se descubre en quie hay casos en que una tabla no se puede descomponer en 2 si perder datos , pero sí en 3 o más.

Ejemplo: Relación SPJ ( Supplier, Part ; Proyect )

S# P# J#

S1 P1 J2

S1 P2 J1

S2 P1 J1

S1 P1 J1

SP PJ JS

S# P# P# J# J# S#

S1 P1 P1 J2 J2 S1
S1 P2 P2 J1 J1 S1

S2 P1 P1 J1 J1 S2

SP JOIN PJ ON P# arroja:

S# P# J#

S1 P1 J2

S1 P1 J1

S1 P2 J1

S2 P1 J2 >> espureo

S2 P1 J1

Hay que hacer el join con JS sobre J#,S# para volver a la tabla original

SP,PJ y JS están en 5FN ya que nohay JD ( join dependences ) no triviales en ellas

JD ( join dependence ) : es una restricción en la Relación , tal como las MVD y las FD.

La Relación R satisface la join dependence(JD ) si y solo sí R es igual al Join de sus proyecciones ( X,Y,… Z), donde X,Y…Z son subconjuntos de atributos de R

febrero 22, 2007 - Posted by | Bases de Datos

1 comentario »

  1. hola me gustaria saber mas sobre la quinta forma tengo un exposicion y no la comprendo todavia no se si me podrian ayudar

    Comentario por ana | junio 20, 2008 | Responder


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: