Está en la página 1de 28

UNIVERSIDAD CENTRAL DEL ECUADOR

Facultad de Ingeniería Ciencias Físicas y Matemáticas


Bases de Datos II

TRABAJO FIN DE HEMISEMESTRE

Integrantes: Erick Cabrera

Damián Quisingo

Jean Marchesini

Danny Martínez

Jonathan Mejía
1. Requerimientos Funcionales:

La Universidad ABC necesita que diseñe una base de datos que les permita almacenar
información sobre los desempeños académicos de sus alumnos en todas sus
facultades. Para lo cual necesita llevar registro de las personas que forman parte de la
Universidad, tanto alumnos como docentes, sus nombres, apellidos, número de cédula
y fecha de nacimiento; otro listado en donde se muestren por cada facultad las
carreras que oferta, y cada carrera el listado de alumno que tiene.
Se necesita asignar un código único para cada docente y alumno que permita la
identificación dentro de la Universidad.
Se debe llevar un registro que indique los docentes y las respectivas asignaturas
encargadas de dictar clase. En los registros de notas de los docentes se necesita que
muestre a sus alumnos.

2. Modelo Conceptual en notación Barker:

3. Modelo Físico:

Tabla PERSONA
SecPersona NumeroCedula Nombre FechaNacimiento
NN NN NN NN NN
TD N N VA(30) VA(15)
Claves PK UK
EJ 1 1003534636 Mica 10/10/2010
2 1720743713 Jean 04/03/2011
3 0400870986 Joselyn 06/07/2011
Tabla Docente
SecDocente CodDocente FechaIngresoDocente SecPersona
NN NN NN NN NN
TD N N VA(15) N
Claves PK UK FK
EJ 1 1 10/10/2010 1
5 3 01/01/1999 2
7 9 23/12/2000 3

Tabla Alumno
CodAlumno FechaIngresoAlumno SecPersona SecCarrera
NN NN NN NN NN
TD N VA(15) N N
Claves PK FK
EJ 13 01/01/1900 1 4
12 02/11/1890 5 12
22 12/12/2015 6 5

Tabla Facultad
SecFacultad CodFacultad Nombre_Facultad
NN NN NN NN
TD N N VA(15)
Claves PK UK
EJ 1 1 Ciencias
6 34 Idiomas
11 12 Arquitectura

Tabla Materia
SecMateria CodMateria Nombre_Materia NúmeroCreditos
NN NN NN NN NN
TD N N VA(15) N
Claves PK UK
EJ 1 3 Física 2
5 5 TIC´S 4
9 12 Análisis 6

Tabla Docente_Materia
SecDocente SecMateria Fecha_Asignacion
NN NN NN NN
TD N N VA(15)
Claves PK UK
EJ 1 1 10/10/2010
11 2 08/07/2012
9 3 07/01/1760
Tabla Registro_Notas
SecRegistroNotas CodAlumnos SecDocente SecMateria Fecha_Asignaciones
NN NN NN NN NN NN
TD N N N N VA(15)
Claves PK UK FK FK
EJ 1 1 3 11 01/01/1900
3 12 4 5 02/09/1500
5 9 6 4 04/11/1999

Tabla Carrera
SecCarrera CodCarrera Nombre SecFacultad
NN NN NN NN NN
TD N N VA(30) N
Claves PK UK FK
EJ 1 12 Jean 12
12 9 Micaela 1
5 2 Joselyn 5

4. Script de Implementación:

alter table ALUMNO


drop constraint FK_ALUMNO_ALUMNO_CA_CARRERA;

alter table ALUMNO


drop constraint FK_ALUMNO_PEROSONA__PERSONA;

alter table CARRERA


drop constraint FK_CARRERA_FACULTAD__FACULTAD;

alter table DOCENTE


drop constraint FK_DOCENTE_PERSONA_D_PERSONA;

alter table DOCENTE_MATERIA


drop constraint FK_DOCENTE__DOCENTE_M_DOCENTE;

alter table DOCENTE_MATERIA


drop constraint FK_DOCENTE__MATERIA_D_MATERIA;

alter table REGISTRO_NOTAS


drop constraint FK_REGISTRO_ALUMNO_RE_ALUMNO;

alter table REGISTRO_NOTAS


drop constraint FK_REGISTRO_DOCENTE_R_DOCENTE;
drop index ALUMNO_CARRERA_FK;

drop index PEROSONA_ALUMNO_FK;

drop table ALUMNO cascade constraints;

drop index FACULTAD_CARRERA_FK;

drop table CARRERA cascade constraints;

drop index PERSONA_DOCENTE_FK;

drop table DOCENTE cascade constraints;

drop index MATERIA_DOCENTE_FK;

drop index DOCENTE_MARERIA_R_FK;

drop table DOCENTE_MATERIA cascade constraints;

drop table FACULTAD cascade constraints;

drop table MATERIA cascade constraints;

drop table PERSONA cascade constraints;

drop index ALUMNO_REGISTRO_FK;

drop index DOCENTE_REGISTRO_NOTA_FK;

drop table REGISTRO_NOTAS cascade constraints;

/*==============================================================*/
/* Table: ALUMNO */
/*==============================================================*/
create table ALUMNO
(
SECALUMNO NUMBER not null,
SECCARRERA NUMBER not null,
SECPERSONA NUMBER not null,
FECHAINGRESOALUMNO DATE,
constraint PK_ALUMNO primary key (SECALUMNO)
);
/*==============================================================*/
/* Index: PEROSONA_ALUMNO_FK */
/*==============================================================*/
create index PEROSONA_ALUMNO_FK on ALUMNO (
SECPERSONA ASC
);

/*==============================================================*/
/* Index: ALUMNO_CARRERA_FK */
/*==============================================================*/
create index ALUMNO_CARRERA_FK on ALUMNO (
SECCARRERA ASC
);

/*==============================================================*/
/* Table: CARRERA */
/*==============================================================*/
create table CARRERA
(
SECCARRERA NUMBER not null,
SECFACULTAD NUMBER not null,
NOMBRE_CARRERA CHAR(50),
constraint PK_CARRERA primary key (SECCARRERA)
);

/*==============================================================*/
/* Index: FACULTAD_CARRERA_FK */
/*==============================================================*/
create index FACULTAD_CARRERA_FK on CARRERA (
SECFACULTAD ASC
);

