Vous appréciez mon travail ? Je serais ravi de prendre un café !

Vous prenez du plaisir à lire mes articles ? Vous apprenez de nouvelles choses ? Je serais ravis que vous supportiez mon travail avec une petite participation

1 café Merci, vous financez ma dose quotidienne de théïne (oui, en vrai je ne bois pas de café).
5 cafés Génial, ça couvre mes frais de serveur mensuels.
10 cafés Fantastique, avec ça je peux investir dans du matériel et approfondir mes connaissances.
BazinGa's - Tips & tuto IT

PostgreSQL – Tout comprendre – 1/3 – Introduction aux bases de données

Introduction

Vous avez d’importantes quantités de données mais trouvez que leur gestion avec Excel ne fait pas très pro ? Vous aimeriez utilisez toute la performance du SQL mais ne connaissez rien à ce langage ?

Vous n’avez cependant pas envie de lire 200 pages de texte avant de pouvoir commencer à toucher au code ni de devoir en lire 200 de plus pour commencer à vous débrouiller seuls ?

Ce cours est donc fait pour vous.

En quelques pages vous apprendrez à organiser vos données avec PostgreSQL tout en découvrant le fonctionnement de ce système de base de données. A la fin de ce cours, vous maitriserez le langage SQL, un langage plus facile qu’on ne le pense, grâce à l’apprentissage par l’exemple : une méthode simple et intuitive pour être rapidement autonome.

Pourquoi PostgreSQL ? Parce qu’il est libre, performant, aussi à l’aise avec de petit jeux de données qu’avec les bases les plus complexes et facile à prendre en main. Il existe en outre une immense communauté sur internet qui sera à même de répondre à toutes vos questions.

Vous allez voir qu’en plus d’apprendre à organiser vos données, nous aborderons les notions de gestion de serveur et des droits d’accès à vos données. N’ayez pas peur, Vous serez accompagné dans toutes les étapes pour mettre en place votre système de gestion de base de données (ou SGBD).

Si vous êtes déjà à l’aise avec PostgreSQL mais que vous souhaitez vous concentrer sur le SQL, sautez directement à la partie « Vade-mecum SQL ».

Si vous vous sentez près alors allons-y !!

Qu’est-ce qu’une base de données ?

Une base de données est un outil permettant de stocker et de retrouver l’intégralité de données brutes ou d’informations en rapport avec un thème ou une activité ; celles-ci peuvent être de natures différentes et plus ou moins reliées entre elles.

Wikipedia

Voici quelques définitions pour détailler cette définition.

Base De Données : BDD

Une base de données (ou BDD) est en fait un conteneur permettant de stocker toutes sortes d’informations et de les lier entres elles.
Par exemple : prenez un document texte dans lequel vous écrivez une liste de mots. C’est une base de données qui vous permet de stocker de l’information.

Les clusters ou fermes

Les « clusters » ou « fermes » sont des groupes de BDD. Au sein de PostgreSQL, vous pouvez avoir plusieurs BDD en parallèle dans une seule installation, on dira alors que vous avez un cluster de BDD.

Système de Gestion de Base de Données : SGBD

On appel SGBD (système de gestion de base de donnée) le logiciel stockant et maintenant la BDD. Un SGBD va ainsi nous permettre de manipuler les données ; c’est-à-dire créer, lire, mettre à jour et supprimer la donnée.
Par exemple : le logiciel permettant de lire le document texte dans l’exemple précédent. Ce logiciel vous permet d’ajouter des mots, de les lire, de les modifier et de les supprimer.

Le SGBD va également nous permettre de gérer les droits d’accès aux données en lien avec les utilisateurs.

PostgreSQL est un SGBD.

Système de Gestion de Base de Données Relationnelles : SGBDR

C’est un SGBD qui ajoute une dimension relationnelle entre les données stockées. Il va permettre de créer un lien entre les différentes données stockées dans la BDD par l’utilisation de tableaux. Ainsi :

  • Une BDD peut contenir une ou plusieurs groupe(s) de données, on parlera de « table(s) » ou « relation(s) ».
  • Chaque « table » peut contenir une ou plusieurs « lignes » que l’on nommera « enregistrement(s) » (on peut également utiliser le terme de « n-uplet »).
  • Chaque « enregistrement » peut être divisé en une ou plusieurs colonne(s) : les « attributs », séparant les données entre-elles.

