Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
POSTGRES
QL
PARTE IAzuaje, Agustín
Hevia, Andrés
Agenda
 Definición: ¿Qué es PostgreSQL?
 Entrando a Postgres…
 Reseña histórica y características básicas.
 Arquitectu...
¿Qué es PostgreSQL?
 ¿Un simple SMBD?
 Más que eso:
Un poderoso
sistema de gestión
de base de datos
objeto-relacionales....
Entrando a Postgres…
 Nace en 1982 en la Universidad de
Berkeley.
 Su primer nombre fue Ingres. Robusto como su
logo,
c...
Arquitectura Básica
 Consiste en el modelo Cliente-Servidor.
¿Y esto de aquí arriba que
significa?
Manejo de Memoria
 En todos los sistemas de gestión de base de
datos, los datos se guardan en páginas de
memoria…… Postgr...
Manejo de Memoria
El Storage
Manager:
 Todo Update es una inserción en vez de
un cambio de las tuplas.
 No requiere la e...
Manejo de memoria
Manejo de Memoria
¡El maravilloso
Vacuum! Libera espacio en
disco. Mantiene actualizadas las
estadísticas de de datos
ut...
Manejo de Memoria
Ejemplo de un “Full
Vacuum”:
Manejo de Memoria
Ejemplo de un “Lazy Vacuum”:
Índices
 Los índices se utilizan para
acelerar las consultas.
 Son también
archivos.
Y con ustedes… Los
índices
Índices
Índices por
valor Su campo clave
es…… una columna.
La sentencia para su creación sería:
CREATE [UNIQUE] INDEX nom...
Índices
Índice funcional
 Se define por el resultado de
una función.
 Acceso más veloz.
La sentencia para su creación se...
Índices
Índices
primarios Se crean automáticamente
cuando establecemos un
campo como clave primaria.
 Aunque se crean
au...
Índices
Índices
secundarios B-Tree (Árbol B).
 R-Tree (Árbol R) (Descontinuados).
 Gist (Sustituye al R-Tree): se utili...
Índices
 Un Árbol B para refrescar la memoria…
Concurrencia
 Recordemos el modelo Cliente
– Servidor…
 Varios clientes implica varias transacciones,
que pueden ser con...
Concurrencia PostgreSQL
Bloqueo
PostgreSQL = MVCC
Transacción = Acción Reed/Write
• NO contención, deadlocks
• SI transacc...
Concurrencia PostgreSQL
 Caso de Conflicto = 2 transacciones trabajan sobre el mismo objeto, con al menos
una operación d...
Concurrencia PostgreSQL
 VACUUM
E- Bloqueo no visible
SD: Bloque Sin Asignar
OF: Bloque Fuera de Uso
¿Se acuerdan de esto...
Recuperación PostgreSQL
Existen distintos enfoques para
resguardar la BD:
Backups mediante
volcado
Backup de todas las
BD ...
Recuperación PostgreSQL
 Estrategia Compleja de Copias de
