Download Clase Práctica 7

Document related concepts

Cálculo relacional wikipedia , lookup

Cálculo relacional basado en tuplas wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Transcript
Bases de Datos.
Clase Práctica No. 7
Curso 2008 – 2009
Asignatura: Bases de Datos.
Carrera: Ingeniería Informática.
Tipo de Curso: C.R.D.
Año: 2do.
Semestre: 2do.
Actividad No. 12
Clase Práctica No. 7
Título: “Álgebra y Cálculo Relacional”
Contenido:


Operaciones del Álgebra Relacional.
Expresiones del Cálculo Relacional.
Bibliografía:
- Mato García, Rosa María. “Sistemas de Bases de Datos”. págs. 89 –98.
- C. J. Date. “Introducción a los Sistemas de Bases de Datos”, págs. 150-182, 198-218.
INTRODUCCIÓN
Sobre el modelo de SUMINISTRADOR – PRODUCTO, obtener por algebra y calculo en
cada caso:
1. Los números de los suministradores que sirven algún producto cuyo precio
sea menor de $ 3.00.
2. Los municipios donde se suministra el producto de número "P2".
DESARROLLO
Ejercicio No. 1
Dada las siguientes relaciones sobre el trabajo científico de los estudiantes de un
Centro de Educación Superior:
ESTUD (contiene los datos de todos los estudiantes del CES).
NEXP, NOMES, AÑO, ESPEC, PROM
NEXP-# de expediente.
NOMES-nombre del estudiante.
AÑO-año académico.
ESPEC-especialidad.
PROM-promedio.
PROF(contiene los datos de todos los profesores del CES)
NPROF, DPTO, NOMPR, CATEG
NPROF-# del profesor
DPTO- departamento
NOMPR-nombre del profesor.CATEG-categoría docente.
TRAB-CIEN (contiene las relaciones estud-prof con respecto al trabajo científico.)
NES, NPR
1
Bases de Datos.
Clase Práctica No. 7
Curso 2008 – 2009
NES-# del estudiante
NPR-# del profesor
Resuelva las siguientes recuperaciones utilizando el álgebra relacional:
a) Para cada estudiante, obtener su número y el departamento de cada profesor que lo
ha atendido.
b) Obtener los nombres de los profesores que atienden algún estudiante de la
especialidad Informática.
c) Obtener los números de aquellos estudiantes que han sido atendidos en su
trabajo científico por todos los profesores del departamento GREHU.
d) Obtener los nombres de los estudiantes que no están incorporados al trabajo
científico.
Ejercicio No. 2
Sobre el modelo SUMINISTRADOR-PRODUCTO resuelva las siguientes
recuperaciones utilizando el cálculo relacional:
a) Obtener los nombres de los suministradores que viven en Plaza o en Playa y cuyo
tipo sea igual a "10".
b) Obtener los números de los suministradores que sirven al menos un producto de
precio=0,10 o uno de precio=0,15.
c) Hallar los nombres de los suministradores que sirven productos cuyo peso es
mayor que 5.
CONCLUSIONES
Álgebra Relacional








El resultado de aplicar cualquier operación del álgebra relacional es siempre una
nueva relación
El álgebra relacional incluye las operaciones Unión, Intersección, Diferencia y
Producto Cartesiano que se heredan de la Teoría de Conjuntos
Para el álgebra relacional se definen operaciones especiales: Selección, Proyección,
Concatenación (Join) y División
La selección permite escoger filas que cumplan una cierta condición. Es posible
combinar condiciones simples mediante los operadores lógicos and, or y not
La proyección permite seleccionar columnas en un cierto orden
El join permite combinar informaciones que se encuentran en diferentes tablas. Las
informaciones de dos tablas se combinan en un join a partir de la comparación, por
el operador =, del último atributo de la primera tabla con el primero de la segunda.
La relación resultante del join está formada por la concatenación de aquellas tuplas
de ambas tablas para las que se cumpla que la comparación de los dos atributos
antes mencionados es cierta.
La división de A ENTRE B es el conjunto de las tuplas t tales que para todas los
tuplas b  B, la tupla t.b  A
Las concatenaciones (joins) son imprescindibles para relacionar distintas tablas en
las que se encuentra la información que nos interesa
2
Bases de Datos.




