Anda di halaman 1dari 27

BASES DE DATOS RELACIONALES Y EL MODELO RELACIONAL

EL MODELO RELACIONAL DE DATOS (2DA. PARTE)


LOGRO Y CONTENIDO DE LA SESIÓN DE CLASE
• Logro de la Sesión:
• Al término de la sesión, el estudiante aplica los componentes
operacionales del Modelo Relacional de Datos a través de la
resolución de ejercicios sobre álgebra relacional, de manera
correcta y de acuerdo a los conceptos y herramientas presentados
en clase.
• Contenido de la Sesión:
• Introducción
• Operadores de álgebra relacional
• Resumen
ÁLGEBRA RELACIONAL
• El álgebra relacional es un conjunto de operadores que sirven para
manipular relaciones.
• Cada operador del álgebra relacional toma una o dos relaciones como
entrada y produce una nueva relación como salida.
• Existen ocho operadores agrupados en conjuntos de cuatro cada uno:
• El conjunto de operaciones tradicionales: Unión, Intersección, Diferencia y
Producto Cartesiano.
• Operaciones relaciones especiales: Selección, Proyección, Enlace y División.
Operador Unión (Union):
Definición: La unión de dos relaciones R1 y R2 que sean
compatibles para unión, es el conjunto de todas las tuplas t que
pertenecen ya sea a R1 o a R2 o a ambas. Su sintaxis es: R1 UNION
R2.
• Dos relaciones son compatibles para unión si éstas tienen el
mismo grado y el iésimo atributo de cada una está basada en el
mismo dominio.
• La notación formal para la operación de unión es U.
• La operación UNION es asociativa y conmutativa.
Ejemplo: Operador Unión

R1 R2
Nombre Edad Sexo Nombre Edad Sexo
Jesús Flores 20 M Vanessa Collazos 20 F
Eddie Gonzáles 21 M Jesús Flores 20 M
Rocío Capuñay 21 F Karla Jara 21 F

R3 = R1 U R2 Nombre Edad Sexo


Jesús Flores 20 M
Eddie Gonzáles 21 M
Rocío Capuñay 21 F
Vanessa Collazos 20 F
Karla Jara 21 F

Ejemplo de una operación UNION sobre dos relaciones R1 y R2


Operador Intersección (Intersect):
Definición: La intersección de dos relaciones R1 y R2 que sean
compatibles para unión, es el conjunto de todas las tuplas t que
pertenecen a ambas relaciones R1 y R2. Su sintaxis es: R1
INTERSECT R2.
• La notación formal para la operación de intersección es ∩.
• La operación INTERSECT es asociativa y conmutativa.
Ejemplo: Operador Intersección

R1 R2
Nombre Edad Sexo Nombre Edad Sexo
Jesús Flores 20 M Vanessa Collazos 20 F
Eddie Gonzáles 21 M Jesús Flores 20 M
Rocío Capuñay 21 F Karla Jara 21 F

R3 = R1 ∩ R2 Nombre Edad Sexo


Jesús Flores 20 M

Ejemplo de una operación INTERSECT sobre dos relaciones R1 y R2


Operador Diferencia (Difference):
Definición: La diferencia entre dos relaciones R1 y R2 que sean
compatibles para unión, es el conjunto de todas las tuplas t que
pertenecen a R1 y no a R2. Su sintaxis es: R1 MINUS R2.
• La notación formal para la operación de intersección es - .
• La operación DIFFERENCE no es asociativa ni conmutativa.
Ejemplo: Operador Diferencia
R1 R2
Nombre Edad Sexo Nombre Edad Sexo
Jesús Flores 20 M Vanessa Collazos 20 F
Eddie Gonzáles 21 M Jesús Flores 20 M
Rocío Capuñay 21 F Karla Jara 21 F

R3 = R1 - R2 Nombre Edad Sexo


Eddie Gonzáles 21 M
Rocío Capuñay 21 F

R3 = R2 - R1 Nombre Edad Sexo


Vanessa Collazos 20 F
Karla Jara 21 F

Ejemplo de una operación DIFFERENCE sobre dos relaciones R1 y R2


Operador Producto Cartesiano (Cartesian Product)

Definición: El producto cartesiano entre dos relaciones R1 y R2, es


