Download - Algebra Relacional

Transcript
  • Algebra RelacionalEl lgebra relacional consiste en un conjunto de operadores de alto nivel que operan sobre relaciones.

    Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relacin como salida.

  • Codd (1971) defini un conjunto muy especfico de ocho operadores, en dos grupos :

    Los operadores tradicionales de conjuntos unin, interseccin, diferencia y producto cartesiano.

    Los operadores relacionales especiales restriccin (seleccin), proyeccin, reunin y divisin.

  • Unin Interseccin

    Diferencia

    a

    b

    c

    x

    y

    a

    a

    b

    b

    c

    c

    x

    y

    x

    y

    x

    y

    =

    ProductoCartesiano

  • Restriccin (Seleccin)

    Proyeccin

    a1

    a2

    a3

    b1

    b1

    b2

    b1

    b2

    b3

    c1

    c2

    c3

    a1

    a2

    a3

    b1

    b1

    b2

    c1

    c1

    c2

    =

    Reunin (Join)

    a

    a

    a

    b

    c

    x

    y

    z

    x

    y

    x

    z= a

    Divisin

  • UninLa unin de dos relaciones A y B compatibles respecto a la unin, A UNION B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por todas la tuplas t pertenecientes ya sea A o a B (o a las dos).

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES

    A B

    A UNION B

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS

    { }BxAxxBA = :UU

  • InterseccinLa Interseccin de dos relaciones compatibles respecto a la unin, A INTERSECT B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por las tuplas t pertenecientes tanto a A como a B.

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES

    A B

    A INTERSECT B

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRES

    { }BxAxxBA = :I

  • DiferenciaLa Diferencia entre dos relaciones compatibles respecto a la unin, A MINUS B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por las tuplas t pertenecientes tanto a A pero no a B.

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES

    A B

    A MINUS B

    s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS

    s# snombre situacion ciudad

    S4 CORONA 20 LONDRES

    { }BxAxxBA = :

  • Producto Cartesiano

    En matemticas, el producto cartesiano de dos conjuntos es el conjunto de todos los pares ordenados de elementos tales que el primer elemento de cada par pertenece a A y el segundo elemento de cada par pertenece a B.

    A BA TIMES B

    { }ByAxyxBA = :),(

    p# cantidad

    P1 100

    P2 200

    s# snombre p# cantidad

    S1 SALAZAR P1 100

    S1 SALAZAR P2 200

    S2 JAIMES P1 100

    S2 JAIMES P2 200

    S4 CORONA P1 100

    S4 CORONA P2 200

    s# snombre

    S1 SALAZARS2 JAIMESS4 CORONA

  • Restriccin (Seleccin)Sea theta la representacin de cualquier operador de comparacin escalar simple (por ejemplo =, , =, etc.). La restriccin theta de la relacin A segn los atributosX y Y :

    A WHERE X theta Y

    es una relacin con la misma cabecera que A y con cuerpo formado por el conjunto de todas las tuplas t de A tales que la evaluacin X theta Y resulta verdadera en el caso de esa tupla t.

    A A WHERE situacion = 10s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS

    s# snombre situacion ciudad

    S2 JAIMES 10 PARIS

  • Proyeccin

    La Proyeccin de la relacin A segn los atributos X,Y,...,Z

    A[X,Y,...,Z]produce un subconjunto vertical de una relacin dada; o sea, el subconjunto obtenido mediante la seleccin de los atributos especificados y la eliminacin de las tuplas repetidas dentro de los atributos seleccionados.

    A A [s#,ciudad]s# snombre situacion ciudad

    S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS

    s# ciudad

    S1 LONDRESS4 LONDRESS2 PARIS

  • Reunin (Join)

    La operacin de reunin crea una nueva relacin utilizando dos relaciones. La nueva relacin contiene las tuplas de las relaciones A,B con los mismos valores en los atributos comunes, se combinan para crear una nueva tupla en la relacin resultante.

    a1

    a2

    a3

    b1

    b1

    b2

    b1

    b2

    b3

    c1

    c2

    c3

    a1

    a2

    a3

    b1

    b1

    b2

    c1

    c1

    c2

    A B A JOIN B

  • Divisin

    Crea una relacin a partir de dos relaciones (A,B). Los atributos de la relacin divisor (B) deben ser subconjunto (Y) de los atributos de la relacin dividendo (X,Y).

    El resultado es una relacin que tiene como atributos, aquellos que estn en la relacin dividendo y no estn en la relacin divisor (X), y cuyos elementos, son las tuplas tales que al menos hay una tupla en la relacin dividendo A, que tiene el valor de los atributos X, para cada valor de los atributos Y, contenidos en la relacin divisor B.

    A DIVIDEBY B

  • A DIVIDEBY B

    compaa localizacionC1 PUEBLAC1 GUADALAJARAC2 LEONC2 CANCUNC3 PUEBLAC3 CANCUNC3 LEON

    localizacionPUEBLACANCUN

    A B

    compaaC3

  • MinimalidadEl conjunto de operadores del algebra relacional puede ser reducido a solo cinco (denominados operadores primitivos):

    Restriccin (Seleccin)

    Proyeccin

    Unin

    Diferencia

    Producto Cartesiano

    los operadores restantes interseccin, reunin ydivisin pueden ser expresados en funcin de los operadores primitivos.

  • Implementando la Interseccin

    La interseccin se puede definir como :

    A INTERSECT B = A MINUS (A MINUS B)

    A

    B

    A MINUS B

    A (A-B)

    A INTERSECT BA MINUS (A MINUS B)

    A

    B

  • Implementando la Reunin (Join)La reunin (Join natural) se puede definir como :

    A JOIN B = ((A TIMES B) WHERE X theta Y)[m,n,..,q]

    1- (A TIMES B)producto cartesiano, produce una relacin C.

    2- (C WHERE X theta Y) restriccin, obtiene las tuplas de la relacin C que cumplan la condicin X theta Y, donde X y Y, son atributos comunes en las relaciones A,B; produce una relacin D.

    3- D[m,n,..,q] Y por ltimo se proyectan todos los atributos del la relacin D, eliminando solo uno de los atributos comunes en las relaciones originales.

  • a1

    a2

    a3

    b1

    b1

    b2

    b1

    b2

    b3

    c1

    c2

    c3

    =

    a1

    a1

    a1

    a2

    a2

    a2

    a3

    a3

    a3

    b1

    b1

    b1

    b1

    b1

    b1

    b2

    b2

    b2

    b1

    b2

    b3

    b1

    b2

    b3

    b1

    b2

    b3

    c1

    c2

    c3

    c1

    c2

    c3

    c1

    c2

    c3

    p qm n

    m n p q

    Implementando la Reunin (Join)(continuacin...)

    1- Producto Cartesiano

    A TIMES B

    C

  • a1

    a1

    a1

    a2

    a2

    a2

    a3

    a3

    a3

    b1

    b1

    b1

    b1

    b1

    b1

    b2

    b2

    b2

    b1

    b2

    b3

    b1

    b2

    b3

    b1

    b2

    b3

    c1

    c2

    c3

    c1

    c2

    c3

    c1

    c2

    c3

    m n p qC

    a1

    a2

    a3

    b1

    b1

    b2

    b1

    b1

    b2

    c1

    c1

    c2

    m n p qD

    C WHERE n = p

    2- Restriccin (Seleccin)

    Implementando la Reunin (Join)(continuacin...)

  • a1

    a2

    a3

    b1

    b1

    b2

    b1

    b1

    b2

    c1

    c1

    c2

    m n p q

    D [m,n,q]

    3- Proyeccin

    a1

    a2

    a3

    b1

    b1

    b2

    c1

    c1

    c2

    m n q

    A JOIN B

    Implementando la Reunin (Join)(continuacin...)

  • Implementando la Divisin

    La divisin se puede definir como :

    Supongamos que A tiene los atributos X y Y y B tiene el atributo Y, (X y Y pueden ser compuestos).

    A DIVIDEBY B =

    A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]

  • A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]1:A

    2:C

    3:D

    4:E

    5:A

    6:A DIVIDEBY B

    Implementando la Divisin(continuacin...)

  • 1- A[X] se realiza el parentesis ms interno y existe una proyeccin, produce la relacin A.

    2- A TIMES Bproducto cartesiano, entre la proyeccin A y B, produce una relacin C.

    3- C MINUS Adiferencia, entre el producto cartesiano C y la relacin A, produce la relacin D.

    4- D[X]proyeccin, de la relacin D en el atributo X, produce la relacin E.

    5- A[X]proyeccin, de la relacin A en el atributo X, produce A.

    6- A MINUS Ediferencia, entre las dos proyecciones, produce finalmente la equivalencia a la divisin.

    Implementando la Divisin(continuacin...)

  • Ejemplo :

    a

    a

    a

    b

    c

    x

    y

    z

    x

    y

    x

    z =a

    A DIVIDEBY B

    A

    BX Y

    Y

    Implementando la Divisin(continuacin...)

  • A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]1:A

    a

    b

    c

    A

    X

    a

    a

    a

    b

    c

    x

    y

    z

    x

    y

    A

    X Y

    A[X] =

    Implementando la Divisin(continuacin...)

  • A[X] MINUS ( ( A TIMES B ) MINUS A )[X]

    a

    b

    c

    A

    X

    =

    2:C

    x

    z

    B

    Y a

    a

    b

    b

    c

    c

    x

    z

    x

    z

    x

    z

    A TIMES B

    X Y

    C

    Implementando la Divisin(continuacin...)

  • A[X] MINUS ( C MINUS A )[X]

    =

    3:D

    X Y

    C

    a

    a

    a

    b

    c

    x

    y

    z

    x

    y

    A

    X Y

    C MINUS A

    b

    c

    c

    z

    x

    z

    X Y

    D

    a

    a

    b

    b

    c

    c

    x

    z

    x

    z

    x

    z

    Implementando la Divisin(continuacin...)

  • A[X] MINUS ( D )[X]

    =

    4:E

    D[X]

    b

    c

    c

    z

    x

    z

    X Y

    D

    b

    c

    X

    E

    Implementando la Divisin(continuacin...)

  • A[X] MINUS E

    b

    c

    E

    5:A

    a

    b

    c

    A

    A MINUS E = a

    A DIVIDEBY B

    Implementando la Divisin(continuacin...)


Top Related