Download 2.1 Modelo relacional de datos (Aproximación algebraica)

Document related concepts

Cálculo relacional wikipedia , lookup

Cálculo relacional basado en tuplas wikipedia , lookup

Transcript
Tema II:
El modelo relacional de
datos
(2.1)
El modelo relacional de datos.
Objetivos:
  conocer las estructuras de datos del modelo: la
tupla y la relación.
  conocer básicamente la forma de modelar la
realidad utilizando el modelo relacional.
  conocer los mecanismos del modelo relacional para
expresar restricciones de integridad.
  conocer los lenguajes de manipulación propuestos
para este modelo de datos: Álgebra Relacional y
Cálculo Relacional de Tuplas.
1
El modelo relacional de datos.
  2.1 Modelo relacional de datos (Aproximación
algebraica).
–  2.1.1 Estructuras de datos: tupla, relación.
–  2.1.2 Operadores asociados a la estructura
relación: Álgebra Relacional.
  2.2 Esquema relacional: representación de la
realidad.
  2.3 Modelo relacional de datos (Aproximación
lógica)
–  2.3.1 Interpretación lógica de una base de
datos relacional.
–  2.3.2 Cálculo Relacional de Tuplas.
  2.4 Restricciones de integridad.
El modelo relacional de datos.
Bibliografía:
“Bases de datos relacionales”,
M. Celma, J.C. Casamayor, L. Mota,
Pearson Educación, S. A., Madrid, 2003
ISBN: 84-205-3850-7
Tema II
Capítulo 3
2
Introducción al modelo relacional
  70’s: Propuesto por E. Codd en 1970
  80’s: Se populariza en la práctica (Oracle, ...).
ANSI define el estándar SQL (Structured Query
Language) .
  90’s: Generalización y estandarización (SQL’92) y
Extensiones
Razones del éxito:
 Sencillez: una base de datos es “un conjunto de
tablas”.
 Carácter declarativo de su lenguaje de
manipulación
Introducción al modelo relacional
MRD = Estructuras de datos + Operadores asociados
dominios
  Estructuras de datos comunes: atributos
tupla
relación
  Dos Grandes Familias de Operadores:
3
Introducción al modelo relacional: Terminología
Estructuras de datos
Terminología Corriente
(informática)
Terminología MRD
(matemática)
  Tipos de Datos
  Dominios
  Campos / Columnas
  Atributos
  Registros / Filas
  Tupla
  Tabla
  Relación
¡No son exactamente equivalentes!
El modelo relacional de datos.
2.1. Modelo relacional de datos
(Aproximación algebraica)
4
2.1.1 Estructuras de datos: tupla, relación
2.1.1 Estructuras de datos:
tupla, relación
2.1.1 Estructuras de datos: tupla, relación.
Tupla:
tupla
registro
Un esquema de tupla τ es un conjunto de pares
de la forma:
τ = {(A1, D1), (A2, D2),…, (An, Dn)}
Una tupla de esquema τ= {(A1, D1), (A2, D2),…, (An, Dn)}
es un conjunto de pares (nombre_atributo, valor)
de la forma:
t = {(A1, v1), (A2, v2),…, (An, vn)} tal que ∀i vi ∈ Di
5
2.1.1 Estructuras de datos: tupla, relación
Operadores de la
estructura tupla:
 Consultar el valor de un atributo de una tupla:
Consultar (t, Ai)
t.Ai
t(Ai)
 Asignar un valor a un atributo de una tupla:
