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.
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).
cours gestion des données et SQL
document accès aux bases de données de l'Unistra
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 :
le PLM : sur toute la vie des produits, on a enchaîné une multitude de processus : définition du besoin, étude de marché, conception, fabrication, vente, utilisation, rebut (et j'ai simplifié), où l'on utilise désormais des logiciels. Pour coordonner tout cela, on a des méthodes (cycle en V, mode projet...). Mais chaque outil est indépendant. Il faut donc ressaisir les données résultant d'une phase, en entrée de la suivante, et souvent sous un autre format.
La première idée du PLM est de tout mettre dans un même logiciel (plus gros, peut-être plus cher) et tout process peut accéder aux données d'un autre. Certains on commencé par le lien CAO - FAO puis se sont étendu petit à petit en amont et en aval. Mais ces PLM issus de la CAO ne sont quand même pas encore les meilleurs dans la gestion financière, du personnel... A l'inverse, certains sont partis d'un logiciel de gestion, se sont étendus à la gestion de production, et maintenant savent attacher les dessins des pièces à chaque produit (SAP, windchill...) Pour moi c'est aussi du PLM. Siemens, qui faisait la réalisation pratique des lignes de production (matériel et logiciels d'automatisme) a racheté un super logiciel de CAO (Unigraphics, parmi les meilleurs dans les stations CAO, avant le PC), et maintenant on peut aller de la conception, à la réalisation de la pièce, et dessiner toute l'usine en 3D et simuler toute la production, y compris la gestion des ressource matérielles et humaines (teamcenter, je crois).
Mais le PLM ce n'est pas que ça. Il faut y rajouter la traçabilité. pour CHAQUE produit, il faut avoir stocké toutes les phases de vie, pour remonter en cas de problème, ou envie de modification. Rien que pour l'automatisme, avant on faisait tourner des moteurs et bouger des vérins, maintenant il faut savoir quelle pièce est passée devant quel vérin à quelle heure. Pour tout cela, il faut stocker une quantité phénoménale de données. Et les gérer ! c'est pourquoi je vous parle de bases de données, de cloud, de client-serveur... Bien sûr, on est encore bien loin d'un PLM complet tel que je le rêve. Mais quand je parlais de ma CAO de rêve, quand j'étais jeune prof (le PC n'était pas encore inventé), j'avais raison.
Industrie 4.0 : ce n'est pas juste tout informatiser, tout stocker, et retrouver ses informations ; mais si tout cela est fait, les outils doivent (devront ?) permettre d'être agile (changer facilement le produit), disruptif (réagir immédiatement à un brusque changement externe : concurence, changement du besoin...), flexible et personnalisable (le client peut demander toute modification), "user friendly" (le client peut voir l'évolution de sa commande), inventif (on peut simuler toute modification du produit, du process)
outils collaboratifs : Comment travailler à plusieurs sur un même projet. Sur Google docs, vous pouvez voir votre texte évoluer pendant que vous le tapez, mais aussi celui que tape un collègue dans le même doucement, en même temps. Ce n'est possible que parce-que le logiciel tourne sur un seul ordi (un serveur) malgré qu'il ait plusieurs fenêtres de visualisation (clients). Il existe des TAS ce logiciels de ce type, même en libre : https://degooglisons-internet.org/fr/. Bien sûr, vous proposer un logiciel gratuit est courant, mais pas le serveur pour le faire tourner : soit vous l'installez chez vous (par ex BBB installé à l'Unistra et dans plein d'entreprises) soit louer (cloud) : MS Teams...
PowerBI (de MicroSoft) est pour moi une évolution qui se généralisera. Ce logiciel a toutes les fonctionnalités d'Excel (analyse de données, statistiques, graphiques...) Par contre les données peuvent venir de n'importe où (feuille Excel, BD SQL, voire toute recherche web), et les calculs et graphiques évolueront en temps réel. On s'en sert donc pour des tableaux de bord, et je pense qu'en GIPI cela permetra d'aficher graphiquement les données de prod, KPI, TRS, non qualités... depuis les données SAP, les sorties des machines, les tableaux excel...
quelques liens externes intéressants :
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).
sujet TP 1 (base sous phpmyadmin)
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
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
é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.
donc dans list_elem un pere est un ensemble qui contient des fils (piece ou ensemble), si un père a 2 fils il y a 2 lignes. Ici, le corps devrait contenir un cylindre, une mine, un ressort.... je n'ai mis que la mine
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 permise10: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"
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