retour page Patrick TRAU logo

Patrick TRAU

Management du numérique (master 1 GI)

Unistra - Faculté de Physique et Ingénierie


Ce cours détaille la mise en oeuvre pratique de l'organisation des données dans une base de données relationnelle. Le but n'est pas de devenir spécialiste SQL, mais savoir comment cela fonctionne, pour discuter efficacement avec l'informaticien qui créera la base dont vous avez besoin.

  1. Présentation générale, documents associés au cours
  2. notes de cours
  3. les TP
  4. principales questions posées dans le chat, pendant les séances en distanciel

1) Présentation générale, documents associés au cours

Ce cours était historiquement partagé par trois enseignants. L'un (industriel ou enseignant) faisant une présentation générale des systèmes d'information dans l'entreprise et le PLM. Un second s'occupe de la mise en oeuvre pratique du PLM. Moi-même (P. Trau) m'occupe de la mise en oeuvre pratique de l'organisation des données dans une base de données relationnelle. Cette page Moodle ne concerne que ma partie.

Il y aura 8 à 12h de cours (4h pour chaque enseignant), 8h de TP PLM et 2 TP de 4h avec moi.

Mes deux cours de 2h, et les deux TP se sont fait en 2021 en distanciel (via BBB). Les TP nécessitent un accès au VPN de l'Unistra (voir mon document sur les accès à distance aux ressources informatiques), veuillez tester à l'avance et me prévenir des problèmes matériels que vous pouvez rencontrer. Nous chercherons une solution, en particulier l'accueil en présentiel en salle info de la fac ou par l'utilisation de mon serveur personnel (raspbery PI).

Evaluation (de toute l'UE) : examen écrit 1h sur l'ensemble du programme (1/3), TP PLM (1/3), TP Bases de Données (1/3). L'examen écrit comportera des question de tous les intervenants. Pour ma part, ce seront des questions assez générales, ne nécessitant donc pas d'avoir accès aux documents (mais plutôt d'avoir écouté en cours, et avoir compris l'organisation des données dans une base, mais pas besoin de apprendre par coeur la syntaxe du SQL, à la rigueur quelques commandes simples).

[lien] cours systèmes d'information

[lien] cours gestion des données et SQL

[lien] document accès aux bases de données de l'Unistra

2) notes de cours

Cours 1 : stockage des données : nombres, caractères, images, sons. fichiers 1D (séquentiel, accès direct), 2D (tableur), 3D (tables avec relations, bases locales ou distribuées). Architecture client-serveur (serveur web, SGBDR, serveur de fichiers...). Le web et le cloud, les outils collaboratifs (Google docs, PowerBi). Mon approche du PLM.

Cours 2 : Structure d'une base, table, champs, enregistrements, vues et formulaires, relations (clé primaire et étrangère). Exemple d'une playlist (musique), Définition de la structure (tables, champs, relation). Création des tables, insertion de valeurs, sélections. Nous finissons le cours par une sélection multi-tables utilisant les relations.

Rq : quelques points dont je compte parler, mais je sais déjà que je n'en aurait pas le temps :

quelques liens externes intéressants :

3) les TP

Du fait du confinement, les activités se sont faites en télétravail en 2021. Par défaut, l'absence à un TP vaut 0.

il faut, en TP, accéder à des serveurs normalement uniquement accessibles de l'intérieur de l'Unistra. Pour cela, le plus simple est d'utiliser nos salles virtuelles (VDI) en salle PHISVL1 (en Linux, c'est le plus adapté). Au premier TP, c'est toujours via un navigateur, mais au second nous utilisons un mode texte :

-Sous windows 10 : appeler "invite de commande",
-Sous ancien windows ou certains Windows 10 famille : essayez d'installer putty, c'est le plus facile. Sinon prévenez moi, je vous proposerai des solutions
-Sur Mac : Application-> Utilitaires->Terminal
-Sur Linux : terminal.
puis tapez "ssh identifiantUnistra@osr-etudiant.unistra.fr"
s'il vous affiche "identifiantUnistra@osr-etudiant:~$", vous avez les bons accès. Vous pouvez taper exit (2 fois de suite) pour fermer le terminal.
Si ça ne fonctionne pas, écrivez moi, je vous proposerai d'autres solutions (mais dites moi ce qui n'a pas fonctionné, quel OS vous utilisez, si vous avez accès au VPN Fortinet ou Cisco AnyConnect ou au VDI).
Faites le test rapidement pour que je vous trouve des solutions.

