You are on page 1of 11

Administracin de Sistemas

Gestores de Base de Datos


Tarea 2: Sentencias SQL

Antonio Esteban Lpez Prez 2 ASIR SEMI

Antonio Esteban Lpez Prez 2 ASIR SEMI

Administracin de Sistemas
Gestores de Base de Datos
Tarea 2: Sentencias SQL

Ejercicio 1: Creacin de Vistas .............................................................. 2


Ejercicio 2: Creacin de Usuarios .......................................................... 5
Ejercicio 3: Permisos de Usuario I .......................................................... 6
Ejercicio 4: Permisos de Usuario II ......................................................... 7
Ejercicio 5: Gestin de bloqueos I .......................................................... 8
Ejercicio 6: Gestin de bloqueos II ......................................................... 9
ANEXO: Creacin previa de la BBDD ..................................................... 10

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 1: Creacin de Vistas


Escribe la sentencia para crear dos vistas: (2 puntos).
La primera afectar a las columnas: codigo, grupo y tutor de la tabla clases.
Lo primero es poner en uso la BBDD baloncesto, luego vemos el contenido de la tabla
clases. Finalmente creamos la consulta de creacin de vista:
create view vista_uno as
select cdigo, grupo, nombre_tutor from clases;

La segunda tomar las columnas: nombre, apellido y tantos_marcados de


jugadores, nombre_tutor y puntuacin de clases, nombre de puestos.
En este caso, la tabla Jugadores se relaciona con clase por medio del campo CLASE y
con puesto por el campo PUESTO. Tambin debemos tener en cuenta que, al existir
nombres iguales en las tres tablas debemos crear alias en la consulta para referirnos
correctamente al campo que queremos seleccionar:
2

Antonio Esteban Lpez Prez 2 ASIR SEMI

Al ejecutar la consulta obtenemos los 28 jugadores con l descripcin de su puesto, su


tutor, etc.

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ahora podemos crear la vista en base a la consulta previa, adems debemos tener en
cuenta que hay que crear un alias para el nombre del puesto con el comando AS:
create view vista_dos as
select j.nombre, j.apellido, j.tantos_marcados,
c.nombre_tutor, c.puntuacion, p.nombre as nombre_puesto
from
where

jugadores j, clases c, puestos p


j.clase = c.codigo and j.puesto = p.codigo;

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 2: Creacin de Usuarios


Escribe la sentencia para crear dos usuarios, asgbd01 y asgbd02, el primero con
contrasea, igual a su nombre de usuario, y el otro sin contrasea. (2 puntos).
Crear usuarios sin especificar nada ms es muy sencillo, son sentencias SQL muy
simples:
create user asgdb01 identified by asgbd01
create user asgbd02

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 3: Permisos de Usuario I


Escribe las sentencias necesarias para darle al usuario asgbd01 permisos para
acceder desde el servidor y cualquier otro puesto. Desde ambos tendr autorizacin
sobre todos los elementos de la base de datos, pero solo podr otorgar permisos
desde el servidor. (2 puntos).
Mediante la sentencia GRANT modificamos los permisos de acceso.
grant all on Baloncesto.* to asgbd01@%;
grant all on Baloncesto.* to asgbd01@localhost with grant
option;
Previamente debemos crear el usuario en localhost para otorgarle permisos slo para
el servidor:

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 4: Permisos de Usuario II


Escribe la sentencia para dar a asgbd02 permisos para acceder desde cualquier
puesto excepto el servidor y que solo pueda realizar consultas, inserciones,
modificaciones y borrados sobre la base de datos Baloncesto. (2 puntos).
Creamos el usuario en localhost (el servidor), le otrogamos permisos y luego se los
quietamos SOLO para el servidor:
create user asgbd02@localhost;
grant select, insert, update, delete on Baloncesto.* to asgbd02@%;
revoke all on Baloncesto.* to asgbd02@localhost;
En este caso no es necesaria la sentencia REVOKE puesto que NO HEMOS
OTORGADO PERMISOS al usuario asgbd02 en localhost (son dos usuarios
distintos)

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 5: Gestin de bloqueos I


Cmo bloqueas la tabla jugadores para lectura y escritura a la vez? (1 punto).
Con la sentencia LOCK TABLE:
lock table jugadores read, jugadores as jugadoreswr write;
Se crea un alias porque no se pueden llamar igual ambas tablas:

Antonio Esteban Lpez Prez 2 ASIR SEMI

Ejercicio 6: Gestin de bloqueos II


Escribe una SELECT que bloquee al jugador TITTO LOPEZ en su ejecucin. (1
punto).
Usamos la clausula lock in share mode:
SELECT * FROM jugadores WHERE nombre LIKE 'TITTO' AND apellido
LIKE 'LOPEZ' LOCK IN SHARE MODE;

Antonio Esteban Lpez Prez 2 ASIR SEMI

ANEXO: Creacin previa de la BBDD


Previamente se ha creado la BBDD usando el fichero en texto plano con las
sentencias SQL que generaban la BBDD:

En el workbench podemos ver las tablas y la BBDD creada

10

You might also like