Administración de Base de Datos

Ejemplo

El anterior ejemplo corresponde al modelo relacional de un sistema para la administración de proyetos, sus intervinientes, recursos, participación y aportes, sobre el que se codifica en postgresql la construcción de la base de datos, operaciones básicas y consultas.

Crear la base de datos

create database proyectos;

Creación de tablas

Para el ejemplo sólo se crearán las tablas estudiantes, proyectos y participacion, con aplicación de algunas restricciones, las demás quedan como ejercicio de parte del lector.

Tabla estudiantes:

create table estudiantes (
idestudiante bigint,
nomestudiante varchar (20) not null,
apeestudiante varchar (20) not null,
programa varchar (30),
semestre smallint not null check (semestre < 10),
direstudiante varchar (60),
telfestudiante bigint,
primary key (idestudiante)
);

Tabla proyectos:

create table proyectos (
idproyecto integer,
nomproyecto varchar (50) not null,
tiempo smallint,
fechainicio date,
fechafin date,
primary key (idproyecto)
);

Tabla participacion:

create table participacion (
idparticipacion integer,
idestudiante bigint,
idproyecto integer,
aporteparticipante integer not null,
tipoparticipacion varchar (29) not null,
primay key (idparticipacion),
foreign key (idestudiante) references estudiantes (idestudiante),
foreign key (idproyecto) references proyectos (idproyecto)
);

Insertar registros

En la tabla estudiantes:

insert into estudiantes values (88155234, 'Luis', 'Castillo', 'Ingeniería Electrónica', 5, 'Cra 3 No. 3-34', 3423434212);

En la tabla proyectos:

insert into proyectos values (2213, 'Agentes inteligentes', 10, '2015-06-03','2016-04-03');

En la tabla participacion:

insert into participacion values (1, 88155234, 2213, 500000, 'Investigador principal');

Operaciones

  • Cambiar el nombre al campo tiempo de la tabla proyectos por tiempomeses:

alter table proyectos rename column tiempo to tiempomeses;

Las demás operaciones quedan como ejercicio del lector.

Consultas

Simples:

Estudiantes del programa de ingeniería electrónica entre los semestres 5 y 8 inclusive.

select *
from estudiantes
where (programa = 'Ingeniería Electrónica') and (semestre >= 5 and semestre <= 8)
;

Datos de los estudiantes registrados que no son del programa de ingeniería de sistemas.

select idestudiante, nomestudiante, apeestudiante
from estudiantes
where (programa <> 'Ingeniería de Sistemas')
;

Compuestas:

Relación de los proyectos que iniciaron el mes de mayo de 2015 con los datos de los esdudiantes participantes y sus aportes.

select proyectos.nomproyecto, proyectos.fechainicio, participacion.aporteparticipante, estudiantes.idestudiante, estudiantes.nomestudiante, estudiantes.apeestudiante

from estudiantes, participacion, proyectos

where ( (estudiantes.idestudiante = participacion.idestudiante) and (proyectos.idproyecto = participacion.idproyecto) and ( (estract(month from proyectos.fechainicio) = 5) and (estract(year from proyectos.fechainicio) = 2015) ) )
;

Como ejercicio, el lector debe formular variedad de consultas simples y compuestas sobre el modelo y codificarlas.


Volver al Contenido