Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practicacandados

1,603 views

Published on

  • Be the first to comment

  • Be the first to like this

Practicacandados

  1. 1. Bases de DatosL.I. Ma. Luisa Velasco Ramírez.Utilizando la base de datos organizacion que esta compuesta por las relaciones: compania,dirige, trabaja y vive.CREATE DATABASE organizacion;USE organizacion;CREATE TABLE compania ( compania varchar(20) NOT NULL, ciudad varchar(20), PRIMARY KEY (compania));INSERT INTO compania (compania,ciudad) VALUES (Chedraui,xalapa,ver.), (El corte ingles,xalapa,ver.);CREATE TABLE `dirige` ( nombre varchar(20) NOT NULL, nombre_director varchar(20), PRIMARY KEY (nombre));INSERT INTO dirige (nombre,nombre_director) VALUES (Ale,Jesus), (Dora,Jesus), (Jimenea,Gabi), (Jose,Jesus), (Julio,Gabi);CREATE TABLE vive ( nombre varchar(20) NOT NULL, calle varchar(25) default NULL, ciudad varchar(20) default NULL, PRIMARY KEY (nombre));INSERT INTO vive (nombre,calle,ciudad) VALUES (Ale,francisco rivera,Banderilla), (Dora,av. 20 noviembre,xalapa,ver.), (Gabi,av.orizaba,xalapa,ver.), (Jesus,martires 28,xalapa,ver.), (Jimena,rebsamen,xalapa,ver.), (Jose,martires 28,xalapa,ver.), (Julio,av.orizaba,xalapa,ver.);CREATE TABLE trabaja ( nombre varchar(20) NOT NULL, compania varchar(20) NOT NULL, 1
  2. 2. Bases de DatosL.I. Ma. Luisa Velasco Ramírez. salario int, PRIMARY KEY (nombre,compania), FOREIGN KEY (nombre) REFERENCES vive(nombre), FOREIGN KEY (compania) REFERENCES compania (compania;INSERT INTO trabaja (nombre,compania,salario) VALUES (Ale,El corte ingles,2000), (Dora,El corte ingles,2000), (Jesus,El corte ingles,4000), (Jose,El corte ingles,2000);Abrir dos sesiones en Mysql para trabajar de manera concurrente.Poner en uso la base de datos organización.Nota: Los datos con los que se realizaron las consultas pueden ser no los mismos queustedes tienen capturados, adaptar las consultas de modo que puedan realizarse. 2
  3. 3. Bases de DatosL.I. Ma. Luisa Velasco Ramírez.Sesión 1:mysql> begin;Query OK, 0 rows affected (0.00 sec)mysql> select * from compania where compania="Chedraui" lock in share mode;+----------+------------+| compania | ciudad |+----------+------------+| Chedraui | Banderilla |+----------+------------+1 row in set (0.00 sec)Sesión 2:mysql> begin;Query OK, 0 rows affected (0.00 sec)mysql> update compania set ciudad="Coatepec" where compania="Chedraui";Verificar que sucedeDar commit en la sesión 1 y verificar que sucede la sesión 2;Sesión 1:mysql> begin;Query OK, 0 rows affected (0.00 sec)mysql> select salario from trabaja where nombre=”Ale” for update;+--------+| salario |+--------+| 2000 |+--------+1 row in set (0.00 sec)Sesión 2:mysql> begin;Query OK, 0 rows affected (0.00 sec)mysql> update trabaja set salario=4000 where nombre="Ale"; 3
  4. 4. Bases de DatosL.I. Ma. Luisa Velasco Ramírez.Verificar que pasa en la sesión 2Dar commit en la sesión 1 y verificar la sesión 2Volver a repetir la consulta de la sesión 1 en esa misma sesión:mysql> begin;Query OK, 0 rows affected (0.00 sec)mysql> select salario from trabaja where nombre=”Ale” for update;Sin haber dado el commit en la sesión 2 y verificar que sucede.Dar commit en la sesión 2 y verificar que sucede en la sesión 1. Sesión 1:mysql> set autocommit=0;Query OK, 0 rows affected (0.06 sec)mysql> lock table trabaja write;Query OK, 0 rows affected (0.00 sec)Sesión 2:mysql> set autocommit=0;Query OK, 0 rows affected (0.00 sec)mysql> select * from trabaja;Verificar lo que sucedeSesión 1:mysql> unlock tables;Query OK, 0 rows affected (0.00 sec)Sesión 2: Verificar lo que sucede, un ejemplo es:+--------+-----------------+---------+| nombre | compania | salario |+--------+-----------------+---------+| Ale | El corte ingles | 4000 || Dora | El corte ingles | 2000 || Jesus | El corte ingles | 4000 || Jose | El corte ingles | 2000 |+--------+-----------------+---------+4 rows in set (8.61 sec) 4
  5. 5. Bases de DatosL.I. Ma. Luisa Velasco Ramírez.Repetir la práctica desde la señal  pero en lugar de aplicar un bloqueo de escriturautilizar un bloqueo de lectura ( lock table nombre_tabla read).Investigar para que sirve el autocommit. 5

×