Installation d'un système de gestion base de données

Une base de données est un ensemble d'informations ou données organisées en tableaux afin d'être facilement accessibles, gérées et mises à jour. Un système de gestion de base de données (SGBD) est un logiciel permettant de stocker, manipuler et accéder à ces données.

Deux modèles de bases de données se détachent :
  • les bases de données relationnelles. Elles sont constituées d’un ensemble de tableaux reliés entre eux par des relations. Au sein de ces tableaux, les données sont classés par catégories (ou attributs). Le langage standard pour manipuler ce genre de données est le Structured Query Langage (SQL). Parmi les plus connues, citons SQLite, Oracle, MySQL, MariaDB (fork de MySQL), PostgreSQL et Microsoft SQL Server.
  • les bases de données NoSQL. Plus récentes, elles présentent une architecture distribuée et permettent la manipulation de volumes de données importants. Elles sont en plein essor dans le contexte du Big Data. On retiendra comme logiciels Cassandra, MongoDB, Voldemort, CouchDB et SimpleDB.
Nous détaillons ci-dessous l'installation et l'utilisation des serveurs de base de données MariaDB et PostgreSQL compte tenu de la vaste documentation disponible.

Installation du serveur de base de données MariaDB

MariaDB s'installe via le paquet mariadb-server
apt install mariadb-server


Par défaut, le seul compte utilisateur disponible dans MariaDB est le compte root, non protégé par mot de passe. Ce comportement n’étant pas sécurisé, nous allons lancer un script de configuration: mysql_secure_installation qui permet de :
  • changer le mot de passe au compte root de MariaDB ;
  • empêcher les connexions anonymes ;
  • désactiver les connexions distantes réalisées avec le compte root ;
  • supprimer la base de test.

Pour pouvoir se connecter et administer la base de données du serveur MariaDB (resp. PostgreSQL) depuis un terminal, on installe le client correspondant apt install mariadb-client (resp. apt install postgresql-client)

La connexion à MariaDB (resp. PostgreSQL) s'effectue à l'aide de la commande mariadb -u db_user -D db_name -p (resp. psql -U db_user -d db_name -W)
db_name désigne le nom de la base de données et db_user le nom de l'utilisateur à utiliser.
Il est aussi possible d'utiliser mariadb (resp. psql) en mode non interactif, avec l'option -e : mariadb -u db_user -D db_name -p -e "SQL_expression" (resp. psql -U db_user -d db_name -W -c "SQL_expression"`)

Il est aussi possible d'utiliser l'application web Adminer (anciennement PhpMyAdmin) pour manipuler les bases de données SQL gérées par SQLite, MariaDB et PostgreSQL. Il suffit pour cela de télécharger le fichier adminer.php sur un serveur Web (HTTP+PHP) et d'y faire pointer son navigateur Web.

En général, une application web requiert la création d'un compte utilisateur et d'une base de données dédiée. Ceci peut se faire depuis le client avec les requêtes SQL suivantes
CREATE DATABASE db_name;
CREATE USER 'db_user' IDENFIED BY PASSWORD 'password';
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@localhost IDENTIFIED BY 'password'
FLUSH PRIVILEGES;

db_name désigne le nom de la base de données, db_user le nom de l'utilisateur et password le mot de passe utilisateur.