postgresql

25
Eduardo Otoniel Tumax Sulecio Carnet: 0900-09- 4729 Sergio Anibal Argueta Paredes Carnet: 0901-07- 2575 Alvaro Antonio Alvarez Carnet: 0901-08-3789 Juan Diego Hurtarte Hicho Carnet: 0901-09-398

Upload: oto-tumax

Post on 11-Jun-2015

10.504 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: PostgreSQL

Eduardo Otoniel Tumax Sulecio Carnet: 0900-09-4729

Sergio Anibal Argueta Paredes Carnet: 0901-07-2575

Alvaro Antonio Alvarez  Carnet: 0901-08-3789

Juan Diego Hurtarte Hicho Carnet: 0901-09-398

Page 2: PostgreSQL

PostgreSQL

Grupo 3

Page 3: PostgreSQL

Historia

Page 4: PostgreSQL

Originalmente llamado Postgres

Se creó por un profesor de ciencias de la computación llamado Michael Stonebraker

Comenzó en 1986 como un proyecto de seguimiento a su predecesor, Ingres, ahora propiedad de Computer Associates. 

El nombre de Postgres por lo tanto juega fuera de su antecesor (como en "después de Ingres"). 

Ingres, desarrollado a partir de 1977 a 1985, había sido un ejercicio en la creación de un sistema de base de datos de acuerdo con la teoría clásica de RDBMS.

 Postgres, desarrollado entre 1986-1994, fue un proyecto destinado a abrir nuevos caminos en los conceptos de bases de datos tales como la exploración de "objeto relacional" tecnologías.

Historia

Page 5: PostgreSQL

PostgreSQL se inició a la versión 6.0, dando crédito a sus muchos años de desarrollo antes. Con la ayuda de cientos de desarrolladores de todo el mundo, el sistema ha cambiado y mejorado en casi todas las áreas. 

Control de concurrencia multiversión (MVCC). Tabla de nivel de bloqueo fue sustituido por un sistema de control de concurrencia multiversión sofisticado,

Mejora de los tipos predefinidos. tipos nativos se sumaron nuevas incluyendo un amplio rango de fecha / hora y los tipos adicionales de tipos geométricos.

Velocidad. aumenta la velocidad mayor y el rendimiento en el orden del 20-40% se hicieron, y el backend de puesta en marcha se redujo en un 80%.

Historia

Page 6: PostgreSQL

Los cuatro años siguientes (versiones 7.0 a 7.4) trajo el registro de escritura anticipada (WAL), esquemas de SQL,

En la actualidad, la base de PostgreSQL del usuario es mayor que nunca, e incluye un nutrido grupo de grandes empresas que lo utilizan en entornos exigentes. 

Muchas organizaciones, agencias gubernamentales y empresas utilizan PostgreSQL. Va a encontrar las instalaciones de tratamiento de datos, Cisco, NTT Data, NOAA, Research In Motion, el Servicio Forestal de EE.UU. y la Sociedad Americana de Química. Hoy en día, es raro encontrar a una gran empresa o agencia de gobierno que no está usando PostgreSQL por lo menos en un departamento.

Historia

Page 7: PostgreSQL

Herramientas de diseño

Page 8: PostgreSQL

pgAdmin IIIMS Windows, GNU / Linux, FreeBSD, Mac OS X, OpenBSD, SolarisAdministraciónpgAdmin III es la herramienta de código abierto para gestión de bases de datos

PostgreSQL. Cuenta con soporte completo de Unicode, la consulta rápida, multihilo y datos Editting herramientas y soporte para todo tipo de objetos PostgreSQL.

pgAdmin III se incluye con el instalador de Windows, y usted puede utilizar eso como un cliente para administrar un servidor remoto en otro sistema operativo. Tenga en cuenta que los paquetes binarios para plataformas como RPM no se presentan en cada punto de desenganche, que actualmente tienen que volver a v1.8.0 para obtener el último conjunto completo de paquetes.

PgAccessLa mayoría de las plataformasERDLa interfaz gráfica de usuario PostgreSQL original, con un navegador de base de datos de MS

Access estilo, escrito en Tcl / Tk. Permite navegar, agregar y editar tablas, vistas, funciones, bases de datos y usuarios, así como gráfico de consultas. Un diseñador de formularios e informes también están en desarrollo por el equipo de PgAccess, que podría utilizar la ayuda de un poco más de Tcl / Tk programadores y escritores doc. (JMB 11.2002)

PgAccess no se ha mantenido activa durante algún tiempo.

Herramientas de diseño

Page 9: PostgreSQL

phpPgAdmin basado en el navegador, requiere servidor web Administración Al igual que en el siempre popular phpMyAdmin, mejorado para PostgreSQL,

