El documento describe un modelo de base de datos para una universidad con tablas de Alumnos, Cursos y una tabla de relación Alumno_Curso. Se pide crear las tablas, insertar datos de prueba y responder 3 preguntas utilizando consultas SQL.
1. Ayudantía de base de datos
octubre de 2000
Test de SQL
Con el siguiente modelo de datos y sus respectivas características construya las
tablas y sus relaciones. Los datos de prueba serán provistos vía disquete. Luego
responda las preguntas que aparecen al final de la hoja.
Descripción de las tablas
Tabla Alumnos:
Id_Alumno Numerico(5,0) no nulo
Nombre Caracter(40) no nulo
Direccion Caracter(80) no nulo
Ciudad Caracter(30) no nulo
Clave Primaria: Id_Alumno.
Tabla Cursos:
Id_Curso Numérico(5,0) no nulo
NombreCurso Caracter(50) no nulo
Clave Primaria: Id_Curso
Tabla Alumno_Curso:
Id_Alumno Numérico(5,0) no nulo
Id_Curso Numérico(5,0) no nulo
Claves Foráneas: Id_Alumno, Id_Curso
Clave Primaria: (Id_alumno, Id_curso)
Tabla: Alumnos
#• id_alumno
• Nombre
• Direccion
• Ciudad
Tabla: Cursos
#• id_curso
• NombreCurso
Tabla: Alumno_Curso
#• id_alumno
#• id_curso
2. Ayudantía de base de datos
octubre de 2000
Luego de haber ingresado los datos a las tablas responda las siguientes 3
preguntas (con instrucciones de selección):
- Se quiere saber los nombres y los cursos de los alumnos que viven en TALCA.
(nombre del alumno, nombre del curso)
- Se desea conocer los alumnos que están en el ramo de SISTEMAS
OPERATIVOS. (nombre del alumno y cuidad de origen)
- Se quiere saber qué ramos tiene la alumna de nombre PATRICIA.
(Nombre del alumno, nombre del curso)
Suerte, y que la fuerza les acompañe.
3. Ayudantía de base de datos
octubre de 2000
Solución del Test
Creación de la Tabla Alumnos
create table alumnos
(id_alumno Number(5,0) Not null,
Nombre Char(40) not Null,
Direccion Char(80) not null,
Ciudad char(30) not null,
Constraint PK_Alumnos primary key (id_alumno));
Creación de la Tabla Cursos
create table cursos
(id_curso number(5,0) not null,
NombreCurso Char(50) not null,
Constraint PK_Cursos primary key(id_curso));
Creación de la Tabla Alumno_Curso
create table alumno_curso
(id_alumno number(5,0) not null,
id_curso number(5,0) not null,
Constraint FK_Alumnos Foreign Key (id_alumno)
references Alumnos(id_alumno),
Constraint FK_Cursos
Foreign key (id_curso) references Cursos(id_Curso),
Constraint PK_Alumno_Curso
Primary key (id_alumno, id_curso));
Inserción de Datos
insert into alumnos
values (2, 'CLAUDIA', 'SGTO.REBOLLEDO 6958', 'SANTIAGO');
insert into alumnos
values (3, 'MARICEL', '11 DE SEPTIEMBRE 538', 'RANCAGUA');
insert into alumnos
values (4, 'MAURICIO', '11 SUR 458', 'TALCA');
insert into alumnos
values (5, 'ANDRES', '24 PONIENTE 942', 'TALCA');
insert into alumnos
values (6, 'JUAN', '17 SUR 3258', 'TALCA');
insert into alumnos
values (7, 'KARLA', 'LOS NARANJOS 509', 'TALCA');
insert into cursos values (1,'ALGEBRA');
insert into cursos values (2,'CALCULO');
insert into cursos values (3,'REDES');
insert into cursos values (4,'COMPUTACION');
insert into cursos values (5,'PROGRAMACION');
insert into cursos values (6,'ECUACIONES DIFERENCIALES');
insert into cursos values (7,'INGENIERIA DE SOFTWARE');
insert into cursos values (8,'INTRODUCCION A LA INGENIERIA');
insert into cursos values (9,'CALCULO NUMERICO');
insert into cursos values (10,'SISTEMAS OPERATIVOS');
insert into cursos values (11,'BASE DE DATOS');
4. Ayudantía de base de datos
octubre de 2000
insert into alumno_curso values(1,1);
insert into alumno_curso values(1,2);
insert into alumno_curso values(1,4);
insert into alumno_curso values(1,5);
insert into alumno_curso values(2,6);
insert into alumno_curso values(2,11);
insert into alumno_curso values(2,10);
insert into alumno_curso values(3,9);
insert into alumno_curso values(3,10);
insert into alumno_curso values(3,7);
insert into alumno_curso values(4,8);
insert into alumno_curso values(4,2);
insert into alumno_curso values(4,1);
insert into alumno_curso values(5,8);
insert into alumno_curso values(5,2);
insert into alumno_curso values(5,1);
insert into alumno_curso values(6,7);
insert into alumno_curso values(6,11);
insert into alumno_curso values(6,10);
insert into alumno_curso values(7,7);
insert into alumno_curso values(7,10);
insert into alumno_curso values(7,11);
Solución Consulta 1
Se quiere saber los nombres y los cursos de los alumnos que viven en TALCA.
(nombre del alumno, nombre del curso)
select alumnos.nombre "Alumno", cursos.nombreCurso "Curso"
from alumnos, cursos, alumno_curso
where (alumnos.id_alumno = alumno_curso.id_alumno)
And (cursos.id_curso = alumno_curso.id_curso)
And (alumnos.ciudad = 'TALCA');
Solución Consulta 2
Se desea conocer los alumnos que están en el ramo de SISTEMAS OPERATIVOS.
(nombre del alumno y cuidad de origen)
select alumnos.nombre "Alumno", alumnos.ciudad "Ciudad"
from alumnos, cursos, alumno_curso
where (alumnos.id_alumno = alumno_curso.id_alumno)
And (cursos.id_curso = alumno_curso.id_curso)
And (cursos.nombrecurso = 'SISTEMAS OPERATIVOS');
Solución Consulta 3
Se quiere saber qué ramos tiene la alumna de nombre PATRICIA.
(Nombre del alumno, nombre del curso)
select alumnos.nombre "Alumno", cursos.nombrecurso "Curso"
from alumnos, cursos, alumno_curso
where (alumnos.id_alumno = alumno_curso.id_alumno)
AND (cursos.id_curso = alumno_curso.id_curso)
AND (Nombre = 'PATRICIA');