Ejercicio de Normalizacion Bases de Datos

Embed Size (px)

Citation preview

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    1/12

    TÉCNICO EN SISTEMAS

    Normalización de bases de datosPara otros usos de este término, véase Normalización (desambiguación).

    El proceso denormalización debases de datos consiste en aplicar una serie de reglas a las relaciones obtenidastras el paso del modelo entidad-relación al modelo relacional.

    Las bases de datos relacionales se normalizan para:

    Evitar laredundancia de los datos.

    Evitar problemas de actualización de los datos en las tablas.

    Proteger la integridad de los datos.En el modelo relacional es frecuente llamartabla a una relación, aunque para que una tabla sea considerada comouna relación tiene que cumplir con algunas restricciones:

    Cada columna debe tener su nombre único.

    o puede !aber dos filas iguales. o se permiten los duplicados.

    "odos los datos en una columna deben ser del mismo tipo.

    Contenido

    # "erminolog$a relacional equivalente

    • % &ependencia

    o %.# &ependencia funcional

    o %.% Propiedades de la &ependencia funcional

    %.%.# &ependencia funcional 'efle(iva

    %.%.% &ependencia funcional )umentativa

    %.%.* &ependencia funcional transitiva

    o %.* Propiedades deducidas

    %.*.# +nión

    http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_(desambiguaci%C3%B3n)http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_(desambiguaci%C3%B3n)http://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Modelo_E-Rhttp://es.wikipedia.org/wiki/Modelo_relacionalhttp://es.wikipedia.org/wiki/Modelo_relacionalhttp://es.wikipedia.org/wiki/Redundanciahttp://es.wikipedia.org/wiki/Integridadhttp://es.wikipedia.org/wiki/Integridadhttp://es.wikipedia.org/wiki/Tabla_(base_de_datos)http://es.wikipedia.org/wiki/Tabla_(base_de_datos)http://es.wikipedia.org/wiki/Fila_(base_de_datos)http://es.wikipedia.org/wiki/Fila_(base_de_datos)http://es.wikipedia.org/wiki/Columna_(base_de_datos)http://es.wikipedia.org/wiki/Columna_(base_de_datos)http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Terminolog.C3.ADa_relacional_equivalentehttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependenciahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcionalhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Propiedades_de_la_Dependencia_funcionalhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_Reflexivahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_Aumentativahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_transitivahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Propiedades_deducidashttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Uni.C3.B3nhttp://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Modelo_E-Rhttp://es.wikipedia.org/wiki/Modelo_relacionalhttp://es.wikipedia.org/wiki/Redundanciahttp://es.wikipedia.org/wiki/Integridadhttp://es.wikipedia.org/wiki/Tabla_(base_de_datos)http://es.wikipedia.org/wiki/Fila_(base_de_datos)http://es.wikipedia.org/wiki/Columna_(base_de_datos)http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Terminolog.C3.ADa_relacional_equivalentehttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependenciahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcionalhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Propiedades_de_la_Dependencia_funcionalhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_Reflexivahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_Aumentativahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Dependencia_funcional_transitivahttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Propiedades_deducidashttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#Uni.C3.B3nhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_(desambiguaci%C3%B3n)

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    2/12

    %.*.% Pseudo-transitiva

    %.*.* &escomposición

    • * Claves

    • ormas ormales

    o .# Primera orma ormal # /

    o .% 0egunda orma ormal % /

    o .* "ercera orma ormal * /

    o

    . orma normal de 1o2ce-Codd 1C/

    o .3 Cuarta orma ormal /

    o .4 5uinta orma ormal 3 /

    • 3 'eglas de Codd

    o 3.# 'egla o. # - La 'egla de la información

    o 3.% 'egla o. % - La regla del acceso garantizado

    o 3.* 'egla o. * - "ratamiento sistem6tico de los valores nulos

    o 3. 'egla o. - La regla de la descripción de la base de datos

    o 3.3 'egla o. 3 - La regla del sub-lengua7e 8ntegral

    o 3.4 'egla o. 4 - La regla de la actualización de vistas

    o 3.9 'egla o. 9 - La regla de insertar 2 actualizar

    o 3. 'egla o. - La regla de independencia f$sica

    o 3.; 'egla o. ; - La regla de independencia lógica

    o 3.#< 'egla o. #< - La regla de la independencia de la integridad

    3.#

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    3/12

    o 3.#% 'egla o. #% - 'egla de la no-subversión

    • 4 'eferencias

    • 9 =>ase tambi>n

    • Enlaces e(ternos"erminolog$a relacional equivalente

    igura #.

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    4/12

    "odo atributo en una tabla tiene un dominio, el cual representa el con7unto de valores que el mismo puede tomar.+na instancia de una tabla puede verse entonces como un subcon7unto del producto cartesiano entre los dominiosde los atributos. 0in embargo, suele !aber algunas diferencias con la analog$a matem6tica, 2a que algunos '&1@0permiten filas duplicadas, entre otras cosas. inalmente, una tupla puede razonarse matem6ticamente como unelemento del producto cartesiano entre los dominios.

    &ependencia

    Dependencia funcional

    B es funcionalmente dependiente deA.

    +na dependencia funcional es una cone(ión entre uno o m6s atributos. Por e7emplo si conocemos el valorde "ec#aDeNacimientopodemos conocer el valor de$dad .

    Las dependencias funcionales del sistema se escriben utilizando una flec!a, de la siguiente manera:

    "ec#aDeNacimiento $dad

    )qu$ a "ec#aDeNacimiento se le conoce como un determinante. 0e puede leer de dosformas"ec#aDeNacimiento determina a$dad o $dad es funcionalmente dependiente de"ec#aDeNacimiento. &e lanormalización lógica/ a la implementación f$sica o real/ puede ser sugerible tener >stas dependencias funcionalespara lograr la eficiencia en las tablas.

    ropiedades de la Dependencia funcional

    E(isten * a(iomas de )rmstrong:

    Dependencia funcional !efle"i#a

    0i A2A est6 incluido en A(A entonces ( 2

    0i la dirección o el nombre de una persona est6n incluidos en el & 8, entonces con el & 8 podemos determinar ladirección o su nombre.

    Dependencia funcional Aumentati#aentonces

    dni nombre

    dni ,dirección nombre,dirección

    0i con el dni se determina el nombre de una persona, entonces con el dni m6s la dirección tambi>n se determina elnombre o su dirección.

    Dependencia funcional transiti#a

    http://es.wikipedia.org/wiki/Dependencia_funcionalhttp://es.wikipedia.org/wiki/Dependencia_funcionalhttp://es.wikipedia.org/wiki/Dependencia_funcional

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    5/12

    &ependencia funcional transitiva.

    0ean %, &, ' tres atributos o grupos de atributos/ de la misma entidad. 0i& depende funcionalmente de % 2 ' de & ,pero % no depende funcionalmente de& , se dice entonces que ' depende transitivamente de % . 0imbólicamenteser$a:

    % & ' entonces % '

    "ec#aDeNacimiento $dad

    $dad onducir

    "ec#aDeNacimiento $dad onducir Entonces tenemos que "ec#aDeNacimiento determina a$dad 2 la$dad determina a onducir , indirectamentepodemos saber a trav>s de"ec#aDeNacimiento a onducir En muc!os pa$ses, una persona necesita ser ma2or decierta edad para poder conducir un automóvil, por eso se utiliza este e7emplo/.

    ropiedades deducidas$nión

    2 entonces

    seudo%transiti#a

    2 entonces

    Descomposición

    2 z est6 incluido en entonces

    Claves

    +na cla#e primaria es aquella columna pueden ser tambi>n dos columnas o m6s/ que identifica únicamente a esafila. La clave primaria es un identificador que va a ser único para cada fila. 0e acostumbra a poner la clave primariacomo la primera columna de la tabla pero esto no tiene que ser necesario, si no es m6s una conveniencia. @uc!asveces la clave primaria es autonum>rica.

    En una tabla puede que tengamos m6s de una clave, en tal caso se puede escoger una para ser la clave primaria,las dem6s claves son lascla#es candidatas. )dem6s es la posible clave primaria.

    +na cla#e a&ena 'forei(n )e* o cla#e for+nea, es aquella columna que e(istiendo como dependiente en una tabla,es a su vez clave primaria en otra tabla.

    +na cla#e alternati#a es aquella clave candidata que no !a sido seleccionada como clave primaria, pero quetambi>n puede identificar de forma única a una fila dentro de una tabla. E7emplo: 0i en una tabla clientes definimos

    el número de documento idBcliente/ como clave primaria, el número de seguro social de ese cliente podr$a ser una

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    6/12

    clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato entodos los clientes.

    +na cla#e compuesta es una clave que est6 compuesta por m6s de una columna.ormas ormales

    Las formas normales son aplicadas a las tablas de una base de datos. &ecir que una base de datos est6 en la formanormalN es decir que todas sus tablas est6n en la forma normalN.

    En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la ma2or$a de lasbases de datos. El creador de estas * primeras formas normales o reglas/ fue Edgar . Codd.#

    rimera -orma Normal '.-N, rt*culo +rinci+alPrimera -orma normal

    +na tabla est6 en Primera orma ormal si:

    "odos los atributos son atómicos. +n atributo es atómico si los elementos del dominio son indivisibles,

    m$nimos.

    La tabla contiene una clave primaria.

    La llave primaria no contiene atributos nulos.

    o posee ciclos repetitivos.

    +na columna no puede tener múltiples valores. Los datos son atómicos. 0i a cada valor de le pertenece un valorde D, entonces a cada valor de D le pertenece un valor de /

    Esta forma normal elimina los valores repetidos dentro de una 1&

    Se(unda -orma Normal '/-N, rt*culo +rinci+alSegunda -orma normal

    Dependencia -uncional0 +na relación est6 en % si est6 en # 2 si los atributos que no forman parte de ningunaclave dependen de forma completa de la clave principal. Es decir que no e(isten dependencias parciales.

    En otras palabras podr$amos decir que la segunda forma normal est6 basada en el concepto de dependenciacompletamente funcional. +na dependencia funcional es completamente funcional si al eliminar losatributos ) de significa que la dependencia no es mantenida, esto es que ) , F G)H/ -(-I D. +na dependenciafuncional es una dependencia parcial si !a2 algunos atributos que pueden ser eliminados de 2la dependencia todav$a se mantiene, esto es ) , F G)H/ -I D.

    Por e7emplo G& 8, 8&BP'JDEC"JH KJ')0B"')1) J con el & 8 de un empleado 2 el 8& de un pro2ectosabemos cu6ntas !oras de traba7o por semana traba7a un empleado en dic!o pro2ecto/ es completamentedependiente dado que ni & 8 KJ')0B"')1) J ni 8&BP'JDEC"J KJ')0B"')1) J mantienen la

    dependencia. 0in embargo G& 8, 8&BP'JDEC"JH J@1'EBE@PLE)&J es parcialmente dependiente dadoque & 8 J@1'EBE@PLE)&J mantiene la dependencia.

    http://es.wikipedia.org/wiki/Edgar_F._Coddhttp://es.wikipedia.org/wiki/Edgar_F._Coddhttp://es.wikipedia.org/wiki/Edgar_F._Coddhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#cite_note-0http://es.wikipedia.org/wiki/Primera_forma_normalhttp://es.wikipedia.org/wiki/Segunda_forma_normalhttp://es.wikipedia.org/wiki/Edgar_F._Coddhttp://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos#cite_note-0http://es.wikipedia.org/wiki/Primera_forma_normalhttp://es.wikipedia.org/wiki/Segunda_forma_normal

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    7/12

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    8/12

    Cualquier cosa que no e(ista en una tabla no e(iste del todo. "oda la información, inclu2endo nombres de tablas,nombres de vistas, nombres de columnas, 2 los datos de las columnas deben estar almacenados en tablas dentrode las bases de datos. Las tablas que contienen tal información constitu2en el &iccionario de &atos. Esto significaque todo tiene que estar almacenado en las tablas.

    "oda la información en una base de datos relacional se representa e(pl$citamente en el nivel lógico e(actamente deuna manera: con valores en tablas. Por tanto los metadatos diccionario, cat6logo/ se representan e(actamenteigual que los datos de usuario. D puede usarse el mismo lengua7e e7. 05L/ para acceder a los datos 2 a losmetadatos regla /

    !e(la No0 / % 5a re(la del acceso (arantizadoQ

    ada *tem de datos debe ser lógicamente accesible al e3ecutar una b4s5ueda 5ue combine el nombre de la tabla,su clave +rimaria, el nombre de la columna.

    Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, 2 dado el nombre de la columnarequerida, deber6 encontrarse uno 2 solamente un valor. Por esta razón la definición de claves primarias para todaslas tablas es pr6cticamente obligatoria.

    !e(la No0 1 % Tratamiento sistem+tico de los #alores nulos

    6a in-ormación ina+licable o -altante +uede ser re+resentada a través de valores nulos.

    +n '&1@0 0istema Nestor de 1ases de &atos 'elacionales/ debe ser capaz de soportar el uso de valores nulosen el lugar de columnas cu2os valores sean desconocidos o inaplicables.

    !e(la No0 2 % 5a re(la de la descripción de la base de datos

    6a descri+ción de la base de datos es almacenada de la misma manera 5ue los datos ordinarios, esto es, en tablas columnas, debe ser accesible a los usuarios autorizados.

    La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc., debe ser almacenadae(actamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a trav>sde sentencias de 05L o similar/.

    !e(la No0 4 % 5a re(la del sub%len(ua&e Inte(ral

    Debe #aber al menos un lengua3e 5ue sea integral +ara so+ortar la de-inición de datos, mani+ulación de datos,

    de-inición de vistas, restricciones de integridad, control de autorizaciones transacciones.Esto significa que debe !aber por lo menos un lengua7e con una sinta(is bien definida que pueda ser usado paraadministrar completamente la base de datos.

    !e(la No0 6 % 5a re(la de la actualización de #istas

    odas las vistas 5ue son teóricamente actualizables, deben ser actualizables +or el sistema mismo.

    La ma2or$a de las '&1@0 permiten actualizar vistas simples, pero des!abilitan los intentos de actualizar vistascomple7as.

    !e(la No0 7 % 5a re(la de insertar * actualizar

    6a ca+acidad de mane3ar una base de datos con o+erandos sim+les a+lica no sólo +ara la recu+eración o consultade datos, sino también +ara la inserción, actualización borrado de datos7 .

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    9/12

    Esto significa que las cl6usulas para leer, escribir, eliminar 2 agregar registros 0ELEC", +P&)"E, &ELE"E e8 0E'" en 05L/ deben estar disponibles 2 operables, independientemente del tipo de relaciones 2 restriccionesque !a2a entre las tablas.

    !e(la No0 8 % 5a re(la de independencia f9sica

    $l acceso de usuarios a la base de datos a través de terminales o +rogramas de a+licación, debe +ermanecerconsistente lógicamente cuando 5uiera 5ue #a a cambios en los datos almacenados, o sean cambiados losmétodos de acceso a los datos.

    El comportamiento de los programas de aplicación 2 de la actividad de usuarios v$a terminales deber$a serpredecible basados en la definición lógica de la base de datos, 2 >ste comportamiento deber$a permanecerinalterado, independientemente de los cambios en la definición f$sica de >sta.

    !e(la No0 : % 5a re(la de independencia ló(ica

    6os +rogramas de a+licación las actividades de acceso +or terminal deben +ermanecer lógicamente inalteradoscuando 5uiera 5ue se #agan cambios (seg4n los +ermisos asignados) en las tablas de la base de datos.

    La independencia lógica de los datos especifica que los programas de aplicación 2 las actividades de terminal debenser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar omodificar estos programas de aplicación.

    !e(la No0 .; % 5a re(la de la independencia de la inte(ridad

    odas las restricciones de integridad deben ser de-inibles en los datos, almacenables en el cat1logo, no en el +rograma de a+licación.

    5as re(las de inte(ridad

    #. ingún componente de una clave primaria puede tener valores en blanco o nulos >sta es la norma b6sicade integridad/.

    %. Para cada valor de clave for6nea deber6 e(istir un valor de clave primaria concordante. La combinación deestas reglas aseguran que !a2a integridad referencial.

    !e(la No0 .. % 5a re(la de la distribución

    $l sistema debe +oseer un lengua3e de datos 5ue +ueda so+ortar 5ue la base de datos esté distribuida -*sicamenteen distintos lugares sin 5ue esto a-ecte o altere a los +rogramas de a+licación.

    El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datoscorriendo en una mezcla de distintas m6quinas 2 distintos sistemas operativos 2 que est> conectada por unavariedad de redes, pueda funcionar como si estuviera disponible como en una única base de datos en una solam6quina.

    !e(la No0 ./ % !e(la de la no%sub#ersión

    Si el sistema tiene lengua3es de ba3o nivel, estos lengua3es de ninguna manera +ueden ser usados +ara violar la

    integridad de las reglas restricciones e2+resadas en un lengua3e de alto nivel (como S06).

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    10/12

    )lgunos productos solamente constru2en una interfaz relacional para sus bases de datos o relacionales, lo que!ace posible la subversión violación/ de las restricciones de integridad. Esto no debe ser permitido.

    La empresa CO5OMBIAN Scliente nombre del campo que describe el campo que va a contener el nombre del cliente/.

    =isualización de un diccionario de datos:

    +na vez tenga el &iccionario de &atos, !aga un an6lisis )'& )n6lisis 'elacional de &atos/ 'ecuerde que una1.&. relacional es aquella en la cual todos sus datos se representan en tablas/, 2 e7ecute el proceso denormalización, !asta llegar a la "ercera orma ormal 1-N.

    La idea es realizar la respectiva 7ustificación detallada de cada uno de los pasos que conduzcan al resultadofinal.

    En la siguiente p6gina podr6 analizar la factura de la Empresa Colombian 02stem, para que desarrolle laactividad de normalización.

    ) continuación les recuerdo que propiedades debe cumplir una tabla para convertirse en relacional:#. o duplicados de datos en las filas%. "ener una llave clave/ única que la identifique*. La secuencia en la cual los atributos se escritos no debe importar.

    )!ora les recuerdo los pasos para la # , % 2 * :

    ) partir del diccionario de datos forma no normalizada de los datos/ se realiza el an6lisis )'& para obtener alfinal distintos grupos de elementos tablas/ que se relacionan entre s$ a trav>s de campos llave principal 2for6nea.

    .-N? 0eparar el grupo repetitivo, es decir, los campos que para la misma factura aparecen varias veces, loscuales se deben separar en una tabla aparte.

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    11/12

    E7emplo de separación de Nrupo 'epetitivo de una orden de compra de música

    /-N : 0epara dependencias de las llaves compuestas, es decir, que tengan m6s de un campo o atributo paralograr unicidad/, casi siempre est6 en el Nrupo 'epetitivo.

    @rupo !epetiti#o @rupo%/ @rupo%/b CODI@O O!D%NO CODI@O"8"+LJ CODI@O "8"+LJC) " C) " ='-+ 8"='-+ 8"

    En este e7emploel código del volumen 2 cantidad de volúmenes dependen de la orden que !aga el cliente 2t$tulo del volumen 2 valor unitario dependen del código del volumen.

    1-N: "odos los campos o atributos en cada grupo tabla/ que no sean llaves, deben ser e(aminados paraverificar que no e(istan interdependencias entre ellos. 0i se encuentran algunas, tales dependencias deben serseparadas en distintos grupos tablas/, cu2a llave debe ser el campo del cual son dependientes, de7ando estecampo llave tambi>n en el grupo tabla/ original. Este caso se presenta en el grupo # o repetitivo/:

    O!D%NO O!D%NO !O=%NO

    J'&-&)"E J'&-&)"E P'J=- )@E

    P'J=- J P'J=- J P'J=-&8'

    P'J=- )@E P'J=- 8"

    P'J=-&8'

    P'J=- 8"

    En este caso vemos que el nombre, la dirección 2 el it dependen del o. &el Proveedor, 2 se sacan, el campoP'J=- J queda en la tabla origen 2 adem6s en la nueva tabla como campo llave.

  • 8/16/2019 Ejercicio de Normalizacion Bases de Datos

    12/12

    ANE O -ACT$!A