soporta la navegación y la modificación de la mayoría de los tipos de objetos de base de datos PostgreSQL, además de la ejecución de consultas ad-hoc. Mantenido por (¿quién más?) El equipo de phpPgAdmin. (JMB 11.2002).

OpenOffice.org Windows, Linux, Solaris El controlador de SDBC postgresql permite utilizar la base de datos PostgreSQL

desde OpenOffice.org sin ningún tipo de capa de envoltorio, como ODBC o JDBC. La versión actual 0.7.6 se puede considerded como la calidad de un buen beta (con algunos problemas conocidos y las características que faltan). El conductor se dirige a los OpenOffice.org 1.1 y OpenOffice.org 2.x versiones, no funciona con los árboles OOo1.0.x. El objetivo final es tener un más fácil de usar, más rápido, el conductor más ricos de la característica de base de datos de la solución JDBC-ODBC. La versión actual ya se debe permitir que esto en muchos lugares.

Herramientas de diseño

Page 10: PostgreSQL

The Red Hat Database Graphical Tools, RHDB Administrator and Visual Explain

Xpg: Java PostgreSQL client Mergeant TOra, an Oracle tool with some PostgreSQL support KNoda PGInhaler SQuirreL AnySQL Maestro SQL Workbench/J PostgreSQL PHP Generator WaveMaker Ajax GUI Design Tool Druid III Power*Architect RISE - Model Driven Development using ERD / UML

Herramientas de diseño

Page 11: PostgreSQL

Características PostgreSQL

Page 12: PostgreSQL

Es una base de datos 100% ACID Integridad referencial Tablespaces Nested transactions (savepoints) Replicación asincrónica/sincrónica / Streaming replication - Hot Standby Two-phase commit PITR - point in time recovery Copias de seguridad en caliente (Online/hot backups) Unicode Juegos de caracteres internacionales Regionalización por columna Multi-Version Concurrency Control (MVCC) Multiples métodos de autentificación Acceso encriptado via SSL Actualización in-situ integrada (pg_upgrade) SE-postgres Completa documentación Licencia BSD

Características_Generales

Page 13: PostgreSQL

Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl

Bloques anónimos de código de procedimientos (sentencias DO)

Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de los tipos estándares en cualquier base de datos, tenemos disponibles, entre otros, tipos geométricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc

Soporta el almacenamiento de objetos binarios grandes (gráficos, videos, sonido, ...)

APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros.

Programacion Desarrollo

Page 14: PostgreSQL

SQL92,SQL99,SQL2003,SQL2008 Llaves primarias (primary keys) y foráneas (foreign keys) Check, Unique y Not null constraints Restricciones de unicidad postergables (deferrable constraints) Columnas auto-incrementales Indices compuestos, únicos, parciales y funcionales en cualquiera de los

metodos de almacenamiento disponibles, B-tree, R-tree, hash ó GiST Sub-selects Consultas recursivas Funciones 'Windows' Joins Vistas (views) Disparadores (triggers) comunes, por columna, condicionales. Reglas (Rules) Herencia de tablas (Inheritance) Eventos LISTEN/NOTIFY

SQL

Page 15: PostgreSQL

PostgreSQL se distribuye bajo la licencia de PostgreSQL , una licencia Open Source liberal, similar a las licencias BSD o MIT.

Los regentes de la Universidad de California permiso para usar, copiar, modificar, y distribuir este software y su documentación para cualquier propósito, sin pago, y sin un acuerdo por escrito se le concede, siempre que el aviso de copyright anterior y este párrafo y los dos párrafos siguientes aparecen en todas las copias. 

Licencia

Page 16: PostgreSQL

Limites

Page 17: PostgreSQL

Los requerimientos mínimos para instalar PostgreSQL son:

. 8 megabytes de RAM

. 30 megabytes de espacio en disco para el codigo fuente

. 5 megabytes de espacio en disco para la instalación de los ejecutables

. 1 megabyte extra para las bases de datos básicas

Requerimentos

Page 18: PostgreSQL

PostgreSQL ofrece muchas ventajas para su empresa o negocio en los sistemas de bases de datos.

La inmunidad a un exceso de despliegue

Durante la implementación es lo que algunos proveedores de base de datos propietaria consideran como su # 1 problema de cumplimiento de la licencia. Con PostgreSQL, nadie puede demandarlo por violar acuerdos de licencia, ya que es sin costo de licencia para el software asociado.

Mejor soporte de los proveedores de propiedad

Además de nuestras ofertas de soporte fuerte, tenemos una vibrante comunidad de profesionales y entusiastas de PostgreSQL que su personal pueda aprovechar y contribuir.

Importante ahorro en los costes de personal

Nuestro software ha sido diseñado y creado para un mantenimiento mucho más bajos y las necesidades de ajuste de las bases de datos principales de propiedad, sin embargo, todavía conservan todas las características, estabilidad y rendimiento.

