--CREATE TABLES CREATE DATABASE RAPIDA USE RAPIDA CREATE TABLE AEROLINEA( CVE_AERO VARCHAR(1) PRIMARY KEY, NOMBRE VARCHAR(20) ) CREATE TABLE VUELOS( CVE_VUELO VARCHAR(3) PRIMARY KEY, CVE_AERO VARCHAR(1) FOREIGN KEY REFERENCES AEROLINEA(CVE_AERO), HORARIO VARCHAR(5), CAPACIDAD INT, NO_CLIENTES INT ) CREATE TABLE CLIENTES( CVE_CLIEN VARCHAR(3) PRIMARY KEY, NOMBRE VARCHAR(20), TELEFONO VARCHAR(10) ) CREATE TABLE RESERVACIONES( CVE_VUELO VARCHAR(3) FOREIGN KEY REFERENCES VUELOS(CVE_VUELO), CVE_CLIEN VARCHAR(3) FOREIGN KEY REFERENCES CLIENTES(CVE_CLIEN) ) --UNIDAD 3 --Crear logins CREATE LOGIN USUARIO1 WITH PASSWORD = '123', DEFAULT_DATABASE=RAPIDA; CREATE LOGIN USUARIO2 WITH PASSWORD = '123', DEFAULT_DATABASE=RAPIDA; --Crear usuarios --Nombre de usuario y el nombre del login pueden diferir CREATE USER USUARIO1 FOR LOGIN USUARIO1; CREATE USER USUARIO2 FOR LOGIN USUARIO2; --Crear roles CREATE ROLE Programador GRANT SELECT ON CLIENTES TO Programador GRANT UPDATE ON AEROLINEA TO Programador --Asignar roles a usuarios sp_addrolemember Programador, USUARIO1 --Asignar privilegios a usuarios GRANT SELECT ON AEROLINEA TO USUARIO2 GRANT UPDATE ON CLIENTES TO USUARIO2 GRANT INSERT ON VUELOS TO USUARIO2 --UNIDAD 5 CREATE TABLE RESERVA_RES( CVE_VUELO VARCHAR(3) FOREIGN KEY REFERENCES VUELOS(CVE_VUELO), CVE_CLIEN VARCHAR(3) FOREIGN KEY REFERENCES CLIENTES(CVE_CLIEN), FECHA DATE, USUARIO VARCHAR(30), TERMINAL VARCHAR(30) ) --Creacion de trigger para bitacora CREATE TRIGGER BITACORA_RESERVA ON RESERVACIONES FOR INSERT AS BEGIN INSERT INTO RESERVA_RES(CVE_CLIEN,CVE_VUELO,FECHA,USUARIO,TERMINAL) SELECT CVE_CLIEN,CVE_VUELO,getdate() ,system_user,host_name() FROM INSERTED END; --Creacion de funcion mayus CREATE SCHEMA bdo CREATE FUNCTION bdo.MAYUS(@PALABRA VARCHAR(20)) RETURNS VARCHAR(20) AS BEGIN SET @PALABRA=UPPER(@PALABRA) RETURN @PALABRA END --Creacion de procedimiento almacenado inserciĆ³n CREATE PROCEDURE INSERTAR_CLIENTES @CVE_CLIEN VARCHAR(3), @NOMBRE VARCHAR(20), @TELEFONO VARCHAR(10) AS BEGIN INSERT INTO CLIENTES (CVE_CLIEN,NOMBRE,TELEFONO) VALUES (@CVE_CLIEN,bdo.MAYUS(@NOMBRE),@TELEFONO) END; --Llenado con el procedimiento de inserciĆ³n EXEC INSERTAR_CLIENTES 902,'pedro',9999999999 EXEC INSERTAR_CLIENTES 950,'luis',9999999999 EXEC INSERTAR_CLIENTES 951,'mario',9999999999 EXEC INSERTAR_CLIENTES 952,'armida',9999999999 EXEC INSERTAR_CLIENTES 953,'valentina',9999999999 EXEC INSERTAR_CLIENTES 954,'oscar',9999999999 EXEC INSERTAR_CLIENTES 955,'francisco',9999999999 SELECT * FROM CLIENTES