Classe SDA 7 2025-2026
Une base de données est un système organisé pour stocker, gérer et récupérer de grandes quantités d'informations de manière efficace, structurée et sécurisée. C'est le cœur de la plupart des applications modernes, des sites web aux systèmes financiers.
C'est comme avoir une pile de livres en désordre dans une pièce. Pour trouver un livre précis, vous devez fouiller toute la pile. C'est lent et inefficace.
C'est comme une bibliothèque bien organisée. Les livres sont rangés dans des étagères spécifiques (les tables), chaque livre a une fiche descriptive (une ligne ou un enregistrement), et un système d'indexation vous permet de trouver n'importe quel livre en quelques secondes (une requête).
Le SGBD (Système de Gestion de Base de Données) est le "bibliothécaire" (le logiciel comme MySQL, PostgreSQL) qui gère tout cela pour vous.
Théorisé en 1970, le modèle relationnel est le modèle de base de données le plus utilisé à ce jour. Il repose sur des principes simples et puissants : les données sont organisées dans des tables, et chaque table traite d'un sujet unique. L'objectif est d'éviter la redondance (le même élément de données ne doit pas se trouver à plusieurs endroits) et de garantir la cohérence.
Il existe deux grandes familles de bases de données :
Structure : Organise les données dans des tables (comme des feuilles de calcul Excel) avec des lignes et des colonnes. Les tables peuvent être liées entre elles.
Langage : Utilise le langage SQL (Structured Query Language).
Idéal pour : Des données structurées avec des relations bien définies (ex: un système bancaire, un site e-commerce, un inventaire).
Structure : Beaucoup plus flexible. Les données peuvent être stockées sous forme de documents (JSON), de graphes, etc.
Idéal pour : Des données non structurées ou semi-structurées, et des applications nécessitant une très grande échelle (ex: réseaux sociaux, données IoT).
Ce cours se concentre sur le monde relationnel (SQL), qui est le fondement de la majorité des applications d'entreprise.
| Caractéristique | Fichier Excel | Base de Données (SGBD) |
|---|---|---|
| Volume de données | Limité, devient très lent avec des milliers de lignes. | Conçue pour gérer des millions, voire des milliards de lignes. |
| Accès Simultané | Difficile, une seule personne peut modifier à la fois. | Gère des milliers d'accès simultanés de manière sécurisée. |
| Intégrité des Données | Aucune. On peut facilement entrer du texte dans une colonne de dates. | Contraintes strictes (ex: cette colonne ne peut contenir que des dates, celle-ci doit être unique). |
| Relations | Manuelles et fragiles. | Relations robustes entre les tables (ex: impossible de supprimer un client s'il a encore des commandes). |
| Sécurité | Limitée à un mot de passe sur le fichier. | Gestion fine des permissions (cet utilisateur peut lire, cet autre peut modifier...). |
Comprendre qu'il n'existe pas de "meilleure" base de données, mais des outils différents pour des besoins différents, et connaître les forces des acteurs majeurs du marché.
| SGBD | Type | Idéal Pour... | Caractéristique Clé |
|---|---|---|---|
| PostgreSQL | Open Source | Applications complexes, analyse de données, systèmes où l'intégrité et le respect des standards sont cruciaux. | Le plus avancé et extensible des SGBD open source. "Le couteau suisse." |
| MySQL | Open Source | Applications Web (Blogs, CMS, E-commerce), applications nécessitant une grande vitesse de lecture. | Le plus populaire et le plus facile à prendre en main. Au cœur de l'écosystème web (LAMP). |
| Oracle | Commercial | Très grandes entreprises, systèmes financiers, applications critiques nécessitant un support et des performances extrêmes. | Le "poids lourd" de l'entreprise. Extrêmement puissant, mais complexe et cher. |
| SQLite | Open Source | Applications mobiles (Android, iOS), applications de bureau, petits sites web, tests. | Une base de données complète dans un seul fichier. Incroyablement simple et légère. |
Prenons l'exemple d'une bibliothèque dont la base de données possède une relation « livres » :
C'est l'endroit où sont rangées les données. L'ordre des lignes (que l'on appelera des enregistrements) n'a pas d'importance.
Cela correspond à une ligne du tableau, et donc un ensemble de valeurs liées entre elles : l'auteur « Eric VUILLARD » a bien écrit le livre « L'Ordre du jour ». Il est interdit que deux enregistrements soient totalement identiques. Le nombre d'enregistrements d'une relation s'appelle son cardinal.
C'est l'équivalent d'une colonne. Il y a dans notre relation un attribut « code », un attribut « Titre », etc.
Le domaine désigne « le type » (au sens type Int, Float, String). L'attribut « Éditeur » est une chaîne de caractères, son domaine est donc String. Par contre l'attribut « ISBN » est un nombre de 13 chiffres, commençant manifestement par 978. Son domaine est donc Int.
Le schéma d'une relation est le regroupement de tous les attributs et de leur domaine respectif. Ici notre schéma serait :
((Code, Entier), (Titre, Chaîne de caractères), (Auteur, Chaîne de caractères), (Éditeur, Chaîne de caractères), (ISBN, Entier))