clase normalizacion

Upload: hernando-rodriguez-quintero

Post on 05-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Clase Normalizacion

    1/10

    Diseño de bases de datosNORMALIZACIÓN

    Las bases de datos mal diseñadas tienen problemas de:

    – Almacenamiento redundante (varias copias de la mismainformación)– Perdidas no deseadas de información al modificar tuplas– La base entra en un estado no consistente al borrar una tupla– Imposibilidad de almacenar cierta información

    • registro(estudiante_id estudiante_nombre curso_idcurso_nombre)!n este apartado veremos una serie de re"uerimientos "ue #emos

    de #acer a las relaciones para "ue los dos problemas señaladosarriba no se produ$can

    El resumen de este apartado es: Todos los atributos de unarelacin deben ser atmicos ! depender unica ! totalmentede la cla"e primaria%

    #rimera $orma Normal

    &n atributo es atómico si sus elementos se pueden considerarcomo unidades indivisibles:

    – !'emplos de dominios no atómicos:• ombre (atributo compuesto)• el*fonos (Atributos multivaluados)

    &n es"uema + satisface la primera forma normal si los dominiosde todos los atributos son atómicos

    Los valores no atómicos complican el almacenamiento , puedenprovocar redundancia:– Por e'emplo cuentas bancarias almacenadas con suspropietarios%

    +espetar la atomicidad , no intentar soluciones -inteligentes. – Por e'emplo una cadena de caracteres debe tener un significadoindivisible%

  • 8/16/2019 Clase Normalizacion

    2/10

    – /upongamos "ue en la base de datos de la universidad a losprofesores se les asigna identificadores del tipo: LA012– 3onde los tres primeros caracteres se refieren al departamentoen el "ue se encuentran%– 4acer esto es una idea mu, mala puesto "ue la información secodifica a nivel de programa , no de base de datos%

    %e&unda $orma Normal

    5ada atributo "ue no sea una clave primaria debe depender6nicamente de esta% Para normali$ar divide la tabla

    Por e'emplo– registro(estudiante_id estudiante_nombre curso_idcurso_nombre)

    – /atisface los re"uerimiento de 17 con clave primaria(estudiante_id curso_id)– nombre_estudiante depende de estudiante_id pero no de lapare'a (estudiante_id curso_id)– 3iv8dase en tablas tres tablas• estudiante(estudiante_id estudiante_nombre)• asignatura(asignatura_idasignatura_nombre)• registro(estudiante_id asignatura_id)A#ora podemos tener datos de estudiantes "ue no est9n

    matriculados en ninguna asignatura asignaturas "ue no tienenning6n estudiante , no necesitamos repetir los datos deestudianteasignatura para cada registro

    A%E'(RARNO% DE NO #ERDER IN$ORMACION AL #ARTIRLA RELACION EN )ARIA% TA*LA%

    Tercera $orma Normal&n atributo depende transitivamente de la clave primaria si

    depende en otro atributo "ue a su ve$ depende en la clave

    La tercera forma normal elimina estas dependenciasPor e'emplo– pedido(pedido_id fec#a cliente_id cliente_nombre)– satisface 17 , ;7 con clave primaria pedido_id– pero cliente_nombre cambia si cambia cliente_id– As8 "ue debemos dividir la tabla en:• pedido(pedido_id fec#a cliente_id)

  • 8/16/2019 Clase Normalizacion

    3/10

    • cliente(cliente_idcliente_nombre)

    Resumen!l proceso de normali$ación consiste:

    1% 5omprueba "ue cada tabla tiene un n6mero fi'o de columnas ,

    las variables son sencillas (atómicas)

    ;% Identifica la clave primaria

    2% 5omprueba "ue todos los atributos (menos la clave primaria)depende de iste dependencia parcial rompe la tabla en varias tablas%

    ?% 5omprueba "ue todos los atributos dependen de la clave , node otros atributos

    @% /i e>iste dependencias no relacionadas con la clave primariasubdivide las tablas

    ,a tenemos la base de datos en 27

    Normali+acin

    ormali$ación es f9cil de entender a nivel conceptualodo lo "ue #a, "ue #acer es romper las relaciones #asta "uecada relación resultante sea co#erente en si mismaras normali$ar aseguramos:– Bue no se pierda información cuando se borran campos– Bue no se almacene información duplicada!l desarrollo matem9tico de la teor8a de ormali$ación es bastantecomple'o as8 "ue no profundi$aremos en el%

    !>isten =? , @ formas normales pero con "ue las bases de datossatisfagan la 27 es suficiente

    La normali+acin en Resumen

    ,$N significa "ue las relaciones tienen un n6mero de atributosfi'os , atómicos-$N significa "ue los atributos dependen de toda la clave primaria, no de parte de ella

  • 8/16/2019 Clase Normalizacion

    4/10

    .$N significa "ue los atributos dependen directamente de la claveprimaria (, no indirectamente a trav*s de otro atributo)

    E/emplo: relacin no normali+ada

  • 8/16/2019 Clase Normalizacion

    5/10

  • 8/16/2019 Clase Normalizacion

    6/10

  • 8/16/2019 Clase Normalizacion

    7/10

  • 8/16/2019 Clase Normalizacion

    8/10

    Normali+a: 0,1

    vacacion(Lugar_id Lugar_ombre cliente_id cliente_ombrefec#a)

    DAtributos atómicosE

    – /8 es 17

    D56al es la claveE

    – vacacion(Lugar_id Lugar_ombre cliente_id cliente_ombrefec#a)

    ;7 – Dodos los atributos ("ue no sean clave primaria) dependen

    de toda la claveE– Lugar_ombre depende de Lugar_id– crea: Lugar_;(Lugar_id Lugar_ombre)– cliente_ombre depende de cliente_id– crea: cliente_; (cliente_id cliente_ombre)– , nos "ueda: vacacion_; (Lugar_id cliente_id fec#a)

    A#ora ,a satisfacemos los re"uerimientos de la ;7D4a, dependencia ransitivasE

    – o #a, dependencia transitivas as8 "ue satisface 27

    Normali+a: 0-1

    reserva(#abitacion_idfec#acliente_idcliente_ombre)DAtributos atómicosE– /8 es 17

    D56al es la claveE

    – reserva(#abitacion_idfec#acliente_idcliente_ombre);7 – Dodos los atributos ("ue no sean clave primaria) dependende toda la claveE– cliente_ombre depende de cliente_id– crear: cliente_; (cliente_id cliente_ombre)– reserva_; (#abitacion_idfec#acliente_id)

    A#ora ,a satisfacemos los re"uerimientos de la ;7D4a, dependencia ransitivasE

  • 8/16/2019 Clase Normalizacion

    9/10

    – o #a, dependencia transitivas as8 "ue satisface 27

    Normali+a: 0.1

    Asigna(empleado_id empleado_ombre deptI3 deptombre)

    DAtributos atómicosE– /8 es 17

    D56al es la claveE– asigna(empleado_id empleado_ombre deptI3 deptombre)

    ;7 – Dodos los atributos ("ue no sean clave primaria) dependende toda la clave

    – empleado_ombre depende solo de empleado_id– crear: emp_; (empleado_id empleado_ombre)– deptombre depende solo de deptI3– crear: dept_; (deptI3 deptombre)– nos "ueda: asigna_; (empleado_id deptI3)

    A#ora ,a satisfacemos los re"uerimientos de la ;7

    D4a, dependencia ransitivasE

    – o #a, dependencia transitivas as8 "ue satisface 27

    Normali+a 4+eceta(receta_I3medicinacantidadcliente_idcliente_ombre)

    DAtributos atómicosE– /8 es 17D56al es la claveE Asume una medicina por receta%– receta(receta_I3medicinacantidadcliente_idcliente_ombre)

    ;7 – Dodos los atributos ("ue no sean clave primaria) dependende toda la clave– /i es ;7

    D4a, dependencia ransitivasE– cliente_ombre depende de cliente_id– crear: cliente_2 (cliente_id cliente_ombre)– nos "ueda: receta_2 (receta_I3medicinacantidadcliente_id)

  • 8/16/2019 Clase Normalizacion

    10/10

    o #a, m9s dependencias transitivas as8 "ue satisface 27

    Normali+a 5

    lineapedido(pedido_I3 linea _I3producto_I3 productoombre

    cantidad cliente_idcliente_ombre)

    DAtributos atómicosE

    – /8 es 17

    D56al es la claveE

    – lineapedido(pedido_I3linea_I3 producto_I3 productoombre

    cantidad cliente_idcliente_ombre)

    ;7 – Dodos los atributos ("ue no sean clave primaria) dependende toda la clave– cliente_id , cliente_ombre dependen solo de pedido_I3– crear: pedido_; (pedido_I3cliente_idcliente_ombre)– nos "ueda: lineapedido_; (pedido_I3linea_I3producto_I3productoombre cantidad)

    D4a, dependencia ransitivasE– cliente_ombre depende de cliente_id– crear: cliente_2(cliente_id cliente_ombre)– productoombre depende de producto_I3– crear: producto_2 (producto_I3 productoombre)– nos "ueda: lineapedido(pedido_I3linea_I3producto_I3cantidad)– ,: pedido_2 (pedido_I3cliente_id)

    o #a, m9s dependencias transitivas as8 "ue satisface 27

    Resumen de normali+acin

    El resumen de este capitulo es: Todos los atributos de unarelacin deben ser atmicos ! depender 6nica ! totalmentede la cla"e primaria%