Xunta de Galicia


Powered by MediaWiki

Servidores de bases de datos: MySQL e PostgreSQL

As bases de datos son aplicativos especializados en gardar grandes cantidades de información, e devolvela no menor tempo posíbel garantindo a súa integridade e optimizando o rendemento.

Licenzas

MySQL distribúese con dous modelos de licenza: por unha parte, como GNU Public License, version 2.0; e por outra cunha licenza tipo BSD. PostgreSQL distribúese baixo os termos dunha licenza BSD.

Resumo das comunidades de desenvolvemento

MySQL apareceu por ver primeira en 1995, e tivo un desenvolvemento continuado ata que foi mercado por Sun Microsystems o 26 de febreiro de 2008. Dende entón dirixe o desenvolvemento e investiu unha grande cantidade de recursos na mellora do aplicativo.

PostgreSQL pertence ao PostgreSQL Global Development Group. O proxecto comezou en 1986, como continuación do Ingres, orixinario de 1977. Considerouse desde o comezo como unha tentativa de aplicación dos principios teóricos da xestión de bases de datos relacionais. A persoa responsábel do proxecto era daquela o seu creador, Michael Stonebraker.

A partires do 1996 o proxecto foi recollido por un grupo de desenvolvedores espallados polo mundo que fixeron practicamente unha reescritura de todo o código, e o volvérono fundar co nome actual, PostgreSQL. Nos anos seguintes o parque de persoas usuarias foise estendendo, chegando ás grandes empresas como Fujitsu, que tamén achegaron moitas melloras para o código.

Instalación e configuración de MySQL

O paquete que temos que instalar chámase “mysql-server”. Podémolo instalar con apt-get, dende a liña de ordes; ou co Synaptic, dende o escritorio. Durante o proceso de instalación teremos que darlle un contrasinal ao usuario root da base de datos.

Rematada a descarga e configuración dos paquetes, a base de datos xa esta activa. Podemos comprobar este extremo verificando na lista de procesos do sistema a existencia dun proceso chamado “mysqld”. Para isto escribimos nun terminal:

# ps -A|grep sql 
19448 ? 00:00:00 mysqld_safe 
19572 ? 00:00:00 mysqld 


Os números na primeira columna poden variar, pero os dous procesos están activos.

Uso básico

Xunto co servidor, instalouse un cliente de bases de datos en liña de ordes, chamado “mysql”. Empregando este cliente podemos conectar co servidor e pasarlle mandatos empregando a linguaxe SQL. Tamén podemos empregar calquera cliente gráfico coma os que fornecen os paquetes “mysql-navigator”, ou “gmysqlcc”. En calquera deles teremos que darlle unha serie de datos (enderezo do servidor, usuario e contrasinal) para poder establecer a conexión. O servidor MySQL emprega o porto 3306 de modo predeterminado.

Basesdedatos1.png
Ilustración 1: MySQL Navigator, cliente para a base de datos MySQL

Se empregamos o cliente de liña de ordes, unha sesión normal sería semellante a esta:

# mysql -p 
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 3 
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu) 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 
mysql> show databases; 
+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
+--------------------+ 
2 rows in set (0.00 sec) 

mysql> use mysql; 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 
Database changed 

mysql> show tables; 
+---------------------------+ 
| Tables_in_mysql           | 
+---------------------------+ 
| columns_priv              | 
| db                        | 
| func                      | 
| help_category             | 
| help_keyword              | 
| help_relation             | 
| help_topic                | 
| host                      | 
| proc                      | 
| procs_priv                | 
| tables_priv               | 
| time_zone                 | 
| time_zone_leap_second     | 
| time_zone_name            | 
| time_zone_transition      | 
| time_zone_transition_type | 
| user                      | 
+---------------------------+ 
17 rows in set (0.01 sec) 
mysql> create database novabase; 
Query OK, 1 row affected (0.00 sec) 

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| novabase           | 
+--------------------+ 
3 rows in set (0.01 sec) 


Como vemos, facemos a conexión cos parámetros predeterminados, ou sexa, no servidor local e a persoa usuaria co que estamos logueados, pero co modificador “-p”, para que nos solicite un contrasinal. Despois empregamos os mandatos SQL:

  • “show”, para mostrar as listas de elementos (bases de datos existentes, e táboas dunha delas);
  • “use”, para seleccionar unha base de datos coa que traballar;
  • e “create database” para crear unha base de datos nova.
  • para rematar a conexión, empregamos o comando “quit”.