/*==============================================================*/
/* Table: DOCENTE */
/*==============================================================*/
create table DOCENTE
(
SECDOCENTE NUMBER not null,
SECPERSONA NUMBER not null,
FECHAINGRESODOCENTE DATE,
constraint PK_DOCENTE primary key (SECDOCENTE)
);

/*==============================================================*/
/* Index: PERSONA_DOCENTE_FK */
/*==============================================================*/
create index PERSONA_DOCENTE_FK on DOCENTE (
SECPERSONA ASC
);

/*==============================================================*/
/* Table: DOCENTE_MATERIA */
/*==============================================================*/
create table DOCENTE_MATERIA
(
SECDOCENTE NUMBER not null,
SECMATERIA NUMBER not null,
FECHA_ASIGNACION DATE not null,
constraint PK_DOCENTE_MATERIA primary key (SECDOCENTE, SECMATERIA)
);

/*==============================================================*/
/* Index: DOCENTE_MARERIA_R_FK */
/*==============================================================*/
create index DOCENTE_MARERIA_R_FK on DOCENTE_MATERIA (
SECDOCENTE ASC
);

/*==============================================================*/
/* Index: MATERIA_DOCENTE_FK */
/*==============================================================*/
create index MATERIA_DOCENTE_FK on DOCENTE_MATERIA (
SECMATERIA ASC
);

/*==============================================================*/
/* Table: FACULTAD */
/*==============================================================*/
create table FACULTAD
(
SECFACULTAD NUMBER not null,
NOMBRE_FACULTAD VARCHAR2(50),
constraint PK_FACULTAD primary key (SECFACULTAD)
);

/*==============================================================*/
/* Table: MATERIA */
/*==============================================================*/
create table MATERIA
(
SECMATERIA NUMBER not null,
NUMEROCREDITOS NUMBER,
NOMBRE_MATERIA CHAR(50),
constraint PK_MATERIA primary key (SECMATERIA)
);

/*==============================================================*/
/* Table: PERSONA */
/*==============================================================*/
create table PERSONA
(
SECPERSONA NUMBER not null,
NUMEROCEDULA NUMBER,
NOMBRES CHAR(50),
APELLIDOS CHAR(50),
FECHNACIMIENTO DATE,
constraint PK_PERSONA primary key (SECPERSONA)
);

/*==============================================================*/
/* Table: REGISTRO_NOTAS */
/*==============================================================*/
create table REGISTRO_NOTAS
(
SECREGNOTAS NUMBER not null,
SECDOCENTE NUMBER not null,
SECALUMNO NUMBER not null,
FECHA_ASIGNACIONS DATE,
NOTA INTEGER,
constraint PK_REGISTRO_NOTAS primary key (SECREGNOTAS)
);

/*==============================================================*/
/* Index: DOCENTE_REGISTRO_NOTA_FK */
/*==============================================================*/
create index DOCENTE_REGISTRO_NOTA_FK on REGISTRO_NOTAS (
SECDOCENTE ASC
);

/*==============================================================*/
/* Index: ALUMNO_REGISTRO_FK */
/*==============================================================*/
create index ALUMNO_REGISTRO_FK on REGISTRO_NOTAS (
SECALUMNO ASC
);
alter table ALUMNO
add constraint FK_ALUMNO_ALUMNO_CA_CARRERA foreign key (SECCARRERA)
references CARRERA (SECCARRERA);

alter table ALUMNO


add constraint FK_ALUMNO_PEROSONA__PERSONA foreign key (SECPERSONA)
references PERSONA (SECPERSONA);

alter table CARRERA


add constraint FK_CARRERA_FACULTAD__FACULTAD foreign key (SECFACULTAD)
references FACULTAD (SECFACULTAD);

alter table DOCENTE


add constraint FK_DOCENTE_PERSONA_D_PERSONA foreign key (SECPERSONA)
references PERSONA (SECPERSONA);

alter table DOCENTE_MATERIA


add constraint FK_DOCENTE__DOCENTE_M_DOCENTE foreign key (SECDOCENTE)
references DOCENTE (SECDOCENTE);

alter table DOCENTE_MATERIA


add constraint FK_DOCENTE__MATERIA_D_MATERIA foreign key (SECMATERIA)
references MATERIA (SECMATERIA);

alter table REGISTRO_NOTAS


add constraint FK_REGISTRO_ALUMNO_RE_ALUMNO foreign key (SECALUMNO)
references ALUMNO (SECALUMNO);

alter table REGISTRO_NOTAS


add constraint FK_REGISTRO_DOCENTE_R_DOCENTE foreign key (SECDOCENTE)
references DOCENTE (SECDOCENTE);

5. Script de inserción de datos:

insert into facultad values(1,'Ciencias Fisica y Matematica');

/* --------------Ingreso de las Carreras---------------- */

insert into carrera values(1,1,'Ing, Informatica');

insert into carrera values (2,1,'Ing. Industrial');

insert into carrera values (3,1,'Ing.Civil');


insert into carrera values (4,1,'Matematica');

insert into carrera values (5,1,'Ing. Diseño Industrial');

/* --------------Ingreso de las Personas---------------- */

