Subido por Fili Mg

Administración de base de datos con PostgreSql - Laboratorio 1. Control de usuarios

Anuncio
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
1 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
☰
Twittear
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
2 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
3 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
4 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
5 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
-- Creando la base de datos UACME
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
6 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
create database uacme;
-- Cambiarse de la BD por omisión a la ACME (en PSQL)
\c UACME
--Creación de las tablas
create table CuentaCheques(
ncuenta int,
saldo numeric(7,2),
banco varchar,
primary key(ncuenta)
);
create table Cheque(
ncuenta int,
cns int,
total numeric(10,2),
fecha date,
foreign key (ncuenta) references CuentaCheques,
primary key(ncuenta, cns)
);
create table Tabulador(
idtab int,
importehora varchar,
primary key(idtab)
);
create table Profesores(
idprofe int,
idtab int,
nombre varchar,
maximo varchar,
sueldo float, foreign key (idtab) references Tabulador,
primary key(idprofe)
);
create table CursosEspeciales(
idcurso int,
idprofe int,
fini varchar,
ffin varchar,
ncuenta int,
cns int,
foreign key(idprofe) references Profesores,
foreign key(ncuenta, cns) references Cheque,
primary key (idcurso)
);
create table CursosExtracurricular(
idextra int primary key,
decextra text,
nhorascurso int
);
create table Materias(
nmat int,
des varchar,
horacurso int,
primary key(nmat)
);
create table CEVerano(
idcurso int primary key,
nmat int,
foreign key(nmat) references Materias
);
create table CEExtracurricula(
idcurso int primary key,
idextra int,
foreign key (idextra) references CursosExtracurricular
);
create table Alumnos(
matricula int,
nombre varchar,
primary key(matricula)
);
create table Bimestre(
periodo int,
matricula int,
nmat int,
calificacion int,
Faltas float,
foreign key(nmat) references Materias,
foreign key(matricula) references Alumnos,
primary key(matricula, periodo)
);
create table Faltas(
fecha varchar,
matricula int,
foreign key(matricula) references Alumnos,
primary key(matricula, fecha)
);
create table Concepto(
idconcepto int,
desconcepto varchar,
primary key(idconcepto)
);
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
7 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
create table Recibo(
folio int,
matricula int,
fecharec varchar,
totalrec float,
foreign key (matricula) references Alumnos,
primary key(folio)
);
create table DetalleRecibo(
cns int,
idconcepto int,
folio int,
subtotal float,
foreign key(idconcepto) references Concepto,
foreign key(folio) references Recibo,
primary key(folio, cns)
);
create table CalendarioEscolar(
fecha varchar primary key,
motivo varchar
);
insert
insert
insert
insert
insert
insert
into
into
into
into
into
into
CuentaCheques
CuentaCheques
CuentaCheques
CuentaCheques
CuentaCheques
CuentaCheques
values(1,700,'HSBC');
values(2,9000,'HSBC');
values(3,60,'HSBC');
values(4,10,'HSBC');
values(5,1000,'HSBC');
values(6,200,'HSBC');
insert
insert
insert
insert
insert
insert
insert
into
into
into
into
into
into
into
Cheque
Cheque
Cheque
Cheque
Cheque
Cheque
Cheque
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
into
into
into
into
into
into
into
into
into
into
into
into
into
Tabulador values(10,100);
Tabulador values(20,200);
Tabulador values(30,300);
Tabulador values(40,400);
Tabulador values(50,500);
Tabulador values(60,600);
Tabulador values(70,700);
Profesores values(1,40,'Roberto','Maestria',15000);
Profesores values(2,70,'Carlos','Doctorado',25000);
Profesores values(3,20,'Luis','Licenciatura',6000);
Profesores values(4,30,'Yunuan','Maestria',12000);
Profesores values(5,10,'Julio','Licenciatura',4500);
Profesores values(6,20,'Samuel','Licenciatura',5500);
insert
insert
insert
insert
insert
into
into
into
into
into
CursosEspeciales
CursosEspeciales
CursosEspeciales
CursosEspeciales
CursosEspeciales
insert
insert
insert
insert
into
into
into
into
CursosExtracurricular
CursosExtracurricular
CursosExtracurricular
CursosExtracurricular
insert
insert
insert
insert
into
into
into
into
Materias
Materias
Materias
Materias
values(1,10,200,'2008-02-01');
values(2,10,575.20,'2008-02-01');
values(2,20,20,'2008-02-01');
values(3,10,600,'2007-02-01');
values(4,10,800,'2007-02-01');
values(5,10,100,'2007-02-01');
values(6,10,300,'2007-02-01');
values(1,1,1,20070204,20050204);
values(2,2,2,20070204,20050204);
values(3,3,3,20070204,20050204);
values(4,4,4,20070204,20050204);
values(5,5,5,20070204,20050204);
values(1,'admin',204);
values(2,'diseño',204);
values(3,'bdd',204);
values(4,'java',204);
values(1,'admin bdd',204);
values(2,'redes',204);
values(3,'redes 2',204);
values(4,'admin bdd',204);
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
8 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
-- Creando los grupos de usuarios
create group admin;
create group escolar;
-- Creando los usuarios del grupo administrativo
create user avila with password 'admin' in group admin;
create user cancino with password 'admin' in group admin;
-- Creando los usuarios del grupo escolar
create user barroso with password 'escolar' in group escolar;
create user tirado with password 'escolar' in group escolar;
create user martinez with password 'escolar' in group escolar;
create user aquino with password 'escolar' in group escolar;
create user ramos with password 'escolar' in group escolar;
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
9 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
-- Creando la vista, note que no se proyecta el campo sueldo, por lo tanto se esconde de la mirada de los usuarios del grup
CREATE VIEW VistaProfesoresEscolar AS SELECT idprofe,idtab,nombre,maximo FROM Profesores;
-- Todos los
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
privilegios para las tablas del sistema administrativo
table Cheque to group admin;
table CuentaCheques to group admin;
table Tabulador to group admin;
table Concepto to group admin;
table Recibo to group admin;
table DetalleRecibo to group admin;
-- Solo puede consultar y actualizar la tabla de profesores a los usuarios del grupo admin.
GRANT select, update ON table Profesores to group admin;
-- Solo se permite consultar estas tablas a los usuarios del grupo admin.
GRANT select ON table CursosExtracurricular to group admin;
GRANT select ON table CEVerano to group admin;
GRANT select ON table CEExtracurricula to group admin;
GRANT select ON table CursosEspeciales to group admin;
-- Otorgando
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
GRANT all ON
-- Otorgando
GRANT all ON
Select
Select
Select
Select
insert
insert
privilegios sobre las tablas del sistema escolar.
table Materias to group escolar;
table CursosExtracurricular to group escolar;
table CEVerano to group escolar;
table CEExtracurricula to group escolar;
table CursosEspeciales to group escolar;
table Alumnos to group escolar;
table Faltas to group escolar;
table Bimestre to group escolar;
table CalendarioEscolar to group escolar;
permisos sobre la vista de profesores
table VistaProfesoresEscolar to group escolar;
* from Profesores;
* from VistaProfesoresEscolar;
* from CuentaCheques;
* from Cheque;
into Profesores values(7, 20, 'Jesus', 'Licenciatura', 25000 );
into VistaProfesoresEscolar values(7, 20, 'Jesus', 'Licenciatura', 25000 );
CREATE or REPLACE RULE insertar_profesores AS ON insert TO VistaProfesoresEscolar
DO INSTEAD insert into profesores values (
new.idprofe,
new.idtab,
new.nombre,
new.maximo, 0);
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
10 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
insert into VistaProfesoresEscolar values(7, 20, 'Jesus', 'Licenciatura');
Select
Select
Select
Select
update
insert
insert
Me gusta
Compartir
* from Profesores;
* from VistaProfesoresEscolar;
* from CuentaCheques;
* from Cheque;
Profesores set sueldo = 6000 where idprofe = 7;
into Profesores values(8, 30, 'Salvador', 'Maestria', 20000 );
into VistaProfesoresEscolar values(8, 30, 'Salvador', 'Maestria');
47
3 comentarios
Ordenar por: Los más antiguos
Añade un comentario...
Lsc Dany López Yau
Excelente aportación para empezar a conocer todo sobre la administración de base de
datos. Ayudara a muchos alumnos y/o maestros en el aprendizaje de estos
conocimientos primordiales ya que son de suma importancia saberlos.
Me gusta · Responder ·
1 · 21 de enero de 2015 18:33
Oswald Mtz Asabay · Gerente General en Pull&Bear
genial!!!!
Me gusta · Responder · 22 de marzo de 2015 23:56
Israel Ascencio Mendez · Programadorinformatica
muy bueno algine tiene algun sistema basicno o avanzado en postgres
Me gusta · Responder · 6 de junio de 2016 18:56
Facebook Comments Plugin
19/10/2016 01:12 p. m.
Administración de base de datos con PostgreSql - Laboratorio 1. Control ...
11 de 11
http://www.espacioimasd.unach.mx/docs/Administracion_de_base_de_d...
19/10/2016 01:12 p. m.
Descargar