1. UNIVERSIDAD CIENTÍFICA DEL SUR
FACULTAD DE INGENIERIA DE SISTEMAS
Introducción
El Sistema Gestor de Bases de Datos Relacionales Orientadas a Objetos conocido como
PostgreSQL está derivado del paquete Postgres escrito en Berkeley. Con cerca de una
década de desarrollo tras él, PostgreSQL es el gestor de bases de datos de código abierto
más avanzado hoy en día, ofreciendo control de concurrencia multi-versión, soportando
casi toda la sintaxis SQL (incluyendo subconsultas, transacciones, tipos y funciones
definidas por el usuario), contando también con un amplio conjunto de enlaces con
lenguajes de programación (incluyendo C, C++, Java, perl, tcl y python).
Características de PostgreSQL
Como ya comentamos anteriormente, PostgreSQL está considerado como la base de
datos de código abierto más avanzada del mundo. PostgreSQL proporciona un gran
número de características que normalmente sólo se encontraban en las bases de datos
comerciales tales como DB2 u Oracle. La siguiente es una breve lista de algunas de esas
características, a partir de PostgreSQL 7.1.x.
DBMS Objeto-Relacional
PostgreSQLaproximalosdatosa unmodeloobjeto-relacional,yescapazde manejar
complejasrutinasyreglas. Ejemplosde suavanzadafuncionalidadsonconsultasSQL
declarativas,control de concurrenciamulti-versión,soportemulti-usuario,
transactions,optimizaciónde consultas,herencia,yarrays.
Altamente_Extensible
PostgreSQLsoportaoperadores,funcionesmétodosde accesoytiposde datos
definidosporel usuario.
Soporte_SQL_Comprensivo
PostgreSQLsoportalaespecificaciónSQL99e incluye característicasavanzadastales
como lasuniones(joins) SQL92.
IntegridadReferencial
BASE DE DATOS RELACIONAL
MATERIAL DIDÁCTICO
2. Taller de base de datos Ing. Elio Leguía Loayza
PostgreSQLsoportaintegridadreferencial,lacual esutilizadaparagarantizarla validez
de losdatos de la base de datos.
API Flexible
La flexibilidaddel APIde PostgreSQLhapermitidoalosvendedoresproporcionar
soporte al desarrollo fácilmente parael RDBMSPostgreSQL.Estasinterfacaesincluyen
ObjectPascal,Python,Perl,PHP,ODBC,Java/JDBC,Ruby,TCL,C/C++, y Pike.
LenguajesProcedurales
PostgreSQLtiene soporte paralenguajesproceduralesinternos,incluyendoun
lenguaje nativodenominadoPL/pgSQL.Este lenguajeescomparable al lenguaje
procedural de Oracle,PL/SQL.Otra ventajade PostgreSQLessuhabilidadparausar
Perl,Python,oTCL como lenguaje procedural embebido.
MVCC
MVCC,o Control de ConcurrenciaMulti-Versión(Multi-VersionConcurrencyControl),
esla tecnologíaque PostgreSQLusapara evitarbloqueosinnecesarios.Si algunavezha
usadoalgúnDBMS con capacidadesSQL,tal comoMySQL o Access,probablemente
habrá notadoque hay ocasionesenlasunalecturatiene que esperarparaaccedera
informaciónde labase de datos.La esperaestáprovocadapor usuariosque están
escribiendoenlabase de datos.Resumiendo,el lectorestábloqueadoporlos
escritoresque estánactualizandoregistros.
Mediante el usode MVCC, PostgreSQLevitaeste problemaporcompleto.MVCCestá
consideradomejorque el bloqueoanivel de filaporque unlectornuncaesbloqueado
por un escritor.Ensu lugar,PostgreSQLmantiene unarutaa todas lastransacciones
realizadasporlosusuarios de labase de datos.PostgreSQLescapaz entoncesde
manejarlosregistrossinnecesidadde que losusuariostenganque esperaraque los
registrosesténdisponibles.
Cliente/Servidor
PostgreSQLusauna arquitecturaproceso-por-usuariocliente/servidor. Estaessimilar
al métododel Apache 1.3.x para manejarprocesos.Hayun procesomaestroque se
ramificapara proporcionarconexionesadicionalesparacadacliente que intente
conectar a PostgreSQL.
Psql
La herramienta para trabajar en consola o en modo línea de comandos con PostgreSQL
es psql. En este modo tenemos una herramienta completa para poder manipular las
bases de datos, Desde crear hasta consultas, funciones, etc. Este programa cuenta con
ayuda en línea, por medio de la instrucción ?, para los comandos a psql y h para
examinar la sintáxis de las instrucciones de SQL.
3. Taller de base de datos Ing. Elio Leguía Loayza
Meta-Comandos
Psql acepta un conjunto de meta-comandos, los cuales son iniciados por el
caracter "". Este comando se executa por el promp psql,.
Algunos meta-comandos útiles:
l: lista de todas las bases de dados existentes
d tabla: muestra todas as columnas de la realcion
h [comando]: ayuda relativa al comando
i fichero: Para ejecutar un script desde un archivo
o fichero: Los resultados producidos por la consulta son redireccionados
hacia un archivo
?: ayuda sobre los meta-comandos
Ingresando apsql
Después de indicar la clave nos muestra la siguiente ventana de consola.
4. Taller de base de datos Ing. Elio Leguía Loayza
Aquí podemosejecutartodaslasinstruccionesporejemplo:
Crear una base de datos:
Postgres=#CREATE DATABASE miBase;
Eliminar una base de datos:
Postgres=#DROP DATABASE miBase;
Usar la base de datos creada:
Postgres=# c miBase;
Cargar un Script de instrucciones que estanguardadas enun archivo:
Postgres=# i instrucciones.txt;
El entorno pgAdmin III
pgAdmin III es una aplicación gráfica para gestionar el gestor de bases de datos
PostgreSQL, siendo la más completa y popular con licencia Open Source. Está diseñado
para responder a las necesidades de todos los usuarios, desde escribir consultas SQL
simples hasta desarrollar bases de datos complejas. El interfaz gráfico soporta todas las
características de PostgreSQL y facilita enormemente la administración. La aplicación
también incluye un editor SQL con resaltado de sintaxis, un editor de código de la parte
del servidor, un agente para lanzar scripts programados, soporte para el motor de
replicación Slony-I y mucho más. La conexión al servidor puede hacerse mediante
conexión TCP/IP o Unix Domain Sockets (en plataformas *nix), y puede encriptarse
mediante SSL para mayor seguridad
5. Taller de base de datos Ing. Elio Leguía Loayza
Ingresandoa pgAdmin III
Nosmuestrala siguientepantalla
Despuésde colocarla contraseñaque se pusoal momentode instalarPostgreSQLoal crear
usuarios.
Doble clicpara
conectar al servidor
6. Taller de base de datos Ing. Elio Leguía Loayza
Seguidamente si todomarchabiennospresentael entornode gestionde labase de datosen
POstgreSQL
Una vez creadola base de datos Ingresamosal administradorde ConsultasSQL
Haciendoclicenel icono
Mostrando lasiguiente ventana
Botónderecho
para crear base de
datos
7. Taller de base de datos Ing. Elio Leguía Loayza
En estaventanapodemosingresarcualquiertipode instrucciónSQL
Instrucciones SQL
si usamosel entornopgAdminIIIparacrear nuestrabase de datoses bastante simple porque
el pgAdminIIIse encargade generarel códigoSQLnecesariopara crear nuestrabase de datos
tal comose vioanteriormente
Creando base de Datos (CREATE DATABASE)
Para crear la base de datos necesitamos utilizar la siguiente instrucción:
CREATE DATABASE nombreBD
Donde nombreBD es el nombre de la base de datos que vamos a crear
Si quisiéramos crear la base de datos personalizado
CREATE DATABASE nombreBD
WITH OWNER = postgres
ENCODING = 'LATIN1'
TABLESPACE = pg_default;
8. Taller de base de datos Ing. Elio Leguía Loayza
Importante:
Para crear nuestra base de datos debemos considerar que debe almacenar todos los
caracteres de nuestro idioma, para esto indicamos al momento de crear la base de
datos: ENCODING=’LATIN1’
Eliminando base de datos (DROP DATABASE)Para
eliminarunabase de datosutilizamoslainstrucción
DROP DATABASE miBase
Donde miBase eslabase de datosque queremoseliminar
Tipo de datos
Los tipos de datos más relevantes en Postgres definidos por el standard SQL3 se
muestran en la siguiente tabla
Tipos de datos del estándar SQL3 en PostgreSQL
Tipo en Postgres Correspondiente enSQL3 Descripción
bool Boolean valor lógico o booleano (true/false)
char(n) character(n) cadena de carácteres de tamaño fijo
date Date fecha (sin hora)
float8 real,double precision número de punto flotante de doble
precisión
int2 Smallint entero de dos bytes con signo
int4 int,integer entero de cuatro bytes con signo
int4 decimal(87#87) número exacto con 88#88
int4 numeric(87#87) número exacto con 89#89
money decimal(9,2) cantidad monetaria
time Time hora en horas,minutos, segundos y
centésimas
varchar(n) character varying(n) cadenade carácteresde tamaño
variable
9. Taller de base de datos Ing. Elio Leguía Loayza
Creando tablas
Luegode crear nuestrabase de datosnos disponemosyaacrear lastablas relacionadas
Por ejemplos
10. Taller de base de datos Ing. Elio Leguía Loayza
Se ejecutautilizandolateclaF5o hacer clicen
Insertando datos a las tablas
Los datosde tipotextoseachar o varchar se debenponerentre apostrofespor
ejemplo:‘Lima’,‘Rivera’,‘001’,etc
Los de tipofechatambienentre apostrofes
Los de tiponuméricose colocantal cual,ejemplo:12435, 2345.56, etc
Sintaxis para Insertar datos
Por ejemplosinsertandodatosala tabladistrito
INSERT INTOdistritoVALUES(‘01’,’LIMA’);
INSERT INTOdistritoVALUES(‘02’,’ANCON’);
INSERT INTOdistritoVALUES(‘03’,’LOSOLIVOS’);
Para indicarla relación
con distrito
Para indicarla clave primaria
11. Taller de base de datos Ing. Elio Leguía Loayza
Insertandodatosa latabla alumno
INSERT INTOalumnoVALUES(‘001’,’Rivas’,’Quintana’,’Cesar’,’02’);
INSERT INTOalumno VALUES(‘002’,’Castro’,’Buleje’,’Maria’,’01’);
Notar que para indicarunainstruccióndebe terminarenpuntoycoma (;)
Operadores de comparación
Operator Description
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= Igual
<> o != diferente
Operadores Lógicos
AND: Para que el resultado sea verdadero, ambos deben ser verdaderos.
OR: Cualquierade lostérminosdebeserverdaderoque el resultadoseaverdadero
NOT: Si esverdaderoel resultadoesfalsooviceversa
Ejemplos
3>4 AND4<10: el resultadoesFalso
4>3 AND6<8 el resultadoesVerdadero
3>4 OR 4<10: el resultadoesVerdadero
4>3 OR 6<8 el resultadoesVerdadero
12. Taller de base de datos Ing. Elio Leguía Loayza
Actualizando datos de las tablas (UPDATE)
Para actualizarlosdatos de lastablasse usa lasiguiente instrucción:
UPDATE miTabla SET campo1=valor1, campo2=valor2,...
Ejemplos
UPDATE distritoSET distrito=’LOSOLIVO’
En el ejemplosanteriorse vaa cambiar todoslosvaloresde latabla distritopor‘LOSOLIVOS’.
OJO:debemostenercuidadoal actualizarde estaformadebidoaque se actualizarátodala
columnacon el mismovalor
Si deseamoscambiarunregistrosolamente tendríamosque utilizarunacondiciónlógicacomo
se va a indicara continuación
Uso de WHERE para la actualización condicional
Ejemplocambiarel nombre del alumnoCastroBulejeMariapor Marta
UPDATE alumno SET nombre=’Marta’ WHEREidalumno=’002’
Eliminar registros a las tablas (DELETE)
Para eliminartodoslosregistrosde unatabla
Ejemploeliminartodoslosregistrosde latabladistrito
DELETE FROM miTabla
Uso de WHERE para la eliminacióncondicional
Si deseamoseliminarsololosregistrosque cumplenunacondición
DELETE FROM miTabla WHERE condición
13. Taller de base de datos Ing. Elio Leguía Loayza
EjemploEliminartodalafiladel alumnoRivasQuintanaCesar
DELETE FROM alumnoWHERE idalumno=’001’
Conclusiones
Vemosclaramente que PostgreSQLesunmotor de base de datos simple de usarcuyas
instruccionesde consultaSQLsonlosmismosque para otrosmotores.
Se puede agregardatos,actualizar,eliminar,etcconlasmismasinstruccionesque se pudieron
utilizarenotromotor de base de datos por ejemploSQLServeroMySQL
Bibliografía
R. Elmasri,S.B. Navathe.“Fundamentosde Sistemasde Basesde
Datos”. 3aedición,Addison-WesleyEd. [QA76.9.D3E4618].
T. Connolly,C.Begg,A. Strachan.“Database Systems”.
Addison-WesleyEd.1997. [QA76.9.D26 C66].
J. C. Worsley,J.D.Drake.“Practical PostgreSQL”.O’Reilly.2002
[QA76.9.D3 W67].
“PostgreSQLDocumentation”,http://www.postgresql.org/docs