Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] algèbre relationnelle & SQL

    Team OC 9 octobre 2017 à 16:16:36

    Bonjour ! Voilà le fil de discussion dédié au cours Initiez-vous à l'algèbre relationnelle avec le langage SQL.

    Dans ce cours, vous apprendrez à manipuler des relations à l’aide des opérateurs de l’algèbre relationnelle. Ensuite, vous appliquerez ces concepts théoriques à un langage très utilisé : le SQL, permettant d’interagir avec des bases de données… relationnelles !

    N'hésitez pas à échanger les uns avec les autres !

    Si vous avez une question concernant le fonctionnement du cours (accès aux exercices, envoi des exercices, inscription au cours…), contactez directement OpenClassrooms à hello@openclassrooms.com

    Bon courage et à bientôt !

    -
    Edité par Nicolas Rangeon 23 avril 2019 à 18:30:26

    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2017 à 19:50:34

      Bonsoir Nicolas,

      je tiens tout d'abord à vous remercier pour ce cours.

      Concernant le quiz de la partie "Manipulez les données grâce à l'algèbre relationnel", pouvez-vous m'expliquer à la question 3 en quoi le résultat de la réponse 2 équivaut à la réponse 3 ?

      Par ailleurs, est-ce que le pourcentage de réussite prend en compte le temps passé à répondre, les points de pourcentage sont-ils fonction de la difficulté des réponses ?

      Je vous remercie par avance pour vos réponses en vous souhaitant une bonne soirée.

      Marjorie

      • Partager sur Facebook
      • Partager sur Twitter
        28 octobre 2017 à 21:21:02

        Bonsoir,

        je suis en train de faire les activités avec la console iteractive. Malheureusement; il est impossible de travailler sur la durée avec cette console, car elle se désactive et il est impossible de se reconnecter avant le lendemain visiblement. Même en relançant le navigateur, etc ... A chaque tentative j'ai le message 'Terminal disconnected'. Ce n'est pas très pratique je trouve.

        J'en profite pour poser une question par rapport à ces activités.

        Il est demandé de fournir la requête SQL utilisée, ainsi qu'une capture d'écran de la table renvoyée par la requête.

        Par exemple pour la première question (Affichez toutes les lignes de la table employees, en n'affichant que les noms et prénoms des employés.), la table renvoyée est énorme, impossible donc d'en faire une copie d'écran. La console interactive affiche les 6 dernières lignes avec le nombre total de lignes retournées par la requête utilisée. Est-ce suffisant comme copie d'écran ?

        Il en va de même pour d'autres questions (la 3ème notamment: Dans cette base de données, deux tables ont le même schéma. Réaliser leur union.)


        Merci d'avance pour votre réponse.

        -
        Edité par _Patrick_ 28 octobre 2017 à 21:45:25

        • Partager sur Facebook
        • Partager sur Twitter
          Team OC 31 octobre 2017 à 8:59:36

          MarjorieMa a écrit:

          Concernant le quiz de la partie "Manipulez les données grâce à l'algèbre relationnel", pouvez-vous m'expliquer à la question 3 en quoi le résultat de la réponse 2 équivaut à la réponse 3 ?

          Par ailleurs, est-ce que le pourcentage de réussite prend en compte le temps passé à répondre, les points de pourcentage sont-ils fonction de la difficulté des réponses ?

          Bonjour Marjorie,

          Si vous prenez ces 2 tables :

          Table A:
          
          ----------------------
          | id | prenom        |
          ----------------------
          | 1  | pierre        |
          | 2  | paul          |
          ----------------------
          
          Table B:
          
          ----------------------------------
          | id_personne | animal_compagnie |
          ----------------------------------
          | 2           | chien            |
          | 2           | chat             |
          | 1           | chien            |
          ----------------------------------
          

          et que vous réalisez le produit cartésien, vous obtenez ceci :

          -------------------------------------------------------
          | id | prenom        | id_personne | animal_compagnie |
          -------------------------------------------------------
          | 1  | pierre        | 2           | chien            |
          | 2  | paul          | 2           | chat             |
          | 1  | pierre        | 1           | chien            |
          | 2  | paul          | 2           | chien            |
          | 1  | pierre        | 2           | chat             |
          | 2  | paul          | 1           | chien            |
          -------------------------------------------------------

          et si vous appliquez ensuite une restriction selon la condition id=id_personne , vous obtenez ceci :

          -------------------------------------------------------
          | id | prenom        | id_personne | animal_compagnie |
          -------------------------------------------------------
          | 2  | paul          | 2           | chat             |
          | 1  | pierre        | 1           | chien            |
          | 2  | paul          | 2           | chien            |
          -------------------------------------------------------

          Ce dernier résultat est le même que celui obtenu grâce à une jointure de A et B avec la condition a.id = B.id_personne.

          Ceci explique que les réponses 2 et 3 sont équivalentes.

          Pour les quiz, le pourcentage de réussite ne prend pas en compte le temps passé à répondre, et chaque question a le même poids dans le score final.

          J'espère avoir bien répondu à vos question,

          Merci à vous,

          Nicolas

          _Patrick_ a écrit:

          Bonsoir,

          je suis en train de faire les activités avec la console iteractive. Malheureusement; il est impossible de travailler sur la durée avec cette console, car elle se désactive et il est impossible de se reconnecter avant le lendemain visiblement. Même en relançant le navigateur, etc ... A chaque tentative j'ai le message 'Terminal disconnected'. Ce n'est pas très pratique je trouve.

          J'en profite pour poser une question par rapport à ces activités.

          Il est demandé de fournir la requête SQL utilisée, ainsi qu'une capture d'écran de la table renvoyée par la requête.

          Par exemple pour la première question (Affichez toutes les lignes de la table employees, en n'affichant que les noms et prénoms des employés.), la table renvoyée est énorme, impossible donc d'en faire une copie d'écran. La console interactive affiche les 6 dernières lignes avec le nombre total de lignes retournées par la requête utilisée. Est-ce suffisant comme copie d'écran ?


          Bonjour Patrick,

          Merci pour vos retours. Effectivement, concernant les activités, j'ai oublié de préciser que pour les grandes tables, seules les premières lignes suffisent dans la capture d'écran.

          Quant à la console interactive, avez-vous ce problème uniquement avec les console des bas de chapitres, ou aussi avec les consoles des activités des parties 3 et 4 ? Comme elles sont configurées différemment, cela m'aiderait à trouver le problème.

          Bonne journée à vous,

          Nicolas



          -
          Edité par Nicolas Rangeon 31 octobre 2017 à 9:06:37

          • Partager sur Facebook
          • Partager sur Twitter
            1 novembre 2017 à 20:51:32

            Bonsoir,

            Merci pour votre réponse !

            Je posterai donc les premières et dernières lignes pour les cas des grandes tables.

            Concernant la console interactive, cela concerne les activités (donc des parties 3 et 4 effectivement).

            Bonne fin de journée !

            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2017 à 17:13:38

              Bonjour,

              Je suis à nouveau confronté au même problème de désactivation de la console interactive. J'avais lancé la console il y a qq minutes, j'ai commencé à refaire l'activité 3 pour extraire les réponses et les copies d'écran. Au bout d'un certain temps, la console est à nouveau désactivée !!

              Même en la relançant, en redémarrant le navigateur, en vidant les cookies, etc ... rien n'y fait.

              Impossible de travailler sur la durée, donc je laisse tomber ce MOOC le temps que le problème soit résolu, je n'ai pas envie de tout recommencer à chaque fois, sachant que je n'ai pas le temps d'aller au bout avant que la console se désactive.

              Merci de me tenir au courant dès que ce sera résolu.

              EDIT à 21h50: je viens de refaire un test et je confirme que la console interactive n'est pas opérationnelle plus de 4h plus tard

              -
              Edité par _Patrick_ 4 novembre 2017 à 21:52:10

              • Partager sur Facebook
              • Partager sur Twitter
                Team OC 7 novembre 2017 à 11:52:09

                Bonjour Patrick,

                J'ai mis en ligne ce matin 2 dumps de la base, que vous pouvez télécharger et utiliser en mysql ou en sqlite. Ils sont ici :

                https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees_mysql.sql

                https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees.sqlite3

                J'ai demandé à d'autres profs chez OC qui utilisent aussi la console codevolve, et ils ont eux aussi des soucis. On utilise en fait une plateforme extérieure, qui n'est pas éditée chez OC. Je vais investiguer sur les autres technologies disponibles afin d'avoir quelque chose de plus stable, car vous n'êtes pas le seul à avoir eu ce type de problème. J'ai aussi pris contact avec un des développeurs de l'entreprise qui édite codevolve pour leur demander s'ils comptent travailler sur la stabilité de leur outil.

                N'hésitez pas à me dire si vous arrivez ou non à utiliser les dumps.

                Bonne journée

                Nicolas

                • Partager sur Facebook
                • Partager sur Twitter
                  9 novembre 2017 à 20:15:36

                  Bonsoir,

                  Merci pour dumps et les retours des autres utilisateurs.

                  Je ne sais pas si je vais pouvoir les utiliser car je n'ai installé aucun outil de gestion de base de données (mysql ou autre) sur mon PC. J'essaierai de m'y pencher le we prochain si je trouve un peu de temps ...

                  Bonne soirée !

                  • Partager sur Facebook
                  • Partager sur Twitter
                    Team OC 9 novembre 2017 à 23:11:26

                    Très bien Patrick, n'hésitez pas à me tenir au courant.

                    Je pense que SQLiteStudio sera le mieux adapté, je pense même qu'il ne nécessite pas d'installation sur la plupart des systèmes d'exploitation

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 novembre 2017 à 12:58:11

                      Bonjour

                      En premier lieu, merci pour ce cours.

                      En suite, je viens de corriger 3 devoirs d'algèbre relationnelle et, à priori, l'idée ne me plaisait pas beaucoup (besoin de temps). Puis j'ai compris que c'est une bonne façon d'améliorer notre apprentissage en découvrant ce que d'autres étudiants font, et aussi de participer à une forme d'entre-aide. Finalement, j'ai pris un grand intérêt à ce travail et je remercie ceux qui ont corrigé mon devoir.

                      Dans ce devoir, une personne qui paraît déjà avancée dans le langage SQL a utilisé un format de date.Cela n'apparaît pas dans le début du cours. Est-ce que cela traité par la suite?

                      Cordialement.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        Team OC 12 novembre 2017 à 18:27:02

                        Bonsoir Le chat gourmand,

                        Merci pour votre encouragement !

                        Les dates ne sont pas traitées dans ce cours, qui est plutôt orienté Algèbre relationnelle. A mon souvenir, lun des cours qui traite des dates en SQL chez openclassrooms s'appelle "administrez votre base de données mysql", à chercher parmi les cours non-certifants.

                        Bon dimanche,

                        Nicolas

                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 novembre 2017 à 20:40:55

                          Bonsoir,

                          Je viens d'installer SQLiteStudio et de comparer les résultats avec ceux que j'avais obtenus via la console interactive, c'est pas mal du tout !

                          Merci pour cette piste, car effectivement, il n'y a rien à installer, juste à exécuter le logiciel, à importer la base de données et à exécuter ses requêtes.

                          J'ai encore 2 requêtes qui ne me renvoient rien, donc un peu d'analyse avant de pouvoir soumettre mes réponses.

                          Bonne soirée !

                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 novembre 2017 à 12:46:24

                            Bonjour,

                            Merci pour votre réponse.

                            Cordialement

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 novembre 2017 à 23:19:54

                              Bonsoir,

                              Je viens de reprendre ce cours après qq jours d'interruption ... (le problème de désactivation de la console interactive n'est toujours pas réglé visiblement).

                              Pour la 3ème question du TP2, j'ai essayé de trouver une solution avec la fonction rank(), mais sans succès pour le moment.

                              Il existe bien une autre solution très simple, mais tellement simple que je trouve bizarre d'utiliser cette solution alors qu'on parle de requêtes avancées. Qu'en est-il ?

                              Merci d'avance et bon weekend !

                              • Partager sur Facebook
                              • Partager sur Twitter
                                28 novembre 2017 à 17:18:51

                                Bonsoir Nicolas,

                                je vous remercie pour vos réponses.

                                Concernant le poids des réponses, vous indiquez que chaque question a le même poids dans le score final. Or je ne comprends pas pourquoi j'obtiens 86% au premier quizz en ayant fait une erreur (sur les 7 questions) et 71% au deuxième quizz en ayant oublié de cocher une des trois réponses de la question 2 (7 questions également).

                                Merci d'avance pour votre réponse.

                                Marjorie

                                -
                                Edité par MarjorieMa 28 novembre 2017 à 18:34:27

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  Team OC 29 novembre 2017 à 11:56:31

                                  MarjorieMa a écrit:

                                  Bonsoir Nicolas,

                                  je vous remercie pour vos réponses.

                                  Concernant le poids des réponses, vous indiquez que chaque question a le même poids dans le score final. Or je ne comprends pas pourquoi j'obtiens 86% au premier quizz en ayant fait une erreur (sur les 7 questions) et 71% au deuxième quizz en ayant oublié de cocher une des trois réponses de la question 2 (7 questions également).

                                  Merci d'avance pour votre réponse.

                                  Marjorie

                                  -


                                  Edité par MarjorieMa il y a environ 17 heures

                                  Bonjour Marjorie.

                                  Le calcul de score m'échappe totalement. Le mode de calcul est commun à tous les cours de la plateforme. Pour ma part, je me contente juste d'écrire les question et les réponses. Pouvez-vous poser cette question à hello@openclassrooms.com ? Les questions étaient-elles trop difficiles ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    1 décembre 2017 à 12:46:02

                                    Bonjour, je suis débutante en informatique. J'ai commencé le cours "Initiez-vous à l'algèbre relationnelle avec le langage SQL". J'ai du mal à utiliser la console interactive dans le chapitre 4. Exécutez une requête avec SELECT, FROM et WHERE, c'est pourquoi j'ai installé SQLiteStudio (3.1.1). Mais lorsque j'ai voulu attacher la base de donnée, ça n'a pas marché. J'ai essayé de télécharger la base de données de "panama papers", j'ai eu de difficultés. Je suis bloquée. J'aimerais bien avancer ds mon cours. 

                                    Merci à vous.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 décembre 2017 à 17:34:37

                                      Bonjour SOUKAINArais,

                                      Concernant ton problème, assures toi que tu as bien téléchargé le fichier ZIP en entier (environ 19 Mo), ensuite il faut extraire le fichier "panamapapers.sqlite3" qui sera le fichier à séléctionner pour attacher la base de données.

                                      Je viens de refaire les opérations (téléchargement + extraction + attacher la base + sélectionner la base + requête) et ça fonctionne.

                                      Cdt.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 décembre 2017 à 15:04:29

                                        Bonjour

                                        Pourriez-vous m'indiquez à quel endroit pourrais-je trouver un cours plus détaillé sur les fonctions de fenêtrage (OVER et PARTITION BY) SVP ?

                                        Merci.

                                        Cordialement.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          14 décembre 2017 à 2:08:01

                                          SOUKAINArais a écrit:

                                          Bonjour, je suis débutante en informatique. J'ai commencé le cours "Initiez-vous à l'algèbre relationnelle avec le langage SQL". J'ai du mal à utiliser la console interactive dans le chapitre 4. Exécutez une requête avec SELECT, FROM et WHERE, c'est pourquoi j'ai installé SQLiteStudio (3.1.1). Mais lorsque j'ai voulu attacher la base de donnée, ça n'a pas marché. J'ai essayé de télécharger la base de données de "panama papers", j'ai eu de difficultés. Je suis bloquée. J'aimerais bien avancer ds mon cours. 

                                          Merci à vous.

                                          Salut, quand tu télécharges le dossier zip, tu dois dézipper le contenu du dossier pour y avoir accès. Ensuite, essaye de connecter la base de données (le fichier ''panama papers'') qui se trouve maintenant dans ton dossier dézipper.

                                          Bonne continuation, j'espère que ça t'aidera.

                                          -
                                          Edité par BenoitLangevin 14 décembre 2017 à 2:09:36

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            15 décembre 2017 à 14:17:09

                                            Bonjour,

                                            Suite et fin : clause OVER et PARTITION BY

                                            J'ai effectué des tests sur une autre base de données et j'ai comparé les résultats obtenus avec ceux contenus dans un classeur Excel.

                                            Je pense avoir compris le fonctionnement de ces clauses.

                                            PARTITION BY permet de diviser en sous-ensembles (ce qui s'appelle le fenêtrage) la table sur laquelle nous travaillons afin de pouvoir appliquer notre requête sur chacun de ces sous-ensembles.

                                            Cordialement.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              Team OC 17 décembre 2017 à 14:08:33

                                              Bonjour Le Chat Gourmand,

                                              Je pense que cette page de la doc de PostgreSQL explique bien le concept, ditez-moi ce uqe vous en pensez : https://www.postgresql.org/docs/9.1/static/tutorial-window.html

                                              Bonne journée,

                                              Nicolas

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                21 décembre 2017 à 21:35:15

                                                Bonjour Nicolas 

                                                J'ai besoin d'aide dans cette exercice ?????

                                                L’entreprise ZaiKay est organisée en plusieurs départements métiers, chaque département est composé d’un ou de plusieurs services. Chaque employé est affecté à un projet. Un projet peut être pris en charge par plusieurs départements mais ne peut avoir qu’un chef de projet. Chaque employé possède un profile et occupe une fonction (La fonction par défaut occupée par chaque employée est Collaborateur). L’entreprise garde toujours l’historique des fonctions occupées par un employé. Chaque département ou service possède un nom, numéro et un responsable. Chaque employé est définit par un nom, prénom, date naissance, dateEmbauche, Sexe, Email, Adresse, ville, profile, Salaire Chaque projet est caractérisé par un intitulé, dateDebut, dateFin, Etat.


                                                Aideeezz moi s'il vous plait !!!!!!!!!!!!!!!!!


                                                -
                                                Edité par ÂbđøĚł 21 décembre 2017 à 21:38:36

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  22 décembre 2017 à 14:41:13

                                                  ÂbđøĚł a écrit:


                                                  J'ai besoin d'aide dans cette exercice ?????

                                                  C'est une question ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    23 décembre 2017 à 14:42:41

                                                    Bonjour Monsieur Rangeon, vous allez finir par croire que je vous en veux :p

                                                    Je me posais quelques questions au sujet de l'activité 'Recherchez des données à l'aide de requêtes SQL'.

                                                    • La quatrième question nous demande de ramener une information concernant un employé dont on connaît l'id au moyen d'une jointure, mais sauf erreur de ma part, que l'on regarde le schéma de l'entreprise ou bien dans la structure des bases de données l'id qui est donné dans la question est la clé primaire de la table salaries où l'on veut récupérer notre unique information.
                                                      De sorte qu'à moins de vouloir en plus afficher le nom et le prénom du salariés auquel correspond l'id, la jointure n'est pas du tout nécessaire non ?
                                                    • La cinquième question requiert-elle une jointure simple ou une double ? J'arrive à afficher les données demandées par la question avec une jointure simple, mais s'il faut ajouter les noms et prénoms du salariés, je suis contraint de passer à la double.

                                                    Et voilà. Encore merci pour ce cours sympathique, et ces belles révisions d'algèbre relationnelle avant les fêtes !

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      26 décembre 2017 à 23:14:23

                                                      bonjour,

                                                      Pouvez vous m'aidez je n'arrive pas ou je ne trouve pas le bon fichier a télécharge des Panama Papers.

                                                      Merci


                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        27 décembre 2017 à 14:20:11

                                                        Bonjour,

                                                        Les liens vers les téléchargements sont dans la partie du cours "comprenez les bases de données SQL": La BDD au format sqlite3 est ici [clic]

                                                        Dans l'archive il y a un document about[...] qui contient les infos sur la source la BDD et le fichier suffixé .sqlite3 est celui qu'il faut attacher dans le gestionnaire de BDD.

                                                        -
                                                        Edité par Xengdû 27 décembre 2017 à 14:22:18

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          Team OC 2 janvier 2018 à 12:38:18

                                                          Xengdû a écrit:

                                                          • La quatrième question nous demande de ramener une information concernant un employé dont on connaît l'id au moyen d'une jointure, mais sauf erreur de ma part, que l'on regarde le schéma de l'entreprise ou bien dans la structure des bases de données l'id qui est donné dans la question est la clé primaire de la table salaries où l'on veut récupérer notre unique information.
                                                            De sorte qu'à moins de vouloir en plus afficher le nom et le prénom du salariés auquel correspond l'id, la jointure n'est pas du tout nécessaire non ?
                                                          • La cinquième question requiert-elle une jointure simple ou une double ? J'arrive à afficher les données demandées par la question avec une jointure simple, mais s'il faut ajouter les noms et prénoms du salariés, je suis contraint de passer à la double.

                                                          Bonjour Xengdû. bravo, vous avez trouvé deux failles et imprécisions dans les activités. Elles seront corrigées dans la prochaine version des activités. A l'heure où sont écrites ces lignes, la question 4 (dans sa formulation actuelle) ne requiert effetivement pas de jointure, mais autant vous entraîner et répondre à cette question avec une jointure. Pour la question 5, le but est effectivement de vous faire écrire une jointure double, même si dans la formulation actuelle de la question, une seule jointure suffit. Autant répondre cependant par une double jointure.



                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            2 janvier 2018 à 20:50:28

                                                            Nicolas Rangeon a écrit:

                                                            Bonjour Xengdû. bravo, vous avez trouvé deux failles et imprécisions dans les activités. Elles seront corrigées dans la prochaine version des activités. A l'heure où sont écrites ces lignes, la question 4 (dans sa formulation actuelle) ne requiert effetivement pas de jointure, mais autant vous entraîner et répondre à cette question avec une jointure. Pour la question 5, le but est effectivement de vous faire écrire une jointure double, même si dans la formulation actuelle de la question, une seule jointure suffit. Autant répondre cependant par une double jointure.

                                                            D'accord merci beaucoup.
                                                            Je suis désolé de vous donner ces tracasseries, j'espère n'avoir pas donné l'impression de chercher la petite bête, car ce n'est pas le cas... je voulais juste m'assurer que j'avais bien tout saisi.

                                                            Encore merci pour votre réponse et votre cours, je m'y remets !

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            [Cours] algèbre relationnelle & SQL

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            • Editeur
                                                            • Markdown