Está en la página 1de 68

Repaso Modelo Lgico

Prof. Carlos Sez Del Canto csaezdelc@gmail.com

Ejemplo

Atributo Multi-valuado
Crow`s Foot CAR CAR_VIN MOD_CODE CAR_YEAR CAR_COLOR

Relacin dbil

Relacin fuerte

Ejemplo

MySQL Workbench

http://dev.mysql.com/downloads/workbench/5.2.html

Cree el MLI de

Generalizacin

Cuando haga las relaciones piense: Aqu aparece un id de esta

tabla.

Mensajes propios?

lbumes? [1/3]

lbumes? [2/3]

lbumes? [3/3]

Recordemos

Integridad de Entidad
Todas las claves primarias deben ser nicas y ninguna

parte de sta debe ser nula.


Esto garantiza que cada entidad tenga una identidad

nica y asegura que los valores de claves forneas o ajenas puedan referirse apropiadamente a valores de claves primarias.

Integridad Referencial
Una clave ajena puede tener una entrada nula, mientras

esta no forme parte de la clave primaria de la tabla.


Esta regla de Integridad permitir realizar lo solicitado!!!

Entonces
El usuario x del grupo y realiza

El usuario public

El usuario 1 Amigo de 2 realiza

Realicemos Bsquedas

Otra forma de modelarlo?


Tambin es posible crear tablas independientes para

cada entidad.
Una tabla llamada ComentariosAmigos.
Otra ComentariosGrupo. Y una llamada Publicaciones, para Usuarios.

Normalizacin de bases de datos


Prof. Carlos Sez Del Canto csaezdelc@gmail.com

Conceptos Bsicos

Grupos repetitivos

Existen varios atributos que pueden co-ocurrir (depender funcionalmente) de un atributo clave.

Dependencias entre los atributos de una tabla

Parciales: un atributo depende de una parte de la clave Transitivas: un atributo depende de un atributo no clave, el cual depende de parte de una clave

Grupos Repetitivos
Tabla: Alumnos
RUT Nombre Asignarura1 Asignarura2 Asignarura5

Representacin entregada:
ALUMNOS (rut, nombre, Asignatura1, Asignatura2, Asignatura3, Asignatura4, Asignatura5)

El grupo repetitivo esta compuesto por un atributo

multivaluado mal presentado

Relacin No normalizada
Tabla: Alumnos
RUT Nombre Asignarura1 Asignarura2 Asignarura5

Representacin adecuada:
ALUMNOS( rut, nombres {idAsig, nAsignatura} )

Dependencia Parcial
nAsignatura Depende de una parte de la clave compuesta

RUT

idAsig

nAsignatura

Dependencia Transitiva
Tabla Profesores

RUT

nombre

codDepto

nDepto

La dependencia Transitiva esta dada por: nDeptocodDeptoRUT donde nDepto depende de codDepto que a su vez depende de la clave RUT

Qu es la normalizacin?

Normalizacin

Proceso de minimizacin de redundancias que ayuda a eliminar anomalas.

Se produce sobre el modelo lgico interno.


Opera sobre estados llamados formas normales

Primera forma normal (1NF)


Segunda forma normal (2NF) Tercera forma normal (3NF)
26

Primera forma normal 1NF

Eliminacin de Grupos repetitivos


Existen varios atributos que pueden co-ocurrir (depender funcionalmente) de un atributo clave.

Una tabla no debiera contener grupos repetitivos debido a que incorporan redundancia.

27

Paso 1:

Cree una tabla independiente con clave primaria para aquellos atributos que no componen el grupo repetitivo.

Tabla : ALUMNOS
RUT nombre

Representacin

ALUMNOS( RUT, nombre )


28

Paso 2:

Cree una nueva tabla con una clave primaria compuesta para el grupo repetitivo.

Esta clave primaria compuesta debe contener como PK: la clave primaria de la tabla anterior y una nueva para el grupo repetitivo.
RUT idAsig nAsignatura

Representacin:

Cursa(RUT, idAsig, nAsignatura )


29

Paso 3:
Describa las dependencias en las tablas creadas,

mediante un diagrama de dependencias funcionales.

DP RUT idAsig nAsignatura

Esta es la nica dependencia encontrada.

Resumen

Todas las claves estn bien definidas. No hay grupos repetitivos. Todos los atributos son dependientes de la clave primaria. Algunas tablas pueden tener dependencias
RUT Nombre Asignarura1 Asignarura2 Asignarura5

DP RUT nombre RUT idAsig nAsignatura


31

Segunda forma normal 2NF

Eliminacin de Dependencias Parciales

Un atributo depende de una parte de la clave

DP RUT idAsig nAsignatura

32

Paso 1:

Identifique todos los atributos clave. Escriba cada componente de la clave en una lnea separada y escriba la clave compuesta en una ltima lnea. Cada componente ser una clave en una nueva tabla.

33

DP RUT idAsig nAsignatura

RUT

nombre

idAsig nAsignatura

RUT

idAsig

Cursa(RUT, idAsig, nAsignatura )


RUT
idAsig RUT, idAsig

Tabla existente ALUMNOS ASIGNATURAS( idAsig, nAsignatura) CURSA(RUT, idAsig)

Resultado: Nueva Relacin

Resumen

Una tabla est en (2NF) si:


Est en 1NF y No tiene dependencias parciales.

36

Tercera forma normal 3NF

Eliminacin de Dependencias Transitivas

Un atributo depende de otro que a su vez depende de una parte o la totalidad de la clave. Ejemplo: PROFESORES

RUT

nombre

codDepto

nDepto

37

Paso 1:

Para cada dependencia transitiva, escriba su determinante como clave primaria para una nueva tabla.

Determinante

Un atributo cuyo valor determina los valores de otros atributos.

38

Paso 2:

Identifique los atributos dependientes de cada determinante identificado en el paso 1 e identifique las dependencias. Nombre la tabla de manera que refleje su contenido y funcin.

Agregue claves forneas a la tabla existente.

39

RUT

nombre

codDepto

nDepto

nombre, codDepto codDepto nDepto


RUT
Se Crean las tablas:
PROFESORES

DEPARTAMENTOS.

Resumen

Una tabla est en 3FN si:


Est en 2FN y No contiene dependencias transitivas.

Qu hemos logrado?

Temas claves:

Asignacin de claves Primarias Asignacin de claves Forneas Definicin de nombres Atomicidad Refinamiento de claves

42

Campeonatos
CAMPEONATOS(

CodCamp, FecIni, FecTerm, CodPais, NomPais, {NroPart, FecPart, CodEstad, NomEstad, {CodEqui, CodPais} })

Ejercicios

Realicemos Bsquedas

Diferentes formas de modelar la relacin

Error Recurrente en Lab. #2

Una PK de la tabla A aparece N veces en la tabla B No se complique con el nombre de la relacin.

Ejercicio MySQL Workbench


Traspase el primer modelo (relaciones dbiles) a un

MLI en MySQL Workbench. Para ello:


Slo cree la tablas.

No agregue las relaciones.


Agregue, sus atributos y su clave principal (PK).

Modelo Sin Relaciones

Utilice

para establecer la relacin.

Cual es la FK y de que tabla proviene.

Modelo Relacionado

Realice un MLI para las entidades obtenidas

Cuarta forma normal 4NF


La tabla est en cuarta forma normal (4FN) si: Est en 3FN No tiene dependencias multivaluadas 4FN es equivalente a lo siguiente: Todos los atributos son dependientes de la clave primaria e independientes de los otros. Ninguna fila contiene dependencias multivaluadas.

Dependencias Multivaluadas
Tabla Voluntarios
Emp_num RUT codOrg codRol

Paso 1
Para cada dependencia multivaluada cree nuevas

tablas con identificadores primarios con un nombre que lo represente.


Agregue las relaciones dbiles a la tabla relacionada

Nuevas Tablas Creadas


Estas nuevas tablas creadas, deben contener datos al

momento de poner en marcha nuestra base de datos.


Los atributos que aparecen en la tabla de 3NF y

cumplen con este tipo de dependencia, pueden ser manejados en la aplicacin.


Por lo general estos atributos aparecen siempre que se

requiera constantemente algn reporte que los utilice.

Por ejemplo: Organizaciones


idOrganizacion nombre 1 Asociacin Chilena de Municipalidades

2
3 4 5

Asociacin de Deportistas Olmpicos de Chile


Asociacin de Periodistas de Espectculos Asociacin de Productores de Pisco (Chile) Centro Nacional de Arbitrajes

6
7

Comunidad para el Desarrollo Humano


Corporacin de Defensa de la Soberana

N Boleta:________

Rut:________ - __ Nombre:_______________________________
IdProyecto nProyecto jefeProyecto rol valor x x x HH

Total ($)

Boletas (n,rut, nombre,{cp, np, jp, rol, hh, valor},

total )
1FN: Boletas(n, rut, nombre, total ) Detalle (n, cp, np, jp,rol,hh, valor) 2FN: Boletas(n, rut, nombre, total) Detalle (n, cp, rol,hh, valor) Prroyectos (cp, np, jp) 3FN: Detalle (n, cp, rol, hh) Roles (rol, valorhh, nombre )

Finalmente
Boletas(n, rut, nombre, total) Proyectos (cp, np, jp) Detalle (n, cp, rol , hh) Roles (rol, valorhh, nombre )

CP

rol

HH

Forma normal Boyce-Codd (BCNF)


Todo determinante en la tabla es una clave

candidata
Tienen las mismas caractersticas que una clave

primaria pero por alguna razn no han sido elegidas como claves

Si la tabla contiene slo una clave candidata,

entonces 3NF = BCNF


BCNF es violada slo si la tabla contiene ms de

una clave candidata.


64

Forma normal Boyce-Codd (BCNF)


La mayora de los diseadores consideran a la BCNF

como un caso especial de 3FN


Una tabla puede estar en 3FN y no en BCFN si:
Un atributo no clave determina un atributo

clave.

En 3NF pero no en BCNF

Claves candidatas: AC (compuesta) y C (simple)

En 3NF y en BCNF

Genere el modelo de
Boletas(n, rut, nombre, total) Proyectos (cp, np, jp) Detalle (n, cp, rol , hh)

Roles (rol, valorhh, nombre )

También podría gustarte