Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IBD115
2013
Por
Alexandra Mara Caas
Tovar y
Bryan Josu Rodrguez
Parada
DESCRIPCIN DE POSTGRESQL
PostgreSQL 9.3 es un sistema de gestin de bases de
datos objeto-relacional distribuido bajo la Licencia
PostgreSQL:
El permiso para usar, copiar, modificar y
distribuir este software y su documentacin
para cualquier propsito, sin coste alguno, y sin
que se concede un contrato por escrito
ARQUITECTURA
INTERNA
ARQUITECTURA INTERNA (2)
PostgreSQL se maneja por medio de clster
(instancias) para lo cual posee un directorio en donde
se almacenan los archivos de configuracin del mismo,
la data que se genera y otros archivos relevantes. El
directorio por defecto es PGDATA. Dentro del directorio
PGDATA se encuentra el directorio PGDATA/Base y es el
directorio por defecto en donde se almacenan todos
los objetos de una base de datos (tablas, ndices,
funciones, etc.).
Adems cada objeto se distingue mediante el OID ( el
cual es un entero de 4 bytes sin signo) o mediante
filenode. En el caso de las tablas y los ndices poseen
tres archivos asociados los cuales son: el mapa de
espacio libre , el mapa de visibilidad y por ltimo el de
inicializacin.
ARQUITECTURA INTERNA (3) 88kb
KB
pg_xlog/
wal_writter_delay
Intervalo entre
flushing del
buffer de WAL al
disco.
ARQUITECTURA DE PROCESAMIENTO DE
CONSULTAS
1
EL CAMINO DE UNA CONSULTA
ARQUITECTURA DE PROCESAMIENTO DE
CONSULTAS (2)
2
EL CAMINO DE UNA CONSULTA
ARQUITECTURA DE PROCESAMIENTO DE
CONSULTAS (3)
3
EL CAMINO DE UNA CONSULTA
ARQUITECTURA DE PROCESAMIENTO DE
CONSULTAS (4)
ANALIZE
VACUUM ANALIZE
4 No hay
planes q se
ejecuten en
paralelo en
PostgreSQL
5
EL CAMINO DE UNA CONSULTA
ARQUITECTURA DE OBJETOS
SCHEMA: contienen una coleccin de objetos: tablas,
funciones, vistas, tipos de datos, etc. Una base de datos
puede contener uno o ms esquemas. Por defecto las
tablas (y otros objetos) se ponen automticamente en un
esquema denominado "pblico". Cada nueva base de
datos contiene ese esquema. El usuario puede crear
esquemas. Desde la perspectiva de seguridad todos los
objetos creados dentro de un esquema pertenecen a l.
De forma predeterminada, los usuarios no pueden tener
acceso a los objetos de los esquemas que no poseen.
Para permitir el propietario del esquema debe otorgar el
privilegio para usar el esquema a los dems usuarios.
Para permitir a los usuarios que utilicen los objetos del el
esquema, privilegios adicionales podran necesitarse que
se otorgaran, Tomando en Cuenta si es apropiado para el
objeto.
ARQUITECTURA DE OBJETOS (2)
VISTAS
Existen dos tipos de vistas
No materializadas => definida a partir de una consulta. En
cambio, la consulta se ejecuta cada vez que se hace referencia
a la vista en una consulta.
Materializadas => define a partir de una consulta y permite que
la vista se rellene con datos en el momento en que se emiti su
ejecucin. Es similar a CREATE TABLE AS
ARQUITECTURA DE OBJETOS (3)
PostgreSQL implementa la herencia de tablas, que puede ser una
herramienta til para los diseadores de bases de datos; esto es
permitido debido a que PostgreSQL es un gestor relacional orientado a
objetos.
CREATE TABLE cities ( En este caso, la tabla capitales
name text, hereda todas las columnas de
population float, la tabla principal (ciudades). La
altitude int -- in feet);
tabla capitales tambin tienen
una columna adicional (estado)
CREATE TABLE capitals (
que muestra su estado.
state char(2)
) INHERITS (cities);
ARQUITECTURA DE OBJETOS (4)
PARTICIONES
Particionamiento se refiere a la divisin de lo que es lgicamente una tabla
grande en pedazos ms pequeos fsicamente. Actualmente, PostgreSQL soporta
particiones mediante herencia de tablas. Cada particin debe ser creada como
una tabla hija de una nica tabla padre. La tabla padre existe slo para
representar a todo el conjunto de datos, mientras que las tablas hijas no poseen
atributos pero en ellas se generan las restricciones de rangos. Usted debe estar
familiarizado con la herencia antes de intentar configurar particiones.
Las siguientes formas de particionamiento pueden ser implementadas en
PostgreSQL:
Particionamiento Range: La tabla se divide en "rangos", definidos por una
columna de clave o un conjunto de columnas. Por ejemplo, uno podra
particionar en intervalos de tiempo, o en rangos de identificadores para
determinados objetos de negocio.
Particionamiento de lista: La tabla se divide en forma explcita en el listado
de valores clave que aparecen en cada particin.
ARQUITECTURA DE OBJETOS (5)
TABLESPACE O ESPACIOS DE TABLA
Los espacios de tabla en PostgreSQL permiten a los administradores de
bases de datos definir las ubicaciones en el sistema de archivos donde
se almacenan los archivos que representan objetos de la base. Una vez
creado, un espacio de tabla puede ser referido por su nombre al crear
objetos de base de datos. Dos espacios de tablas se crean
automticamente cuando se inicia el clster de base de datos. El espacio
de tablas pg_global se utilizan para los catlogos del sistema
compartidos. El espacio de tablas pg_default es el espacio de tabla por
omisin del template1 y template0 de bases de datos (y, por lo tanto,
ser el espacio de tabla por defecto para otras bases de datos. La
creacin del espacio de tabla en s debe hacerse como superusuario de
base de datos
ARQUITECTURA DE OBJETOS (6)
INDICES
Todos los ndices en PostgreSQL son lo que se
conoce tcnicamente como ndices
secundarios, es decir, el ndice se encuentra
fsicamente separado del archivo de la tabla
que describe. Cada ndice se almacena con su
propia relacin fsica y as se describe por una
entrada en el catlogo pg_class. El contenido
de un ndice est enteramente definido bajo el
control de su mtodo de acceso al ndice. En la
prctica, todos los mtodos de acceso de ndice
dividen los ndices en pginas de tamao
estndar para que puedan utilizar el
almacenamiento regular y el administrador de
bfer para acceder al contenido del ndice.
ARQUITECTURA DE OBJETOS (7)
VACUUM
El VACUUM reclama el almacenamiento ocupado por las tuplas muertas.
En funcionamiento normal en PostgreSQL, las tuplas que se eliminan u
obsoletas por una actualizacin no se eliminan fsicamente de su tabla,
sino que siguen presentes hasta que se haga el vacuum (vaco). Por lo
tanto es necesario hacer el VACO peridicamente, especialmente en
tablas de actualizacin frecuente.
ARQUITECTURA DE MEMORIA
El STORAGE MANAGER es el encargado de administrar la
memoria, administracin del buffer, archivos, bloqueos y
control de la consistencia de la informacin.
Entre las funciones del STORAGE MANAGER est proveer
Memoria Compartida a los que sirve a los buffers y para el
acceso a la base de datos.
Sistema V IPC
ARQUITECTURA DE MEMORIA (2)
SHARED_BUFFERS
shmma
x
ARQUITECTURA DE MEMORIA (3)
USO DE MEMORIA
BASE DE DATOS DEL SISTEMA
TEMPLATE1: CREATE DATABASE realmente funciona copiando una base de
datos existente. Por defecto, copia de la base de datos del sistema estndar
llamado template1. Por lo tanto esta base de datos es la "plantilla" del cual se
hacen nuevas bases de datos. Si usted agrega objetos a template1, estos
objetos sern copiados a las bases de datos de usuario que se creen
posteriormente.
TEMPLATE0: Hay una segunda base de datos del sistema estndar llamada
template0. Esta base de datos contiene los mismos datos que el contenido
inicial de template1, es decir, slo los objetos estndar predefinidos por su
versin de PostgreSQL. Template0 nunca debe ser cambiada despus que el
cluster de base de datos se haya inicializado.
POSTGRES: La base de datos postgres tambin se crea cuando se inicializa un
clster de bases de datos. Esta base de datos pretende ser una base de datos
por defecto para los usuarios y las aplicaciones para conectarse. Es simplemente
una copia de template1 y se puede quitar y volver a crear si es necesario.
BASE DE DATOS DEL SISTEMA (2)
CATALOG
O
DEL
SISTEMA
MODELOS DE RESPALDO Y
RESTAURACIN
SQL DUMP (VOLCADO)
La idea detrs de este mtodo de volcado
es generar un archivo de texto con los
comandos SQL que, cuando se alimente
de nuevo al servidor, este volver a crear
la base de datos (una base de datos
en particular) en el mismo estado en que
se encontraba en el momento del volcado.
PostgreSQL proporciona el programa de
utilidad pg_dump para este propsito.
MODELOS DE RESPALDO Y
RESTAURACIN (2)