Download Clase Práctica 7
Document related concepts
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