Introduction aux Bases de Données

Les bases de données sont des systèmes informatiques qui permettent de stocker, d’organiser et de gérer des données de manière structurée. Elles sont largement utilisées dans de nombreux domaines tels que la gestion d’entreprise, les applications web, la recherche scientifique, etc.

1. Concepts de Base

  • Table: Une table est une collection de données organisées en lignes et colonnes. Chaque ligne représente un enregistrement et chaque colonne représente un attribut de l’enregistrement.
  • Colonne: Une colonne représente un attribut spécifique des données dans une table. Par exemple, dans une table « Personnes », les colonnes pourraient inclure « Nom », « Prénom », « Âge », etc.
  • Une clef primaire est un ensemble d’attributs non vide qui permet d’identifier de manière unique une relation.
  • Une clé étrangère d’une relation est un attribut étant aussi la clé primaire d’une autre relation.

2. Système de Gestion de Base de Données (SGBD)

  • Un Système de Gestion de Base de Données (SGBD) est un logiciel qui permet de créer, de manipuler et de gérer des bases de données. Il fournit une interface entre les utilisateurs et la base de données, ainsi que des fonctionnalités pour stocker, interroger et mettre à jour les données.

3. Relation

Dans le contexte des bases de données relationnelles, le terme « relation » fait référence à la représentation des données sous forme de tables liés entre elles grace à différentes type de clés. Voici une explication plus détaillée :

4. Schéma Relationnel

  • Le schéma relationnel d’une base de données définit la structure des tables, y compris les colonnes, les clés primaires, les clés étrangères et d’autres contraintes. Il décrit également les relations entre les tables. ( vous devez être capable de créer un schéma relationnel)

5. Les champs de base

Voici quelques types de champs de base qui sont couramment utilisés dans les bases de données relationnelles, en particulier dans les bases de données SQL comme MySQL, PostgreSQL, etc. :

  1. INT (Integer) :
    Ce type de champ est utilisé pour stocker des nombres entiers, positifs ou négatifs, sans décimales. Il peut être spécifié avec une longueur pour définir la taille maximale de l’entier pouvant être stocké. Par exemple, INT(10) peut stocker des entiers de jusqu’à 10 chiffres.
  2. VARCHAR (Variable Character) :
    Le type VARCHAR est utilisé pour stocker des chaînes de caractères de longueur variable. La longueur maximale est spécifiée entre parenthèses. Par exemple, VARCHAR(255) peut stocker des chaînes de caractères jusqu’à 255 caractères de longueur.
  3. BOOL (Boolean) :
    Le type BOOL (ou BOOLEAN) est utilisé pour stocker des valeurs de vérité, généralement représentées par les valeurs TRUE (vrai) ou FALSE (faux). Dans certains SGBDR, il est représenté par 1 pour vrai et 0 pour faux.
  4. DATE et DATETIME :
    Ces types de champs sont utilisés pour stocker des valeurs de date et/ou d’heure. DATE stocke uniquement la date, tandis que DATETIME stocke la date et l’heure. Ces types permettent également de stocker des valeurs spéciales comme NULL pour représenter des données manquantes.
  5. DECIMAL ou NUMERIC :
    Ces types de champs sont utilisés pour stocker des nombres décimaux exacts, avec une précision fixe et une échelle définie. La précision définit le nombre total de chiffres dans le nombre, tandis que l’échelle définit le nombre de chiffres après la virgule décimale.
  6. TEXT :
    Le type TEXT est utilisé pour stocker des chaînes de caractères de longueur variable, mais avec une capacité de stockage plus grande que VARCHAR. Il est souvent utilisé pour stocker des données textuelles volumineuses, telles que des articles de blog, des commentaires, etc.

Ces types de champs sont parmi les plus fréquemment utilisés dans les bases de données relationnelles, mais il existe également d’autres types de données spécialisés et des variations de ceux-ci en fonction des fonctionnalités spécifiques des SGBDR. Il est important de choisir le type de champ approprié en fonction des besoins de stockage et de manipulation des données de votre application.

6. Les autres modèles

Si les données ne sont pas organisées selon le modèle relationnel, elles peuvent être organisées selon d’autres modèles de données. Voici quelques-uns des modèles de données alternatifs :

  1. Modèle Hiérarchique :
    Dans ce modèle, les données sont organisées de manière hiérarchique, sous forme d’une structure arborescente avec un nœud racine et des nœuds enfants. Chaque enregistrement peut avoir un seul parent mais plusieurs enfants.
  2. Modèle Réseau :
    Dans ce modèle, les données sont organisées sous forme de graphes orientés où les enregistrements sont représentés par des nœuds et les relations entre les enregistrements sont représentées par des arcs.
  3. Modèle Entité-Association (E/A) : Il est souvent utilisé pour la modélisation conceptuelle des données.
  4. Modèle Orienté Objet :
    Dans ce modèle, les données sont représentées sous forme d’objets qui ont des attributs et des méthodes.
  5. Bases de Données NoSQL :
    Les bases de données NoSQL (Not Only SQL) utilisent différents modèles de données qui diffèrent du modèle relationnel traditionnel. Cela peut inclure des modèles tels que les bases de données de documents, les bases de données de graphes, les bases de données clé-valeur, etc.
  6. Bases de Données Spatiales :
    Ces bases de données sont conçues pour stocker et interroger des données géographiques et spatiales, telles que des cartes, des coordonnées GPS, etc.

Chacun de ces modèles de données a ses propres avantages et inconvénients, ainsi que des cas d’utilisation spécifiques où il peut être plus approprié que d’autres. Le choix du modèle de données dépend souvent des exigences spécifiques de l’application et du type de données à stocker et à manipuler.

7. Principales Requêtes

  • Sélection: Permet de récupérer des données spécifiques d’une ou plusieurs tables en fonction de certains critères. Exemple : SELECT * FROM Clients WHERE Age > 18;
  • Insertion: Permet d’ajouter de nouveaux enregistrements dans une table. Exemple : INSERT INTO Clients (Nom, Prénom, Age) VALUES ('Doe', 'John', 25);
  • Mise à Jour: Permet de modifier les données existantes dans une table. Exemple : UPDATE Clients SET Age = 30 WHERE Nom = 'Doe';
  • Suppression: Permet de supprimer des enregistrements d’une table. Exemple : DELETE FROM Clients WHERE Nom = 'Doe';
  • Jointure: Permet de combiner les données de deux ou plusieurs tables en fonction d’une condition de liaison. Exemple : SELECT * FROM Commandes INNER JOIN Clients ON Commandes.ClientID = Clients.ID;
  • Agrégation: Permet de calculer des valeurs agrégées telles que la somme, la moyenne, le minimum ou le maximum des données. Exemple : SELECT AVG(Prix) FROM Produits;

Fichier SQL comprenant plus de requêtes :

Vous pouvez retrouver toutes les informations sur le site : https://sql.sh