Evolución y avances del  Gestor PostgreSQL
Upcoming SlideShare
Loading in...5
×
 

Evolución y avances del Gestor PostgreSQL

on

  • 694 views

Evolución de características de PostgreSQL

Evolución de características de PostgreSQL

Statistics

Views

Total Views
694
Views on SlideShare
694
Embed Views
0

Actions

Likes
1
Downloads
14
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Evolución y avances del  Gestor PostgreSQL Evolución y avances del Gestor PostgreSQL Presentation Transcript

    • Evolución y avances del Gestor Anthony R. Sotolongo León(asotolongo@uci.cu)
    • 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.
    • POSTGRESQL Característica PostgreSQL. globales de • 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)
    • POSTGRESQL Característica PostgreSQL. • • • • globales de 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.
    • POSTGRESQL Evolución de PostgreSQL las versiones • Los primeros escritos de POSTGRES 1986 • Postgre95 (SQL) • PostgreSQL 6.0 (1996-1997)
    • POSTGRESQL Evolución de PostgreSQL 7.1 abr-2001 7.2 feb-2002 7.3 nov-2002 7.4 nov-2003 las versiones 8.0 ene-2005 8.1 nov-2005 8.2 dic-2006 8.3 feb-2008 8.4 jul-2009 9.0 sep-2010 9.1 sep-2011 9.2 sep-2012
    • POSTGRESQL PostgreSQL 7.1 [2001] •Write-Ahead Log (WAL). •Se eliminaron limitaciones antiguas sobre SQL. •Permitieron hacer consultas más complejas.
    • POSTGRESQL PostgreSQL 7.2 [2002] •VACUUM mejorado. •Optimizador de consultas mejorado. •Se permitieron ver las estadísticas del servidor con detalles.
    • POSTGRESQL PostgreSQL 7.3 [2002] •Schemas. •Consultas preparadas. •Privilegios sobre las funciones.
    • 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.
    • POSTGRESQL PostgreSQL 8.0 [2005] •Primera versión para Windows. •Tablespaces.
    • POSTGRESQL PostgreSQL 8.1 [2005] •Mejoras del uso de índices. •Creación de ROLES. •Particionado de tablas.
    • 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 *
    • 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‟);
    • POSTGRESQL PostgreSQL 8.4 [2009] •Permisos por columnas a usuarios. •Funciones ventanas. •Cláusula WITH(CTE).
    • 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 where e2.departamento=e1.departamento ) as minimo FROM empleado e1;
    • 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 ;
    • 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 from persona_edad) ;
    • POSTGRESQL PostgreSQL 9.0 [2010] •Replicación nativa asincrónica (Hot Standby & Streaming Replication) •Permisos por esquemas. •Triggers por columnas y condicionales •pg_upgrade.
    • POSTGRESQL PostgreSQL 9.0 [2010] •Triggers por columnas y condicionales CREATE OR REPLACE TRIGGER nombre_trigger [ AFTER | BEFORE ] [| UPDATE | ] of columna ON nombre_tabla FOR EACH [ROW | STATEMENT] EXECUTE PROCEDURE function;
    • POSTGRESQL PostgreSQL 9.0 [2010] •Triggers por columnas y condicionales CREATE OR REPLACE TRIGGER nombre_trigger [ AFTER | BEFORE ] [ INSERT | UPDATE | DELETE ] ON nombre_tabla FOR EACH [ROW | STATEMENT] When (condición) EXECUTE PROCEDURE function;
    • 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');
    • 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 %------
    • POSTGRESQL PostgreSQL 9.1 [2011] •Extensiones (WWW.PGXN.ORG ) Existen + 90 extensiones Replicación, FDW, Compatibilidad, administración , diccionarios, estadísticas y otros.
    • 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();
    • 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;
    • 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)
    • POSTGRESQL PostgreSQL 9.2 [2012] •Soporte para tipos de datos JSON. Dos funciones: select row_to_json (tabla1) from tabla1 •row_to_json() •array_to json()
    • POSTGRESQL PostgreSQL 9.2 [2012] •Soporte para tipos de datos JSON. Dos funciones: CREATE TABLE tabla2( campo1 serial NOT NULL, campo2 json);
    • POSTGRESQL PostgreSQL 9.3 “posibles mejoras” [2013] •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”
    • POSTGRESQL PostgreSQL 9.3 “posibles mejoras” [2013] •Mejoras en los tipos de datos JSON. select '{ "name": “anthony", "password": "super simple", "access_level": 1 }'::json->'name„ as nombre; nombre “anthony"
    • POSTGRESQL PostgreSQL 9.3 “posibles mejoras” •Vistas actualizables. •postgres_fdw. •Lateral. •trigger sobre eventos(DDL). •Vistas materializadas. [2013]
    • 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.
    • Evolución y avances del Gestor Anthony R. Sotolongo León(asotolongo@uci.cu)