Une table :

Colonne AColonne BColonne C
Enregistrement 1 Attribut 1 Enregistrement 1 Attribut 2 Enregistrement 1 Attribut 3
Enregistrement 2 Attribut 1 Enregistrement 2 Attribut 2 Enregistrement 2 Attribut 3

Grâce à cette organisation, la donnée est structurée et on voit rapidement le lien qu’il peut y avoir entre les attributs d’un même enregistrement ainsi qu’entre les différents enregistrements d’un même attribut.

L’intérêt de ce format réside dans la possibilité d’effectuer de l’algèbre relationnel. Alors je vous arrête tout de suite, nous n’allons pas nous lancer dans un cours de math. L’algèbre relationnel utilise les opérateurs suivants :

Opérateurs unaires (un seul argument)

La sélection : on affiche les enregistrements de notre BDD qui correspondent à un critère.
Par exemple : tous les enregistrements dont l’attribut 2 = une valeur particulière.

La projection : on n’affiche que certains attributs d’une série d’enregistrement de notre BDD.
Par exemple : seules les attributs 1 et 2 de nos enregistrements.

Le renommage : on modifie le nom des attributs. Ceci ne change rien aux enregistrements.
Par exemple : renommer « colonne A » en « colonne X »

Opérateurs binaires (deux arguments)

L’union : on affiche l’ensemble des enregistrements de deux « tables ».

La différence : on affiche seulement les enregistrements présents dans une table mais pas dans une autre.

Le produit cartésien : on affiche toutes les combinaisons possibles entre les enregistrements de A et de B.
Par exemple : soit A [x ; y] et B [1 ; 2] alors le produit cartésien de A par B est [x,1 ; x,2 ; y,1 ; y,2].

Opérateurs dérivés

La jointure : on affiche l’union de deux tables dont un attribut des enregistrements de la première correspond à un attribut des enregistrements de la deuxième.
Par exemple : soit A [w,1 ; x,2] et B [y,1 ; z,3] alors la jointure de B sur A est [w,1,y ; x,2,ø ].

L’intersection : on n’affiche seulement les enregistrements présents à la fois dans une table ET dans une seconde.

Les différents SGBDR

Voici une petite liste (non exhaustive) des SGBDR les plus célèbres :

  • Oracle
  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • SQlite
  • IBM DB2

Mais alors pourquoi utiliser PostgreSQL ?

Parce que c’est un SGBDR robuste, fiable et très puissant. Il est capable de manipuler de très grande quantité de données même dans des situations difficiles avec des fonctionnalités riches et avancées.

Il fonctionne sur la plupart des systèmes d’exploitation : Windows, Linux et UNIX.

Il respecte particulièrement la norme AINSI-SQL 2008 et supporte plus d’une douzaine de langage de programmation : Python, Java, Perl, C/C++, Ruby et possède un langage de programmation propre, le PL/pgSQL qui ressemble beaucoup au PL/SQL d’Oracle.

Il est Open Source et développé par une communauté mondiale regroupant plusieurs milliers de développeurs de nombreuses entreprises.

Les mises à jour sont régulières.

Et pourquoi pas MySQL ?

Vous pouvez très bien utiliser MySQL, tout aussi fiable et performant. Cependant, si vous souhaitez par la suite avoir un système un peu plus robuste et gérant un grand nombre d’utilisateurs simultanément, alors PostgreSQL est fait pour vous. Sachez qu’une migration de MySQL vers PostgreSQL (ou inversement) est peu aisée, démarrez donc avec votre SGBDR préféré.

Si vous souhaitez en savoir plus sur les différences entre PostgreSQL et MySQL, allez voir ce cours de Fabian Pijcke, très bien fait.

Sachez que PostgreSQL et son extension PostGIS sont beaucoup plus performant dans la gestion et le traitement des données géométrique que MySQL.

PostgreSQL : fiche d’identité

Date de création :

  • 1974 : création d’INGRES (INtelligent Graphic RElational System)
  • 1985 : prototypage de Postgres : Post-INGRES
  • 1995 : Postgres devient Postgre95 avec l’ajout du support du SQL
  • 1996 : Postgres95 devient PostgreSQL

Créateur : Michael Stonebraker, université de Californie, département des sciences informatiques de Berkeley.

