MotoGP

Anuncio
SISTEMAS DE GESTIÓN DE BASES DE DATOS
EXAMEN FINAL - Septiembre de 2001
PRIMER PARCIAL
1.
Realice el diagrama E-R para el diseño de una base de datos que refleje la información sobre
resultados en el Campeonato del Mundo de Motociclismo del 2002. El sistema debe contemplar los
siguientes datos y restricciones:
•
De cada piloto se quiere registrar su número de Pasaporte (obligatorio y único), su nombre, su edad y
un identificador que se le asigna dentro del sistema informático para distinguirle del resto.
El Campeonato del Mundo se compone de varios grandes premios. Para cada Gran Premio se
guardará un identificador, su nombre y la longitud del circuito (con dos decimales).
Un piloto puede correr en un Gran Premio en una o más de las distintas categorías (125, 250 y 500) y
para cada una se quiere guardar la posición en la que finalizó.
Cuando se celebra un Gran Premio en un circuito los pilotos realizan varias sesiones, siempre las
mismas. Para cada sesión se almacena un identificador y su descripción (entrenamientos libres,
entrenamientos oficiales, calentamiento y carrera). Se quiere almacenar a su vez el mejor tiempo
obtenido por cada piloto en cada sesión en la que participa para todos los Grandes Premios.
Los pilotos pueden ser privados, cuando se financian ellos mismo el campeonato, u oficiales, cuando
son financiados por una marca. Para los privados se quiere almacenar el nombre de su equipo y el
presupuesto del que dispone. Para los oficiales se almacena la marca y el caché que tiene.
Entre los pilotos hay grandes rivalidades por lo que se quiere guardar información de quién odia a
quién de la forma odiador y odiado.
•
•
•
•
•
Una vez realizado el diagrama pasarlo a tablas del modelo relacional y dar las instrucciones SQL
necesarias para su creación, especificando claramente los atributos que funcionan como P.K., F.K.
(diciendo a que tabla corresponden) y los valores únicos si existen.
NOTA: - Reflejar las cardinalidades mínima y máxima para las relaciones BINARIAS
Realizar las siguientes consultas en álgebra relacional:
1) Obtener el nombre del piloto, el identificador del gran premio, la categoría, el identificador de la
sesión y los tiempos obtenidos en cada una de estas sesiones, para aquellos pilotos menores de 20
años.
2) Nombres de los pilotos que han participado en todos los grandes premios
SISTEMAS DE GESTIÓN DE BASES DE DATOS
EXAMEN FINAL - Septiembre de 2001
PRIMER PARCIAL
Longitud
Nombre
Nombre
ID_PIL
Categoría.
ID_GP
Pasaporte
Resul
GRAN PREMIO
Posición
Edad
PILOTO
N:M
odios
N:M
Tiempo
tiemp
N:M
ID_SESION
SESION
PRIVADO
Descrip
Equipo
Caché
OFICIAL
Presupuesto
GP = ( ID_GP, nombre, longitud)
PILOTOS = (ID_PIL, nombre, edad, pass)
ODIOS = (ID_PLI_ODIADOR,ID_PIL_ODIADO)
PRIVADOS = (ID_PIL, Equipo, Presupuesto)
OFICIALES = (ID_PIL, Marca,Caché)
RESULTADOS = ( ID_PIL, ID_GP, Categoría, posición)
SESIONES = ( ID_SES, Descripción)
TIEMPOS = ( ID_PIL,ID_GP, Categoría, ID_SES, Tiempo)
Create domain Dom_Id as Integer;
create table GP (
ID_gp
Nombre
Longitud
);
Dom_Id not null primary key,
Varchar (15),
decimal(4,2)
create table Pilotos (
ID_PIL
Nombre
Edad
Pass
);
Dom_Id not null primary key,
Varchar (15),
Integer,
Varchar (10) not null unique
create table Privados (
ID_PIL
Equipo
Presupuesto
);
Dom_Id not null primary key references Pilotos (ID_PIL),
Varchar (15),
Integer
Marca
SISTEMAS DE GESTIÓN DE BASES DE DATOS
EXAMEN FINAL - Septiembre de 2001
PRIMER PARCIAL
create table Oficiales (
ID_PIL
Marca
Cache
);
Dom_Id not null primary key references Pilotos (ID_PIL),
Varchar (15),
Integer
create table Odios (
ID_PIL_ODIADOR
Dom_Id not null references Pilotos (ID_PIL),
ID_PIL_ODIADO
Dom_Id not null references Pilotos (ID_PIL),
Primary key (ID_PIL_ODIADOR, ID_PIL_ODIADO)
);
create table Resultados (
ID_PIL
Dom_Id not null references Pilotos (ID_PIL)
on delete cascade
on update cascade,
ID_GP
Dom_Id not null references GP(ID_GP)
on delete cascade
on update cascade,
Categoria
Integer not null,
Posicion
Integer,
Primary Key (ID_PIL, ID_GP, Categoria)
);
create table Sesiones (
ID_SES
Descripcion
);
Dom_Id not null primary key,
Varchar (15)
create table Tiempos (
ID_PIL
ID_GP
Categoria
ID_SES
Dom_Id not null,
Dom_Id not null,
Integer not null,
Dom_id not null references Sesiones(ID_SES)
on delete set null
on update cascade,
Tiempo
Decimal (5,3),
Foreign key (ID_PIL, ID_GP, Categoria) references Resultados(ID_PIL,ID_GP, Categoria),
Primary Key (ID_PIL, ID_GP, Categoria, ID_SES)
);
Realizar las siguientes consultas en álgebra relacional:
3) Obtener el nombre del piloto, el identificador del gran premio, la categoría, el identificador de la
sesión y los tiempos obtenidos en cada una de estas sesiones, para aquellos pilotos menores de 20
años.
Πnombre, ID_GP, Categoria, ID_SES, Tiempo(TIEMPOS x RESULTADOS x(σedad< 20(PILOTOS))
4) Nombres de los pilotos que han participado en todos los grandes premios
Πnombre, ID_GP ( RESULTADOS x PILOTOS) ÷ Π ID_GP ( GP)
Descargar