From cb54e2527d9cb1757a170520ee1ed50f68416ec0 Mon Sep 17 00:00:00 2001 From: gumartinm Date: Sat, 6 Oct 2012 00:57:44 +0200 Subject: [PATCH] Working on chapter 3. --- capitulo3/capitulo3.tex | 30 ++++++++++++++++++++++++++++-- myrefs.bib | 16 ++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/capitulo3/capitulo3.tex b/capitulo3/capitulo3.tex index 8b19cad..73f11b5 100644 --- a/capitulo3/capitulo3.tex +++ b/capitulo3/capitulo3.tex @@ -120,8 +120,34 @@ PostgreSQL (o de forma abreviada Postgres) es un Sistema de Gestión de Bases de PostgreSQL evolucionó desde un proyecto de la Universidad de California en el Departamento de Ciencias Computacionales de Berkeley. El primer sistema operacional basado en Postgres fue liberado en 1987 y no disponía de motor SQL si no de uno propio conocido como PostQUEL. En 1994 se añadió el interpretador SQL a Postgres y desde entonces y hasta ahora el proyecto ha crecido enormemente. Además, se libera con una licencia similar a las licencias MIT o BSD\footnote{\url{http://www.postgresql.org/about/licence/}} -\subsection{PostGIS} +PostgreSQL es considerado el más avanzado sistema de base de datos open source en el mundo. Proporciona muchas características que tradicionalmente solo pueden ser encontradas en productos comerciales para grandes empresas. -PostGIS es un software open source que añade soporte de objetos geográficos a la base de datos PostgreSQL. Se libera bajo la licencia \emph{GNU General Public License} (GPL-2.0) +PostgreSQL es un proyecto open source. Open source por definición significa que se puede obtener el código fuente, usar el programa, y modificarlo libremente sin ningún límite por parte del propietario del software. Ahora bien, NO confundir software open source con software libre de coste. Es cierto que se puede descargar sin ningún coste, pero siempre habrá costes asociados con el tiempo y energía que una compañía pone en el soporte y mantenimiento de la aplicación. Si una empresa no tiene esos recursos para gastar siempre existen vendedores y consultores especializados en productos relacionados con PostgreSQL. + +\subsection{Características de PostgreSQL} + +El siguiente es un breve listado de algunas de las características que PostgreSQL implementa~\cite{C3:PPostgreSQL}: + +\begin{itemize} + \item \textbf{ORDBMS}: un ORDBMS es una Base de Datos Relacional y de Objetos; esto significa que PostgreSQL permite acceso a datos mediante un modelo relacional y de objetos, y es capaz de manejar rutinas y reglas complejas. Ejemplos de su avanzada funcionalidad son las queries SQL declarativas, el soporte multi usuario, la optimiazación de queries, herencia y arrays. + \item \textbf{Altamente extensible}: PostgreSQL permite que el usuario pueda definir sus propios operadores, funciones, métodos de acceso y tipos de datos. + \item \textbf{Integridad referencial}: soporte de integridad referencial, el cual es usado para asegurar la validez de los datos el base de datos. + \item \textbf{API flexible}: la flexibilidad de la API de PostgreSQL ha permitido a múltiples vendedores proporcionar fácilmente soporte de desarrollo. Estos interfaces incluyen Python, Perl, PHP, ODBC, Java/JDBC, Ruby, C/C++, Object Pascal, etc. + \item \textbf{Cliente/Servidor}: PostgreSQL usa una arquitectura cliente/servidor de un proceso por usuario. Existe un proceso master que realiza \emph{forks} para proporcionar conexiones adicionales en cada intento de conexión por parte del cliente al servidor PostgreSQL. + \item \textbf{MVCC}: Control de Concurrencia de Versión Múltiple, es la tecnología que PostgeSQL usa para evitar innecesario \emph{locking}. En servidores tales como MySQL o Access, existen momentos en los que el lector tiene que esperar para acceder a la información en la base de datos. La espera es causada por otros usuarios que están escribiendo a la base de datos. Dicho a groso modo, el lector es bloqueado por escritores que están actualizando \emph{records} en tablas de la base de datos. + \item \textbf{WAL}: \emph{Write Ahead Logging} consiste en escribir el histórico de las acciones realizadas por una base de datos antes de que incluso estas acciones se hayan producido. Llevando el diario (la historia) de los cambios antes de que estos sean escritos a la base de datos incrementa la fiabilidad de PostgreSQL respecto a otros competidores. Incluso en caso de un \emph{crash} de la base datos existirá un histórico de las transacciones desde el cual podremos recuperar seguramente los datos. +\end{itemize} + +\section{PostGIS} + +PostGIS es un software open source que añade soporte de objetos geográficos a la base de datos PostgreSQL. Se libera bajo la licencia \emph{GNU General Public License} (GPL-2.0) Se trata de una base de datos espacial, es decir, una base de datos que define tipos de datos especiales para objetos geométricos y permite almacenar datos geométricos (usualmente de naturaleza geográfica) en tablas de bases de datos convencionales. Proporciona funciones e índices especiales para realizar consultas y manipular los datos geométricos usando SQL (\emph{Structured Query Language}) Una base de datos espacial es a menudo usada solo como un contenedor para almacenar datos espaciales, pero puede hacer mucho más que eso. Aunque una base de datos espacial no necesita ser relacional, la mayoría de las bases de datos espaciales conocidas lo son. + +Una base de datos espacial proporciona herramientas de almacenaje y de análisis. La presentación de datos visualmente no es una meta de las bases de datos espaciales. + +\subsection{Consultas, análisis y procesado espacial} + +Una \emph{query} espacial es una consulta a la base de datos que usa funciones geométricas para responder cuestiones acerca del espacio y de objetos en el espacio. Bases de datos espaciales como PostGIS añaden un conjunto de funciones al lenguaje estándar SQL que trabajan con objetos geométricos en una base de datos de forma similar a funciones que trabajan con datos. Por ejemplo, con una fecha, hay funciones que cuentan cuantas horas/días/minutos/años/semanas hay entre dos fechas o si esta fecha se encuentra en el futuro o en el pasado. + +Además de ser capaz de responder cuestiones acerca del uso del espacio, las funciones espaciales permite crear y modificar objetos en el espacio. Esta porción del análisis espacial es a menudo referida como procesado geométrico o espacial~\cite{C3:PostGIS}. \section{Android} diff --git a/myrefs.bib b/myrefs.bib index 05241c3..04608d2 100644 --- a/myrefs.bib +++ b/myrefs.bib @@ -205,3 +205,19 @@ year = {2012}, keywords = "yiiframework, mvc, pattern", } + +@Book{C3:PPostgreSQL, + author = {John Worsley y Joshua Drake}, + title = {Practical PostgreSQL}, + publisher = {O'Reilly}, + year = {2001}, + keywords = "postgresql, database, postgis", +} + +@Book{C3:PostGIS, + author = {Regina Obe y Leo Hsu}, + title = {PostGIS in Action}, + publisher = {Manning Publications}, + year = {2011}, + keywords = "postgresql, database, postgis", +} -- 2.1.4