el conjunto de todas las tuplas t tal que t es la concatenación de una
tupla r que pertenece a R1 y una tupla s que pertenece a R2. Su
sintaxis es: R1 TIMES R2.
• R1 y R2 no tienen que ser compatibles para unión.
• La notación formal para la operación de Producto Cartesiano es x .
• Si R1 tiene grado n y cardinalidad N1, y R2 tiene grado m y
cardinalidad N2, entonces la relación resultante R3 tiene grado
(n+m) y cardinalidad (N1*N2).
Ejemplo: Operador Producto Cartesiano

R1 R2
Nombre_R1 Edad_R1 Sexo_R1 Nombre_R2 Edad_R2 Sexo_R2
Jesús Flores 20 M Vanessa Collazos 20 F
Eddie Gonzáles 21 M Karla Jara 21 F

R3 = R1 X R2 Nombre_R1 Edad_R1 Sexo_R1 Nombre_R2 Edad_R2 Sexo_R2


Jesús Flores 20 M Vanessa Collazos 20 F
Eddie Gonzáles 21 M Vanessa Collazos 20 F
Jesús Flores 20 M Karla Jara 21 F
Eddie Gonzáles 21 M Karla Jara 21 F

Ejemplo de una operación CARTESIAN PRODUCT sobre dos relaciones R1 y R2


Operador Selección (Select):
Definición: La operación select elije (o selecciona) un subconjunto
de tuplas de una relación. Es un operador unario, esto es, se aplica
sobre una relación única. El subconjunto de tuplas debe satisfacer
una condición de selección o predicado.
• La notación formal para la operación de selección es:
σ <condición de selección> (<relación>)
• Donde <condición de selección> es:
<atributo> <operador de comparación> <valor constante> /
<atributo> [AND / OR / NOT <atributo> <operador de
comparación> <valor constante> / <atributo> … ]
Operador Selección (Select) ii
• El operador de comparación puede ser <, >, <=, >=, =, <> y depende del dominio del atributo
o tipo de datos de valor constante.
• El grado de la relación resultante es igual al grado de relación inicial sobre el cual se aplica el
operador.
• La cardinalidad de la relación resultante es menor o igual a la cardinalidad de la relación
inicial.
• La selección es conmutativa.
Ejemplo: Operador Selección

R1 = σ (Edad = 20) [R]


R NOMBRE EDAD SEXO
NOMBRE EDAD SEXO LUIS CORDOVA GONZALEZ 20 M
LUIS CORDOVA GONZALEZ 20 M KAREEN SOLAR CONTRERAS 20 F
CHARITO DEL PILAR CORRO
JANETT BERMEJO RODRIGUEZ 21 F VELAOCHAGA 20 F
KAREEN SOLAR CONTRERAS 20 F
GEORGE CALDERON VILCHEZ 19 M R1 = σ (Sexo = M AND Edad > 19) [R]
CHARITO DEL PILAR CORRO
VELAOCHAGA 20 F NOMBRE EDAD SEXO
MONICA COLLANTES TERRONES 21 F LUIS CORDOVA GONZALEZ 20 M
CRISTHIAN CORREA LEIVA 21 M CRISTHIAN CORREA LEIVA 21 M

Ejemplo de una operación SELECT (dos condiciones de selección diferentes)


Operador Proyección (Project):
Definición: La operación project construye otra relación mediante la
selección de un subconjunto de atributos de una relación existente.
Las tuplas duplicadas de la relación resultante son eliminadas.
• Project también es un operador unario.
• La notación formal para una operación de proyección es:
π <lista de atributos> (<relación>)
Donde <lista de atributos> es el subconjunto de atributos de una
relación existente.
• El grado de la relación resultante es igual al número de atributos
de <lista de atributos> debido a que solo aquellos atributos
aparecerán en la relación resultante.
Operador Proyección (Project) (ii)

• La cardinalidad de la relación resultante es menor o igual a la cardinalidad de la relación


