Les technologies de l'information et de la communication accompagnent l'organisation en lui offrant la possibilité de disposer d'informations pertinentes pour son activité. Les outils numériques permettent de stocker un grand nombre de données qu'il est nécessaire de structurer pour produire une information exploitable par tous les acteurs de l'organisation.
La production d'informations à partir d'une base de données passe par la maîtrise du modèle de représentation et de la disponibilité des données enregistrées.
Une base de données est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données). Une base de données est constituée d'un ensemble de tables/relations. Chaque table comporte des champs/attributs. Chaque table est identifiée par un champ nommé clé primaire, qui aura une valeur unique pour chaque ligne de la table et les liens (ou jointures) entre les tables sont réalisés par la présence d'une clé étrangère qui référence la clé primaire d'une autre table. Cela signifie que les seules valeurs autorisées pour la clé étrangère sont les valeurs préexistantes pour la clé primaire. C'est une contrainte d'intégrité référentielle.
Il n'existe qu'une clé primaire par table (mais cette clé primaire peut être composée de plusieurs champs) mais il peut y avoir plusieurs clés étrangères. Un champ peut être à la fois clé primaire et clé étrangère.
Pour mieux comprendre l'organisation d'une base de donnée, on a besoin du schéma relationnel.
Les SGBD (Systèmes de Gestion de Bases de Données) sont les programmes qui se chargent du stockage des données. Il est nécessaire de communiquer avec le SGBD pour lui donner l'ordre de récupérer ou d'enregistrer des données. Pour cela on utilise le langage SQL.
Pour gérer une base de données SQL (MySQL, PostgreSQL), on va se servir concrètement d'une interface telle que PhpMyAdmin qui permet d'exécuter toutes les requêtes nécessaires.
Grâce à cette interface, on peut facilement sauvegarder (exporter) une base données sous forme de fichier .sql et/ou y transférer ses données (importer)
Le langage SQL (Structured Query Language) est l'outil complémentaire essentiel à la maîtrise des bases de données. C'est un langage normalisé qui est à la fois :
CREATE TABLE Animal
DROP TABLE Animal
ALTER TABLE Animal
ADD champ description
DROP champ
CHANGE champ1 champ2 description
MODIFY champ description
INSERT INTO Animal VALUES (1, 'chat', 'femelle','Cerise'), (2, 'chien', 'mâle', 'toto'), (3, 'chat', NULL,'Blacky'),...
INSERT INTO Animal (id, type) VALUES (4, 'chien'), (5, 'chat')
UPDATE Animal
SET sexe = ‘M’, nom = ‘Médor’
WHERE id = 5
DELETE FROM Animal
WHERE id = 2
DELETE FROM Animal (supprime toutes les valeurs)
exemple :
CREATE TABLE commandes
(numero INT,
date_Cde DATE,
num_Cli INT
PRIMARY KEY(numero),
FOREIGN KEY (num_Cli) REFERENCES Clients(numero) );
Les principaux types de données sont :
Alphanumérique
CHAR(n)
VARCHAR(n)
Numérique
INTEGER, INT, TINYINT,....
FLOAT (saisir les décimales après un point)
DECIMAL (n, d) : nombre de n chiffres dont décimales)
Date/heure
DATE
TIME
DATETIME
Booléen
BOOLEAN (0 ou False pour faux, 1 ou true pour vrai)
Projection :
SELECT * FROM Animal (indiquer la ou les tables concernées) SELECT = projection
SELECT DISTINCT type FROM Animal
SELECT nom, prenom FROM Animal
WHERE type = 'chat' → clause de restriction*
AND sexe = 'femelle'
GROUP BY sexe
HAVING (Précise des conditions sur les résultats des calculs)
ORDER BY nom (ASC ou DESC) → clause de tri
* Lorsqu'on ne connaît pas exactement la valeur, au lieu de mettre = on peut utiliser la clause LIKE
ou NOT LIKE associée à l'un des 2 jokers ‘%’ et ‘_’ qui représente un seul caractère
Les agregats
AVG : calcule la moyenne d’une colonne
COUNT : calcule le nombre de lignes d’une table
SUM : effectue la somme des valeurs d’une colonne
MAX / MIN : calcule la valeur maximale/minimale d’une colonne
Lorsqu'on effectue une requête portant sur plusieurs tables, il faut effectuer une jointure, c'est à dire, établir un lien entre 2 ou plusieurs tables.
Dans la requête, il suffit de mettre WHERE Table1.champ8 = Table2.champ3
AND Table2.champ1= Table3.champ4
AND ….autant de fois que nécessaire
Lorsque les champs d'une table sont identiques à une autre table, et pour éviter les confusions, il faut préfixer les champs par le nom de la table. C'est ce qui a été fait ci-dessus.