Plateformes :

Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX, Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare et toutes sortes d’Unix ainsi que Windows.

Limites :

  • Taille maximum d’une BDD : illimitée
  • Taille maximum d’une table : 32 To
  • Taille maximum d’un enregistrement : 1,6 To
  • Taille maximum d’un attribut par enregistrement : 1 Go
  • Nombre maximum d’enregistrement : illimité
  • Nombre maximum d’attribut par table : 250 à 1600 selon le type de colonne
  • Nombre maximum d’index par table : illimité

Quelques entreprises utilisant PostgreSQL :

  • IGN
  • Météo France
  • Le Bon Coin
  • Skype
  • LastFM
  • McAfee
  • Trend Micro
  • L’autorité de l’aviation fédérale (FAA) américaine
  • Le domaine .org est géré avec PostgreSQL
  • L’application de course à pied RunKeeper

La bible/coran/tora de PostgreSQL : https://www.postgresql.org
La version française : http://docs.postgresql.fr/

La plupart des SGBD repose sur un langage de programmation spécifique : le SQL.

Qu’est-ce que SQL ?

SQL signifie Structured Query Langage : langage de requête structurée. Le SQL est un langage de programmation conçu pour les bases de données. Créé en 1974 par Donald D. Chamberlin et Raymond F. Boyce d’IBM, il est utilisé par de nombreux SGBDR mais chacun d’eux apporte son lot de variantes. Ce cours étant dédié à PostgreSQL vous apprendrez le SQL qui s’utilise avec ce dernier mais cela ne veut pas dire que vous ne pourrez pas utiliser vos nouvelles connaissances dans d’autres SGBDR. En effet, la très grande majorité des requêtes qui seront utilisées dans ce cours sont en SQL pur et dur.

Vous verrez que c’est également un langage facile à comprendre. Celui-ci permet de définir vos données, de les manipuler, de les vérifier et d’en contrôler l’accès. C’est-à-dire que vous allez pouvoir créer et maintenir vos BDD, intégrer vos données et les interroger. Vous verrez que l’on s’en sert également pour l’administration des BDD : création, suppression, gestion des utilisateurs et des droits.

Je vous rassure tout de suite, vous n’allez pas être obligé de tapez des centaines de lignes de code sur un écran noir avec une interface austère type MS-DOS. Les BDD peuvent être gérées par des logiciels clients qui apportent une interface conviviale à utiliser, vous pouvez même vous passer de SQL pour certains usages basiques mais nous verrons cela plus tard.

Principes de fonctionnement

Les SGBDR sont assez faciles à utiliser et PostgreSQL ne fait pas exception. Il s’agit d’un logiciel que l’on installe et dans lequel nos données seront stockées.

Ce logiciel est un serveur, autrement dit, c’est un logiciel qui offre des services : ici la consultation d’une BDD. Pour utiliser ces services, il faudra utiliser un logiciel client. On peut comparer ce fonctionnement à internet, un serveur vous offre un service : le world wide web (www) que vous utilisez avec votre navigateur : le client. Notre logiciel client va ainsi envoyer des requêtes au serveur : PostgreSQL, ce dernier les « écoute » puis renvoie sa réponse.

Pour se connecter au serveur, le client doit d’abord connaitre l’hôte du serveur (l’adresse de l’immeuble en quelque sorte) qui est souvent l’adresse IP de la machine où est installée PostgreSQL. Il faut également un n° de port (le n° d’appartement dans notre analogie) qui est par défaut le 5432 (mais il n’est pas rare de voir des installations faites sur le port 5433, 5434…). Avec ce fonctionnement, vous pouvez avoir plusieurs instances de PostgreSQL installées et tournant en parallèle sur une même machine. Ces instances auront ainsi des n° de ports différents.

La connexion s’établit au moyen d’un login et d’un mot de passe donnant accès aux différents éléments de la BDD en accord avec les règles de droit qui auront été définies.


Nous allons maintenant voir l’installation de PostgreSQL et les différents éléments de configuration de celui-ci.

Sommaire général

Voici le sommaire général du cours :


Cet article vous a plu ?

N'hésitez pas à le partager, il interessera surement certains de vos contacts.

Les thèmes suivants contiennent des articles en lien avec celui-ci, allez faire un tour :

BDDPostgreSQL tuto

50%