PBOperacionesModeloRelacional Gris

Embed Size (px)

Citation preview

  • 1Operaciones en Operaciones en el Modelo el Modelo RelacionalRelacional

    Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    lgebra Relacionallgebra Relacional

    IntroducciIntroduccinn 22

    El inters de los usuarios de las bases de datos se suele centrar en realizar consultas (contestar a interrogantes sobre la instancia actual de la base de datos)

    El modelo relacional posee un conjunto concreto de operaciones estndar sobre los datos (a diferencia del modelo E/R que no ofrece una forma especfica de manipular la informacin)

    Estas operaciones estndar pueden expresarse en un lgebra que se conoce como lgebra relacional

    lgebraRama de las Matemticas que tiene por objeto de estudio la generalizacin de las relaciones aritmticas de los nmeros

    lgebra Relacional lgebra Relacional Extendida Modificaciones de la Base de Datos Valores Nulos

    ndicendice

    IntroducciIntroduccinn 33

    lgebra lgebra RelacionalRelacional

    Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases de DatosBases de Datos

    IngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    Lenguajes de ConsultaLenguajes de Consulta

    lgebra Relacionallgebra Relacional 55

    Un lenguaje de consulta es un lenguaje en el que un usuario solicita informacin de la base de datos

    Los lenguajes de consulta de bases de datos suelen ser de un nivel conceptual superiora los lenguajes de programacin habituales

    Procedimentales: el usuario instruye al sistema para que lleve a cabo una serie de operaciones para calcular el resultado

    No procedimentales: el usuario describe la informacin deseada, sin dar un procedimiento para obtenerla

    lgebra RelacionalEs una forma de lenguaje de consulta en el modelo relacionalSus operadores principales son: unin, interseccin, diferencia, seleccin, proyeccin, producto Cartesiano, reunin natural, reunin theta y cambio de nombre (renombramiento)

    lgebra Relacionallgebra Relacional

    lgebra Relacionallgebra Relacional 66

    El lgebra relacional es un lenguaje de consulta procedimental que consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relacin (construye nuevas relaciones a partir de relacionas existentes)Expresiones u Operaciones: comienzan con las relaciones como operandos y generan como resultado una relacin (se puede construir expresiones complejas al utilizar como operandos resultados de expresiones del lgebra Relacional)

    Consulta: expresin del

    lgebraRelacional

  • 2Operaciones Operaciones lgebra Relacionallgebra Relacional

    lgebra Relacionallgebra Relacional 77

    Las operaciones del lgebra Relacional se pueden clasificar en cuatro clases:

    1.- Operaciones habituales de los conjuntos (unin, interseccin y diferencia)

    2.- Operaciones que suprimen partes de una relacin (la seleccin elimina algunas tuplas y la proyeccin algunas columnas)

    Operaciones fundamentales: seleccin, proyeccin, unin, diferencia de conjuntos, producto cartesiano y renombramiento

    Unarias / Binarias

    Operaciones Operaciones lgebra Relacionallgebra Relacional

    lgebra Relacionallgebra Relacional 88

    Operaciones fundamentales: seleccin, proyeccin, unin, diferencia de conjuntos, producto cartesiano y renombramiento

    Unarias / Binarias

    Las operaciones del lgebra Relacional se pueden clasificar en cuatro clases:

    3.- Operaciones que combinan las tuplas de dos relaciones (el producto cartesiano combina pares de tuplas de dos relaciones y varias clases de reuniones que forman parejas, de forma selectiva, a partir de dos relaciones)

    4.- Operacin renombramiento que modifica el esquema de una relacin (nombres de atributos y/o nombre de la relacin

    Ejemplo 1: BancoEjemplo 1: Banco

    99

    Cliente

    ciudad_cliente

    calle_cliente

    nombre_cliente

    Sucursal

    activosciudad_sucursal

    nombre_sucursal

    Cuenta

    saldonombre_sucursal

    numero_cuenta

    Impositor

    numero_cuenta

    nombre_cliente

    Prstamo

    importenombre_sucursal

    numero_prestamo

    Prestatario

    numero_prestamo

    nombre_cliente

    lgebra Relacionallgebra Relacional

    Ejemplo 1: BancoEjemplo 1: Banco

    1010

    12000A CoruaRiazor

    8000SantiagoVite

    5000SantiagoPlaza Roja

    2500LugoMurallas

    10000LugoFingoi

    75000SantiagoPrincipal

    Sucursal

    activosciudad_sucursal

    nombre_sucursal

    150RiazorC-317

    100ViteC-316

    1000PrincipalC-315

    1200FingoiC-225

    450Plaza RojaC-201

    900MurallasC-103

    700FingoiC-102

    500PrincipalC-101

    Cuenta

    saldonombre_sucursal

    numero_cuenta

    lgebra Relacionallgebra Relacional

    Ejemplo 1: BancoEjemplo 1: Banco

    1111

    OleirosFidelRodrguez

    AmesMagdalenaSantos

    A CoruaOrznLpez

    AmesAgroGmez

    NegreiraConstitucinGonzlez

    SantiagoCameliasPrez

    LugoPimentelFernndez

    RbadeJazmnBarreiro

    SantiagoLa RosaAmo

    LugoDiputacinAbril

    Cliente

    ciudad_cliente

    calle_cliente

    nombre_cliente

    15100ViteP-18

    8700FingoiP-23

    10000FingoiP-13

    Prstamo

    importenombre_sucursal

    numero_prestamo

    lgebra Relacionallgebra Relacional

    Ejemplo 1: BancoEjemplo 1: Banco

    1212C-317Rodrguez

    C-316Gmez

    C-315Prez

    C-103Fernndez

    C-225Barreiro

    C-102Fernndez

    C-201Santos

    C-102Lpez

    C-201Lpez

    C-315Gonzlez

    C-102Abril

    C-101Amo

    Impositor

    numero_cuenta

    nombre_cliente

    P-18Rodrguez

    P-13Barreiro

    P-23Fernndez

    P-18Prez

    P-13Abril

    P-13Fernndez

    Prestatario

    numero_prestamo

    nombre_cliente

    lgebra Relacionallgebra Relacional

  • 3SelecciSeleccinn

    lgebra Relacionallgebra Relacional 1313

    La operacin seleccin selecciona tuplas que satisfacen un predicado dado y produce una nueva relacin con un subconjunto de tuplas de la relacin original

    Para denotar la seleccin se utiliza la letra griega sigma minscula ()

    El predicado aparece como subndice de

    La relacin sobre la que se aplica aparece entre parntesis

    predicado (relacin)

    Ejemplo 1: BancoEjemplo 1: Banco

    1414lgebra Relacionallgebra Relacional

    Seleccionar las tuplas de la relacin prstamo en las cuales la sucursal es Fingoi

    nombre_sucursal=Fingoi (Prstamo)

    8700FingoiP-23

    10000FingoiP-13

    importenombre_sucursal

    numero_prestamo

    Ejemplo 1: BancoEjemplo 1: Banco

    1515lgebra Relacionallgebra Relacional

    Seleccionar las tuplas en las cuales el importe prestado sea mayor que 9000

    importe>9000 (Prstamo)

    15100ViteP-18

    10000FingoiP-13

    importenombre_sucursal

    numero_prestamo

    SelecciSeleccinn

    lgebra Relacionallgebra Relacional 1616

    Se permiten las comparaciones que utilizan =, , , en el predicado

    Se pueden combinar varios predicados con las conectivas y() y o()

    nombre_sucursal=Fingoi importe>9000 (Prstamo)

    El predicado puede incluir comparaciones entre dos atributos

    nombre_cliente=nombre_banquero (ReponsablePrstamo)

    ProyecciProyeccinn

    lgebra Relacionallgebra Relacional 1717

    La operacin proyeccin selecciona argumentos de una relacin (elimina filas duplicadas) y produce una nueva relacin que contiene algunas de las columnas de la original

    Para denotar la proyeccin se utiliza la letra griega pimayscula ()

    Los argumentos aparecen como subndice de

    La relacin sobre la que se aplica aparece entre parntesis

    argumentos (relacin)

    Ejemplo 1: BancoEjemplo 1: Banco

    1818lgebra Relacionallgebra Relacional

    Crear una lista de todos los nmeros de prstamo y del importe de los mismos

    numero_prestamo, importe (Prstamo)

    15100P-18

    8700P-23

    10000P-13

    importenumero_prestamo

  • 4ComposiciComposicin de Operacionesn de Operaciones

    lgebra Relacionallgebra Relacional 1919

    Es muy importante el hecho de que el resultado de una operacin relacional es tambin una relacin

    Las operaciones del lgebra relacional pueden componerse para formar una expresin compleja del lgebra relacional

    Ejemplo 1: BancoEjemplo 1: Banco

    2020lgebra Relacionallgebra Relacional

    Encontrar los clientes que viven en Santiago

    nombre_cliente (ciudad_cliente=Santiago (Cliente))

    SantiagoCameliasPrez

    SantiagoLa RosaAmo

    ciudad_cliente

    calle_cliente

    nombre_cliente

    Prez

    Amo

    nombre_cliente

    UniUninn

    lgebra Relacionallgebra Relacional 2121

    La operacin unin une tuplas de dos relaciones (que tengan el mismo nmero de atributos y dominios iguales Compatibles) eliminando las tuplas repetidas

    Para denotar la unin se utiliza la notacin de conjuntos (U)

    Las relaciones sobre las que se aplica aparecen a los lados del operador

    Define una relacin lgica OR

    relacin1 U relacin2

    Ejemplo 1: BancoEjemplo 1: Banco

    2222lgebra Relacionallgebra Relacional

    Averiguar el nombre de todos los clientes del banco que tienen una cuenta, un prstamo o

    ambas cosas

    nombre_cliente (Impositor) U nombre_cliente (Prestatario)

    Rodrguez

    Gmez

    Prez

    Barreiro

    Fernndez

    Santos

    Lpez

    Gonzlez

    Abril

    Amo

    nombre_cliente

    Rodrguez

    Barreiro

    Prez

    Abril

    Fernndez

    nombre_cliente

    Rodrguez

    Gmez

    Prez

    Barreiro

    Fernndez

    Santos

    Lpez

    Gonzlez

    Abril

    Amo

    nombre_cliente

    Diferencia de ConjuntosDiferencia de Conjuntos

    lgebra Relacionallgebra Relacional 2323

    La operacin diferencia de conjuntos selecciona tuplasde dos relaciones que estn en una pero que no estn en la otra (que tengan el mismo nmero de atributos y dominios iguales Compatibles)Para denotar la diferencia de conjuntos se utiliza la notacin de matemticas (-)

    Las relaciones sobre las que se aplica aparecen a los lados del operador

    relacin1 - relacin2

    Ejemplo 1: BancoEjemplo 1: Banco

    2424lgebra Relacionallgebra Relacional

    Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido

    ningn prstamo

    nombre_cliente (Impositor) -nombre_cliente (Prestatario)

    Rodrguez

    Gmez

    Prez

    Barreiro

    Fernndez

    Santos

    Lpez

    Gonzlez

    Abril

    Amo

    nombre_cliente

    Rodrguez

    Barreiro

    Prez

    Abril

    Fernndez

    nombre_cliente

    Gmez

    Santos

    Lpez

    Gonzlez

    Amo

    nombre_cliente

  • 5Producto CartesianoProducto Cartesiano

    lgebra Relacionallgebra Relacional 2525

    La operacin producto cartesiano, o producto, combina tuplas de dos relaciones formando nuevas tuplas que tienen como primera parte una tupla de una relacin y como segunda parte una tupla de la otra relacin

    Para denotar el producto cartesiano se utiliza la notacin de matemticas (X)

    Las relaciones sobre las que se aplica aparecen a los lados del operador

    Define una relacin lgica AND

    relacin1 x relacin2

    Nombres de AtributosNombres de Atributos

    lgebra Relacionallgebra Relacional 2626

    Al combinar dos relaciones puede ocurrir que atributos pertenecientes a ambas relaciones tengan el mismo nombre

    Esquema_prestatario=(nombre_cliente, numero_prestamo)

    Esquema_prestamo=(numero_prestamo, nombre_sucursal, importe)

    Esquema_r [=prestatarioxprestamo] = (prestatario.nombre_cliente, prestatario.nmero_prestamo, prestamo.numero_prestamo, prestamo.nombre_sucursal, prestamo.importe)

    TuplasTuplas del del ProdProd. . CartCart..

    lgebra Relacionallgebra Relacional 2727

    Se crea una tupla en el Producto Cartesiano a partir de cada posible par de tuplas de las relaciones que participan La relacin procedente del Producto Cartesiano suele ser de gran tamao

    r = a x b, n1 tuplas en a y n2 tuplas en b

    n1 * n2 tuplas en r

    Ejemplo 1: BancoEjemplo 1: Banco

    2828lgebra Relacionallgebra Relacional

    Averiguar los nombres de todos los clientes que tienen concedido un prstamo en la Sucursal de Fingoi

    15100ViteP-18

    8700FingoiP-23

    10000FingoiP-13

    Prstamo

    importenombre_sucursal

    numero_prestamo

    P-18Rodrguez

    P-13Barreiro

    P-23Fernndez

    P-18Prez

    P-13Abril

    P-13Fernndez

    Prestatario

    numero_prestamo

    nombre_cliente

    Ejemplo 1: BancoEjemplo 1: Banco

    2929lgebra Relacionallgebra Relacional

    prestatario x prestamo

    P-18

    P-23

    P-13

    P-18

    P-23

    P-13

    P-18

    P-23

    P-13

    prestamo. numero_prestamo

    Vite

    Fingoi

    Fingoi

    Vite

    Fingoi

    Fingoi

    Vite

    Fingoi

    Fingoi

    nombre_sucursal

    P-18

    P-18

    P-18

    P-13

    P-13

    P-13

    P-13

    P-13

    P-13

    prestatario.numero_prestamo

    8700Prez

    8700Abril

    15100Abril

    10000Prez

    15100Prez

    8700Fernndez

    15100Fernndez

    10000Abril

    10000Fernndez

    importenombre_cliente

    Ejemplo 1: BancoEjemplo 1: Banco

    3030lgebra Relacionallgebra Relacional

    prestatario x prestamo

    P-18

    P-18

    P-18

    P-13

    P-13

    P-13

    P-23

    P-23

    P-23

    prestatario.numero_prestamo

    P-18

    P-23

    P-13

    P-18

    P-23

    P-13

    P-18

    P-23

    P-13

    prestamo. numero_prestamo

    Vite

    Fingoi

    Fingoi

    Vite

    Fingoi

    Fingoi

    Vite

    Fingoi

    Fingoi

    nombre_sucursal

    8700Rodrguez

    8700Barreiro

    15100Barreiro

    10000Rodrguez

    15100Rodrguez

    8700Fernndez

    15100Fernndez

    10000Barreiro

    10000Fernndez

    importenombre_cliente

  • 6Ejemplo 1: BancoEjemplo 1: Banco

    3131lgebra Relacionallgebra Relacional

    Seleccionamos en el resultado del producto cartesiano las tuplas cuyo valor en nombre_sucursal sea el que se busca

    nombre_sucursal=Fingoi (prestatario x prestamo)

    Ejemplo 1: BancoEjemplo 1: Banco

    3232lgebra Relacionallgebra Relacional

    10000FingoiP-13P-23Fernndez

    8700FingoiP-23P-23Fernndez

    10000FingoiP-13P-13Barreiro

    8700FingoiP-23P-13Barreiro

    10000FingoiP-13P-18Rodrguez

    8700FingoiP-23P-18Rodrguez

    8700FingoiP-23P-18Prez

    P-13

    P-23

    P-13

    P-23

    P-13

    prestamo. numero_prestamo

    Fingoi

    Fingoi

    Fingoi

    Fingoi

    Fingoi

    nombre_sucursal

    P-18

    P-13

    P-13

    P-13

    P-13

    prestatario.numero_prestamo

    8700Abril

    10000Prez

    8700Fernndez

    10000Abril

    10000Fernndez

    importenombre_cliente

    Ejemplo 1: BancoEjemplo 1: Banco

    3333lgebra Relacionallgebra Relacional

    Filtramos el resultado a travs del nmero de prstamo

    prestatario.numero_prestamo=prestamo.numero_prestamo(nombre_sucursal=Fingoi (prestatario x prestamo))

    8700FingoiP-23P-23Fernndez

    10000FingoiP-13P-13Barreiro

    P-13

    P-13

    prestamo. numero_prestamo

    Fingoi

    Fingoi

    nombre_sucursal

    P-13

    P-13

    prestatario.numero_prestamo

    10000Abril

    10000Fernndez

    importenombre_cliente

    Ejemplo 1: BancoEjemplo 1: Banco

    3434lgebra Relacionallgebra Relacional

    Y proyectamos el resultado buscado

    nombre_cliente (prestatario.numero_prestamo=prestamo.numero_prestamo(nombre_sucursal=Fingoi (prestatario x prestamo)))

    Barreiro

    Abril

    Fernndez

    nombre_cliente

    RenombramientoRenombramiento

    lgebra Relacionallgebra Relacional 3535

    La operacin renombramiento permite poner nombre a una relacin (obtenida a travs de una expresin) que no lo tenga

    Para denotar la proyeccin se utiliza la letra griega rhominscula () (tambin la partcula as en una lista de argumentos)

    El nombre a dar a la relacin aparece como subndice de y el nombre a dar a los atributos como argumentos

    La expresin sobre la que se aplica aparece entre parntesis

    nombre(argumentos) (expresin)

    Otras OperacionesOtras Operaciones

    lgebra Relacionallgebra Relacional 3636

    Las operaciones fundamentales del lgebra relacional son suficientes para expresar cualquier consulta del lgebra relacional

    Operaciones que no aaden potencial al lgebra pero que simplifican la expresin de las consultas

    Tienen una expresin equivalente usando slo las operaciones fundamentales

  • 7IntersecciInterseccinn

    lgebra Relacionallgebra Relacional 3737

    Obtener relaciones del tipo y

    relacin1 relacin2

    U

    =relacin1-(relacin1-relacin2)

    ReuniReunin Naturaln Natural

    lgebra Relacionallgebra Relacional 3838

    Cuando se utiliza el producto cartesiano, se suele reducirforzando que los argumentos con contenidos igualestengan valores iguales

    relacin1 relacin2

    =relacin1.argumento=relacin2.argumento(relacin1 x relacin2)

    ReuniReunin Thetan Theta

    lgebra Relacionallgebra Relacional 3939

    La reunin theta permite reflejar una condicin arbitraria de reunin al producto cartesiano

    relacin1 Condicin relacin2

    =condicin (relacin1 x relacin2)

    AsignaciAsignacinn

    lgebra Relacionallgebra Relacional 4040

    La operacin asignacin acta de forma similar a la asignacin en los lenguajes de programacin

    relacin1 Expresin

    El resultado de la expresin de la derecha de se asigna a la variable relacin situada a la izquierda de

    lgebra lgebra Relacional Relacional ExtendidaExtendidaOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional

    Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    ProyecciProyeccin Generalizadan Generalizada

    lgebra Relacional Extendidalgebra Relacional Extendida 4242

    La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de argumentos

    funciones (relacin)

  • 8Ejemplo 1: BancoEjemplo 1: Banco

    4343lgebra Relacional Extendidalgebra Relacional Extendida

    Averiguar el importe de crdito disponible para cada lnea de crdito activa (lmite de crdito: 25000)

    numero_prestamo, 25000-importe (Prstamo)

    numero_prestamo, (25000-importe) as disponible (Prstamo)

    9900P-18

    16300P-23

    15000P-13

    disponiblenumero_prestamo

    Funciones de AgregaciFunciones de Agregacinn

    lgebra Relacional Extendidalgebra Relacional Extendida 4444

    Las funciones de agregacin toman como entrada una coleccin de valores y devuelven como resultado un valor resumen

    Se representa por la G caligrfica: G

    sum: suma de los valores

    avg: media de los valores

    count: nmero de valores

    min: valor mnimo de los valores

    max: valor mximo de los valores

    Para no repetir valores funcin-distinct

    argumento G funcin(argumento)(relacin)

    Ejemplo 1: BancoEjemplo 1: Banco

    4545lgebra Relacional Extendidalgebra Relacional Extendida

    Averiguar la suma total de los sueldos de los empleados del banco

    1800FingoiRibera

    1450Plaza RojaFernndez

    2900MurallasJimnez

    3900FingoiDaz

    2700PrincipalGonzlez

    EmpleadosTP

    sueldonombre_sucursal

    nombre_empleado

    G sum(sueldo)(EmpleadosTP)

    Averiguar nmero de sucursales en los que hay al menos un empleado a tiempo parcial

    G count-distinct(nombre_sucursal)(EmpleadosTP)

    Ejemplo 1: BancoEjemplo 1: Banco

    4646lgebra Relacional Extendidalgebra Relacional Extendida

    Hallar la suma total de sueldos de los empleados a tiempo parcial por sucursal

    1800FingoiRibera

    1450Plaza RojaFernndez

    2900MurallasJimnez

    3900FingoiDaz

    2700PrincipalGonzlez

    EmpleadosTP

    sueldonombre_sucursal

    nombre_empleado

    nombre_sucursal G sum(sueldo) (EmpleadosTP)

    1450Plaza Roja

    2900Murallas

    5700Fingoi

    2700Principal

    suma de sueldo

    nombre_sucursal

    ReuniReunin Externan Externa

    lgebra Relacional Extendidalgebra Relacional Extendida 4747

    La operacin reunin externa es una ampliacin de la operacin reunin para trabajar con informacin ausente (desconocida, no relevante, )

    Genera valores nulos !

    Ejemplo 1: BancoEjemplo 1: Banco

    lgebra Relacional Extendidalgebra Relacional Extendida 4848

    Generar una nica relacin que contenga toda la informacin de los empleados (calle, ciudad, sucursal y sueldo)

    LugoPimentelValdivieso

    RbadeJazmnGmez

    SantiagoLa RosaDomnguez

    LugoDiputacinSegura

    Empleado

    ciudadcallenombre

    5300FingoiValdivieso

    8000PrincipalBarea

    12000PrincipalDomnguez

    3000FingoiSegura

    EmpleadoTC

    sueldosucursalnombre

  • 9ReuniReunin Naturaln Natural

    lgebra Relacional Extendidalgebra Relacional Extendida 4949

    Generar una nica relacin que contenga toda la informacin de los empleados (calle, ciudad, sucursal y sueldo)

    Empleado EmpleadoTC

    Lugo

    Santiago

    Lugo

    ciudad

    Fingoi

    Principal

    Fingoi

    sucursal

    5300PimentelValdivieso

    12000La RosaDomnguez

    3000DiputacinSegura

    sueldocallenombre

    ReuniReunin Externa Izquierdan Externa Izquierda

    lgebra Relacional Extendidalgebra Relacional Extendida 5050

    La reunin externa por la izquierda toma todas las tuplasde la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha, las rellana con valores nulos en los dems atributos de la relacin de la derecha y las aade al resultado de la reunin natural

    Empleado EmpleadoTC

    nulonuloRbadeJazmnGmez

    Lugo

    Santiago

    Lugo

    ciudad

    Fingoi

    Principal

    Fingoi

    sucursal

    5300PimentelValdivieso

    12000La RosaDomnguez

    3000DiputacinSegura

    sueldocallenombre

    ReuniReunin Externa Derechan Externa Derecha

    lgebra Relacional Extendidalgebra Relacional Extendida 5151

    La reunin externa por la derecha toma todas las tuplasde la relacin de la derecha que no coincidan con ninguna tupla de la relacin de la izquierda, las rellana con valores nulos en los dems atributos de la relacin de la izquierda y las aade al resultado de la reunin natural

    Empleado EmpleadoTC

    8000PrincipalnulonuloBarea

    Lugo

    Santiago

    Lugo

    ciudad

    Fingoi

    Principal

    Fingoi

    sucursal

    5300PimentelValdivieso

    12000La RosaDomnguez

    3000DiputacinSegura

    sueldocallenombre

    ReuniReunin Externa Completan Externa Completa

    lgebra Relacional Extendidalgebra Relacional Extendida 5252

    La reunin externa completa realiza las operaciones de la reunin externa por la izquierda y de la reunin externa por la derecha

    Empleado EmpleadoTC

    nulonuloRbadeJazmnGmez

    8000PrincipalnulonuloBarea

    Lugo

    Santiago

    Lugo

    ciudad

    Fingoi

    Principal

    Fingoi

    sucursal

    5300PimentelValdivieso

    12000La RosaDomnguez

    3000DiputacinSegura

    sueldocallenombre

    Modificaciones Modificaciones de la Base de de la Base de

    DatosDatosOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional

    Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    Modificar la Base de DatosModificar la Base de Datos

    Modificaciones de la Base de DatosModificaciones de la Base de Datos 5454

    Las modificaciones de la Base de Datos se expresan utilizando la operacin de asignacin

    Las principales operaciones de modificacin de una Base de Datos son el Borrado, la Insercin y la Actualizacin

    Las Relaciones como Bolsas en los Sistemas ComercialesEn los sistemas comerciales de bases de datos, las relaciones son en realidad bolsas y en ellas se permite que una misma tupla aparezca varias vecesLas operaciones del lgebra relacional con conjuntos pueden aplicarse a las bolsas, pero hay algunas leyes algebraicas que no se cumplenAdems de emplear el modelo de bolsas para las relaciones, estos sistemas ofrecen operaciones que no existen en el lgebra relacionalEntre ellas figuran: insercin, eliminacin y actualizacin de las tuplas en relaciones, agregaciones en las relaciones y valores nulos en las tuplas

  • 10

    BorradoBorrado

    Modificaciones de la Base de DatosModificaciones de la Base de Datos 5555

    Las solicitudes de borrado es expresan, bsicamente, igual que las consultas en lugar de mostrar las tuplas resultantes se eliminan de la Base de Datos

    Slo se pueden borrar tuplas enteras

    r r E, E consulta del lgebra Relacional

    Ejemplo 1: BancoEjemplo 1: Banco

    lgebra Relacional Extendidalgebra Relacional Extendida 5656

    Borrar todas las cuentas de Gmez

    impositor impositor nombre_cliente=Gmez (impositor)

    InsercciInserccinn

    Modificaciones de la Base de DatosModificaciones de la Base de Datos 5757

    Para insertar datos hay que especificar la tuplaque se va insertar o escribir una consulta cuyo resultado sea el conjunto de tuplas a insertar

    r r U E, E expresin del lgebra Relacional una relacin constante

    Ejemplo 1: BancoEjemplo 1: Banco

    lgebra Relacional Extendidalgebra Relacional Extendida 5858

    Insertar el hecho de que Gmez abre una cuenta (C-973) en la sucursal de la Plaza Roja de Santiago con 1200

    cuenta cuenta U {(C-973, Plaza Roja, 1200)}impositor impositor U {(Gmez, C-973)}

    ActualizaciActualizacinn

    Modificaciones de la Base de DatosModificaciones de la Base de Datos 5959

    Puede que, en algunas situaciones, se desee modificar slo algunos valores en una tupla

    r F1, F2, , Fn (p (r)) U (r-p (r))

    r F1, F2, , Fn (r)

    Ejemplo 1: BancoEjemplo 1: Banco

    lgebra Relacional Extendidalgebra Relacional Extendida 6060

    Realizar un pago de intereses del 2% a todas las cuentas activas

    cuenta numero_cuenta, nombre_sucursal, saldo*1.02 (cuenta)

  • 11

    Valores NulosValores Nulos

    Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases de DatosBases de Datos

    IngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    Tratamiento Valores NulosTratamiento Valores Nulos

    Valores NulosValores Nulos 6262

    Es necesario analizar la forma en la que las operaciones del lgebra relacional manejan los valores nulos (y las complicaciones que surgen)

    Las operaciones y comparaciones con valores nulos se deberan evitar siempre que sea posible

    Valor nulo: Valor desconocido o no existente

    Operaciones AritmOperaciones Aritmticasticas

    Valores NulosValores Nulos 6363

    Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica (como +, -, * y /) que incluya valores nulos debe devolver un valor nulo

    ComparacionesComparaciones

    Valores NulosValores Nulos 6464

    Cualquier comparacin (como =, = y ) que incluya un valor nulo se evala al valor especial desconocido

    Como no se puede decir si el resultado de la comparacin es cierto o falso, se dice que el resultado es un nuevo valor lgico denominado desconocido

    Operaciones LOperaciones Lgicasgicas

    Valores NulosValores Nulos 6565

    desconocido=desconocidonoNOT

    desconocido=desconocidoodesconocido

    desconocido=desconocidoofalso

    cierto=desconocidoocierto

    OR

    desconocido=desconocidoydesconocido

    falso=desconocidoyfalso

    desconocido=desconocidoycierto

    AND

    SelecciSeleccinn

    Valores NulosValores Nulos 6666

    La operacin seleccin evala el predicado P en P(E) sobre cada tupla de E

    Si el predicado devuelve el valor cierto, se aade la tupla al resultado

    Si el predicado devuelve desconocido o falso, la tuplano se aade al resultado

  • 12

    ProyecciProyeccinn

    Valores NulosValores Nulos 6767

    La operacin proyeccin trata los nulos como cualquier otro valor al eliminar duplicados

    La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe si los dos valores nulos son duplicados o no

    UniUnin, n, IntersecIntersec., Diferencia., Diferencia

    Valores NulosValores Nulos 6868

    La unin, interseccin y diferencia tratan los valores nulos de la misma forma que la operacin proyeccin

    El comportamiento es un tanto arbitrario, especialmente en el caso de la interseccin y la diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son los mismos

    ReuniReuninn

    Valores NulosValores Nulos 6969

    Las reuniones se pueden expresar como un producto cartesiano seguido de una seleccin

    La definicin de la forma en la cual la seleccin trata los nulos tambin define la forma en que la operacin reunin trata los nulos

    En una reunin natural, si dos tuplas tienen valor nulo en el atributo comn, las tuplas no casan

    ProyecciProyeccin Generalizadan Generalizada

    Valores NulosValores Nulos 7070

    Los nulos en las expresiones de los atributos en la proyeccin generalizada se tratan como en cualquier expresin

    Las tuplas duplicadas que contienen valores nulos se tratan como en la operacin proyeccin

    Funciones de AgregaciFunciones de Agregacinn

    Valores NulosValores Nulos 7171

    Cuando hay nulos en atributos agregados, la operacin borra los valores nulos del resultado antes de aplicar la agregacin

    El tratamiento de los valores nulos aqu es diferente al realizado en las operaciones aritmticas aplicarlo como en las operaciones aritmticas significara que un nico valor desconocido en un gran grupo podra hacer que el resultado agregado sobre el grupo fuese nulo, y se perdera una gran cantidad de informacin til

    ReuniReunin Externan Externa

    Valores NulosValores Nulos 7272

    Las operaciones de reunin externa se comportan como las operaciones de reunin, excepto sobre las tuplas que no aparecen en el resultado

  • 13

    TemasTemasde Discuside Discusinny Ejerciciosy Ejercicios

    Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases de DatosBases de Datos

    IngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas

    Temas de DiscusiTemas de Discusinn

    Temas de DiscusiTemas de Discusin y Ejerciciosn y Ejercicios 7474

    La reunin natural y la reunin theta cuando la condicin de esta ltima abarca exactamente los atributos comunes, existen diferencias?

    EjerciciosEjercicios

    Temas de DiscusiTemas de Discusin y Ejerciciosn y Ejercicios 7575

    Dada la base de datos, en modelo relacional, compuesta por las siguientes cuatro reuniones

    Producto (fabricante, modelo, tipo)PC (modelo, velocidad, ram, disco, cd, precio)Portatil (modelo, velocidad, ram, disco, pantalla, precio)Impresora (modelo, color, tipo, precio)

    Qu modelos de PC tienen una velocidad de al menos 150?Qu fabricantes producen porttiles con disco duro de por la

    menos 1 gigabyte?

    EjerciciosEjercicios

    Temas de DiscusiTemas de Discusin y Ejerciciosn y Ejercicios 7676

    Encontrar los nmeros de modelo y el precio de todos los productos elaborados por el fabricante B

    Encontrar los nmeros de modelo de todas las impresoras lser color

    Encontrar los tamaos de disco duro que ocurren en dos o ms computadoras personales

    Encontrar los fabricantes de al menos dos computadoras distintas (PC o porttiles) con una velocidad de al menos 133

    Encontrar los fabricantes que venden exactamente tres modelos de PC