\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{colorlinks=true,allcolors=black} \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 \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]{MER.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 compra(\textbf{id\_tour}, \textbf{rut\_turista}, valor)\bigskip \noindent realiza(\textbf{id\_tour}, \textbf{rut\_turista})\bigskip \noindent vehiculo(\underline{patente}, ano\_vehiculo, marca, capacidad, 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)\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 direccion(\textbf{rut\_guia}, \textbf{id\_ciudad}, calle, numero)\bigskip \noindent 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}}.\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 \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}}.\bigskip \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}}.\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{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}}.\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 \newpage \section{Script SQL} \subsection{Crear tablas} \lstinputlisting{Informe1_creartablas.sql} \newpage \subsection{Insertar duplas} \lstinputlisting{Informe1_insertarduplas.sql} \end{document}