principales características de postgresql
TRANSCRIPT
1. Introducción a PostgreSQL.2. Características principales.3. ¿Postgres o MySQL?.4. Manejo con PostgreSQL.5. Conclusiones.
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.
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.
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?
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
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);
• 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););
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.
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“ ');
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.
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
5. Conclusiones
¡No existe una decisión Salomónica!