Seguridad
Archivado Continuo y
Logfiles
Copias Físicas
(Resguar...
Diccionario de Datos PostgreSQL
 Almacena un conjunto de Meta-datos.
• Son datos que describen otros datos
• Organizados ...
Y por ahora terminamos…
¿Pregunta
s?
Upcoming SlideShare
Loading in …5
×

Postgresql expo

875 views

Published on

Presentación de Postgres SQL (parte I) para la matería de ABD de licenciatura en computación.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Postgresql expo

  1. 1. POSTGRES QL PARTE IAzuaje, Agustín Hevia, Andrés
  2. 2. Agenda  Definición: ¿Qué es PostgreSQL?  Entrando a Postgres…  Reseña histórica y características básicas.  Arquitectura Básica.  Modelo Cliente – Servidor.  Manejo de Memoria.  Almacenamiento  Índices  Restauración  Manejo de la concurrencia.  Diccionario de Datos / Directorio.
  3. 3. ¿Qué es PostgreSQL?  ¿Un simple SMBD?  Más que eso: Un poderoso sistema de gestión de base de datos objeto-relacionales.  Fiel cumplidor de la norma ACID
  4. 4. Entrando a Postgres…  Nace en 1982 en la Universidad de Berkeley.  Su primer nombre fue Ingres. Robusto como su logo, corre en casi cualquier Sistema Operativo. Diseñado para ambientes de alto volumen de transacciones.  De código abierto.  En 1994 empieza a utilizar el lenguaje SQL.
  5. 5. Arquitectura Básica  Consiste en el modelo Cliente-Servidor. ¿Y esto de aquí arriba que significa?
  6. 6. Manejo de Memoria  En todos los sistemas de gestión de base de datos, los datos se guardan en páginas de memoria…… Postgres no es la excepción:  Tamaños de página desde 8 K hasta 32 K.  ¿data muy grande? It’s TOAST time! A picar se ha dicho.
  7. 7. Manejo de Memoria El Storage Manager:  Todo Update es una inserción en vez de un cambio de las tuplas.  No requiere la ejecución de un código de recuperación si el sistema falla.  Esquema WORM: Write-Once-Read- Many.  Almacenamiento por bloques.  Aprovecha el hardware especializado como procesadores múltiples y memoria no volátil. Para cada usuario que lee, tiene una copia del dato disponible…
  8. 8. Manejo de memoria
  9. 9. Manejo de Memoria ¡El maravilloso Vacuum! Libera espacio en disco. Mantiene actualizadas las estadísticas de de datos utilizados por el planificador de consultas SQL.¿Cómo funciona? Primero escribe un registro de archivo y de sus registros de índice asociados.  Luego crea un nuevo punto de anclaje en la base de datos actual (Checkpoint).  Libera el espacio ocupado por el punto de anclaje más antiguo.
  10. 10. Manejo de Memoria Ejemplo de un “Full Vacuum”:
  11. 11. Manejo de Memoria Ejemplo de un “Lazy Vacuum”:
  12. 12. Índices  Los índices se utilizan para acelerar las consultas.  Son también archivos. Y con ustedes… Los índices
  13. 13. Índices Índices por valor Su campo clave es…… una columna. La sentencia para su creación sería: CREATE [UNIQUE] INDEX nombre_indice ON TABLE [USING nombre_acceso] (columna)
  14. 14. Índices Índice funcional  Se define por el resultado de una función.  Acceso más veloz. La sentencia para su creación sería: CREATE [UNIQUE] INDEX nombre_indice ON TABLE [USING nombre_acceso] (nombre_funcion (r”>columna|e>[,…]) )
  15. 15. Índices Índices primarios Se crean automáticamente cuando establecemos un campo como clave primaria.  Aunque se crean automáticamente, pueden crearse manualmente para campos que creamos relevantes. La sentencia para su creación sería: CREATE INDX nombre_indice ON table
  16. 16. Índices Índices secundarios B-Tree (Árbol B).  R-Tree (Árbol R) (Descontinuados).  Gist (Sustituye al R-Tree): se utilizan en una búsqueda, cuando alguno de los atributos indexados esté involucrado en una comparación que utilice uno de los siguientes operadores: <<|, &<|, |&>|, |>>, @>, <@, ~=, &&
  17. 17. Índices  Un Árbol B para refrescar la memoria…
  18. 18. Concurrencia  Recordemos el modelo Cliente – Servidor…  Varios clientes implica varias transacciones, que pueden ser concurrentes…
  19. 19. Concurrencia PostgreSQL Bloqueo PostgreSQL = MVCC Transacción = Acción Reed/Write • NO contención, deadlocks • SI transacciones ACID Atomicity, Consistency, Isolation and Durability. • Copias paralelas de datos. • NO elimina o actualiza la data • Fila extra = “no visible” Desventajas Usa más espacio de disco. Lentitud al leer datos. R nunca bloquea W, y viceversa Control de Concurrencia Multi-Versión  Concurrencia
  20. 20. Concurrencia PostgreSQL  Caso de Conflicto = 2 transacciones trabajan sobre el mismo objeto, con al menos una operación de escritura. Aislamiento de Transacción. Solución Lectura confirmada Serializable  Predeterminada  Ve una instantánea a partir del inicio de la operación.  2 Casos:  Consulta sólo ve los datos confirmados antes del comienzo de la consulta.  Se esperará la confirmación de la primera transacción.  Estricto  Emula la ejecución en serie.  Los sucesivos comandos dentro de una sola transacción siempre ven los mismos datos.
  21. 21. Concurrencia PostgreSQL  VACUUM E- Bloqueo no visible SD: Bloque Sin Asignar OF: Bloque Fuera de Uso ¿Se acuerdan de esto? Hora de reutilizar espacio y optimizar las búsquedas. Full VACUMM Auto VACUMM  Mas agresivo  Espacio liberado, retornado al SO  Bloqueo exclusivo mientras se procesa  Automatizar el VACUMM  Múltiples procesos para mantenerlo activo
  22. 22. Recuperación PostgreSQL Existen distintos enfoques para resguardar la BD: Backups mediante volcado Backup de todas las BD del servidor Backup a nivel de ficheros Crear Fichero Restaurar psql basededatos < fichero.sql pg_dump basededatos > fichero.sql Copiar BD del servidor pg_dumpall > backup_server.sql Restaurar las BD psql -f backup_server.sql postgres Apagar el servidor tar -czvf backup.tar.gz /var/pgsql/data Mover los ficheros a su ruta y levantarlo de nuevo  Recuperación
  23. 23. Recuperación PostgreSQL  Estrategia Compleja de Copias de Seguridad Archivado Continuo y Logfiles Copias Físicas (Resguardar la BD) Almacenan automáticamente todas las modificaciones. Almacenan data de forma continua. Registran todas las manipulaciones a la BD Rotación de Logfiles
  24. 24. Diccionario de Datos PostgreSQL  Almacena un conjunto de Meta-datos. • Son datos que describen otros datos • Organizados en tablas • Generados automáticamente por el Compilador. Estándar SQL-92, lo denomina “informationschema” Diccionario de Datos Tipos de datos: cardinal_number: Entero no negativo character_data: String sin longitud sql_indentifier: Sentencias de sql yes_or_no: valores lógicos Conjunto de vistas las cuales contiene: Columns (Columnas definidas por el sistema), Tables (Tablas de la bd), Views (Vistas) Acceso Select * from information_schema.<vista>. Pg_class: tablas, índices…. Pg_constraint: restricciones definidas. Pg_statistics: información de la estadísticas del sistema. Select relname from pg_class;
  25. 25. Y por ahora terminamos… ¿Pregunta s?

×