uea 1115114: base de datosacademicos.azc.uam.mx/cbr/cursos/uea_base_de_datos/... · cálculo...
TRANSCRIPT
©® CBR 1
UEA 1115114: Base de Datos
7. Cálculo Relacional (práctica en MySQL)Carlos Barrón Romero
Departamento de Ciencias Básicas, División Ciencias Básicas e Ingeniería
UAM AzcapotzalcoOficina: H 3er. piso, Coordinaciones de CBI, Oficina: 18
Tel. 5318 9000 ext. 2011, 112Contacto: [email protected],
Página: http://ce.azc.uam.mx/profesores/cbrrn/
©® CBR 2
Recapitulación
1. Estudiamos Cálculo Relacional y SQL
©® CBR 3
Objetivos y actividades de la clase
Ejercicios de SQLLos alumnos realizaran operaciones en el pizarrón, en su cuaderno y en sus computadoras con MySQLPresentación de proyectos
©® CBR 4
SQL Modelo de Consulta
SELECT <que> FROM <relación>WHERE <condición>
©® CBR 5
BD Relacional, Ejemplo 2, Base Provedores_partes_Proyectos
V
VPY YP
Proveedores (V), Partes (P), Proyectos (Y)
Construya la Base de datos en MySQL usando MyPHPAdmin
©® CBR 6
BD Relacional, Ejemplo 2V
P
Y
VPY
Copie los datos en su base de datos
©® CBR 7
Base de Datos Partes, Proveedores y Proyectos1. Copie el archivo
“Cla_21_par_proy_prov.zip” de la página del curso.
2. Descompacte los archivos3. Importe la Bd de Datos Partes,
Proveedores y Proyectos “Partes_Proyectos_Prov.sql”
4. Realice los ejemplos del archivo “Cla_bd_21_consultas_Par_proy_prov__MySql .txt”
©® CBR 8
Ejemplos, Escriba la versión SQL
CLAVE Y ESTATUS DE PROVEEDORES CON ESTATUS > 20 Y CIUDAD = París
(V.V#, V.STATUS) WHERE EXISTS (V.CIUDAD = ‘PARIS’) AND V.STATUS > 20
(V.V#, V.STATUS) WHERE FORALL (V.CIUDAD = ‘PARIS’) AND V.STATUS > 20
(V.V#, V.STATUS) WHERE V.CIUDAD = ‘PARIS’AND V.STATUS > 20
STATUS30
V#V3
Realice los ejemplos en MySQL
©® CBR 9
Ejemplos
CLAVE Y ESTATUS DE PROVEEDORES CON ESTATUS > 20 Y CIUDAD = París
SELECT `V`.`V#`, V.STATUS FROM VWHERE ( (`V`.`STATUS` >20) AND ( `V`.`CIUDAD` = 'París') )
©® CBR 10
Ejemplos, Escriba la versión SQL
PROVEEDORES QUE SURTEN LA PARTE P2
V WHERE EXISTS ( V.V# = VPY.V# AND
VPY.P# = P#(‘P2’))
CIUDADATENAS
STATUS30
PROVEEDORADAMS
V#V5
©® CBR 11
Ejemplos
PROVEEDORES QUE SURTEN LA PARTE P2
SELECT DISTINCT `V` . * FROM V, VPYWHERE ((`V`.`V#` = `VPY`.`V#` )AND (`VPY`.`P#` = 'P2'))
©® CBR 12
Ejemplos
PROVEEDORES QUE SURTEN LA PARTE P2
SELECT `V` . * FROM V, VPYWHERE ((`V`.`V#` = `VPY`.`V#` )AND (`VPY`.`P#` = 'P2'))
©® CBR 13
Ejemplos, Escriba la versión SQL
NOMBRE DE LOS PROVEEDORES QUE SURTEN UNA PARTE ROJA
V.PROVEEDOR WHERE EXISTS ( V.V# = VPY.V# AND
VPY.P# = P.P# ANDP.COLOR = COLOR(‘ROJO’)
)PROVEEDORSMITHBLAKECLARKADAMS
©® CBR 14
Ejemplos
PROVEEDORES QUE SURTEN una parte ROJA
SELECT `V` . * FROM V, VPY, PWHERE ( ( `V`.`V#` = `VPY`.`V#` )AND ( `VPY`.`P#` = `P`.`P#`)AND (`P`.`COLOR` = 'Rojo'))
SELECT DISTINCT `V`. * FROM V, VPY, PWHERE ( (`V`.`V#` = `VPY`.`V#` )AND (`VPY`.`P#` = `P`.`P#` )AND (`P`.`COLOR` = 'Rojo'))
©® CBR 15
Ejemplos, Escriba la versión SQL
NOMBRE DE LOS PROVEEDORES QUE SURTEN TODAS LAS PARTES
V.PROVEEDOR WHERE FORALL P (
EXISTS VPY ( VPY.V# = V.V# AND VPY.P# = P.P#) )
PROVEEDORADAMS
©® CBR 16
Ejemplos
Nombre de los proveedores que surten todas las partes
SELECT DISTINCT `V`.`PROVEEDOR` FROM VWHERE NOT EXISTS ( SELECT * FROM PWHERE NOT EXISTS ( SELECT *
FROM VPYWHERE `VPY`.`V#` = `V`.`V#`AND `VPY`.`P#`= `P`.`P#` ) )
©® CBR 17
Ejemplos
Nombre de los proveedores que surten todas las partes, versión por número de elementos en partes
SELECT V.PROVEEDOR FROM VWHERE ( ( SELECT COUNT(DISTINCT
VPY.`P#`)FROM VPY WHERE (VPY.`V#` = V.`V#`)) = (SELECT COUNT(P.`P#`) FROM P) )
©® CBR 18
Ejemplos
Nombre de los proveedores que surten todas las partes
NOTA Esta produce una respuesta equivocada
SELECT V.* FROM VWHERE ( (SELECT COUNT(VPY.`P#`)FROM VPY WHERE (VPY.`V#` = V.`V#`)) >= (SELECT COUNT(P.`P#`) FROM P) )
©® CBR 19
Ejemplos
Compare la consulta anterior con esta.Lista de proveedores que surte al
menos una parteSELECT DISTINCT `V`.`PROVEEDOR`FROM V, VPY, P WHERE (`V`.`V#` = `VPY`.`V#` )
©® CBR 20
Proyectos Alumnos
Presentación y discusión para su aprobación del proyecto del Curso
©® CBR 21
Cierre de claseEl Cálculo de Predicados y el Calculo Relacional son similares, hay diferencias formales y semánticas que aun hoy día son temas de investigación
El SELECT <que> FROM <relación> WHERE <condición> de SQL es muy parecido a un cálculo relacional
LA PRACTICA HACE AL MAESTRO Y LES QUITA LAS DUDAS, por tanto es aconsejable:Practicar las operaciones del cálculo relacional, hacer todos los ejercicios de los capítulo 7, Libro de BD de C.J. Date.
©® CBR 22Carlos Barron Romero22
Conclusiones y reflexiones
Contacto: Carlos Barrón [email protected]
Este es un espacio para meditar que se entendió y reflexionar en consecuencias, usos, mejoras, relaciones con otros temas, ...