Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Systèmes d'Information

  • Notions mathématiques
  • Calcul relationnel
  • Algèbre relationnelle
  • Langage de requêtes
  • Arbre de requêtes
  • Exercices
  • Introduction
  • Commandes de bases
  • Langage de définition de données (LDD)
  • Langage de manipulation de données (LMD)
  • Types de données
  • Exercice
  • Présentation
  • Calcul relationnel
  • Algèbre relationnelle
  • Division relationnelle
  • Relation
  • Fonction
  • Application
  • Injection
  • Surjection
  • Bijection
  • Association
  • Exemples
  • Dépendances fonctionnelles
  • Décomposition de relations
  • Inférence logique
  • Normalisation
  • Aux pays des bières
  • Modélisation
  • Exercices
  • Liste des projets
  • Aux pays des bières
  • Au Tournoi des six nations
  • Salles de concerts
  • Généralités
  • Langage SQL
  • Modèle relationnel
  • Généralités
  • SQL
  • Algèbre relationnelle
  • Synthèse
    • Vacances
Index

Archives

  • Site Web
  • Sources reStructuredText
  • EniBook 1.618033988
logo

Crédits

© Your Copyright

Aide

En-tête

MenuContenu
Sommaire,
Téléchargements
Aide sur les outils

Pied de page

ChevronAction
Aller en haut de la page courante
Aller en bas de la page courante
Passer à la page précédente
Passer à la page suivante

Contrôle de synthèse

