Curso de Base de Datos 1

download Curso de Base de Datos 1

of 70

Transcript of Curso de Base de Datos 1

  • 7/24/2019 Curso de Base de Datos 1

    1/70

    TEORA Y DISEODE

    BASES DE DATOS

    DOCENTEIng. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    2/70

  • 7/24/2019 Curso de Base de Datos 1

    3/70

    Diferencia entre Modelo y Esquema

    Modelo deDatos

    Esquema

    MundoReal

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    4/70

    Modelo de Datos

    MODELO DE DATOS

    EXTERNO* (Punto de vista de cada usuario

    en particular)GLOBAL

    * (Punto de vista del conjunto deusuarios -empresa-)

    INTERNO* (Punto de vista de la mquina)

    Lgicos

    Fsicos

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    5/70

    Clasificacin de los MD Globales

    MDGLOBALES

    CONCEPTUALES- Enfocados a describir el mundo real con

    independencia de la mquina-

    CONVENCIONALES O LGICOS- Implementados en SGBD-

    JerrquicoCodasylRelacionalObjeto Relacional

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    6/70

    Transformacin del Mundo real a laBD Fsica

    Estrutura percibida(no formalizada)

    BASE DEDATOSFSICA

    MODELO CONCEPTUAL

    Esquema

    conceptual

    MODELOCONCEPTUAL

    DISEO LGICO

    Esquemade basede datos

    SGBD

    MODELODE BD

    MODELOINTERNO

    DISEO FSICO

    Esquema interno

    MUNDO REAL

    Objetos y asociaciones consus propiedades y reglas

    Valores

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    7/70

    El Modelo RelacionalR.E. Levein y M.E. Maron por el ao de 1967.

    Eddgar F. Codd en Junio de 1970 publica el artculo A Relational Model ofor Large Shared Data banks.Uno de los primeros prototipos fue el Peterlee Relational Test Vehicle desarpor el centro Cientfico de Peterlee.El segundo prototipo se le llam XRM ( Extended Relational Memory) y fuIBM.En 1978 se desarrollo el Q.B.E., Query By Example.

    El prototipo base y ms completo fue el famoso Sistema R, desarrollado po(1980) y luego muchos ms.Codd decidi establecer una referencia de 12 reglas para sealar cuando un

    cumple con el modelo relacional o no. |

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    8/70

    Definicin del Modelo relacionalRepresenta a la BD como una coleccin de relaciones,donde cada relacin es una tabla.

    codEstud nombre ciclo espec100 Ana 3 Contabilidad150 Alex 3 Sistemas

    250 Ins 1 Contabilidad350 Max 2 Sistemas

    FILASFILAS

    (( relacirelacinn ))

    Ciclo = 1 al 10 (DOMINIO)

    TABLATABLA

    COLUMNASCOLUMNAS

    estudianteestudiante

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    9/70

    Definicin de relacinUna relacinr del esquema de relacin :R ( A1 , A2 , . . . , An )es denotado por : r ( R )Una relacin r ( R ) es un conjunto de n-tuplas en un instante dado :

    ( filas )r = { t 1 , t 2 , . . . , t n

    } Cada n-tupla ( o fila ) ti es una lista de n valores vi :t = { v 1 , v 2 , . . . , v n }

    codEstud nombre ciclo100 Ana 3150 Alex 3250 Ins 1350 Max 2

    especContabilidad

    SistemasContabilidad

    Sistemas

    relacint 1t 2t

    3t 4

    Es una instanciade un esquemade relacin

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    10/70

    Comparacin de Terminologa

    RELACIN TABLA FICHERO

    TUPLA ATRIBUTO

    GRADOCARDINALIDAD

    FILACOLUMNA

    N DE COLUMNASN DE FILAS

    REGISTROCAMPO

    N DE CAMPOSN DE REGISTROS

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    11/70

    Son las que se pueden especificar en un esquema de basede datos relacional. Estas restricciones se enumeran acontinuacin :

    De DominioDe Clave

    De Integridad de entidadesDe Integridad ReferencialDe Dependencias de los datos ( funcionales y

    multivaluadas)

    Paranormalizacin

    Restricciones del Modelo

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    12/70

    Restricciones de Dominio

    Los valores que forman el dominio de los atributos debser atmicos.las formas de especificar los dominios pueden ser, porrangos de valores, datos enumerados o por tipos de datentre los que se incluyen enteros, reales, caracteres,cadenas de longitud fija y cadenas de longitud variable

    adems de otros tipos especiales como son fecha, dineretc

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    13/70

    Restricciones de Clave

    Es cualquier conjunto de atributos, para los cuales sea imposibleque dos tuplas diferentes, tengan los mismos valores ( propiedadde unicidad ).

    SUPER CLAVE De un esquema de relacin

    Sin embargo en una superclave pueden haber atributosredundantes. Por ejemplo, veamos el esquema de relacin :

    ESTUDIANTE( codigo, nombre, direc, sexo, fechNac )

    Las restricciones de clave exigen que todas las tuplas de unarelacin deben ser distintas.

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    14/70

    Son superclaves : { codigo,nombre, sexo}

    { codigo }

    { codigo,nombre}{ nombre, fechNac,sexo}

    , etc

    No son superclaves :

    { nombre, sexo }{ nombre }

    conjuntosdeatributos

    { nombre, fechNac }

    Analizando el esquema de relacin :

    ESTUDIANTE( codigo, nombre, direc, sexo,fechNac )

    Restricciones de Clave

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

  • 7/24/2019 Curso de Base de Datos 1

    15/70

    Es una super clave mnima, es decir una super clave a la cual nopodemos quitarle atributos sin que deje de ser una superclave ( prdidade unicidad ).

    CLAVE De un esquema de relacin

    ESTUDIANTE( codigo, nombre, direc, sexo, fechNac )Por ejemplo, en el esquema de relacin anterior,

    { codigo,nombre, sexo}

    { codigo }

    { codigo,nombre}

    { nombre, fechNac,sexo}

    { nombre, fechNac }

    Analizemos las siguientes superclaves :

    No es clave

    No es clave

    No es clave

    Es una claveEs una clave

    Restricciones de Clave

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Si C i UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    16/70

    CLAVE CANDIDATAEs toda clave que se puede encontrar en un esquema de

    relacin.

    ESTUDIANTE( codigo, nombre, direc, sexo, fechNac )Por ejemplo, en el esquema de relacin anterior,

    Son claves candidatas :

    { codigo }{ nombre, fechNac }

    Restricciones de Clave

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas Comp tacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    17/70

    CLAVE PRIMARIAEs la clave candidata que se elige por que sus valores sirvenpara identificar inequvocamente a las tuplas de la relacin.

    ESTUDIANTE( codigo , nombre, direc, sexo, fechNac )Por ejemplo, en el esquema de relacin anterior,

    Especificandoclave primaria

    Restricciones de Clave

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    18/70

    Restriccin de Integridad de Entidad

    Una clave primaria nunca puede tener el valorNULO. Esto se debe a que el valor de la claveprimaria sirve para identificar las tuplas individuales

    en una relacin

    NOTA :las restricciones de clave y de integridadde entidades se especifican sobre relacionesindividuales.

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    19/70

    Valor Nulo

    Se aplica cuando el valor de algn atributo dentro de una tupla enparticular sea desconocido o no corresponda. Por ejemplo

    cuando en una encuesta una persona no quiso decirsu fecha de nacimiento o cuando no todas laspersonas tienen telfono.

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    20/70

    Se especifica entre dos relaciones y sirve para mantener la

    consistencia entre tuplas de las dos relaciones.Dicho de otro modo, establece que una tupla en una relacin quehaga referencia a una segunda relacin, deber referirse a una tuplaexistente en la segunda relacin.Por ejemploanalizemos losesquemas de relaciones empleado y departamento.

    EMPLEADO( codEm , nom, fechNac, direc, sexo, suel, codSuper, nDep )

    DEPARTAMENTO( numDep , nombre, codJefe , fechIniJefe)

    Clave FORANEA

    Clave PRIMARIA

    Restriccin de IntegridadReferencial

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    21/70

    Si fuese insertado un nuevo empleado yle asignamos el departamento 8,estaramos violando la restriccin deIntegridad Referencial, ya que no existela tupla con numDep = 8 en la relacinDepartamento

    Clave FORANEA Foreign KeyUna clave fornea FK es un atributo de una relacin R1 asociado a otrarelacin R2 , donde aparece replicada como clave primaria de R2.

    ( FK )

    Clave FORANEA

    codEm nom fechNac direc sexo suel codSuper nDep100 Tovar 15-07-57 Lomas 234 M 5400 4005300 Silva 07-03-65 Grau 935 M 4500 2004400 Sierra 22-10-67 Rosas 732 F 7200 7005

    200 Rios 04-04-70 Vicus 138 M 8700 7004

    600 Nieto 25-08-73 Flores 1731 F 4600 4005

    150 Castro 12-11-72 America 912 F 2800 200 4

    700 Sillars 12-11-72 America 912 F 9800 nulo 1

    EMPLEADO R1

    numDep nom codJefefe fechIniJefe

    4 Administracin 200 07-06-95 5 Ingeniera 400 11-07-92 1 Gerencia 700 14-10-90

    DEPARTAMENTO

    Clave PRIMARIA

    R2

    5

    Restriccin de IntegridadReferencial

    Sistemas y Computacin UNDAC

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    22/70

    Co d-Em p No m -Em p Co d-De pto .200 Durand 2150 Porti l l o 10155 Sem erene 4

    70 Roj as 6160 Rodri guez 10

    Tabla Empleado

    Co d-De pt o . No m -Dp t o.

    2 Co n t ab i lid ad

    10 Re cu r s o s

    4 Pr o d u cci n

    6 Ve n t as

    Tab la-De p ar t am e n t o

    PK FK

    PK

    3 columnas5 filas

    2 columnas4 filas

    Restriccin de IntegridadReferencial

    y p

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    23/70

    Grafo Relacional

    Una forma sencilla de representar el esquema relacionales el denominado grafo relacional. Es un grafo compuest

    de un conjunto de nodos multiparticionados, donde cada norepresenta un esquema de relacion, es decir, una tablade la BD. Para cada esquema de relacion ha de aparecer,

    como minimo, su nombre y sus atributos, indicando

    su clave alternativas y las claves ajenas

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    24/70

    Grafo Relacional RepresentacinEDITORIAL Nombre_ e Direccin Ciudad Pas

    Cdigo Ttulo Idioma Nm_copias Editorial ......LIBRO

    Cd_doc Numero_e Cdigo Nombre_t Nombre_t Desc.TEMATRATAEJEMPLAR

    Cdigo Nmero_e Nm_s Fecha_p Fecha_dPRETA Tema s Temas p.CONSTA

    Nm_s DNI Domicilio Tel Tipo_sSOCIO

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    25/70

    Regla de InformacinToda la informacin se presenta mediante tablas y slo mediante tablas

    Regla de acceso garantizado:Se accede slo por nombre de columna y valor de llave candidata

    Manejo sistemtico de valores nulosSe debe disponer de una representacin de valores desconocidos y no aplicdiferente de los valores normales

    Catlogo activo en lnea basado en el modelo relacionalDebe estar a disposicin de los usuarios con el mismo lenguaje de consultala base de datos.

    Sublenguaje de datos completo:Sintaxis linealUtilizacin interactiva y mediante lenguajes de programacin

    Definicin de datos, manipulacin completa de datos,Restricciones de seguridad, integridad y manejo de transacciones

    Las doce reglas de Codd

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    26/70

    Actualizacin de vistasSe deben poder actualizar todas las vistas que en teora se puedanactualizar

    Insercin, modificacin y borrado de alto nivel:Se debe modificar, insertar y borrar todo un conjunto de tuplas a l

    vezIndependencia fsica de los datosEl acceso lgico a los datos debe mantenerse incluso cuando camblos mtodos de acceso o la forma de alamcenamiento.

    Independencia lgica de los datosLos programas de aplicacin no deben verse afectados por cambiorealizados en las tablas que estn permitidos.

    Independencia de integridad

    La integridad no forma parte de los programas de aplicacin sino desquema conceptual

    Las doce reglas de Codd

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    27/70

    Independencia a la distribucin

    Debe existir un sublenguaje de datos que pueda soportar bases dedatos distribuidas sin alterar lso programas de aplicacin cuando sedistribuyan los datos por primera vez se redistribuyan estosposteriormente.

    No subversinSi el sistema ofrece una interfaz de acceso a bajo nivel, dicho acceso

    no se podr usar para salvar restricciones de integridad o seguridad

    Las doce reglas de Codd

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    28/70

    Dinmica del Modelo Relaciona

    El modelo relacional, como todo modelo de datos lleva asociado a su parte esttica,una dinmica que permite la transformacin entre estados de las bases de datos.

    Modelorelacional

    Esttica

    Dinmica

    EstructuraRestricciones

    InsercinBorrado

    ModificacinConsulta

    Lenguajesde

    manipulacin

    Lenguajesde definicin

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    29/70

    Lenguajes de ManipulacinRelacionales

    En toda consulta a una BDR genera como resultado una relacin

    Existen dos mecanismos formales para especificar: Algebra relacional:El resultado es la aplicacin sucesiva de operaciones a las relacionde la base.

    Calculo relacionalEl resultado es el conjunto de constantes que hacen cierta unadeterminada formula de consulta.

    Historia:Se define el Algebra Relacional como lenguaje de consulta y diseo1970 (Codd)Se define una versin del Calculo Relacional en 1971. Tambin se

    establece la equivalencia entre el Clculo y el Algebra relacionalIng. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    30/70

    Algebra relacionalEs un lenguaje de consultas procedimental (instrucciones parrealizar secuencia de operaciones: que y como)Realiza operaciones de uno o dos relaciones de entrada quegeneran una nueva relacin como resultadoOperaciones fundamentales

    UnitariasSeleccinProyeccinRenombre

    BinariasProducto cartesianoUninDiferencia

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    31/70

    Seleccin y ProyeccinSupongamos la tabla:Prestamo = (nombre_sucursal, monto, direccin)

    Seleccin: selecciona tuplas que satisfacen un predicado dado.

    Operador: Prstamos otorgados por la sucursal La Molina.Prstamos otorgados por la sucursal La Molina y con monto superior a1200$

    Proyeccin: devuelve la relacin argumento con columnas omitidas.Operador:Nombres de sucursal que figuran en PrstamoSucursal cuyo monto sea superior a $10000.

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    32/70

    Seleccin

    Ejemplo:si P= status>=25 tenemos Codigo Nombre Ciudad StatusS1 Juan Lopez Lima 20

    S2 Jose Sanchez Jaen 15S3 Antonio Perez Trujillo 20S4 Jose Lopez Lima 25S6 Carmen Lopez Tacna 30S7 Julia Sanchez Lima 25S8 Juana Perez Jaen 10S9 Luis Gomez Iquitos 35S10 Maria Galvez Tumbes 30

    P (r)=

    Codigo Nombre Ciudad Status

    S4 Jose Lopez Lima 25S6 Carmen Lopez Tacna 30S7 Julia Sanchez Lima 25S9 Luis Gomez Iquitos 35S10 Maria Galvez Tumbes 30

    r=

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    33/70

    Proyeccin

    Ejemplos:

    Ciudad StatusGranada 20Jaen 15Cadiz 20Sevilla 25

    Cordoba 30Granada 25Jaen 10Almeria 35Sevilla 30 ciudad,status(r)=

    CiudadGranadaJaen

    CadizSevillaCordobaAlmeria ciudad(r)=

    Codigo Nombre Ciudad StatusS1 Juan Lopez Lima 20S2 Jose Sanchez Jaen 15S3 Antonio Perez Trujillo 20S4 Jose Lopez Lima 25S6 Carmen Lopez Tacna 30S7 Julia Sanchez Lima 25S8 Juana Perez Jaen 10S9 Luis Gomez Iquitos 35S10 Maria Galvez Tumbes 30r=

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    34/70

    Producto CartesianoProducto Cartesiano: (una relacin se define como unsubconjunto de un producto cartesiano de un conjuntode dominios) Conecta dos entidades de acuerdo a ladefinicin matemtica de la operacin.

    Operador x xTabla Cliente = (nombre_cte, direccin, te)Opera = (nombre_cte, nombre_banquero, monto)

    Cada cliente con sus datos personales y banquero queopera.Todos los clientes y su direccin del banquero YYY.

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    35/70

    Producto Cartesiano

    =A Ba1 b1a2 b2a3 b2a4 b4

    Dd 1d 2d 3

    A B Da b d a b d a b d a b d a b d a b d a b d a b d

    a b d a b d a b d a b d

    Ejemplo:supongamosR[A,B] y S[D], y sean r y sdos instancias:

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    36/70

    OtrosRenombrar: permite utilizar la misma tabla para unaconsulta, para almacenar resultados intermedios paracambiar de nombres. Operador

    Clientes que viven en la misma direccin que el cliente ZZZUnin: tuplas comunes a dos relaciones, equivalente a launin matemtica. Debe efectuarse entre relacionescompatibles. Operador

    Clientes que tengan cta corriente y caja ahorro

    Diferencia: Igual caso que el anterior equivale a,diferencia de Conjuntos. Operador--Clientes que tienen tiene caja ahorro y no cta cteCliente con monto mayor

    Ing. Williams A. MUOZ ROBLES

    d b Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    37/70

    Operadores bsicos: Unin,Interseccin y diferencia

    r= s= r s= r s=

    r-s=

    A Ba1 b1a2 b2

    a3 b2a4 b4

    A Ba1 b1a2 b2a5 b5

    A Ba1 b1a2 b2a3 b2

    a4 b4a5 b5

    A B

    a1 b1a2 b2

    A Ba3 b2a4 b4

    Ing. Williams A. MUOZ ROBLES

    O d f d l d lSistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    38/70

    Operadores fundamentales del Algebra relacional

    abc

    xy

    aab

    bcc

    xyx

    yxy

    Seleccin Proyeccin

    Unin Diferencia

    Producto x x

    --

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    39/70

    Calculo relacional

    Tipos decalculorelacional

    DeDominios

    De Atributos

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    40/70

    Calculo relacionalClculo Relacional de Tuplas:

    No procedural, describe informacin deseada sindar un proceso especfico para obtener esainformacin (que).Expresin de consultas

    { t / P(t) }Conjunto de tuplas tal que P(Predicado) es verdadero et.

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    41/70

    Calculo relacional de Tuplas

    Criterio para la InterpretacinLas variables se asocian a tuplasLas constantes se asocian a valores de losdominios subyacentes a los ateibutosLos operadores son los permitidos decomparacin, los lgicos NOT, And y OR,como el existencial y el universal

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    42/70

    Calculo relacional de Dominio

    Clculo relacional de dominiosSe utilizan variables de dominio que toman valordel dominio de un atributo (en lugar de tuplas

    completas)

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    43/70

    Calculo relacional de Dominio

    Criterio para la InterpretacinLas variables se asocian a dominiosLas constantes se asocian a valores de losdominios subyacentes a los ateibutosLos operadores son los permitidos decomparacin, los lgicos NOT, And y OR,como el existencial y el universal

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    44/70

    Ing. Williams MUOZ ROBLES

    NORMALIZACION

    TEMA:

    SISTEMAS DE BASES I

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    45/70

    Fue Codd quien en 1972 propuso el proceso de normalizacin,

    as cualquier esquema de relacin se puede someter a una seriede pruebas para certificar si pertenece o no a cierta forma normal,que originalmente fueron tres : primera, segunda y tercera formasnormales.

    Posteriormente Boyce y Codd replantearon la tercera formanormal que se conoce hoy como Boice - Codd Norm Form (BCNF). La segunda y tercera formas se fundamentan en el

    concepto de dependencias funcionales.

    Despus se formularon la cuarta y quinta forma normal, basadosen dependencias multivaluadas y dependencias de reunin.

    Normalizacin

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    46/70

    ConceptoEl termino normalizacin se refiere a la manera en que los

    atributos son agrupados en los esquemas de relaciones de una

    base de datos, a fin de evitar anomalas y problemas quepueden ocurrir con los datos .

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    47/70

    Anomalas

    Son problemas que se presentan en el manejo delos datos, ocasionados por un mal diseo de la

    base de datos. Estas anomalas pueden clasificarseen :

    Anomalas de Insercin

    Anomalas de Eliminacin Anomalas de Modificacin

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    48/70

    Anomala de Insercin Aqu vemos un mal diseo, donde como se nota hay datos de

    empleado y de departamento juntos.

    codEm nom fechNac direc suel nDep nomDepcodJefe

    EMPLEADO

    100 Soler Ana 10-06-65 Flores 129 3400 5 Ingeniera 800

    200 Alva Juan 19-03-67 Valles 722 6200 5 Ingeniera 800

    250 Jobe Alan 11-09-69 Mar 1824 3600 4 Ventas 900

    300 Vall Kate 05-02-75 Jan 181 2400 4 Ventas 900

    800 Com Ivan 15-03-72 Grau 485 7600 5 Ingeniera 999

    900 Kori Rony 07-12-59 Lomas 18 7200 4 Ventas 999

    999 Pita Ins 25-03-72 Liz 1151 9500 1 Gerencia 999

    Datos del

    empleado

    Datos del

    departamento

    Cod_jefe

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    49/70

    Que se busca en la normalizacinQue todo atributo (campo) dependa

    totalmente de la clave, y de ningn otrocampo que no sea la clave

    A B C D

    Supuesto Basico: Buen conocimiento del negocio.

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    50/70

    Formas de Normalizacin

    1FN

    1NF2NF

    3NFBoyce&Codd NF

    4NF

    5NFDKNF

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    51/70

    Reglas de uso de 1ra. FN

    A B C D E FC DC D

    C D

    A B E F A C D

    Conversin a la 1FN

    (Retirar grupos repetitivos )

    Se descomponeen

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    52/70

    NRO EMPLEADO

    NOMBRE_EMPLEADOCOD_TRABAJONOM_TRABAJO

    1FN

    Retirar gruposrepetitivos

    NRO EMPLEADONRO PROYECTO

    TERMINO_PROYECTOHORAS_TRAB_PROYECTO

    NRO. EMPLEADONOMBRE_EMPLEADOCOD_TRABAJONOM_TRABAJONRO_PROYECTO1TERMINO_PROYECTO_1

    HORAS_TRAB_PROY_1NRO_PROYECTO2TERMINO_PROYECTO_2HORAS_TRAB_PROY_2.

    .

    .

    Reglas de uso de 1ra. FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    53/70

    OBRERO

    codObr nom fechNac direc jornal codJefe oficio aosExp

    GrupoGruporepetitivorepetitivo

    OBRERO

    codObr nom fechNac direc jornal codJefe oficio aosExp

    300 Huaman Jorge 10-05-67 Surco 25 800 carpintero 3

    300 Huaman Jorge 10-05-67 Surco 25 800 albail 3

    300 Huaman Jorge 10-05-67 Surco 25 800 pinto r 2

    350 Sulca Amrico 22-11-70 Comas 30 900 electrnico 5

    Reglas de uso de 1ra. FN

    OBRERO

    codObr nom fechNac direc jornal codJefe

    codObr codObr oficiooficio aosExp

    HABILIDADES

    EJEMPLO :EJEMPLO :

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    54/70

    Sea el esquema de relacin R :

    R (( A1 , A2 , A3 , . . . A k , Ak+1 , . . . A m , Am+1 , . . . A t , A t+1 , . . . A n-1 , An ))

    x yY los subconjuntos

    Se dice que Y depende funcionalmentedepende funcionalmente de X , que X determina Y

    x y

    Si y solo si , cada valor de X tiene asociado en todo momento unun niconico valor de Y

    que X implica Ydeterminante

    determinado

    Dependencia Funcional

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    55/70

    LIBRO ( cod_Lib, titulo, editorial )

    Se puede decirque el cdigo deun librodetermina suttulo.

    Aqu se dice que titulo depende funcionalmente detitulo depende funcionalmente de codLibcodLib

    Este concepto de dependencia funcional tambin nosdice que el titulo es una informacin acerca del libro otambin que para algn cdigo de libro existe unnico ttulo que le corresponde .

    Dependencia funcional

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    56/70

    codEmp numProy nomEmp nomProy lugarProy

    EMP_PROY

    codEmp nomEmp

    numProy { nomProy , lugarProy }Se lee :Se lee :

    EMP_PROY ( codEmp, numProy, nomEmp, nomProy, lugarProy )

    El valor del nmero de proyecto ( numProy ) determina de manera nica elnombre del proyecto ( nomProy ) y su lugar ( lugarProy ).

    El valor de cdigo del empleado ( codEmp ) determina de manera nica elnombre de ese empleado ( nomEmp ). Para un codEmp existe un niconombre de empleado.

    Dependencia funcional

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    57/70

    En 2 FN dos tipos importantes de DF

    codProgramador codModulo nomProgramador nomModulo horasTrab

    PROGRAM

    Dependencia funcional completa

    Dependencia funcional parcial

    Dependencia funcional parcial

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    58/70

    A B C D

    A B D B C

    Conversin a la 2FN

    (Retirar dependencias funcionales parciales)

    Sedescomponeen

    Regla de Uso de 2 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    59/70

    NRO PROYECTO

    TERMINO_PROYECTO

    NRO EMPLEADONRO PROYECTO

    HORAS_TRAB_PROYECTO

    NRO EMPLEADONRO PROYECTO

    TERMINO_PROYECTOHORAS_TRAB_PROYECTO

    2FN

    Retirar dependencias

    parciales

    Regla de Uso de 2 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    60/70

    EMP_PROY

    solucisoluci nn

    codEmp numProy horas nomEmp nomProy lugarProy

    Identificadas las dependencias,quedan definidas las nuevas relaciones

    codEmp numProy horas

    HORAS_TRABcodEmp nomEmp

    EMPLE

    numProy numProy lugarProy

    PROYEC

    Regla de Uso de 2 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    61/70

    Suponga que se tiene la siguiente relacin R y sus atributos :

    A B C

    De donde se puede interpretar :C es funcionalmente dependiente de B yB es funcionalmente dependiente de A , entonces :

    A B C

    C es funcionalmente dependiente de A

    Tenemos as unadependencia

    funcional transitiva

    Dependencia Funcional Transitiva

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    62/70

    A B C D

    A B D B C

    Conversin a la 2FN(Retirar dependencias funcionales transitivas)

    Sedescomponeen

    Reglas de Uso de 3 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    63/70

    NRO EMPLEADO

    NOMBRE EMPLEADOCOD_PUESTO

    COD PUESTO

    NOM_PUESTO

    NRO EMPLEADONOMBRE_EMPLEADOCOD_PUESTO

    NOM_PUESTO

    3FN

    Retirar dependenciasindirectas (transitivas )

    Reglas de Uso de 3 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    64/70

    Normalizar el siguiente esquema de relacin :

    CodEmp nomEmp sueldo numProy fechaFin

    EMPLEPROY

    dependencia funcional transitiva

    Esta en 1FN

    por que nohay gruposrepetitivos

    Esta en 2FN

    pues noexiste clavecompuesta

    Pero ladependenciatransitivaviola la 3FN

    Reglas de Uso de 3 FN

    EJEMPLO :EJEMPLO :

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    65/70

    codEmp nomEmp sueldo nProy

    EMPLEADO

    numProy fechaFin

    PROYECTO

    As, ya esta en 1FN por que no haygrupos repetitivos, en 2FN porque noexisten dependencias parciales sobreclaves compuestas, y en 3FN por queno existen transitividades.

    As, ya esta en 1FN por que no hay

    grupos repetitivos, en 2FN porque noexisten dependencias parciales sobreclaves compuestas, y en 3FN por queno existen transitividades.

    Reglas de Uso de 3 FN

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    66/70

    Conversin a PRIMERA FORMA NORMAL

    A B C D E F G A B G

    A C D

    A

    A C EC FD E

    F

    A C D A C E F

    Conversin a SEGUNDA FORMA NORMAL

    A B D A C

    A E F A

    Conversin a TERCERA FORMA NORMAL

    A E F A A E A E FE

    Resumen Conversiones

    Ing. Williams A. MUOZ ROBLES

    EJEMPLOSistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    67/70

    TABLA SIN NORMALIZA

    ORDEN VENTA

    NUMEROORDEN

    FECHA-ORDEN

    NUMEROCLIENTE

    NOMBRECLIENTE

    DIRECCINCLIENTE

    NUMEROPRODUC.

    NOMBREPRODUC.

    CANT.ORDEN.

    PRECIOPRODUC.

    TOTAL-PRODUC.

    TOTALORDE

    NADO

    Ing. Williams A. MUOZ ROBLES

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    68/70

    PRIMERA FORMA NORMALEliminar los atributos no atmicos (campos repetitivos)

    ORDEN-PRODUCTO

    NUMERO-ORDEN

    FECHA-ORDEN

    NUMERO-CLIENTE

    NOMBRE-CLIENTE

    DIRECCIN-CLIENTE

    TOTAL-ORDEN

    ORDEN VENTA

    NUMERO-ORDEN

    NOMBRE-PRODUCTO

    PRECIO-PRODUCTO

    CANTIDAD-ORDENADA

    TOTAL-PRODUCTO

    NUMERO-PRODUCTO

    Ing. Williams A. MUOZ ROBLES

    SEGUNDA FORMA NORMEli i l ib d di d l ll i i

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    69/70

    Eliminar los atributos no dependientes de la llave primaria comp(dependencia funcional parcial).

    NUMERO-ORDEN

    FECHA-ORDEN

    NUMERO-CLIENTE

    NOMBRE-CLIENTE

    DIRECCIN-CLIENTE

    TOTAL-ORDEN

    ORDEN VENTA

    ORDEN-PRODUCTO

    NUMERO-ORDEN

    TOTAL-PRODUCTO

    NUMERO-PRODUCTO

    CANTIDAD-ORDENADA

    NUMERO-PRODUCTO PRECIO-PRODUCTONOMBRE-PRODUCTO

    PRODUCTO

    Ing. Williams A. MUOZ ROBLES

    TERCERA FORMA NORMAEli i l t ib t d di t d t ib t dif t l

    Sistemas y Computacin UNDAC

  • 7/24/2019 Curso de Base de Datos 1

    70/70

    Eliminar los atributos dependientes de atributos diferentes a lallave primera (dependencia funcional transitiva).

    NUMERO-ORDEN

    TOTAL-PRODUCTO

    NUMERO-PRODUCTO

    CANTIDAD-ORDENADA

    NUMERO-PRODUCTO

    PRECIO-PRODUCTO

    NOMBRE-PRODUCTO

    ORDEN- PRODUCTO PRODUCTO

    NUMERO-CLIENTE

    DIRECCIN-CLIENTE

    NOMBRE-CLIENTE

    CLIENTE

    NUMERO-ORDEN

    TOTAL-ORDEN

    FECHA-ORDEN

    NUMERO-CLIENTE

    ORDEN VENTA

    Ing. Williams A. MUOZ ROBLES