Tutorial de PostgreSQL, Modelo Relacional y SQL en Español
loner198827 de Mayo de 2012
9.799 Palabras (40 Páginas)682 Visitas
Tutorial de PostgreSQL, Modelo
Relacional y SQL en Español
(Castellano)
Adaptación del original (C) 1999 por El equipo de
desarrollo de PostgreSQL, editado por Thomas
Lockhart, inicialmente traducido por Proyecto de
traducción al Español de la documentación de
PostgreSQL RDBMS (inicalmente versión 6.5,
adaptado a versión 8.4)
Aviso Legal: PostgreSQL es marca registrada ©
1996-2009 por el Postgres Global Development
Group.
Sumario
Postgres, desarrollada originalmente en el
Departamento de Ciencias de la Computación de la
Universidad de California en Berkeley, fue pionera
en muchos de los conceptos de bases de datos
relacionales orientadas a objetos que ahora
empiezan a estar disponibles en algunas bases de
datos comerciales. Ofrece suporte al lenguaje
SQL:2003, integridad de transacciones, y
extensibilidad de tipos de datos. PostgreSQL es un
descendiente de dominio público y código abierto
del código original de Berkeley.
Introducción
Este documento es el manual de usuario del
sistema de mantenimiento de bases de datos
PostgreSQL, originariamente desarrollado en la
Universidad de California en Berkeley. PostgreSQL
está basada en Postgres release 4.2. El proyecto
Postgres, liderado por el Porfesor Michael
Stonebraker, fue esponsorizado por diversos
organismos oficiales u oficiosos de los EEUU: la
Agencia de Proyectos de Investigación Avanzada de
la Defensa de los EEUU (DARPA), la Oficina de Investigación de la Armada (ARO), la Fundación
Nacional para la Ciencia (NSF), y ESL, Inc.
¿Qué es Postgres?
Los sistemas de mantenimiento de Bases de Datos relacionales tradicionales (DBMS,s) soportan
un modelo de datos que consisten en una colección de relaciones con nombre, que contienen
atributos de un tipo específico. En los sistemas comerciales actuales, los tipos posibles incluyen
numéricos de punto flotante, enteros, cadenas de caracteres, cantidades monetarias y fechas.
Está generalmente reconocido que este modelo será inadecuado para las aplicaciones futuras de
procesado de datos. El modelo relacional sustituyó modelos previos en parte por su "simplicidad
espartana". Sin embargo, como se ha mencionado, esta simplicidad también hace muy dificil la
Índice
Sumario
Introducción
¿Qué es Postgres?
Breve historia de Postgres
El proyecto Postgres de Berkeley
Postgres95
PostgreSQL
Terminología
Notación
Copyrights y Marcas Registradas
SQL
El Modelo de Datos Relacional
La Base de Datos de Proveedores y Artículos
Formalidades del Modelo Relacional de Datos
Dominios contra Tipos de Datos
Operaciones en el Modelo de Datos Relacional
Álgebra Relacional
Cálculo Relacional
Cálculo Relacional de Tuplas
Álgebra Relacional contra Cálculo Relacional
El Lenguaje SQL
SELECT
SELECT sencillas
Joins (Cruces)
Operadores Agregados
Agregación por Grupos
HAVING
Subconsultas
Unión, Intersección, Excepción
Definición de Datos (DDL)
CREATE TABLE
Tipos de Datos en SQL
CREATE INDEX
CREATE VIEW
DROP TABLE, DROP INDEX, DROP VIEW
Manipulación de Datos (DML)
INSERT INTO
UPDATE
DELETE
System Catalogs
SQL Embebido
Arquitectura
Empezando
Ejecución del Monitor Interactivo (psql)
Creación de una base de datos
Acceder a una base de datos
Eliminando bases de datos
El Lenguaje de consultas
implementación de ciertas aplicaciones. Postgres ofrece una potencia adicional sustancial al
incorporar los siguientes cuatro conceptos adicionales básicos en una vía en la que los usuarios
pueden extender fácilmente el sistema
tipos de datos
funciones
operadores
funciones de agregado
métodos de indexación
lenguajes procedurales
Otras características aportan potencia y flexibilidad adicional:
Consultas complejas (subconsultas, joins, etc.)
Integridad referencial (claves primarias y foráneas)
Restricciones (Constraints)
Disparadores (triggers)
Vistas (views)
Reglas (rules)
Integridad transaccional
Control de concurrencia multiversión
Estas características colocan a Postgres en la categoría de las Bases de Datos identificadas como
objeto-relacionales. Nótese que éstas son diferentes de las referidas como orientadas a objetos,
que en general no son bien aprovechables para soportar lenguajes de Bases de Datos
relacionales tradicionales. Postgres tiene algunas características que son propias del mundo de
las bases de datos orientadas a objetos. De hecho, algunas Bases de Datos comerciales han
incorporado recientemente características en las que Postgres fue pionera.
Además, debido a su licencia liberal, PostgreSQL puede ser usado, modificado, y distibuido por
cualquier persona para cualquier propósito sin cargo alguno, ya sea para un fin privado,
comercial o académico.
Breve historia de Postgres
El Sistema Gestor de Bases de Datos Relacionales Orientadas a Objetos conocido como
PostgreSQL (y brevemente llamado Postgres95) está derivado del paquete Postgres escrito en
Berkeley. Con cerca de una década de desarrollo tras él, PostgreSQL es el gestor de bases de
datos de código abierto más avanzado hoy en día, ofreciendo control de concurrencia multiversión,
soportando casi toda la sintaxis SQL (incluyendo subconsultas, transacciones, y tipos y
funciones definidas por el usuario), contando también con un amplio conjunto de enlaces con
lenguajes de programación (incluyendo C, C++, Java, perl, tcl y python).
El proyecto Postgres de Berkeley
La implementación del DBMS Postgres comenzó en 1986. Los conceptos iniciales para el sistema
fueron presentados en The Design of Postgres y la definición del modelo de datos inicial apareció
en ThePostgres Data Model. El diseño del sistema de reglas fue descrito en ese momento en The
Design of the Postgres Rules System. La lógica y arquitectura del gestor de almacenamiento
fueron detalladas enThe Postgres Storage System.
Postgres ha pasado por varias revisiones importantes desde entonces. El primer sistema de
pruebas fue operacional en 1987 y fue mostrado en la Conferencia ACM-SIGMOD de 1988.
Lanzamos la Versión 1, descrita en The Implementation of Postgres, a unos pocos usuarios
externos en Junio de 1989. En respuesta a una crítica del primer sistema de reglas (A
Commentary on the Postgres Rules System), éste fue rediseñado (On Rules, Procedures, Caching
and Views in Database Systems) y la Versión 2, que salió en Junio de 1990, lo incorporaba. La
Versión 3 apareció en 1991 y añadió una implementación para múltiples gestores de
almacenamiento, un ejecutor de consultas mejorado y un sistema de reescritura de reglas
nuevo. En su mayor parte, las siguientes versiones hasta el lanzamiento dePostgres95 (ver más
abajo) se centraron en mejorar la portabilidad y la fiabilidad.
Postgres forma parte de la implementación de muchas aplicaciones de investigación y
producción. Entre ellas: un sistema de análisis de datos financieros, un paquete de
monitorización de rendimiento de motores a reacción, una base de datos de seguimiento de
asteroides y varios sistemas de información geográfica. También se ha utilizado como una
herramienta educativa en varias universidades. Finalmente, Illustra Information Technologies
(posteriormente absorbida por Informix) tomó el código y lo comercializó. Postgres llegó a ser
el principal gestor de datos para el proyecto científico de computación Sequoia 2000 a finales de
1992.
El tamaño de la comunidad de usuarios externos casi se duplicó durante 1993. Pronto se hizo
obvio que el mantenimiento del código y las tareas de soporte estaban ocupando tiempo que
debía dedicarse a la investigación. En un esfuerzo por reducir esta carga, el proyecto terminó
oficialmente con la Versión 4.2.
Postgres95
En 1994, Andrew Yu y Jolly Chen añadieron un intérprete de lenguage SQL a Postgres.
Postgres95 fue publicado a continuación en la Web para que encontrara su propio hueco en el
mundo como un descendiente de dominio público y código abierto del código original Postgres de
Berkeley.
El código de Postgres95 fue adaptado a ANSI C y su tamaño reducido en un 25%. Muchos
cambios internos mejoraron el rendimiento y la facilidad de mantenimiento. Postgres95 v1.0.x
se ejecutaba en torno a un 30-50% más rápido en el Wisconsin Benchmark comparado con
Postgres v4.2. Además de corrección de errores, éstas fueron las principales mejoras:
El lenguage de consultas Postquel fue reemplazado con SQL (implementado en el
servidor). Las subconsultas no fueron soportadas hasta PostgreSQL (ver más abajo), pero
podían ser emuladas enPostgres95 con funciones
...