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 , 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+7)/( y−3))+ x. 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 como un ejemplo de una expresión de álgebra relacional. Donde R y y S 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 y y S. 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 produciendo una nueva relación con un subconjunto de tuplas de R . Las tuplas de la relación resultante son las que satisfacen una condición C sobre de R.. Es decir selecciona C sobre algún atributo de R de una tabla según un cierto criterio C . El criterio C es una expresión condicional, similar a las declaraciones del tipo “if”, es “booleana” esto quiere decir
que para cada tupla de R toma 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 campo Comparador es un , que pueden ser {=,≥,>,<,≠,≤}. = : 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. <: menor que. ≤: menor que o igual a. o
o
o
o
o
o
Los que se utilizan, también llamados operadores relacionales, nos proporcionan un resultado a partir de que se cumpla o no una cierta condición. Son símbolos que se usan para comparar dos valores. Si el resultado de la
comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 11>4 (once mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 11<4 (once menor que cuatro) es falsa se representa por el valor false. Las cláusulas C pueden conectarse con otros operadores lógicos, que al igual que los anteriores que se usaban como comparador (entre atributos o atributo y constante), arrojan booleano (true o false) de resultado:
: El operador NOT denota una salida verdadera si la entrada es falsa, y una salida falsa si la entrada es verdadera. Su notación en algebra es: ¬ C1. : El operador AND denota una salida verdadera si y sólo si sus entradas son verdaderas. Si C1 se cumple y C2 también se cumple, la salida será verdadera. La notación en algebra de un AND es: C1 ∧ C2. : El operador OR denota una salida verdadera si hay alguna de las entradas (o ambas) verdaderas. Si C1 y/o C2 es o son verdaderas, la expresión será verdadera. La notación en algebra de un OR es: C1 ∨ C2.
Para representar Select en álgebra relacional se utiliza la letra griega sigma σ . Por lo tanto, si utilizamos la notación σ c R queremos decir que se aplica la condición C a cada tupla de R . Si la condición es Verdad true, dicha tupla pertenecerá al resultado y si es Falsa false, dicha tupla no será seleccionada. El esquema de la relación resultante es el mismo esquema R , se muestran los atributos en el mismo orden que se usan en la tabla R .
Tabla Ingenieros id123234345143 nombreLeonTomasJoseJosefaedad39344525 a osTrabajad os1510211 Seleccionar las tuplas de la tabla Ingenieros que cumplan con tener una edad mayor a 30 años:
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 id123234345 nombreLeonTomasJoseedad393445a osTrabajados151021
Seleccionar de la tabla Ingenieros las personas que tienen más de 30 años y que lleven menos de 16 años trabajando:
(edad>30∧añosTrabajados<16) Ingenieros
σ
Al tener el operador lógico AND se pide que cumplan dos condiciones simultáneamente. Primero que la edad sea mayor de 30 años, al igual que en el ejemplo anterior, la tupla de “Josefa” queda fuera de la selección. Luego de las
tuplas que quedan se evalúa la segunda condición. En la imagen se aprecia, que solo se seleccionan las filas que no tengan X en alguna de las condiciones. Así finalmente quedaría la tabla: Tabla Ingenieros id123234 nombreLeonTomas edad3934a osTrabajados1510
El operador Proyección se utiliza para producir una nueva relación desde R . Esta nueva relación contiene sólo algunos de los atributos de R , es decir, realiza la selección de algunas de las de una tabla R .
Project en
Álgebra Relacional se representa por la letra griega
:
( ,..., An)R
π A1
El resultado es una relación seleccionando solo los atributos A1,..., An de la relación R . Si A1,..., An no incluye una llave (o clave), podrían producirse tuplas repetidas en el resultado, las cuales serán eliminadas.
Tabla Ingenieros id123234345143 nombreLeonTomasJoseJosefaedad39344525 a osTrabajad os1510211 Escoger columnas de id y nombre de la tabla de Ingenieros:
(id,nombre)Ingenieros
π
La tabla finalmente queda como: Tabla Ingenieros id123234345143 nombreLeonTomasJoseJosefa
Seleccionar id y nombre de los Ingenieros que tienen más de 30 años.
(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 Project sobre 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
id123234345 nombreLeonTomasJose
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 R y S son relaciones, entonces los miembros de R y S son tuplas, que generalmente consisten de más de un componente, cuyo resultado de la vinculación de una tupla de R con una tupla de S es una tupla más larga, con un componente para cada uno de los componentes de las tuplas constituyentes. Es decirCross-product define una relación que es la concatenación de cada una de las filas de la relación R con cada una de las filas de la relación S.
Para representar Cross-product en Álgebra Relacional se utiliza la siguiente terminología:
R×S Por convención para la sentencia anterior, los componentes de R preceden a los componentes de S en el orden de atributos para el resultado, creando así una nueva relación con todas las combinaciones posibles de tuplas de R y S. El número de tuplas de la nueva relación resultante es la multiplicación de la cantidad de tuplas de R por la cantidad de tuplas que tenga S (producto de ambos). Si R y 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 a , que se encuentra en R y S, se usa R.a para el atributo de R y S .a para el atributo de S. Cabe mencionar que por notación que: R×S≠S×R
Con las tablas dadas realice el Cross-product de R con S:
Con azul se resaltan las tuplas que provienen de R que preseden y se mezclan con las de S resaltadas en verde. Con las tablas dadas realice el Cross-product de S con R :
Dada las siguientes tablas: Tabla Ingenieros id123234143 nombreLeonTomasJosefad#393425 Tabla Proyectos proyectoACU0034USM7345 duracion30060
Escriba la tabla resultante al realizar la siguiente operación: Ingenieros×Proyectos
Ingenieros×Proyectos id123123234234143143 nombreLeonLeonTomasTomasJosefaJosefa d#39393 4342525proyectoACU0034USM7345ACU0034USM7345ACU0034USM73 45duracion300603006030060
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 y S que sean comunes. Más precisamente una tupla r de R y una tupla s de 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.
Para denotar NaturalJoin se utiliza la siguiente simbología: R ⊳⊲S.
puede ser escrito en términos de algunos operadores ya vistos, la equivalencia es la siguiente: NaturalJoin
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 . 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 a14b25c36 S
c763d524 Con las tablas dadas realice el NaturalJoin de R y S:
El atributo que tienen en común R y S es el atributo c , entonces las tuplas se unen donde c tiene el mismo valor en R y S R ⊳⊲S a14b25c36d42
Realizar NaturalJoin a las siguientes tablas: Tabla Ingenieros id123234143090 nombreLeonTomasJosefaMaria d#39342534 Tabla Proyectos d#3934proyectoACU0034USM7345
Ingenieros⊳⊲Proyectos id123234090 nombreLeonTomasMaria d#393434 proyectoACU0034USM734
5USM7345 Define una relación que contiene las tuplas que satisfacen el predicado C en el Cross-Product de R×S. Conecta relaciones cuando los valores de determinadas columnas tienen una interrelación específica. La condición 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 :
R ⊳⊲C S C = rador> ∈
{=,≥,>,<,≠,≤}
Donde:
Al igual NaturalJoin , ThetaJoin puede ser escrito en función de los operadores vistos anteriormente: R⊳⊲C S= σ F ( R×S )
1. Se forma el producto cartesiano R×S . 2. Se selecciona, en el producto, solo la tupla que cumplan la condición C .
R a132b323c595d714 S a1132c5593e2927 Escriba la tabla resultante al realizar la siguiente operación: R⊳⊲(a >= e)S
Se compara el atributo a de la primera fila de R con cada uno de los valores del atributo e de la tabla S . En este caso ninguna de las comparaciones devuelve el valor verdadero (true).
Luego se compara el atributo a de la segunda fila de R con cada uno de los valores del atributo e de la tabla S. 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 mezclada con la primera y tercera fila de S.
De igual forma ahora se compara el valor de a de la tercera tupla de R, nuevamente 2 tuplas de S cumplen con la condición. S R.a3322b2233R.c9955d1144S.a1313S.c5959e2222
Con el esquema conceptual siguiente, hallar los nombres de los directores de cada departamento:
Dpto(numDpto−−−−−−−−, nombre, nIFDirector, fechaInicio) Empleado(nIF−−−, nombre, direccion, salario, dpto, nIFSupervisor)
(Dpto.nombre,empleado.nombre)(Dpto⊳⊲nIFDirector=NIFEmpleado)
π
Tuplas con “Null” en los “Atributos de la Reunión”, no se incluyen en el
resultado.
Considere la siguiente base de datos: 1. Persona(nombre−−−−−−, edad, genero) : nombre es la clave. 2. Frecuenta(nombre, (nombre, pizzeria−−−−−−−−−−−−−) : pizzeria) es la clave. 3. Come(nombre, pizza−−−−−−−−−−−) : (name, pizza) es la clave. 4. Sirve(pizzeria, pizza−−−−−−−−−−−, precio): (pizzeria, pizza) es la clave. Escribir expresiones en álgebra relacional para las siguientes dos preguntas:
Seleccionar a las personas que comen pizzas con extra queso. Seleccionar a las personas que comen pizzas con extra queso y frecuentan la pizzería X.
En matemáticas, se denomina a las operaciones básicas que pueden realizarse con conjuntos, como la unión, intersección, etc. Un es una colección de objetos considerada como un objeto en sí. La Unión de dos conjuntos A y B es el conjunto que contiene todos los elementos de A y de B. El símbolo ∪es el utilizado para representar Unión. El operador Unión es es decir A∪B=B∪A. Cabe recordar que una operación es cuando el resultado de la operación es el mismo, cualquiera que sea el orden de los elementos con los que se opera.
De manera análoga, la Unión de dos relaciones R y S, es otra relación que contiene las tuplas que están en R , o en S, o en ambas, eliminándose las tuplas duplicadas. R yS deben ser , es decir, definidas sobre el mismo conjunto de atributo (R y S deben tener . Deben poseer las mismas columnas y su orden debe ser el mismo).
R ∪S Si se realiza R ∪S es lo mismo que S∪R , es decir se obtiene el mismo resultado. Esto debido a la propiedad de conmutatividad derivada de la álgebra de conjuntos.
Dadas las siguientes relaciones: Tabla Ingenieros id123234345143 nombreLeonTomasJoseJosefa edad39344525 Tabla Jefes
id123235nombreLeonMaria edad3929 Aplicar el operador Unión : Tabla Ingenieros∪Jefes id123234345143235 nombreLeonTomasJoseJosefaMariaedad3934452529 Como se mencionó anteriormente, realizar la operación Jefes∪Ingenieros daría como resultado la misma tabla anterior, debido a la propiedad de conmutatividad.
Volviendo a la analogía de álgebra de conjuntos, la diferencia entre dos conjuntos A y B es el conjunto que contiene todos los elementos de A que no pertenecen a B. A− B
B− A
Como se aprecia en las imágenes la operación Diferencia , en conjuntos, no es conmutativa, al igual que la resta o sustracción, operador aprendido en aritmética básica. Es decir, si se cambia el orden de los conjuntos a los que se aplica la operación Diferencia , se obtendrán resultados distintos. Por lo tanto:
A−B≠B−A De la misma forma la diferencia de dos relaciones R y S, es otra relación que contiene las tuplas que están en la relación R , pero no están en S. R y S deben ser (deben tener esquemas idénticos).
R−S
Es importante resaltar que R−S es diferente a S−R .
Empleando las mismas tablas dadas en realice Ingenieros−Jefes y Jefes−Ingenieros: Ingenieros - Jefes
el
ejemplo
anterior,
id234345143 nombreTomasJoseJosefaedad344525 Jefes - Ingenieros id235nombreMariaedad29 Como se puede apreciar, ambas operaciones dieron como resultado distintas relaciones, tal como se había mencionado anteriormente.
En álgebra de conjuntos la Intersección de dos conjuntos A y B es el conjunto que contiene todos los elementos comunes de A y B. El símbolo ∩ representa laIntersección de dos conjuntos. Al igual que el operador Unión, Intersección es conmutativo, entonces se cumple que A∩B=B∩A . A∩B
De forma homóloga en álgebra relacional, Intersección define una relación que contiene las tuplas que están tanto en la relación R como en S. R y S deben ser (mismos atributos y mismo orden).
R∩S Si se realiza R∩S es lo mismo que S∩R , es decir se obtiene el mismo resultado, se puede decir que Intersección .
R∩S=R−(R−S)
Utilizando las mismas tablas del ejemplo anterior, encontrar la Intersección de la tabla de Ingenieros con la de Jefes: Ingenieros∩Jefes id123nombreLeonedad39
Para aplicar estas operaciones a relaciones, necesitamos que
R y S sean
:
R y S deben tener esquemas con conjuntos de atributos idénticos, y de tipos (dominios) para cada atributo deben ser las mismas en R y S.
Antes de computar el conjunto-teórico unión, intersección, o diferencia de conjuntos de tuplas, las columnas de R y S deben ser ordenadas para que el orden de los atributos sean los mismos para ambas relaciones.
Algunas de las operaciones que se han descrito en las lecturas 3 y 4, pueden ser expresadas en términos de operadores de algebra relacional. Por ejemplo, la intersección puede ser expresada en términos de conjuntos de diferencia: R∩S=R−(R−S). Es decir, si R y S son dos relaciones con el mismo esquema, la intersección de R y S puede ser resuelta restando primero S de R para formar una relación T que consiste en todas aquellas tuplas en R pero no en S. Cuando se resta T de R , dejamos solo esas tuplas de R que están también en S.
Hay dos maneras en las cuales podemos usar expresiones de algebra relacional para expresar restricción: 1. Si R es una expresión de algebra relacional, entonces R=0 es una restricción que dice “El valor de
R debe
ser vacio,” o equivalentemente “No hay tuplas en el
resultado de R .” 2. Si R y S son expresiones de algebra relacional, entonces R ⊂S es una restricción que dice “Cada tupla en resultado de R debe estar también en resultado de S.” Por supuesto, el resultado de S puede contener tuplas adicionales no producidas en R . Estas formas para expresar restricción son de hecho equivalentes en lo que pueden expresar, pero algunas veces uno de los dos es más clara o más sucinta. Es decir, la restricción R ⊂S pudo también ser escrito R−S=0. Para ver por qué, observe que si cada tupla en R está también en S, entonces seguramente R−S es vacío. A la
inversa, si R−S no contiene tuplas, entonces cada tupla en R debe estar en S (o de lo que sería R−S). Por otra parte, una restricción de la primera forma, R=0, también pudo haber sido escrita como R ⊂0. Técnicamente, 0 no es una expresión de algebra relacional, pero ya que hay expresiones que evalúan a 0, tal como R−R , no hay nada malo en usar 0 como una expresión de algebra relacional. Tenga en cuenta que estas equivalencias sostienen se sostienen incluso si R y S son bolsas, dado que hacemos la interpretación convencional de R ⊂S: cada tupla t aparece en S al menos tantas veces como aparece en R .
Las relaciones base que forman la base de datos de un video club son las siguientes:
Socio(codsocio−−−−−−−,nombre,direccion,telefono) : almacena los datos de cada uno de los socios del video club: código del socio, nombre, dirección y teléfono. Pelicula(codpeli−−−−−−,titulo,genero) : almacena información sobre cada una de las películas de las cuales tiene copias el vídeo club: código de la película, título y género (terror, comedia, etc.). Cinta(codcinta−−−−−−−,codpeli) : almacena información referente a las copias que hay de cada película (copias distintas de una misma película tendrán distinto código de cinta). Prestamo(codsocio,codcinta,fecha−−−−−−−−−−−−−−−−−−,presdev): almacena información de los préstamos que se han realizado. Cada préstamo es de una cinta a un socio en una fecha. Si el préstamo aún no ha finalizado, presdev tiene el valor „prestada‟; si no su valor es „devuelta‟.
almacena ListaEspera(codsocio,codpeli−−−−−−−−−−−−,fecha): información sobre los socios que esperan a que haya copias disponibles de películas, para tomarlas prestadas. Se guarda también la fecha en que comenzó la espera para mantener el orden. Es importante tener en cuenta que cuando el socio consigue la película esperada, éste desaparece de la lista de espera.
En las relaciones anteriores, son claves primarias los atributos y grupos de atributos que aparecen en negrita. Las claves ajenas se muestran en los siguientes diagramas referenciales: Resolver las siguientes consultas mediante el álgebra relacional (recuerde que en la lectura 3 también se dieron algunos operadores de álgebra relacional):
1.1. Seleccionar todos los socios que se llaman: “Charles”.
nombre='Charles'(Socio)
σ
1.2. Seleccionar el código socio de todos los socios que se llaman: “Charles”.
codsocio(σ nombre='Charles'(Socio))
π
1.3. Seleccionar los nombres de las películas que se encuentran en lista de espera.
titulo(Pelicula⊳⊲ListaEspera)
π
1.4. Obtener los nombres de los socios que esperan películas.
nombre(Socio⊳⊲ListaEspera)
π
1.5. Obtener los nombres de los socios que tienen actualmente prestada una película que ya tuvieron prestada con anterioridad.
nombre({(Prestamo⊳⊲(presdev='prestada')Cinta)∩(Prestamo⊳⊲(presdev='devuelta')Cint
π
a)}⊳⊲Socio) 1.6. Obtener los títulos de las películas que nunca han sido prestadas.
titulo{(π codpeliPelicula− π codpeli(Prestamo⊳⊲Cinta))⊳⊲Pelicula}
π
(todas las películas) menos (las películas que han sido prestadas alguna vez) 1.7. Obtener los nombres de los socios que han tomado prestada la película “WALL*E” alguna vez o que están esperando para tomarla prestada.
nombre(σ titulo='WALL*E'(Socio⊳⊲Prestamo⊳⊲Cinta⊳⊲Pelicula)∪σ titulo='WALL*E '(Socio⊳⊲ListaEspera⊳⊲Pelicula))
π
1.8. Obtener los nombres de los socios que han tomado prestada la película “WALL*E” alguna vez y que además están en su lista de espera.
nombre(σ titulo='WALL*E'(Socio⊳⊲Prestamo⊳⊲Cinta⊳⊲Pelicula)∩σ titulo='WALL*E '(Socio⊳⊲ListaEspera⊳⊲Pelicula))
π
Considere la base de datos con el siguiente esquema: 1. Persona(nombre−−−−−−, edad, genero) : nombre es la clave. 2. Frecuenta(nombre, (nombre, pizzeria −−−−−−−−−−−−−) : pizzeria) es la clave. 3. Come(nombre, pizza−−−−−−−−−−−) : (name, pizza) es la clave. 4. Sirve(pizzeria, pizza−−−−−−−−−−−, precio): (pizzeria, pizza) es la clave. Escribir las expresiones de álgebra relacional para las siguientes nueve consultas. (Precaución: algunas de las siguientes consultas son un poco desafiantes).
Encuentre todas las pizzerías frecuentadas por al menos una persona menor de 18 años. Encuentre los nombres de todas las mujeres que comen pizza ya sea con champiñones o salchichón (o ambas). Encuentre los nombres de todas las mujeres que comen pizzas con los dos ingredientes, champiñones y salchichón. Encuentre todas las pizzerías que sirven al menos una pizza que Amy come por menos de 10 dólares. Encuentre todas las pizzerías que son frecuentadas por solo mujeres o solo hombres. Para cada persona, encuentre todas las pizzas que la persona come, que no son servidas por ninguna pizzería que la persona frecuenta. Devuelve toda dicha persona (nombre)/ pizza pares. Encuentre los nombres de todas las personas que frecuentan solo pizzerías que sirven al menos una pizza que ellos comen. Encuentre la pizzería que sirve la pizza más barata de salchichón. En el caso de empate, vuelve todas las pizzer
Algebra Relacional Conjunto de operaciones para manipular las tuplas de las relaciones o tablas. El resultado de cada operación es una nueva relación que podemos manipular posteriormente.
Operaciones - Seleccionar () - Proyectar () - Operaciones de Teoría de Conjuntos: Unión (), Intersección (), Diferencia (-), Producto Cartesiano (X). - Reunión ()
* Seleccionar ( ) Por medio de esta operación se posibilita la selección de un subconjunto de tuplas de una relación que corresponden a una condición (columna OPERADOR )determinada. El grado (total de columnas de la Relación), se conserva.
valor
Formato de Uso:
(condición)
(RELACION)
Esta operación es conmutativa, es decir: =
(condición2)
(
(condición1)
(condición1)
(
(condición2)
(R) )
(R) )
Ejemplos:
PERSONA Cedula
Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario
71134534 Juan
23423445
Ana María
Mesa
Uribe
M
Betancur
Bermudez
F
Cra 25 22-1 Cra 45 11-13
2567532 1,600,000
3433444 1,300,000
12453535 Gloria
Betancur
Garces
F
75556743 Pedro
Ochoa
Pelaez
M
43533322 Patricia Angel
Guzmán
F
78900456 Carlos
Agudelo
M
Betancur
Tr. 12 43-5 Cll.6ta 14-45 Cll. 45 23-1 Cir. 5 125
2756533 1,700,000
2686885 1,200,000
2674563 1,350,000
4445775 1,500,000
La selección, permite extraer todas las filas (tuplas) que cumple una condición determinada. Esta condición permite la utilización de los operadores de comparación: =,>,<,>=,además de los conectores lógicos "y" - "o":
a. cedula = 71134534 (PERSONA) Resultado: Cedula
Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario
71134534 Juan
Mesa
Uribe
M
Cra 25 22-1
2567532 1,600,000
b. sexo ='F' (PERSONA) Resultado: Cedula
23423445
Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario Ana María
12453535 Gloria
Betancur
Bermudez
F
Betancur
Garces
F
Cra 45 11-13 Tr. 12 43-5
3433444 1,300,000
2756533 1,700,000
c. (primer_apellido ='Betancur') y (sexo='F') (PERSONA) Resultado: Cedula
Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario
23423445
Ana María
12453535 Gloria
Betancur
Bermudez
F
Betancur
Garces
F
Cra 45 11-13 Tr. 12 43-5
3433444 1,300,000
2756533 1,700,000
d. c. (sexo = 'M'') o (Salario >=1,350,000) (PERSONA) Resultado: Cedula
Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario
71134534 Juan
Mesa
Uribe
M
12453535 Gloria
Betancur
Garces
F
75556743 Pedro
Ochoa
Pelaez
M
43533322 Patricia Angel
Guzmán
F
78900456 Carlos
Agudelo
M
Betancur
Cra 25 22-1 Tr. 12 43-5 Cll.6ta 14-45 Cll. 45 23-1 Cir. 5 125
2567532 1,600,000
2756533 1,700,000
2686885 1,200,000
2674563 1,350,000
4445775 1,500,000
* Proyectar ( ) Esta operación permite seleccionar algunas columnas de una relación.
Formato de Uso: (RELACION) Ejemplos:
Se construyen con base en la Relación anterior: PERSONA. a. cedula, nombre, primer_apellido, segundo_apellido (PERSONA) Resultado
Cedula
Nombre Primer_Apellido Segundo_Apellido
71134534 Juan
Mesa
Uribe
Betancur
Bermudez
12453535 Gloria
Betancur
Garces
75556743 Pedro
Ochoa
Pelaez
23423445
Ana María
43533322 Patricia Angel
Guzmán
78900456 Carlos
Agudelo
Betancur
b. cedula, salario (PERSONA) Resultado: Cedula
Salario
71134534 1,600,000 23423445 1,300,000 12453535 1,700,000 75556743 1,200,000 43533322 1,350,000 78900456 1,500,000
La operación SELECCIÓN combinada con la operación PROYECCIÓN, podemos tener: c. cedula, nombre, salario ( (sexo = 'M'') o (Salario > =1,350,000) (PERSONA) ) Resultado: Cedula
Nombre
Salario
71134534
Juan
1,600,000
12453535
Gloria
1,700,000
75556743
Pedro
1,200,000
43533322
Patricia
1,350,000
78900456
Carlos
1,500,000
EL RESULTADO DE LAS OPERACIONES PUEDEN SER LLEVADOS A RELACIONES TEMPORALES DE LA SIGUIENTE FORMA: REL_TEMP cedula, nombre, salario ( (sexo = 'M'') o (Salario >=1,350,000) (PERSONA) ) Resultado: REL_TEMP Cedula
Nombre Salario
71134534 Juan
1,600,000
12453535 Gloria
1,700,000
75556743 Pedro
1,200,000
43533322 Patricia 1,350,000 78900456 Carlos
1,500,000