principales características de postgresql

13
1. Introducción a PostgreSQL. 2. Características principales. 3. ¿Postgres o MySQL?. 4. Manejo con PostgreSQL. 5. Conclusiones. POSTGRESQL

Upload: david-m-martin-garcia

Post on 16-Apr-2017

224 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Principales características de PostgreSQL

1. Introducción a PostgreSQL.2. Características principales.3. ¿Postgres o MySQL?.4. Manejo con PostgreSQL.5. Conclusiones.

POSTGRESQL

Page 2: Principales características de PostgreSQL

1. Introducción• Nace en 1982 bajo el proyecto Ingres de la

Universidad de Berkeley, este proyecto es liderado por Michael Stonebreaker (pionero en intentar crear SGBD relacionales).

• Tras su experiencia comercial con Ingres, Stonebraker vuelve en 1985 para retomar el proyecto con el nombre ‘Post-Ingres’ o Postgres.

Page 3: Principales características de PostgreSQL

2. Características principales

- Modelo Orientado a Objetos.- 100% ACID.- Alta concurrencia.- Amplia variedad de tipos de datos.- Copias de seguridad en caliente.- Funciones.- Claves foráneas (Integridad Referencial).- Triggers.- Acceso encriptado vía SSL.- Múltiples métodos de autenticación.- Copias de seguridad en caliente.

Page 4: Principales características de PostgreSQL

3. ¿MySQL o Postgres?

• MySQL aporta mayor velocidad en procesos simples y menor consumo de recursos.

• PostgreSQL aporta mayor eficiencia, rapidez y fiabilidad en procesos complejos.

¿VELOCIDAD O POTENCIA?

Page 5: Principales características de PostgreSQL

4. Manejo con PostgreSQL

4.1. Lenguaje de definición de datos

4.2. Operadores

4.3. Lenguaje de manipulación de datos

4.4. Triggers y procedimientos

Page 6: Principales características de PostgreSQL

4.1. Lenguaje de definición de datos

• Inclusión de tipos de datos como SERIAL, Money o Array.

CREATE TABLE Comprador( nombre text, apellidos text, plazos money[], Fecha_pagos text[][], id_comprador SERIAL primary key);

Page 7: Principales características de PostgreSQL

• Herencia entre tablas (INHERITS)

CREATE TABLE Coche ( CREATE TABLE CocheStock ( marca text, rebaja money, modelo text, id_cocheStock text primary key cilindrada text, ) INHERITS (Coche); color text, precio money CREATE TABLE CocheNuevo (); rebaja money,

extras integer[], id_cocheNuevo text primary key ) INHERITS (Coche);

CREATE TABLE Ventas ( CREATE TABLE VentasStock ( id_venta SERIAL primary key, fid_cocheStock text references CocheStock(id_cocheStock) fecha_Venta date, ) INHERITS (Ventas); fid_vendedor integer references Vendedor(id_vendedor), CREATE TABLE VentasNuevo ( fid_comprador integer fid_cocheNuevo text references CocheNuevo(id_cocheNuevo) references Comprador(id_comprador) ) INHERITS (Ventas););

Page 8: Principales características de PostgreSQL
Page 9: Principales características de PostgreSQL

4.2. Operadores

• En postgreSQL se incluyen operadores como EXCEPT e INTERSECT útiles para trabajar con conjuntos tal de forma similar al álgebra relacional sin necesidad de recurrir a los operadores IN y NOT IN.

Page 10: Principales características de PostgreSQL

4.3. Lenguaje de manipulación de datos

• Postgres permite la inserción de varios registros a través de una única sentencia INSERT.

INSERT INTO Extras (descripcion) VALUES ('Control de crucero'), ('Climatizador bizona'), ('LLantas 17“ ');

Page 11: Principales características de PostgreSQL

4.4. Triggers y procedimientos

• Crear triggers a nivel de columna.• Permite devolver funciones tipo void o tipo trigger.• Se puede crear más de un trigger para un mismo evento en una

misma tabla.

• Hace uso de la condición WHEN para ejecutar el trigger bajo dichas circunstancias.

• Permite ejecutar la función asociada al trigger mediante EXECUTE PROCEDURE cuando este sea disparado.

• Sustituye la cláusula de MYSQL:

-SIGNAL SQLSTATE ‘45000’ SET MESSAGE_TEXT = ‘ ‘ por -RAISE EXCEPTION permitiendo parametrizar literales.

Page 12: Principales características de PostgreSQL

FunciónCREATE FUNCTION AlertaVendedorSinNombre() RETURNS triggerAS $$ BEGIN

RAISE EXCEPTION 'nombre del vendedor sin nombre (%)', NEW.id_vendedor; END;$$ LANGUAGE plpgsql;

TriggerCREATE TRIGGER VendedorSinNombre BEFORE INSERT ON VendedorFOR EACH ROWWHEN (New.nombre=‘ ')EXECUTE PROCEDURE AlertaVendedorSinNombre();

Inserción de prueba INSERT INTO Vendedor (nombre, apellidos, salario) VALUES ('','Martín García', '1500');

Resultado

Page 13: Principales características de PostgreSQL

5. Conclusiones

¡No existe una decisión Salomónica!