Ventajas

Fuente: http://www.postgresql.org

Page 19: PostgreSQL

La legendaria confiabilidad y estabilidad A diferencia de muchas bases de datos propietarias, es muy frecuente que las

empresas informan que PostgreSQL nunca, nunca se estrelló por ellos en varios años de operación de alta actividad. Ni siquiera una vez. Simplemente funciona.

Extensible El código fuente está disponible para todos sin costo alguno. Si su personal tiene la

necesidad de modificar o extender PostgreSQL de algún modo, son capaces de hacerlo con un mínimo de esfuerzo, y sin los costes asociados. 

Multiplataforma PostgreSQL está disponible para casi todas las marcas de Unix (34 plataformas con la

última versión estable), y la compatibilidad de Windows está disponible en el marco de Cygwin. 

Diseñada para entornos de alto volumen Utilizamos una estrategia de almacenamiento de múltiples filas de datos llamada

MVCC para PostgreSQL extremadamente sensible en ambientes de alto volumen.  Interfaz gráfica de usuario de diseño de bases de datos y herramientas de

administración Hay muchas herramientas de alta calidad GUI disponibles para PostgreSQL tanto de

desarrolladores de fuente abierta y los proveedores comerciales.

Ventajas

Fuente: http://www.postgresql.org

Page 20: PostgreSQL

Conexión Con Lenguajes

Page 21: PostgreSQL

PHP <?php define ('DB_HOST','localhost'); //Host de postgresql (puede ser otro) define ('DB_USER','postgres'); //Usuario de postgresql (puede ser otro) define ('DB_PASS','1234');

//Password de postgresql (puede ser otro) define ('DB_NAME','mydatabase'); //Database de postgresql (puede ser otra) define ('DB_PORT','5432'); //Puerto de postgresql (puede ser otro)?> -----------------------------------------------------------------

<?php include 'database.php'; class Query { function get_people() {$conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST); $people=null; if ($conn) { $result = pg_query($conn, "SELECT * FROM people");   if (pg_num_rows($result)>0) {while ($row = pg_fetch_row($result)) {   $people[$row[0]]['id']=$row[0]; $people[$row[0]]['fullname']=$row[1]; $people[$row[0]]['address']=$row[2];

} else {echo "Conexión Erronea"; exit; } return $people; } function add_people($fullname, $address) { $conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST);   if ($conn) {$result = pg_query($conn, "INSERT INTO people (fullname,address) VALUES('$fullname','$address')"); } else { echo "Conexión Erronea"; exit; } } } ?>         

Php

Page 22: PostgreSQL

import java.sql.*; class conexion{

public static void main(String[] args){String driver = “org.postgresql.Driver”;String connectString = “jdbc:postgresql://localhost:5432/Taller”;String user = “of”;String password = “1234″;

try{Class.forName(driver);Connection con = DriverManager.getConnection(connectString, user , password);Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(“SELECT * FROM cabecera_trabajo”); while (rs.next()){

System.out.println(“CEDULA ” + rs.getString(“cedula_cliente”));}

stmt.close();con.close();

} catch ( Exception e ){

System.out.println(e.getMessage());}}}

Java

Page 23: PostgreSQL

using System; using Npgsql; // namespace conexion{ class Postgre { public NpgsqlConnection dbcon; public void conectar() { string con = "Server=127.0.0.1;"+ "Port=5432;"+ "User Id=tu_usuario;"+"Password=tu_password;"+

"Database=ejercicio;"; dbcon = new NpgsqlConnection(con); dbcon.Open(); } public void ejectuar(string query){ NpgsqlCommand command = dbcon.CreateCommand(); command.CommandText = query; command.ExecuteReader(); } public void desconectar(){ dbcon.Close();} public static void Main(string[] args){ try{ Postgre conexion; conexion = new Postgre(); conexion.conectar(); Console.WriteLine("Conexión exitosa"); string query = "INSERT INTO usuarios VALUES ('C01','Juan','Perez');"; conexion.ejectuar(query); Console.WriteLine("Se ingreso el dato satisfactoriamente"); } catch(NpgsqlException error){ string mensaje = error.Message; Console.WriteLine(mensaje); } } }

C#

Page 24: PostgreSQL

Apple ha eliminado a MySQL de la última versión de Mac OS X Server y en su lugar ha puesto a PostgreSQL.

EnterpriseDB (el equipo que comercializa PostgreSQL) dice que no estaba al tanto del cambio hasta que Mac OS X Lion Server llegó a la tienda de Apple, y dice no ha tenido participación en la decisión de Apple.

Por otro lado, la gente de EnterpriseDB especula que Apple eliminó MySQL del sistema operativo debido a que la base de datos ha caído en manos de Oracle.

Porque Apple usa esta BD

Page 25: PostgreSQL

Comparación Del Mercado