Cours des bases de données

8,206
-1

Published on

Cours des bases de données et analyse des systèmes SMI5 2011/2012 Mr M.MOUSSI

5 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
8,206
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
630
Comments
5
Likes
8
Embeds 0
No embeds

No notes for slide

Cours des bases de données

  1. 1. Université Mohamed premier Année universitaire 11/12 Faculté des sciences Filière SMI, S5 Département de Mathématiques et d’informatique Bases de données et systèmes d’information Professeur : M. MOUSSI M. Moussi
  2. 2. Plan du cours : <ul><li>Partie I : Concepts généraux. </li></ul><ul><li>Partie II : Bases de données relationnelles </li></ul><ul><li>Partie III : initiation au Langage SQL. </li></ul>M. Moussi
  3. 3. Première partie : Concepts généraux. M. Moussi
  4. 4. Plan : <ul><li>Introduction. </li></ul><ul><li>Définitions. </li></ul><ul><li>composants liés à la gestion d’une base de données. </li></ul><ul><li>Fonctions fournies par un SGBD. </li></ul><ul><li>Indépendance des données. </li></ul><ul><li>Architecture d’un SGBD. </li></ul><ul><li>Principe de fonctionnement d’un SGBD. </li></ul><ul><li>Cycle de vie d’une base de données. </li></ul>M. Moussi
  5. 5. Introduction <ul><li>Tout le monde utilise régulièrement les bases de données (manuelles ou automatisées). </li></ul><ul><li>Inconvénients de la gestion manuelle : </li></ul><ul><ul><li>La recherche d’information est lente, exemple : gestion des informations d’un meuble… </li></ul></ul><ul><ul><li>Les feuilles peuvent être perdues ou déchirées, donc perte de l’historique. </li></ul></ul><ul><ul><li>Moins de sécurité : n’importe qui peut accéder aux informations. </li></ul></ul><ul><ul><li>…etc. </li></ul></ul>M. Moussi
  6. 6. Introduction <ul><li>Avantages de la gestion automatique : </li></ul><ul><ul><li>Les travaux ennuyeux de maintenance manuelle des fichiers sont éliminés. </li></ul></ul><ul><ul><li>La réduction ou la suppression du volume du papier. </li></ul></ul><ul><ul><li>L’efficacité d’accès aux données. </li></ul></ul><ul><ul><li>La gestion d’un historique. </li></ul></ul><ul><ul><li>Exactitude : des informations précises et réactualisées sont disponibles à tout moment. </li></ul></ul><ul><ul><li>…etc. </li></ul></ul>M. Moussi
  7. 7. Introduction <ul><li>Exemples d’applications : </li></ul><ul><ul><ul><ul><li>Application de gestion des enseignements : </li></ul></ul></ul></ul>Numéro étudiant Nom étudiant Prénom étudiant Adresse Date de naissance Numéro module Numéro enseignant Salle date Heure début Durée Numéro étudiant numéro module Date inscription Numéro module Intitulé module Volume horaire semestre Pré requis Numéro enseignant Nom enseignant Prénom enseignant adresse Date de naissance Module Enseignant Inscription Enseignement Etudiant M. Moussi
  8. 8. Introduction <ul><ul><ul><ul><li>Application de gestion des commandes : </li></ul></ul></ul></ul>Code produit Désignation Prix unitaire Numéro commande Numéro fournisseur Code produit Quantité Numéro fournisseur Nom fournisseur Adresse Ville Fournisseur Commande Produit M. Moussi
  9. 9. Introduction <ul><ul><ul><ul><li>Application de réservation de places d’avion : </li></ul></ul></ul></ul>Numéro passager Nom passager Prénom passager Adresse Numéro ligne Ville départ Ville arrivée Nom ville Nom aéroport   Type avion Nombre de places Numéro réservation Numéro passager Numéro vol Date réservation Avion Réservation Ville Ligne Passage Numéro vol Numéro ligne Jour&Heure du vol Type avion Vol M. Moussi
  10. 10. Définitions : <ul><li>Base de données  : </li></ul><ul><ul><li>Collection de données : </li></ul></ul><ul><ul><ul><li>Persistantes. </li></ul></ul></ul><ul><ul><ul><li>Opérationnelles. </li></ul></ul></ul><ul><ul><ul><li>Enregistrées et utilisées par des systèmes d’application (des programmes) d’une entreprise particulière. </li></ul></ul></ul>M. Moussi
  11. 11. Définitions : <ul><li>Base de données  : </li></ul><ul><ul><li>Structurée indépendamment d’une quelconque application. </li></ul></ul><ul><ul><li>Cohérente. </li></ul></ul><ul><ul><li>De redondance minimale. </li></ul></ul><ul><ul><li>Peut être accessible simultanément par plusieurs utilisateurs. </li></ul></ul>M. Moussi
  12. 12. Définitions <ul><li>Modèle de données : </li></ul><ul><ul><li>Est un Ensemble de concepts et de règles d’utilisation de ces concepts qui permettent de décrire les données d’une BD et de modéliser leur structure. </li></ul></ul><ul><ul><li>Est un moyen de description du monde réel. </li></ul></ul><ul><ul><li>Types de modèles de données principaux : Le modèle hiérarchique, le modèle réseau, le modèle relationnel, le modèle objet. </li></ul></ul>M. Moussi
  13. 13. Définitions <ul><li>Schéma d’une base de données : </li></ul><ul><ul><li>Est un groupe d’objet d’une base de données (table, index, des contraintes…) qui sont unis et reliés entre eux. </li></ul></ul><ul><ul><li>C’est une description de la base de données obtenue en employant un modèle de données. </li></ul></ul><ul><ul><li>Exemple : schéma relationnel : </li></ul></ul>Propriétaire du schéma tables index procédures contraintes vues M. Moussi
  14. 14. Définitions <ul><li>Système de gestion de base de données : </li></ul><ul><ul><li>Est un système informatique (logiciel) permettant de maintenir des données et de les rendre disponible à la demande; </li></ul></ul><ul><ul><li>Tout SGBD appartient à une classe associée à un modèle de données. </li></ul></ul>M. Moussi
  15. 15. Composants liés à la gestion d’une base de données   <ul><li>Les données : </li></ul><ul><ul><li>Données intégrées : la BD peut être vue comme une unification de plusieurs fichiers de données distincts, pas de redondance . </li></ul></ul><ul><li>Exemple : </li></ul><ul><li>Etudiant : NumEtudiant, nom, adresse, date de naissance… </li></ul><ul><li>Inscription : NumEtudiant, NumModule, DateInscription… </li></ul><ul><li>pour le nom d’un étudiant, il suffit de le chercher dans le fichier Etudiant. </li></ul>M. Moussi
  16. 16. Composants liés à la gestion d’une base de données <ul><ul><li>Données partagées : chaque donnée de la base peut être partagée par plusieurs utilisateurs qui peuvent accéder simultanément à cette donnée. </li></ul></ul><ul><ul><li>Exemple  : </li></ul></ul><ul><ul><li>Dans une application de gestion de la scolarité, les utilisateurs du service d’examen et du service d’inscription peuvent accéder aux informations relatives à l’étudiant dans le fichier Etudiant. </li></ul></ul>M. Moussi
  17. 17. Composants liés à la gestion d’une base de données <ul><li>Le matériel : se compose des volumes de mémorisation pour le stockage des données, le processeur et la mémoire principale pour l’exécution du logiciel. </li></ul><ul><li>Le logiciel : c’est le SGBD, responsable de l’exécution de toutes les requêtes des utilisateurs pour accéder à la base de données et manipuler les données. </li></ul><ul><li>Exemple : Oracle, Informix, Sybase, Access, </li></ul><ul><li>SQL Server… </li></ul>M. Moussi
  18. 18. Composants liés à la gestion d’une base de données <ul><li>Les intervenants : </li></ul><ul><ul><li>L’administrateur de la BD : responsable sur le contrôle les données : </li></ul></ul><ul><ul><ul><li>définit les types de données à Stocker dans la base, </li></ul></ul></ul><ul><ul><ul><li>délivre des autorisations d’accès à la BD, </li></ul></ul></ul><ul><ul><ul><li>décide des stratégies de maintenance et de manipulation de ces données. </li></ul></ul></ul>M. Moussi
  19. 19. Composants liés à la gestion d’une base de données <ul><ul><li>Le programmeur de l’application : développe l’application ( le programme) utilisée pour accéder à la base de données. </li></ul></ul><ul><ul><li>L’utilisateur final : accède à la base de données à travers une interface intégrée au logiciel ou bien une application. </li></ul></ul>M. Moussi
  20. 20. Fonctions fournies par un SGBD  <ul><li>Description des données  : </li></ul><ul><ul><li>D escription des objets (Etudiant, Enseignant, module…), leurs attributs (NumEtudiant, Nom, Adresse…). </li></ul></ul><ul><ul><li>Description des liens ( un Etudiant est inscrit dans un module). </li></ul></ul><ul><ul><li>Description des contraintes éventuelles sur les objets, leurs attributs ou leurs liens. </li></ul></ul><ul><ul><li>À l’aide du langage de description de données (LDD) . </li></ul></ul>M. Moussi
  21. 21. <ul><li>Manipulation des données  : </li></ul><ul><ul><li>Concerne les outils et les mécanismes qui permettent de faire communiquer une BD et l’utilisateur. </li></ul></ul><ul><ul><li>Effectuer des opérations de recherche, d’insertion, de modification et de suppression sur cette base. </li></ul></ul><ul><ul><li>A l’aide du langage de manipulation de données </li></ul></ul><ul><ul><li>( LMD ) . </li></ul></ul>Fonctions fournies par un SGBD  M. Moussi
  22. 22. Fonctions fournies par un SGBD <ul><li>Assurer la cohérence des données : </li></ul><ul><ul><li>Soit une information représentée d’une façon redondante dans la BD, la mise à jour de cette information dans un seul endroit rend la BD dans un état incohérent. </li></ul></ul><ul><ul><li>Une BD incohérente fournit des données incorrecte ou contradictoires. </li></ul></ul><ul><ul><li>Par l’élimination de la redondance ou bien son contrôle, le SGBD garantit la cohérence. </li></ul></ul>M. Moussi
  23. 23. Fonctions fournies par un SGBD  <ul><ul><li>Exemple : deux étudiants avec les mêmes informations, si j’ai pas d’identifiant (numéro par exemple)? </li></ul></ul><ul><li>Intégrité des données  : </li></ul><ul><ul><li>Est relatif à la qualité de la valeur enregistrée, celle-ci doit vérifier certains propriétés de façon à garantir l’exactitude et la cohérence des données. Ces propriétés sont appelées contraintes d’intégrité . </li></ul></ul>M. Moussi
  24. 24. Fonctions fournies par un SGBD <ul><ul><li>Exemples : </li></ul></ul><ul><ul><ul><li>Chaque étudiant possède un numéro qui l’identifie. </li></ul></ul></ul><ul><ul><ul><li>Un étudiant ne peut suivre que quatre module au plus dans un semestre. </li></ul></ul></ul><ul><ul><ul><li>Un étudiant ne peut pas être inscrit deux fois dans un même module. </li></ul></ul></ul><ul><ul><ul><li>On ne peut pas programmer deux cours pour le même professeur dans le même créneau. </li></ul></ul></ul><ul><ul><ul><li>On ne peut pas programmer deux cours dans la même salle dans le même créneau. </li></ul></ul></ul><ul><ul><ul><li>La durée d’une séance de cours ne peut excéder 3 heurs et ne peut être moins que 1Heure et ½. </li></ul></ul></ul>M. Moussi
  25. 25. Fonctions fournies par un SGBD <ul><li>Fiabilité  : </li></ul><ul><ul><li>Risque de perte d’informations à cause d’un incident matériel ou logiciel : erreur de programmation, panne système, coupure du courant, le disque dur qui contient la base est endommagé, ... </li></ul></ul><ul><ul><li>Le SGBD doit offrir la possibilité de remettre la BD dans un état opérationnel. </li></ul></ul><ul><ul><li>La journalisation des opérations réalisées sur la base et leur ré-exécution automatique en cas de besoin. </li></ul></ul>M. Moussi
  26. 26. Fonctions fournies par un SGBD <ul><li>Les accès concurrents  : </li></ul><ul><ul><li>Plusieurs utilisateurs peuvent accéder aux données simultanément. </li></ul></ul><ul><ul><li>Le SGBD doit gérer les conflits qui peuvent être résultés de ces accès. </li></ul></ul><ul><ul><li>Exemple : Soient les deux opérations de mise à jour, notées OP1 et OP2, qui s’effectuent sur une même donnée V=100. On a deux cas : </li></ul></ul>M. Moussi
  27. 27. Fonctions fournies par un SGBD <ul><ul><ul><li>OP1 et OP2 sont séquentielles : </li></ul></ul></ul><ul><ul><ul><li>Après exécution séquentielle des deux OP1 et OP2, on obtient V =250. </li></ul></ul></ul>Ecrire(Y, V) Ecrire(X, V) Y  Y+100 X  X+50 Y  Lire(V) X  Lire(V) OP2 OP1 M. Moussi
  28. 28. Fonctions fournies par un SGBD <ul><ul><ul><li>Exécution d’une manière concurrente : </li></ul></ul></ul><ul><ul><ul><li>Après exécution concurrente, on obtient V =200. </li></ul></ul></ul>Y  Y+100 OP2 OP1 X  Lire(V) Ecrire(Y, V) Ecrire(X, V) Y  Lire(V) X  X+50 M. Moussi
  29. 29. Fonctions fournies par un SGBD <ul><ul><ul><li>Conclusion : </li></ul></ul></ul><ul><ul><ul><ul><li>la mise à jour de l’opération OP1 a écrasé celle de l’opération OP2. Il y’a donc une perte de mise à jour. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Pour éviter ce genre de problème, la technique de verrouillage est souvent utilisée lors d’accès en modification. </li></ul></ul></ul></ul>M. Moussi
  30. 30. Fonctions fournies par un SGBD <ul><li>Confidentialité  : </li></ul><ul><ul><li>Toute information doit être protégée contre l’accès des utilisateurs non autorisés soit en écriture ou en lecture. </li></ul></ul><ul><ul><li>La confidentialité est assurée par : </li></ul></ul><ul><ul><ul><li>Le biais de mot de passe et de gestion des droits d’accès(par utilisateur ou par groupe). </li></ul></ul></ul><ul><ul><ul><li>L’utilisation des sous-schéma. </li></ul></ul></ul>M. Moussi
  31. 31. Fonctions fournies par un SGBD <ul><ul><ul><li>Exemple : </li></ul></ul></ul><ul><ul><ul><li>Dans l’application de la gestion des enseignements Les étudiants sont autorisés à lire les numéros des modules et les horaires de l’enseignement, mais ils ne sont pas autorisés à les modifier… </li></ul></ul></ul>M. Moussi
  32. 32. Architecture d’un SGBD   <ul><li>L’architecture d’un SGBD se compose de trois niveaux : interne, conceptuel et externe,et des liens entres ces niveaux. </li></ul>Vue externe A Vue externe B Schéma conceptuel Lien Externe/ conceptuel A Lien Externe / conceptuel B Lien Conceptuel / interne Niveau conceptuel Niveau externe Niveau interne Schéma interne User A1 User A2 User B1 User B2 User B3 Figure : Architecture d’un SGBD . M. Moussi
  33. 33. Architecture d’un SGBD <ul><li>Le niveau interne ou physique : </li></ul><ul><ul><li>Est le niveau relatif à la mémoire physique. </li></ul></ul><ul><ul><li>Il concerne la structure de stockage physique de la base de données, notamment, les types de fichiers utilisés, caractéristiques des enregistrements (longueur, composants), ainsi que l’accès aux données par exemple à travers les tables et les indexes. </li></ul></ul>M. Moussi
  34. 34. Architecture d’un SGBD <ul><li>Le niveau externe  : </li></ul><ul><ul><li>il s’agit du niveau où les utilisateurs interrogent la BD. </li></ul></ul><ul><ul><li>A ce niveau, à chaque utilisateur ou groupe d’utilisateurs, des vues sur tout ou sur une partie du schéma sont associées. </li></ul></ul>M. Moussi
  35. 35. Architecture d’un SGBD <ul><li>Le niveau conceptuel ou logique : </li></ul><ul><ul><li>présente d’une façon globale et abstraite la structure des données (les regroupements des données, les liens entre les regroupements) et des règles de gestion et de fonctionnement. </li></ul></ul><ul><ul><li>En général, la vue conceptuelle est censée être une vue des données telles qu’elles sont réellement. </li></ul></ul>M. Moussi
  36. 36. Architecture d’un SGBD <ul><li>Les liens  : </li></ul><ul><ul><li>Le lien conceptuel/interne : définit la correspondance entre la vue conceptuel et la BD en mémoire, spécifie la représentation des enregistrements et des champs au niveau interne. </li></ul></ul><ul><ul><ul><li>Pour garder l’invariance du schéma conceptuel, les modifications au niveau interne entraîne des modifications au niveau de ce lien. </li></ul></ul></ul>M. Moussi
  37. 37. Architecture d’un SGBD <ul><ul><li>Un lien externe/conceptuel  : </li></ul></ul><ul><ul><ul><li>définit la correspondance entre une vue externe et la vue conceptuel. </li></ul></ul></ul>M. Moussi
  38. 38. Indépendance des données <ul><li>Indépendance physique : </li></ul><ul><ul><li>Permet à l’administrateur de la BD d’être libre de modifier la structure de mémorisation ou la technique d’accès, suite à un changement des besoins, sans avoir à modifier les applications existantes. </li></ul></ul><ul><ul><li>Exemple : des nouveaux types de données peuvent être introduits dans la BD, des nouveaux types de matériel de stockage disponibles, ou ajout d’une table d’index pour accélération. </li></ul></ul>M. Moussi
  39. 39. Indépendance des données <ul><li>Indépendance logique : </li></ul><ul><ul><li>Permet la modification du schéma conceptuel sans avoir à modifier les programmes existants. </li></ul></ul><ul><ul><li>Elle peut être définie comme la protection des utilisateurs et des programmes contre tout changement de la structure logique de la BD. </li></ul></ul><ul><ul><li>L’administrateur doit pouvoir faire évoluer le système d’information sans remettre en cause la vue de chaque utilisateur ou groupe d’utilisateurs. </li></ul></ul>M. Moussi
  40. 40. Indépendance des données <ul><ul><li>Exemple  : Dans une BD contenant les informations suivantes : </li></ul></ul><ul><ul><li>Véhicule (numéro véhicule, marque, type, couleur) </li></ul></ul><ul><ul><li>Personne (CIN, nom, prénom) </li></ul></ul><ul><ul><li>Propriétaire (CIN, numéro véhicule, date achat) </li></ul></ul><ul><ul><li>  Un groupe d’utilisateur ne s'intéresse qu'aux personnes qui possèdent une voiture : </li></ul></ul><ul><ul><li>Personne (CIN, nom, prénom, numéro véhicule). </li></ul></ul><ul><ul><li>Un autre groupe d’utilisateurs ne s'intéresse qu'aux véhicules vendus à une certaine date : </li></ul></ul><ul><ul><li>Voiture (numéro véhicule, type, marque, date achat). </li></ul></ul>M. Moussi
  41. 41. <ul><li>L a suite des phases qui permet de construire le processus d’accès aux données est : </li></ul><ul><ul><li>L’utilisateur émet une requête au moyen d’un langage de données, en général SQL. </li></ul></ul><ul><ul><li>Le SGBD intercepte la requête et effectue une analyse sémantique et syntaxique. </li></ul></ul><ul><ul><li>Traduction au niveau logique : le SGBD inspecte le schéma externe de cet utilisateur, le lien externe/conceptuel correspondant et le schéma logique. </li></ul></ul><ul><ul><li>Contrôle de confidentialité, concurrence… </li></ul></ul>Principe de fonctionnement d’un SGBD M. Moussi
  42. 42. Principe de fonctionnement d’un SGBD <ul><ul><li>Si la requête est acceptée, le SGBD effectue une optimisation et découpe la requête en sous-requêtes élémentaires et les transfère au niveau interne. </li></ul></ul><ul><ul><li>Traduction au niveau interne : le SGBD inspecte le lien conceptuel/interne correspondant et la définition de la structure mémoire. </li></ul></ul><ul><ul><li>Exécution des opérations nécessaires au niveau de la base de données mémoire. </li></ul></ul>M. Moussi
  43. 43. Cycle de vie d’une base de données  <ul><li>Les quatre phases suivantes présentent la vie d’une base de données. </li></ul><ul><li>Conception  : </li></ul><ul><ul><li>consiste à construire le modèle conceptuel et le convertir en modèle physique opérationnel. </li></ul></ul><ul><ul><li>Comporte la définition et la description des données, la création des structures des données, décrire les contraintes d’intégrité </li></ul></ul><ul><ul><li>Pour l’aspect physique, on peut indiquer l’ensemble des supports physiques pour le stockage des données. </li></ul></ul>M. Moussi
  44. 44. Cycle de vie d’une base de données  <ul><li>Implantation des données  : </li></ul><ul><ul><li>Création de la BD, il s’agit de créer un ensemble structuré. </li></ul></ul><ul><ul><li>Le SGBD offre des moyens pour implanter physiquement les données et décrire les liens qui les unissent. </li></ul></ul><ul><li>Utilisation  : </li></ul><ul><ul><li>la fiabilité d’une BD est de mettre à la disposition des données à être utilisées. Le LMD permet l’utilisation. </li></ul></ul>M. Moussi
  45. 45. Cycle de vie d’une base de données <ul><li>Maintenance  : </li></ul><ul><ul><li>une BD est modifiée tout au long de sa vie, par l’ajout ou la suppression de table, de colonne ou d’index…, L’insertion et la suppression de données entraînent une fragmentation. </li></ul></ul><ul><ul><li>La maintenance est ainsi importante pour garantir l’utilité et les performances d’une BD. Elle doit l’accompagner durant son existence. </li></ul></ul><ul><ul><li>S’occupe essentiellement de la façon dont les données sont stockées et du volume de données atteint après un certain temps d’utilisation. </li></ul></ul>M. Moussi
  46. 46. Deuxième partie : Bases de données relationnelles. M. Moussi
  47. 47. Plan : <ul><li>Introduction. </li></ul><ul><li>Principaux concepts du modèle relationnel. </li></ul><ul><li>Contraintes d’intégrité. </li></ul><ul><li>L’algèbre relationnelle ou langage algébrique. </li></ul><ul><li>Normalisation. </li></ul>M. Moussi
  48. 48. Introduction <ul><li>Proposé par Ted Codd en 1970. </li></ul><ul><li>Son objectif essentiel l’accroissement de l’indépendance des programmes vis-à-vis de la présentation des données. </li></ul><ul><li>Fondé sur la théorie mathématique des ensembles. </li></ul><ul><li>Exemples des SGBD relationnels : Oracle, Informix, Sybase, Dbase, Access, MySQL,… </li></ul>M. Moussi
  49. 49. Introduction <ul><li>Trois aspects : </li></ul><ul><ul><li>Aspect structurel : l’utilisateur perçoit les données comme des tables. </li></ul></ul><ul><ul><li>Aspect intégrité   : ces tables satisfont certains contraintes d’intégrité. </li></ul></ul><ul><ul><li>Aspect manipulation : les opérateurs dont dispose l’utilisateur (par exemple, pour accéder aux données) génèrent de nouvelles tables à partir des tables existantes. </li></ul></ul>M. Moussi
  50. 50. Introduction <ul><ul><li>Trois opérations importantes : la restriction (ou sélection), la projection et la jointure </li></ul></ul><ul><ul><ul><li>Exemples : soient les deux tables : </li></ul></ul></ul>18 Rue 1,21 mohamed Hamadi 3 20 Alkods 8 Fatima Najjar 2 19 Lazaret 25 Ahmed Ahmadi 1 Age Adresse Prénom Nom Num Etudiant Inscription 15/09/2006 27 3 15/09/2005 26 1 15/09/2005 25 1 Date inscription NumModule NumEtudiant M. Moussi
  51. 51. Introduction <ul><ul><ul><li>Le résultat de restriction sur Etudiant où Age>18 est la relation : </li></ul></ul></ul><ul><ul><ul><li>Le résultat de la projection de Etudiant sur Num, Adresse est : </li></ul></ul></ul>20 Alkods 8 Fatima Najjar 2 19 Lazaret 25 Ahmed Ahmadi 1 Age Adresse Prénom Nom Num Rue 1,21 3 Alkods 8 2 Lazaret 25 1 Adresse Num M. Moussi
  52. 52. Introduction <ul><ul><ul><li>Le résultat de jointure de Etudiant et Inscription sur Numéro étudiant est : </li></ul></ul></ul>18 19 19 Age 27 26 25 NumModule 15/09/2010 Rue 1,21 mohamed Hamadi 3 15/09/2009 Lazaret 25 Ahmed Ahmadi 1 15/09/2009 Lazaret 25 Ahmed Ahmadi 1 Date inscription Adresse Prénom Nom Num M. Moussi
  53. 53. Principaux concepts du modèle relationnel <ul><li>Domaine  : </li></ul><ul><ul><li>est un type de données, il est définit par un ensemble de valeurs. </li></ul></ul><ul><ul><li>Exemples : </li></ul></ul><ul><ul><ul><li>Dnom : chaîne de caractères de longueur 30. </li></ul></ul></ul><ul><ul><ul><li>Dnum : entiers compris entre 1 et 10000. </li></ul></ul></ul><ul><ul><ul><li>Dcouleurs :{  blanc  ,  bleu  ,  vert  ,  jaune  ,  rouge   } </li></ul></ul></ul><ul><ul><ul><li>Dage : entiers compris entre 1 et 100. </li></ul></ul></ul><ul><ul><ul><li>Ddate : [01 :31] / [01 :12] / [1920 :2011] </li></ul></ul></ul>M. Moussi
  54. 54. Principaux concepts du modèle relationnel <ul><li>Relation  : </li></ul><ul><ul><li>formellement, c’est un sous-ensemble du produit cartésien d’une liste de domaines. </li></ul></ul><ul><ul><li>Une relation n-aire sur les domaines D 1, D 2 ,…, D n est un sous-ensemble du produit cartésien </li></ul></ul><ul><ul><li>D 1  D 2  …  D n . </li></ul></ul><ul><ul><li>Un élément appartenant à une telle relation sera appelé n-uplet ou tuple ou occurrence. Il sera noté (d 1 , d 2 ,…, d n ) où d i  D i  i  {1, …n}. </li></ul></ul><ul><ul><li>L’entier n est le degré, le nombre de n-uplets est la cardinalité de la relation. </li></ul></ul>M. Moussi
  55. 55. Principaux concepts du modèle relationnel <ul><li>Attribut  : </li></ul><ul><ul><li>un attribut Ai de la relation est un identificateur associé à un domaine D i . </li></ul></ul><ul><ul><li>On le désigne parfois par : nom de la relation.nom de l’attribut . les attributs Ai doivent être distincts. </li></ul></ul><ul><ul><li>Formellement, un tuple peut être définit comme un produit cartésien ( A1 : D1, A2 : D2 ,…, An : Dn). Une relation comme un ensemble paramétré par le tuple. Ai est une fonction qui associe à un tuple une valeur dans le domaine Di. </li></ul></ul>M. Moussi
  56. 56. Principaux concepts du modèle relationnel <ul><ul><li>Un attribut peut ne pas être valué pour un tuple, on dit alors qu’il a une valeur nulle . </li></ul></ul><ul><ul><li>Les notions d’attribut multi-valué ou complexe n’existent pas dans le modèle relationnel. Il faut donc les modéliser autrement : </li></ul></ul><ul><ul><ul><li>pour un attribut complexe, il faut choisir entre le composé ou les composants. </li></ul></ul></ul><ul><ul><ul><li>Pour un attribut multi-valué, il faut créer une autre relation. </li></ul></ul></ul>M. Moussi
  57. 57. Principaux concepts du modèle relationnel <ul><ul><ul><li>Exemples : </li></ul></ul></ul><ul><ul><ul><ul><li>Soit l’information Adresse : nom rue, N°, ville, code postal. Par exemple, adresse prend la valeur : </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Rue Med V, 2, Oujda, 60000. On a deux solutions : </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Un attribut par composant : </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Un seul attribut de domaine chaîne de caractères : </li></ul></ul></ul></ul>60000 Oujda 2 Rue Med V code postal ville N° nom rue Rue Med V 2 Oujda 60000 Adresse M. Moussi
  58. 58. Principaux concepts du modèle relationnel <ul><ul><ul><ul><li>Mémoriser les différents cours suivis par les étudiants : </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>L’utilisation de plusieurs attributs : cours1, cours2,… est incorrecte. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Il faut créer une autre relation supplémentaire : </li></ul></ul></ul></ul></ul>BD 20 LC 20 GL 13 BD 13 BD 12 Cours Numéro étudiant M. Moussi
  59. 59. Principaux concepts du modèle relationnel <ul><li>Schéma de relation  : </li></ul><ul><ul><li>un schéma de relation est le nom de la relation suivi de la liste des attributs avec leurs domaines, par exemple : Etudiant (Numéro étudiant : entier, nom : chaîne, Prénom : chaîne, Adresse : alphanumérique(30), age : entier). </li></ul></ul>M. Moussi
  60. 60. Principaux concepts du modèle relationnel <ul><li>Exemple : </li></ul>Entier chaîne alphanumérique Entier Domaines Tuple Ou Occurrence Attributs Etudiant 18 Rue 1,21 mohamed Hamadi 3 20 Alkods 8 Fatima Najjar 2 19 Lazaret 25 Ahmed Ahmadi 1 Age Adresse Prénom Nom Num M. Moussi
  61. 61. Principaux concepts du modèle relationnel <ul><li>Identifiant d’une table : </li></ul><ul><ul><li>l ’unicité de l’identification des n-uples est assurée par la notion de clé de relation. </li></ul></ul><ul><ul><li>L’identifiant c’est un ou une liste d’attributs appartenant au schéma de la relation et dont les valeurs permettent de distinguer les n-uplets. </li></ul></ul><ul><ul><li>Une clé minimale, c'est-à-dire comportant un minimum d’attributs, est choisie comme identifiant et est appelé clé primaire, les autres étant appelés clés candidates . </li></ul></ul>M. Moussi
  62. 62. Principaux concepts du modèle relationnel <ul><ul><li>Toute relation possède une clé primaire. </li></ul></ul><ul><ul><li>L’unicité des tuples est une propriété de l’ensemble dans le sens mathématique. </li></ul></ul><ul><ul><li>L’attribut(s) présentant la clé primaire n’admet pas de valeurs nulles. </li></ul></ul><ul><ul><li>Dans le schéma d’une relation, on souligne la clé primaire. </li></ul></ul><ul><ul><li>Exemple : </li></ul></ul><ul><ul><li>Le schéma de relation Etudiant est donnée comme suit : </li></ul></ul><ul><ul><li>Etudiant ( Numéro étudiant  , nom , Prénom , Adresse,age) </li></ul></ul>M. Moussi
  63. 63. Principaux concepts du modèle relationnel <ul><li>L’identifiant externe :  </li></ul><ul><ul><li>La clé étrangère est un attribut d’une relation et clé primaire dans une autre relation référencée. </li></ul></ul><ul><ul><li>Permet de vérifier automatiquement la présence des données référencées dans des tables différentes . </li></ul></ul><ul><ul><li>Définit dans des tables enfant et assure qu’un enregistrement parent a été créé avant un enregistrement enfant et que l’enregistrement enfant sera supprimé avant l’enregistrement parent. </li></ul></ul>M. Moussi
  64. 64. Principaux concepts du modèle relationnel <ul><ul><li>Exemple : </li></ul></ul>clé étrangère Référence une clé primaire Module(table parent) semestre volume horaire intitulé NumModule S6 70 Rés 14 S5 60 Arch 13 S5 70 BD 12 Inscription(table enfant) date inscription numModule numEtudiant 09/11/11 12 4 08/01/11 14 1 08/01/11 14 2 09/11/10 12 1 M. Moussi
  65. 65. Principaux concepts du modèle relationnel <ul><li>Schéma et base de données relationnels  : </li></ul><ul><ul><li>Le schéma relationnel est constitué par l’ensemble des schémas des relations avec les clés primaires, les clés étrangères (pour chaque relation) et éventuellement d’autres contraintes d’intégrité. </li></ul></ul><ul><ul><li>Une BD relationnelle est une collection des différentes relations du schéma relationnel, variables dans le temps. Chaque relation est vue comme un tableau dont les colonnes désignent les attributs et les lignes désignent les n-uplets. </li></ul></ul>M. Moussi
  66. 66. Principaux concepts du modèle relationnel <ul><li>Exemples de schéma : </li></ul><ul><ul><li>  Relation  : Etudiant </li></ul></ul><ul><ul><li>Attributs  : Numéro étudiant : entier non nul </li></ul></ul><ul><ul><li> Nom étudiant : Dnom non nul </li></ul></ul><ul><ul><li> Age : Dage </li></ul></ul><ul><ul><li>Identifiant  : Numéro étudiant  </li></ul></ul><ul><ul><li>Relation  : Module </li></ul></ul><ul><ul><li>Attributs  : Numéro module : entier non nul </li></ul></ul><ul><ul><li> Intitulé module : Dnom non nul </li></ul></ul><ul><ul><li> Volume horaire : entier non nul </li></ul></ul><ul><ul><li> Semestre : enier non nul </li></ul></ul><ul><ul><li>Identifiant  : Numéro module </li></ul></ul>M. Moussi
  67. 67. Principaux concepts du modèle relationnel <ul><ul><li>  Relation  : Inscription </li></ul></ul><ul><ul><li>Attributs  : Numéro étudiant : entier non nul </li></ul></ul><ul><ul><li> Numéro module : entier non nul </li></ul></ul><ul><ul><li> Date inscription : Ddate. </li></ul></ul><ul><ul><li>Identifiants  : Numéro étudiant+ Numéro module </li></ul></ul><ul><ul><ul><li> + Date inscription.   </li></ul></ul></ul><ul><ul><ul><li>Identifiants externes :   Numéro étudiant référence un étudiant. </li></ul></ul></ul><ul><ul><ul><li> Numéro module référence un module. </li></ul></ul></ul><ul><ul><ul><li>  </li></ul></ul></ul>M. Moussi
  68. 68. Principaux concepts du modèle relationnel <ul><ul><li>  Relation  :   Enseignant </li></ul></ul><ul><ul><ul><li>Attributs  : Numéro enseignent : entier non nul </li></ul></ul></ul><ul><ul><ul><li>Nom enseignant : Dnom non nul </li></ul></ul></ul><ul><ul><ul><li> Statut : Dnom non nul </li></ul></ul></ul><ul><ul><ul><li> Tel : entier </li></ul></ul></ul><ul><ul><ul><li>Compte : entier non nul </li></ul></ul></ul><ul><ul><ul><li>Identifiants  : Numéro enseignent </li></ul></ul></ul><ul><ul><li>Relation  :   Cours </li></ul></ul><ul><ul><ul><li>Attributs  : Nom cours : Dnom non nul </li></ul></ul></ul><ul><ul><ul><li>Numéro enseignant : entier non nul </li></ul></ul></ul><ul><ul><ul><li>Salle : entier non nul </li></ul></ul></ul><ul><ul><ul><li>  Identifiant  : Nom cours  </li></ul></ul></ul><ul><ul><ul><li>Identifiants   externes : Numéro enseignant référence un enseignant. </li></ul></ul></ul>M. Moussi
  69. 69. Contraintes d’intégrité  <ul><li>Un schéma de BD décrit les données ainsi que les contraintes que celles–ci doivent vérifier pour être considérées comme des données de qualité. Ces contraintes dites d’intégrité sont généralement des assertions qui doivent être vraies en des instants déterminés ou durant la vie de la base. </li></ul><ul><li>A chaque insertion, modification ou suppression les contraintes d’intégrité sont vérifiées automatiquement. </li></ul>M. Moussi
  70. 70. Contraintes d’intégrité  <ul><li>Types de contraintes d’intégrité   : </li></ul><ul><ul><li>Contraintes d’intégrité local : portent sur un ensemble de tuples ou sur des attributs au sein d’une relation : </li></ul></ul><ul><ul><ul><li>  Concerne un domaine (entier, réel, intervalle, liste de valeur…). </li></ul></ul></ul><ul><ul><ul><li>Impose q’un attribut ne puisse pas être sans valeur, c'est-à-dire non nul. </li></ul></ul></ul><ul><ul><ul><li>Spécifie une valeur par défaut pour un attribut. </li></ul></ul></ul>M. Moussi
  71. 71. Contraintes d’intégrité  <ul><ul><ul><li>Spécifie un ensemble d’attribut constituant la clé primaire, sa valeur doit être unique et non nulle, c’est ce qu’on appelle l’intégrité d’entité . </li></ul></ul></ul><ul><ul><ul><li>Impose l’unicité de valeur d’un ensemble d’attributs constituant une clé autre que la clé primaire. </li></ul></ul></ul><ul><ul><li>Les contraintes inter-relations : dites aussi contraintes de référence, elles impliquent plus qu’une relation : </li></ul></ul>M. Moussi
  72. 72. Contraintes d’intégrité  <ul><ul><ul><li>Permet de spécifier qu’un attribut ou ensemble d’attributs d’une relation ( apparaît comme clé étrangère ) référence la clé primaire d’une autre relation. </li></ul></ul></ul><ul><ul><ul><li>Signifie qu’un tuple qui fait référence à un tuple d’une autre relation, doit faire référence à un tuple existant dans cette relation, c’est l’intégrité référentielle. </li></ul></ul></ul><ul><ul><ul><li>Exemple (voir le paragraphe précédent) </li></ul></ul></ul>M. Moussi
  73. 73. Contraintes d’intégrité  <ul><ul><li>Contraintes dynamiques : permettent d’exprimer le fait que les valeurs des données d’un état de la base dépendent de l’état ou d’un des états précédents . </li></ul></ul><ul><li> Exemples : </li></ul><ul><ul><ul><li>Le salaire d’un employé ne peut pas diminuer. </li></ul></ul></ul><ul><ul><ul><li>Le nouvel age d’une personne doit être supérieur à l’ancien. </li></ul></ul></ul><ul><ul><ul><li>Le passage d’une valeur de l’attribut situation matrimoniale d’une personne à une autre valeur ne doit pas permettre de retour à la valeur célibataire si celle-ci a été modifiée. </li></ul></ul></ul>M. Moussi
  74. 74. Contraintes d’intégrité  <ul><ul><li>Les contraintes temporelles : par exemple, Toutes les commandes de la semaine courante doivent avoir été facturées avant le premier jour ouvrable de la semaine suivante. </li></ul></ul>M. Moussi
  75. 75. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Projection : </li></ul></ul><ul><ul><ul><li>Signature  : Relation  liste d’attributs  Relation </li></ul></ul></ul><ul><ul><ul><li>La projection d’une relation R(X,Y) sur Y( où X désigne la liste des attributs de R ), notée  Y (R) ou Proj Y (R) est une relation S(Y), </li></ul></ul></ul><ul><ul><ul><li>S(Y) = {  y  |  x tel que  x, y   R(X,Y) }. </li></ul></ul></ul><ul><ul><ul><li>La relation est constituée par les colonnes Y de la relation R. </li></ul></ul></ul>M. Moussi
  76. 76. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : La relation Genre_livre est le résultat de l’expression  Genre (livre). </li></ul></ul></ul><ul><ul><ul><li>Relation livre Relation Genre_livre </li></ul></ul></ul>Roman L4 Roman L2 Poésie L1 Poésie L3 Genre NumLivre Roman Poésie Genre M. Moussi
  77. 77. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Sélection  : </li></ul></ul><ul><ul><ul><li>Signature  : Relation  expression logique  Relation </li></ul></ul></ul><ul><ul><ul><li>La sélection permet de rechercher dans une relation les n-uplets qui satisfont une propriété donnée sous la forme d’une expression logique. Elle est notée  E R ou Select(R, E) , où E est l’expression de sélection. Le résultat est une relation de même schéma que la relation R et dont chaque n-uplet vérifie l’expression E, c'est-à-dire : </li></ul></ul></ul><ul><ul><ul><li> E R(X) = {  x  tel que  x   R(X) et E(X) }. </li></ul></ul></ul>M. Moussi
  78. 78. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : soit la relation Livre de l’exemple précédent, </li></ul></ul></ul><ul><ul><ul><ul><li>la sélection :  (Genre=’poésie’) (Livre ) est la relation appelée LivrePoésie: Relation LivrePoésie </li></ul></ul></ul></ul><ul><ul><ul><ul><li>la sélection  (Genre=’Roman’ et NumLivre  L2 ) (Livre ) est la relation appelée Roman. Relation Roman . </li></ul></ul></ul></ul>Poésie L1 Poésie L3 Genre NumLivre Roman L4 Genre NumLivre M. Moussi
  79. 79. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Produit cartésien  : </li></ul></ul><ul><ul><ul><li>Signature : Relation  Relation  Relation. </li></ul></ul></ul><ul><ul><ul><li>Soit R(X) et S(Y) deux relations où X et Y sont des ensembles disjoints d’attributs. </li></ul></ul></ul><ul><ul><ul><li>Le produit cartésien de R(X) par S(Y) , noté R  S, est constitué par l’ensemble des n-uplets obtenus en concaténant chaque n-uplet de R avec chaque </li></ul></ul></ul><ul><ul><ul><li>n-ulpet de S, c'est-à-dire : </li></ul></ul></ul><ul><ul><li>R  S = {  z  tel que  x  R,  y  S,  z  T tq  X (z)= x et  Y (z )=y }. </li></ul></ul>M. Moussi
  80. 80. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : soit les deux relations suivantes : </li></ul></ul></ul><ul><ul><ul><li>Relation R Relation S </li></ul></ul></ul><ul><ul><ul><li>Le résultat du produit cartésien de R par S est la relation T donnée par : </li></ul></ul></ul><ul><ul><ul><li>Relation T </li></ul></ul></ul>B2 B1 NumBib Poésie L1 Poésie L3 Genre NumLivre B2 Poésie L1 B2 Poésie L3 B1 Poésie L1 B1 NumBib Poésie Genre L3 NumLivre M. Moussi
  81. 81. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>jointure  : </li></ul></ul><ul><ul><ul><li>Signature : Relation  Relation  -expression  Relation </li></ul></ul></ul><ul><ul><ul><li>La  -jointure de deux relations R(X) et S(Y) permet de constituer une relation sur la base d’une  -expression qui doit être vérifiée par des attributs communs, une  -expression étant une expression logique construite à l’aide d’expressions de type X i  Y j ,  est l’un des opérateurs de comparaison : <, >,  ,  ,  , =. </li></ul></ul></ul><ul><ul><ul><li>Cette opération peut se définir comme la composition du produit cartésien et d’une sélection utilisant la </li></ul></ul></ul><ul><ul><ul><li> -expression, soit :  (  -expression) (R  S). </li></ul></ul></ul>M. Moussi
  82. 82. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : soient les deux relations suivantes </li></ul></ul></ul><ul><ul><ul><li>Relation livre Relation auteur </li></ul></ul></ul><ul><ul><ul><li>L’équi-jointure(  est ‘=‘)sur livre.NumLivre=Auteur.NumLivre est : </li></ul></ul></ul><ul><ul><ul><li>Relation auteurlivre </li></ul></ul></ul>Roman L4 Histoire L2 Poésie L1 Poésie L3 Genre NumLivre L5 Mohammed L4 khaled L1 Youssef L3 Ahmed NumLivre NomAuteur khaled Youssef Ahmed NomAuteur L4 L1 L3 NumLivre Roman Poésie Poésie Genre L4 L1 L3 NumLivre M. Moussi
  83. 83. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Remarques : </li></ul></ul></ul><ul><ul><ul><ul><li>La jointure naturelle de R et S (notée R*S ) est l’équi-jointure de R et S sur les attributs ayant même nom dans R et S, suivie de la projection qui permet de conserver un seul de ces attributs égaux de même nom. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>La jointure se fait sur deux attributs qui représentent la même information même si ils ont des noms différents. </li></ul></ul></ul></ul>M. Moussi
  84. 84. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Union  : </li></ul></ul><ul><ul><ul><li>Signature : Relation  Relation  Relation. </li></ul></ul></ul><ul><ul><ul><li>L’union de deux relations R(X) et S(X) est une relation T(X), l’ensemble de ses n-uplets est constitué par l’union des n-uplets de R et ceux de S, c'est-à-dire : </li></ul></ul></ul><ul><ul><ul><li>R  S := T = {<x> tel que <x>  R ou <x>  S }. </li></ul></ul></ul>M. Moussi
  85. 85. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : soient les deux relations : </li></ul></ul></ul><ul><ul><ul><li>Relation livre1 Relation livre2 </li></ul></ul></ul><ul><ul><ul><li>Livre 1  Livre 2 </li></ul></ul></ul>Histoire L2 Poésie L1 Roman L4 Poésie L3 Genre NumLivre Roman L5 Genre NumLivre Poésie L1 Poésie L3 Roman L5 Genre NumLivre Roman L4 Histoire L2 Poésie L1 Poésie L3 M. Moussi
  86. 86. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Intersection  : </li></ul></ul><ul><ul><ul><li>Signature : Relation  Relation  Relation. </li></ul></ul></ul><ul><ul><ul><li>L’intersection de deux relations R(X) et S(X) est une relation T(X) constituée par les n-uplets présents à la fois dans R et dans S : </li></ul></ul></ul><ul><ul><li>R  S := T = {<x> tel que <x>  R et <x>  S }. </li></ul></ul>M. Moussi
  87. 87. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : </li></ul></ul></ul><ul><ul><ul><li>L’intersection des deux relations précédentes livre1 et livre2 est la relation : </li></ul></ul></ul><ul><ul><ul><li>Livre 1  Livre 2 </li></ul></ul></ul>Poésie L3 Poésie L1 Genre NumLivre M. Moussi
  88. 88. L’algèbre relationnelle ou langage algébrique  <ul><ul><li>Différence  : </li></ul></ul><ul><ul><ul><li>Signature : Relation  Relation  Relation. </li></ul></ul></ul><ul><ul><ul><li>La différence entre deux relations R(X) et S(X) est une relation T(X) constituée par les n-uplets présents dans R mais pas dans S : </li></ul></ul></ul><ul><ul><li>R S := T = { <x> tel que <x>  R et <x>  S } </li></ul></ul>M. Moussi
  89. 89. L’algèbre relationnelle ou langage algébrique  <ul><ul><ul><li>Exemple : </li></ul></ul></ul><ul><ul><ul><li>La différence des deux relations livre1 et livre2 est la relation : </li></ul></ul></ul><ul><ul><ul><li>Livre 1 Livre 2 </li></ul></ul></ul>Histoire L2 Roman L4 Genre NumLivre M. Moussi
  90. 90. Normalisation <ul><li>Introduction : </li></ul><ul><ul><li>La constitution de la liste d’attributs du schéma doit refléter un phénomène du domaine d’application et, d’autre part, ne doit pas occasionner de redondance, avec toutes ses implications. </li></ul></ul><ul><ul><li>Les formes normales des relations et les mécanismes pour les construire permettent d’obtenir des relations non redondante. </li></ul></ul><ul><ul><li>Ces mécanismes sont fondés sur les notions de clés de relations et de dépendances entre données. </li></ul></ul>M. Moussi
  91. 91. Normalisation <ul><ul><li>Exemple de mauvaise relation : </li></ul></ul><ul><ul><li>Relation Produit </li></ul></ul><ul><ul><li>cette relation présente différentes difficultés de mise à jour : </li></ul></ul>oujda Tintin F214 400 45 huile P3 Casa Titi FH215 200 62,4 Poudre P2 Oujda Toto F451 100 55 peinture P1 Adresse Nom NumFournisseur Qté PU libellé codeProduit M. Moussi
  92. 92. Normalisation <ul><ul><ul><li>Anomalie de suppression : si je supprime un produit, je doit supprimer tout le tuple, ce qui entraîne la perte des informations concernant le fournisseur. </li></ul></ul></ul><ul><ul><ul><li>Anomalie d’insertion : pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des valeurs pour le code Produit et la quantité. </li></ul></ul></ul><ul><ul><ul><li>Anomalie de modification : si on souhaite changer l’adresse d’un fournisseur , il faut parcourir tous les tuples concernés (tous les produits qu’il fournit), si non on aura une incohérence. </li></ul></ul></ul>M. Moussi
  93. 93. Normalisation <ul><ul><li>Décomposition en trois relations non redondantes </li></ul></ul><ul><ul><li>sans occasionner de perte d’information. </li></ul></ul><ul><ul><li>Relation initiale : </li></ul></ul><ul><ul><li>Produit (code Produit, libellé, PU, Qté, NumFournisseur,Nom,dresse) </li></ul></ul><ul><ul><li>Première décomposition : </li></ul></ul><ul><ul><li>Relation Produit1(code Produit, libellé, PU) </li></ul></ul><ul><ul><li>Relation Produit2(code Produit, NumFournisseur, Qté, Nom,Adresse) </li></ul></ul><ul><ul><li>Deuxième décomposition : </li></ul></ul><ul><ul><li>Relation Produit1(code Produit, libellé, PU) </li></ul></ul><ul><ul><li>Relation Produit21(code Produit, NumFournisseur, Qté) </li></ul></ul><ul><ul><li>Relation Produit22(NumFournisseur, Nom, Adresse) </li></ul></ul>M. Moussi
  94. 94. Normalisation <ul><li>Dépendances fonctionnelles (DFs)  : </li></ul><ul><ul><li>Définition : Soit R(X, Y, Z) un schéma de relation avec Z éventuellement vide. On dit que X détermine Y dans R, ou Y dépend fonctionnellement de X dans R, si pour tout tuple <x, y, z>, <x’,y’,z’> de R, x =x’  y =y’. On note X  Y. </li></ul></ul><ul><ul><li>Exemple : </li></ul></ul><ul><ul><li>Dans le schéma : </li></ul></ul><ul><ul><li>Produit(code Produit, libellé, PU, Qté, NumFournisseur, Nom, adresse), on a les dépendances fonctionnelles : </li></ul></ul><ul><ul><li>code Produit  libellé, PU ; </li></ul></ul><ul><ul><li>NumFournisseur  Nom, adresse; </li></ul></ul><ul><ul><li>code Produit, NumFournisseur  Qté. </li></ul></ul>M. Moussi
  95. 95. Normalisation <ul><ul><li>Propriétés des DFs : </li></ul></ul><ul><ul><ul><li>Réflexivité  : si Y  X alors X  Y. </li></ul></ul></ul><ul><ul><ul><li>Augmentation  : si X  Y alors X  Z  Y  Z. </li></ul></ul></ul><ul><ul><ul><li>Transitivité  : si X  Y et Y  Z alors X  Z. </li></ul></ul></ul><ul><ul><ul><li>Union  : si X  Y et X  Z alors X  Y  Z. </li></ul></ul></ul><ul><ul><ul><li>Pseudo-transitivité  : si X  Y et Y  W  Z. alors X  W  Z. </li></ul></ul></ul><ul><ul><ul><li>Décomposition  : si X  Y et Z  Y alors X  Z. </li></ul></ul></ul>M. Moussi
  96. 96. Normalisation <ul><ul><li>Typologie des DFs : </li></ul></ul><ul><ul><ul><li>X  Y est triviale si Y  X. </li></ul></ul></ul><ul><ul><ul><li>X  Y est élémentaire si pour tout X’  X, la DF X’  Y n’est pas vrai. i.e., Y ne dépend d’une partie de X. Par exemple, codeProduit, libellé  PU n’est pas élémentaire. </li></ul></ul></ul><ul><ul><ul><li>X  Y est canonique si sa partie droite ne comporte qu’un seul attribut et un ensemble F de DFs est canonique si chacune de ses dépendances est canonique. </li></ul></ul></ul><ul><ul><ul><li>X  Y est directe si elle est élémentaire et si Y ne dépend pas transitivement de X. </li></ul></ul></ul>M. Moussi
  97. 97. Normalisation <ul><ul><li>Graphe des DFs : </li></ul></ul><ul><ul><ul><li>Les DFs peuvent être présentées à l’aide d’un graphe dont les nœuds sont les attributs impliqués dans les Dfs et les arcs sont les dépendances. Par exemple, T(A, B, C, D, E) avec les DFs : E  A , E  B,  E  C  et C  D : </li></ul></ul></ul><ul><ul><ul><ul><li>E </li></ul></ul></ul></ul><ul><ul><ul><ul><li>A B C </li></ul></ul></ul></ul><ul><ul><ul><ul><li>D </li></ul></ul></ul></ul>M. Moussi
  98. 98. Normalisation <ul><ul><ul><li>Exemple : </li></ul></ul></ul><ul><ul><li>Produit (code Produit, libellé, PU, Qté, NumFournisseur, adresse), </li></ul></ul><ul><ul><li>on a les DFs : </li></ul></ul><ul><ul><ul><ul><li>NumFournisseur  adresse ; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>code Produit  libellé ; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>code Produit  PU ; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>NumFournisseur , code Produit  Qté ; </li></ul></ul></ul></ul><ul><ul><li>et le graphe DFS : </li></ul></ul><ul><ul><li>NumFournisseur code Produit </li></ul></ul><ul><ul><li>Adresse Qté PU libellé </li></ul></ul>M. Moussi
  99. 99. Normalisation <ul><ul><li>DFs et identifiants : </li></ul></ul><ul><ul><ul><li>Un attribut ou une liste d’attributs X est une clé pour la relation R(X,Y,Z) si X  Y  Z. </li></ul></ul></ul><ul><ul><ul><li>X est une clé minimale si X  Y  Z est élémentaire. </li></ul></ul></ul><ul><ul><ul><li>Le graphe minimum des DFs permet de trouver les identifiants de la table. </li></ul></ul></ul><ul><ul><ul><li>L’identifiant d’une table est l’ensemble minimal des nœuds du graphe minimum à partir desquels on peut atteindre tous les autres nœuds. </li></ul></ul></ul>M. Moussi
  100. 100. Normalisation <ul><ul><li>Fermeture transitive : la fermeture transitive d’un ensemble F de DFs élémentaires est l’ensemble, noté F + , de DFs élémentaires obtenu en ajoutant à F les DFs élémentaires obtenues par transitivité. </li></ul></ul><ul><ul><ul><li>Exemple  : T(A, B, C, D, E), avec les DFS : </li></ul></ul></ul><ul><ul><ul><li>F = { E  A, E  B, E  C,  C  D}, </li></ul></ul></ul><ul><ul><li>F + = F  { E  D }. </li></ul></ul><ul><ul><ul><li>Deux ensembles de DFs sont dits équivalents s’ils ont la même fermeture transitive. </li></ul></ul></ul>M. Moussi
  101. 101. Normalisation <ul><ul><li>Couverture minimale : </li></ul></ul><ul><ul><ul><li>Ensemble F de DFs élémentaires vérifiant : </li></ul></ul></ul><ul><ul><ul><ul><li>Aucune dépendance dans F n’est redondante, i.e., pour toute DF f de F, F-f n’est pas équivalente à F </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Toute DF élémentaire des attributs est dans F+ </li></ul></ul></ul></ul><ul><ul><ul><li>En général, n’est pas unique. </li></ul></ul></ul><ul><ul><ul><li>Est utile pour la décomposition sans perte d’information. </li></ul></ul></ul><ul><ul><ul><li>Exemple  : l’ensemble des DFs </li></ul></ul></ul><ul><ul><ul><li>F = { E  A, E  B, E  C,  C  D}, admet comme couvertuture minimale, l‘ensemble : { E  A, E  B, E  C,  C  D}, </li></ul></ul></ul>M. Moussi
  102. 102. Normalisation <ul><li>Normalisation par décomposition  : </li></ul><ul><ul><li>Notion de décomposition : </li></ul></ul><ul><ul><ul><li>R(X, Y, Z) est décomposable selon (X, Y) et (X, Z) s’il existe R1 et R2 telles que R1=Proj X,Y (R), R2= Proj X,Z (R) et R=R1*R2. i.e., R est la jointure naturelle de R1 et de R2. </li></ul></ul></ul><ul><ul><ul><li>La décomposition en sous-relations doit vérifier deux critères fondamentaux : </li></ul></ul></ul><ul><ul><ul><ul><li>être sans perte d’information et </li></ul></ul></ul></ul><ul><ul><ul><ul><li>préserve les dépendances fonctionnelles. </li></ul></ul></ul></ul>M. Moussi
  103. 103. Normalisation <ul><ul><li>Décomposition sans perte d’information : </li></ul></ul><ul><ul><ul><li>Une décomposition est sans perte d’information si la jointure naturelle des sous-relations donne exactement tous les tuples de la relation initiale. </li></ul></ul></ul><ul><ul><ul><li>Exemple : </li></ul></ul></ul><ul><ul><ul><li>Relation R </li></ul></ul></ul><ul><ul><ul><li> avec les DFs : </li></ul></ul></ul><ul><ul><ul><li> A  B,C ; </li></ul></ul></ul><ul><ul><ul><li>C  D ; </li></ul></ul></ul><ul><ul><ul><li>D  B. </li></ul></ul></ul>2 x 5 c 1 y 5 b 2 x 5 a D C B A M. Moussi
  104. 104. Normalisation <ul><ul><ul><li>La relation R est décomposée en deux sous-relations R1(A, B) et R2(B, C, D) : </li></ul></ul></ul><ul><ul><ul><li>Relation R1 Relation R2 </li></ul></ul></ul><ul><ul><ul><li>La jointure de R1 et R2 fournit 6 tuples alors que la relation R n’en possédait que 3. </li></ul></ul></ul>1 y 5 2 x 5 D C B 5 c 5 b 5 a B A M. Moussi
  105. 105. Normalisation <ul><ul><li>Théorème de décomposition : Si R(X, Y, Z) est une relation avec X  Y. alors R(X, Y, Z) est décomposable sans perte d’information en R1(X,Y) et R2(X, Z), i.e., R est une jointure des deux relations R1 et R2. </li></ul></ul>M. Moussi
  106. 106. Normalisation <ul><ul><li>Décomposition avec préservation des DFs : </li></ul></ul><ul><ul><ul><li>Décomposition d’une relation R en R1, R2,…Rn, telle que F+ des DFs de R est la même que celle de l’union des DFs de R1,R2,…Rn. </li></ul></ul></ul><ul><ul><ul><li>Exemple : La décomposition de la relation R(A,B,C,D) précédente en R1(A, B, C) et R2(A,D) est sans perte d’information mais avec perte de DFs, D  B ne peut pas se retrouver sur la projection des DFs initiales sur la décomposition. </li></ul></ul></ul>M. Moussi
  107. 107. Normalisation <ul><li>Formes normales  : </li></ul><ul><ul><li>Première forme normale : une relation est dite en première forme normale ( 1FN), si : </li></ul></ul><ul><ul><ul><ul><li>chaque valeur de chaque attribut de chaque tuple est une valeur simple et mono‑valué. </li></ul></ul></ul></ul><ul><ul><ul><li>Exemple : cours (numEtudiant, listcours ) n’est pas en 1FN car l’attribut listcours n’est pas simple. </li></ul></ul></ul>M. Moussi
  108. 108. Normalisation <ul><ul><li>Deuxième forme normale  : Une relation est dite en deuxième forme normale (2FN) si et seulement si : </li></ul></ul><ul><ul><ul><ul><li>elle est en 1FN et </li></ul></ul></ul></ul><ul><ul><ul><ul><li>tout attribut n’appartenant pas à une clé ne dépend pas d’une partie de la clé. </li></ul></ul></ul></ul><ul><ul><ul><li>Exemple  : </li></ul></ul></ul><ul><ul><ul><li>Produit2( code Produit,NumFournisseur , Qté, Nom, adresse) n’est pas en 2FN, les attributs nom et adresse ne dépendent que du NumFournisseur. </li></ul></ul></ul>M. Moussi
  109. 109. Normalisation <ul><ul><li>Troisième forme normale  : une relation est en troisième forme normale (3FN) si </li></ul></ul><ul><ul><ul><ul><li>elle est en 2FN et </li></ul></ul></ul></ul><ul><ul><ul><ul><li>si tout attribut ne fait pas partie d’une clé ne dépend pas d’un attribut non clé . </li></ul></ul></ul></ul><ul><ul><ul><li>Exemple  :  </li></ul></ul></ul><ul><ul><ul><li>Enseignant (Nom, Bureau, Département, Discipline, TélBur) Avec des règles de gestions qui se traduisent par les DFs suivantes: </li></ul></ul></ul><ul><ul><ul><ul><li>Département  Discipline </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Département, Bureau  TélBur </li></ul></ul></ul></ul><ul><ul><ul><ul><li>TélBur  Bureau, département, </li></ul></ul></ul></ul><ul><ul><ul><li>N’est pas en 3FN. </li></ul></ul></ul>M. Moussi
  110. 110. Normalisation <ul><ul><ul><li>Théorème : toute relation a au moins une décomposition en 3FN qui est sans perte d’information et qui préserve les DFs. </li></ul></ul></ul>M. Moussi
  111. 111. Normalisation <ul><ul><ul><li>Algorithme de décomposition en 3FN : </li></ul></ul></ul><ul><ul><ul><ul><li>Entrée : R(X) avec F est l’ensemble des DF. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Sortie : S = { R1, R2, …,Rn } avec Ri(Xi) en 3NF. </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>étape 1 : Rechercher une couverture minimale CM(F) de F. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>étape 2 : Partitionner CM(F) en F1, F2, …, Fn tels que toutes les DFs d'un même groupe aient la même partie gauche. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>étape 3 : Construire les Ri(Xi) avec Xi constituée de l'union des attributs de Fi. </li></ul></ul></ul></ul></ul>M. Moussi
  112. 112. Normalisation <ul><ul><ul><li>Exemple1 : soit la relation T(A, B, C, D, E), avec les DFS élémentaires suivantes : E  A, E  C, </li></ul></ul></ul><ul><ul><ul><li>A  B et C  D. </li></ul></ul></ul><ul><ul><ul><li>l‘algorithe précédent donne les trois relations : </li></ul></ul></ul><ul><ul><ul><li>T1( E , A, C), T2( A , B) et T3( C , D). </li></ul></ul></ul><ul><ul><ul><li>Exemple 2 : soit la relation R(A, B, C,D, E), avec les DFS élémentaires suivantes : A  B, A  C, </li></ul></ul></ul><ul><ul><ul><li>C, D  E et B  D. l‘algorithe donne les trois relations : </li></ul></ul></ul><ul><ul><ul><li>R1( A ,B,C), R2( C,D ,E) et R3( B ,D) </li></ul></ul></ul>M. Moussi

×