uea 1115114: base de datosacademicos.azc.uam.mx/cbr/cursos/uea_base_de_datos/... · cálculo...

22
©® 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 Azcapotzalco Oficina: H 3er. piso, Coordinaciones de CBI, Oficina: 18 Tel. 5318 9000 ext. 2011, 112 Contacto: [email protected], Página: http://ce.azc.uam.mx/profesores/cbrrn/

Upload: others

Post on 06-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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/

Page 2: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 2

Recapitulación

1. Estudiamos Cálculo Relacional y SQL

Page 3: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 4: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 4

SQL Modelo de Consulta

SELECT <que> FROM <relación>WHERE <condición>

Page 5: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 6: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 6

BD Relacional, Ejemplo 2V

P

Y

VPY

Copie los datos en su base de datos

Page 7: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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”

Page 8: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 9: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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') )

Page 10: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 11: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 11

Ejemplos

PROVEEDORES QUE SURTEN LA PARTE P2

SELECT DISTINCT `V` . * FROM V, VPYWHERE ((`V`.`V#` = `VPY`.`V#` )AND (`VPY`.`P#` = 'P2'))

Page 12: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 12

Ejemplos

PROVEEDORES QUE SURTEN LA PARTE P2

SELECT `V` . * FROM V, VPYWHERE ((`V`.`V#` = `VPY`.`V#` )AND (`VPY`.`P#` = 'P2'))

Page 13: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 14: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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'))

Page 15: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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

Page 16: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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#` ) )

Page 17: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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) )

Page 18: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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) )

Page 19: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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#` )

Page 20: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® CBR 20

Proyectos Alumnos

Presentación y discusión para su aprobación del proyecto del Curso

Page 21: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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.

Page 22: UEA 1115114: Base de Datosacademicos.azc.uam.mx/cbr/Cursos/UEA_Base_de_Datos/... · Cálculo Relacional (práctica en MySQL) Carlos Barrón Romero Departamento de Ciencias Básicas,

©® 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, ...