algebra-relacional completa

Upload: patricia-v-ap

Post on 19-Feb-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Algebra-relacional Completa

    1/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    ALGEBRA y CLCULO

    RELACIONAL

  • 7/24/2019 Algebra-relacional Completa

    2/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Objetivos

    Aprender a construir consultas aBases de Datos relacionales

    utilizando el lgebra Relacional.

  • 7/24/2019 Algebra-relacional Completa

    3/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Introduccin

    El lgebra y el Clculo Relacionalconstituyen lenguajes formales asociadoscon el Modelo Relacional.

    Informalmente, el lgebra Relacional (AR)es un lenguaje de procedimientos(procedural language) de alto nivel,mientras que el Clculo Relacional (CR) noes un lenguaje orientado a procedimientos.

    Formalmente son equivalentes el uno con

    el otro. Un lenguaje que produce una relacin que

    puede derivarse utilizando CR es completorelacionalmente.

  • 7/24/2019 Algebra-relacional Completa

    4/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    lgebra Relacional

    Es un lenguaje de consulta procedural. Consta de un conjunto de operaciones quetoman como entrada una o dos relaciones yproducen como resultado una nueva relacinsin cambiar las relaciones originales, por lo

    tanto, es posible anidar y combinar operadores. Tanto las relaciones que actan comooperandos como la relacin resultante a lasalida pueden emplearse como entradas paraotra operacin.

    Permite, como la aritmtica, que se anidenexpresiones. Esta propiedad recibe el nombrede clausura.

  • 7/24/2019 Algebra-relacional Completa

    5/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    lgebra RelacionalHay varios operadores en el AR queconstruyen relaciones y manipulan datos: Operaciones unarias:

    Seleccin ( Restriccin)Proyeccin

    Operaciones de conjuntos:UninDiferenciaInterseccinProducto cartesiano

    Operaciones de Combinacin Operacin de Divisin Operaciones de Agregacin y Agrupamiento

  • 7/24/2019 Algebra-relacional Completa

    6/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Operaciones

  • 7/24/2019 Algebra-relacional Completa

    7/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Operaciones

  • 7/24/2019 Algebra-relacional Completa

    8/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    lgebra Relacional

    Las operaciones de proyeccin, producto, unin,diferencia, y seleccin son llamadas bsicas primitivas, puesto que las otras operacionespueden definirse en trminos de stas.

    Se hace necesario en este punto incluir unmodelo de datos de ejemplo en el cual trabajarpara generar ejemplos de comandos yoperadores. Para este efecto se incluye unmodelo bsico de administracin de Radio taxis.

    El Grfico que se presenta a continuacinrepresenta el Modelo conceptual (ModeloLgico) o Diagrama de Entidad-Relacin:

  • 7/24/2019 Algebra-relacional Completa

    9/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    lgebra Relacional

  • 7/24/2019 Algebra-relacional Completa

    10/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    lgebra RelacionalLos Esquemas de relaciones que se pueden construir apartir de este modelo son los siguientes:

    Dueo = {rut, nombre, telfono, direccin, vigencia}

    Chofer = {rut, nombre, telfono, direccin,fecha_licencia_desde, fecha_licencia_hasta,

    vigencia}

    Vale = {correlativo, hora_desde, hora_hasta,metraje_total, tarifa_total}

    Mvil = {patente, rut_dueo, rut_chofer, marca,

    modelo, ao}

    Viaje = {correlativo_vale, patente_movil,Hora_Desde, hora_hasta, origen, destino, tarifa,metraje}

  • 7/24/2019 Algebra-relacional Completa

    11/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Seleccin Restriccin ()

    El operador de seleccin opta por tuplas quesatisfagan cierto predicado, se utiliza la letragriega sigma minscula () para sealar laseleccin.

    El predicado aparece como subndice de .

    La Relacin que constituye el argumento se daentre parntesis despus de la .

    Ejemplos :

  • 7/24/2019 Algebra-relacional Completa

    12/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Proyeccin () La operacin de proyeccin permite quitar

    ciertos atributos de la relacin. Esta operacin es unaria, copiando su relacin

    base dada como argumento y quitando ciertascolumnas.

    La proyeccin se seala con la letra griega pimayscula (). Como subndice de se colocauna lista de todos los atributos que se deseaaparezcan en el resultado.

    La relacin argumento se escribe despus de entre parntesis.Ejemplos :

  • 7/24/2019 Algebra-relacional Completa

    13/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Unin (U)

    En lgebra relacional la unin de dosrelaciones compatibles A y B es:A UNION B o A U B

    Produce el conjunto de todas las tuplasque pertenecen ya sea a A o a B o aAmbas.

    Al igual que en teora de conjuntos elsmbolo U representa aqu la unin de dosrelaciones.

    Ejemplo :Devuelve todos los Dueos y los Choferes.

  • 7/24/2019 Algebra-relacional Completa

    14/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Interseccin ()

    En lgebra relacional la interseccin de dosrelaciones compatibles A y BA INTERSECCION B o A B

    Produce el conjunto de todas las tuplaspertenecientes a A y B. Al igual que en teorade conjuntos el smbolo representa aqu lainterseccin entre dos relaciones.

    Ejemplo: Devuelve todos los dueos que tambin son choferes

  • 7/24/2019 Algebra-relacional Completa

    15/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Diferencia ()

    En lgebra relacional la diferencia entre dosrelaciones compatibles A y B

    A MENOS B o A B

    Produce el conjunto de todas las tuplas t quepertenecen a A y no pertenecen a B.

    Ejemplo:

    Devuelve todos los dueos que NO son choferes

  • 7/24/2019 Algebra-relacional Completa

    16/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Producto cartesiano (X)

    En lgebra relacional el producto de dosrelaciones A y B es:

    A Veces B o A X B

    Produce el conjunto de todas las tuplas t talesque t es el encadenamiento de una tupla aperteneciente a A y de una b que pertenece a B.se utiliza el smbolo X para representar el

    producto.Ejemplos:

  • 7/24/2019 Algebra-relacional Completa

    17/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Join o Reunin

    Esta operacin deriva del Producto

    Cartesiano Es equivalente a realizar una seleccin

    empleando un predicado de reunin como

    frmula para eleccin dentro del productocartesiano de las dos relaciones operando. Es difcil de implementar eficientemente en

    un Sistema de Manejo de Bases de Datos

    Relacionales (RDBMS) y es causa deproblemas intrnsecos deperformance enellos.

  • 7/24/2019 Algebra-relacional Completa

    18/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Join o Reunin

    En lgebra relacional el JOIN entre elatributo X de la relacin A con elatributo Y de la relacin B produce elconjunto de todas las tuplas t tal que tes el encadenamiento de una tupla a

    perteneciente a A y una tupla bperteneciente a B que cumplen con elpredicado:

    A.X comp B.Y es verdadero

    siendo comp un operador relacional ylos atributos A.X y B.Y pertenecientes almismo dominio.

  • 7/24/2019 Algebra-relacional Completa

    19/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Formas de la operacinJoin

    Combinacin Theta (-join) Equicombinacin (Equi-join) (tipo

    particular de Theta)

    Combinacin Natural Reunin externa (Outer join) Semicombinacin (Semi-join)

  • 7/24/2019 Algebra-relacional Completa

    20/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Join o Reunin Natural

    Si el operador relacional comp es =entonces el conjunto resultante es unEQUI-JOIN.

    Si se quita uno de stos (usando una

    proyeccin) entonces el resultado es unJOIN-NATURAL.

    Ejemplo.-

    O i i d l

  • 7/24/2019 Algebra-relacional Completa

    21/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Operaciones que extienden ellgebra Relacional

    Proyeccin Generalizada Combinacin externa Funciones de Agrupacin y Agregacin

  • 7/24/2019 Algebra-relacional Completa

    22/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Proyeccin Generalizada

    Extiende la operacin de proyeccin permitiendo el

    uso de funciones aritmticas en la lista proyectada.

    F1, F2, , Fn(E)

    Ees cualquier expresin del lgebra relacional

    Cada F1, F2, , Fn representa expresionesaritmticas que pueden involucrar constantes atributos en el esquema de E.

    Dada la relacin credit-info(customer-name, limit,

    credit-balance), encontrar cuanto puede gastar unapersona:

    customer-name, limit credit-balance (credit-info)

    F i O i d

  • 7/24/2019 Algebra-relacional Completa

    23/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Funciones y Operaciones deAgregacin

    La funcin de Agregacin toma una coleccin de valores y

    devuelve un nico valor como resultado:avg: valor promediomin: valor mnimomax: valor mximosum: suma de valores

    count: cantidad de valores Operacin de Agregar en lgebra relacional

    G1, G2, , Gn gF1( A1), F2( A2),, Fn( An) (E)

    Ees cualquier expresin en lgebra relacional

    G1, G2 , Gn es una lista de atributos en los cuales agrupar(puede estar vaca)

    Cada Fies una funcin de agregacin

    CadaAies un nombre de atributo

    Ej l d l O i

  • 7/24/2019 Algebra-relacional Completa

    24/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de la OperacinAgregacin

    Relacin accountagrupada por branch-name:

    branch-name

    g

    sum(balance)

    (account)

    branch-name account-number balance

    Perryridge

    PerryridgeBrightonBrightonRedwood

    A-102

    A-201A-217A-215A-222

    400

    900750750700

    branch-name balance

    PerryridgeBrightonRedwood

    13001500700

  • 7/24/2019 Algebra-relacional Completa

    25/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Funciones de Agregacin (Cont.)

    El resultado de la agregacin no tieneun nombre.

    Puede utilizarse la operacin de renombrar(rename) as para denominarla.

    Por conveniencia, se permite renombrarcomo parte de la operacin de agregacin.

    branch-name g sum(balance) assum-balance (account)

  • 7/24/2019 Algebra-relacional Completa

    26/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Combinacin externa

    Extensin de la operacinjoin que evita prdidasde informacin, ya que trabaja con la informacinque falta.

    Calcula la combinacin e incluye tambin en la

    relacin resultante las tuplas de R que no tenganvalores correspondientes en los atributoscomunes de S.

    Asigna valores nulos (null) a los valores no

    existentes en la segunda relacin. null significa que el valor es desconocido no existe Todas las comparaciones que involucran nullson false

    por definicin.

  • 7/24/2019 Algebra-relacional Completa

    27/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de Combinacin externa

    Relacin loan

    Relacin borrowercustomer-name loan-number

    Jones

    SmithHayes

    L-170

    L-230L-155

    300040001700

    loan-number amount

    L-170L-230L-260

    branch-name

    DowntownRedwoodPerryridge

  • 7/24/2019 Algebra-relacional Completa

    28/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de Combinacin externa

    Combinacin interna

    loan Borrowerloan-number amount

    L-170

    L-230

    3000

    4000

    customer-name

    Jones

    Smith

    branch-name

    Downtown

    Redwood

    JonesSmithnull

    loan-number amount

    L-170L-230L-260

    300040001700

    customer-namebranch-name

    DowntownRedwoodPerryridge

    Combinacin externa izquierda

    loan Borrower

  • 7/24/2019 Algebra-relacional Completa

    29/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de Combinacin externa

    Combinacin externa derecha:

    loan borrower

    loan borrower

    Combinacin externa completa

    loan-number amount

    L-170L-230

    L-155

    30004000

    null

    customer-name

    JonesSmith

    Hayes

    branch-name

    DowntownRedwood

    null

    loan-number amount

    L-170L-230L-260L-155

    300040001700null

    customer-name

    JonesSmithnull

    Hayes

    branch-name

    DowntownRedwoodPerryridgenull

  • 7/24/2019 Algebra-relacional Completa

    30/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Valores nulos

    Es posible en las tuples tomar un valor nulo,

    denotado por null, para algunos atributos nullsignifica un valor desconocido que no existe.

    El resultado de cualquier expresin aritmtica dondeparticipa nulles el propio valor null.

    Las funciones de Agregacin simplemente ignoranvalores nulos Es una decisin arbitraria.

    Para eliminacin de duplicados y agrupamiento, elvalor nulo es tratado como cualquier otro valor Alternativa: asumir que cada valor nulo es diferente de los

    otros

  • 7/24/2019 Algebra-relacional Completa

    31/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Las comparaciones con valores nulos devuelven el valor

    especial verdadero unknown Si se emple false en vez de unknown, entonces not (A < 5)pudiera no ser equivalente aA >= 5

    Se emplea lgica tres estadoscon el valor unknown: OR: (unknown or true) = true,

    (unknown or false) = unknown(unknown or unknown) = unknown

    AND: (true and unknown) = unknown,(false and unknown) = false,(unknown and unknown) = unknown

    NOT: (not unknown) = unknown

    En SQL Pis unknown evala como cierto si el predicado Pevala a unknown

    El resultado del predicado de seleccin se trata como false sievala como unknown

    Valores nulos

  • 7/24/2019 Algebra-relacional Completa

    32/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Modificacin de la Base de Datos

    El contenido de la base de datospuede modificarse utilizando lassiguientes operaciones:

    Borrado InsercinActualizacin

    Estas operaciones se expresanempleando el operador deasignacin:

  • 7/24/2019 Algebra-relacional Completa

    33/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Borrado

    Una solicitud de borrado se expresa de manera

    similar a una consulta, pero en vez de mostrardichas tuplas al usuario, provoca que las tuplasseleccionadas sean eliminadas de la base de datos.

    Pueden eliminarse solamente tuplas completas; no

    pueden borrarse valores especficos de atributos. En lgebra relacional se expresa como:

    r r E

    donde res una relacin y Ees una consulta enlgebra relacional.

  • 7/24/2019 Algebra-relacional Completa

    34/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplos de borrado

    Borrar en la tabla account todas las tuplas

    cuyo nombre de sucursal sea Perryridge.

    Borrar todas las cuentas para las sucursalesubicadas en Needham.

    r1

    branch-city = Needham(account branch)

    r2 branch-name, account-number, balance (r1)

    r3 customer-name, account-number(r2 depositor)

    account account r2

    depositor depositor r3

    Borrar todos los registros de la tabla loan concantidad en el rango de 0 a 50

    loan loan amount 0 and amount 50 (loan)

    account account branch-name = Perryridge(account)

  • 7/24/2019 Algebra-relacional Completa

    35/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Insercin

    Para insertar datos en una relacin, puede: especificarse una tupla para ser insertada

    escribir una consulta cuyo resultado sea un conjunto detuplas a insertar

    En lgebra relacional, una insercin se expresa

    como:r r E

    donde res una relacin y Ees una expresin dellgebra relacional.

    La insercin de una tupla simple se expresahaciendo que Esea una relacin constante quecontiene una tupla.

  • 7/24/2019 Algebra-relacional Completa

    36/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplos de Insercin

    Insertar informacin en la base de datos especificando que

    Smith tiene $1200 en la cuenta A-973 en la sucursal dePerryridge.

    Ofrecer una nueva cuenta de ahorro con $200 como regalopara todos los clientes con prstamos concedidos en lasucursal de Perryridge. Hacer que el nmero del prstamo seael que se utilice como nmero de cuenta para cada nueva

    cuenta de ahorro.

    account account {(Perryridge, A-973, 1200)}

    depositor depositor {(Smith, A-973)}

    r1 (branch-name = Perryridge (borrower loan))

    account account branch-name, account-number,200 (r1)

    depositor depositor customer-name, loan-number(r1)

  • 7/24/2019 Algebra-relacional Completa

    37/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Actualizacin

    Mecanismo para cambiar algunos valores en unatupla sin que cambien todos los valores de lamisma.

    Se utiliza el operador de proyeccin generalizada

    r F1, F2, , FI,

    (r)

    Cada Fies: el isimo atributo de r, si dicho isimo atributo no se

    actualiza; o,

    Si corresponde actualizar al atributo, entonces Fi es unaexpresin formada por constantes y por los atributos de r,que proporciona el valor del nuevo atributo

  • 7/24/2019 Algebra-relacional Completa

    38/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplos de actualizacin

    Pagar intereses incrementando todos los balancesen un 5%.

    Las cuentas con balances sobre $10,000 percibenun 6% de inters. A las restantes, pagar el 5 %

    account AN, BN, BAL * 1.06 ( BAL 10000 (account))

    AN, BN, BAL * 1.05 (BAL 10000 (account))

    account AN, BN, BAL * 1.05 (account)

    dondeAN, BNy BAL significan account-number, branch-name ybalance, respectivamente.

  • 7/24/2019 Algebra-relacional Completa

    39/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    En muchos casos no se desea que todos los

    usuarios vean el modelo lgico completo; porejemplo: todas las relaciones almacenadasactualmente en la base de datos.

    Considere una persona que necesita saber elnmero de cuenta de un cliente, pero no

    necesita ver el importe de prstamos. Estapersona debera ver una relacin descrita, entrminos del lgebra relacional, por:customer-name, loan-number(borrower loan)

    Cualquier relacin que no forma parte delmodelo conceptual pero que se hace visible paraalgn usuario como relacin virtual sedenomina vista (view).

    Vistas

  • 7/24/2019 Algebra-relacional Completa

    40/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Definicin de Vista

    Las vistas se definen utilizando la instruccin createview. Para definirla, hay que indicar el nombre y laconsulta que la calcula:

    create view v as

    donde es cualquier expresin deconsulta que sea legal en lgebra relacional. El nombrede la vista es v.

    Una vez definida la vista, su nombre de vista puedeutilizarse para referirse a la relacin virtual que esgenerada por dicha vista.

    Una definicin de vista no es lo mismo que crear unanueva relacin evaluando la expresin de consulta. Envez de eso, la definicin de la vista genera que seguarde una expresin, la cual es sustituida en aquellasconsultas que utilicen la vista.

  • 7/24/2019 Algebra-relacional Completa

    41/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplos de vistas

    Considere la vista denominada all-customer,consistente de todas las sucursales y sus clientes.

    Pueden encontrarse todos los clientes de la

    sucursal Perryridge escribiendo:

    create view all-customer as

    branch-name, customer-name (depositor account) branch-name, customer-name (borrower loan)

    customer-name

    (branch-name = Perryridge (all-customer))

  • 7/24/2019 Algebra-relacional Completa

    42/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Actualizaciones mediante vistas

    Las modificaciones a la Base de Datos expresadas como

    vistas deben ser trasladadas a modificaciones de lasrelaciones actuales existentes en la Base de Datos. Considere la persona que necesita ver todos los datos de

    imposiciones en la relacin loan excepto amount. La vistadada a dicha persona, branch-loan, se define como:

    create view branch-loan asbranch-name, loan-number(loan)

    Dado que se admite que un nombre de vista aparezcadondequiera que se permite un nombre de relacin, lapersona pudiera escribir:

    branch-loan branch-loan {(Perryridge, L-37)}

    Actualizaciones mediante vistas

  • 7/24/2019 Algebra-relacional Completa

    43/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    La insercin anterior puede representarse por una insercin en

    la relacin actual loan a partir de la cual se construye la vistabranch-loan.

    Una insercin en la relacin loan requiere un valor paraamount. Hay dos enfoques para trabajar esta insercin:1. Rechazarla y devolver un mensaje de error al usuario.

    2. Insertar la tupla (L-37, Perryridge, null) en la relacin loan. Algunas actualizaciones a travs de vistas no son posibles de

    convertir en actualizaciones de relaciones de la base de datos: create view v as branch-name =Perryridge(account))

    v v (L-99, Downtown, 23)

    Otras no pueden ser convertidas unvocamente: all-customer all-customer {(Perryridge, John)}

    Hay que seleccionar loan o account, y crear un nuevo nmeroloan/account!

    Actualizaciones mediante vistas(cont.)

    Vistas Definidas Utilizando Otras

  • 7/24/2019 Algebra-relacional Completa

    44/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Vistas Definidas Utilizando OtrasVistas

    Una vista puede ser utilizada en la definicinde otra vista.

    Se dice que la vista v1 depende directamentede la vista v2 si v2 se emplea en la expresin

    que define a v1 Se dice que la vista v1 depende de la vista v2

    si v1 depende directamente de v2 o hay un

    camino de dependencias desde v1 hastav2 Una vista vse denomina recursiva si

    depende de si misma.

  • 7/24/2019 Algebra-relacional Completa

    45/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Expansin de vistas

    Es una manera de definir el significado de las vistas

    definidas en trminos de otras vistas. Sea la vista v1 definida por la expresin e1 que

    puede contener a su vez otras vistas.

    La expansin de vista de una expresin repite elsiguiente paso de reemplazo:

    repeatBuscar todas las vistas vide e1Sustituir la vista vipor la expresin que define vi

    until no queden mas vistas en e1 Mientras las definiciones de vistas no sean

    recursivas, este bucle concluir.

  • 7/24/2019 Algebra-relacional Completa

    46/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Clculo relacional de tuplas

    Lenguaje de consultas no procedural,

    donde cada consulta est expresada en laforma{t| P(t) }

    Es el conjunto de todas las tuplas ttalesque el predicado Pes verdadero para t

    tes una variable de tupla, t[A] denota elvalor del atributoA para la tupla t

    t rdenota que la tupla test en larelacin r Pes una frmula similar a las del clculo de

    predicados

    Frmulas del clculo de

  • 7/24/2019 Algebra-relacional Completa

    47/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Frmulas del clculo depredicados1. Conjunto de atributos y constantes.

    2. Operadores de comparacin: , , , , , 3. Conectores: and (), or (v) not ()4. Implicacin (): x y, si x es verdadero,

    entonces y es verdaderox y xv y

    5. Cuantificadores:

    t r (Q(t)) existe una tupla ten relacin rtal que el predicado Q(t) es truet r(Q(t)) Q es true para todas las tuplas t

    en la relacin r

    Ej l d l b

  • 7/24/2019 Algebra-relacional Completa

    48/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo del banco

    branch (branch-name, branch-city, assets)

    customer (customer-name, customer-street,customer-city)

    account (account-number, branch-name,

    balance) loan (loan-number, branch-name, amount)

    depositor (customer-name, account-

    number) borrower (customer-name, loan-number)

    Ej l d lt

  • 7/24/2019 Algebra-relacional Completa

    49/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de consultas

    Buscar loan-number, branch-name, y amountpara prstamos superiores a $1200

    Buscar el loan-numberpara cada prstamo con

    una cantidad mayor que $1200

    Ntese que implcitamente queda definida la relacin [loan-number]

    en el esquema producto de la consulta.

    {t | s loan (t[loan-number] = s[loan-number] s [amount] 1200)}

    {t| t loan t[amount] 1200}

    Ej l d lt

  • 7/24/2019 Algebra-relacional Completa

    50/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Buscar los nombres de todos los clientes conun prstamo, una cuenta, o ambas cosas:

    {t | s borrower( t[customer-name] = s[customer-name]) u depositor( t[customer-name] = u[customer-name])

    Buscar los nombres de todos los clientes quetienen prstamo y cuenta en el banco:

    {t | s borrower( t[customer-name] = s[customer-name]) u depositor( t[customer-name] = u[customer-name])

    Ejemplo de consultas

    Ej l d lt

  • 7/24/2019 Algebra-relacional Completa

    51/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Buscar los nombres de todos los clientes con

    prstamo en la sucursal Perryridge:

    {t | s borrower( t[customer-name] = s[customer-name] u loan(u[branch-name] = Perryridge

    u[loan-number] = s[loan-number])) notv depositor (v[customer-name] =

    t[customer-name]) }

    Buscar los nombres de todos los clientes quetienen un prstamo otorgado por la sucursalPerryridge, pero que no tienen cuenta en ningunasucursal del banco:

    {t | s borrower(t[customer-name] = s[customer-name] u loan(u[branch-name] = Perryridge

    u[loan-number] = s[loan-number]))}

    Ejemplo de consultas

    Ej l d lt

  • 7/24/2019 Algebra-relacional Completa

    52/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Buscar nombres de todos los clientes que hantomado prstamo en la sucursal Perryridge ylas ciudades en que viven:

    {t | s loan(s[branch-name] = Perryridge u borrower (u[loan-number] = s[loan-number]

    t [customer-name] = u[customer-name]) v customer (u[customer-name] = v[customer-name]

    t[customer-city] = v[customer-city])))}

    Ejemplo de consultas

    Ej l d lt

  • 7/24/2019 Algebra-relacional Completa

    53/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Buscar los nombres de todos los clientes quetienen una cuenta en todas las sucursalesubicadas en Brooklyn:

    {t | c customer (t[customer.name] = c[customer-name]) s branch(s[branch-city] = Brooklyn

    u account ( s[branch-name] = u[branch-name] s depositor ( t[customer-name] = s[customer-name]

    s[account-number] = u[account-number] )) )}

    Ejemplo de consultas

    S id d d E i

  • 7/24/2019 Algebra-relacional Completa

    54/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Seguridad de Expresiones

    Es posible escribir expresiones de clculo de tuplas que

    generan relaciones infinitas. Por ejemplo, {t | t r} resulta en una relacin infinita si el

    dominio de uno cualquiera de los atributos de la relacin resinfinito.

    Para evitar este problema, se restringe el conjunto deexpresiones permitidas a expresiones seguras.

    Una expresin {t| P(t)} en el clculo relacional de tuplas essegura si cada componente de taparece en una de lasrelaciones, tuplas, o constantes que aparecen en P

    NOTA: Esta condicin es mas que slo una condicin sintctica. Ejemplo: { t| t[A]=5 true } no es segura --- define un conjunto

    infinito con valores de atributos que no aparecen en ninguna relacin otuplas o constantes en P.

    Cl l l i l d d i i

  • 7/24/2019 Algebra-relacional Completa

    55/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Clculo relacional de dominios

    Lenguaje de consultas no proceduralequivalente en potencialidad al clculorelacional de tuplas.

    Cada consulta es una expresin de la

    forma:{ x1, x2, , xn | P(x1,x2, , xn)}

    x1,x2, , xn representan variables de dominio Prepresenta una frmula similar a las del

    clculo de predicados.

    Ejemplo de cons ltas

  • 7/24/2019 Algebra-relacional Completa

    56/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejemplo de consultas

    Buscar loan-number, branch-name, y amount

    para prstamos superiores a $1200:

    { c, a | l( c, l borrower b( l, b, a loan

    b = Perryridge))}

    or { c, a | l( c, l borrower l, Perryridge, a loan)}

    Buscar los nombres de todos los clientes quetienen un prstamo de la sucursal Perryridge y el

    monto de dicho prstamo:

    { c | l, b, a ( c, l borrower l, b, a loan a > 1200)}

    Buscar nombres de clientes con prstamossuperiores a $1200:

    { l, b, a | l, b, a loan a > 1200}

    Ejemplo de consultas

  • 7/24/2019 Algebra-relacional Completa

    57/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Buscar los nombres de todos los clientes que

    tienen un prstamo, una cuenta ambas cosasen la sucursal Perryridge:

    { c | s, n ( c, s, n customer)

    x,y,z(x, y, z branchy= Brooklyn) a,b(x, y, z account c,a depositor)}

    Buscar los nombres de todos los clientes quetienen una cuenta en todas las sucursales

    ubicadas en Brooklyn:

    { c | l ({ c, l borrower b,a( l, b, a loan b = Perryridge))

    a( c, a depositor b,n( a, b, n account b = Perryridge))}

    Ejemplo de consultas

    Seguridad de las Expresiones

  • 7/24/2019 Algebra-relacional Completa

    58/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Seguridad de las Expresiones

    { x1, x2, , xn | P(x1,x2, , xn)}

    es segura si se cumplen todos los tres puntos siguientes:1. Todos los valores que aparecen en tuplas de la

    expresin son valores de dom(P), que significa: losvalores aparecen en Po en una tupla de una relacin

    mencionada en P.2. Para cada subfrmula existe de la forma x(P1(x)),

    dicha subfrmula es verdadera si y solamente si hay unvalor dexen dom(P1) tal que P1(x) sea verdadera.

    3. Por cada subfrmula para todo de la forma x (P1 (x)),dicha subfrmula es verdadera si y solamente si P1(x)es verdadera para todos los valoresx de dom (P1).

    Otros Lenguajes

  • 7/24/2019 Algebra-relacional Completa

    59/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Otros Lenguajes

    Los lenguajes orientados a Transformaciones

    son lenguajes no procedurales que empleanrelaciones para transformar datos de entradaen las salidas requeridas. Por ejemplo: elLenguaje estructurado de Consultas

    (Structured Query Language - SQL). Los lenguajes grficos muestran a los

    usuarios diagramas de la estructura de larelacin. El usuario llena un ejemplo de lo

    que desea y el sistema devuelve los datossolicitados en ese formato. Por ejemplo:Consultas por ejemplo (Query by example -QBE).

    Pearson Education Limited 1995, 2005

    Otros Lenguajes

  • 7/24/2019 Algebra-relacional Completa

    60/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Otros Lenguajes

    Los lenguajes de cuarta generacin (4GLs)pueden crear aplicaciones completamentepersonalizadas utilizando un conjuntolimitado de comandos en un ambiente

    amistoso al usuario, comnmentemanejado por mens. Algunos sistemas aceptan una variante de

    lenguaje natural, denominada 5GL, aunque

    este desarrollo se encuentra an en suetapa inicial.

    Pearson Education Limited 1995, 2005

    Resumen (1)

  • 7/24/2019 Algebra-relacional Completa

    61/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Resumen (1)

    El lgebra Relacional (AR) define unconjunto de operaciones sobre tablas quedevuelven como resultado tablas.

    Estas operaciones pueden combinarse para

    obtener expresiones acordes con lasconsultas deseadas. Las operaciones del AR pueden dividirse en:

    Bsicas.

    Adicionales, que pueden expresarse en trminosde las operaciones bsicas. Extendidas, algunas de las cuales aaden mayor

    poder expresivo al AR

    Resumen (2)

  • 7/24/2019 Algebra-relacional Completa

    62/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Resumen (2)

    Las Bases de Datos (BD) puedenmodificarse con: la insercin,el borrado y la actualizacin

    de tuplas.

    Se us el AR con el operador deasignacin para expresar estasmodificaciones.

    Resumen (3)

  • 7/24/2019 Algebra-relacional Completa

    63/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Resumen (3)

    Las vistas son relaciones virtuales definidas

    mediante expresiones de consulta. Constituyenmecanismos tiles para simplificar accesos a laBD. Pueden tener consecuencias desventajosas,por lo que los sistemas de BD restringen

    estrictamente las actualizaciones medianteellas. Por razones de eficiencia del procesamiento de

    las consultas, una vista puede estarmaterializada: la consulta se evala y elresultado se almacena fsicamente. Esto implicaque si las relaciones correspondientes seactualizan, debe actualizarse tambin dichavista materializada.

    Resumen (4)

  • 7/24/2019 Algebra-relacional Completa

    64/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Resumen (4)

    El clculo relacional de tuplas y elclculo relacional de dominios sonlenguajes no procedurales que poseenla potencia bsica necesaria en un

    lenguaje de consultas relacional. El lgebra relacional bsica es unlenguaje procedural que esequivalente en potencia con ambasformas del clculo relacional cuandose restringen a las expresionesseguras.

    Resumen (5)

  • 7/24/2019 Algebra-relacional Completa

    65/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Resumen (5)

    El lgebra Relacional y los ClculosRelacionales son lenguajes rgidos,formales, que no resultan adecuadospara los usuarios ocasionales de los

    sistemas de Bases de Datos. Los sistemas comerciales emplean

    alternativas que favorecen al usuariofinal:SQL: Basado en lgebra relacional.QBE: Basado en clculo relacional de

    dominios.

    Bibliografa

  • 7/24/2019 Algebra-relacional Completa

    66/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Bibliografa

    Silberschatz, Korth y SudarshanFundamentos de Bases de Datos

    Connolly y Begg Sistemas de Bases deDatos

    Date Introduccin a los Sistemas de Bases

    de Datos Ullmann Principios de los Sistemas de

    Bases de Datos Cisterna METODOS DE OPTIMIZACION DE

    CONSULTAS PARA EL LENGUAJE SQLhttp://macine.epublish.cl/tesis/index-Contents.html (visitado 2006.05.11 11:53)

    Ejercicios (1)

    http://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.html
  • 7/24/2019 Algebra-relacional Completa

    67/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejercicios (1)

    Las siguientes tablas forman parte de una BD:

    Hotel (hotelNo, hotelNombre, ciudad)Room (roomNo, hotelNo, tipo, precio)Booking(hotelNo, guestNo, dateFrom, dateTo,

    roomNo)Guest (guestNo, guestNombre, guestDireccion)

    1. Describa las relaciones que se generanmediante las siguientes operaciones dellgebra relacional:a) hotelNo(price>50000(Room))

    b) Hotel.hotelNo=Room.hotelNo(Hotel x Room)2. Proporcione las expresiones equivalentes en

    el clculo relacional de tuplas y en el dedominios.

    Ejercicios (2)

  • 7/24/2019 Algebra-relacional Completa

    68/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejercicios (2)

    3. Escriba las expresiones tanto del lgebra

    relacional, como del clculo relacional detuplas y del de dominios para responderlas siguientes consultas:

    a) Enumerar todos los hoteles

    b) Enumerar todas las habitaciones cuyo preciosea inferior a $20000c) Enumerar los nombres y ciudades de

    procedencia de todos los huspedes en el hotel

    Raddisond) Enumerar los detalles guestNo, guestNombre yguestDireccion para todos los huspedes en elhotel Sheraton

    Ejercicios (3)

  • 7/24/2019 Algebra-relacional Completa

    69/70

    N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda

    Ejercicios (3)

    Dada la siguiente Base de Datos:Empleado (nombre-empleado, calle,

    ciudad)Trabaja (nombre-empleado, nombre-

    empresa, sueldo)Empresa (nombre-empresa, ciudad)Jefe (nombre-empleado, nombre-jefe)

    1. Escriba una expresin del lgebrarelacional que permita realizar lassiguientes consultas:

    Ejercicios (4)

  • 7/24/2019 Algebra-relacional Completa

    70/70

    Ejercicios (4)

    a) Averiguar los nombres de todos los empleados

    que trabajan para la UDLAb) Averiguar el nombre, calle y ciudad de residenciade todos los empleados que ganan mas de$2000000 mensuales

    c) Averiguar el nombre de todos los empleados que

    viven en la misma ciudad donde radica la empresapara la que trabajand) Determinar la empresa con mayor nmero de

    empleadose) Determinar la compaa que paga menos nmina

    (salario de todos los empleados en conjunto)f) Dar a todos los jefes un aumento de salario del

    10% a menos que el sueldo resultante sea mayorque $2000000. Para estos casos, aumentar elsalario solamente en un 3%