Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
Índice Presentación Validación 𝑓 = 𝐶𝑎𝑠𝑜𝑠 𝑒𝑥𝑖𝑡𝑜𝑠 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑐𝑎𝑠𝑜𝑠 Validación cruzada Leave one-out Bootstrap (1 − 1 𝑛 ) 𝑛 = 𝑒−1 = 0.368 𝐸𝑡𝑜𝑡𝑎𝑙 = 0.632 ∗ 𝐸𝑝𝑟𝑢𝑒𝑏𝑎 + 0.368 ∗ 𝐸𝑒𝑛𝑡𝑟𝑛𝑎𝑚𝑖𝑒𝑛𝑡𝑜 Base de datos - - - Panorama en los modelos de datos Modelo relacional - - - - Elementos entidad-relación - - - 𝐷 empleado(rfc, nombre, paterno, materno, puesto, sueldo) rfc nombre paterno materno puesto sueldo besm- 770216- fx5 Mariana Benítez Suárez Investigadora $30,000 esmr- 821021- gh7 Rodrigo Estévez Milán Programador/Analista $25,000 mafh- 920226- j24 Horacio Martínez Fernández Becario $5,000 rfc Limitaciones - - - - - - - - SQL Álgebra relacional 𝑅 𝑆 - 𝑅 ∪ 𝑆 𝑞 𝑞 ∈ 𝑅 𝑞 ∈ 𝑆 𝑞 - 𝑅 ∩ 𝑆 𝑞 𝑞 ∈ 𝑅 𝑞 ∈ 𝑆 - 𝑅 − 𝑆 𝑞 𝑞 ∈ 𝑅 𝑞 ∉ 𝑆 𝑆 − 𝑅 𝑃 𝑄 #pasajero nombre edad sexo 2343 Ernesto 35 H 3241 Juan 16 H 8723 Alicia 78 M 8323 Ofelia 34 M 𝑃 #pasajero nombre edad sexo 7638 Elena 45 m 5372 Andrés 21 h 8323 Ofelia 34 m 2343 Ernesto 35 h 𝑄 #pasajero Nombre Edad sexo 2343 Ernesto 35 h 3241 Juan 16 h 8723 Alicia 78 m #pasajero nombre edad sexo 2343 Ernesto 35 h 8323 Ofelia 34 m 𝑃 ∩ 𝑄 7638 Elena 45 m 5372 Andrés 21 h 8323 Ofelia 34 m 𝑃 ∪ 𝑄 #pasajero nombre edad sexo 3241 Juan 16 h 87 3 Alicia 78 m 𝑃 − 𝑄 - 𝑃 𝑃 𝜋𝑎1,𝑎2,…,𝑎𝑛(𝑅) {𝑎1, 𝑎2, … , 𝑎𝑛} 𝑃 - 𝑄 𝑃 𝜎𝐶(𝑄) 𝐶 𝑄 𝑃 𝜋#𝑒𝑚𝑝𝑙𝑒𝑎𝑑𝑜,𝑒𝑑𝑎𝑑(𝑃) 2343 35 3241 16 8723 78 8323 34 𝑅 = 𝑃 ∪ 𝑄 𝜎𝑒𝑑𝑎𝑑≥18(𝑅) #pasajero nombre edad sexo 2343 Ernesto 35 h 8723 Alicia 78 m 7638 Elena 45 m 5372 Andrés 21 h 8323 Ofelia 34 m 𝜎𝑒𝑑𝑎𝑑≥18(𝑅) 𝑃 ∪ 𝑄 𝜋#𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜,𝑠𝑒𝑥𝑜,𝑒𝑑𝑎𝑑(𝜎𝑒𝑑𝑎𝑑≥18(𝑃 ∪ 𝑄)) #pasajero edad sexo 2343 35 h 8723 78 m 7638 45 m 5372 21 h 8323 34 m 𝜋#𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜,𝑠𝑒𝑥𝑜,𝑒𝑑𝑎𝑑(𝜎𝑒𝑑𝑎𝑑≥18∧𝑠𝑒𝑥𝑜=′𝑚′(𝑃 ∪ 𝑄)) #pasajero edad sexo 8723 78 m 7638 45 m 8323 34 m 𝑃 𝑄 𝑃 × 𝑄 (𝑝, 𝑞) 𝑝 ∈ 𝑃 𝑞 ∈ 𝑄 𝑃. #𝑒𝑚𝑝𝑙𝑒𝑎𝑑𝑜 #𝑒𝑚𝑝𝑙𝑒𝑎𝑑𝑜 𝑃 𝑋 𝑌 𝑋 × 𝑌 coord 1 2 4 𝑋 coord. -1 -2 -3 𝑌 𝑋. 𝑐𝑜𝑜𝑟𝑑 𝑌. 𝑐𝑜𝑜𝑟𝑑 1 -1 1 -2 1 -3 2 -1 2 -2 2 -3 3 -1 3 -2 3 -3 𝑋 × 𝑌 𝑅, 𝑆 𝑅(𝑎1, … , 𝑎𝑛, 𝑟1, … , 𝑟𝑚) 𝑆(𝑎1, … , 𝑎𝑛, 𝑠1, … , 𝑠𝑡) 𝑆, 𝑅 𝑅 ⋈ 𝑆 𝑅 ⋈ 𝑆(𝑎1, … , 𝑎𝑛, 𝑟1, … , 𝑟𝑚, 𝑠1, … , 𝑠𝑡) 𝑅 × 𝑆 𝑅. 𝑎1 = 𝑆. 𝑎1, … , 𝑅. 𝑎𝑛 = 𝑆. 𝑎𝑛 𝑃, 𝑄 𝑃 𝑄 𝑃 ⋈ 𝑄 #pasajero #vuelo nombre edad sexo 2343 334 Ernesto 35 h 3241 432 Juan 16 h 8723 432 Alicia 78 m 7638 113 Elena 45 m 5372 435 Andrés 21 h 8323 113 Ofelia 34 m #destino país estado nombre 1 México Oaxaca Puerto Escondido 2 Brasil Sao Paulo Sao Paulo 3 China Pekín Muralla 4 México Nuevo León Monterrey #vuelo origen destino salida arribo 113 3 2 7:00 21:00 421 1 3 10:00 04:00 435 1 2 16:00 10:00 442 1 4 20:00 21:00 443 4 1 14:00 15:00 334 2 1 13:00 23:00 321 4 2 15:00 01:00 450 2 4 20:00 10:00 116 3 1 11:00 05:00 #pasajero P.#vuelo nombre edad sexo V.#vuelo origen destino salida arribo 2343 334 Ernesto 35 h 334 2 1 13:00 23:00 3241 432 Juan 16 h 435 1 2 16:00 10:00 5372 435 Andrés 21 h 334 2 1 13:00 23:00 5372 435 Andrés 21 h 435 1 2 16:00 10:00 7638 113 Elena 45 m 443 4 1 14:00 15:00 8323 113 Ofelia 34 m 113 3 2 7:00 21:00 8323 113 Ofelia 34 m 116 3 1 11:00 05:00 8723 432 Alicia 78 m 442 1 4 20:00 21:00 𝑆𝑒𝑎 𝐶 = {#𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜, 𝑃. #𝑣𝑢𝑒𝑙𝑜, 𝑛𝑜𝑚𝑏𝑟𝑒, 𝑒𝑑𝑎𝑑, 𝑜𝑟𝑖𝑔𝑒𝑛, 𝑑𝑒𝑠𝑡𝑖𝑛𝑜, 𝑠𝑎𝑙𝑖𝑑𝑎, 𝑎𝑟𝑟𝑖𝑏𝑜} 𝑅 ← 𝜋𝐶(𝑃 ⋈ 𝑉) #pasajero P.#vuelo nombre edad origen destino salida arribo 2343 334 Ernesto 35 2 1 13:00 23:00 3241 432 Juan 16 1 2 16:00 10:00 5372 435 Andrés 21 2 1 13:00 23:00 5372 435 Andrés 21 1 2 16:00 10:00 7638 113 Elena 45 4 1 14:00 15:00 8323 113 Ofelia 34 3 2 7:00 21:00 8323 113 Ofelia 34 3 1 11:00 05:00 8723 432 Alicia 78 1 4 20:00 21:00 𝑅 𝜎𝑒𝑑𝑎𝑑>21(𝑅) ⋈𝐴 𝜋𝐶(𝑃 ⋈#𝑣𝑢𝑒𝑙𝑜 𝑉) Estructura - - - 𝒄𝒓𝒆𝒂𝒕𝒆 𝒅𝒂𝒕𝒂𝒃𝒂𝒔𝒆 < 𝑛𝑜𝑚𝑏𝑟𝑒_𝑏𝑎𝑠𝑒 > createdatabase aerolínea 𝒄𝒓𝒆𝒂𝒕𝒆 𝒕𝒂𝒃𝒍𝒆 < 𝑛𝑜𝑚𝑏𝑟𝑒_𝑡𝑎𝑏𝑙𝑎 > ( < 𝑙𝑖𝑠𝑡𝑎_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 > ) < 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 >∶= < 𝑛𝑜𝑚𝑏𝑟𝑒_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 >< 𝑡𝑖𝑝𝑜_𝑑𝑒_𝑑𝑎𝑡𝑜 > [𝒏𝒐𝒕 𝒏𝒖𝒍𝒍] SMALLINT, INTEGER, INT, BIGINT, BOOLEAN, DECIMAL, FLOAT, DOUBLE DATE, DATETIME, TIME, TIMESTAMP, YEAR CHAR, VARCHAR, BLOB CREATE TABLE destinos ( id_destinoCHAR(1) NOT NULL, paisVARCHAR(10) NOT NULL, estadoVARCHAR(10) NOT NULL, nombreVARCHAR(20) NOT NULL, PRIMARY KEY (id_destino) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; id_destino CREATE TABLE vuelos ( id_vueloVARCHAR(4) NOT NULL, origenCHAR(1) NOT NULL, destinoCHAR(1) NOT NULL, salidaTIME NOT NULL, arriboTIME NOT NULL, PRIMARY KEY (id_vuelo), CONSTRAINT `fk_destino` FOREIGN KEY (origen) REFERENCES destinos (id_destino) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT `fk_origen` FOREIGN KEY (destino) REFERENCES destinos (id_destino) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; aerolínea.sql aerolínea_datos.sql .sql C:\> mysql –u checo –p < aerolinea.sql C:\> mysql –u checo –p < aerolinea_datos.sql .sql fk_destino y fk_origen FOREIGN KEY (origen) REFERENCES destinos (id_destino) ON DELETE RESTRICT ON UPDATE CASCADE id_destino , ; 𝑾𝑯𝑬𝑹𝑬 < 𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜 > < 𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜 >≔ < 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 > 𝑂𝑃𝑐𝑜𝑚𝑝 < 𝑣𝑎𝑙𝑜𝑟 > {𝐴𝑁𝐷|𝑂𝑅|𝑁𝑂𝑇 < 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 > 𝑂𝑃𝑐𝑜𝑚𝑝 < 𝑣𝑎𝑙𝑜𝑟 > } 𝑂𝑃𝑐𝑜𝑚𝑝 WHERE fecha_salida > ’2013-02-23’ (1) WHERE destino = ’1’ (2) WHERE país <> ‘Mèxico’ (3) Consultas y subconsultas SELECT [DISTINCT | UNIQUE] < atributos > FROM <tablas> [WHERE <condición>] <atributos> := * | [<relación>.]<atributo> [[<relación],] <atributo>] SELECT * FROM vuelos; SELECT id_vuelo FROM vuelos; 𝜋𝑖𝑑_𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜,𝑠𝑒𝑥𝑜(𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜𝑠) SELECT id_pasajero, sexo FROM pasajeros SELECT pasajeros.id_pasajero,pasajeros.sexo FROM pasajeros SELECT p.id_pasajero, p.sexo FROM pasajeros P 𝜎𝑠𝑒𝑥𝑜=′ℎ′ (𝜋𝑖𝑑_𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜,𝑠𝑒𝑥𝑜(𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜𝑠)) SELECT P.id_pasajero, P.sexo FROM pasajeros P WHERE p.sexo=’h’ 𝜎𝑠𝑎𝑙𝑖𝑑𝑎>00:00∧ 𝑠𝑎𝑙𝑖𝑑𝑎<12:00 (𝜋𝑖𝑑_𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜,𝑜𝑟𝑖𝑔𝑒𝑛,𝑑𝑒𝑠𝑡𝑖𝑛𝑜(𝑣𝑢𝑒𝑙𝑜𝑠)) SELECT id_vuelo, origen, destino, salida FROM vuelos WHERE salida > '00:00:00' AND salida <='12:00:00'; < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛1 > 𝑼𝑵𝑰𝑶𝑵 < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛2 > SELECT id_vuelo AS c1, destino AS c2 FROM vuelos UNION SELECT id_pasajero AS c1, nombre AS c2 FROM pasajeros 𝑣𝑢𝑒𝑙𝑜𝑠 × 𝑝𝑎𝑠𝑎𝑗𝑒𝑟𝑜𝑠 SELECT * FROM vuelos, pasajeros; SELECT * FROM vuelos, pasajeros WHERE nombre=’Ernesto’ AND destino=’3’; SELECT * FROM vuelos, pasajeros; SELECT * FROM vuelos, pasajeros WHERE vuelos.id_vuelo = pasajeros.id_vuelo; SELECT * FROM vuelos V JOIN pasajeros P ON (V.id_vuelo = P.id_vuelo); SELECT * FROM vuelos V JOIN pasajeros P ON (V.id_vuelo = P.id_vuelo) JOIN destinos D ON (D.id_destino = V.origen); Actualizaciones y borrado 𝑰𝑵𝑺𝑬𝑹𝑻 < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 > 𝑽𝑨𝑳𝑼𝑬𝑺 (< 𝑙𝑖𝑠𝑡𝑎_𝑑𝑒_ 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 >) INSERT INTO destinos VALUES ('2', 'Brasil', 'Sao Paulo', 'Sao Paulo'); INSERT INTO vuelos VALUES ('435', '1', '2', '16:00', '10:00'); INSERT INTO pasajeros VALUES ('3241', '435', 'Juan', '16', 'h'); id_destino id_destino id_pasajero id_vuelo = 435 𝑰𝑵𝑺𝑬𝑹𝑻 < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 > (< 𝑙𝑖𝑠𝑡𝑎_𝑑𝑒_𝑛𝑜𝑚𝑏𝑟𝑒_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 >) 𝑽𝑨𝑳𝑼𝑬𝑺(< 𝑙𝑖𝑠𝑡𝑎_𝑑𝑒_ 𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 >) INSERT INTO destinos (pais, estado, nombre, id_destino) VALUES ('La Habana', 'Cuba', 'La Habana', '5'); SELECT * FROM destinos; +------------+-----------+-----------+------------------+ | id_destino | pais | estado | nombre | +------------+-----------+-----------+------------------+ | 1 | México | Oaxaca | Puerto Escondido | | 2 | Brasil | Sao Paulo | Sao Paulo | | 3 | China | Pekín | Muralla | | 4 | México | Nvo León | Monterrey | +------------+-----------+-----------+------------------+ 4 rows in set (0.00 sec) SELECT * FROM destinos; +------------+-----------+-----------+------------------+ | id_destino | pais | estado | nombre | +------------+-----------+-----------+------------------+ | 1 | México | Oaxaca | Puerto Escondido | | 2 | Brasil | Sao Paulo | Sao Paulo | | 3 | China | Pekín | Muralla | | 4 | México | Nvo León | Monterrey | | 5 | La Habana | Cuba | La Habana | +------------+-----------+-----------+------------------+ 5 rows in set (0.00 sec) 𝑼𝑷𝑫𝑨𝑻𝑬 < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 > 𝑺𝑬𝑻 < 𝑙𝑖𝑠𝑡𝑎_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 > 𝑊𝐻𝐸𝑅𝐸 < 𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜 > < 𝑙𝑖𝑠𝑡𝑎_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 >≔ < 𝑛𝑜𝑚𝑏𝑟𝑒_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 >=< 𝑣𝑎𝑙𝑜𝑟 > {, < 𝑛𝑜𝑚𝑏𝑟𝑒_𝑎𝑡𝑟𝑖𝑏𝑢𝑡𝑜 >=< 𝑣𝑎𝑙𝑜𝑟 >} mysql> select * from pasajeros; +-------------+----------+-----------+------+------+ | id_pasajero | id_vuelo | nombre | edad | sexo | +-------------+----------+-----------+------+------+ | 2343 | 334 | Ernesto | 35 | h | | 3241 | 435 | Juan | 16 | h | | 5372 | 334 | Andrés | 21 | h | | 5372 | 435 | Andrés | 21 | h | | 7638 | 443 | Elena | 45 | m | | 8323 | 113 | Ofelia | 34 | m | | 8323 | 116 | Ofelia | 21 | h | | 8723 | 442 | Alicia | 78 | m | +-------------+----------+-----------+------+------+ 8 rows in set (0.00 sec) UPDATE pasajeros SET nombre='Ernestina', sexo='m' WHERE nombre='Ernesto'; SELECT * FROM pasajeros; +-------------+----------+-----------+------+------+ | id_pasajero | id_vuelo | nombre | edad | sexo | +-------------+----------+-----------+------+------+ | 2343 | 334 | Ernestina | 35 | m | | 3241 | 435 | Juan | 16 | h | | 5372 | 334 | Andrés | 21 | h | | 5372 | 435 | Andrés | 21 | h | | 7638 | 443 | Elena | 45 | m | | 8323 | 113 | Ofelia | 34 | m | | 8323 | 116 | Ofelia | 21 | h | | 8723 | 442 | Alicia | 78 | m | +-------------+----------+-----------+------+------+ 8 rows in set (0.00 sec) UPDATE pasajeros SET edad='31' WHERE edad='21'; SELECT * FROM pasajeros; +-------------+----------+-----------+------+------+ | id_pasajero | id_vuelo | nombre | edad | sexo | +-------------+----------+-----------+------+------+ | 2343 | 334 | Ernestina | 35 | m | | 3241 | 435 | Juan | 16 | h | | 5372 | 334 | Andrés | 31 | h | | 5372 | 435 | Andrés | 31 | h | | 7638 | 443 | Elena | 45 | m | | 8323 | 113 | Ofelia | 34 | m | | 8323 | 116 | Ofelia | 31 | h | | 8723 | 442 | Alicia | 78 | m | +-------------+----------+-----------+------+------+ 8 rows in set (0.00 sec) UPDATE t1 SET c=valor_nuevo; 𝑫𝑬𝑳𝑬𝑻𝑬 𝑭𝑹𝑶𝑴 < 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 > 𝑾𝑯𝑬𝑹𝑬 < 𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜 > mysql> DELETE FROM destinos WHERE id_destino='1'; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`aerolinea`.`vuelos`, CONSTRAINT `fk_destino` FOREIGN KEY (`origen`) REFERENCES `destinos` (`id_destino`) ON UPDATE CASCADE) mysql> DELETE FROM destinos WHERE id_destino='5'; Query OK, 1 row affected (0.16 sec) Cierre de la unidad Fuentes de consulta
Compartir