169 lines
6.4 KiB
TeX
169 lines
6.4 KiB
TeX
\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{listings}
|
|
\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
|
|
}
|
|
|
|
\usepackage{titling}
|
|
\renewcommand\maketitlehooka{\null\mbox{}\vfill}
|
|
\renewcommand\maketitlehookd{\vfill\null}
|
|
|
|
\usepackage{hyperref}
|
|
\hypersetup{colorlinks=true,allcolors=black}
|
|
\usepackage{hypcap}
|
|
|
|
\title{\textbf{Proyecto Semestral de Base de Datos\\Entrega 1 Corregido}}
|
|
\author{Christopher Cromer\\\\Profesora Valeria Beratto\\Sección 1}
|
|
\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}
|
|
El objetivo de este trabajo es modelar un sistema por el Servicio Nacional de Turismo(SERNATUR) con el propósito de almacenar y consultar a un base de datos de PostgreSQL con información sobre el turismo.
|
|
|
|
\newpage
|
|
\section{Modelo Entidad Relación}
|
|
\begin{center}
|
|
\includegraphics[width=0.96\textwidth,height=0.96\textheight,keepaspectratio]{MERcorregido.png}
|
|
\end{center}
|
|
|
|
\newpage
|
|
\section{Modelo Relacional}
|
|
\begin{center}
|
|
En negrita se presenta las claves foráneas y las primarias en subrayado.\smallskip
|
|
\end{center}
|
|
tour(\underline{id\_tour}, nombre\_tour, costo\_indiv, costo\_grupal, minima\_personas, \textbf{id\_ciudad})\bigskip
|
|
|
|
\noindent
|
|
lugar(\underline{id\_lugar}, nombre\_lugar, valor\_entrada, nivel, \textbf{id\_ciudad})\bigskip
|
|
|
|
\noindent
|
|
asociado(\textbf{id\_tour}, \textbf{id\_lugar}, fecha\_llegada, hora\_llegada, fecha\_salida, hora\_salida)\bigskip
|
|
|
|
\noindent
|
|
turista(\underline{rut\_turista}, nombre\_turista, fecha\_nacimiento, \textbf{id\_contacto})\bigskip
|
|
|
|
\noindent
|
|
contacto\_emergencia(\underline{id\_contacto}, telefono\_emergencia, nombre\_emergencia)\bigskip
|
|
|
|
\noindent
|
|
enfermedad(\underline{id\_enfermedad}, descripcion\_enfermedad)\bigskip
|
|
|
|
\noindent
|
|
tiene\_enfermedad(\textbf{rut\_turista}, \textbf{id\_enfermedad})\bigskip
|
|
|
|
\noindent
|
|
realiza(\textbf{id\_tour}, \textbf{rut\_turista}, \textbf{id\_descuento})\bigskip
|
|
|
|
\noindent
|
|
vehiculo(\underline{patente}, ano\_vehiculo, marca, capacidad)\bigskip
|
|
|
|
\noindent
|
|
requerir\_auto(\textbf{id\_tour}, \textbf{patente}, chofer\bigskip)
|
|
|
|
\noindent
|
|
empresa(\underline{rut\_empresa}, nombre\_empresa, contacto, telefono)\bigskip
|
|
|
|
\noindent
|
|
arrienda(\textbf{patente}, \textbf{rut\_empresa}, precio, fecha\_devolucion)\bigskip
|
|
|
|
\noindent
|
|
ciudad(\underline{id\_ciudad}, nombre\_ciudad, \textbf{id\_region})\bigskip
|
|
|
|
\noindent
|
|
region(\underline{id\_region}, nombre\_region)\bigskip
|
|
|
|
\noindent
|
|
guia(\underline{rut\_guia}, nombre\_guia, calle, numero, \textbf{id\_ciudad})\bigskip
|
|
|
|
\noindent
|
|
especialidad(\underline{id\_especialidad}, descripcion\_especialidad)\bigskip
|
|
|
|
\noindent
|
|
posee(\textbf{rut\_guia}, \textbf{id\_especialidad}, nivel\_especialidad)\bigskip
|
|
|
|
\noindent
|
|
categoria(\underline{id\_categoria}, descripcion\_categoria)\bigskip
|
|
|
|
\noindent
|
|
participa(\textbf{id\_tour}, \textbf{rut\_guia}, \textbf{id\_categoria})\bigskip
|
|
|
|
\noindent
|
|
descuento(\underline{id\_descuento}, descripcion\_descuento, porcentaje)
|
|
|
|
\newpage
|
|
\section{Justificación de Modelo Relacional}
|
|
\textbf{\textit{tour}} adquiere la clave foránea \textbf{\textit{id\_ciudad}} debido que la relación entre las entidades \textbf{\textit{tour}} y \textbf{\textit{ciudad}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{lugar}} recibe como clave foránea \textbf{\textit{id\_ciudad}} dado por la relación \textbf{\textit{n a 1}} de las entidades \textbf{\textit{lugar}} y \textbf{\textit{ciudad}}.\bigskip
|
|
|
|
\textbf{\textit{asociado}} es creado con las claves foráneas \textbf{\textit{id\_tour}} y \textbf{\textit{id\_lugar}} dado que la relación entre \textbf{\textit{tour}} y \textbf{\textit{lugar}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{turista}} adquiere la clave foránea \textbf{\textit{id\_contacto}} debido que la relación entre \textbf{\textit{turista}} y \textbf{\textit{contacto\_emergencia}} es \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{tiene\_enfermedad}} es creado con las claves foráneas \textbf{\textit{rut\_turista}} y \textbf{\textit{id\_enfermedad}} dado que la relación es \textbf{\textit{n a n}} entre \textbf{\textit{turista}} y \textbf{\textit{enfermedad}}.\bigskip
|
|
|
|
\textbf{\textit{realiza}} es creado con las claves foráneas \textbf{\textit{id\_tour}}, \textbf{\textit{rut\_turista}} y \textbf{\textit{id\_descuento}} dado que la relación entre \textbf{\textit{tour}}, \textbf{\textit{turista}} y \textbf{\textit{descuento}} es de \textbf{\textit{n-aria}}.\bigskip
|
|
|
|
\textbf{\textit{arrienda}} es creado con las claves foráneas \textbf{\textit{patente}} y \textbf{\textit{rut\_empresa}} dado que la relación entre \textbf{\textit{vehiculo}} y \textbf{\textit{empresa}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{ciudad}} adquiere la clave foránea \textbf{\textit{id\_region}} debido a la relación \textbf{\textit{n a 1}} entre las entidades \textbf{\textit{ciudad}} y \textbf{\textit{region}}.\bigskip
|
|
|
|
\textbf{\textit{posee}} es creado y recibe las claves foráneas \textbf{\textit{rut\_guia}} y \textbf{\textit{id\_especialidad}} dado que la relación entre \textbf{\textit{guia}} y \textbf{\textit{especialidad}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{participa}} es creado con 3 claves foráneas \textbf{\textit{id\_tour}}, \textbf{\textit{rut\_guia}} y \textbf{\textit{id\_categoria}} dado que la relación es \textbf{\textit{n-arias}} entre \textbf{\textit{tour}}, \textbf{\textit{guia}} y \textbf{\textit{categoria}}.\bigskip
|
|
|
|
Las tablas restantes se crean bajo el principio de que toda entidad requiere una tabla.
|
|
|
|
\newpage
|
|
\section{Script SQL}
|
|
|
|
\subsection{Crear tablas}
|
|
|
|
\lstinputlisting{Informe1corregido_creartablas.sql}
|
|
|
|
\newpage
|
|
\subsection{Insertar duplas}
|
|
|
|
\lstinputlisting{Informe1corregido_insertarduplas.sql}
|
|
|
|
\end{document}
|
|
|