PostgreSQL

13,480 views
13,191 views

Published on

1 Comment
3 Likes
Statistics
Notes
  • historia,ventajas, conexiones con lenguajes e programación asi como también videotutorial e instalacion y uso e Postgresql
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
13,480
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
393
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

PostgreSQL

  1. 1. Eduardo Otoniel Tumax Sulecio Carnet: 0900-09-4729<br />Sergio Anibal Argueta Paredes Carnet: 0901-07-2575<br />Alvaro Antonio Alvarez  Carnet: 0901-08-3789<br />Juan Diego Hurtarte Hicho Carnet: 0901-09-398<br />
  2. 2. PostgreSQL<br />Grupo 3<br />
  3. 3. Historia<br />
  4. 4. Historia<br /><ul><li>Originalmente llamado Postgres
  5. 5. Se creó por un profesor de ciencias de la computación llamado Michael Stonebraker
  6. 6. Comenzó en 1986 como un proyecto de seguimiento a su predecesor, Ingres, ahora propiedad de Computer Associates. 
  7. 7. El nombre de Postgres por lo tanto juega fuera de su antecesor (como en "después de Ingres"). 
  8. 8. 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.
  9. 9.  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.</li></li></ul><li>Historia<br /><ul><li>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. 
  10. 10. Control de concurrencia multiversión (MVCC). Tabla de nivel de bloqueo fue sustituido por un sistema de control de concurrencia multiversión sofisticado,
  11. 11. 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.
  12. 12. 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%.</li></li></ul><li>Historia<br />Los cuatro años siguientes (versiones 7.0 a 7.4) trajo el registro de escritura anticipada (WAL), esquemas de SQL, <br />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. <br />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.<br />
  13. 13. Herramientas de diseño<br />
  14. 14. pgAdmin III<br />MS Windows, GNU / Linux, FreeBSD, Mac OS X, OpenBSD, Solaris<br />Administración<br />pgAdmin 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.<br />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.<br />PgAccess<br />La mayoría de las plataformas<br />ERD<br />La 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)<br />PgAccess no se ha mantenido activa durante algún tiempo.<br />Herramientas de diseño<br />
  15. 15. phpPgAdmin<br />basado en el navegador, requiere servidor web<br />Administración<br />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).<br />OpenOffice.org<br />Windows, Linux, Solaris<br />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.<br />Herramientas de diseño<br />
  16. 16. The Red Hat Database Graphical Tools, RHDB Administrator and Visual Explain<br />Xpg: Java PostgreSQL client<br />Mergeant<br />TOra, an Oracle tool with some PostgreSQL support<br />KNoda<br />PGInhaler<br />SQuirreL<br />AnySQL Maestro<br />SQL Workbench/J<br />PostgreSQL PHP Generator<br />WaveMaker Ajax GUI Design Tool<br />Druid III<br />Power*Architect<br />RISE - Model Driven Development using ERD / UML<br />Herramientas de diseño<br />
  17. 17. Características PostgreSQL<br />
  18. 18. Características_Generales<br /><ul><li>Es una base de datos 100% ACID
  19. 19. Integridad referencial
  20. 20. Tablespaces
  21. 21. Nestedtransactions (savepoints)
  22. 22. Replicación asincrónica/sincrónica / Streamingreplication - Hot Standby
  23. 23. Two-phasecommit
  24. 24. PITR - point in time recovery
  25. 25. Copias de seguridad en caliente (Online/hotbackups)
  26. 26. Unicode
  27. 27. Juegos de caracteres internacionales
  28. 28. Regionalización por columna
  29. 29. Multi-VersionConcurrency Control (MVCC)
  30. 30. Multiples métodos de autentificación
  31. 31. Acceso encriptado via SSL
  32. 32. Actualización in-situ integrada (pg_upgrade)
  33. 33. SE-postgres
  34. 34. Completa documentación
  35. 35. Licencia BSD</li></li></ul><li>Funciones/procedimientos almacenados (storedprocedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl<br />Bloques anónimos de código de procedimientos (sentencias DO)<br />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<br />Soporta el almacenamiento de objetos binarios grandes (gráficos, videos, sonido, ...)<br />APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros.<br />Programacion Desarrollo<br />
  36. 36. SQL92,SQL99,SQL2003,SQL2008<br />Llaves primarias (primarykeys) y foráneas (foreignkeys)<br />Check, Unique y Notnullconstraints<br />Restricciones de unicidad postergables (deferrableconstraints)<br />Columnas auto-incrementales<br />Indices compuestos, únicos, parciales y funcionales en cualquiera de los metodos de almacenamiento disponibles, B-tree, R-tree, hash ó GiST<br />Sub-selects<br />Consultas recursivas<br />Funciones 'Windows'<br />Joins<br />Vistas (views)<br />Disparadores (triggers) comunes, por columna, condicionales.<br />Reglas (Rules)<br />Herencia de tablas (Inheritance)<br />Eventos LISTEN/NOTIFY<br />SQL<br />
  37. 37. PostgreSQL se distribuye bajo la licencia de PostgreSQL , una licencia Open Source liberal, similar a las licencias BSD o MIT.<br />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. <br />Licencia<br />
  38. 38. Limites<br />
  39. 39. Los requerimientos mínimos para instalar PostgreSQL son:. 8 megabytes de RAM<br />. 30 megabytes de espacio en disco para el codigo fuente<br />. 5 megabytes de espacio en disco para la instalación de los ejecutables<br />. 1 megabyte extra para las bases de datos básicas<br />Requerimentos<br />
  40. 40. PostgreSQL ofrece muchas ventajas para su empresa o negocio en los sistemas de bases de datos.<br />La inmunidad a un exceso de despliegue<br />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.<br />Mejor soporte de los proveedores de propiedad<br />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.<br />Importante ahorro en los costes de personal<br />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.<br />Ventajas<br />Fuente: http://www.postgresql.org<br />
  41. 41. La legendaria confiabilidad y estabilidad<br />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.<br />Extensible<br />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. <br />Multiplataforma<br />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. <br />Diseñada para entornos de alto volumen<br />Utilizamos una estrategia de almacenamiento de múltiples filas de datos llamada MVCC para PostgreSQL extremadamente sensible en ambientes de alto volumen. <br />Interfaz gráfica de usuario de diseño de bases de datos y herramientas de administración<br />Hay muchas herramientas de alta calidad GUI disponibles para PostgreSQL tanto de desarrolladores de fuente abierta y los proveedores comerciales.<br />Ventajas<br />Fuente: http://www.postgresql.org<br />
  42. 42. Conexión Con Lenguajes<br />
  43. 43. Php<br />PHP<br /><?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)?>-----------------------------------------------------------------<br /><?php<br />include 'database.php';<br />class Query<br />{ functionget_people()<br />{$conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST);<br />$people=null;<br /> if ($conn) { $result = pg_query($conn, "SELECT * FROM people");<br /> <br />if (pg_num_rows($result)>0)<br />{while ($row = pg_fetch_row($result)) {<br /> <br />$people[$row[0]]['id']=$row[0];<br />$people[$row[0]]['fullname']=$row[1];<br />$people[$row[0]]['address']=$row[2];<br /> }<br />else<br />{echo "Conexión Erronea";<br />exit;<br />}<br />return $people;<br />}<br />functionadd_people($fullname, $address)<br />{<br />$conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST);<br /> <br /> if ($conn) {$result = pg_query($conn, "INSERT INTO people (fullname,address) VALUES('$fullname','$address')");<br />}<br />else<br />{<br />echo "Conexión Erronea";<br />exit;<br />}<br /> }<br /> }<br />?><br />  <br /> <br /> <br /> <br />
  44. 44. import java.sql.*;<br />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″;<br />try{Class.forName(driver);Connection con = DriverManager.getConnection(connectString, user , password);Statement stmt = con.createStatement();<br />ResultSetrs = stmt.executeQuery(“SELECT * FROM cabecera_trabajo”);<br />while (rs.next()){System.out.println(“CEDULA ” + rs.getString(“cedula_cliente”));}<br />stmt.close();con.close();<br />}<br />catch ( Exception e ){System.out.println(e.getMessage());}}}<br />Java<br />
  45. 45. C#<br />using System;<br />using Npgsql;<br />// namespace conexion{ <br />class Postgre {<br /> public NpgsqlConnectiondbcon; <br /> public void conectar() { <br /> string con = "Server=127.0.0.1;"+ "Port=5432;"+ "User Id=tu_usuario;"+"Password=tu_password;"+ "Database=ejercicio;"; <br />dbcon = new NpgsqlConnection(con); <br />dbcon.Open(); } <br />public void ejectuar(string query){ <br />NpgsqlCommand command = dbcon.CreateCommand();<br />command.CommandText = query; <br />command.ExecuteReader(); } public void desconectar(){ <br />dbcon.Close();} <br />public static void Main(string[] args){ try{ Postgreconexion; <br />conexion = new Postgre(); <br />conexion.conectar(); <br />Console.WriteLine("Conexión exitosa"); <br />string query = "INSERT INTO usuarios VALUES ('C01','Juan','Perez');"; <br />conexion.ejectuar(query); <br />Console.WriteLine("Se ingreso el dato satisfactoriamente"); <br />}<br /> catch(NpgsqlException error){ <br /> string mensaje = error.Message;<br />Console.WriteLine(mensaje); } } }<br />
  46. 46. Apple ha eliminado a MySQL de la última versión de Mac OS X Server y en su lugar ha puesto a PostgreSQL.<br />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.<br />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.<br />Porque Apple usa esta BD<br />
  47. 47. Comparación Del Mercado<br />

×