commit
d962f094c0
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
informe/*.aux
|
||||
informe/*.log
|
||||
informe/*.out
|
||||
informe/*.toc
|
||||
informe/*.gz
|
@ -1,6 +1,6 @@
|
||||
# Olímpicos
|
||||
|
||||
Eso es el proyecto semestral de administración de base de datos. El enunciado se encuentra en el archivo "Trabajo_Semestral.pdf". El MR y MER se encuentran en "modelo/Modelo MR.pdf" y "modelo/Modelo MER.png".
|
||||
Eso es el proyecto semestral de administración de base de datos. El enunciado se encuentra en el archivo "Trabajo_Semestral.pdf". El MR y MER se encuentran en "modelo/MR.pdf" y "modelo/MER.png".
|
||||
|
||||
## Integrantes
|
||||
|
||||
|
15
data.sql
15
data.sql
@ -2,20 +2,17 @@ INSERT INTO MEDALLA (DESCRIPCION) VALUES ('oro');
|
||||
INSERT INTO MEDALLA (DESCRIPCION) VALUES ('plata ');
|
||||
INSERT INTO MEDALLA (DESCRIPCION) VALUES ('bronce');
|
||||
|
||||
|
||||
INSERT INTO CATEGORIA (DESCRIPCION) VALUES ('100 Metros');
|
||||
INSERT INTO CATEGORIA (DESCRIPCION) VALUES ('20 Metros');
|
||||
INSERT INTO CATEGORIA (DESCRIPCION) VALUES ('30 Metros');
|
||||
INSERT INTO CATEGORIA (DESCRIPCION) VALUES ('40 Metros');
|
||||
|
||||
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Ignacio', 'Ortiz', TO_DATE('1998-04-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Chilena');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Chris', 'Cromer', TO_DATE('1998-05-22 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Chilena');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Benjamin', 'Perez', TO_DATE('1992-01-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Argentina');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Diego', 'Perez', TO_DATE('1983-12-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Peruana');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Kevin', 'Perez', TO_DATE('1983-12-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Peruana');
|
||||
|
||||
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Chile');
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Peru');
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Argentina');
|
||||
@ -24,7 +21,6 @@ INSERT INTO PAIS (NOMBRE) VALUES ('Berlin');
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Canada');
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Republica Checa');
|
||||
|
||||
|
||||
INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Atletismo');
|
||||
INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Carrera');
|
||||
INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Arqueria');
|
||||
@ -36,7 +32,6 @@ INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Curling');
|
||||
INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Rugby');
|
||||
INSERT INTO TIPOS_DEPORTES (DESCRIPCION) VALUES ('Disparo');
|
||||
|
||||
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Tome', 1);
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Concepcion', 1);
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Checa', 2);
|
||||
@ -48,7 +43,6 @@ INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Iquique', 6);
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Orzan', 4);
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Riazor', 3);
|
||||
|
||||
|
||||
INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('BXKQ', 100, 1);
|
||||
INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('TELLONES', 120, 2);
|
||||
INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('TRELLIG', 80, 3);
|
||||
@ -56,7 +50,6 @@ INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('DIRAKZ', 250, 3);
|
||||
INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('ZERINID', 400, 5);
|
||||
INSERT INTO LUGAR (NOMBRE, CAPACIDAD, CIUDAD) VALUES ('CHIX', 150, 6);
|
||||
|
||||
|
||||
INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('SILENT', 1);
|
||||
INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('ZRKAZ', 2);
|
||||
INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('JBL', 3);
|
||||
@ -66,7 +59,6 @@ INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('HILL', 5);
|
||||
INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('RESIDENT', 6);
|
||||
INSERT INTO HOTEL (NOMBRE, CIUDAD) VALUES ('ZERO', 1);
|
||||
|
||||
|
||||
INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (1, 1);
|
||||
INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (1, 2);
|
||||
INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (2, 3);
|
||||
@ -77,13 +69,11 @@ INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (4, 7);
|
||||
INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (5, 8);
|
||||
INSERT INTO CAPITAL (ID_PAIS, ID_CIUDAD) VALUES (6, 9);
|
||||
|
||||
|
||||
INSERT INTO DELEGACION (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SAMSU', 2, 1, 1);
|
||||
INSERT INTO DELEGACION (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SUX', 3, 2, 2);
|
||||
INSERT INTO DELEGACION (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SKT1', 4, 3, 3);
|
||||
INSERT INTO DELEGACION (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SUPREME', 2, 4, 4);
|
||||
|
||||
|
||||
INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', 1, 1, 1);
|
||||
INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', 1, 1, 2);
|
||||
INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', 1, 1, 3);
|
||||
@ -98,7 +88,6 @@ INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', 4, 1
|
||||
INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', 4, 2, 3);
|
||||
INSERT INTO COMPETENCIA (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', 4, 3, 5);
|
||||
|
||||
|
||||
INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 1, 1);
|
||||
INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-06-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 1, 2);
|
||||
INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-07-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 1, 3);
|
||||
@ -108,7 +97,6 @@ INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-08-
|
||||
INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-09-26 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 3, 1);
|
||||
INSERT INTO PRECOMPETENCIA (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-10-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 4, 2);
|
||||
|
||||
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (1, 1, TO_DATE('2020-05-21 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 1500000, 1500000);
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (1, 2, TO_DATE('2020-05-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-06-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 350000, 350000);
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (2, 3, TO_DATE('2020-05-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-10 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 280000, 280000);
|
||||
@ -116,14 +104,12 @@ INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_D
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (4, 2, TO_DATE('2020-09-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-15 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 178000, 178000);
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (5, 3, TO_DATE('2020-10-13 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-18 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 189000, 189000);
|
||||
|
||||
|
||||
INSERT INTO GANAR (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES (1, 1, 3, TO_DATE('2019-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 70);
|
||||
INSERT INTO GANAR (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES (1, 1, 1, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 99);
|
||||
INSERT INTO GANAR (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES (2, 2, 1, TO_DATE('2019-06-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 100);
|
||||
INSERT INTO GANAR (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES (3, 1, 2, TO_DATE('2019-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 78);
|
||||
INSERT INTO GANAR (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES (3, 1, 3, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 89);
|
||||
|
||||
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (1, 1, 70, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (1, 2, 75, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (1, 3, 80, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
@ -131,7 +117,6 @@ INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FE
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (3, 2, 100, TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (1, 4, 20, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
||||
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 1, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 2, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 3, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
BIN
informe/informe.pdf
Normal file
BIN
informe/informe.pdf
Normal file
Binary file not shown.
190
informe/informe.tex
Normal file
190
informe/informe.tex
Normal file
@ -0,0 +1,190 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[spanish]{babel}
|
||||
\usepackage{array}
|
||||
\usepackage{adjustbox}
|
||||
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm,a4paper]{geometry}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{verbatim}
|
||||
\usepackage{courier}
|
||||
|
||||
\usepackage{listings}
|
||||
\usepackage{xcolor}
|
||||
|
||||
\lstdefinestyle{freefempp}{
|
||||
language=SQL,
|
||||
basicstyle=\scriptsize\ttfamily,
|
||||
commentstyle=\itshape\color{gray},
|
||||
keywordstyle=\color{blue},
|
||||
numberstyle=\color{red},
|
||||
stringstyle=\color{red},
|
||||
identifierstyle=\color{violet},
|
||||
showstringspaces=false,
|
||||
%float,
|
||||
%frame=single,
|
||||
%numbers=left
|
||||
}
|
||||
|
||||
\lstset{
|
||||
basicstyle=\footnotesize\ttfamily,
|
||||
columns=flexible,
|
||||
breaklines=true,
|
||||
inputencoding=utf8,
|
||||
extendedchars=true,
|
||||
literate={á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 {ñ}{{\~n}}1 {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 {Ñ}{{\~N}}1,
|
||||
style=freefempp
|
||||
}
|
||||
|
||||
\usepackage{titling}
|
||||
\renewcommand\maketitlehooka{\null\mbox{}\vfill}
|
||||
\renewcommand\maketitlehookd{\vfill\null}
|
||||
|
||||
\usepackage{hyperref}
|
||||
\hypersetup{colorlinks=true,allcolors=blue}
|
||||
\usepackage{hypcap}
|
||||
|
||||
\title{\textbf{Trabajo Semestral de Administración y Programación de Base de Datos\\Entrega 1}}
|
||||
\author{Christopher Cromer\\Ignacio Ortiz\\\\Profesoras Tatiana Gutiérrez y Valeria Beratto\\Ingeniería Civil Informática}
|
||||
\date{\today}
|
||||
|
||||
\pretitle{%
|
||||
\begin{center}
|
||||
\LARGE
|
||||
\includegraphics[width=4cm]{ubblogo.png}\\[\bigskipamount]
|
||||
}
|
||||
|
||||
\posttitle{\end{center}}
|
||||
|
||||
\begin{document}
|
||||
\clearpage
|
||||
\hypersetup{pageanchor=false}
|
||||
\begin{titlingpage}
|
||||
\maketitle
|
||||
\end{titlingpage}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\newpage
|
||||
|
||||
\clearpage
|
||||
\thispagestyle{empty}
|
||||
\tableofcontents
|
||||
|
||||
\newpage
|
||||
\hypersetup{pageanchor=true}
|
||||
\pagenumbering{arabic}
|
||||
\section{Introducción}
|
||||
Para el proyecto semestral se pide desarrollar una base de datos para los juegos olímpicos.\
|
||||
El proyecto está dividido en 2 grandes partes, el modelo y el SQL.\
|
||||
Primero en el caso de el \nameref{sec:modelo}, tenemos el \nameref{sec:mr} que fue usado para construir nuestra base de datos.
|
||||
En la sección de \nameref{sec:sql} tenemos la \nameref{sec:schema}, que tiene el esquema de la base de datos que hicimos basado en el\
|
||||
modelo. Las \nameref{sec:vistas}, la única vista que tenemos es necesaria para el funcionamiento de consulta. Segundo,\
|
||||
creamos los \nameref{sec:triggers} 3 a 5, según el enunciado, está elaborado antes que poblamos la base de datos, razón por la cual nuestros datos están
|
||||
conforme con las reglas de los triggers. La sección de \nameref{sec:consultas} tiene las consultas 1 y 2. Y finalmente las\
|
||||
\nameref{sec:pruebas} ayudan en demostrar que los triggers funcionan sin problema.
|
||||
|
||||
Para facilitar el uso del código SQL, se puede encontrar los archivos .sql en el repositorio de git ubicado en\
|
||||
\href{https://github.com/cromerc/olimpicos}{https://github.com/cromerc/olimpicos}.
|
||||
|
||||
|
||||
\newpage
|
||||
\section{Modelo}
|
||||
\label{sec:modelo}
|
||||
\subsection{Modelo Relacional}
|
||||
\label{sec:mr}
|
||||
\begin{center}
|
||||
En \textbf{negrita} se presentan las claves foráneas y las primarias en \underline{subrayado}.\smallskip
|
||||
\end{center}\bigskip
|
||||
{\scriptsize
|
||||
\noindent
|
||||
MEDALLA (\underline{ID\_MEDALLA}, DESCRIPCION)\bigskip
|
||||
|
||||
\noindent
|
||||
CATEGORIA (\underline{ID\_CATEGORIA}, DESCRIPCION)\bigskip
|
||||
|
||||
\noindent
|
||||
ATLETA (\underline{ID\_ATLETA}, NOMBRE, APELLIDO, FECHA\_NACIMIENTO, NACIONALIDAD)\bigskip
|
||||
|
||||
\noindent
|
||||
PAIS (\underline{ID\_PAIS}, NOMBRE)\bigskip
|
||||
|
||||
\noindent
|
||||
TIPOS\_DEPORTES (\underline{ID\_TIPO}, DESCRIPCION)\bigskip
|
||||
|
||||
\noindent
|
||||
CIUDAD \underline{(ID\_CIUDAD}, NOMBRE, \textbf{PAIS})\bigskip
|
||||
|
||||
\noindent
|
||||
LUGAR \underline{(ID\_LUGAR}, NOMBRE, CAPACIDAD, \textbf{CIUDAD})\bigskip
|
||||
|
||||
\noindent
|
||||
HOTEL (\underline{ID\_HOTEL}, NOMBRE, \textbf{CIUDAD})\bigskip
|
||||
|
||||
\noindent
|
||||
CAPITAL (\underline{\textbf{ID\_PAIS}, \textbf{ID\_CIUDAD}})\bigskip
|
||||
|
||||
\noindent
|
||||
DELEGACION (\underline{ID\_DELEGACION}, NOMBRE, CANTIDAD\_ATLETAS, \textbf{PAIS}, \textbf{ATLETA})\bigskip
|
||||
|
||||
\noindent
|
||||
COMPETENCIA (\underline{ID\_COMPETENCIA}, NOMBRE, \textbf{CATEGORIA}, \textbf{TIPO}, \textbf{LUGAR})\bigskip
|
||||
|
||||
\noindent
|
||||
PRECOMPETENCIA (\underline{ID\_PRECOMPETENCIA}, FECHA, \textbf{COMPETENCIA}, \textbf{LUGAR})\bigskip
|
||||
|
||||
\noindent
|
||||
HOSPEDAR (\underline{\textbf{ID\_HOTEL}, \textbf{ID\_DELEGACION}, FECHA\_INICIO}, FECHA\_FIN, PRECIO\_DELEGACION, PRECIO\_ATLETA)\bigskip
|
||||
|
||||
\noindent
|
||||
GANAR (\underline{\textbf{ID\_ATLETA}, \textbf{ID\_COMPETENCIA}, FECHA}, \textbf{ID\_MEDALLA}, PUNTAJE)\bigskip
|
||||
|
||||
\noindent
|
||||
PARTICIPAR\_COMPETENCIA (\underline{\textbf{ID\_COMPETENCIA}, \textbf{ID\_ATLETA}, FECHA})\bigskip
|
||||
|
||||
\noindent
|
||||
PARTICIPAR\_PRECOMPETENCIA (\underline{\textbf{ID\_PRECOMPETENCIA}, \textbf{ID\_ATLETA}, FECHA}, PUNTAJE)
|
||||
}
|
||||
|
||||
\newpage
|
||||
\section{SQL}
|
||||
\label{sec:sql}
|
||||
\subsection{Schema}
|
||||
\label{sec:schema}
|
||||
Eso es la esquema general de nuestro proyecto de base de datos.\\
|
||||
\lstinputlisting{../schema.sql}
|
||||
|
||||
\newpage
|
||||
\subsection{Vistas}
|
||||
\label{sec:vistas}
|
||||
La siguiente vista es parte de consulta 2 en \nameref{sec:consultas}.\
|
||||
Es necesario ser creado antes que se puede ejecutar la consulta.\\
|
||||
\lstinputlisting{../vista.sql}
|
||||
|
||||
\newpage
|
||||
\subsection{Triggers}
|
||||
\label{sec:triggers}
|
||||
Creamos los triggers antes que insertamos los datos de prueba.\
|
||||
Eso garantiza que nuestros datos cumple con las reglas de los trigger.\\
|
||||
\lstinputlisting{../trigger.sql}
|
||||
|
||||
\newpage
|
||||
\subsection{Datos}
|
||||
\label{sec:datos}
|
||||
Los datos que usamos para poblar el base de datos nos facilita en consulta 1 a 2 y trigger 3 a 5.
|
||||
\lstinputlisting{../data.sql}
|
||||
|
||||
\newpage
|
||||
\subsection{Consultas}
|
||||
\label{sec:consultas}
|
||||
Esos son las consultas 1 y 2. En el caso de consulta 2, depende de la vista creada anteriormente de\
|
||||
la sección \nameref{sec:vistas}.
|
||||
\lstinputlisting{../consulta.sql}
|
||||
|
||||
\newpage
|
||||
\subsection{Pruebas para los Trigger}
|
||||
\label{sec:pruebas}
|
||||
Las consultas siguientes se pueden ejecutar para probar la funcionamiento correcto de los triggers.\\
|
||||
\lstinputlisting{../trigger_test.sql}
|
||||
|
||||
\end{document}
|
||||
|
BIN
informe/ubblogo.png
Normal file
BIN
informe/ubblogo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 199 KiB |
15
schema.sql
15
schema.sql
@ -4,14 +4,12 @@ CREATE TABLE MEDALLA(
|
||||
CONSTRAINT MEDALLA_PK PRIMARY KEY (ID_MEDALLA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE CATEGORIA(
|
||||
ID_CATEGORIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
DESCRIPCION VARCHAR(50),
|
||||
CONSTRAINT CATEGORIA_PK PRIMARY KEY (ID_CATEGORIA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE ATLETA (
|
||||
ID_ATLETA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR2(50),
|
||||
@ -21,21 +19,18 @@ CREATE TABLE ATLETA (
|
||||
CONSTRAINT ATLETA_PK PRIMARY KEY (ID_ATLETA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE PAIS(
|
||||
ID_PAIS NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR(50),
|
||||
CONSTRAINT PAIS_PK PRIMARY KEY (ID_PAIS)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE TIPOS_DEPORTES(
|
||||
ID_TIPO NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
DESCRIPCION VARCHAR(50),
|
||||
CONSTRAINT TIPO_PK PRIMARY KEY (ID_TIPO)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE CIUDAD (
|
||||
ID_CIUDAD NUMBER,
|
||||
NOMBRE VARCHAR(50),
|
||||
@ -44,7 +39,6 @@ CREATE TABLE CIUDAD (
|
||||
CONSTRAINT CIUDAD_PAIS_FK FOREIGN KEY (PAIS) REFERENCES PAIS(ID_PAIS)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE LUGAR (
|
||||
ID_LUGAR NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR2(50),
|
||||
@ -54,7 +48,6 @@ CREATE TABLE LUGAR (
|
||||
CONSTRAINT LUGAR_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE HOTEL(
|
||||
ID_HOTEL NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR2(50),
|
||||
@ -63,7 +56,6 @@ CREATE TABLE HOTEL(
|
||||
CONSTRAINT HOTEL_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE CAPITAL(
|
||||
ID_PAIS NUMBER,
|
||||
ID_CIUDAD NUMBER,
|
||||
@ -72,7 +64,6 @@ CREATE TABLE CAPITAL(
|
||||
CONSTRAINT CAPITAL_CIUDAD_FK FOREIGN KEY (ID_CIUDAD) REFERENCES CIUDAD(ID_CIUDAD)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE DELEGACION(
|
||||
ID_DELEGACION NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR2(50),
|
||||
@ -84,7 +75,6 @@ CREATE TABLE DELEGACION(
|
||||
CONSTRAINT DELEGACION_ATLETA_FK FOREIGN KEY (ATLETA) REFERENCES ATLETA(ID_ATLETA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE COMPETENCIA(
|
||||
ID_COMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
NOMBRE VARCHAR2(50),
|
||||
@ -97,7 +87,6 @@ CREATE TABLE COMPETENCIA(
|
||||
CONSTRAINT COMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE PRECOMPETENCIA(
|
||||
ID_PRECOMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
|
||||
FECHA DATE,
|
||||
@ -108,7 +97,6 @@ CREATE TABLE PRECOMPETENCIA(
|
||||
CONSTRAINT PRECOMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE HOSPEDAR(
|
||||
ID_HOTEL NUMBER,
|
||||
ID_DELEGACION NUMBER,
|
||||
@ -121,7 +109,6 @@ CREATE TABLE HOSPEDAR(
|
||||
CONSTRAINT HOSPEDAR_DELEGACION_FK FOREIGN KEY (ID_DELEGACION) REFERENCES DELEGACION(ID_DELEGACION)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE GANAR(
|
||||
ID_ATLETA NUMBER,
|
||||
ID_COMPETENCIA NUMBER,
|
||||
@ -134,7 +121,6 @@ CREATE TABLE GANAR(
|
||||
CONSTRAINT GANAR_MEDALLA_FK FOREIGN KEY (ID_MEDALLA) REFERENCES MEDALLA(ID_MEDALLA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE PARTICIPAR_COMPETENCIA(
|
||||
ID_COMPETENCIA NUMBER,
|
||||
ID_ATLETA NUMBER,
|
||||
@ -144,7 +130,6 @@ CREATE TABLE PARTICIPAR_COMPETENCIA(
|
||||
CONSTRAINT PARTICIPAR_COMPETENCIA_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE PARTICIPAR_PRECOMPETENCIA(
|
||||
ID_PRECOMPETENCIA NUMBER,
|
||||
ID_ATLETA NUMBER,
|
||||
|
@ -83,3 +83,4 @@ BEGIN
|
||||
:NEW.PRECIO_DELEGACION := v_atletas * :NEW.PRECIO_ATLETA;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
@ -1,4 +1,3 @@
|
||||
-- Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo
|
||||
CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS
|
||||
SELECT P.ID_PAIS, P.NOMBRE, COUNT(*) AS CANTIDAD_ATLETA
|
||||
FROM COMPETENCIA C
|
||||
@ -7,4 +6,4 @@ CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS
|
||||
INNER JOIN DELEGACION D ON (D.ATLETA = A.ID_ATLETA)
|
||||
INNER JOIN PAIS P ON (P.ID_PAIS = D.PAIS)
|
||||
WHERE TIPO = (SELECT TD.ID_TIPO FROM TIPOS_DEPORTES TD WHERE (UPPER(TD.DESCRIPCION) = 'ATLETISMO'))
|
||||
GROUP BY (P.ID_PAIS, P.NOMBRE);
|
||||
GROUP BY (P.ID_PAIS, P.NOMBRE);
|
||||
|
Loading…
Reference in New Issue
Block a user