\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 } \usepackage{titling} \renewcommand\maketitlehooka{\null\mbox{}\vfill} \renewcommand\maketitlehookd{\vfill\null} \usepackage{hyperref} \hypersetup{pdftex,colorlinks=true,allcolors=black,bookmarks} \usepackage{hypcap} \title{\textbf{Proyecto Semestral de Base de Datos\\Entrega 1}} \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 \begin{titlingpage} \maketitle \end{titlingpage} \thispagestyle{empty} \newpage \clearpage \thispagestyle{empty} \tableofcontents \newpage \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]{MER.png} \end{center} \newpage \section{Modelo Relacional} \begin{center} En negrita se presenta las claves foráneas y las primarias en subrayado.\\ \end{center} tour(\underline{id\_tour}, nombre\_tour, costo\_indiv, costo\_grupal, minima\_personas, \textbf{id\_ciudad})\\ \newline lugar(\underline{id\_lugar}, nombre\_lugar, valor\_entrada, nivel, \textbf{id\_ciudad})\\ \newline asociado(\textbf{id\_tour}, \textbf{id\_lugar}, fecha\_llegada, hora\_llegada, fecha\_salida, hora\_salida)\\ \newline turista(\underline{rut\_turista}, nombre\_turista, fecha\_nacimiento, \textbf{id\_contacto})\\ \newline contacto\_emergencia(\underline{id\_contacto}, telefono\_emergencia, nombre\_emergencia)\\ \newline enfermedad(\underline{id\_enfermedad}, descripcion\_enfermedad)\\ \newline tiene\_enfermedad(\textbf{rut\_turista}, \textbf{id\_enfermedad})\\ \newline compra(\textbf{id\_tour}, \textbf{rut\_turista}, valor)\\ \newline realiza(\textbf{id\_tour}, \textbf{rut\_turista})\\ \newline vehiculo(\underline{patente}, ano\_vehiculo, marca, capacidad, chofer)\\ \newline empresa(\underline{rut\_empresa}, nombre\_empresa, contacto, telefono)\\ \newline arrienda(\textbf{patente}, \textbf{rut\_empresa}, precio, fecha\_devolucion)\\ \newline ciudad(\underline{id\_ciudad}, nombre\_ciudad, \textbf{id\_region})\\ \newline region(\underline{id\_region}, nombre\_region)\\ \newline guia(\underline{rut\_guia}, nombre\_guia)\\ \newline especialidad(\underline{id\_especialidad}, descripcion\_especialidad)\\ \newline posee(\textbf{rut\_guia}, \textbf{id\_especialidad}, nivel\_especialidad)\\ \newline categoria(\underline{id\_categoria}, descripcion\_categoria)\\ \newline direccion(\textbf{rut\_guia}, \textbf{id\_ciudad}, calle, numero)\\ \newline participa(\textbf{id\_tour}, \textbf{rut\_guia}, \textbf{id\_categoria}) \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}}.\\ \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}}.\\ \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}}.\\ \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}}.\\ \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}}.\\ \textit{\textbf{compra}} es creado con las claves foráneas \textbf{\textit{id\_tour}} y \textbf{\textit{rut\_turista}} dado que la relación entre \textbf{\textit{tour}} y \textbf{\textit{turista}} es de \textbf{\textit{n a n}}.\\ \textbf{\textit{realiza}} es creado con las claves foráneas \textbf{\textit{id\_tour}} y \textbf{\textit{rut\_turista}} dado que la relación entre \textbf{\textit{tour}} y \textbf{\textit{turista}} es de \textbf{\textit{n a n}}.\\ \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}}.\\ \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}}.\\ \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}}.\\ \textbf{\textit{direccion}} es creado con las claves foráneas \textbf{\textit{rut\_guia}} y \textbf{\textit{id\_ciudad}} dado por la relación \textbf{\textit{n a n}} entre \textbf{\textit{ciudad}} y \textbf{\textit{guia}}.\\ \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}}.\\ \newpage \section{Script SQL} \subsection{Crear tablas} \lstinputlisting{Informecreartablas.sql} \newpage \subsection{Insertar duplas} \lstinputlisting{Informeinsertarduplas.sql} \end{document}