Pourquoi a-t-on besoin d'une base de données ?
Dans un système de fichiers, chaque service garde ses propres fichiers. Cela pose des problèmes :
- Redondance des données : les mêmes données sont enregistrées plusieurs fois, ce qui gaspille de la place.
- Incohérence des données : une copie est mise à jour, pas les autres, et elles ne sont plus d'accord.
- Recherche et partage difficiles : chaque question demande un nouveau programme.
- Mauvaise sécurité : il est difficile de contrôler qui voit quoi.
- Isolement et dépendance des données : les fichiers ont des formats différents ; changer leur structure casse les programmes.
Une base de données est un ensemble organisé de données liées, rangées au même endroit, pour qu'elles puissent être partagées, restent cohérentes et soient protégées.
Système de gestion de base de données (SGBD)
Un SGBD est un logiciel qui sert à créer, enregistrer, modifier, chercher et gérer une base de données, et à contrôler qui peut l'utiliser. Exemples : MySQL, Oracle, PostgreSQL, SQLite, Microsoft Access.
Avantages : moins de redondance, cohérence, partage entre de nombreux utilisateurs, sécurité par mots de passe et autorisations, sauvegarde et récupération, et recherche facile avec un langage de requêtes (SQL).
Usages de tous les jours : banque, réservation de trains, dossiers scolaires, achats en ligne, hôpitaux.
Modèle relationnel : relation, attribut, n-uplet, domaine
Dans le modèle de données relationnel, les données sont rangées dans des tables.
- Relation : une table qui a un nom, par ex. STUDENT.
- Attribut : une colonne, par ex. Name.
- N-uplet (tuple) : une ligne, c'est-à-dire un enregistrement complet.
- Domaine : l'ensemble des valeurs permises pour un attribut, par ex. Class ∈ {9, 10, 11, 12}.
- Degré : nombre d'attributs (colonnes).
- Cardinalité : nombre de n-uplets (lignes).
Règles : chaque colonne a un nom unique ; l'ordre des lignes ou des colonnes n'a pas d'importance ; deux lignes ne sont jamais exactement identiques ; chaque case contient une seule valeur (ou NULL, qui veut dire inconnue).
Les clés : candidate, primaire et alternative
- Clé candidate : un attribut (ou un groupe d'attributs) dont la valeur est unique pour chaque ligne et jamais NULL. Une table peut en avoir plusieurs.
- Clé primaire : la clé candidate choisie pour identifier les lignes. Elle ne peut ni être NULL ni se répéter.
- Clé alternative : toute clé candidate qui n'a pas été choisie comme clé primaire.
Exemple : STUDENT(AdmNo, Name, Class, Email). Name se répète, Class se répète, ce ne sont donc pas des clés. AdmNo et (s'il est toujours rempli et différent) Email sont des clés candidates. On choisit AdmNo comme clé primaire ; Email devient la clé alternative.
Bon à savoir aussi : une clé composée utilise deux colonnes ou plus ensemble (comme Class + RollNo) ; une clé étrangère est une colonne d'une table qui renvoie à la clé primaire d'une autre table, ce qui relie les deux.
Essaie : trouve la clé dans ta carte d'élève
Regarde ta carte d'élève ou ta carte de bus. Note chaque champ (nom, classe, numéro de liste, numéro d'inscription, téléphone). Pour chacun, pose-toi deux questions : deux élèves peuvent-ils avoir la même valeur ? Peut-il être vide ? Écris quels champs sont des clés candidates et lequel tu choisirais comme clé primaire. Puis fais le même test à l'étape 6 de la 3D.
Formules et définitions clés
- Relation = table ; attribut = colonne ; n-uplet = ligne
- Degré = nombre de colonnes ; cardinalité = nombre de lignes
- Clé candidate : unique + non NULL
- Clé primaire = clé candidate choisie ; clés alternatives = les autres
Exemples résolus
1. Une table a 5 colonnes et 30 lignes. Donne son degré et sa cardinalité.
Degré = 5, cardinalité = 30.
2. On ajoute 2 lignes et 1 colonne à une table 4 × 10 (degré 4, cardinalité 10). Quelles sont les nouvelles valeurs ?
Degré = 5, cardinalité = 12.
3. EMPLOYEE(EmpID, Name, Aadhaar, Dept). Repère les clés candidates, primaire et alternative.
EmpID et Aadhaar sont uniques → clés candidates. On choisit EmpID comme clé primaire ; Aadhaar est la clé alternative. Name et Dept peuvent se répéter.
4. Pourquoi Name ne peut-il pas être la clé primaire de STUDENT ?
Deux élèves peuvent porter le même nom, donc il n'identifie pas une ligne de façon unique.
5. Donne le domaine d'un attribut Gender enregistré sous forme d'une seule lettre.
{"M", "F", "O"} (ou les codes que l'école autorise).
Erreurs fréquentes
- Appeler une colonne un n-uplet. N-uplet = ligne ; attribut = colonne.
- Dire que le degré est le nombre de lignes. Le degré compte les colonnes.
- Croire qu'une table n'a qu'une seule clé candidate. Elle peut en avoir plusieurs, mais une seule clé primaire.
- Autoriser NULL dans une colonne de clé primaire.