algebra relacional 2

Click here to load reader

Post on 12-Jan-2016

223 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Algebra relacional segunda parte

TRANSCRIPT

  • Captulo 2

    lgebra Relacional parte 2

  • Reunin Natural

    Notacin: r s Sean r(R) y s(S), entonces r s (R S )

    S R : al esquema de S le quito los atributos que tambin estn en el esquema de R.

    R S =def R . (S R)

    r s se obtiene como sigue: o Sean tr r y ts s tal que tr y ts tienen los mismos valores

    en R S (o sea tr y ts cazan ),

    o Sea t tal que t concuerda con tr en R y t concuerda con ts en S. Entonces t r s.

  • Reunin Natural

    Relaciones r, s:

    r s

  • Reunin Natural

    Relaciones r, s:

    r s

  • Reunin Natural

    Ejemplo:

    R = (A, B, C, D)

    S = (E, B, D)

    R S = (A, B, C, D, E)

    r s = r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))

    En general:

    r s = R S (r.A1=s.A1 r.An = s.An (r x s)),

    donde R S = {A1,, An}

  • Reunin Natural

    Algunas propiedades interesantes: r(R), s(S), u(U):

    R S = r s = r x s

    R = S r s = r s

    (r s) u = (r (s u))

  • Ejemplo:

    persona(DNI, nombre,apellido)

    libro(ttulo,ISBN,editorial,edicin)

    libroBib(numInv,ISBN,nombreBib)

    prestadoA(numInv,nombreBib,DNI)

    socio(posicin,DNI)

    inscriptoEn(DNI,nombreBib)

    Obtener los ISBN de los libros prestados a Juan Prez en la biblioteca de FaMAF

  • Asignacin

    El operador asignacin () provee una manera de expresar consultas complejas.

    Escribir la consulta como un programa secuencial consistente de: 1. una serie de asignaciones,

    2. seguida de una expresin cuyo valor se muestra como resultado de la consulta.

    La asignacin se hace sobre una variable relacional temporal i.e. su valor es una tabla.

  • Asignacin

    persona(DNI, nombre,apellido)

    biblioteca(nombreBib,calle,nmero)

    bibliotecario(antigedad,DNI)

    trabajaEn(DNI,nombreBib)

    Dar las bibliotecas en las que trabajan los bibliotecarios de apellido Prez.

    r apellido=Prez (persona bibliotecario) s antigedad, DNI (r)

    nombreBib (s trabajaEn)

  • Divisin

    La operacin divisin, resulta adecuada para muchas consultas que incluyen la frase para todo o todos.

    Notacin: r s Definicin:

    Sea r(R) y s(S) donde R = (A1,,Am, B1, , Bn)

    S = (B1, , Bn)

    r s(R - S) y R - S = (A1,,Am)

    r s =def { t | t R-S(r) u s (t.u r) }

  • Divisin

    Relaciones r, s:

    r s :

  • Divisin

    Relaciones r, s:

    r s :

  • Divisin

    Sea q = r s entonces

    q es la relacin ms grande que satisface q x s r

  • Divisin: ejemplo 1

    libro(ttulo,ISBN,editorial,edicin)

    libroBib(numInv,ISBN,nombreBib)

    biblioteca(nombreBib,calle,nmero)

    Encontrar los ttulos de los libros que estn en todas las bibliotecas.

  • Divisin

    Proceso para hacer una consulta con divisin

    1. Identificar tablas a usar

    2. Reescribir consulta en espaol de modo que quede ms claro dnde se usa divisin y la divisin sea ms evidente.

    3. Identificar partes de la divisin

    A. Escribirlas primero en espaol

    B. Luego pasarlas a AR

    4. Usar proyecciones para que partes cumplan con esquemas exigidos por divisin.

    5. Escribir divisin

    6. Hacer la consulta completa en AR que involucra divisin.

  • Divisin: ejemplo 2

    course(course id, title, dept name, credits)

    student(ID, name, dept name, tot cred)

    takes(ID, course id, sec id, semester, year, grade)

    Obtener los estudiantes que han tomado todos los cursos de Biologa.

  • Agregacin

    Funcin de Agregacin: toma una coleccin de valores

    y retorna un valor simple como resultado.

    En AR se consideran las siguientes funciones de

    agregacin: avg, min, max, sum, count (cantidad de

    valores).

    Hay casos donde debemos eliminar mltipes occurren-

    cias de un valor antes de computar una funcin de

    agregacin.

    o Si queremos eliminar duplicados usamos los mismos nombres

    de funcin, con la adicin de distinct al final.

    o Ejemplo: countdistinct.

  • Agregacin

    Operacin de agregacin en AR

    F1( A1), F2( A2),, Fn(An) (E)

    o E expresin de AR

    o Cada Fi es una funcin de agregacin

    o Cada Ai es un nombre de atributo

    Semntica: el resultado tiene una tupla (a1, a2, , an) donde, para cada i, ai es el resultado de aplicar la funcin de agregacin Fi al multi-conjunto de valores del atributo Ai en E.

  • Agregacin

    Relacin r

    sum(c) (r)

  • Agregacin

    Relacin r

    sum(c) (r)

  • Agregacin

    Operacin de agregacin en AR (caso ms complejo)

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

    o E expresin de AR

    o G1, G2 , Gn lista de atributos en los cuales agrupar (puede ser vaco)

    o Cada Fi es una funcin de agregacin

    o Cada Ai es un nombre de atributo

  • Agregacin

    Semntica: Las tuplas en el resultado de la expresin E se dividen

    en grupos tales que: 1. Todas las tuplas del grupo tienen los mismos valores para

    G1, G2, , Gn. 2. Las tuplas de grupos diferentes tienen valores diferentes

    para G1, G2, , Gn.

    Para cada grupo (g1, g2, , gn) el resultado tiene una tupla (g1, g2, , gn, a1, a2, , am) donde, para cada i, ai es el resultado de aplicar la funcin

    de agregacin Fi al multiconjunto de valores del atributo Ai en el grupo.

  • Agregacin

    Encontrar el salario promedio en cada departamento

  • Agregacin

    Encontrar el salario promedio en cada departamento

    dept_name avg(salary) (instructor)

  • Agregacin

    Encontrar el salario promedio en cada departamento

    dept_name avg(salary) (instructor)

  • Ejemplo:

    bibliotecario(antigedad,DNI)

    trabajaEn(DNI,nombreBib)

    Obtener el promedio de las antigedades de los bibliotecarios que trabajan en cada

    biblioteca.

  • Reuniones Externas

    Son extensiones de la reunin natural que evitan prdida de informaciones.

    Computan la reunin natural y luego agregan tuplas de una relacin que no cazan tuplas en la otra relacin.

    Usa valores nulos

  • Reuniones Externas: ejemplo

    Comp. Sci.

    Finance

    Music

    ID dept_name

    10101

    12121

    15151

    name

    Srinivasan

    Wu

    Mozart

    ID course_id

    10101

    12121

    76766

    CS-101

    FIN-201

    BIO-101

    Relacin instructor

    Relacin teaches

  • Reunin externa a la izquierda

    instructor teaches

    Reuniones Externas: ejemplo

    Reunin natural

    instructor teaches

    ID dept_name

    10101

    12121

    Comp. Sci.

    Finance

    course_id

    CS-101

    FIN-201

    name

    Srinivasan

    Wu

    ID dept_name

    10101

    12121

    15151

    Comp. Sci.

    Finance

    Music

    course_id

    CS-101

    FIN-201

    null

    name

    Srinivasan

    Wu

    Mozart

    Calcula: Profesores que no ensean ninguna materia y profesores

    que ensean materia ms cdigo de la materia enseada.

    Es til para saber a quin hay que asignarle materia para ensear.

  • Reuniones Externas: ejemplo

    Reunin externa a la derecha

    instructor teaches

    ID dept_name

    10101

    12121

    76766

    Comp. Sci.

    Finance

    null

    course_id

    CS-101

    FIN-201

    BIO-101

    name

    Srinivasan

    Wu

    null

    ID dept_name

    10101

    12121

    15151

    76766

    Comp. Sci.

    Finance

    Music

    null

    course_id

    CS-101

    FIN-201

    null

    BIO-101

    name

    Srinivasan

    Wu

    Mozart

    null

    Reunin extrerna full

    instructor teaches

  • Reuniones Externas

    Reuniones externas pueden ser expresadas usando operadores bsicos:

    e.g. r s puede escribirse como

    (r s) U (r R(r s) x {(null, , null)}

  • Manejo de valores nulos

    El resultado de una expresin aritmtica involucrando null es null

    Las funciones de agregacin ignoran valores nulos (decisin arbitraria).

    Para eliminacin de duplicados y agrupamientos a null se lo trata como a cualquier otro valor.

  • Manejo de valores nulos

    Comparaciones (como = y ) con valores null retorna el valor de verdad unknown.

    Las comparaciones que incluyan nulos pueden aparecer dentro de expresiones booleanas con conectivos.

    Una lgica de tres valores de verdad se usa con el valor de verdad unknown. o OR: (unknown or true) = true,

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

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

    o NOT: (not unknown) = unknown

  • Manejo de valores nulos

    La operacin seleccin evala el predicado P

    en P(E) sobre cada tupla de E. Si P(t) devuelve el valor cierto, se aade t al

    resultado.

    En caso contrario, si P(t) devuelve desconocido o falso, t no se aade al resultado

    Reunin natural r s: si dos tuplas trr y tss, tienen un valor nulo en un atributo comn, entonces las tuplas no casan.

  • Manejo de valores nulos

    Proye