Bases de Données et pédagogie • Comment enseigner les bases de données en Baccalauréat Professionnel tertiaire ! • Approche par le concept ou approche par les sorties ? P. Freyssengeas Bases de Données et pédagogie Bases de Données et pédagogie • Informations de l’entreprise UDD Salariés Clients Fournisseurs Services Produits Commandes Bases de Données et pédagogie • 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éristique 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. SAL_NOM SAL_PRENOM SAL_ADRESSE SAL_CP SAL_VILLE Propriétés de l’entité SALARIE Bases de Données et pédagogie • Représentation tabulaire des informations SAL_NUM_SS SAL_NOM SAL_PRENOM 1491124322035 Delage Robert 2541086054678 Aubert Evelyne 1520107834456 Ait-ouadi Farid Occurrences de l’entité Dans le cas ci-dessus, l’entité SALARIE 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é SALARIE qui en comporte trois dans le cas présent. Bases de Données et pédagogie • 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 Bases de Données et pédagogie • 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 une premier sens de lecture de SALARIE vers SERVICE. 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 Non et cela signifiera qu’il est obligatoirement affecté à un service. SERVICES Cardinalité Mini SALARIES SAL_NUM_SS SAL_NOM 0, Travaille Tra_Date SER_NUM SER_NOM SER_DESCRIPTION Sens de lecture Bases de Données et pédagogie • 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 une 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 minnimum 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 Bases de Données et pédagogie • Définition des cardinalités de SERVICES vers SALARIES SALARIES SAL_NUM_SS SAL_NOM 0,1 1,n 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 Min = 1). Cardinalités Maxi : - Un service fait travailler au maximum plusieurs salariés, (Card Max = 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é Maxi=0) mais s’il est affecté, il est affecté au plus dans un (Cardinalité Min=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 travailler plusieurs (Cardinalité Maxi=n) Bases de Données et pédagogie • Les cardinalités sont porteuses de sens PROPRIETAIRES BIENS 0,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 bien 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 bien indivis. BIE_VILLE BIE_CP Bases de Données et pédagogie • 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 pourrais jamais dans mon système d’informations avoir deux nom 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 Bases de Données et pédagogie • Dépendance fonctionnelle Toutes les propriétés de l’entité doivent dépendre de son identifiant. Ainsi, le numéro de sécurité sociale (SAL_NUM_SS) 1491124322035 donnera un et un seul nom de salarié, Delage Robert dans le cas présent. Le nom du salarié dépend bien exclusivement de son identifiant. Autrement dit, en frappant le numéro 1491124322035 je ne dois trouver qu’un seul salarié. SALARIES SAL_NUM_SS SAL_NOM SAL_DATE_NAISSANCE SAL_CA_ENTREPRISE SAL_CA_ENTREPRISE n’est pas une propriété de SALARIES. Les deux premières propriétés, SAL_NOM et SAL_DATE_NAISSANCE dépendent bien de l’identifiant et sont bien des caractéristiques propres à ce salarié et à aucun autre. Par contre le Chiffre d’affaires de l’entreprise, n’est pas une caractéristique du salarié. La propriété SAL_CA_ENTREPRISE n’est pas en dépendance fonctionnelle avec l’identifiant. Bases de Données et pédagogie • 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 Bases de Données et pédagogie • Cas 1 : Cardinalité Maxi de type Singulier Pluriel (.,1->.,n) ou Pluriel Singulier (.,n->.,1) BIENS Cardinalités Maxi BIE_NUM PROPRIETAIRES PRO_NUM 0, n Possède 1, 1 BIE_DESIGNATION BIE_VILLE PRO_NOM Dans ce cas, au niveau physique, il y a migration de l’identifiant de la mère (Coté n vers la fille Coté 1) et disparition de l’association. BIE_CP BIENS NB : Si l’association avait une ou plusieurs propriétés, elles migreraient avec la clef étrangère dans BIENS. BIE_NUM PROPRIETAIRES BIE_DESIGNATION PRO_NUM PRO_NOM PRO_NUM est clef étrangère et n’est pas identifiante PRO_NUM BIE_VILLE BIE_CP Bases de Données et pédagogie • Cas 2 : Cardinalité Maxi de type Pluriel Pluriel (.,n->.,n) Cardinalités Maxi BIENS BIE_NUM PROPRIETAIRES PRO_NUM 0, n Possède 1, n BIE_DESIGNATION BIE_VILLE PRO_NOM BIE_CP Dans ce cas, au niveau physique, il y a création d’une table de correspondance dont l’identifiant sera la concaténation des deux identifiants des deux mères pointées. La nouvelle Table prend le nom de l’association. BIENS PROPRIETAIRES BIE_NUM PRO_NUM PRO_NOM NB : Si l’association avait une ou plusieurs propriétés, elles migreraient dans Possède. Possède BIE_DESIGNATION PRO_NUM BIE_VILLE BIE_NUM BIE_CP Bases de Données et pédagogie • 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 Bases de Données et pédagogie • 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 - Indiquer les champs à afficher = Projection Bases de Données et pédagogie • 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 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. Bases de Données et pédagogie • 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. Seule 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 le nom des propriétaires des immeubles présents dans la base. Bases de Données et pédagogie • 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 IMMEUBLES. 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 IMMEUBLES. Nous devrons donc sélectionner : La table PROPRIETAIRE La table Possède La table IMMEUBLE Bases de Données et pédagogie • 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 Bases de Données et pédagogie • 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 Bases de Données et pédagogie • Les requêtes : Approche par les sorties La jointure permet de mettre en relation les objets R01_Immeuble avec PROPRETIARES et IMMEUBLES à 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 n° 01. Bases de Données et pédagogie • Les requêtes : Approche par les sorties Condition Projection des champs Résultats de la requête R02_Immeubles_Propriétaires Bases de Données et pédagogie • Les requêtes : Approche par les sorties Autre solution : Commencer par la jointure Etapes à suivre pour réaliser la requête : Etape 1 : 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) Critères sources(s) de sélection Champ(s) Champ(s) de jointure projeté(s) Requête résultat Jointure PROPRIETAIRES Possède BIENS PRO_NUM BIE_NUM R01_Immeu bles_Proprié taires Bases de Données et pédagogie • Les requêtes : Approche par les sorties Autre solution : Commencer par la jointure Etapes à suivre pour réaliser la requête : Etape 2 : La sélection : Objet support de la condition, N° Propriétaire=«01» Opérations Table(s) ou requête(s) sources(s) Critères de sélection Sélection R01_Immeubles_ Propriétaires PRO_NUM= «01» Champ Champ(s) de projeté(s) jointure Requête résultat R01_Immeubles_ Propriétaires Bases de Données et pédagogie • Les requêtes : Approche par les sorties Autre solution : Commencer par la jointure 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 R01_Immeuble_Pro prié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 n° 01. Dans cette approche nous n’avons qu’une requête au lieu de deux. Bases de Données et pédagogie Vocabulaire à retenir : - Entité – Propriétés - Association -Identifiant – Cardinalités (Mini et Maxi)- Occurrences Outils méthodologiques à retenir : - Nomination d’une Propriété - Passage du MCD au MPD - Jointure - Sélection - Projection