sernatur/doc/Informes/Informe1corregido.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}