retour sommaire des sujets

Licence Physique et Applications
Parcours Ingénierie
3ème année, semestre 6

Contrôle continu n° 1 du 17/3/06
Programmation et bases de données

Durée : 1h30, documents autorisés. Vous pouvez composer sur votre propre papier. N'oubliez pas votre nom ! Ceux qui veulent que je publie leur note avant la publication officielle indiqueront en plus leur numéro d'anonymat (commençant par JU)

1) définition d'une base de données

On désire gérer le parc des ordinateurs de l'IPST. On va utiliser plusieurs tables, chacune aura une clef primaire sous forme d'un entier (auto-incrémenté) qui servira aux relations entre les tables. Chaque ordinateur possède un identifiant unique, et l'on doit pouvoir connaître, pour chacun, les informations suivantes : la salle (détaillée dans une table annexe par un nom court de 6 caractères maxi et une description plus complète sur 40) et le bâtiment (ici aussi un nom court et une description complète, il peut y avoir plusieurs salles dans un même bâtiment), son numéro IP (15 caractères) et son numéro MAC (17 caractères), la date d'achat, la date de dernière maintenance.

1a) faites un schéma représentant cette première partie de la base de données (prévoyez de la place, vous y rajouterez encore d'autres choses, peut-être dans une autre couleur). Donnez les instructions CREATE TABLE, en SQL, permettant de créer ces tables.

Comme les PC peuvent avoir plusieurs systèmes d'exploitation (SE), on définit les SE existants dans une table (nom sur 8 caractères, détails sur 20, version sur 6 caractères), une table contenant deux champs (identifiant de PC et de système) permettra (via une sélection) de rechercher pour un PC donné son ou ses systèmes d'exploitation.

1b) Définissez (schéma) ces deux tables, leurs relations entre elles et avec les tables définies plus haut. Ecrivez la requête SQL qui permet de retrouver le ou les systèmes d'exploitation d'un PC dont on connaît le numéro IP.

Une autre table regroupera toutes les opérations de maintenance (OM), avec le PC incriminé, le système d'exploitation incriminé (NULL si l'OM n'était pas liée au SE, par exemple panne matérielle), un descriptif (moins de 256 caractères) de la panne et un autre (même longueur) de la réparation effectuée, et bien sur la date de l'OM.

1c) définissez par un schéma la structure de cette table et ses liens avec les autres tables. Donnez la requête SQL trouvant, pour un PC donné (par son identifiant), le nombre d'opérations de maintenance effectuées sur ce poste. Améliorez cette requête, en cherchant le nombre d'OM, pour un PC dont je connais le numéro IP, entre deux dates données. Donnez la requête SQL permettant d'afficher, pour chaque salle, le nombre d'OM effectuées depuis une date donnée (vous pouvez aussi un peu expliquer ce que vous essayez de faire, ça me permettra moduler la note si c'est faux).

2) architecture client - serveur

2a) Supposons que la base de données soit physiquement sur un ordinateur A. Que je compte y accéder via des pages Web (dynamiques) physiquement stockées sur un ordinateur B. Je suis en fait sur un ordinateur C, et je veux interroger la base de données, expliquez ce qui est client et ce qui est serveur. Et si A=C ?

2b) Les hypothèses du 2a restent vraies ici. Si C (différent de A) est un ordinateur hors d'Osiris (réseau de notre université), que B n'accepte (pour raisons de sécurité) que des accès depuis Osiris, je peux passer par Univ-R. C'est un système Windows tournant sur un serveur de l'université (nommons le D). On peut y accéder de tout ordinateur (qu'il soit sous Windows ou autre SE, partout sur Internet) grâce à un logiciel spécifique que j'installe sur C. C'est D qui "calcule" le graphisme à afficher et l'envoie sur le réseau (il vaut mieux avoir une bonne connexion réseau). Expliquez ce qui est client et ce qui est serveur. Et si D=B et A=C ?

2c) Revenons aux hypothèses du 2a, mais avec plusieurs postes C. Dans une page web (stockée sur B), il y a des instructions (dynamiques) qui recherchent des données sur A. Puis ces données sont analysées et on en ressort des statistiques (moyennes de pannes par exemple). En supposant que de nombreuses personnes désirent faire diverses statistiques, tous en même temps, on va devoir effectuer un maximum de calculs sur les postes de type C, pour ne pas trop encombrer A et B. Expliquez ce qui est serveur, ce qui est client, où l'on va trouver des choses dites "côté serveur" et "côté client".

3) codage HTML

Comment coderiez vous en HTML ce sujet ? Evidemment, ne recopiez pas tout le texte du sujet, mais prouvez votre intelligence. Pour encadrer un texte, il suffit de le mettre dans un tableau dont on a dessiné la bordure (on n'y met qu'une ligne et une colonne, bien sur).


proposition de correction.

histogramme
notes CC1 LPA3 2006

retour sommaire des sujets

Patrick TRAU, IPST ULP, mars 06.