Asignar (t, Ai, wi)
t.Ai ← wi
t(Ai) ← wi
2.1.1 Estructuras de datos: tupla, relación
Ejemplo:
Dominios:
dom_dni: entero
dom_nom: cadena (20)
dom_dir: cadena (15)
Esquema de tupla:
Persona = {(dni, dom_dni), (nombre, dom_nom), (dirección, dom_dir)}
Tupla
t = {(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Paz 10”)}
Operaciones:
Consultar (t, nombre) = “Pepa Gómez”
Asignar (t, dirección, “Colón 15”) =
{(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
6
2.1.1 Estructuras de datos: tupla, relación
Una relación es un conjunto de tuplas del mismo
esquema al que se denomina esquema de la relación
definición de una relación R de esquema
{(A1, D1), (A2, D2),…, (An, Dn)}
esquema de R
definición de R
R (A1:D1, A2:D2,…, An:Dn)
relación R
R = {t: t={(A1,v1), (A2,v2),…, (An,vn)} ∀i vi ∈ Di}
los dominios del esquema de una relación deben ser escalares
2.1.1 Estructuras de datos: tupla, relación
Propiedades de una relación:
  Grado de una relación: número de atributos de
su esquema
 Cardinalidad de una relación: número de tuplas
que la forman
 Compatibilidad: dos relaciones R y S son
compatibles si sus esquemas son idénticos
7
2.1.1 Estructuras de datos: tupla, relación
Ejemplo
Definición de una relación del esquema Persona:
Persona (dni: dom_dni, nombre:dom_nom, dirección:dom_dir)
Persona=
{ {(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120),(nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”),(dni, 12.904.569),(dirección, “Blasco Ibáñez 35)}
{(nombre, “María Gutiérrez”),(dni, 35.784.843),(dirección, “Reina 7”)} }
•  grado = 3
•  cardinalidad = 4
•  compatible con relaciones de esquema
{(dni, dom_dni), (nombre, dom_nom), (dirección, dom_dir)}
2.1.1 Estructuras de datos: tupla, relación
Operadores de la estructura relación:
  insertar una tupla en una relación
  borrar una tupla de una relación
  seleccionar las tuplas de una relación que
cumplen una condición
  concatenar (unir) las tuplas de dos relaciones
por el valor de uno (o varios) atributos.
  unión de relaciones
  diferencia de relaciones
  intersección de relaciones
 .....
8
2.1.1 Estructuras de datos: tupla, relación
Persona=
{ {(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120), (nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”),(dni, 12.904.569),(dirección, “Blasco Ibáñez 35)}
{(nombre, “María Gutiérrez”),(dni, 35.784.843), (dirección, “Reina 7”)} }
Persona DONDE dni=12.345.678
seleccionar
tuplas de una
relación
t={(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
t.nombre
Pepa Gómez
t.dirección
consultar un
atributo de
una tupla
Colón 15
2.1.1 Estructuras de datos: tupla, relación
Representación tabular de una relación:
Persona
Persona (dni: dom_dni, nombre:dom_nom, dirección:dom_dir)
9
2.1.1 Estructuras de datos: tupla, relación
Representación tabular de una relación
 se elige un orden para las tuplas: filas de la tabla.
 se elige un orden para los atributos del esquema
de la relación (dni, nombre, dirección): columnas de
la tabla.
{(nombre, “Juan Pérez”), (dni, 20.450.120), (dirección, “Cuenca 20”) }
(20.450.120, “Juan Pérez”, “Cuenca 20”)
2.1.1 Estructuras de datos: tupla, relación
Representación tabular de una relación
El manejo de las relaciones no puede basarse en el
orden elegido para los atributos, ni en el orden de
las filas (es sólo una representación)
En una relación:
 no existe un orden definido entre las tuplas
 no existe un orden definido entre los atributos
de una tupla
10
2.1.1 Estructuras de datos: tupla, relación
Información desconocida:
R (A1:D1, A2:D2,…, An:Dn)
R = {t: t={(A1,v1), (A2,v2),…, (An,vn)} ∀i vi ∈ Di}
¿Qué sucede cuando no se conoce el valor de un atributo
para una tupla?
VALOR NULO
2.1.1 Estructuras de datos: tupla, relación
Información desconocida:
VALOR NULO
se asume que en todo dominio
existe un valor nulo (?)
t = {(dni, 11.940.861), (nombre, Eva López), (dirección, ?)}
•  consultar(t,dni) → 11.940.861
•  consultar (t, nombre) → “Eva López”
• consultar (t, dirección) → ?
11
2.1.1 Estructuras de datos: tupla, relación
 El VALOR NULO representa la ausencia de valor
 La presencia de valores nulos exige el uso de una lógica
trivaluada y de predicados especiales.
t = {(dni, 11.940.861), (nombre, Eva López), (dirección, ?)}
•  t.dni = 11.940.861
cierto
•  t.nombre = “Julian López”
falso
•  t.dirección = “Jesús 93”
indefinido
•  NULO (t.dirección)
cierto
2.1.1 Estructuras de datos: tupla, relación
Comparaciones:
Operadores de
comparación:
<, >, =, ≥, ≤, ≠
Evaluación de comparaciones:
A ∝ B se evalúa a INDEFINIDO si alguno de los
operandos es el VALOR NULO en caso contrario se
evalúa al valor de verdad de la expresión A ∝ B de
acuerdo a la semántica del operador ∝.
Predicado NULO:
Nulo (t.A) se evalúa a CIERTO si el atributo A en la tupla t
tiene VALOR NULO, en caso contrario se evalúa a FALSO.
12
2.1.1 Estructuras de datos: tupla, relación
Lógica bivaluada:
cierto
falso
2.1.1 Estructuras de datos: tupla, relación
Esquema relacional
conjunto de definiciones de
relaciones
Base de datos
relacional
conjunto de relaciones (una
por cada relación definida en
el esquema)
13
2.1.2 Álgebra Relacional.
2.1.2 Álgebra Relacional.
2.1.2 Álgebra Relacional.
Operadores de la estructura relación:
  insertar una tupla en una relación
  borrar una tupla de una relación
  seleccionar las tuplas de una relación que
cumplen una condición
  concatenar (unir) las tuplas de dos relaciones
por el valor de uno (o varios) atributos.
  unión de relaciones
  diferencia de relaciones
  intersección de relaciones
 .....
14
2.1.2 Álgebra Relacional.
operadores
constructores
operadores
consultores
•  inserción
•  borrado
•  selección
•  unión
•  proyección
•  diferencia
•  concatenación •  intersección
•  división
•  producto cartesiano
operadores relacionales
operadores conjuntistas
2.1.2 Álgebra Relacional.
operadores
constructores
operadores
consultores
•  inserción
•  borrado
•  selección
•  unión
•  proyección
•  diferencia
•  concatenación •  intersección
•  división
•  producto cartesiano
operadores relacionales
operadores conjuntistas
15
2.1.2 Álgebra Relacional.
Operador Inserción:
Insertar(R, t) = R ∪ {t } (R y t han de tener el mismo esquema)
Insertar
( Persona ,
,
{(nombre, “Manuel Sala”), (dni, 14.734.158), (dirección, “Cuenca 20”)}
)
2.1.2 Álgebra Relacional.
Insertar (
{{(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120), (nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”), (dni, 12.904.569), (dirección, “Blasco Ibáñez 35)}
,
{(nombre, “María Gutiérrez”), (dni, 35.784.843),
(dirección, “Reina 7”)}} ,
{(nombre, “Manuel Sala”), (dni, 14.734.158), (dirección, “Cuenca 20”)}
)
{{(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120), (nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”), (dni, 12.904.569), (dirección, “Blasco Ibáñez 35)}
{(nombre, “María Gutiérrez”), (dni, 35.784.843) (dirección, “Reina 7”)}
{(nombre, “Manuel Sala”), (dni, 14.734.158), (dirección, “Cuenca 20”) } }
16
2.1.2 Álgebra Relacional.
Persona
(14.734.158, “Manuel Sala”,“Cuenca 20”)
INSERTAR
2.1.2 Álgebra Relacional.
Persona
17
2.1.2 Álgebra Relacional.
Operador Borrado:
Borrar(R, t) = R - {t } (R y t han de tener el mismo esquema)
Borrar
(Persona,
{(nombre, “Manuel Sala”), (dni, 14.734.158), (dirección, “Cuenca 20”)}
)
2.1.2 Álgebra Relacional.
Borrar(
{{(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120), (nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”), (dni, 12.904.569), (dirección, “Blasco Ibáñez 35)}
{(nombre, “María Gutiérrez”), (dni, 35.784.843), (dirección, “Reina 7”)}
{(nombre, “Manuel Sala”), (dni, 14.734.158), (dirección, “Cuenca 20”)} }
{ (nombre, “Manuel Sala”), (dni, 14.734.158) (dirección, “Cuenca 20”)}
)
{{(dni, 12.345.678), (nombre, “Pepa Gómez”), (dirección, “Colón 15”)}
{(dni, 20.450.120), (nombre, “Juan Pérez”), (dirección, “Cuenca 20”) }
{(nombre, “José Abad”), (dni, 12.904.569), (dirección, “Blasco Ibáñez 35)}
{(nombre, “María Gutiérrez”), (dni, 35.784.843), (dirección, “Reina 7”)}}
18
2.1.2 Álgebra Relacional.
Persona
(14.734.158, “Manuel Sala”,“Cuenca 20”)
Borrar
2.1.2 Álgebra Relacional.
Persona
19
2.1.2 Álgebra Relacional.
•  inserción
operadores
constructores
operadores
consultores
•  borrado
•  selección
•  unión
•  proyección
•  diferencia
•  concatenación •  intersección
•  división
•  producto cartesiano
operadores relacionales
operadores conjuntistas
2.1.2 Álgebra Relacional.
Operador Selección:
R DONDE F = { t | t ∈ R y F(t) se evalúa a cierto}
Seleccionar las tuplas de una relación que
cumplen una condición .
Esquema de R: {(A1, D1),…, (An, Dn)}
F es una expresión lógica.
Esquema de R DONDE F: {(A1, D1),…, (An, Dn)}
20
2.1.2 Álgebra Relacional.
“Obtener las asignaturas adscritas al DSIC”
Asignatura
Asignatura DONDE cod_dep="DSIC"
2.1.2 Álgebra Relacional.
Asignatura
Asignatura DONDE cod_dep="DSIC"
21
2.1.2 Álgebra Relacional.
“Obtener las asignaturas de primer curso”
Asignatura
Asignatura DONDE semestre=“1A” ∨ semestre=“1B”
2.1.2 Álgebra Relacional.
Asignatura
Asignatura DONDE semestre=“1A” ∨ semestre=“1B”
22
2.1.2 Álgebra Relacional.
cod_asg
nombre
AD1
Algoritmos y Estructuras de Datos 1
semestre teoría prac cod_dep
1A
4
2
DSIC
FCO
Fundamentos de computadores
1A
4,5
4,5
DISCA
MAD
Matemática Discreta
1A
3
3
MAT
INT
Inglés Técnico
1B
3
3
IDM
FFI
Fundamentos Físicos de la
Informática
1A
3
3
FIS
2.1.2 Álgebra Relacional.
Operador Proyección:
R[Ai, Aj,…, Ak] = {{(Ai, vi), (Aj, vj),…, (Ak, vk)} |
∃t ∈ R tal que {(Ai, vi), (Aj, vj),…,(Ak, vk)} ∈ t }
Obtener los valores de uno (o varios)
atributos en una relación.
Esquema de R: {(A1, D1),…, (An, Dn)}
{Ai, Aj,…, Ak} es un subconjunto de atributo de R .
Esquema de R[Ai, Aj,…, Ak]: {(Ai, Di), (Aj, Dj),…,(Ak, Dk)}
23
2.1.2 Álgebra Relacional.
“Obtener los departamentos que tienen adscritas asignaturas”
Asignatura
Asignatura [cod_dep]
2.1.2 Álgebra Relacional.
Asignatura
Asignatura [cod_dep]
24
2.1.2 Álgebra Relacional.
expresiones de
Álgebra Relacional
los operadores del Álgebra Relacional
se pueden combinar para satisfacer
consultas a la base de datos
2.1.2 Álgebra Relacional.
“Obtener el nombre de las asignaturas adscritas al DSIC”
Asignatura
Asignatura DONDE cod_dep="DSIC” [nombre ]
25
2.1.2 Álgebra Relacional.
Asignatura
Asignatura DONDE cod_dep="DSIC” [nombre ]
2.1.2 Álgebra Relacional.
Operador Concatenación (join):
R
S=
{{(A1,v1),…,(An,vn),(B1,w1),…,(Bm,wm), (C1,y1),…,(Cp,yp)}|
{(A1, v1),…, (An, vn), (B1, w1),…, (Bm, wm)} ∈ R y
{(B1, w1),…, (Bm, wm), (C1, y1),…, (Cp, yp)} ∈ S }
Unir tuplas de dos relaciones en función del valor de
atributos comunes. atributos del mismo
nombre y dominio
Esquema de R: {(A1,D1),…, (An, Dn), (B1, E1),…, (Bm, Em)}
Esquema de S: {(B1, E1),…, (Bm, Em), (C1, F1),…, (Cp, Fp)}
Equema de R
S:
{(A1, D1),…, (An, Dn), (B1, E1),…, (Bm, Em), (C1, F1),…, (Cp, Fp)}
26
2.1.2 Álgebra Relacional.
en un esquema relacional las asociaciones entre
relaciones se establecen por medio de
referencias explícitas
atributos de referencia
el operador concatenación permite unir
tuplas de dos relaciones a través de los
atributos de referencia
2.1.2 Álgebra Relacional.
atributos identificadores
atributos de referencia
Departamento
cod_dep
nombre
director
Profesor
teléfono
cod_pro
nombre
teléfono
cod_dep
Asignatura
cod_asg
nombre
Docencia
semestre
cod_pro
teoría
cod_asg
prac
gteo
cod_dep
gpra
Esquema relacional
27
2.1.2 Álgebra Relacional.
“Obtener información sobre la docencia
de BDA: nombre de los profesores y
grupos asignados”
2.1.2 Álgebra Relacional.
Asignatura
Docencia
Profesor
28
2.1.2 Álgebra Relacional.
Docencia
Docencia DONDE cod_asg = “BDA”
2.1.2 Álgebra Relacional.
Docencia DONDE cod_asg = “BDA”
Profesor
29
2.1.2 Álgebra Relacional.
(Docencia DONDE cod_asg = “BDA”
(Docencia DONDE cod_asg = “BDA”
Profesor)
Profesor) [nombre, gteo, gpra ]
2.1.2 Álgebra Relacional.
“Obtener información sobre la docencia de BDA:
nombre de los profesores y grupos asignados”
( Docencia DONDE cod_asg = “BDA”
Profesor) [nombre, gteo, gpra ]
30
2.1.2 Álgebra Relacional.
“Obtener el código y el nombre de los
departamentos que imparten asignaturas
en el semestre 1A”
2.1.2 Álgebra Relacional.
Departamento
Asignatura
31
2.1.2 Álgebra Relacional.
Asignatura
Asignatura DONDE semestre=“1A” [cod_dep]
2.1.2 Álgebra Relacional.
Asignatura DONDE semestre=“1A” [cod_dep]
Departamento
Asignatura DONDE semestre=“1A” [cod_dep]
Departamento
32
2.1.2 Álgebra Relacional.
Asignatura DONDE semestre=“1A” [cod_dep]
(Asignatura DONDE semestre=“1A” [cod_dep]
Departamento
Departamento )[cod_dep, nombre ]
2.1.2 Álgebra Relacional.
“Obtener el código y el nombre de los departamentos
que imparten asignaturas en el semestre 1A”
(Asignatura DONDE semestre=“1A” [cod_dep]
Departamento )[cod_dep, nombre ]
33
2.1.2 Álgebra Relacional.
•  inserción
operadores
constructores
operadores
consultores
•  borrado
•  selección
•  unión
•  proyección
•  diferencia
•  concatenación •  intersección
•  producto cartesiano
operadores relacionales
operadores conjuntistas
2.1.2 Álgebra Relacional.
Operador Diferencia:
R - S = { t : t ∈ R y t ∉ S } R y S deben ser compatibles
Obtener las tuplas que aparecen en una
relación y no aparecen en la otra.
Esquema de R: {(A1,D1),…, (An, Dn) }
Esquema de S: {(A1,D1),…, (An, Dn) }
Equema de R - S: {(A1, D1),…, (An, Dn) }
34
2.1.2 Álgebra Relacional.
“Obtener el código de los departamentos que no tienen
adscritas asignaturas”
Departamento
códigos de todos los
departamentos
Departamento [cod_dep]
2.1.2 Álgebra Relacional.
Asignatura
códigos de los
departamentos
que tienen
adscritas
asignaturas
Asignatura [cod_dep]
35
2.1.2 Álgebra Relacional.
Departamento [cod_dep]
Asignatura [cod_dep]
-
=
“Obtener el código de los departamentos que no tienen adscritas asignaturas”
Departamento [cod_dep] - Asignatura [cod_dep]
2.1.2 Álgebra Relacional.
Operador Unión:
R ∪ S = { t : t ∈ R o t ∈ S } R y S han de ser compatibles
Obtener las tuplas que aparecen en una o
en otra relación.
Esquema de R: {(A1,D1),…, (An, Dn) }
Esquema de S: {(A1,D1),…, (An, Dn) }
Equema de R ∪ S: {(A1, D1),…, (An, Dn) }
36
2.1.2 Álgebra Relacional.
“Añadir a la relación Departamento los departamentos que
aparecen en la relación Nuevos_dpto”
Departamento
∪
Nuevos_dpto
2.1.2 Álgebra Relacional.
Departamento ∪ Nuevos_dpto
37
2.1.2 Álgebra Relacional.
Operador Intersección:
R ∩ S = { t | t ∈ R y t ∈ S} R y S han de ser compatibles
Obtener las tuplas que aparecen en una y
en otra relación.
Esquema de R: {(A1, D1),…, (An, Dn) }
Esquema de S: {(A1, D1),…, (An, Dn) }
Equema de R ∩ S: {(A1, D1),…, (An, Dn) }
2.1.2 Álgebra Relacional.
“Obtener los departamentos que tienen adscritos profesores y
asignaturas”
Asignatura
departamentos que
tienen adscritas
asignaturas
Asignatura [cod_dep]
38
2.1.2 Álgebra Relacional.
departamentos que
tienen adscritos
profesores
Profesor
Profesor [cod_dep]
2.1.2 Álgebra Relacional.
Asignatura [cod_dep]
Profesor [cod_dep]
∩
“Obtener los departamentos que tienen adscritos profesores y
asignaturas”
Asignatura [cod_dep]
∩ Profesor [cod_dep]
39
2.1.2 Álgebra Relacional.
Operador Producto Cartesiano:
R×S=
{{(A1,v1), (A2,v2),…, (An,vn), (B1, w1), (B2, w2),…, (Bm, wm)}:
{(A1, v1), (A2, v2), …, (An, vn)} ∈ R y
{(B1, w1), (B2, w2), …, (Bm, wm)} ∈ S}
R y S no pueden tener nombre de atributos comunes
Unir tuplas de dos relaciones
Esquema de R: {(A1,D1),…, (An, Dn) }
Esquema de S: {(B1, E1),…, (Bm, Em)}.
Equema de R × S: {(A1, D1),…, (An, Dn), (B1, E1),…, (Bm, Em)}.
2.1.2 Álgebra Relacional.
R
S
x
RxS
=
40
2.1.2 Álgebra Relacional.
Operador Renombrar:
R((Ai, Bi),…, (Aj, Bj)) =
{{(A1, v1),…, (Bi, vi),…, (Bj, vj),…, (An, vn)} |
{(A1, v1),…, (Ai, vi),…, (Aj, vj),…, (An, vn)} ∈ R}
Cambiar temporalmente el nombre de un
atributo en una relación
Esquema de R: {(A1, D1),…, (Ai, Di),..., (Aj, Dj),..., (An, Dn) }
Equema de R((Ai, Bi),…, (Aj, Bj)):{(A1, D1),…, (Bi, Di),..., (Bj, Dj),..., (An, Dn) }
2.1.2 Álgebra Relacional.
“Obtener el nombre de las asignaturas del
semestre 1A y el nombre del departamento
responsable de su docencia”
41
2.1.2 Álgebra Relacional.
Asignatura
Asignatura DONDE semestre=“1A” [nombre, cod_dep]
2.1.2 Álgebra Relacional.
Asignatura DONDE semestre=“1A” [nombre, cod_dep]
Departamento
42
2.1.2 Álgebra Relacional.
Asignatura DONDE semestre=“1A” [nombre, cod_dep]
(Asignatura DONDE semestre=“1A” [nombre, cod_dep]) ((nombre, nom_asg))
2.1.2 Álgebra Relacional.
(Asignatura DONDE semestre=“1A” [nombre, cod_dep]) ((nombre, nom_asg))
Departamento
43
2.1.2 Álgebra Relacional.
(Asignatura DONDE semestre=“1A” [nombre, cod_dep]) ((nombre, nom_asg))
Departamento
((Asignatura DONDE semestre=“1A” [nombre, cod_dep]) ((nombre, nom_asg))
Departamento ) [nom_asg, nombre]
2.1.2 Álgebra Relacional.
“Obtener el nombre de las asignaturas del semestre 1A y el nombre
del departamento responsable de su docencia”
((Asignatura DONDE semestre=“1A”
[nombre, cod_dep])
Departamento )
((nombre, nom_asg))
[nom_asg, nombre]
44
2.1.2 Álgebra Relacional.
Ejercicios:
1. Obtener el código de los profesores que
imparten asignaturas que no son de su
departamento.
2. Obtener el nombre de los profesores que
tienen toda su docencia en la misma asignatura
2.1.2 Álgebra Relacional.
1. Obtener el código de los profesores
que imparten asignaturas que no son
de su departamento.
45
2.1.2 Álgebra Relacional.
Asignatura
Docencia
Profesor
2.1.2 Álgebra Relacional.
Asignatura [cod_asg,cod_dep]
((cod_dep, dep_asg))
Profesor [cod_pro, cod_dep]
((cod_dep, dep_pro))
46
2.1.2 Álgebra Relacional.
Asignatura [cod_asg,cod_dep]
((cod_dep, dep_asg))
Profesor [cod_pro, cod_dep]
((cod_dep, dep_pro))
Docencia [cod_asg,cod_pro]
2.1.2 Álgebra Relacional.
Asignatura [cod_asg,cod_dep] ((cod_dep, dep_asg))
Docencia [cod_asg,cod_pro]
Profesor [cod_pro, cod_dep] ((cod_dep, dep_pro))
47
2.1.2 Álgebra Relacional.
(Asignatura [cod_asg,cod_dep] ((cod_dep, dep_asg))
Docencia [cod_asg,cod_pro]
Profesor [cod_pro, cod_dep] ((cod_dep, dep_pro))) DONDE dep_pro ≠dep_asg
2.1.2 Álgebra Relacional.
1. Obtener el código de los profesores que imparten
asignaturas que no son de su departamento.
(Asignatura [cod_asg,cod_dep] ((cod_dep, dep_asg))
Docencia [cod_asg,cod_pro]
Profesor [cod_pro, cod_dep] ((cod_dep, dep_pro)))
DONDE dep_pro ≠dep_asg [cod_pro ]
48
2.1.2 Álgebra Relacional.
2. Obtener el código de los profesores
que tienen toda su docencia en la misma
asignatura
2.1.2 Álgebra Relacional.
Docencia
49
2.1.2 Álgebra Relacional.
Docencia [cod_asg,cod_pro] ((cod_asg, asg1))
Docencia [cod_asg,cod_pro] ((cod_asg, asg2)))
(Docencia [cod_asg,cod_pro] ((cod_asg, asg1))
Docencia [cod_asg,cod_pro] ((cod_asg, asg2))) DONDE asg1 ≠ asg2
2.1.2 Álgebra Relacional.
(Docencia [cod_asg,cod_pro] ((cod_asg, asg1))
Docencia
[cod_asg,cod_pro] ((cod_asg, asg2))) DONDE asg1≠ asg2 [cod_pro ]
profesores que tienen docencia en
al menos dos asignaturas
50
2.1.2 Álgebra Relacional.
Docencia
Docencia [cod_pro]
profesores que tienen docencia
2.1.2 Álgebra Relacional.
(Docencia
Docencia [cod_pro]
[cod_asg,cod_pro] ((cod_asg, asg1))
Docencia [cod_asg,cod_pro] ((cod_asg, asg2)))
DONDE asg1≠ asg2 [cod_pro ]
-
profesores que tienen toda la
docencia en la misma asignatura
51
2.1.2 Álgebra Relacional.
2. Obtener el código de los profesores que tienen toda
su docencia en la misma asignatura
Docencia [cod_pro]
(Docencia
-
[cod_asg,cod_pro] ((cod_asg, asg1))
Docencia [cod_asg,cod_pro] ((cod_asg, asg2)))
DONDE asg1≠ asg2 [cod_pro ]
52