Vous devez retourner vos rapports de TP et documents ici. Prévenez-moi si je n'ai pas ouvert le dépôt conformément aux dates précisées pendant le TP ! Sachez que Moodle INTERDIRA cet accès dès l'heure limite atteinte ! (peut-être avec une marge d'1/4h).

[lien] sujet TP 1 (base sous phpmyadmin)

[lien] sujet TP 2 (base en SQL, mode texte)

Dans ce second TP, vous devrez TAPER des commandes SQL. Vous avez deux sources : mon document sur les commandes que j'ai tapées en cours (playlist), et mon poly gestion des données dont j'ai distribué une version papier (retrouvez le lien plus haut ;-).

je vous ai également préparé une vidéo détaillant l'accès aux serveurs Unistra

4) principales questions posées dans le chat, pendant les séances TP1 en distanciel

08:27 Patrick Trau : Bonjour. Chez moi, j'ai une petite fenêtre séparée pour ce Chat, et elle ne se ferme pas si elle est recouverte. Lors de cours précédents, certains l'avaient dans un onglet, ça les déconnectait dès qu'ils changeaient d'onglet. Le problèmes est que quand vous vous reconnectez vous n'avez que ce qui ce dit à partir de ce moment. C'est pour cela que j'en recopie une partie ici.

consignes : lisez le sujet, essayez de comprendre. Occupez vous pour l'instant de la question 1. Inutile d'essayer de le faire au propre, ce sera pour plus tard, quand vous aurez fini le TP. Vous n'arriverez pas à tout faire, c'est normal. Le but est que vous découvriez. 

08:54 étudiant A : Bonjour, le schéma structurel est le même schéma type que nous avons dans le cours?
Patrick Trau : oui

