Synthèse des Bases de Données : Concepts et Requêtes

Telechargé par aaronelielguede
Synthèse et Maîtrise des Bases de Données :
Concepts et Requêtes
Ce document est un résumé structuré et simplié de votre cours sur les bases de données. Il est conçu
pour vous permettre de comprendre rapidement les concepts clés et d'acquérir les compétences
nécessaires pour interroger et manipuler ecacement les données.
PARTIE 1 : Les Concepts Fondamentaux (Dénitions Simples)
Qu'est-ce qu'une Base de Données (BD) ?
C'est un grand "réservoir" où l'on stocke toutes les informations d'une entreprise sans
doublons inutiles (redondances). Ces informations sont liées entre elles de manière logique.
Contrairement aux anciens systèmes où chaque service avait ses propres chiers (ce qui
créait des doublons et des erreurs), la BD centralise tout.
Le Modèle Relationnel
Dans ce modèle, tout est organisé sous forme de tables (aussi appelées relations).
La Relation (Table) : C'est le tableau de données (ex: une table PILOTE).
Le Tuple (Ligne ou Enregistrement) : C'est une ligne du tableau. Il représente un objet unique
(ex: les infos du pilote Jean).
L'Attribut (Colonne) : C'est une caractéristique de l'objet (ex: Nom, Adresse, Salaire).
Le Domaine : C'est l'ensemble des valeurs valides pour une colonne (ex: le domaine de la
colonne "Salaire" est "les nombres positifs").
Les Clés et l'Intégrité
Clé Primaire : C'est la colonne (ou le groupe de colonnes) qui permet d'identier de manière
unique chaque ligne. Par exemple, le numéro du pilote (PL#). Elle ne peut pas être vide (nulle) ni
exister en double.
Clé Étrangère : C'est une colonne dans une table qui fait référence à la clé primaire d'une autre
table. Par exemple, le numéro de l'avion (AV#) dans la table VOL est une clé étrangère car il fait
référence à la table AVION. Cela crée le lien logique entre les deux tables.
Exemple concret : Intégrité de Référence
Vous ne pouvez pas assigner le pilote numéro 999 à un vol dans la table VOL si ce pilote
n'existe pas d'abord dans la table PILOTE. C'est l'intégrité de référence !
PARTIE 2 : Manipuler les Données (Opérations et Requêtes)
C'est le cœur de vos compétences : savoir extraire et transformer la donnée. On utilise deux approches :
théorique (l'algèbre relationnelle) et pratique (SQL).
A. L'Algèbre Relationnelle (Le Langage Mathématique)
Ce langage explique comment combiner les tables en utilisant des opérateurs.
1. Opérateurs Ensemblistes (les tables doivent avoir la même structure)
Union (∪) : Regroupe les lignes de deux tables en enlevant les doublons (Traduit le "OU").
Ex: Les pilotes habitant Paris OU Toulouse.
Intersection (∩) : Garde uniquement les lignes présentes à la fois dans la table A et la table B
(Traduit le "ET").
Diérence (-) : Garde les lignes de la table A qui ne sont pas dans la table B (Sert à exclure/
supprimer).
Produit Cartésien (×) : Associe chaque ligne de la table A à toutes les lignes de la table B.
Rarement utilisé seul car il génère trop de données.
2. Opérateurs Relationnels (Créent de nouvelles vues)
Sélection (σ) : Découpage "horizontal". On ltre les lignes qui respectent une condition.
Ex: Sélectionner les pilotes dont la ville est "PARIS".
Projection (π) : Découpage "vertical". On ne garde que certaines colonnes.
Ex: Acher uniquement les noms (PLNOM) et les adresses (ADR).
La Jointure () : Combine deux tables grâce à une colonne commune (généralement la clé
étrangère et la clé primaire). C'est l'opération la plus importante !
Ex: Joindre PILOTE et VOL sur le numéro de pilote (PL#) pour savoir quel pilote fait quel vol.
L'équi-join utilise l'égalité (=).
La Division (÷) : Sert à répondre aux questions du type "Tous les...".
Ex: Quels pilotes conduisent TOUS les avions de la compagnie ? On divise la table des vols par la
table des avions.
B. Le Langage SQL (L'outil pratique)
SQL (Structured Query Language) permet d'interroger la base concrètement sur ordinateur.
Structure de base d'une requête de lecture (Mapping) :
SELECT [colonnes à acher : équivalent de la projection]
FROM [tables visées : équivalent du produit cartésien ou de la jointure]
WHERE [conditions de ltre ou de jointure : équivalent de la sélection]
Exemples pratiques SQL
Exemple 1 : Requête simple avec condition
Quels sont les noms des pilotes habitant Paris ?
SELECT PLNOM FROM PILOTE WHERE ADR = 'PARIS';
Exemple 2 : La Jointure (Récupérer des données dans deux tables)
Acher les noms des pilotes et les numéros des vols qu'ils assurent.
SELECT a.PLNOM, b.VOL# FROM PILOTE a, VOL b WHERE a.PL# = b.PL#;
Exemple 3 : Regroupement et Fonctions (GROUP BY / HAVING)
Les fonctions (SUM, AVG, COUNT, MIN, MAX) permettent de faire des calculs.
Quels sont les numéros de pilotes qui assurent STRICTEMENT plus de 3 vols ?
SELECT PL#, COUNT(*) FROM VOL GROUP BY PL# HAVING COUNT(*) > 3;
Note : WHERE ltre les lignes AVANT le groupement, HAVING ltre les groupes APRÈS.
Exemple 4 : Mises à jour (L'Écriture)
Ajouter : INSERT INTO PILOTE (PL#, PLNOM) VALUES (150, 'JEAN');
Modier : UPDATE PILOTE SET ADR = 'NICE' WHERE PL# = 150;
Supprimer : DELETE FROM PILOTE WHERE PL# = 150;
PARTIE 3 : Exercices Complexes d'Évaluation
Prenez le temps de résoudre ces exercices pour valider vos compétences. Le schéma de base
est :
PILOTE(PL#, PLNOM, ADR)
AVION(AV#, AVNOM, CAP, LOC)
VOL(VOL#, PL#, AV#, VD, VA, HD, HA)
Exercice 1 : Algèbre Relationnelle
Écrivez la séquence d'opérateurs relationnels (Projection, Sélection, Jointure, Division) pour
répondre aux questions suivantes :
1.1. Donnez les noms des pilotes qui conduisent un avion dont la capacité est supérieure à 300
places.
1.2. Donnez les numéros des avions (AV#) qui sont utilisés sur TOUS les vols au départ de
'PARIS' (VD = 'PARIS').
Exercice 2 : Requêtes SQL Avancées
Rédigez les requêtes SQL correspondantes :
2.1. Achez la moyenne des capacités des avions par localisation (LOC).
2.2. Achez le nom des pilotes qui gagnent un salaire supérieur à la moyenne des salaires
(Astuce : Utilisez une requête imbriquée avec SELECT AVG(...)).
2.3. Achez la liste des noms de pilotes qui eectuent un vol au départ de leur propre ville de
résidence (ADR = VD). Il faudra joindre PILOTE et VOL.
Exercice 3 : Réexion sur l'intégrité
3.1. Expliquez ce qu'il se passe (ou ce que le système devrait bloquer) si vous tentez de lancer la
commande suivante :
DELETE FROM PILOTE WHERE PL# = 100;
Sachant que le pilote 100 est actuellement assigné au vol IT500 dans la table VOL.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!