Cours : Bases de données
Fiche de Cours : Bases de données (CPGE BCPST2)
Section titled “Fiche de Cours : Bases de données (CPGE BCPST2)”1. Introduction et Modèle Relationnel
Section titled “1. Introduction et Modèle Relationnel”Définitions fondamentales
Section titled “Définitions fondamentales”- Base de données (BDD) : Ensemble structuré et organisé de données stockées dans un système informatique, permettant une recherche, une mise à jour et un partage efficaces.
- Système de Gestion de Base de Données (SGBD) : Logiciel permettant de manipuler les données de la BDD (garantissant persistance, concurrence, sécurité et intégrité). Le modèle dominant en BCPST est le modèle relationnel.
- Relation (ou Table) : Un sous-ensemble du produit cartésien de domaines : .
- Attribut (ou Colonne) : Nom associé à un domaine .
- Tuple (ou Ligne / Enregistrement) : Élément de la relation , c’est-à-dire un -uplet avec .
- Schéma d’une relation : Nom de la relation suivi de la liste de ses attributs et de leurs domaines.
Contraintes d’intégrité
Section titled “Contraintes d’intégrité”- Intégrité de domaine : Les valeurs d’un attribut doivent appartenir au domaine associé.
- Clé primaire () : Attribut ou ensemble minimal d’attributs dont la valeur identifie de manière unique chaque tuple de la relation. Aucune valeur ne peut être nulle (
NULL). - Clé étrangère () : Attribut (ou ensemble d’attributs) dans une relation dont les valeurs doivent correspondre aux valeurs d’une clé primaire (ou candidate) dans une relation (qui peut être la même).
2. Algèbre Relationnelle
Section titled “2. Algèbre Relationnelle”L’algèbre relationnelle est l’ensemble formel des opérations permettant de manipuler des relations.
Opérateurs unaires
Section titled “Opérateurs unaires”- Sélection () : Filtre les lignes selon un prédicat .
- Projection () : Sélectionne un sous-ensemble de colonnes et élimine les doublons.
Opérateurs ensemblistes (nécessitent des relations compatibles en schéma)
Section titled “Opérateurs ensemblistes (nécessitent des relations compatibles en schéma)”- Union () : (élimination des doublons).
- Différence () : .
- Produit cartésien () : .
Opérateurs dérivés fondamentaux
Section titled “Opérateurs dérivés fondamentaux”- Jointure naturelle () : Combine deux relations sur l’égalité de leurs attributs communs. Soit et :
- Theta-jointure () : Combinaison de relations basée sur une condition arbitraire :
3. Le Langage SQL (Structured Query Language)
Section titled “3. Le Langage SQL (Structured Query Language)”Le SQL est le langage standard d’interrogation et de gestion des SGBD relationnels.
Structure générale d’une requête (QL - Query Language)
Section titled “Structure générale d’une requête (QL - Query Language)”SELECT DISTINCT col1, AGREGAT(col2)FROM Table1JOIN Table2 ON Table1.id = Table2.id1WHERE condition_lign_par_ligneGROUP BY col1HAVING condition_sur_agregatsORDER BY col1 ASC / DESC;Ordre d’exécution logique par le SGBD
Section titled “Ordre d’exécution logique par le SGBD”Il est crucial de comprendre l’ordre d’évaluation pour éviter les erreurs conceptuelles :
FROM(et lesJOIN)WHEREGROUP BYHAVINGSELECT(application des projections et rennommages)DISTINCTORDER BY
4. Méthodes et Conception (Modèle Entité-Association / UML)
Section titled “4. Méthodes et Conception (Modèle Entité-Association / UML)”Le passage du besoin métier au modèle relationnel se fait via les étapes suivantes :
- Identification des entités (objets ayant une existence propre) et de leurs attributs.
- Identification des associations (relations entre entités) et de leurs cardinalités (ex:
1,N,0,1,1,1). - Règles de passage au relationnel :
- Association 1,N ou 0,N : La clé primaire de l’entité du côté
1ou0,1migre comme clé étrangère dans la table représentant l’entité du côtéN. - Association M,N : Création d’une table de jonction dont la clé primaire est constituée de la concaténation des clés primaires des deux entités mises en relation.
- Association 1,N ou 0,N : La clé primaire de l’entité du côté
5. Pièges Classiques (À Éviter en Concours)
Section titled “5. Pièges Classiques (À Éviter en Concours)”Piège 1 : Les valeurs
NULLdans les comparaisons. En SQL,NULLreprésente une valeur absente ou inconnue. Toute comparaison impliquantNULL(= NULL,<> NULL) évalue à la valeur de vérité Inconnu (ni Vrai, ni Faux). Correction : Utiliser exclusivement les opérateursIS NULLouIS NOT NULL.
Piège 2 : Confusion entre
WHEREetHAVING.
WHEREfiltre les tuples avant le regroupement (GROUP BY). Il ne peut contenir de fonctions d’agrégation (SUM,COUNT,AVG, etc.).HAVINGfiltre les groupes après application duGROUP BY. Il est indispensable pour poser des conditions sur les résultats d’agrégats (ex: “les départements ayant plus de 5 employés”).
Piège 3 : Oubli de l’élimination des doublons en algèbre relationnelle. Contrairement aux tables SQL (multisets ou sacs), les relations mathématiques en algèbre relationnelle sont des ensembles (pas de doublons). Une projection en algèbre relationnelle supprime implicitement les doublons.
Piège 4 : Le produit cartésien implicite. Oublier la condition de jointure dans la clause
WHERE(dans la syntaxe historique) ou utiliser unCROSS JOINpar inadvertance conduit à un produit cartésien dont la compléxité temporelle et spatiale explose ().