insert into persona values (1,1722376579,'Dario Xavier','Alencostro Niquinga','25-05-


95');
insert into persona values (2,1753276680,'Lenin Paul','Anagumbla Canchig','03-06-96');
insert into persona values (3,1724055684,'Jefferson Mauricio','Arana Carrasco','17-10-
1994');
insert into persona values (4,1752632800,'Santiago Javier','Arnijos Cabrera','08-08-
1990');
insert into persona values (5,1723088785,'Marcelo Kevin','Barrera Rodas','25-05-96');
insert into persona values (6,1723225437,'Jonathan Alexander','Boada Rodríguez','03-
06-97');
insert into persona values (7,1726658998,'Nelly Mariela','Cabezas Pillapa','17-10-
1995');
insert into persona values (8,1712453678,'Giancarlo Andrés','Cañizares Ortega','08-08-
1991');
insert into persona values (9,1723547624,'José Luis','Colcha Conejo','25-05-97');
insert into persona values (10,1003847373,'Roberto Andrés','Collaguazo Gafita','03-06-
98');
insert into persona values (11,1718854761,'Jackson Manuel','Cuaspo Torres','17-10-
1996');
insert into persona values (12,1725623928,'Marco Antonio','Guaña Quishpe','08-08-
1992');
insert into persona values (13,1724187966,'Santiago Jimenez','Julio Cesar','25-05-98');
insert into persona values (14,1724169725,'Jonathan Vinicio','Mejía Salazar','03-06-
99');
insert into persona values (15,1724185655,'Jefferson Mauricio','Noroña Paucar','17-
10-1997');
insert into persona values (16,1723547624,'Mary Elizabeth','Ñato Gualotuña','08-08-
1993');
insert into persona values (17,1724231426,'Erika Gabriela','Pacheco Miguez','25-05-
99');
insert into persona values (18,1722865324,'Alex Patricio','Pillajo Espin','09-09-93');
insert into persona values (19,1718456203,'Mayra Celitia','Procel Palacios','17-10-
1998');
insert into persona values (20,1725004913,'Diego Efrain','Rea Maz','08-08-1993');
insert into persona values (21,1725639528,'Brayan Armando','Rodrígues Rosario','25-
05-99');
insert into persona values (22,1722248315,'Fredy Patricio','Román Guanolvisa','03-06-
1998');
insert into persona values (23,1721344214,'Edwin Patricio','Ruiz Vargas','17-10-1998');
insert into persona values (24,1724464324,'Lenin Sebastian','Sáenz Proaño','08-08-
1994');
insert into persona values (25,1930463146,'Jonathan Jesús','Sanchez Lucas','25-05-
99');
insert into persona values (26,1751525252,'Wilson David','Sangoquiza Cajamarca','09-
09-94');
insert into persona values (27,1723767446,'María Mercedes','Sato Tituaña','17-10-
1999');
insert into persona values (28,1724109341,'William Hernán','Taco Taco','08-08-1994');
insert into persona values (29,1751070382,'Kvin Andrés','Tambo Vasquez','25-05-90');
insert into persona values (30,1503448383,'Bryan David','Tapia Paredes','03-06-99');
insert into persona values (31,1723553135,'Jhonathan Mateo','Tipantuña Cuenca','17-
10-1999');
insert into persona values (32,1717439143,'Mayra Rocío','Tituaña Collaguazo','08-08-
1995');
insert into persona values (33,1724399025,'Boris Santiago','Torres Bravo','25-05-98');
insert into persona values (34,1723125553,'Guillermo Paúl','Ushiña Llullana','09-09-
95');
insert into persona values (35,1724052038,'Francisco Davidson','Vaca Lucio','17-10-
2000');
insert into persona values (36,1753089117,'Freddy Geovanny','Valverde Gallardo','08-
08-1995');
insert into persona values (37,1724376528,'Eduardo David','Vásquez Túpiza','25-05-
91');
insert into persona values (38,1722589700,'Gonzalo Javier','Yaguana Ajila','03-06-
102');
insert into persona values (39,1722624218,'Bryan Alejandro','Zuñiga Urllamor','17-10-
2000');
insert into persona values (40,1725215972,'ALEXANDER RAMIRO','COLUMBA
GUANOLUISA','08-08-1996');
insert into persona values (41,1721779914,'PAUL ALEXANDER','NAVARRETE
CAÑART','25-05-1996');
insert into persona values (42,1722629555,'ANDRES FERNANDO','QUELAL
CHICAIZA','09-09-96');
insert into persona values (43,1732955426,'MARCOS ANDRES','ALCIVAR VARGAS','25-
05-96');
insert into persona values (44,1734068252,'CABEZAS CRIOLLO BYRON
SANTIAGO','','03-06-97');
insert into persona values (45,1735181079,'CAMPAÑA IZA XIMENA MARCELA','','17-
10-1995');
insert into persona values (46,1736293906,'CAMPOVERDE HERRERA CARLOS
MOISÉS','','08-08-1991');
insert into persona values (47,1737406732,'CASTRO TAPIA BRYAN ANDRES','','25-05-
97');
insert into persona values (48,1738519559,'CHANGOTASIG ORTIZ LENIN XAVIER','','03-
06-98');
insert into persona values (49,1739632386,'CHAVEZ ESTRELLA MARIO ROBERTO','','17-
10-1996');
insert into persona values (50,1740745212,'CHISIQUINGA ESPINOZA LUIS
JONATHAN','','08-08-1992');
insert into persona values (51,1741858039,'CHOTO CAISAGUANO CRISTIAN
PATRICIO','','25-05-98');
insert into persona values (52,1742970866,'CHUQUILLA MENDOZA JONATHAN
HERNAN','','03-06-99');
insert into persona values (53,1744083692,'CUBERO ZURITA JHONNY PAUL','','17-10-
1997');
insert into persona values (54,1745196519,'CUSIN GEOVANNI','','08-08-1993');
insert into persona values (55,1746309346,'DELGADO SANCHEZ CARLOS
ALBERTO','','25-05-99');
insert into persona values (56,1747422172,'ESPINOZA JEFFERSON','','03-06-99');
insert into persona values (57,1748534999,'GOMEZ VAICILLA SANTIAGO
MAURICIO','','17-10-1998');
insert into persona values (58,1749647826,'GUTIERREZ TABANGO JOHANNA
MARITZA','','08-08-1994');
insert into persona values (59,1750760653,'LITA VILLEGAS ERICK JOSUE','','25-05-95');
insert into persona values (60,1751873479,'MARCHESINI ANTAMBA JEAN
CARLO','','09-09-94');
insert into persona values (61,1752986306,'MARTINEZ DANI','','17-10-1999');
insert into persona values (62,1754099133,'MASACHE BONILLA JEFFERSON
FABRICIO','','08-08-1994');
insert into persona values (63,1755211959,'MOROCHO PEREZ JONATHAN
ALFONSO','','25-05-96');
insert into persona values (64,1756324786,'ORTIZ PASUY MARCOS ISRAEL','','03-06-
1999');
insert into persona values (65,1757437613,'PANTOJA YUMBO LUIS FERNANDO','','17-
10-1999');
insert into persona values (66,1758550439,'PAUCAR MORALES JHONATHAN
MAURICIO','','08-08-1995');
insert into persona values (67,1759663266,'PINEDA CHÁVEZ VERÓNICA KARINA','','25-
05-96');
insert into persona values (68,1760776093,'QUEZADA SILVERIO DIEGO
ALEXANDER','','09-09-95');
insert into persona values (69,1761888919,'REA CAYAMBE TANIA DE LOURDES','','17-
10-2000');
insert into persona values (70,1763001746,'ROBLES LOJAN ANDREA PATRICIA','','08-
08-1995');
insert into persona values (71,1764114573,'SALAZAR BOADA MICHAEL
SEBASTIAN','','25-05-91');
insert into persona values (72,1765227400,'SALAZAR ORTIZ GALO JOSE','','05-05-89');
insert into persona values (73,1766340226,'SALINAS MILLINGALLI WASHINGTON
JOSE','','10-09-72');
insert into persona values (74,1767453053,'SIPION COLOMA GINGER
KATHERINE','','18-12-80');
insert into persona values (75,1768565880,'TONATO ZAMBRANO JORDAN JOE','','30-
06-72');
insert into persona values (76,1769678706,'TORRES ORDOÑEZ YANDRY
ALEJANDRO','','09-08-76');
insert into persona values (77,1770791533,'VEGA URQUIZO SANTIAGO ESTEBAN','','20-
01-83');
insert into persona values (78,1771904360,'VILLARREAL PONCE MARTHA
DAYANA','','07-07-97');
insert into persona values (79,1773017186,'ZACARIAS SANCHEZ LUIS MIGUEL','','31-12-
71');

/*----- seconsidera que las personas a partir del id 71 son docentes-----*/

/* --------------Ingreso de los Alumnos---------------- */

insert into alumno values (1,1,'71','01-09-2014');


insert into alumno values (2,2,'70','01-09-2014');
insert into alumno values (3,3,'69','01-09-2014');
insert into alumno values (4,4,'68','01-09-2014');
insert into alumno values (5,5,'67','01-09-2014');
insert into alumno values (6,3,'66','01-09-2014');
insert into alumno values (7,2,'65','01-09-2014');
insert into alumno values (8,1,'64','01-09-2014');
insert into alumno values (9,2,'63','01-09-2014');
insert into alumno values (10,1,'62','01-09-2014');
insert into alumno values (11,2,'61','01-09-2014');
insert into alumno values (12,3,'60','01-09-2014');
insert into alumno values (13,1,'59','01-09-2014');
insert into alumno values (14,1,'58','01-09-2014');
insert into alumno values (15,2,'57','01-09-2013');
insert into alumno values (16,2,'56','01-09-2013');
insert into alumno values (17,2,'55','01-09-2013');
insert into alumno values (18,1,'54','01-09-2013');
insert into alumno values (19,1,'53','01-09-2013');
insert into alumno values (20,1,'52','01-09-2013');
insert into alumno values (21,3,'51','01-09-2013');
insert into alumno values (22,3,'50','01-09-2013');
insert into alumno values (23,3,'49','01-09-2013');
insert into alumno values (24,4,'48','01-09-2013');
insert into alumno values (25,4,'47','01-09-2013');
insert into alumno values (26,4,'46','01-09-2013');
insert into alumno values (27,2,'45','01-09-2013');
insert into alumno values (28,1,'44','01-09-2013');
insert into alumno values (29,3,'43','01-09-2013');
insert into alumno values (30,4,'42','01-09-2013');
insert into alumno values (31,4,'41','01-09-2014');
insert into alumno values (32,3,'40','01-09-2014');
insert into alumno values (33,2,'39','01-09-2014');
insert into alumno values (34,1,'38','01-09-2014');
insert into alumno values (35,4,'37','01-09-2014');
insert into alumno values (36,1,'36','01-09-2014');
insert into alumno values (37,2,'35','01-09-2014');
insert into alumno values (38,3,'34','01-09-2014');
insert into alumno values (39,1,'33','01-09-2014');
insert into alumno values (40,1,'32','01-09-2014');
insert into alumno values (41,2,'31','01-09-2014');
insert into alumno values (42,2,'30','01-09-2014');
insert into alumno values (43,3,'29','01-09-2014');
insert into alumno values (44,3,'28','01-09-2014');
insert into alumno values (45,4,'27','01-09-2014');
insert into alumno values (46,4,'26','01-09-2012');
insert into alumno values (47,2,'25','01-09-2012');
insert into alumno values (48,2,'24','01-09-2012');
insert into alumno values (49,3,'23','01-09-2012');
insert into alumno values (50,3,'22','01-09-2012');
insert into alumno values (51,4,'21','01-09-2012');
insert into alumno values (52,4,'20','01-09-2012');
insert into alumno values (53,1,'19','01-09-2012');
insert into alumno values (54,1,'18','01-09-2012');
insert into alumno values (55,1,'17','01-09-2012');
insert into alumno values (56,2,'16','01-09-2012');
insert into alumno values (57,3,'15','01-09-2012');
insert into alumno values (58,4,'14','01-09-2012');
insert into alumno values (59,1,'13','01-09-2012');
insert into alumno values (60,1,'12','01-09-2012');
insert into alumno values (61,2,'11','01-09-2012');
insert into alumno values (62,3,'10','01-09-2012');
insert into alumno values (63,3,'9','01-09-2012');
insert into alumno values (64,4,'8','01-09-2013');
insert into alumno values (65,1,'7','01-09-2013');
insert into alumno values (66,2,'6','01-09-2013');
insert into alumno values (67,3,'5','01-09-2013');
insert into alumno values (68,2,'4','01-09-2013');
insert into alumno values (69,2,'3','01-09-2013');
insert into alumno values (70,3,'2','01-09-2013');
insert into alumno values (71,4,'1','01-09-2013');

/*-----------------Ingresar materias ----------------------------*/

insert into materia values (1,6,'Analisis I');


insert into materia values (2,6,'Fundamentode Matematica');
insert into materia values (3,6,'Programacion I');
insert into materia values (4,4,'Fisica Aplicada');
insert into materia values (5,2,'Comunicación Oral y Escrita');
insert into materia values (6,2,'Ecologías de las TICS');
insert into materia values (7,6,'Analisis II');
insert into materia values (8,6,'Algebra Lineal');
insert into materia values (9,4,'Matematicas Discretas');
insert into materia values (10,4,'Sistemas Digitales y Microprocesadores');
insert into materia values (11,6,'Programacion II');
insert into materia values (12,6,'Analisis III');
insert into materia values (13,4,'Probabilidades');
insert into materia values (14,4,'Estructura de Datos');
insert into materia values (15,4,'Algoritmos');
insert into materia values (16,6,'Sistemas Operativos I');
insert into materia values (17,4,'Arquitectura de Ordenadores');
insert into materia values (18,2,'Desarrollo de la personalidad y los valores');
insert into materia values (19,4,'Ecuaciones Diferenciales');
insert into materia values (20,6,'Estadistica');
insert into materia values (21,4,'Calculabilidad y y Complejidad de Algortimos');
insert into materia values (22,4,'Bases de Datos I');
insert into materia values (23,4,'Sistemas Operativos II');
insert into materia values (24,4,'Redes de Comunicación');
insert into materia values (25,2,'Legislacion Informatica');
insert into materia values (26,6,'Analisis Numerico');
insert into materia values (27,4,'Simulacion y teoria de colas');
insert into materia values (28,4,'Lenguaje y Compiladores');
insert into materia values (29,4,'Bases de Datos II');
insert into materia values (30,4,'Sistemas Operativos III');
insert into materia values (31,4,'Protocolos de comunicación de datos');
insert into materia values (32,4,'Investigacion Operativa');
insert into materia values (33,4,'Control de Calidad y auditoria informatica');
insert into materia values (34,2,'teoria de confiabilidad');
insert into materia values (35,4,'Marcos de desarrollo de codigo abierto');
insert into materia values (36,4,'Bases de Datos III');
insert into materia values (37,4,'Seguridad de las TICS');
insert into materia values (38,4,'Contabilidad Financiera');
insert into materia values (39,4,'Modelo de investigacion de operaciones');
insert into materia values (40,4,'Diseño y gestion de procesos organizacionales');
insert into materia values (41,4,'Marcos de desarrollo de codigo propietario');
insert into materia values (42,6,'Optativa I');
insert into materia values (43,4,'Ingenieria de software');
insert into materia values (44,4,'Principios de Economia');
insert into materia values (45,4,'Comportamiento Organizacional');
insert into materia values (46,4,'Programacion Web');
insert into materia values (47,4,'Analisis de Datos');
insert into materia values (48,6,'Optativa II');
insert into materia values (49,4,'Sistemas de Informacion empresarial');
insert into materia values (50,4,'Gestion de Proyectos');
insert into materia values (51,4,'Gestion Estratecgica de TICS');
insert into materia values (52,4,'Programacion Distribuida');
insert into materia values (53,4,'Proyecto de titulacion');
insert into materia values (54,4,'Optativa III');
insert into materia values (55,4,'Aplicaciones de Mineria de Datos');
insert into materia values (56,20,'tesisi');

/*--------------------------------Ingreso de los docentes --------------------- */

insert into docente values (1,79,'06-05-2010');


insert into docente values (2,78,'01-02-2011');
insert into docente values (3,77,'15-08-2012');
insert into docente values (4,76,'19-06-2010');
insert into docente values (5,75,'16-09-2013');
insert into docente values (6,74,'19-10-2010');
insert into docente values (7,73,'25-04-2013');
insert into docente values (8,72,'30-05-2011');

/* ----------------------------- Ingreso de los datos Materia docente ------------------*/

insert into docente_materia values (1,56,'05-05-2013');


insert into docente_materia values (2,55,'07-10-2013');
insert into docente_materia values (3,54,'01-01-2013');
insert into docente_materia values (4,53,'02-01-2013');
insert into docente_materia values (5,52,'03-01-2013');
insert into docente_materia values (7,51,'01-05-2013');
insert into docente_materia values (8,50,'02-02-2013');
insert into docente_materia values (8,49,'01-10-2013');
insert into docente_materia values (7,48,'15-06-2013');
insert into docente_materia values (6,47,'05-05-2013');
insert into docente_materia values (5,46,'07-10-2013');
insert into docente_materia values (4,45,'01-01-2013');
insert into docente_materia values (3,44,'02-01-2013');
insert into docente_materia values (2,43,'03-01-2013');
insert into docente_materia values (1,42,'01-05-2013');
insert into docente_materia values (4,41,'02-02-2013');
insert into docente_materia values (5,40,'01-10-2013');
insert into docente_materia values (6,39,'15-06-2013');
insert into docente_materia values (7,38,'05-05-2013');
insert into docente_materia values (8,37,'07-10-2013');
insert into docente_materia values (1,36,'01-01-2013');
insert into docente_materia values (2,35,'02-01-2013');
insert into docente_materia values (3,34,'03-01-2013');
insert into docente_materia values (4,33,'01-05-2013');
insert into docente_materia values (5,32,'02-02-2013');
insert into docente_materia values (8,31,'01-10-2013');
insert into docente_materia values (7,30,'15-06-2013');
insert into docente_materia values (6,29,'05-05-2013');
insert into docente_materia values (5,28,'07-10-2013');
insert into docente_materia values (4,27,'01-01-2013');
insert into docente_materia values (3,26,'02-01-2013');
insert into docente_materia values (2,25,'03-01-2013');
insert into docente_materia values (1,24,'01-05-2013');
insert into docente_materia values (1,23,'02-02-2013');
insert into docente_materia values (2,22,'01-10-2013');
insert into docente_materia values (3,21,'15-06-2013');
insert into docente_materia values (4,20,'05-05-2013');
insert into docente_materia values (5,19,'07-10-2013');
insert into docente_materia values (6,18,'01-01-2013');
insert into docente_materia values (7,17,'02-01-2013');
insert into docente_materia values (8,16,'03-01-2013');
insert into docente_materia values (8,15,'01-05-2013');
insert into docente_materia values (7,14,'02-02-2013');
insert into docente_materia values (6,13,'01-10-2013');
insert into docente_materia values (5,12,'15-06-2013');
insert into docente_materia values (4,11,'05-05-2013');
insert into docente_materia values (3,10,'07-10-2013');
insert into docente_materia values (2,9,'01-01-2013');
insert into docente_materia values (1,8,'02-01-2013');
insert into docente_materia values (8,7,'03-01-2013');
insert into docente_materia values (7,6,'01-05-2013');
insert into docente_materia values (6,5,'02-02-2013');
insert into docente_materia values (5,4,'01-10-2013');
insert into docente_materia values (4,3,'15-06-2013');
insert into docente_materia values (3,2,'05-05-2013');
insert into docente_materia values (2,1,'07-10-2013');

/* ------------------------------ Insertar las notas -----------------------*/

insert into registro_notas values (1,1,71,'30-11-2015',10);


insert into registro_notas values (2,2,70,'30-11-2015',5);
insert into registro_notas values (3,3,69,'30-11-2015',2);
insert into registro_notas values (4,4,68,'30-11-2015',15);
insert into registro_notas values (5,5,67,'30-11-2015',0);
insert into registro_notas values (6,6,66,'30-11-2015',16);
insert into registro_notas values (7,7,65,'30-11-2015',18);
insert into registro_notas values (8,8,64,'30-11-2015',14);
insert into registro_notas values (9,1,63,'30-11-2015',14);
insert into registro_notas values (10,2,62,'30-11-2015',14);
insert into registro_notas values (11,3,61,'30-11-2015',13);
insert into registro_notas values (12,4,60,'30-11-2015',12);
insert into registro_notas values (13,5,59,'30-11-2015',11);
insert into registro_notas values (14,6,58,'30-11-2015',10);
insert into registro_notas values (15,7,57,'30-11-2015',9);
insert into registro_notas values (16,8,56,'30-11-2015',15);
insert into registro_notas values (17,1,55,'30-11-2015',1);
insert into registro_notas values (18,2,54,'30-11-2015',15);
insert into registro_notas values (19,3,53,'30-11-2015',15);
insert into registro_notas values (20,4,52,'30-11-2015',15);
insert into registro_notas values (21,5,51,'30-11-2015',15);
insert into registro_notas values (22,6,50,'30-11-2015',16);
insert into registro_notas values (23,7,49,'30-11-2015',16);
insert into registro_notas values (24,8,48,'30-11-2015',12);
insert into registro_notas values (25,1,47,'30-11-2015',15);
insert into registro_notas values (26,2,46,'30-11-2015',16);
insert into registro_notas values (27,3,45,'30-11-2015',1);
insert into registro_notas values (28,4,44,'30-11-2015',17);
insert into registro_notas values (29,5,43,'30-11-2015',0);
insert into registro_notas values (30,6,42,'30-11-2015',0);
insert into registro_notas values (31,7,41,'30-11-2015',18);
insert into registro_notas values (32,8,40,'30-11-2015',19);
insert into registro_notas values (33,1,39,'30-11-2015',15);
insert into registro_notas values (34,2,38,'30-11-2015',12);
insert into registro_notas values (35,3,37,'30-11-2015',12);
insert into registro_notas values (36,4,36,'30-11-2015',15);
insert into registro_notas values (37,5,35,'30-11-2015',16);
insert into registro_notas values (38,6,34,'30-11-2015',12);
insert into registro_notas values (39,7,33,'30-11-2015',12);
insert into registro_notas values (40,8,32,'30-11-2015',12);
insert into registro_notas values (41,1,31,'30-11-2015',15);
insert into registro_notas values (42,2,30,'30-11-2015',16);
insert into registro_notas values (43,3,29,'30-11-2015',18);
insert into registro_notas values (44,4,28,'30-11-2015',19);
insert into registro_notas values (45,5,27,'30-11-2015',15);
insert into registro_notas values (46,6,26,'30-11-2015',17);
insert into registro_notas values (47,7,25,'30-11-2015',17);
insert into registro_notas values (48,8,24,'30-11-2015',17);
insert into registro_notas values (49,8,23,'30-11-2015',16);
insert into registro_notas values (50,7,22,'30-11-2015',16);
insert into registro_notas values (51,6,21,'30-11-2015',15);
insert into registro_notas values (52,5,20,'30-11-2015',15);
insert into registro_notas values (53,4,19,'05-02-2016',15);
insert into registro_notas values (54,3,18,'05-02-2016',14);
insert into registro_notas values (55,2,17,'05-02-2016',14);
insert into registro_notas values (56,1,16,'05-02-2016',14);
insert into registro_notas values (57,1,15,'05-02-2016',1);
insert into registro_notas values (58,2,14,'05-02-2016',2);
insert into registro_notas values (59,3,13,'05-02-2016',15);
insert into registro_notas values (60,4,12,'05-02-2016',16);
insert into registro_notas values (61,5,11,'05-02-2016',17);
insert into registro_notas values (62,6,10,'05-02-2016',14);
insert into registro_notas values (63,7,9,'05-02-2016',12);
insert into registro_notas values (64,8,8,'05-02-2016',13);
insert into registro_notas values (65,1,7,'05-02-2016',12);
insert into registro_notas values (66,2,6,'05-02-2016',16);
insert into registro_notas values (67,3,5,'05-02-2016',15);
insert into registro_notas values (68,4,4,'05-02-2016',12);
insert into registro_notas values (69,5,3,'05-02-2016',12);
insert into registro_notas values (70,6,2,'05-02-2016',12);
insert into registro_notas values (71,7,1,'05-02-2016',12);
insert into registro_notas values (72,8,1,'05-02-2016',12);
insert into registro_notas values (73,1,2,'05-02-2016',15);
insert into registro_notas values (74,2,3,'05-02-2016',16);
insert into registro_notas values (75,3,4,'05-02-2016',16);
insert into registro_notas values (76,4,5,'05-02-2016',19);
insert into registro_notas values (77,5,6,'05-02-2016',15);
insert into registro_notas values (78,6,7,'05-02-2016',14);
insert into registro_notas values (79,7,8,'05-02-2016',14);
insert into registro_notas values (80,8,9,'05-02-2016',14);
insert into registro_notas values (81,1,10,'05-02-2016',14);
insert into registro_notas values (82,2,11,'05-02-2016',14);
insert into registro_notas values (83,3,12,'05-02-2016',15);
insert into registro_notas values (84,4,13,'05-02-2016',15);
insert into registro_notas values (85,5,14,'05-02-2016',15);
insert into registro_notas values (86,6,15,'05-02-2016',15);
insert into registro_notas values (87,7,16,'05-02-2016',1);
insert into registro_notas values (88,8,17,'05-02-2016',12);
insert into registro_notas values (89,1,18,'05-02-2016',12);
insert into registro_notas values (90,2,19,'05-02-2016',5);
insert into registro_notas values (91,3,20,'05-02-2016',8);
insert into registro_notas values (92,4,21,'05-02-2016',6);
insert into registro_notas values (93,5,22,'05-02-2016',1);
insert into registro_notas values (94,6,23,'05-02-2016',5);
insert into registro_notas values (95,7,24,'05-02-2016',7);
insert into registro_notas values (96,8,25,'05-02-2016',4);
insert into registro_notas values (97,1,26,'05-02-2016',1);
insert into registro_notas values (98,2,27,'05-02-2016',2);
insert into registro_notas values (99,3,28,'05-02-2016',10);
insert into registro_notas values (100,4,29,'05-02-2016',11);
insert into registro_notas values (101,5,30,'05-02-2016',11);
insert into registro_notas values (102,6,31,'05-02-2016',10);
insert into registro_notas values (103,7,32,'05-02-2016',11);
insert into registro_notas values (104,8,33,'05-02-2016',12);
insert into registro_notas values (105,8,34,'05-02-2016',12);
insert into registro_notas values (106,7,35,'05-02-2016',12);
insert into registro_notas values (107,6,36,'05-02-2016',18);
insert into registro_notas values (108,5,37,'05-02-2016',19);
insert into registro_notas values (109,4,38,'10-20-2016',11);
insert into registro_notas values (110,3,39,'10-20-2016',18);
insert into registro_notas values (111,2,40,'10-20-2016',15);
insert into registro_notas values (112,1,41,'10-20-2016',19);
insert into registro_notas values (113,1,42,'10-20-2016',15);
insert into registro_notas values (114,2,43,'10-20-2016',15);
insert into registro_notas values (115,3,44,'10-20-2016',12);
insert into registro_notas values (116,4,45,'10-20-2016',12);
insert into registro_notas values (117,5,46,'10-20-2016',7);
insert into registro_notas values (118,6,47,'10-20-2016',13);
insert into registro_notas values (119,7,48,'10-20-2016',10);
insert into registro_notas values (120,8,49,'10-20-2016',11);
insert into registro_notas values (121,1,50,'10-20-2016',11);
insert into registro_notas values (122,2,51,'10-20-2016',10);
insert into registro_notas values (123,3,52,'10-20-2016',11);
insert into registro_notas values (124,4,53,'10-20-2016',12);
insert into registro_notas values (125,5,54,'10-20-2016',12);
insert into registro_notas values (126,6,55,'10-20-2016',12);
insert into registro_notas values (127,7,56,'10-20-2016',18);
insert into registro_notas values (128,8,57,'10-20-2016',19);
insert into registro_notas values (129,1,58,'10-20-2016',11);
insert into registro_notas values (130,2,59,'5-12-2015',18);
insert into registro_notas values (131,3,60,'5-12-2015',15);
insert into registro_notas values (132,4,61,'5-12-2015',19);
insert into registro_notas values (133,5,62,'5-12-2015',15);
insert into registro_notas values (134,6,63,'5-12-2015',15);
insert into registro_notas values (135,7,64,'5-12-2015',12);
insert into registro_notas values (136,8,65,'5-12-2015',12);
insert into registro_notas values (137,1,66,'5-12-2015',7);
insert into registro_notas values (138,2,67,'5-12-2015',13);
insert into registro_notas values (139,3,68,'5-12-2015',12);
insert into registro_notas values (140,4,69,'5-12-2015',12);
insert into registro_notas values (141,5,70,'5-12-2015',7);
insert into registro_notas values (142,6,71,'5-12-2015',13);

6. Requerimientos funcionales de los reportes y sentencias SQL:

/*La Universidad ABC necesita que se muestre todos los datos de los estudiantes
que pertenecen a la Universidad*/

select *
from alumno;

/*La Universidad ABC necesita que muestre el número de cédula y el apellido


de las personas que conforman la Universidad*/

select numerocedula "Número Cédula", apellidos "Apellidos"


from persona;

/*La Universidad ABC necesita que se muestre el nombre de todas las materias
con una proyección de un aumento de 2 créditos en cada materia*/

select nombre_materia "Nombre Materia", numerocreditos+2 "Créditos"


from materia;

/*La Universidad ABC necesita que se muestre el nombre de las materias con
su respectivo código en un formato amigable*/

select nombre_materia||' tiene el código: '||secmateria "Nombre y código"


from materia;

/*La Universidad ABC necesita que se muestre todas las materias que existen
disponibles para que las tomen los alumnos*/
select distinct nombre_materia
from materia;

/*La Universidad ABC necesita que se muestre a todas las materias que tengan
más de 4 créditos*/

select nombre_materia "Nombre Materia", numerocreditos "Créditos"


from materia
where numerocreditos>4;

/*La Universidad ABC necesita que se muestre las fechas en las que se registraron
notas de 10 puntos*/

select fecha_asignacions "Fecha Registro", nota "Notas"


from registro_notas
where nota=10;

/*La Universidad ABC necesita que se muestre el nombre de las materias que tienen
el número de créditos entre 4 y 6*/

select nombre_materia "Nombre Materia", numerocreditos "Créditos"


from materia
where numerocreditos between 4 and 6;

/*La Universidad ABC necesita que se muestre la fecha de los registros de notas de
aquellas notas iguales a 10,12 ó 14*/

select fecha_asignacions "Fecha Ascentamiento", nota "Nota"


from registro_notas
where nota in(10,12,14);

/*La Universidad ABC necesita que se muestre a todas las personas que pertenecen
a la Universidad que su apellido empiece con la letra A*/

select numerocedula "Cédula", Apellidos "Apellidos"


from persona
where apellidos like 'A%';

/*La Universidad ABC necesita que se muestre a todas las persona que no tengan
sus apellidos en la base*/

select *
from persona
where apellidos is null;
/*La Universidad ABC necesita que se muestre a todas las materias que tengan
más de dos créditos y su nombre empiece por A*/

select *
from materia
where numerocreditos>2 and nombre_materia like 'A%';

/*La Universidad ABC necesita que se muestre todas las materias que tengan menos
de 4 créditos o empiecen con la letra C*/

select *
from materia
where numerocreditos<4 or nombre_materia like 'C%';

/*La Universidad ABC necesita que se muestre el nombre de las materias que no
tienen
el número de créditos entre 4 y 6*/

select nombre_materia "Nombre Materia", numerocreditos "Créditos"


from materia
where numerocreditos not between 4 and 6;

/*La Universidad ABC necesita que se muestre la fecha de los registros de notas de
aquellas notas no sean iguales a 10,12 ó 14*/

select fecha_asignacions "Fecha Ascentamiento", nota "Nota"


from registro_notas
where nota not in(10,12,14);

/*La Universidad ABC necesita que se muesre a todas las materias ordenadas de
manera
ascendente por su nombre*/

select *
from materia
order by nombre_materia;

/*La Universidad ABC necesuta que se muestre a todas las personas ordenadas de
manera
descendente por su nombre*/

select *
from persona
order by nombres desc;
/*La Universidad ABC necesita que se muestre todas las meterias que tengan el
núemro
de créditos indicados por la persona de turno*/

select *
from materia
where numerocreditos=&numero_de_creditos;

/*La Universidad ABC necesita que muestre la información de la materia que tengan
el nombre indicado por la persona de turno*/

select *
from materia
where nombre_materia='&Nombre_Materia';

/*La Universidad ABC necesita que muestre el código de las persona conjuntamente
con
otros dos campos que especifique la persona de turno y se ordenen de acuerdo con el
campo 2*/

select secpersona "Cod Persona", &&campo1, &&campo2


from persona
order by &campo2;

/*La Universidad ABC necesita que se muestre la información del docente de código
que se lo defina con anterioridad*/

define cod_docente=1

select *
from docente
where secdocente=&cod_docente;

undefine cod_docente

/*La Universidad ABC necesita que se muestre el apellido de todos las personas
en minúsculas*/

select numerocedula "Cédula", lower(apellidos) "Apellido"


from persona;

/*La Universidad ABC necesita que se muestre el nombre de todos las personas
en mayúsculas*/
select numerocedula "Cédula", upper(apellidos) "Apellido"
from persona;

/*La Universidad ABC necesita que se muestre el nombre y el apellido de todos


las personas en mayúsculas la primera letra y el resto en minúscula*/

select numerocedula "Cédula", initcap(apellidos) "Apellido", initcap(nombres)


"Nombres"
from persona;

/*La Universidad ABC necesita que se muestre el nombre y apellido de las personas
concatenados*/

select concat(nombres,apellidos) "Nombres y Apellidos"


from persona;

/*La Universidad ABC necesita que se muestre los 10 primeros caracteres de los
apellidos de las personas*/

select substr(apellidos,1,10) "Apellido Corto"


from persona;

/*La Universidad ABC necesita que se muestre el número de caracteres que poseen los
apellidos de las personas*/

select length(apellidos) "Núemro Caracteres"


from persona;

/*La Universidad ABC necesita que muestre la lista con el nombre de las materias
alineadas a las derecha con el símbolo $*/

select lpad(nombre_materia,20,'*') "Nombre materia"


from materia;

/*La Universidad ABC necesita que muestre la lista apellidos de las persona
reemplazanso
las letras a por x*/

select replace(apellidos,'a','x') "Apellido Nuevo"


from persona;

/*La Universidad ABC necesita que se muestre a todos los docentes que ingresaron
antes
de 01/01/2012*/

select *
from docente
where fechaingresodocente<'01/01/2012';

/*La Universidad ABC necesita que se muestre el núermo de semanas que se


encuantra
con el puesto cada docente*/

select secdocente "Código Docente", fechaingresodocente "Fecha Ingreso",


months_between(sysdate,fechaingresodocente) "Núemro de Meses"
from docente;

/*La Universidad ABC necesita que se muestre el mes de ingreso de los docentes
redondeados por mes*/

select secdocente "Código Docentes", round(fechaingresodocente,'month') "Ingreso


Redondeado"
from docente;

/*La Universidad ABC necesita que se muestre el mes de ingreso de los docentes
truncado por año*/

select secdocente "Código Docentes", trunc(fechaingresodocente,'year') "Ingreso


Redondeado"
from docente;

/*La Universidad ABC necesita que se muestre el código del alumno, la nota y la fecha
en la que se registro en el formato dd/mm/yyyy*/

select secalumno "Código ALumno", nota "Nota",


to_char(fecha_asignacions,'dd/mm/yyyy') "Fecha Registro"
from registro_notas;

/*La Universidad ABC necesita que se muestre el código del alumno, la nota y la fecha
en la que se registro en el formato 01-enero-2016*/

select secalumno "Código ALumno", nota "Nota", to_char(fecha_asignacions,'dd-


month-yyyy') "Fecha Registro"
from registro_notas;

/*La Universidad ABC necesita que se muestre el registro de las notas en un formato
20.00*/
select secalumno "Alumno", to_char(nota,'99.99') "Notas"
from registro_notas;

/*La Universidad ABC necesita que se muestre todas las notas registradas antes del
01/01/2016*/

select secalumno "Código Alumno", nota "Nota", fecha_asignacions "Fecha Registro"


from registro_notas
where fecha_asignacions<=to_date('01-01-2016','dd/mm/yyyy');

/*La Universidad ABC necesita que se muestre el número de caracteres que tienen las
personas contando sus nombres y apellidos*/

select secpersona "Código Persona",length(concat(nombres,apellidos)) "Número de


Caracteres"
from persona;

/*La Universidad ABC necesita que se indique con un identificador "Sin_Apellido",


a las personas que no se les haya registrado su apellido*/

select secpersona "Código Persona", nvl(apellidos,'Sin_Apellido') "Apellido"


from persona;

/*La Universidad ABC necesita saber que empleados tienen o no tienen registrado
sus apellidos*/

select secpersona "Código Persona", nvl2(apellidos,'Con_Apellido','Sin_Apellido')


"Tiene Apellido"
from persona;

/*La Universidad ABC necesita que se indique si una persona tiene igual número de
caracteres en los nombres y los apellidos*/

select secpersona "Código


Persona",nvl2(nullif(length(nombres),length(apellidos)),'Diferentes','Iguales') "Cadenas
Iguales?"
from persona;

/*La Universidad ABC necesita que se liste los códigos de las meterias con etiquetas
que me indiquen si es normal,moderada o extrema según los créditos 2,4,6*/

select secmateria "Código Materia", case numerocreditos when 2 then 'normal'


when 4 then 'moderada'
when 6 then 'extrema'
else 'sin_registrar' end "Tiempo"
from materia;

/*La Universidad ABC necesita que se etiquete a los estudiantes cuyas calificaciones
sean buenas, muy buenas y excelentes según sus notas 17,18,19*/

select secalumno "Código Alumno", decode(nota,17,'buena',


18,'muy buena',
19,'excelente',
'sin_denominación') "Tipo de Nota"
from registro_notas;

También podría gustarte