inicial.
• Si la lista de atributos contiene una clave candidata, entonces la cardinalidad es igual a la
cardinalidad de la relación inicial.
• Si la lista no contiene una clave candidata, entonces la cardinalidad debería ser menor debido
a la posibilidad de tener tuplas duplicadas, las cuales son eliminadas de la relación resultante.
• La proyección no es conmutativa.
• Ejemplo:
Ejemplo: Operador Proyección
R1 = π (Nombre, Sexo) [R]
R NOMBRE SEXO
NOMBRE EDAD SEXO LUIS CORDOVA GONZALEZ M
LUIS CORDOVA GONZALEZ 20 M JANETT BERMEJO RODRIGUEZ F
JANETT BERMEJO RODRIGUEZ 21 F KAREEN SOLAR CONTRERAS F
KAREEN SOLAR CONTRERAS 20 F GEORGE CALDERON VILCHEZ M
GEORGE CALDERON VILCHEZ 19 M CHARITO DEL PILAR CORRO VELAOCHAGA F
CHARITO DEL PILAR CORRO VELAOCHAGA 20 F
R1 = π (Edad, Sexo) [R]
EDAD SEXO
20 M
21 F
20 F
19 M

Ejemplo de una operación PROJECT (dos listas de atributos diferentes)


Operador Enlace (Join)
Definición: La operación join concatena dos relaciones basadas en una condición de enlace o
predicado. Las relaciones deben tener al menos un atributo en común con el mismo dominio
subyacente y una condición de enlace que pueda ser especificada sobre sus atributos.
• La notación formal para una operación de enlace es:

R <condición de enlace> ∞ S
Donde <condición de enlace>:
<atributo de R> <operador de comparación> <atributo de S>
• El operador de comparación puede ser <, >, <=, >=, =, <> y depende de los atributos del
dominio.
Operador Enlace (Join) (ii)
• Si la relación R tiene los atributos A1, A2, …, An y la relación S
tiene los atributos B1, B2, …, Bm, y los atributos Ai y Bj tienen el
mismo dominio subyacente, se puede definir una operación de
enlace entre la relación R y la relación S sobre una condición de
enlace entre los atributos Ai y Bj.
• El resultado es otra relación T que contiene todas las tuplas t tales
que t es la concatenación de una tupla r que pertenece a R y una
tupla s que pertenece a S, si es que la condición es verdadera.
Ejemplo: Operador Join
R1 R2
Nombre_R1 Apellidos_R1 Apellidos_R2 Sexo_R2
JANETT BERMEJO RODRIGUEZ SOLAR CONTRERAS F
LUIS CORDOVA GONZALEZ CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS BERMEJO RODRIGUEZ F
GUERRERO RUBIO M

R3 = R1 (Apellidos = Apellidos) R2
Nombre_R1 Apellidos_R1 Apellidos_R2 Sexo_R2
JANETT BERMEJO RODRIGUEZ BERMEJO RODRIGUEZ F
LUIS CORDOVA GONZALEZ CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS SOLAR CONTRERAS F

Ejemplo de una operación JOIN


Operador Enlace (Join) (ii)

• Por definición, el resultado de una operación join debe incluir dos atributos idénticos desde
el punto de vista de sus valores. Si uno de estos atributos es eliminado, el resultado es
denominado natural join.
• Ejemplo:

R1 R2
Nombre Apellidos Apellidos Sexo
JANETT BERMEJO RODRIGUEZ SOLAR CONTRERAS F
LUIS CORDOVA GONZALEZ CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS BERMEJO RODRIGUEZ F
GUERRERO RUBIO M

Natural Join
Nombre Apellidos Sexo
JANETT BERMEJO RODRIGUEZ F
LUIS CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS F
Operador Enlace (Join) (iii)
• Hay situaciones en las cuales no todas las tuplas de la relación R tienen
una tupla correspondiente en la relacíón S. Por consiguiente aquellas
tuplas no aparecerán en el resultado de una operación de enlace entre R y
S.
• Esto nos lleva a pensar que en algunos casos, puede que sea necesario
tener todas las tuplas en el resultado y para ello es que existe otra forma
de enlace: el outer join (enlace externo).
• Hay tres formas de outer join:
• Left outer join: Donde todas las tuplas de R aparecerán en el resultado.
• Right outer join: Donde todas las tuplas de S aparecerán en el
resultado.
• Full outer join: Donde todas las tuplas de R y S aparecerán en el
resultado.
Ejemplo: Operador Enlace (Join)
R1 R2
Nombre Apellidos Apellidos Sexo
JANETT BERMEJO RODRIGUEZ SOLAR CONTRERAS F
LUIS CORDOVA GONZALEZ CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS BERMEJO RODRIGUEZ F
GUERRERO RUBIO M