Sendo MySQL a escolla predeterminada da maioría dos aplicativos web, na maior parte dos casos nas instrucións de instalación habemos atopar secuencias de comandos que teremos que introducir neste intérprete de ordes para crear bases de datos, ou dar permisos ás persoas usuarias.

Basesdedatos2.jpg
Ilustración 2: phpMyAdmin, interface web de acceso á base de datos MySQL

Tamén existen interfaces web para a administración de bases de datos, coma o phpMyAdmin, que se pode instalar nos sistemas Ubuntu co paquete “phpmyadmin”. Trátase dunha aplicación web que emprega PHP e o servidor Apache para nos achegar o contido das bases de datos do MySQL. Durante o seu proceso de instalación temos que especificar que servidor web empregamos (“apache2”). Unha vez instalado, amosa a pantalla de login no url http://servidor/phpmyadmin/, onde “servidor” é o dominio no que temos respondendo o noso Apache.

Instalación e configuración de PostgreSQL

O paquete básico que desencadea a instalación deste motor de bases de datos é “postgresql”. A diferenza doutros servidores, coma os MTA, que só pode haber un no sistema por ser unha funcionalidade básica para as comunicacións internas de procesos e rexistro de actividade, podemos ter instalados dous xestores de bases de datos no mesmo servidor. Aínda que a utilidade práctica desa manobra sexa discutíbel, claro.

Para instalar PostgreSQL empregamos o camiño que máis do noso gusto sexa, ou ben apt-get, ou ben Synaptic. Non hai que responder ningunha pregunta.

Uso básico

Igual que temos o PhpMyAdmin, existe un “pgadmin3”. Podémolo instalar empregando as ferramentas habituais. Trátase dun cliente de escritorio, polo que non precisa de máis engadidos que a propia instalación. Despois da instalación aparecerá unha icona nova no menú “Ferramentas do Sistema”. O programa precisa coñecer os datos de configuración do servidor, e permite almacenar os de varios, para facilitar a xestión de diversas bases de datos en varios servidores. Hai unha imaxe da interface do “pgAdmin III” na Ilustración 3.

Basesdedatos3.png
Ilustración 3: interface do pgAdmin III

Tamén hai un cliente en liña de ordes para esta base de datos. Podemos activalo co comando “psql”.

API ás BB.DD.

API son as siglas do inglés “application program interface”, “interface de programación de aplicativo”, un conxunto de servizos que unha parte dun sistema informático, ou aplicativo, prové a outros. No caso que nos ocupa, as bases de datos e as linguaxes de guións para aplicativos web, fai referencia ás partes da linguaxe de programación de guións que son quen de acceder ás bases de datos.

Aínda que coa instalación de phpmyadmin, xa se instalou, cubrindo as dependencias, cando queiramos montar un servidor para unha aplicación web sen empregar phpmyadmin, vamos precisar dun paquete chamado “php5-mysql”, que inclúe as partes de PHP dedicadas á conexión, consulta e escritura en bases de datos MySQL. O mesmo ocorre no caso de termos que empregar PostgreSQL, que necesitaríamos o paquete php5-pgsql.

Estes dous paquetes non se instalan cando só queremos unha aplicación web con PHP sen acceso a bases de datos, seguindo a norma de deixar o sistema o máis libre que sexa posíbel de compoñentes non necesarios.

Se, pola contra, o noso aplicativo web esta feito en Python, en lugar de en PHP, teríamos que instalar os paquetes “python-mysqldb”, para MySQL; ou “postgresql-plpython-8.3”, para PostgreSQL.

Tanto MySQL como PostgreSQL teñen moito máis de que falar, dende a sintaxe das consultas SQL (a linguaxe que os dous empregan para sacar, meter e modificar información das bases de datos), ata procedementos de copia de seguridade, ou boas prácticas na administración do servidor para garantir o mellor rendemento. Existe abondosa bibliografía específica, e a documentación en liña de calquera dos dous proxectos é excelente. Parte dela pódese atopar nos paquetes “mysql-doc-5.0” e “postgresql-doc”.

Licenza desta guía

Esta guía forma parte da documentación de apoio para a capacitación TIC en SwL e foi elaborada pola empresa TEGNIX para o Centro de Referencia e Servizos de Software Libre de Galiza – Mancomún. Distribúese baixo as condicións dunha Licenza Creative Commons: Recoñecemento-CompartirIgual 3.0