1. PostgreSQL: utilització i administracióPostgreSQL: utilització i administració
Tema 1: Instal·lació del client de PostgreSQL
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
1 de 14 18/04/16 12:35
2. Objectius i coneixements previs
Objectius
La primera part del curset ens connectarem a PostgreSQL com a clients, en l'arquitectura client-servidor. Per tant l'únic objectiu d'aquest tema és la instal·lació d'alguna eina que ens
permeta connectar com a clients a un determinat servidor.
Concretament seran 3 les eines des de les quals connectar, però no caldrà utilitzar les tres. Aquestes eines són:
psql
pgAdmin
PhpPgAdmin
L'eina recomanada serà PgAdmin. Per tant l'objectiu bàsic d'aquest tema serà instal·lar aquesta eina. També veurem el funcionament de les altres dues, però no insistirem en elles en
aquesta primera part del curset.
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
2 de 14 18/04/16 12:35
3. 1. Instal·lació del client de PostgreSQL: pgAdmin III
Per a poder connectar amb el servidor PostgreSQL ens fa falta el client de PostgreSQL.
Podríem instal·lar-ne un de molt senzill que únicament tinga un programa en forma línia de comandos a més de les llibreries nacassàries. Els programes de línia de comandos són similars a una
terminal ("Símbolo de sistema", en Windows) però en compte de posar qualsevol comando de Sistema Operatiu, escriurem sentències SQL, ens contestarà i estarà esperant a que introduïm una
altra.
Però aquest tipus de programes són molt incòmodes. Ens aniria molt bé un entorn gràfic, on poder consultar l'estructura de les taules, i que ens avise si la sentència SQL és correct, i més ajudes.
Instal·larem l'entorn més habitual per a administrar PostgreSQL (o gestionar senzillament Bases de Dades) que és pgAdmin III. Tindrem l'avantatge que s'instal·la automàticament el client i també
el psql, que és el de línia de comandos, i així igual el podrem veure.
Nota
El lloc on instal·leu el pgAdmin l'heu de decidir vosaltres, si sobre la vostra màquina real (Windows o Linux) o sobre una màquina virtual. Disposeu d'una màquina virtual en els recursos,
per si voleu instal·lar el client en ella.
Jo tinc instal·lat el client de PostgreSQL en la meua màquina real, ja que contínuament estic connectant-me com a client al nostre servidor de l'institut o al meu propi servidor, i així el tinc
més a mà. En canvi el meu servidor el tinc instal·lat en una màquina virtual, així només el pose en marxa quan em fa falta.
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
3 de 14 18/04/16 12:35
4. 1.1 Instal·lació en Linux
Farem la instal·lació més senzilla possible, que és per paquets. No passa res si no tenim l'última versió, no ens donaria tantes ni tantes utilitats extra. El següent vídeo il·lustra la instal·lació
utilitzant el Synaptic:
En definitiva en el vídeo anterior hem la instal·lació habitual per paquets, que ja està en el repositori. La podíem haver fet senzillament amb el comando:
$ sudo apt-get install pgadmin3
En el moment de fer aquestos apunts, l'última versió de pgAdmin III és la 1.20.3, mentre que la instal·lada per paquets és la 1.18.1. Com comentàvem, no passa res. Hem primat la senzillesa en la
instal·lació.
Si teniu una versió anterior d'Ubuntu, i en la instal·lació per paquets s'instal·la una versió anterior, tampoc passa res. Traureu la mateixa funcionalitat que la resta. Ja instal·larem una versió
posterior quan arribem al tema d'administració.
Per a executar-lo anem al menu, o des d'una terminal fem pgadmin3.
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
4 de 14 18/04/16 12:35
5. 1.2 Instal·lació en Windows
La instal·lació de pgAdmin és molt senzilla. Només haurem d'anar amb compte amb la versió triada.
En el moment de fer aquestos apunts, l'última versió és la 1.20.0, però dóna problemes per a instal·lar tant en Windows XP com en Windows 7.
Per tant la versió que s'ha triat ha estat pgAdmin 1.18.1.
El programa s'ha instal·lat en C:Program Files (x86)pgAdmin III1.18 , o similar.
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
5 de 14 18/04/16 12:35
6. 2. Psql
El programa més senzill que podem utilitzar per a connectar-nos amb el servidor i executar les sentències SQL és el PSQL, que senzillament és un intèrpret de sentències SQL on anirem posant
els comandos i ens anirà donant els resultats. És, per tant, prou incòmode, però té l'avantatge de la seua senzillesa i que quasi sempre que tinguem un client de PostgreSQL, podrem utilitzar-lo.
Recordeu que el lloc on està situat és:
En Linux: /usr/bin/psql (en realitat és un enllaç al programa que està en /usr/share/postgresql-common/pg_wrapper). Si en compte de fer fet la instal·lació per paquets en fem una altra,
segurament estarà col·locat en un altre lloc, i seria convenient saber on).
En Windows: C:Program Files (x86)pgAdmin III1.18psql.exe
Si des d'una terminal (i canviant al directori on està el programa en el cas de Windows) executem el programa tal qual, sense posar cap paràmetre intentarà accedir al servidor situat en aquesta
mateixa màquina, com un usuari amb el mateix nom que el usuari de S.O., i a una Base de Dades que es diria igual. Evidentment ha de donar error, ja que el servidor està en una altra màquina, i
segurament l'usuari de Sistema Operatiu no es dirà igual.
Per a connectar-nos al servidor situat en una altra màquina, com distints usuaris, o a bases de dades distintes, haurem de jugar amb les opcions
El format total és el següent:
psql [opcions]...[base-de-dades [usuari]]
En les opcions podem posar, entre altres:
-? ajuda
-d nom_bd nom de la base de dades (no cal posar -d)
-c per a executar tan sols un comando
-l per a llistar les Bases de Dades existents
-h nom nom o adreça del servidor a què ens connectem (per defecte local)
-p port port del servidor a travès del qual ens connectem (per defecte 5432)
-U nom nom de l'usuari
-W per a que ens demane obligatòriament la contrasenya.
Obligatòriament haurem d'utilitzar els paràmetres -U per a posar el nom de l'usuari, i -h per a dir on està el servidor.
En el moment de fer aquestos apunts l'adreça del nostre servidor de dades és 80.35.84.29
Així, per exemple, per a connectar al servidor de l'Institut a un usuari anomenat geo que té contrasenya geo (la contrasenya li la proporcionem quan ens la demane):
psql -h 80.35.84.29 -U geo
tal i com ens mostren les següents imatges, per a Ubuntu i per a Windows:
L'avís (que no error) en el cas de Windows és per dir-nos que la codificació de caràcters ens pot funcionar malament, però no ens donarà cap problema, únicament que els caràcters accentuats, ç,
ñ, ... poden eixir mostrar-se malament
A partir d'ara ja podrem posar les sentències SQL, que poden ocupar més d'una línia i que han de finalitzar per ;
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
6 de 14 18/04/16 12:35
7. Amb les tecles de moviment de cursor podem anar a les sentències anteriors (però només una línia) per a poder modificar alguna cosa i tornar a executar.
A banda podrem posar alguns comandos (ja dins de psql):
c nom_bd per a connectar a una altra Base de Dades
e invoca un editor (per defecte vi en Linux i notepad en Windows) per editar l'última sentència
l llista de les Bases de Dades existents
d llista de les taules
d taula descripció de la taula
g [fitxer] executa l'actual sentència i, en tot cas, envia el resultat al fitxer
i fitxer executa la sentència (o sentències) del fitxer
w fitxer guarda al fitxer la sentència del buffer
q eixir de psql
Encara que normalment en una consulta SQL s'ha de posar la taula o taules que proporcionen les dades, PostgreSQL permet no posar cap origen de dades. Això ens permetrà fer consultes per a
fer càlculs utilitzant els distints operadors i funcions.
Per exemple, per a que ens done la data d'avui:
SELECT NOW();
En la imatge s'ha fet una sentència per a veure el número de files de la taula INSTITUTS, i una altra per veure la data i hora del sistema. No importa si executem en Ubuntu o en Windows, el
resultat serà el mateix (tret de la visualització incorrecta de caràcters en Windows, en tot cas):
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
7 de 14 18/04/16 12:35
8. 3. Entorns de treball
Una vegada hem vist psql, i hem pogut comprovar que és molt àrid i incòmode, s'imposa trobar altres entorns que ens puguen permetre treballar de forma més còmoda.
Dos seran els entorns que ens plantejarem:
PgAdmin III: és un entorn molt universal, que s'ha imposat molt per a poder treballar còmodament amb PostgreSQL. S'ha d'instal·lar en el client.
PhpPgAdmin: és un entorn molt similar a phpMyAdmin, que serveix per utilitzar i administrar MySql. PhpPgAdmin és un conjunt de pàgines php que permeten utilitzar i administrar
PostgreSQL. Com és un conjunt de pàgines php ha d'haver instal·lat també un servidor web. Encara que serveix també per a administrar, nosaltres només ho veurem ací per a utilitzar-lo com
a clients, com ausuaris normals. I no instal·larem res, sinó que suposarem que està ja instal·lat (segurament en la mateixa màquina on està PostgreSQL), i des de qualsevol màquina
accedirem via web (amb un navegador).
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
8 de 14 18/04/16 12:35
9. 3.1 PgAdmin III
Ens permetrà disposar d'editors SQL i de procediments molt més agradables que els vistos amb psql, a banda de la possibilitat de poder administrar la Base de Dades des d'ací.
Podem cridar el programa des d'una terminal, però sempre serà més còmode buscar-lo amb el ratolí:
En Ubuntu: Aplicacions→ Programació→ pgAdmin III.
En Windows: Inicio → Todos los programas →pgAdmin III 1.18→ pgAdmin III.
Ja sense fer distinció entre Ubuntu i Linux, perquè pgAdmin funcionarà igual, mirem quines propietats li hem de donar a una nova connexió. Ho teniu en la següent imatge:
Li hem especificat:
Nom: Nom que li donarem a la connexió que estem creant . Podeu posar el que vulgueu.
Ordinador central: nom o IP del servidor a que ens connectem. Si ens conectem al servidor de l'Institut, l'adreça és 80.35.84.29
Port: port al qual ens connectem. El port per defecte de PostrgreSQL és 5432.
BBDD de manteniment: Ho podem veure com la Base de Dades a la qual ens connectarem. Totes les proves les farem sobre una Base de Dades anomenada geo.
Nom d'usuari: Per a les proves ens connectarem com a usuari geo.
Contrasenya: També serà geo.
Mireu que podríem guardar la contrasenya, i així no caldrà posar-la cada vegada, però en l'exemple hem optat per no posar-la. Les altres opcions no les toquem.
Una vegada hem entrat, podrem navegar pels objectes en la part de l'esquerra. Per exemple ens interessarà veure les taules que hi ha creades en la Base de Dades. Aleshores entrem dins de la
connexió que hem fet, dins de la Base de Dades geo (les altres Bases de Dades les podem veure, però en principi no entrar en elles; en la part d'administració veurem com permetre aquestes
connexions). En la Bse de Dades, entrem en Esquemes, concretament en l'esquema Public. Ahí és on veurem tots els objectes d'aquesta Base de Dades, i veurem en l'apartat de taules que
aquesta Base de Dades té 3 taules. En la imatge estem situats damunt de la taula poblacions. En la part superior veurem que alguns botons estan activats, i uns altres no, depenent de les accions
que es puguen fer. El significat d'alguns d'ells s'explica en la imatge:
El que més ens interessa és l'execució de sentències SQL. Si apretem al botó corresponent se'ns obrirà una altra finestra on podrem escriure còmodament la sentència (amb colorins: blau per a
paraules reservades, blau claret per a constants numèriques, moradet pera constants alfanumèriques, ...), i la podrem guardar o obrir una ja guardada, ... Aquesta imatge explica les parts més
importants:
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
9 de 14 18/04/16 12:35
10. També podrem crear taules utilitzant l'assistent. A banda de ser més o menys còmode que recordar SQL, té l'avantatge de poder triar el tipus de les columnes entre tots els tipus disponibles en
PostgreSQL. El següent vídeo mostra el procés de crear una taula senzilla. Però no ens oblidem que és un assistent que ens ajuda a crear la sentència SQL. Al final es veu que tot és SQL. Està
fet sobre Windows (per mostrar que és exactament igual executar sobre Ubuntu que sobre Linux). Si us decidiu a executar la sentència de creació, recordeu després esborrar la taula, ja que com
tots ens estem connectant com el mateix usuari, tots la veuríem. Encara que no passa res, ja que geo és una Base de Dades de prova.
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
10 de 14 18/04/16 12:35
11. 3.2 PhpPgAdmin
ATENCIÓ
No podreu provar ara PhpPgAdmin, ja que en el moment de fer els apunts no tenim operatiu el nom xot.ieselcaminas.org , i l'adreça 80.35.84.29 en el port 80 està redirigida cap a un
altre servidor. Ho pose únicament de forma il·lustrativa, tal i com ens connectem des de dins de l'Institut i com ens connectàvem quan sí que estava operativa. Treballarem amb
PhpPgAdmin en el tema 4.
Ara no ens plantejarem instal·lar PhpPgAdmin. Tan sols veurem la seua utilització com a clients
Suposarem que PhpPgAdmin està instal·lat en una màquina on ha d'haver també un servidor web, lògicament. Aquesta màquina podria ser la mateixa on està instal·lat PostgreSQL o una altra:
això no ens preocupa com a clients. Tan sols que podem fer la connexió, i que podem consultar les taules i fer sentències SQL de forma còmoda.
Sobre un navegador, posaríem l'adreça la del servidor. Aquest adreça web és:
Des de dins de l'Institut: 172.16.1.2/phppgadmin
Des de fora de l'Institut: xot.ieselcaminas.org/phppgadmin
En la següent imatge podem comprovar com ens està contestant phpPgAdmin:
En quant punxem a PostgreSQL a l'esquerra ens demanarà usuari i contrasenya que s'ha de connectar (per exemple geo / geo ). Una vegada connectats ens eixirà una llista de les Bases de
Dades existents en el servidor. Encara que vegem que hi ha moltes dades, segurament només podrem accedir plenament a la nostra (en l'exemple la Base de Dades que s'anomena igual que
l'usuari: geo)
Dins de la nostra Base de Dades, podrem navegar fins trobar els objectes dins de l'únic esquema que hi ha. Podrem veure les taules, vistes, ... Si ens situem en una taula, per exemple, podrem
veure la seua estructura:
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
11 de 14 18/04/16 12:35
12. Per a veure les dades, apretem a Navega, baix dels noms dels camps:
I per últim, per a poder executar les sentències SQL, apretem a SQL que està en el menú de dalt a la dreta (sempre està visible). S'obrirà una altra finestra on podrem escriure (o copiar) la
sentència. En quant apretem al botó d'executar, s'executarà en la finestra principal, però sense tancar la de SQL, cosa que ens permetrà per exemple modificar la sentència i tonar-la a executar:
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
12 de 14 18/04/16 12:35
13. PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
13 de 14 18/04/16 12:35
14. Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial SenseObraDerivada 2.5
PostgreSQL: utilització i administració http://127.0.0.1:51235/temp_print_dirs/eXeTempPri...
14 de 14 18/04/16 12:35