Bases de Données • Comment enseigner les bases de données en Baccalauréat Professionnel tertiaire ! • Approche par le concept ou approche par les sorties ? 1 2 Bases de Données La méthode de construction d’un MCD La recherche des données de la base Il s’agit de trouver et de définir : - les attributs ou propriétés des entités, - les attributs des associations, - les données calculées dont on peut avoir besoin. Elles sont calculées dans les requêtes ou formulaires ou les états. L’ensemble des informations constitue les données de la base. Cette recherche aboutira à la mise en évidence des entités. 3 Bases de Données Le dictionnaire des données Définition Le dictionnaire des données est à la fois le support du travail et le résultat de la recherche et il analyse des données. Il se présente sous la forme d'un tableau. Présentation Dans ce tableau, chaque donnée est représentée par : 1/ son nom informatique, c'est-à-dire un mnémonique ou un nom en clair, 2/ une description, 3/ son type numérique, alphabétique, logique... 4/ sa dimension en nombre de caractères, 4 Bases de Données Le schéma de la base Au stade de la conception, on réalise le schéma conceptuel des données. FAMILLE N°°famille Nomchef Prénomchef Numrue Nomrue Adresseville Téléphone Nbreenfants ENFANT 1,1 1,n Appartenir N°°enfant NomEnfant PrénomEnfant DateNaissance Datecréation ParticularitéAlim 5 Bases de Données Au stade de la mise en œuvre, on réalise le schéma physique de la base : 6 Bases de Données • Les entités : Nom de l’entité SALARIES SAL_NUM_SS L’entité récapitule les données de même nature. Ainsi, l’entité SALARIES va récapituler toutes les caractéristiques de chaque salarié de l’entreprise. Caractéristiques des éléments de l’entité, les caractéristiques des salariés dans le cas présent. Ces caractéristiques prennent le nom de propriétés ou attributs. SAL_NOM SAL_PRENOM SAL_ADRESSE Propriétés de l’entité SALARIES SAL_CP SAL_VILLE 7 Bases de Données • Identifiant d’Entité Toute entité doit obligatoirement posséder une propriété identifiante. Le choix de cette propriété est libre. Cependant, le fait d’élire une propriété comme identifiante entraîne deux conséquences : - Son contenu ne pourra jamais être vide. Elle devra obligatoirement être renseignée. - Les doublons seront interdits. Ainsi, si je désigne le nom d’un salarié, SAL_NOM comme propriété identifiante, je ne pourrai jamais dans mon système d’informations avoir deux noms de salarié identiques. La propriété SALARIES déclarée identifiante SAL_NUM_SS est soulignée. SAL_NOM Le fait de choisir le numéro de Sécurité Sociale comme identifiant, correspond aux deux contraintes, toujours renseigné et impossibilité de doublons. Toute entité doit posséder une propriété identifiante 8 Bases de Données • Représentation tabulaire des informations SAL_NUM_SS SAL_NOM SAL_PRENOM 1491124322035 Delage Robert Occurrences de l’entité 2541086054678 Aubert Evelyne 1520107834456 Ait-ouadi Farid Dans le cas ci-dessus, l’entité SALARIES est représentée sous forme tabulaire. Son contenu représente les éléments d’information sur les caractéristiques de l’entité. Chaque ligne prend le nom d’occurrence. Ainsi, 1491224322035, Delage, Robert est la première occurrence de l’entité SALARIES qui en comporte trois dans le cas présent. 9 Bases de Données • L’association Il peut arriver qu’une relation «naturelle» ou forte existe entre deux entités. Ainsi, si dans une entreprise il existe une entité SALARIES et une entité SERVICES de l’entreprise, il existe à l’évidence une relation « naturelle » entre ces deux objets qui peut être caractérisée par un verbe comme travaille. Cette relation se nomme une association et se représente par le symbole : SALARIES SERVICES SAL_NUM_SS Lien SAL_NOM Travaille Tra_Date SAL_PRENOM SER_NUM SER_NOM SER_DESCRIPTION SAL_ADRESSE SAL_CP SAL_VILLE Lien Nb : Une association peut être porteuse de propriétés, Tra_Date dans le cas présent 10 Bases de Données • Les cardinalités entre deux entités Les cardinalités d’une entité vers une autre, vont avoir pour but d’indiquer combien de fois l’événement va se produire au minimum = Cardinalités mini (0 ou 1 fois) et combien de fois l’événement va se produire au maximum 1 ou plusieurs fois (n). Cardinalités Minimales : Reprenons notre exemple : Prenons un premier sens de lecture de SALARIES vers SERVICES. Nous devrons répondre à la question suivante : Au Minimum : Un salarié travaille dans 0 ou 1 service, en d’autres termes, un salarié peut-il ne pas travailler (ne pas être affecté) dans un service ? Si la réponse est Oui, elle sera matérialisée par le nombre 0 ou, si la réponse est Non, cela signifiera qu’il est obligatoirement affecté à un service. Cardinalité Mini SALARIES SAL_NUM_SS SAL_NOM 0, Travaille Tra_Date SERVICES SER_NUM SER_NOM SER_DESCRIPTION Sens de lecture 11 Bases de Données • Cardinalités Maximales : Au Maximum : Un salarié travaille au maximum dans un service ou peut-il travailler, (être affecté) dans plusieurs services ? Si la réponse est : Il travaille (il est affecté) dans au maximum un service, la cardinalité maxi sera 1. Sinon, s’il peut travailler dans plusieurs services, la réponse sera plusieurs et sera matérialisée par n . Dans le cas ci-dessous, la lecture de SALARIE vers SERVICE devient : Un salarié travaille au minimum 0 fois dans un service (ou il peut ne pas travailler, être affecté, dans un service mais par contre il travaille au maximum dans 1 service). SERVICES Cardinalité Maxi 0,1 SALARIES SER_NUM Travaille SAL_NUM_SS SER_NOM Tra_Date SAL_NOM SER_DESCRIPTION 12 Sens de lecture Bases de Données • Définition des cardinalités de SERVICES vers SALARIES SALARIES 1,n 0,1 SAL_NUM_SS SAL_NOM SERVICES Travaille SER_NUM Tra_Date SER_NOM Sens de lecture SER_DESCRIPTION Cardinalités Mini : - Un service fait travailler au moins un salarié (Card Mini = 1). Cardinalités Maxi : - Un service fait travailler au maximum plusieurs salariés, (Card Maxi = n). Ce Modèle Conceptuel de Données (M.C.D.) est maintenant complet et porteur de sens. La lecture est double, de SALARIES vers SERVICES, un salarié peut ne pas travailler dans un service (Cardinalité Mini=0) mais s’il est affecté, il est affecté au plus dans un service (Cardinalité Maxi=1). A contrario de SERVICES vers SALARIES, un service fait travailler au moins un salarié (Cardinalité Mini=1), mais il peut au maximum en faire 13 travailler plusieurs (Cardinalité Maxi=n) Bases de Données • Les cardinalités sont porteuses de sens PROPRIETAIRES BIENS 1,n PRO_NUM Possède 1,1 BIE_NUM BIE_DESIGNATION PRO_NOM BIE_ADRESSE Ce MCD ne prend pas en compte la Multi_Propriété ou les biens indivis. BIE_VILLE BIE_CP PROPRIETAIRES PRO_NUM 1,n Possède PRO_NOM 1,n BIENS BIE_NUM BIE_DESIGNATION BIE_ADRESSE Ce MCD prend en compte la Multi_Propriété ou les biens indivis. BIE_VILLE BIE_CP 14 Bases de Données • Le Modèle Physique des Données (MPD) Pour passer du Modèle Conceptuel des Données (MCD) au Modèle Physique des données (MPD), il suffit d’analyser les cardinalités maxi entre deux entités et d’appliquer la règle de passage du MCD au MPD. PROPRIETAIRES 0, n Possède 1, 1 BIENS 15 Bases de Données • Modèle Physique des données et ACCESS Cas 1 : Cardinalités Maxi Singulier Pluriel ou Pluriel Singulier (.,1->.,n ou .,n->.,1) La Clef étrangère PRO_NUM dans BIENS permet de faire le lien, la jointure, avec la table PR0PRIETAIRES Une fois la jointure établie sur le Numéro de propriétaire, la requête permet d’aller interroger les informations contenues dans les deux tables 16 Bases de Données • Modèle Physique des données et ACCESS Cas 2 : Cardinalités Maxi Pluriel Pluriel (.,n ->.,n ) Si par requête, nous voulons connaître les propriétaires des biens, nous devrons : - Choisir les trois tables PROPRIETAIRES, Possède et BIENS = Sélection - Vérifier les relations entre les différentes tables = Jointures 17 - Indiquer les champs à afficher = Projection Bases de Données • Le concept de requête La requête représente une extraction d’informations présentes dans la base de données. Cette extraction est mémorisée sous forme d’un langage d’interrogation en SQL (langage structuré des requêtes) Nous retrouvons la Sélection La jointure «JOIN» La projection PRO_NUM,… L’instruction WHERE indique une condition, N° de propriétaire = «01» dans notre exemple. 18 Bases de Données • Le concept de requête Résultat de l’extraction : Cette vision du contenu de la base n’est qu’une extraction des données qui correspondent à un instant «T» aux critères demandés, N°° de produit = «01» dans le cas présent. Cette projection n’est pas sauvegardée sur le disque dur. Seules les instructions SQL sont sauvegardées. De ce fait, le fait de faire exécuter la requête permet de toujours obtenir les dernières données disponibles dans la base. Le programme est indépendant des données. NB : Il faut s’efforcer de donner un nom à la requête de telle manière que sa lecture permette de comprendre ce qu’elle va réaliser comme opération. R01_Immeubles_Propriétaires permet de comprendre que nous allons obtenir 19 le nom des propriétaires des immeubles présents dans la base. Bases de Données • Les requêtes : Approche par les sorties Cette méthode consiste à partir du résultat à obtenir. Dans notre exemple des propriétaires et des immeubles, nous désirons connaître les immeubles possédés par le propriétaire N° 1 ALBERT. N° du Nom du N° de Désignation Les informations attendues sont : Propriétaire Propriétaire l'immeuble de l'immeuble Pour obtenir ce résultat les informations sont à rechercher dans les tables PROPRIETAIRES et BIENS. Cependant, il ne faut pas omettre que dans le cas de cardinalités Pluriel (n), Pluriel (n), une table de correspondance Possède dans notre exemple, permet de mettre en liaison la table des PROPRIETAIRES avec la table des BIENS. Nous devrons donc sélectionner : La table PROPRIETAIRE La table Possède La table BIENS 20 Bases de Données • Les requêtes : Approche par les sorties Pour faciliter la compréhension des attendus, les informations souhaitées peuvent être récapitulées dans un tableau. Informations utiles Nom des attributs Nom de la table utilisée Numéro du propriétaire PRO_NUM PROPRIETAIRE Nom du propriétaire PRO_NOM PROPRIETAIRE Numéro de l’immeuble BIE_NUM BIENS Nom de l’immeuble BIE_DESIGNATION BIENS Etapes à suivre pour réaliser la requête : Etape 1 : La Opérations Sélection : Objet support de la condition, N°° Propriétaire=«01» Table(s) ou requête(s) Critères sources(s) de sélection Sélection Possède (Cette table contient les occurrences recherchées) PRO_NUM =«01» Champ de jointure Champ(s) projeté(s) Requête résultat R01_Immeub les_Propriéta ires 21 Bases de Données • Les requêtes : Approche par les sorties Pour illustrer cette approche, visualisons sur ACCESS la démarche. Le résultat obtenu à ce stade indique que le propriétaire dont le N° est 01 possède deux occurrences, c’est-àdire deux biens. A ce stade nous ne connaissons pas encore ni le nom du propriétaire, ni la désignation des biens. Etapes à suivre pour réaliser la requête : Etape 2 : La Jointure : Où se trouvent les informations recherchées et sur quel(s) champ(s) va s’établir la jointure (l’association) entre les tables et requêtes Opérations Table(s) ou requête(s) sources(s) Jointure R01_Immeuble_Propri. PROPRIETAIRES BIENS Critères de sélection Champ(s) de jointure PRO_NUM BIE_NUM Champ(s) projeté(s) Requête résultat R02_Immeubl es_Propriétair es 22 Bases de Données • Les requêtes : Approche par les sorties La jointure permet de mettre en relation les objets R01_Immeuble avec PROPRETIARES et BIENS à partir de PRO_NUM et de BIE_NUM Etapes à suivre pour réaliser la requête : Etape 3 : La apparaître Projection : Quels sont les champs que nous voulons voir Opérations Table(s) ou requête(s) sources(s) Projection R02_Immeuble_Proprié taires. Critères de sélection Champ(s) de jointure Champ(s) projeté(s) Requête résultat PRO_NUM PRO_NOM BIE_NUM BIE_DESI. Liste des biens du propriétaire 23 n° 01. Bases de Données • Les requêtes : Approche par les sorties Condition Projection des champs Résultats de la requête R02_Immeubles_Propriétaires 24 Bases de Données Vocabulaire à retenir : MCD - Entité – Propriétés – Association – Identifiant – Cardinalités (Mini et Maxi) – Occurrences MDP - Table – Nom de champ – Jointure – Clef primaire – Sélection – Projection 25