Aplicación práctica de los Operadores del Álgebra Relacional PDF

Title Aplicación práctica de los Operadores del Álgebra Relacional
Author Cosme Power
Course Diseño y Administración de Base de Datos
Institution Universidad Tecnológica Nacional
Pages 7
File Size 523.5 KB
File Type PDF
Total Downloads 17
Total Views 133

Summary

Aplicación práctica de los Operadores del Álgebra Relacional...


Description

16/8/2017

Lectura 3 - Álgebra Relacional: Select, Project, Join — Curso ALMA SQL

Algebra, en general, consiste de operadores y operandos atómicos, por ejemplo, en el álgebra de la aritmética, los operandos atómicos son variable como

r r , y constantes como 15. Los operadores son los usuales en la aritmética: Suma, Resta, Multiplicación, División. Cualquier álgebra nos permite construir expresiones mediante la aplicación de operadores a operandos atómicos y/o otras expresiones del álgebra. En general, los paréntesis son necesarios para agrupar operadores y sus operandos, por ejemplo, en aritmética tenemos expresiones tales como

(x + y) ∗ z (x+y)∗zó ((x + 7)/(y − 3)) + x

((x+7)/(y−3))+x .

El Álgebra Relacional es otro ejemplo del álgebra. Sus operandos atómicos son: 1. Variables que representan relaciones. 2. Constantes que son relaciones finitas.

En algunos textos de álgebra relacional o SQL, una relación es sinónimo de una tabla.

Como mencionamos, en el álgebra relacional clásica, todos los operandos y sus resultados de expresiones son conjuntos. Los operadores del álgebra relacional tradicional se divide en cuatro grandes categorías: a. Los conjuntos habituales de operacionesunión,intersección, ydiferenciase aplica a las relaciones. b. Las operaciones que eliminan parte de una relación:selecciónelimina algunas , yproyecciónelimina algunas . c. Las operaciones que combinan las tuplas de dos relaciones, como elproducto cartesiano, que empareja las tuplas de dos relaciones en todas las maneras posibles y varios tipos de operadoresunión, los cuales forman parejas de tuplas de dos relaciones selectivamente. d. Una operación llama “renombrar” que no afecta las tuplas de una relación, pero que cambia el esquema de relación, es decir, lo nombres de los atributos y/o los nombres de la relación misma. Debemos por lo general referirnos a las expresiones del álgebra relacional como consultas. A pesar de que aún no tengan los símbolos necesarios para mostrar muchas de las expresiones del algebra relacional, se debería familiarizar con las operaciones de

; y por lo tanto reconocer:

R ∪ S R∪S como un ejemplo de una expresión de álgebra relacional. Donde RR y SS son operandos atómicos para relaciones, cuyos conjuntos de tuplas son desconocidas. Esta consulta pregunta por launiónde cualquiera tuplas que están en las relaciones nombradas R Ry SS . Las tres operaciones más comunes en conjuntos sonunión,intersección, ydiferencia, que serán vistas en la lectura 4.

Resumiendo

se define como un conjunto de operaciones que se ejecutan sobre las relaciones (tablas) para obtener un resultado, el cual es otra

relación.

Los operadores relacionales se utilizan para filtrar, cortar o combinar tablas.

Este operador se aplica a una relaciónR Rproduciendo una nueva relación con un subconjunto de tuplas deR R . Las tuplas de la relación resultante son las que satisfacen una condiciónC Csobre algún atributo de R R. Es decir selecciona de una tabla según un cierto criterioC C. El criterio C C es una expresión condicional, similar a las declaraciones del tipo “if”, es “booleana” esto quiere decir que para cada tupla de RR toma el valor Verdad(true) o Falso(false). Valores de atributos con “NULL” no cumplirán ninguna condición. Cada condición simple o cláusula C tiene el formato: , ,}.

donde,

el

