Previous Up Next
Accueil

4.4  Travaux Pratiques – PostgreSQL : Première base de données

4.4.1  Informations pratiques concernant PostgreSQL

Initialisation et démarrage de PostgreSQL

L’initialisation de PostgreSQL consiste à créer un cluster de bases de données de la manière suivante :

/répertoire_des_binaires/initdb -D /répertoire_choisi_pour_la_base

Il faut ensuite lancer le serveur PostgreSQL :

/répertoire_des_binaires/postmaster -D /répertoire_choisi_pour_la_base

Une meilleure solution consiste à lancer le serveur PostgreSQL en tâche de fond et à diriger son flux de sortie vers un fichier (logfile) :

/répertoire_des_binaires/postmaster -D /répertoire_choisi_pour_la_base  > logfile 2>&1 &

La création proprement dite d’une base de données dans le cluster se fait de la manière suivante :

createdb nom_de_la_nouvelle_base

Nous pouvons enfin utiliser l’interface en ligne de commande de PostgreSQL en démarrant un client :

psql nom_de_la_nouvelle_base

Remarque concernant SELinux

Attention, il y a des incompatibilités entre PostgreSQL et SELinux. Si vous rencontrez des problèmes, essayez de désactiver temporairement SELinux (setenforce 0). Cette solution n’est pas la meilleure. Si elle marche, essayez de corriger le problème plus finement et de manière définitive. Par exemple, sous une installation standard de Fedora Core 3, pour corriger le problème, procédez de la manière suivante :

PostgreSQL à l’IUT

À l’IUT, un seul cluster de base de données est créé et disponible pour tous les utilisateurs de PostgreSQL. Une seule base de données est affectée à chaque utilisateur ; son nom étant l’identifiant de l’utilisateur (i.e. nom de login).

Pour créer la base de données, il faut :

Le démarrage du client se fait de la manière suivante :

psql -h nom_serveur -p num_port ma_base identifiant

En salle de TP, nom_serveur est aquanux ; les champs num_port, ma_base et identifiant sont optionnels et inutiles, pour information :

Écriture des commandes sous PostgreSQL

Toutes les lignes de commandes SQL doivent se terminer par un « ; » ! Ce n’est, par contre, pas le cas des méta-commandes dont il est question ci-dessous.

Méta-commandes sous PostgreSQL

Méta-commandesDescription
\?Afficher toutes les méta-commandes
\hAfficher toutes les commandes SQL
\h nom_commandeAide concernant une commande SQL particulière
\dfAfficher toutes les fonctions postgresql
\cd nom_repertoireChanger de répertoire courant
\! nom_commandeExécuter une commande shell
\i nom_fichierLire et exécuter un script SQL
\dAfficher la liste des tables créées
\d nom_tableInformation concernant une table créée
\copy nom_table from nom_fichierRemplissage d’une table à partir d’un fichier texte

4.4.2  Première base de données

  1. Créez votre base de données en utilisant internet Galeon.
  2. Démarrez un client (psql -h aquanux) pour vous connecter à PostgreSQL.
  3. Tapez \? pour afficher la liste des méta-commandes.
  4. Tapez \h CREATE TABLE pour connaître la syntaxe de la commande SQL de création de table.
  5. Créez les tables du schéma relationnel vu en travaux dirigés section 3.5.

    Schéma relationnel :

    N’oubliez surtout pas :

  6. Affichez la liste des tables créées (\d).
  7. Remplissez « à la main », c’est-à-dire en utilisant la commande INSERT INTO, la table cinema en utilisant le tableau 3.16.
  8. Remplissez les tables jouer, film, projection et individu à l’aide des fichiers fournis (jouer.txt, film.txt, projection.txt et individu.txt) en utilisant la méta-commande adéquate (\copy nom_table from nom_fichier).
    Devez-vous respecter un ordre de remplissage des tables ?
    Pourquoi ?
  9. Créez un fichier cinema.txt permettant de remplir la table cinema en respectant le format des fichiers qui vous ont été fournis.
  10. Créez un script SQL (GenBDCine.sql) permettant de régénérer votre base de données. Ce fichier, composé de trois parties, doit permettre de :
    1. effacer chacune des tables ;
    2. créer chacune des tables comme dans l’exercice 5 ;
    3. remplir chacune des tables.
  11. Restaurez votre base de données en utilisant le fichier GenBDCine.sql.
  12. Vous voulez effacer l’acteur John Travolta de la base.
    Quelles opérations sont nécessaires pour mener à bien cet suppression ?
    Réalisez cette suppression.
Remarque –

Pour afficher l’ensemble des n-uplets d’une table, vous pouvez utiliser la commande SQL : SELECT * FROM nom_table.

Base de Données et langage SQL – Laurent Audibert

Previous Up Next