SlideShare una empresa de Scribd logo
1 de 5
Bases de Datos
L.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
Bases de Datos
L.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 que
ustedes tienen capturados, adaptar las consultas de modo que puedan realizarse.




                                                                                  2
Bases de Datos
L.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 sucede

Dar 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
Bases de Datos
L.I. Ma. Luisa Velasco Ramírez.
Verificar que pasa en la sesión 2

Dar commit en la sesión 1 y verificar la sesión 2

Volver 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 sucede

Sesió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
Bases de Datos
L.I. Ma. Luisa Velasco Ramírez.




Repetir la práctica desde la señal  pero en lugar de aplicar un bloqueo de escritura
utilizar un bloqueo de lectura ( lock table nombre_tabla read).

Investigar para que sirve el autocommit.




                                                                                        5

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Instrucciones basicas de mySQL
Instrucciones basicas de mySQLInstrucciones basicas de mySQL
Instrucciones basicas de mySQL
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Kruskal
KruskalKruskal
Kruskal
 
Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12
 

Destacado (16)

Proyecto final de algoritmica
Proyecto final de algoritmicaProyecto final de algoritmica
Proyecto final de algoritmica
 
Ejercicios arreglos
Ejercicios arreglosEjercicios arreglos
Ejercicios arreglos
 
Ejercicios arreglos
Ejercicios arreglosEjercicios arreglos
Ejercicios arreglos
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Ejercicios3parte
Ejercicios3parteEjercicios3parte
Ejercicios3parte
 
Practica controlconcurrencia
Practica controlconcurrenciaPractica controlconcurrencia
Practica controlconcurrencia
 
Ejercicio privilegios
Ejercicio privilegiosEjercicio privilegios
Ejercicio privilegios
 
Base de-datos-cine
Base de-datos-cineBase de-datos-cine
Base de-datos-cine
 
Transaccion
TransaccionTransaccion
Transaccion
 
Respaldando bd
Respaldando bdRespaldando bd
Respaldando bd
 
Ejercicio2 mysql
Ejercicio2 mysqlEjercicio2 mysql
Ejercicio2 mysql
 
Scrip de la base de datos cine
Scrip de la base de datos cineScrip de la base de datos cine
Scrip de la base de datos cine
 
Transacciones en MySQL
Transacciones en MySQLTransacciones en MySQL
Transacciones en MySQL
 
Transacciones y manejo de errores en mysql
Transacciones y manejo de errores en mysqlTransacciones y manejo de errores en mysql
Transacciones y manejo de errores en mysql
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
Creación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yogCreación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yog
 

Similar a Practicacandados

Similar a Practicacandados (20)

Mysql
MysqlMysql
Mysql
 
Modulo de programacion sql unidad II
Modulo de programacion sql   unidad IIModulo de programacion sql   unidad II
Modulo de programacion sql unidad II
 
Mysql
MysqlMysql
Mysql
 
210927124637-Manual MySQL.pdf
210927124637-Manual MySQL.pdf210927124637-Manual MySQL.pdf
210927124637-Manual MySQL.pdf
 
Manual MySQL.pdf
Manual MySQL.pdfManual MySQL.pdf
Manual MySQL.pdf
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
54563910 curso-de-mysql
54563910 curso-de-mysql54563910 curso-de-mysql
54563910 curso-de-mysql
 
Sql desde cero
Sql desde ceroSql desde cero
Sql desde cero
 
Curso my sql
Curso my sqlCurso my sql
Curso my sql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial básico de my sql
Tutorial básico de my sqlTutorial básico de my sql
Tutorial básico de my sql
 
Tutorial mysql-basico
Tutorial mysql-basicoTutorial mysql-basico
Tutorial mysql-basico
 
Manualmysql
ManualmysqlManualmysql
Manualmysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Introducción a MySql
Introducción a MySqlIntroducción a MySql
Introducción a MySql
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
DESPLIEGUE SERVIDOR BASE DE DATOS
DESPLIEGUE SERVIDOR BASE DE DATOSDESPLIEGUE SERVIDOR BASE DE DATOS
DESPLIEGUE SERVIDOR BASE DE DATOS
 

Más de María Luisa Velasco (20)

Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Ejercicios normalización
Ejercicios normalizaciónEjercicios normalización
Ejercicios normalización
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Modulos sgbd
Modulos sgbdModulos sgbd
Modulos sgbd
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Ejercicios arreglos4
Ejercicios arreglos4Ejercicios arreglos4
Ejercicios arreglos4
 
Ejercicios arreglos2
Ejercicios arreglos2Ejercicios arreglos2
Ejercicios arreglos2
 
Seguridad bd
Seguridad bdSeguridad bd
Seguridad bd
 
Ejercicios2parte
Ejercicios2parteEjercicios2parte
Ejercicios2parte
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Concurrencia
ConcurrenciaConcurrencia
Concurrencia
 

Practicacandados

  • 1. Bases de Datos L.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. Bases de Datos L.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 que ustedes tienen capturados, adaptar las consultas de modo que puedan realizarse. 2
  • 3. Bases de Datos L.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 sucede Dar 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. Bases de Datos L.I. Ma. Luisa Velasco Ramírez. Verificar que pasa en la sesión 2 Dar commit en la sesión 1 y verificar la sesión 2 Volver 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 sucede Sesió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. Bases de Datos L.I. Ma. Luisa Velasco Ramírez. Repetir la práctica desde la señal  pero en lugar de aplicar un bloqueo de escritura utilizar un bloqueo de lectura ( lock table nombre_tabla read). Investigar para que sirve el autocommit. 5