09:09 étudiant B : Je ne vois pas comment indiquer que c'est un élément ou une pièces acheté dans la base
Patrick Trau : si c'est un élément, il y a E dans un champ d'1 caractère (qu'on pourait appeller "genre" par ex). Sinon le genre est A, S ou F

étudiant A : Pour l'instant je suis en train de créer mes tables dans Phpmyadmin, c'est à cet endroit que je comprend pas comment le stipuler, je dois créer une table par caractère ?
Patrick Trau : non. Rappelez-vous, vous êtes en train de créer une tables, c.à.d comme une feuille excel. Chaque champ est une colonne. Donc un champ "genre" de type caractère (char) , avec taille 1.

09:31 étudiant C : j'ai un peu de mal dans le cas de l'exercice à comprendre qui est l’élément "père" et l’élément "fils"
09:34 Patrick Trau : étudiant C : tu ne dois pas être le seul.
09:35 Patrick Trau : étudiant C (et les autres). Je détaille les tables :

09:56 étudiant A : Il faut rendre a 12h aujourd'hui?
10:02 Patrick Trau : Délai : Je vous laisserai du temps pour rédiger. Je rappelle que ce TP est pour découvrir. Ca ne doit pas être parfait, pas la peine d'y passer trop de temps

09:59 étudiant A : Je n'arrive pas a me connecter a la base de données
10:04 Patrick Trau : que signifie je n'arrive pas à me connecter ? un site est indisponible ? il n'accepte pas votre mot de passe ? la base est en lecture seule ? le mail de confirmation de création de la base n'est pas arrivé ?

la connexion est non permise depuis la maison. il faut appeller firefox depuis un poste de l'Unistra, par ex via "appli. unistra.fr" en bureau à distance. Le bureau à distance fonctionne-t-il ? si oui, cliquer sur l'icône firefox sur ce bureau (l'icône est différente que sur mon bureau personnel, peut-être une sphère bleue.

L'autre solution est de passer par le VPN, mais c'est peut-être un peu dur à faire, et je ne peux pas vous aider car n'ayant pas du tout les mêmes droits que vous, ce qui va chez moi a peu de chances de fonctionner chez vous.

Quand je parle du VPN, il s'agit du VPN de l'unistra. Explications sur https://services-numeriques.unistra.fr/documentations/toutes-les-documentations/services-au-poste-de-travail/acces-distants-securises-vpn.html

10:23 étudiant C : #1045 connexion au serveur MySQL non permise
10:24 étudiant C : je suis connecté bureau a distance...
10:25 étudiant C : PB résolu
10:26 Patrick Trau : comment ?
10:27 étudiant C : j'ai écris le bon mdp :)

10:32 étudiant D : Je n'arrive pas à me connecter au bureau à distance, il me met "impossible d'établir la connexion" je fonctionne avec un VPN pour avoir internet je ne sais pas si cela joue en tout cas j'ai essayé plusieurs manipulation différentes et impossible de me connecter.
Patrick Trau : c'est le VPN du boulot ?
as-tu trouvé l'application "bureau à distance" sur ton PC ? si oui quel message, si non est -tu sur windows, quel windows ? étudiant D : Oui j'ai l'application bureau à distance, le message est "impossible de se connecter alors que j'ai rentré toutes les informations" et je suis sous windows 10
Patrick Trau : il y a de grandes chances que ton VPN du boulot, sur un poste du boulot, ne laisse pas passer des accès spéciaux. Comme ça même si le poste est infesté il ne peut rien transmettre

10:49 étudiant A : comment ajouter les relations sur mysql?
Je n'arrive pas a definir les clés primaires
10:54 étudiant E : les id remplacent est-il une clés primaire ?
11:00 Patrick Trau : N'est obligatoirement clé primaire (bout des flèches sur le schéma, souligné dans phpmyadmin si ça a marché) : l'id dans concepteur et l'id dans element. Rien d'autres dans ces deux tables. Les 2 autres tables peuvent avoir une clé primaire, mais ce n'est pas obligatoire.
relations : les relations créées en concepteur (graphique) ne peuvent pas fonctionner. il faut d'abord définir les clés primaires (extrémité de la liaison). Puis pour chaque clé étrangère (début de la liaison) il faut sélection la clé primaire à lier (structure -> vue relationnelle). On peut ensuite afficher le schéma structurel (options -> concepteur). normalement, dans les onglets en haut, à droite, soit il y a "concepteur" soit il y a "plus"

10:39 étudiant F : Bonjour, je suis en télétravail la semaine et n'ai pas beaucoup de dispo pour réaliser le TP dans le créneau prévu. (réunions Teams ne pouvant être reporté) Pouvez vous augmenter la deadline de rendu de ce TP svp?
10:41 Patrick Trau : pour le délai j'ai répondu (voir sur moodle mes réponses au chat). Mais n'y perdez pas trop de temps en tout (j'aimerais que vous y passiez au moins 4h). Je rallonge le délai (il dira juste que c'est dépassé mais ca fonctionnera encore)

11:14 Patrick Trau : étudiant D : Sur windows 10 appuyer sur la touche windows et R en même temps, puis taper "cmd". Il ouvre une fenêtre texte (commandes Dos) et là tu peux taper :  ssh loginENT@osr-etudiant.unistra.fr

Ca te demande ton mot de passe ENT (rien ne s'affiche, même pas des *) .
Puis tapes "mysql -u -p -h osr-mysql.unistra.fr " (nom_base étant à priori ton login). puis "quit;" (ne pas oublier le ;) puis "exit" puis "exit". et dis moi si ça a marché.

C'est un autre chemin pour y accéder, mais ce sera un comportement assez différent
11:19 étudiant D : Je suis dans la fenetre cmd
11:22 Patrick Trau : tape : ssh loginENT@osr-etudiant.unistra.fr
Ca te demande ton mot de passe ENT (rien ne s'affiche, même pas des *) .
Puis tapes "ls -al".
Dis moi si ça a marché. C'est un autre chemin pour y accéder, mais ce sera un comportement assez différent, je t'expliquerai si ça marche
11:23 étudiant D : Il me dit que ssh n'est pas reconnu comme programme interne
11:26 Patrick Trau : ils ont peut-être aussi coupé ce chemin. j'abandonne pour aujourd'hui, peut-être que les nuits prochaines me porteront conseil. Je te recontacterai (via moodle, mais ça t'enverra directement un mail)

11:28 étudiant G : comment fait on pour ajouter les fleches des relations? car elles n'apparaissent pas
11:42 Patrick Trau : relations : les relations créées en concepteur (graphique) ne peuvent pas fonctionner. il faut d'abord définir les clés primaires (extrémité de la liaison). Puis pour chaque clé étrangère (début de la liaison) il faut sélection la clé primaire à lier (structure -> vue relationnelle). On peut ensuite afficher le schéma structurel (options -> concepteur).
11:48 étudiant G : quand j'essaie de modifier la clé primaire j'ai le message d'erreur suivant : #1025 - Error on rename of './#sql-44f_115397' to './Concepteurs' (errno: 150)
11:53 Patrick Trau : Attention sous phpmyadmin la couleur de la clé dessinée est aléatoire. ce qui compte c'est si le nom du champ est souligné

11:56 étudiant A : lorsque je mets une relation il y un message : Firefox a eméché d'ouvrir la fenetre
12:00 Patrick Trau : étudiant A, étudiant G et ceux qui ont un pb de flèches : en premier regardez bien l'adresse en haut de firefox : ça doit commencer par https://osr-base.unistra.fr et pas https//osr-adminbase.unistra.fr ! de temps en temps un clic au mauvais endroit donne ce comportement.
12:40 Patrick Trau: étudiant A, j'ai regardé ta base. il ne faut qu'une clé primaire par table. Pour la table des étudiants de l'unistra, c'est votre numéro d'étudiant. Dans toutes les autres tables de l'unistra, quand on parle d'un étudiant on UTILISE son numéro d'étudiant, mais ce n'est pas un clé primaire. Justement, on dessine une flèche de cet endroit VERS la clé primaire de la table des étudiants.
Donc l'ID d'un concepteur est clé primaire, mais l'ID du remplaçant est un début de flèche qui pointe vers l'id (dans la même table, certes).

11:59 étudiant H : Bonjour M.Trau, j'ai exporté les instruction SQL sur un bloc note, faut il vous le glisser dans dossier rendu ou juste un copié coller dans le dossier à vous rendre ?
12:02 Patrick Trau : au choix. S'il est dans un fichier .txt (ou .sql), si je le regarde sur Linux ou sur notepad++ il me mettra des couleurs qui me permettent de le lire plus facilement.

12:05 Patrick Trau : Il est midi, pour ceux qui sont bloqués aux flèches
1) ce n'est pas une catastrophe, vous pouvez quand même tester un "select nom from concepteur" et essayer quelques commandes SQL de la Q3
2) vous pouvez m'envoyer (par mail, pas besoin de le divulger) votre loginBD et motdepasseBD (et surtout pas ceux de l'ENT !). Je regarderai, mais un seul à la fois !
3) vous m'exportez votre SQL, je le regarde (envoi par mail pour éviter de saturer le chat) et je trouve tout de suite la faute.

Malheureusement, dans le flot des questions et mes essais de réponses, je n'ai pas vu celui là :
10:57 étudiant Z
Pouvez-vous me résumer la suite? J'ai pu ouvrir la base mais je suis perdu pour la suite, je n'avance pas.

Mais il n'a pas répondu à celui là (et personne d'autre) :
12:09 Patrick Trau
Qui en est encore bien avant ces problèmes de flèches ?

19:25 Je viens de finir de tout remettre en forme, ouf. (j'avais un TD avec les mécatro cet après-midi). Vous pouvez encore me poser des questions, si possible via moodle. J'aimerais néanmoins que ceux qui n'ont pas pu finir ne tardent pas trop, que je puisse corriger le TP1.


P. TRAU, Unistra, juillet 2021