Академический Документы
Профессиональный Документы
Культура Документы
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.
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:
/*==============================================================*/
/* 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);
/*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 se muestre el nombre de todas las materias
con una proyección de un aumento de 2 créditos en cada materia*/
/*La Universidad ABC necesita que se muestre el nombre de las materias con
su respectivo código en un formato amigable*/
/*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*/
/*La Universidad ABC necesita que se muestre las fechas en las que se registraron
notas de 10 puntos*/
/*La Universidad ABC necesita que se muestre el nombre de las materias que tienen
el número de créditos entre 4 y 6*/
/*La Universidad ABC necesita que se muestre la fecha de los registros de notas de
aquellas notas iguales a 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*/
/*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*/
/*La Universidad ABC necesita que se muestre la fecha de los registros de notas de
aquellas notas no sean iguales a 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*/
/*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*/
/*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 apellido de las personas
concatenados*/
/*La Universidad ABC necesita que se muestre los 10 primeros caracteres de los
apellidos de las personas*/
/*La Universidad ABC necesita que se muestre el número de caracteres que poseen los
apellidos de las personas*/
/*La Universidad ABC necesita que muestre la lista con el nombre de las materias
alineadas a las derecha con el símbolo $*/
/*La Universidad ABC necesita que muestre la lista apellidos de las persona
reemplazanso
las letras a por x*/
/*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 mes de ingreso de los docentes
redondeados por mes*/
/*La Universidad ABC necesita que se muestre el mes de ingreso de los docentes
truncado por año*/
/*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*/
/*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*/
/*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*/
/*La Universidad ABC necesita que se muestre el número de caracteres que tienen las
personas contando sus nombres y apellidos*/
/*La Universidad ABC necesita saber que empleados tienen o no tienen registrado
sus apellidos*/
/*La Universidad ABC necesita que se indique si una persona tiene igual número de
caracteres en los nombres y los apellidos*/
/*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*/
/*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*/