miércoles, 29 de abril de 2020

Solución Primer Parcial


Fundamentación Teórica. 
Enuncie dos políticas de seguridad para un DBA:
Crear las bases de datos con el usuario postgres.
NO dar permiso de creación de base de datos a los usuarios.
NO dar permiso de creación de usuarios a los usuarios.
LIMITAR el número de conexiones a las BD.
CONCEDER solo privilegios de lectura o escritura sobre ciertas tablas. 
Plantee la Sentencia SQL, que remueva todos los permisos para todos los usuarios de la base de datos “Inventarios”
REVOKE ALL ON DATABASE Inventarios FROM public;
Plantee la Sentencia SQL, para alterar un usuario llamado “atletico” con password “bucaros” y que tenga permisos de LOGIN y además no le permita crear bases de Datos.
ALTER user atletico LOGIN PASSWORD ‘bucaros’ NOCREATEDB;
Plantee las Sentencia SQL, para eliminar el usuario “nanaya” y otra para observar todos los usuarios del sistema.
DROP USER nanaya; -> Para eliminar un usuario.
SELECT * FROM pg_user; -> Para observar todos los usuarios del sistema.
Enuncie los pasos a seguir desde el PG Admin, para no ingresar con el usuario postgres sino con un nuevo usuario llamado “Santiago” y nos conectaremos a la base de datos “Inventarios”.
Clic derecho sobre el nombre del servidor -> propiedades, aparecerá una ventana emergente con la configuración de la conexión, cambie la propiedad username por Santiago y la propiedad Maintenance DB por Inventarios

SQL COMANDOS DDL Y DML


Fundamentación Práctica

Teniendo en cuenta las figuras CONSOLA, JUEGO y CONSOLA_JUEGO, utilizar el lenguaje SQL del Sistema Manejador de Bases de Datos postgresql para:

Crear la base de datos (relacionado con su contexto)
CREATE DATABASE consolas
Crear las tablas (con sus respectivas llaves primarias y foráneas, si es el caso)
CREATE TABLE consola (
id_consola int,
nombre varchar (50),
tipo varchar (15),
marca varchar (50),
PRIMARY KEY (id_consola)
);

CREATE TABLE juego(
id_juego int,
titulo varchar(50),
genero varchar(50),
PRIMARY KEY (id_juego)
);

CREATE TABLE consola_juego(
id_consola int,
id_juego int,
stock int, 
PRIMARY KEY (id_consola, id_juego),
FOREIGN KEY (id_consola) REFERENCES consola(id_consola),
FOREIGN KEY (id_juego) REFERENCES juego(id_juego)
);

Insertar los registros (que aparecen en las figuras)

INSERT INTO consola  VALUES(1,'PS4','Sobremesa','Sony');
INSERT INTO consola(id_consola, nombre, tipo, marca) VALUES(2,'XBOX ONE','Sobremesa','Microsoft');
INSERT INTO consola(id_consola, nombre, tipo, marca) VALUES(3,'3DS','Portatil','Nintendo');

SELECT * FROM consola;

INSERT INTO juego(id_juego, titulo, genero) VALUES(1,'Dark Souls III', 'ROL');
INSERT INTO juego (id_juego, titulo, genero) VALUES(2,'Project Cars', 'Conduccion');
INSERT INTO juego(id_juego, titulo, genero) VALUES(3,'Metal Gear Solid V', 'Accion');
INSERT INTO juego (id_juego, titulo, genero) VALUES(4,'Killer Instinct', 'Lucha');
INSERT INTO juego(id_juego, titulo, genero) VALUES(5,'Metroid Prime', 'Accion');
INSERT INTO juego(id_juego, titulo, genero) VALUES(6,'Dragon Quest VII', 'ROL');

SELECT * FROM juego;


INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(1,1, 45);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(1,2, 30);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(1,3, 15);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(2,3, 15);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(2,4, 19);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(3,5, 34);
INSERT INTO consola_juego (id_consola, id_juego, stock) VALUES(3,6, 23);

SELECT * FROM consola_juego;


Consulta: Mostrar los tipos de consolas que hay registrados
SELECT tipo FROM consola;
Consulta: Nombre de los juegos que sólo están en 3DS

SELECT titulo FROM juego
WHERE juego.id_juego IN(
SELECT id_juego FROM consola_juego
WHERE consola_juego.id_consola IN(
SELECT id_consola FROM consola
WHERE consola.nombre='3DS')
);

Consulta: Stock total de aquellos juegos cuyo género sea de Acción

SELECT SUM(consola_juego.stock) FROM consola_juego
WHERE consola_juego.id_juego IN(
SELECT id_juego FROM juego
WHERE juego.genero='accion');

Consulta: Titulo de aquellos juegos con stock total que supere las 20 unidades

SELECT juego.titulo FROM juego
WHERE juego.id_juego IN(
SELECT id_juego FROM consola_juego
GROUP BY id_juego
HAVING SUM(consola_juego.stock) > 20);

Realizar un UPDATE – Utilizado para modificar los valores de los campos y registros especificados.

UPDATE juego SET titulo='The Legend of Zelda'
WHERE titulo='Metroid Prime';



Realizar un DELETE – Utilizado para eliminar registros de una tabla de una base de datos

DELETE FROM consola WHERE id_consola=1;

Insertar un registro adicional por cada tabla.

INSERT INTO consola  VALUES(1,'XS','Sobremesa','Sony');


No hay comentarios.:

Publicar un comentario