191 lines
8.1 KiB
TeX
191 lines
8.1 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{courier}
|
|
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
|
|
\lstdefinestyle{freefempp}{
|
|
language=SQL,
|
|
basicstyle=\footnotesize\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,
|
|
style=freefempp
|
|
}
|
|
|
|
\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\\\\Profesoras Mónica Caniupán 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}
|
|
El objetivo de este trabajo es modelar un sistema para los colegios municipales de la región del Bío-Bío con el propósito de almacenar y consultar en una base de datos de PostgreSQL con información el colegio.
|
|
|
|
\newpage
|
|
\section{Modelo Entidad Relación}
|
|
\begin{center}
|
|
\includegraphics[angle=270,origin=c,width=0.90\textwidth,height=0.90\textheight,keepaspectratio]{MER.png}
|
|
\end{center}
|
|
|
|
\newpage
|
|
\section{Modelo Relacional}
|
|
\begin{center}
|
|
En negrita se presentan las claves foráneas y las primarias en subrayado.\smallskip
|
|
\end{center}
|
|
region(\underline{id\_region}, nombre)\bigskip
|
|
|
|
\noindent
|
|
ciudad(\underline{id\_ciudad}, nombre, \textbf{id\_region})\bigskip
|
|
|
|
\noindent
|
|
apoderado(\underline{rut\_apoderado}, nombres, apellidos, direccion, \textbf{id\_ciudad})\bigskip
|
|
|
|
\noindent
|
|
alumno(\underline{rut\_alumno}, nombres, apellidos, direccion, \textbf{id\_ciudad}, anyo\_ingreso, fecha\_nacimiento, \textbf{rut\_apoderado})\bigskip
|
|
|
|
\noindent
|
|
profesor(\underline{rut\_profesor}, nombres, apellidos, direccion, \textbf{id\_ciudad})\bigskip
|
|
|
|
\noindent
|
|
actividad(\underline{id\_actividad}, nombre, cupos, lugar, \textbf{rut\_profesor})\bigskip
|
|
|
|
\noindent
|
|
nivel(\underline{id\_nivel}, nombre)\bigskip
|
|
|
|
\noindent
|
|
bloque(\underline{id\_bloque}, descripcion)\bigskip
|
|
|
|
\noindent
|
|
curso(\underline{id\_curso}, \textbf{rut\_profesor})\bigskip
|
|
|
|
\noindent
|
|
asignatura(\underline{id\_asignatura}, nombre, \textbf{rut\_profesor})\bigskip
|
|
|
|
\noindent
|
|
participar(\textbf{\underline{rut\_alumno}}, \textbf{\underline{id\_actividad}})\bigskip
|
|
|
|
\noindent
|
|
actividad\_nivel(\textbf{\underline{id\_actividad}}, \textbf{\underline{id\_nivel}})\bigskip
|
|
|
|
\noindent
|
|
actividad\_bloque(\textbf{\underline{id\_actividad}}, \textbf{\underline{id\_bloque}})\bigskip
|
|
|
|
\noindent
|
|
horario(\textbf{\underline{id\_asignatura}}, \textbf{\underline{id\_bloque}}, sala)\bigskip
|
|
|
|
\noindent
|
|
registro(\textbf{\underline{rut\_alumno}}, \textbf{\underline{id\_asignatura}}, nota)\bigskip
|
|
|
|
\noindent
|
|
cursar(\textbf{\underline{rut\_alumno}}, \textbf{\underline{id\_curso}})\bigskip
|
|
|
|
\noindent
|
|
asociado(\textbf{\underline{id\_curso}}, \textbf{\underline{id\_asignatura}})\bigskip
|
|
|
|
\noindent
|
|
asistente(\textbf{\underline{rut\_profesor}}, \textbf{\underline{id\_curso}})\bigskip
|
|
|
|
\newpage
|
|
\section{Justificación de Modelo Relacional}
|
|
|
|
\textbf{\textit{region}} no adquiere ninguna clave foránea debido a que las relaciones entre las otras entidades son de \textbf{\textit{1 a n}}.\bigskip
|
|
|
|
\textbf{\textit{ciudad}} adquiere la clave foránea \textbf{\textit{id\_region}} debido a que la relación entre las entidades \textbf{\textit{ciudad}} y \textbf{\textit{region}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{apoderado}} adquiere la clave foránea \textbf{\textit{id\_ciudad}} debido a que la relación entre las entidades \textbf{\textit{apoderado}} y \textbf{\textit{ciudad}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{alumno}} adquiere la clave foránea \textbf{\textit{id\_ciudad}} debido a que la relación entre las entidades \textbf{\textit{alumno}} y \textbf{\textit{ciudad}} es de \textbf{\textit{n a 1}}. También recibe la clave foránea \textbf{rut\_apoderado} debido a la relación entre las entidades \textbf{alumno} y \textbf{apoderado} que es de \textbf{n a 1}.\bigskip
|
|
|
|
\textbf{\textit{profesor}} adquiere la clave foránea \textbf{\textit{id\_ciudad}} debido a que la relación entre las entidades \textbf{\textit{profesor}} y \textbf{\textit{ciudad}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{actividad}} adquiere la clave foránea \textbf{\textit{rut\_profesor}} debido a que las relaciones entre las otras entidades \textbf{\textit{actividad}} y \textbf{\textit{profesor}} es de \textbf{\textit{1 a n}}.\bigskip
|
|
|
|
\textbf{\textit{nivel}} no adquiere ninguna clave foránea debido a que las relaciones entre las otras entidades son de \textbf{\textit{1 a n}}.\bigskip
|
|
|
|
\textbf{\textit{bloque}} no adquiere ninguna clave foránea debido a que las relaciones entre las otras entidades son de \textbf{\textit{1 a n}}.\bigskip
|
|
|
|
\textbf{\textit{curso}} adquiere la clave foránea \textbf{\textit{rut}} debido a que las relaciones entre las entidades \textbf{\textit{curso}} y \textbf{\textit{profesor}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{asignatura}} adquiere la clave foránea \textbf{\textit{rut\_profesor}} debido a que la relación entre las entidades \textbf{\textit{asignatura}} y \textbf{\textit{profesor}} es de \textbf{\textit{n a 1}}.\bigskip
|
|
|
|
\textbf{\textit{participar}} es creado con las claves foráneas \textbf{\textit{rut\_alumno}} y \textbf{\textit{id\_actividad}} dado que la relación entre \textbf{\textit{alumno}} y \textbf{\textit{actividad}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{actividad\_nivel}} es creado con las claves foráneas \textbf{\textit{id\_actividad}} y \textbf{\textit{id\_nivel}} dado que la relación entre \textbf{\textit{actividad}} y \textbf{\textit{nivel}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{actividad\_bloque}} es creado con las claves foráneas \textbf{\textit{id\_actividad}} y \textbf{\textit{id\_bloque}} dado que la relación entre \textbf{\textit{actividad}} y \textbf{\textit{bloque}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{horario}} es creado con las claves foráneas \textbf{\textit{id\_asignatura}} y \textbf{\textit{id\_bloque}}, y queda con el atributo \textbf{\textit{sala}} dado que la relación entre \textbf{\textit{asignatura}} y \textbf{\textit{bloque}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{registro}} es creado con las claves foráneas \textbf{\textit{rut\_alumno}} y \textbf{\textit{id\_asignatura}}, y queda con el atributo \textbf{\textit{nota}} dado que la relación entre \textbf{\textit{alumno}} y \textbf{\textit{asignatura}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{cursar}} es creado con las claves foráneas \textbf{\textit{rut\_alumno}} y \textbf{\textit{id\_curso}} dado que la relación entre \textbf{\textit{alumno}} y \textbf{\textit{curso}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{asociado}} es creado con las claves foráneas \textbf{\textit{id\_curso}} y \textbf{\textit{id\_asignatura}} dado que la relación entre \textbf{\textit{curso}} y \textbf{\textit{asignatura}} es de \textbf{\textit{n a n}}.\bigskip
|
|
|
|
\textbf{\textit{asistente}} es creado opcionalmente con las claves foráneas \textbf{\textit{rut\_profesor}} y \textbf{\textit{id\_curso}} dado que la relación entre \textbf{\textit{curso}} y \textbf{\textit{profesor}} es de \textbf{\textit{n a 1 con mínimo de 0}}.\bigskip
|
|
|
|
\newpage
|
|
\section{Script SQL}
|
|
|
|
\subsection{Crear tablas}
|
|
|
|
\lstinputlisting{crear_tablas.sql}
|
|
|
|
\newpage
|
|
\subsection{Insertar duplas}
|
|
|
|
\lstinputlisting{insertar_duplas.sql}
|
|
|
|
\end{document} |