Logo Studenta

MCOM2_U3_contenido - Wendy Flores

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

Continuar navegando

Materiales relacionados

8 pag.
200315-BOcba-4s27F3

User badge image

Aprenda y Aprenda

168 pag.
40 pag.
02-08-18-x

User badge image

Todo para que Aprendas

14 pag.
090212-seccion1

User badge image

Aprenda y Aprenda