Bases de Données Relationnelles(1) BD Relationnelle FST-Tanger Bases de Données Relationnelles(1) I. Définitions Un modèle est une façon de représenter ou de modéliser les données Les modèles les plus connus sont: Modèle hiérarchique Modèle réseau Modèle relationnel Modèle objet A. ELKHARRAZ
Bases de Données Relationnelles(2) II. Concepts de base du modèle relationnel Le principe de base du modèle relationnel consiste à représenter les données à l’aide de relations appelées aussi tables II.1. Notion de relation Définition N°1 Soient D1, D2, …, Dn des ensembles non nécessairement distincts; R est une relation si: c’est un ensemble de n-tuples <d1,d2,…, dn> tels que: d1 appartient D1; d2 appartient D2; …; dn appartient Dn Di : sont dit Domaines de R n : est le degré de R
Bases de Données Relationnelles(3) Définition N°2 Soient D1, D2, …, Dn des ensembles non nécessairement distincts. Le produit cartésien de ces n ensembles, noté D1×D2 × … × Dn est l’ensemble ordonné de n-tuples <d1, d2,…, dn> tels que: d1 appartient à D1; d2 appartient à D2; …; dn appartient à Dn Une relation R définie sur D1, D2, …, Dn est un sous-ensemble du produit cartésien: D1×D2 × … × Dn
Bases de Données Relationnelles (4) Exemple S s1 s2 P p1 p2 p3 S s1 s2 P p1 p2 p3 R S s1 s2 P p1 p3 "R" est une relation sur S et P
Bases de Données Relationnelles (5) II.2 Exemple de relation Art A s1 s2 Anom Ecrou Verrou Vis Came Volant Couleur Rouge Vert Bleu Poids 12 17 14 19 Ville Tunis Rabat Caire
Bases de Données Relationnelles (6) Cette relation est illustrée sous forme d’une table Nom de la relation: Art Degré de Art : 5 Art est définie sur 5 Domaines (Champs, Colonnes ou Attributs): 1. A (N° des articles) 2. Anom (Noms des articles) 3. Couleur (Couleurs des articles) 4. Poids (Poids des articles) 5. Ville (Villes où sont disponibles les articles) Chaque ligne de la table est appelée un tuple ou Enregistrement Tous les enregistrements sont différents La cardinalité de Art: 6 (=nombre d’enregistrements)
Bases de Données Relationnelles (7) Si la relation est de degré: 1, elle est dite unaire 2, elle est dite binaire 3, elle est dite ternaire ………………………. ……………………... n. elle est dite n-aire Remarque On peut ne pas disposer de la totalité des informations permettant la description d’un objet. Dans ce cas, les valeurs de quelques colonnes peuvent avoir des valeurs inconnues . Ces valeurs inconnues sont appelées: Valeurs Null
Bases de Données Relationnelles (8) II.3 Notion de Dépendance Fonctionnelle (DF) Définition N°1 Une donnée (B) est en Dépendance Fonctionnelle (DF) d’une donnée (A), quand la connaissance d’une valeur de la donnée (A) permet de déterminer la connaissance d’au maximum une et une seule valeur de la donnée (B) On note: A B (B Dépend Fonctionnel de A) La donnée (A) est dite alors Source de la DF et la donnée (B) est But
Bases de Données Relationnelles (9) Exemple N°CIN (Source) Nom (But) Remarque Dans certains cas, il existe une DF dont la source est composée de 2 ou plusieurs attributs des données Exemple N°Facture, Code_produit Qte_facturée N°étudiant, Matière, Date-examen Note
Bases de Données Relationnelles (10) Définition N°2: (Clé d’une relation) Lorsque dans une relation, un attribut (ou groupe d’attributs) est source de dépendances fonctionnelles et ayant respectivement pour but chacun des autres attributs de la relation. Cet attribut (ou groupe d’attributs) est appelé CLE de la relation Exemple Soit la table EMPLOYE qui contient les attributs suivants: EMPLOYE (N°employé, Nom, Tel) Ici N°employé est la clé de la relation
Bases de Données Relationnelles (11) Définition N°3: (Dépendance Fonctionnelle Complète: DFC) Soient X, Z 2 champs formant une clé K composée dans R et Y un champ Y est en DF Complète (DFC) de K si: Y DF K; (K est composé) Y non DF de sous attribut de K (c.à.d de X ou de Z) Exemple Soit la relation suivante: COMMANDE (Num_com, N°article, Nom_art, Pri_uni) Prenons comme clé de cette relation K=(Num_com, N°article)
Bases de Données Relationnelles (12) Dans la relation COMMANDE on a: Nom_art non DFC de K=(Num_com, N°article) car Nom_art DF N°article qui est un sous attribut de la clé K III. Concepts relatifs à la Normalisation Définition Une relation est Normalisée si: Un même champ n’est pas représenté plusieurs fois Chaque champ est non décomposable en d’autres champs
Bases de Données Relationnelles (13) Exemple Nom_employé ALAOUI ZAHID CHAKIR Adresse Rabat Tanger Kénitra 03 7 21 33 11 03 9 39 50 41 03 7 44 70 60 Diplômes_employés Bac Licence Tetouan Paris EMPLOYE Doctorat Ville Tél Nature Lieu La relation EMPLOYE ci-dessus n’est pas Normalisée
Bases de Données Relationnelles (14) III.1 Table en première Forme Normale (1FN) Une relation est en 1FN si: elle possède une clé tous ses attributs sont atomiques Exemple Si nous considérons qu’une Adresse est composée de 3 parties: adresse, code_postal et ville, alors la table: CLIENT (Idclient, Nom, Adresse, Tél) n’est pas en 1FN Pour la rendre en 1FN, il faudrait décomposer toutes les colonnes non atomiques en colonnes atomiques
Bases de Données Relationnelles (15) La table CLIENT va devenir : CLIENT (Idclient, Nom, adresse, code_postal, ville, Tél) III.2 Table en deuxième Forme Normale (2FN) Une relation est en 2FN si: elle est en 1FN toute colonne qui n’appartient pas à la clé ne dépend pas d’une partie de la clé Remarque La deuxième condition signifie que les colonnes qui n’appartiennent pas à la clé doivent être en DFC avec la clé
Bases de Données Relationnelles (16) Exemple Supposons que la table COMMANDE a le schéma suivant: COMMANDE (Num_com, N°article, Nom_art, Design, Pri_uni, Qte_com, Date_com) Soit K=(Num_com, N°article) la clé de cette relation Etant donné les Dfs suivantes: N°article Nom_art N°article Design N°article Pri_uni Donc cette table n’est pas en 2FN car les attributs Nom-art, Design, et Pri_uni sont non DFC avec la clé K
Bases de Données Relationnelles (17) III.3 Table en troisième Forme Normale (3FN) Une relation est en 3FN si: elle est en 2FN Toutes les DF issues de la clé sont directes Remarque La deuxième condition signifie qu’il n’existe pas de DF transitive entre colonnes non clés. Exemple Soit la relation suivante: COMMANDE (Num_com, Idclient, N°article, Nom_art, Design, Pri_uni, Qte_com, Date_com)
Bases de Données Relationnelles (18) Soit K=(Num_com, Idclient) la clé de cette table Soit les DFs suivantes: K N°article N°article Design N°article Pri_uni Cette table n’est pas donc en 3FN. Pour la rendre en 3FN, on doit la décomposer en 2 tables en isolant dans une deuxième table les colonnes qui dépendent d’un attribut non clé: COMMANDE (Num_com, Idclient, N°article, Qte_com, Date_com) ARTICLE (N°article, design, Pri_uni)
Bases de Données Relationnelles (19) III.4 Forme Normale de BOYCE-CODD (FNBC) C ’est une forme spécifique de la 3FN Une relation est en Forme Normale de BOYCE-COOD si: elle est en 3FN sa clé est formée de plusieurs attributs (composée) aucun de ces attributs n’est but d’une DF ayant pour source un attribut de la relation ne composant pas la clé Supposons que dans un lycée on a les règles de gestion suivantes: pour une matière donnée et un élève donné, on a une note annuelle pour une matière donnée et un élève donné, on a un professeur un professeur enseigne une seule matière Exemple
Bases de Données Relationnelles (20) Ce qui se traduit par: Elève, Matière Professeur Elève, Matière Note Professeur Matière On a donc la relation RESULTAT (Elève, Matière, Professeur, Note) La relation RESULTAT est en 3FN mais pas en FNBC
Bases de Données Relationnelles (21) IV. Les opérations sur les relations Pour manipuler les données, le modèle relationnel dispose d’un ensemble d’opérateurs ensemblistes, dont l’application à des tables constitue l’algèbre relationnelle. Nous citerons 3 opérateurs fondamentales: La Projection, la Jointure et la Sélection IV.1 La Projection Cette opération consiste à supprimer une ou plusieurs colonnes d’une table.
Bases de Données Relationnelles (22) Exemple Soit la relation suivante: RELATION 1 Numéro étudiant 630 651 941 Nom Rachid Bouchra Jack 20 23 Profession père Maçon Dentiste 1 3 Medecin Age Année d’études Bac DEUG Diplôme La projection de la RELATION 1 sur les colonnes (Année d’études, Diplôme) donne:
Bases de Données Relationnelles (23) 1 Bac RELATION 2 3 Année d’études DEUG Diplôme Les lignes identiques sont supprimées Remarque:
Bases de Données Relationnelles (24) IV.2 La jointure de deux relations La jointure de deux relations représente l’opération qui consiste à connecter deux relations qui contiennent respectivement 2 même colonnes ou plusieurs définies sur le même domaine. Exemple: Considérons les relations 3 et 4 suivantes:
Bases de Données Relationnelles (25) Nfacture 120 121 122 Nom du client Rachid Mourad Ahlame 420 640 230 Montant facture 123 124 760 Nom du client Rachid Mourad Ahlame 6200 5100 10840 CA du client La jointure entre RELATION 3 et RELATION 4 se fait selon l’attribut Nom du client. On obtient la RELATION 5 suivante:
Bases de Données Relationnelles (26) Nfacture 120 121 122 Nom du client Rachid Mourad Ahlame 420 640 230 Montant facture 123 124 760 6200 5100 10840 CA du client IV.3 La Sélection S’appelle aussi Restriction. Elle consiste à ne retenir d’une table donnée que les lignes vérifiant une condition donnée.
Bases de Données Relationnelles (27) Exemple: La sélection de la RELATION 5 pour Nom="Ahlame" donne la RELATION 6 suivante: RELATION 6 Nfacture 122 Nom du client Ahlame 230 Montant facture 124 640 10840 CA du client