Clase Práctica No. 7
Curso 2008 – 2009
Siempre que sea posible, deben realizarse las selecciones antes de realizar los
“joins”, para lograr que las expresiones representen recuperaciones eficientes
El orden de los atributos es significativo, sobre todo para la realización de los “joins”,
por lo que debe garantizarse que, en las relaciones que participan en el join, el
último atributo de la primera y el primero de la segunda sean compatibles en el
sentido de que puedan compararse
Las proyecciones se emplean para escoger y ordenar columnas y, por lo tanto, son
útiles en dos casos: para ordenar los atributos (sobre todo para poder hacer los
“joins”) y para escoger los atributos que se desea obtener finalmente con la
recuperación que se está expresando
El orden de prioridad de las operaciones especiales, es, de mayor prioridad a menor
prioridad: selección, proyección y join (la división tiene la misma prioridad que el
join). Se utilizan paréntesis para agrupar expresiones y así lograr modificar la
prioridad de las operaciones del álgebra relacional
Cálculo Relacional






Una variable de tupla es una variable que toma valores sobre una relación, o sea,
una variable cuyos únicos valores permitidos son tuplas de la relación. En otras
palabras, si la variable de tupla T toma valores sobre la relación R, entonces en
cualquier momento del tiempo, T representa a algún tuplo t de R.
Una variable de tupla se define con la siguiente instrucción:
RANGE OF T IS R (siendo T la variable de tupla y R una relación)
Una instrucción de recuperación del cálculo relacional tendrá la siguiente forma
general:
lista objeto: predicado
donde:
lista objeto: especifica qué atributos y de qué relaciones se desean recuperar.
Está formada por nombres calificados de atributos separados por comas (la
calificación se hace sobre variables de tuplas).
predicado: especifica las condiciones que deben verificar los tuplos seleccionados
y es opcional.
Un predicado puede estar formado por:
Comparación: Es una comparación (>, <, =, etc) entre dos nombres de atributos o
entre un nombre de atributo y una constante.
(predicado)
NOT predicado
predicado AND predicado
predicado OR predicado
nom-var (predicado) (existencial)
nom-var (predicado) (universal)
Se le llama "ocurrencia de una variable de tupla" a la aparición del nombre de la
variable dentro del predicado. Una variable de tupla T ocurre dentro de un
predicado bien en el contexto de una referencia a un atributo: T.A, donde A es un
atributo de la relación sobre la que T toma valor, o como la variable que sigue
inmediatamente a uno de los cuantificadores ∃ o ∀.
Una ocurrencia de variable de tupla en un predicado está acotada si esa variable ha
sido introducida por un cuantificador ∃ o ∀; de lo contrario, la variable es libre.
3
Bases de Datos.