= =: símbolo de igual que. ≠ ≠: significa no igual a, en algunos libros este símbolo esta representado por!=. ≥ ≥: mayor que o igual a. > >: mayor que. < 4 (once mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 1130 Ingenieros σedad>30Ingenieros

En la imagen se ve que selecciona solo las filas que cumplen con la condición que se pedía (tener una edad mayor a 30 años), la tupla de “Josefa” queda fuera de la selección por no cumplir la condición (pues 25 < 30). De esta forma la tabla queda:

Tabla Ingenieros Tabla Ingenieros

id 123 234 345

nombre Leon Tomas Jose

edad 39 34 45

a osTrabajados 15 10 21

idnombreedadañosTrabajados123Leon3915234Tomas3410345Jose4521

Seleccionar de la tabla Ingenieros Ingenieroslas personas que tienen más de 30 años y que lleven menos de 16 años trabajando:

σ (edad>30∧añosTrabajados30∧añosTrabajados30 Ingenieros)

π(id,nombre)(σedad>30Ingenieros)

Se aprecia que las tuplas que no cumplan con la condición de selección quedan fuera del resultado, luego se realiza un Projectsobre las filas del resultado, separando solo las columnas que contienen los atributos id y nombre. Finalmente la tabla queda de la siguiente manera:

Tabla Ingenieros Tabla Ingenieros

id 123 234 345

nombre Leon Tomas Jose

idnombre123Leon234Tomas345Jose

En teoría de conjuntos, elproducto cartesianode dos conjuntos es una operación que resulta en otro conjunto cuyos elementos son todos los pares ordenados que pueden formarse tomando el primer elemento del par del primer conjunto, y el segundo elemento del segundo conjunto. En el Álgebra Relacional se mantiene esta idea con la diferencia que RR yS S son relaciones, entonces los miembros de R R y S S son tuplas, que generalmente consisten de más de un componente, cuyo resultado de la vinculación de una tupla de RR  con una tupla de SS es una tupla más larga, con un componente para cada uno de los componentes de las tuplas constituyentes. Es decirCross-productdefine una relación que es la concatenación de cada una de las filas de la relaciónR Rcon cada una de las filas de la relación SS.

Para representarCross-producten Álgebra Relacional se utiliza la siguiente terminología:

R×S R×S

Por convención para la sentencia anterior, los componentes de R Rpreceden a los componentes de S Sen el orden de atributos para el resultado, creando así una nueva relación con todas las combinaciones posibles de tuplas de R Ry SS. El número de tuplas de la nueva relación resultante es la multiplicación de la cantidad de tuplas deR R por la cantidad de tuplas que tengaS S(producto de ambos). SiR RyS Stienen algunos atributos en común, entonces se debe inventar nuevos nombres para al menos uno de cada par de atributos idénticos. Para eliminar la ambigüedad de un atributo , que se encuentra en R RyS S, se usaR. a R.a para el atributo deR RyS. a S.apara el atributo de SS. Cabe mencionar que por notación que: R

× S ≠ S × R R×S≠S×R

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html

3/7

16/8/2017

Lectura 3 - Álgebra Relacional: Select, Project, Join — Curso ALMA SQL

Con las tablas dadas realice elCross-productde R Rcon SS:

Con azul se resaltan las tuplas que provienen deR Rque preseden y se mezclan con las de S Sresaltadas en verde. Con las tablas dadas realice elCross-productde S SconR R:

Dada las siguientes tablas:

Tabla Ingenieros Tabla Ingenieros

id 123 234 143

nombre Leon Tomas Josefa

d# 39 34 25

idnombred#123Leon39234Tomas34143Josefa25

Tabla Proyectos Tabla Proyectos

proyecto ACU0034 USM7345

duracion 300 60

proyectoduracionACU0034300USM734560 Escriba la tabla resultante al realizar la siguiente operación:

Ingenieros × Proyectos Ingenieros×Proyectos

Ingenieros × Proyectos Ingenieros×Proyectos

id nombre 123 Leon 123 Leon 234 Tomas 234 Tomas 143 Josefa 143 Josefa

d# 39 39 34 34 25 25

proyecto ACU0034 USM7345 ACU0034 USM7345 ACU0034 USM7345

duracion 300 60 300 60 300 60

idnombred#proyectoduracion123Leon39ACU0034300123Leon39USM734560234Tomas34ACU0034300234Tomas34USM734560143Josefa25ACU003430

Este operador se utiliza cuando se tiene la necesidad de unir relaciones vinculando sólo las tuplas que coinciden de alguna manera.NaturalJoinune sólo los pares de tuplas deR R ySS que sean comunes. Más precisamente una tupla r deR Ry una tupla s deS Sse emparejan correctamente si y sólo si r y s coinciden en cada uno de los valores de los atributos comunes, el resultado de la vinculación es una tupla, llamada . Entonces, al realizarNaturalJoinse obtiene una relación con los atributos de ambas relaciones y se obtiene combinando las tuplas de ambas relaciones que tengan el mismo valor en los atributos comunes.

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html

4/7

16/8/2017

Lectura 3 - Álgebra Relacional: Select, Project, Join — Curso ALMA SQL

Para denotarNaturalJoinse utiliza la siguiente simbología: R

⊳⊲ S R⊳⊲S.

NaturalJoinpuede ser escrito en términos de algunos operadores ya vistos, la equivalencia es la siguiente:

R ⊳⊲ S = π

(σR.A 1=S. A1∧...∧R.An =S.An

R.A1 ,...,R.A n ,S.A1 ,...,S.An

(R × S))

R⊳⊲S=πR.A1,...,R.An,S.A1,...,S.An(σR.A1=S.A1∧...∧R.An=S.An(R×S))

1. Se realiza el producto cartesiano R

× S R×S.

2. Se seleccionan aquellas filas del producto cartesiano para las que los atributos comunes tengan el mismo valor. 3. Se elimina del resultado una ocurrencia (columna) de cada uno de los atributos comunes.

R R

a 1 4

b 2 5

c 3 6

abc123456

S S

c 7 6 3

d 5 2 4

cd756234 Con las tablas dadas realice elNaturalJoinde RRy S S:

El atributo que tienen en comúnRR yS Ses el atributo , entonces las tuplas se unen donde tiene el mismo valor en RRyS S

R ⊳⊲ S R⊳⊲S

a b 1 2 4 5

c d 3 4 6 2

abcd12344562

RealizarNaturalJoina las siguientes tablas:

Tabla Ingenieros Tabla Ingenieros

id nombre 123 Leon 234 Tomas 143 Josefa 090 Maria

d# 39 34 25 34

idnombred#123Leon39234Tomas34143Josefa25090Maria34

Tabla Proyectos Tabla Proyectos

d# 39 34

proyecto ACU0034 USM7345

d#proyecto39ACU003434USM7345

Ingenieros ⊳⊲ Proyectos Ingenieros⊳⊲Proyectos

id 123 234 090

nombre Leon Tomas Maria

d# 39 34 34

proyecto ACU0034 USM7345 USM7345

idnombred#proyecto123Leon39ACU0034234Tomas34USM7345090Maria34USM7345

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html

5/7

16/8/2017

Lectura 3 - Álgebra Relacional: Select, Project, Join — Curso ALMA SQL

Define una relación que contiene las tuplas que satisfacen el predicado C Cen elCross-Productde R

× S R×S. Conecta relaciones cuando los valores de

determinadas columnas tienen una interrelación específica. La condición C Ces de la formaR.ai S.bi, esta condición es del mismo tipo que se utilizaSelect. El predicado no tiene por que definirse sobre atributos comunes. El término “join” suele referirse aThetaJoin.

La notación deThetaJoines el mismo símbolo que se utiliza paraNaturalJoin, la diferencia radica en queThetaJoinlleva el predicado

C C:

R ⊳⊲ C S R⊳⊲CS

C = Donde:

∈ {=, ≥, >, ,=e) S R⊳⊲(a>=e)S

Se compara el atributo de la primera fila de R Rcon cada uno de los valores del atributo de la tabla S S . En este caso ninguna de las comparaciones devuelve el valor verdadero (true).

Luego se compara el atributo  de la segunda fila de R R con cada uno de los valores del atributo  de la tabla SS. En este caso 2 comparaciones devuelven el valor verdadero (true), por lo que en la relación de resultado quedará la segunda fila de R Rmezclada con la primera y tercera fila de S S.

De igual forma ahora se compara el valor de de la tercera tupla de RR, nuevamente 2 tuplas deS Scumplen con la condición.

S S

R.a 3 3 2 2

b R.c 2 9 2 9 3 5 3 5

d 1 1 4 4

S.a 1 3 1 3

S.c 5 9 5 9

e 2 2 2 2

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html

6/7

16/8/2017

Lectura 3 - Álgebra Relacional: Select, Project, Join — Curso ALMA SQL

R.abR.cdS.aS.ce3291152329139223541522354392

Con el esquema conceptual siguiente, hallar los nombres de los directores de cada departamento:

Dpto(numDpto , nombre, nIFDirector, fechaInicio)

Dpto(numDpto_, nombre, nIFDirector, fechaInicio)

Empleado( nIF , nombre, direccion, salario, dpto, nIFSupervisor) −−−

Empleado(nIF_, nombre, direccion, salario, dpto, nIFSupervisor)

π (Dpto.nombre,empleado.nombre) (Dpto ⊳⊲ nIFDirector=NIF Empleado) π(Dpto.nombre,empleado.nombre)(Dpto⊳⊲nIFDirector=NIFEmpleado) Tuplas con “Null” en los “Atributos de la Reunión”, no se incluyen en el resultado.

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html

7/7...


Similar Free PDFs