P. Freyssengeas 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 ?
Bases de Données et pédagogie
Informations de l’entreprise UDD Clients Salariés Services Fournisseurs Produits Clients Commandes
Bases de Données et pédagogie Les entités : SALARIES SAL_NUM_SS SAL_NOM SAL_PRENOM SAL_ADRESSE SAL_CP SAL_VILLE 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. Nom de l’entité 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. Propriétés de l’entité SALARIE
Bases de Données et pédagogie Représentation tabulaire des informations SAL_NUM_SSSAL_NOMSAL_PRENOM DelageRobert Ait-ouadiFarid AubertEvelyne 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, , Delage, Robert est la première occurrence de l’entité SALARIE qui en comporte trois dans le cas présent. Occurrences de l’entité
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 : Travaille SALARIES SAL_NUM_SS SAL_NOM SAL_PRENOM SAL_ADRESSE SAL_CP SAL_VILLE SERVICES SER_NUM SER_NOM SER_DESCRIPTION Nb : Une association peut être porteuse de propriétés, Tra_Date dans le cas présent Tra_Date Lien
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. Travaille SALARIES SAL_NUM_SS SAL_NOM SERVICES SER_NUM SER_NOM SER_DESCRIPTION Tra_Date 0, Cardinalité Mini Sens de lecture
Bases de Données et pédagogie Cardinalités Maximales : Travaille SALARIES SAL_NUM_SS SAL_NOM SERVICES SER_NUM SER_NOM SER_DESCRIPTION Tra_Date 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). 0,1 Cardinalité Maxi
Bases de Données et pédagogie Définition des cardinalités de SERVICES vers SALARIES Travaille SALARIES SAL_NUM_SS SAL_NOM SER_NUM SER_NOM SER_DESCRIPTION Tra_Date SERVICES 0,1 Sens de lecture 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) 1,n
Bases de Données et pédagogie Les cardinalités sont porteuses de sens Possède PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM BIE_DESIGNATION BIE_ADRESSE BIE_VILLE BIE_CP BIENS 0,n1,1 Possède PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM BIE_DESIGNATION BIE_ADRESSE BIE_VILLE BIE_CP BIENS 1,n Ce MCD ne prend pas en compte la Multi_Propriété ou les bien indivis. Ce MCD prend en compte la Multi_Propriété ou les bien indivis.
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. SALARIES SAL_NUM_SS 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. La propriété déclarée identifiante est soulignée. 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) 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 je ne dois trouver qu’un seul salarié. SALARIES SAL_NUM_SS SAL_NOM SAL_DATE_NAISSANCE SAL_CA_ENTREPRISE 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. SAL_CA_ENTREPRISE n’est pas une propriété de SALARIES.
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. Possède PROPRIETAIRESBIENS 0,n0,n 1,11,1
Bases de Données et pédagogie Cas 1 : Cardinalité Maxi de type Singulier Pluriel (.,1->.,n) ou Pluriel Singulier (.,n->.,1) PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM BIE_DESIGNATION BIE_VILLE BIE_CP BIENS Possède 0,n0,n 1,11,1 Cardinalités Maxi 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. PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM PRO_NUM BIE_DESIGNATION BIE_VILLE BIE_CP BIENS NB : Si l’association avait une ou plusieurs propriétés, elles migreraient avec la clef étrangère dans BIENS. PRO_NUM est clef étrangère et n’est pas identifiante
Bases de Données et pédagogie Cas 2 : Cardinalité Maxi de type Pluriel Pluriel (.,n->.,n) PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM BIE_DESIGNATION BIE_VILLE BIE_CP BIENS Possède 0,n0,n 1,n1,n Cardinalités Maxi 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. PROPRIETAIRES PRO_NUM PRO_NOM BIE_NUM BIE_DESIGNATION BIE_VILLE BIE_CP BIENS Possède PRO_NUM BIE_NUM NB : Si l’association avait une ou plusieurs propriétés, elles migreraient dans Possède.
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
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 N° duNom duN° deDésignation Propriétaire l'immeublede l'immeuble 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. Les informations attendues sont : 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 Informations utilesNom des attributsNom de la table utilisée Numéro du propriétairePRO_NUMPROPRIETAIRE Nom du propriétairePRO_NOMPROPRIETAIRE Numéro de l’immeubleBIE_NUMBIENS Nom de l’immeubleBIE_DESIGNATIONBIENS Pour faciliter la compréhension des attendus, les informations souhaitées peuvent être récapitulées dans un tableau. Etapes à suivre pour réaliser la requête : Etape 1 : La Sélection : Objet support de la condition, N° Propriétaire=«01» OpérationsTable(s) ou requête(s) sources(s) Critères de sélection Champ de jointure Champ(s) projeté(s) Requête résultat SélectionPossède (Cette table contient les occurrences recherchées) PRO_NUM =«01» 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érationsTable(s) ou requête(s) sources(s) Critères de sélection Champ(s) de jointure Champ(s) projeté(s) Requête résultat Jointure R01_Immeuble_Propri. PROPRIETAIRES BIENS PRO_NUM BIE_NUM 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 Projection : Quels sont les champs que nous voulons voir apparaître OpérationsTable(s) ou requête(s) sources(s) Critères de sélection Champ(s) de jointure Champ(s) projeté(s) Requête résultat Projection R02_Immeuble_Proprié taires. 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 Projection des champs Résultats de la requête R02_Immeubles_Propriétaires Condition
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érationsTable(s) ou requête(s) sources(s) Critères de sélection Champ(s) de jointure Champ(s) 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érationsTable(s) ou requête(s) sources(s) Critères de sélection Champ de jointure Champ(s) projeté(s) Requête résultat Sélection R01_Immeubles_ Propriétaires PRO_NUM= «01» 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 Projection : Quels sont les champs que nous voulons voir apparaître OpérationsTable(s) ou requête(s) sources(s) Critères de sélection Champ(s) de jointure Champ(s) projeté(s) Requête résultat Projection R01_Immeuble_Pro priétaires. 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