Right Outer Join


Nombre Apellidos Apellidos_ Sexo
JANETT BERMEJO RODRIGUEZ BERMEJO RODRIGUEZ F
LUIS CORDOVA GONZALEZ CORDOVA GONZALEZ M
KAREEN SOLAR CONTRERAS SOLAR CONTRERAS F
NULL NULL GUERRERO RUBIO M

Ejemplo de una operación RIGHT OUTER JOIN


Ejemplo: Operador Enlace (Join) (ii)
Profesor Curso
Id_Profesor Nombre_Profesor Id_Curso Id_Profesor
111-11-1111 JANETT BERMEJO RODRIGUEZ 1111 111-11-1111
222-22-2222 LUIS CORDOVA GONZALEZ 2222 222-22-2222
333-33-3333 KAREEN SOLAR CONTRERAS 3333 111-11-1111
4444 NULL

Left Outer Join


Id_Profesor Nombre_Profesor Id_Curso Id_Profesor_
111-11-1111 JANETT BERMEJO RODRIGUEZ 1111 111-11-1111
222-22-2222 LUIS CORDOVA GONZALEZ 2222 222-22-2222
333-33-3333 KAREEN SOLAR CONTRERAS NULL NULL

Ejemplo de una operación LEFT OUTER JOIN


Ejemplo: Operador Enlace (Join) (iii)

Alumno Profesor

Id_Alumno Apellidos_Alumno Carrera_Alumno Curso Id_Profesor Apellidos_Profesor Departamento_Profesor Categoría_Profesor

123-45-6789 CORDOVA GONZALEZ Ingeniería de Sistemas Base de Datos 098-76-5432 CABEL ALFARO Administración Asistente

124-56-7890 SOLAR CONTRERAS Contabilidad Costos y Presupuestos 543-21-0987 RUIZ HONORIO Administración Profesor Principal

876-54-3210 CALDERON VILCHEZ Administración Taller de Creatividad Empresarial 876-54-3210 CALDERON VILCHEZ Administración Asistente

Full Outer Join

Id_Alumno Apellidos_Alumno Carrera_Alumno Curso Id_Profesor Apellidos_Profesor Departamento_Profesor Categoría_Profesor

123-45-6789 CORDOVA GONZALEZ Ingeniería de Sistemas Base de Datos NULL NULL NULL NULL

124-56-7890 SOLAR CONTRERAS Contabilidad Costos y Presupuestos NULL NULL NULL NULL

876-54-3210 CALDERON VILCHEZ Administración Taller de Creatividad Empresarial 876-54-3210 CALDERON VILCHEZ Administración Asistente

NULL NULL NULL NULL 098-76-5432 CABEL ALFARO Administración Asistente

NULL NULL NULL NULL 543-21-0987 RUIZ HONORIO Administración Profesor Principal

Ejemplo de una operación FULL OUTER JOIN

25
Operador División (Division):

• El operador division, particiona (o divide) una relación R1 de grado


(n+m) entre una relación R2 de grado m y produce una relación de
grado n.
• El resultado de una operación de división entre R1 y R2 es otra
relación, la cual contiene todas las tuplas que concatenadas con
todas las tuplas R2, pertenecen a la relación R1.
• La notación formal para la operación de división es ÷
• El operador división es de cierta forma análogo al operador
división de dos números, solo que en la división de tablas el
objetivo es encontrar valores de una columna que contenga todos
los valores de otra columna.
Ejemplo: Operador División
Matrícula Alumno
Id_Curso Id_Alumno Id_Alumno
1234 123-45-6789 123-45-6789
1234 234-56-7890 124-56-7890
4235 123-45-6789 234-56-7890
4235 234-56-7890
4235 124-56-7890
6321 124-56-7890

R3 = Matrícula ÷ Alumno
Id_Curso
4235
Ejemplo de una operación DIVISION

Anda mungkin juga menyukai