Vacances

  1. 2/2 relation R(A,B,C)

    On considère l’instance suivante de la relation \(R(A,B,C)\):

    R
    ABC
    a1b1c1
    a2b1c1
    a2b2c2
    a3b3c2
    a3b2c2

    Répondre aux questions suivantes :

    1. Dépendance Fonctionnelle Elémentaire (DFE)
      • Question
      • Solution

      Quelle(s) Dépendance(s) Fonctionnelle(s) Elémentaire(s) peut-on identifier sur cette instance de relation ? Justifiez votre réponse.

      Votre réponse :
      Texte : inputlines962.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      A partir de cette instance de relation on ne peut identifier qu’une seule Dépendance Fonctionnelle Elementaire (DFE) :

      • \(B \rightarrow C\) car \(B\) est le seul attribut pour lequel à chaque valeur est associé une et une seule valeur d’un autre attribut (\(C\))

      Les groupes d’attributs \((A,B),(B,C), (A,C)\) ne sont pas des DFE :

      • \((A,B)\rightarrow C\) n’est pas une DFE car il existe un sous-ensemble (\(B\)) des attributs \((A,B)\) qui est identifié comme DFE sur le même attribut $C$
      • \((B,C)\rightarrow A\) n’est pas une DFE car il existe des couples de valeurs (ex : \((b1,c1)\)) auxquels correspondent des valeurs différentes de $A$
      • \((A,C)\rightarrow B\) n’est pas une DFE car il existe des couples de valeurs (ex : \((a3,c2)\)) auxquels correspondent des valeurs différentes de $B$
    2. Dépendances Fonctionnelles (DF)
      • Question
      • Solution

      En se basant sur cette instance de relation, montrez que \((A,B) \rightarrow C\) peut être considéré comme étant une Dépéndance Fonctionnelle (DF).

      Votre réponse :
      Texte : inputlines966.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      A partir de l’axiome d’augmentation d’Armstrong on peut ajouter un attribut (\(A\)) du côté source de la DFE \(B \rightarrow C\) qui, par implication logique, produit une nouvelle DF

  2. 2/2 relation voyages(touriste,activite,ville)

    On considère l’instance de la relation voyages suivante :

    voyages
    touristeactiviteville
    ChristianSkiBriançon
    ChristopheSkiBriançon
    JeanVoileBrest
    JacquesKite SurfBrest

    Répondre aux questions suivantes :

    1. Dépendances fonctionnelles
      • Question
      • Solution

      Quelle(s) Dépendance(s) Fonctionnelle(s) Elémentaires pouvez-vous identifier sur cette relation ? Argumentez votre réponse à partir de l’instance ci-dessus.

      Votre réponse :
      Texte : inputlines971.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      on identifie les DFE :

      • \(touriste \rightarrow activite\)
      • \(touriste \rightarrow ville\)
      • \(activite \rightarrow ville\)

      car d’après l’instance ci-dessus :

      si on connait le \(touriste\) alors on connaît son \(activite\)

      si on connait le \(touriste\) alors on sait lans quelle \(ville\) il se trouve

      si on connait l” \(activite\) alors on trouve la \(ville\) qui la propose

      Par contre selon cette instance de relation :

      • \(activite \nrightarrow touriste\) (plusieurs touristes peuvent avoir la même activité)
      • \(ville \nrightarrow touriste\) (plusieurs touristes peuvent être dans la même ville)
      • \(ville \nrightarrow activite\) (plusieurs acivités peuvent être proposées dans la même ville)

      Sur les groupements possibles de deux attributs, le seul qui puisse donc constituer une DFE serait celui ne contenant pas les attributs \(ville\) et \(activite\) du côté cible (à droite) de la DFE :

      • \((activite,ville) \rightarrow touriste\)

      mais,selon cette instance de relation, ce n’est pas une DFE car on vérifie que 2 touristes différents peuvent avoir la même activité dans la même ville (ce qui paraît raisonnable …).

    2. Décomposition
      • Question
      • Solution

      Proposez une décomposition en deux tables en argumentant votre choix en fonction des DFE que vous aurez identifié.

      Représentez les deux instances de tables de la décomposition choisie qui correspondrait à l’instance de la relation de départ.

      Votre réponse :
      Texte : inputlines975.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      On peut proposer la décomposition suivante :

      • \(preferences(\underline{touriste},activite)\)
      • \(activites(\underline{activite},ville)\)

      Puisque l’on conserve les deux DF :

      • \(touriste \rightarrow activite\)
      • \(activite \rightarrow ville\)

      Et que l’axiome de transivité d’Armstrong :

      • \(X \rightarrow Y, Y \rightarrow Z \Longrightarrow X \rightarrow Z\)

      nous permet de retrouver la DF :

      • \(touriste \rightarrow ville\)

      La décomposition donnera les instances de tables suivantes :

      >
      preferences
      touristeactivite
      ChristianSki
      ChristopheSki
      JeanVoile
      JacquesKite Surf
      activites
      activiteville
      SkiBriançon
      VoileBrest
      Kite SurfBrest
  3. 3/3 préférence d'activités

    Si on considère la décomposition suivante :

    • \(preferences(\underline{touriste},activite)\)
    • \(activites(\underline{activite},ville)\)

    Répondre aux questions suivantes :

    1. Calcul relationnel
      • Question
      • Solution

      Exprimer la question suivante : « Récupérer les touristes à qui on pourra proposer toutes leurs activités préférées »

      en calcul relationnel de domaine

      Votre réponse :
      Texte : inputlines980.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :
      • \(R \;=\; \{ t \; | \; \forall a \; activites(activite:a,-) \; , \; preferences(touriste:t,a) \}\)
    2. Requête SQL
      • Question
      • Solution

      Exprimer la question suivante : « Récupérer les touristes à qui on pourra proposer toutes leurs activités préférées »

      par une requête SQL

      Votre réponse :
      sql : vacances.sql
      
          
      >
      Output
      
                      

      Interpréteur

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Interpréter le programme

      Editeur

      MenuRaccouciAction
      Ctrl+N Initialiser l'éditeur
      Ctrl+O Charger le contenu d'un fichier dans l'éditeur
      Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
      Ctrl+P Imprimer le contenu de l'éditeur
      Ctrl+Z Annuler la dernière modification
      Maj+Ctrl+Z Rétablir la modification précedente
      Ctrl+F Chercher une expression dans l'éditeur
      Maj+Ctrl+F Chercher et remplacer une expression par une autre
      F10 Ouvrir une documentation du langage

      RaccourciAction
      F1 Afficher cette aide
      Tab Indenter la sélection
      Maj+Tab Désindenter la sélection
      Ctrl+A Sélectionner le contenu de l'éditeur
      Ctrl+C Copier la sélection dans le presse-papier
      Ctrl+V Remplacer la sélection par le contenu du presse-papier
      Ctrl+X Supprimer la sélection et la copier dans le presse-papier
      Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      Une solution possible :
      SELECT DISTINCT p1.touriste
      FROM preferences p1
      WHERE  NOT EXISTS (SELECT *
                         FROM activites a
                          WHERE NOT EXISTS( SELECT *
                                            FROM preferences p2
                                            WHERE a.activite=p2.activite
                                               AND p1.touriste=p2.touriste
                                           )
                        );
      
    3. Arbre de requête
      • Question
      • Solution

      Exprimer la question suivante : « Récupérer les touristes à qui on pourra proposer toutes leurs activités préférées »

      En représentant un arbre de requêtes correspondant

      Votre réponse :
      Arbre de requêtes : graph988.json

      Tables

      Opérateurs unaires

      Opérateurs binaires

      Vue d'ensemble
      Une solution possible :
      _images/division.png
  4. 2/2 Enseignements : structuration de base de données

    Une école souhaite mettre en place un Système d’Information sur les enseignements de matières par des professeurs dans des salles de classe.

    Des salles de classes on connaît leur numéro, leur capacité et leur équipement (vidéoprojecteur, tableau interactif …)

    Les informations dont on dispose sur les professeurs sont : le nom, le prénom et leur spécialité (mathématiques,anglais …)

    Pour chaque matière on connaît le nom, le domaine concerné (mathématiques,anglais …) et le volume horaire.

    Un professeur enseigne plusieurs matières mais une matière n’est enseignée que par un seul professeur.

    Un enseignement se fait à une date précise et peut avoir lieu dans différentes salles de classes par différents professeurs

    A partir de ce cahier des charges répondre aux questions suivantes :

    1. Modélisation UML
      • Question
      • Solution

      Proposer une structuration de la base de données, à l’aide du formalisme UML, en justifiant vos choix à partir du cahier des charges.

      Votre réponse :
      Texte : inputlines993.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      A partir du cahier des charges on identifie trois entités avec leurs propriétés :

      • entité classes : « Des salles de classes on connaît leur numéro, leur capacité leur equipement (…) . »
      • entité professeurs : « Les informations dont on dispose sur les professeurs sont : le nom, le prénom et leur spécialité (mathématiques, anglais …). »
      • entité matieres : « Pour chaque matière on connaît le nom, le domaine concerné (…) et le volume horaire. »

      Ainsi que les associations :

      • Un à plusieurs entre un professeur et des matieres :

        « Un professeurs enseigne plusieurs matieres mais une matieres n’est enseignée que par un seul professeurs. »

      • plusieurs à plusieurs entre les salles de classes et les professeurs :

        « Un enseignement se fait à une date précise et peut avoir lieu dans différentes salles de classes par différents professeurs »

      L’association « plusieurs à plusieurs » imposera de créer une table associative enseignements entre les entités classes,professeurs constitué de clés étrangères sur les clés primaires de ces tables et de la date concernée.

      _images/controle_synthese_ecoles.png
    2. Structuration de la base de données
      • Question
      • Solution

      A partir de la modélisation UML issue du cahier des charges faire une représentation sous forme de tables en vous appuyant sur la notation :

      • \(nom_de_table(\underline{a1,...,\#ai,...}, ...,ak,...,...\#an,...)\)

        où:

      • \(\underline{a1,...,\#ai,...}\) : attributs représentant la clé primaire de la table
      • \(\#ai,...\#an\) : clés étrangères sur des clés primaires (\(ai,...an\)) d’autres tables.
      Votre réponse :
      Texte : inputlines997.txt

      Zone de saisie de texte

      ClavierAction
      F1Afficher une aide technique
      F2Afficher une aide pédagogique
      Ctrl-ATout sélectionner
      Ctrl-CCopier la sélection dans le presse-papier
      Ctrl-VCopier le presse-papier dans la sélection
      Ctrl-XCouper la sélection et la copier dans le presse-papier
      Ctrl-ZAnnuler la modification
      Maj-Ctrl-ZRétablir la modification

      MenuAction
      Ré-initialiser les sorties
      Faire apparaître le menu d'aide
      Valider la zone de saisie
      Initialiser la zone de saisie
      Charger le contenu d'un fichier dans la zone de saisie
      Sauvegarder le contenu de la zone de saisie dans un fichier
      Imprimer le contenu de la zone de saisie
      Une solution possible :

      \(classes (\underline{classe\_id},numero,capacite,equipement)\)

      \(professeurs (\underline{professeur\_id},nom,prenom,specialite)\)

      \(matieres (\underline{matiere\_id},nom,domaine,vol\_horaire,\#professeur\_id)\)

      \(enseignements (\underline{\#classe\_id,\#professeur\_id},jour)\)

 
Systèmes d'Information : Contrôle de synthèse, 13 avr. 2023.