evolución y avances del gestor postgresql
DESCRIPTION
Evolución de características de PostgreSQLTRANSCRIPT
![Page 2: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/2.jpg)
POSTGRESQL
•Sumario:
• Características de PostgreSQL.
• Evolución de las principales características por versiones, hasta 9.2.
• “Posibles” mejoras de la versión 9.3.
![Page 3: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/3.jpg)
POSTGRESQL
Característica globales de
PostgreSQL.
• Subconsultas, vistas, triggers, índices, reglas, dominios.
• Propiedad ACID (100%)
• Manejo de usuarios.
• Funciones (procedimientos almacenados).
• Tipos de datos definidos por el usuario.
• Lenguage procedural interno(plpgsql).
• Otros lenguages procedurales (plpython,plr,plperl, etc)
![Page 4: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/4.jpg)
POSTGRESQL
Característica globales de
PostgreSQL.
• Máximo tamaño de tabla 32 TB.
• Máximo tamaño de campo 1 GB.
• Máximo columnas por tabla 250 - 1600 dependiendo de los tipos de columnas.
• Índices por tablas, ilimitados.
![Page 5: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/5.jpg)
POSTGRESQL
Evolución de las versiones
PostgreSQL
• Los primeros escritos de POSTGRES 1986
• Postgre95 (SQL)
• PostgreSQL 6.0 (1996-1997)
![Page 6: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/6.jpg)
POSTGRESQL
Evolución de las versiones
PostgreSQL
7.1 abr-2001
7.2 feb-2002
7.3 nov-2002
7.4 nov-2003
8.0 ene-20058.1 nov-20058.2 dic-20068.3 feb-20088.4 jul-2009
9.0 sep-20109.1 sep-20119.2 sep-2012
![Page 7: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/7.jpg)
POSTGRESQL
PostgreSQL 7.1 [2001]
•Write-Ahead Log (WAL).
•Se eliminaron limitaciones antiguas sobre SQL.
•Permitieron hacer consultas más complejas.
![Page 8: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/8.jpg)
POSTGRESQL
PostgreSQL 7.2 [2002]
•VACUUM mejorado.
•Optimizador de consultas mejorado.
•Se permitieron ver las estadísticas del servidor
con detalles.
![Page 9: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/9.jpg)
POSTGRESQL
PostgreSQL 7.3 [2002]
•Schemas.
•Consultas preparadas.
•Privilegios sobre las funciones.
![Page 10: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/10.jpg)
POSTGRESQL
PostgreSQL 7.4 [2003]
•Mejoran la búsqueda de texto contrib/tsearch2
•Agregan el information_schema.
•Considerables mejoras de optimización con
subconsultas.
•Agrega soporte tipos de datos IPv6.
![Page 11: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/11.jpg)
POSTGRESQL
PostgreSQL 8.0 [2005]
•Primera versión para Windows.
•Tablespaces.
![Page 12: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/12.jpg)
POSTGRESQL
PostgreSQL 8.1 [2005]
•Mejoras del uso de índices.
•Creación de ROLES.
•Particionado de tablas.
![Page 13: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/13.jpg)
POSTGRESQL
PostgreSQL 8.2 [2006]
•Mejoras en las operaciones de ordenamiento.
•Cláusula RETURNING a las operaciones INSERT,
DELETE,UPDATE.
DELETE FROM persona WHERE edad<2
RETURNIG *
![Page 14: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/14.jpg)
POSTGRESQL
PostgreSQL 8.3 [2008]
•Tipos de datos XML, ENUM, UUID.
•Mejoras en la operaciones con cursores
•Búsqueda de texto pasa al núcleo.
• CREATE TYPE colores AS ENUM
(„Blanco‟, ‟Negro‟);
![Page 15: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/15.jpg)
POSTGRESQL
PostgreSQL 8.4 [2009]
•Permisos por columnas a usuarios.
•Funciones ventanas.
•Cláusula WITH(CTE).
![Page 16: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/16.jpg)
POSTGRESQL
PostgreSQL 8.4 [2009]
•Funciones ventanas.¿Cuál es la diferencia del salario de cada uno de los empleados con respecto al mínimo salario de su departamento?”
SELECT e1.empid, e1.departamento, e1.salario, (select min(e2.salario) from empleado e2 wheree2.departamento=e1.departamento ) as minimoFROM empleado e1;
![Page 17: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/17.jpg)
POSTGRESQL
PostgreSQL 8.4 [2009]
•Funciones ventanas.¿Cuál es la diferencia del salario de cada uno de los empleados con respecto al mínimo salario de su departamento?”
SELECT empid, departamento, salario, min(salario) OVER (PARTITION BY departamento)AS minimo FROM empleado ;
![Page 18: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/18.jpg)
POSTGRESQL
PostgreSQL 8.4 [2009]
•Cláusula WITH(CTE).
WITH persona_edad AS (
SELECT empid from empleado where edad> 20 and edad<25)
INSERT INTO clasificados (select empid frompersona_edad) ;
![Page 19: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/19.jpg)
POSTGRESQL
PostgreSQL 9.0 [2010]
•Replicación nativa asincrónica (Hot Standby &
Streaming Replication)
•Permisos por esquemas.
•Triggers por columnas y condicionales
•pg_upgrade.
![Page 20: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/20.jpg)
POSTGRESQL
PostgreSQL 9.0 [2010]
•Triggers por columnas y condicionales
CREATE OR REPLACE TRIGGER nombre_trigger[ AFTER | BEFORE ] [| UPDATE | ] of columnaON nombre_tablaFOR EACH [ROW | STATEMENT] EXECUTE PROCEDURE function;
![Page 21: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/21.jpg)
POSTGRESQL
PostgreSQL 9.0 [2010]
•Triggers por columnas y condicionales
CREATE OR REPLACE TRIGGER nombre_trigger[ AFTER | BEFORE ] [ INSERT | UPDATE | DELETE ] ON nombre_tablaFOR EACH [ROW | STATEMENT]When (condición) EXECUTE PROCEDURE function;
![Page 22: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/22.jpg)
POSTGRESQL
PostgreSQL 9.1 [2011]
•Replicación nativa sincrónica (Hot Standby &
Streaming Replication)
•Tablas foráneas(FDW).
CREATE FOREIGN TABLE tablaforarea (atributos) server
miserver options (database 'basedatosexterna', table
tablaexterna');
![Page 23: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/23.jpg)
POSTGRESQL
PostgreSQL 9.1 [2011]
•Tablas Unlogged(sin registro).
create table tablan (a int);
create unlogged table tablau (a int);
insert into tablan select generate_series(1,5000); INSERT 0
5000 Duración: 29,881 ms
insert into tablau select generate_series(1,5000);
INSERT 0 5000 Duración: 18,615 ms
-------Mejora en un 48 %------
![Page 24: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/24.jpg)
POSTGRESQL
PostgreSQL 9.1 [2011]
•Extensiones (WWW.PGXN.ORG )
Existen + 90 extensiones
Replicación, FDW, Compatibilidad, administración ,
diccionarios, estadísticas y otros.
![Page 25: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/25.jpg)
POSTGRESQL
PostgreSQL 9.1 [2011]
•Triggers en vistas.
CREATE TRIGGER trigger1 INSTEAD OF
INSERT OR UPDATE OR DELETE ON vista
FOR EACH ROW EXECUTE PROCEDURE
funcion();
![Page 26: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/26.jpg)
POSTGRESQL
PostgreSQL 9.1 [2011]
•Mejoras a las clausula WITH
WITH mover_filas as (delete FROM persona WHERE edad>0 and edad<10 returning *)
insert INTO persona_logs SELECT * from mover_filas;
![Page 27: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/27.jpg)
POSTGRESQL
PostgreSQL 9.2 [2012]
•Mejoras de rendimiento “muy considerables”.
•Replicación en cascada.
•Mejoras en los índices (only index).
•Soporte para tipos de datos JSON.
•Range Types (tipo de rango)
![Page 28: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/28.jpg)
POSTGRESQL
PostgreSQL 9.2 [2012]
•Soporte para tipos de datos JSON.
Dos funciones:
•row_to_json()•array_to json()
select row_to_json (tabla1) from tabla1
![Page 29: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/29.jpg)
POSTGRESQL
PostgreSQL 9.2 [2012]
•Soporte para tipos de datos JSON.
Dos funciones:
CREATE TABLE tabla2( campo1 serial NOT
NULL, campo2 json);
![Page 30: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/30.jpg)
POSTGRESQL
PostgreSQL 9.3 [2013]
“posibles mejoras”
•Mejoras en los tipos de datos JSON.
Más funciones:
json_object_keys()
json_each()
select * from json_each('{"name":“anthony","password":"super
simple”}‟)
key | value
name | “anthony"
password | "super simple”
![Page 31: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/31.jpg)
POSTGRESQL
PostgreSQL 9.3 [2013]
“posibles mejoras”
•Mejoras en los tipos de datos JSON.
select '{ "name": “anthony", "password": "supersimple", "access_level": 1 }'::json->'name„ as nombre;
nombre“anthony"
![Page 32: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/32.jpg)
POSTGRESQL
PostgreSQL 9.3 [2013]
“posibles mejoras”•Vistas actualizables.•postgres_fdw. •Lateral.•trigger sobre eventos(DDL).•Vistas materializadas.
![Page 33: Evolución y avances del Gestor PostgreSQL](https://reader031.vdocuments.pub/reader031/viewer/2022020116/557ae56ed8b42a590b8b52b8/html5/thumbnails/33.jpg)
POSTGRESQL
Conclusiones
•PostgreSQL es un SGDB con más de dos décadas
de desarrollo.
•Su evolución esta sincronizada con el estándar
SQL.
•Posee avanzadas características de programación
al nivel de gestores privados.