Clase Práctica No. 7
Curso 2008 – 2009
Las variables de tupla que aparecen en la lista objeto tienen que ser libres en el
predicado y, además, las únicas variables de tupla libres en el predicado son,
precisamente, éstas.
ESTUDIO INDEPENDIENTE
Ejercicio No. 1
Se tiene una BD para procesar la información sobre el proceso eleccionario de los
delegados del poder popular en todo el país.
La BD cuenta con las siguientes relaciones:
CANDIDATO (NOCA, NOM, SEXO, EDAD), donde:
NOCA- # de identidad de un candidato.
NOM- nombre del candidato.
SEXO- sexo del candidato.
EDAD- edad del candidato.
VOTACION (COL, CAND, TOTAL), donde:
COL- # de un colegio electoral (los # de colegios son consecutivos en todo el país.
CAND- # de un candidato.
TOTAL- cantidad de datos obtenidos por un candidato en un colegio.
COLEGIO 1 (NOCO, PDTE, SEX-PR, RAZA-PR, DIR, MUN)
---COLEGIO 15 (idem), donde:
COLEGIO 1 - contiene los datos de los colegios electorales de la provincia Pinar del
Río.
COLEGIO n - ídem de la provincia "n".
NOCO- # del colegio.
PDTE- nombre del presidente de un colegio.
SEX-PR- sexo del presidente de un colegio.
RAZA-PR- raza étnica del presidente de un colegio.
DIR- dirección de un colegio.
MUN- municipio del colegio.
Se desea resolver las siguientes recuperaciones por álgebra relacional:
a) Hallar la dirección de los colegios electorales del municipio "Plaza" donde esté
propuesto como candidato el número "123"
b) Hallar el total de votos obtenidos, el # del colegio y el nombre de los candidatos
del municipio "Cerro” del sexo femenino y con menos de 30 años.
c) Hallar los números de colegios de todo el país cuyos presidentes son del sexo
femenino y de la raza negra.
4
Bases de Datos.
Clase Práctica No. 7
Curso 2008 – 2009
Ejercicio No. 2
Sobre el modelo SUMINISTRADOR – PRODUCTO, recupere con el uso del álgebra
relacional:
a) Para cada producto, su número y los nombres de todos los municipios donde puede
ser adquirido.
b) Los nombres de las piezas servidas por suministradores de tipo = 20.
c) Los nombres de los productos que son suministrados en todos los municipios.
Ejercicio No. 3
Sobre el modelo del proceso eleccionario del Poder Popular de la clase anterior (Ej. 2,
CP6), resolver las siguientes recuperaciones con el uso del cálculo relacional:
a) Hallar los números de los colegios donde se presentaron candidatos mayores de
60 años.
b) Obtener los números de los colegios donde se presentaron candidatos menores
de 30 años que hayan obtenido más de 50 votos.
c) Obtener los nombres de los candidatos del municipio "Playa" que hayan obtenido
más de 100 votos en algún colegio donde estén postulados.
d) Obtener las direcciones de los colegios del municipio "La Lisa" en los que se haya
postulado el candidato "Hipólito Pérez".
EJERCICIOS PROPUESTOS
Ejercicio No. 1
Sea una BD sobre microcomputadoras, profesores y alumnos. De cada entidad se
conoce:
Para las microcomputadoras: # inventario, marca, modelo.
Para los profesores: # de identidad, nombre, categoría y depart.
Para los estudiantes: # exp, nombre, especialidad y grupo de clase
Un profesor puede trabajar en varias micros y viceversa (en cada una cierta cantidad
de horas)
Un estudiante puede trabajar en varias micros y viceversa(en cada una cierta cantidad
de horas)
Un profesor atiende a varios estudiantes y un estudiante es atendido por varios
profesores, una cierta cantidad de horas semanales.
1. Diseñe el modelo de datos.
2. Hallar utilizando el álgebra relacional:
a) Los nombres de los profesores del departamento GREHU que atienden a
estudiantes del grupo 25.
b) La especialidad de los estudiantes que trabajan en micros marca NEC más
de cinco horas semanales.
c) Los nombres de los estudiantes de la especialidad MCe que son atendidos por
profesores del departamento "Electrónica", los cuales trabajen al menos 10
horas en una micro.
5
Bases de Datos.
Clase Práctica No. 7
Curso 2008 – 2009
d) Los # de las micros donde han trabajado estudiantes de la especialidad
"Industrial" y también profesores del departamento "OCT".
e) Las marcas y modelos de los micros donde han trabajado todos los estudiantes
o todos los profesores.
f) Resolver los incisos anteriores utilizando el cálculo relacional.
6