REPUBLIQUE TUNISIENNE MINISTERE DE L EDUCATION Section : Sciences de l Informatique EXAMEN DU BACCALAUREAT JUIN 2012 Corrigé de l épreuve de Base de Données Session principale EXERCICE 1 : (3 points = 4x3x0,25) Dans le contexte des bases de données et pour chacune des propositions suivantes, mettre dans la case correspondante la lettre (V) si la réponse est juste ou (F) si elle est fausse : 1. Pour mettre à jour une base de données, on peut utiliser : V un formulaire. F un état. V une requête SQL. 2. En langage SQL, la clause ORDER BY est utilisée pour : V trier les données d une table dans un ordre donné. V ordonner des lignes sélectionnées d une table. F ordonner des colonnes sélectionnées d une table. 3. Une colonne clé étrangère : V peut contenir des doublons. V peut être une partie d une clé primaire d une autre table. F peut contenir des valeurs "NULL". 4. En langage SQL, la clause DISTINCT appliquée à une colonne, permet V d éliminer les doublons dans les résultats d une requête de sélection. F de supprimer des données d une table. V de rechercher les valeurs différentes dans une colonne. EXERCICE 2 : (3 points) On propose la base de données intitulée "Archive_CD", permettant de gérer une collection de CD audio relative à des artistes et à des compositeurs. Chaque CD est caractérisé par un style musical donné (Classique, Jazz, Rock, Hard, Oriental, etc.). Cette base de données est décrite par la représentation textuelle suivante : CD (NumCd, TitCd, DesCd, NbPistes, NumRang, CompCd, CodStyle#, IdArtiste#) STYLE (CodStyle, DesStyle) ARTISTE (IdArtiste, NomArtiste) Description des colonnes des tables Nom de la Nom de la Désignation colonne colonne Désignation NumCd Numéro du CD CompCd Nom du compositeur du CD TitCd Titre du CD CodStyle Code du style du CD DesCd Désignation du CD DesStyle Désignation du style du CD NbPistes Nombre de pistes dans le CD IdArtiste Identifiant de l artiste NumRang Numéro de l endroit du rangement du CD NomArtiste Nom de l artiste Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 1/6
Questions : 1) Sachant que la table STYLE est décrite dans le tableau donné ci-dessous, écrire la requête SQL permettant de créer cette table dans la base de données. Nom de la colonne Type Taille Contrainte CodStyle Texte 3 Clé primaire DesStyle Texte 25 Non NULLE CREATE TABLE STYLE ( CodStyle VARCHAR(3) PRIMARY KEY, DesStyle VARCHAR(25) NOT NULL) ; 2) Pour remédier à l'anomalie relative à la redondance concernant les noms des compositeurs dans la représentation textuelle ci-dessus, on propose d'ajouter à cette base de données une quatrième table intitulée COMPOSITEUR. Proposer une nouvelle représentation textuelle de cette base de données. ARTISTE (IdArtiste, NomArtiste) STYLE (CodStyle, DesStyle) COMPOSITEUR (IdComp, NomComp) CD (NumCd, TitCd, DesCd, NbPistes, NumRang, CodStyle#, IdArtiste#, IdComp#) EXERCICE 3 : (6 points) Soit la base de données intitulée "Gestion_Maintenance" permettant de gérer les interventions des techniciens d une société de maintenance de matériels informatiques. N.B. : Une intervention relative à un matériel donné est assurée par un seul technicien. Cette base est décrite par la représentation textuelle simplifiée suivante : CLIENT (CodCl, NomCl, PrenCl, TelCl, AdrCl, VilCl) MATERIEL (RefMat, DesMat, CodCl#) TECHNICIEN (CodTech, NomTech, PrenTech, DNaisTech) INTERVENTION (NumInt, DescInt, DatInt, MontInt, RefMat#, CodTech#) Description des colonnes des tables Nom de la colonne Description Nom de la colonne Description CodCl Code du client CodTech Code du technicien NomCl Nom du client NomTech Nom du technicien PrenCl Prénom du client PrenTech Prénom du technicien TelCl Téléphone du client DNaisTech Date de naissance du technicien AdrCl Adresse du client NumInt Numéro de l intervention VilCl Ville du client DescInt Description de l intervention RefMat Référence du matériel DatInt Date de l intervention DesMat Désignation du matériel MontInt Montant de l intervention Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 2/6
Questions : 1. Ecrire les requêtes SQL permettant d afficher : a. la liste nominative des techniciens (nom et prénom) de la société, classés par ordre croissant des noms. SELECT NomTech, PrenTech FROM TECHNICIEN ORDER BY NomTech; b. le nombre et le montant total des interventions réalisées par le technicien ayant le code "T018". SELECT COUNT (*), SUM (MontInt) FROM INTERVENTION Where CodTech = T018 ; OU : la solution comportant les 2 requêtes suivantes : SELECT COUNT (*) FROM INTERVENTION Where CodTech = T018 ; SELECT SUM (MontInt) FROM INTERVENTION Where CodTech = T018 ; c. la liste des interventions (numéro et description de l intervention, référence et désignation du matériel) effectuées pour le client ayant le code "C045" durant l année 2012, classées dans l ordre chronologique. SELECT NumInt, DescInt, RefMat, DesMat FROM INTERVENTION I, MATERIEL M, Where I.RefMat = M.RefMat AND CodCl = C045 AND DatInt >= 01/01/2012 AND DatInt <= 31/12/2012 ORDER BY DatInt; Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 3/6
2. La direction des ressources humaines a recruté un nouveau technicien ayant les informations suivantes : CodTech NomTech PrenTech DNaisTech T250 ALOUI Amir 20/04/1985 Ecrire la requête SQL permettant d ajouter ce technicien à la base de données. Ou INSERT INTO TECHNICIEN VALUES ( T250, ALOUI, Amir, 20/04/1985 ) ; INSERT INTO TECHNICIEN (CodTech, NomTech, PrenTech, DNaisTech) VALUES ( T250, ALOUI, Amir, 20/04/1985 ) ; 3. Le client ayant le code "C1045" a informé la société qu il a changé son numéro de téléphone par "98140111". Ecrire la requête SQL permettant de réaliser cette modification. UPDATE CLIENT SET TelCl = 98140111 WHERE CodCl = C1045 ; 4. Pour faciliter le contact avec ses clients, la société décide d attribuer une ligne téléphonique portable pour chaque technicien. Ecrire la requête SQL permettant d ajouter la colonne intitulée TelTech composée de 8 chiffres à cette base de données. ALTER TABLE TECHNICIEN ADD COLUMN TelTech VARCHAR(8) ; Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 4/6
EXERCICE 4 : (8 points) Question 1 : (2,5 points) Liste des colonnes Nom de la colonne Description Type de données Taille Obligatoire Valeur par défaut Valeurs autorisées Sujet CodForum Code du forum Numérique 8 O FORUM NomForum Nom du forum Caractère 30 O FORUM DescForum Description du forum Caractère 50 N FORUM URLForum Adresse du forum sur internet Caractère 30 O FORUM EmailAdmin Email de l administrateur Caractère 30 O FORUM CodRub Code de la rubrique Caractère 30 O TitRub Titre de la rubrique Caractère 30 O RUBRIQU E RUBRIQU E DatRub Date de création de la rubrique Date NumMsg Numéro du message Numérique 10 O MESSAGE TitMsg Titre du message Caractère 30 O MESSAGE TxtMsg, Texte du message Caractère 256 O MESSAGE DatMsg Date de création du message Date IdAut Identifiant de l auteur Numérique 10 O AUTEUR PseudoAut Pseudonyme de l auteur Caractère 30 O AUTEUR PswdAut Mot de passe de l auteur Caractère 20 O AUTEUR EmailAut Email de l auteur Caractère 30 O AUTEUR NomAut Nom de l auteur Caractère 30 N AUTEUR PrenAut Prénom de l auteur Caractère 30 N AUTEUR DNaisAut Date de naissance de l auteur Date GenreAut Sexe de l auteur Caractère 1 N AUTEUR ProfAut Profession de l auteur Caractère 30 N AUTEUR VilleAut Ville de l auteur Caractère 30 N AUTEUR Question 2 : (4 * 0,25 = 1 point) Liste des tables Nom de la Table Description Sujet FORUM Regroupe l ensemble des forums du webmaster Forum RUBRIQUE Regroupe toutes les rubriques des forums Rubrique MESSAGE Regroupe l ensemble des messages des rubriques Message AUTEUR Regroupe l ensemble des auteurs Auteur Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 5/6
Question 3 : (3 * 0,5 = 1,5 points) Liens entre les tables Table mère Table fille Clé primaire Clé étrangère FORUM RUBRIQUE CodForum CodForum AUTEUR MESSAGE IdAut IdAut RUBRIQUE MESSAGE CodRub CodRub Question 4 : (4 * 0,75 = 3 points) FORUM (CodForum, NomForum, DescForum, URLForum, EmailAdmin) RUBRIQUE (CodRub, TitRub, DatRub, CodForum#) MESSAGE (NumMsg, TitMsg, TxtMsg, DatMsg, IdAut#, CodRub#) AUTEUR (IdAut, PseudoAut, PswdAut, EmailAut, NomAut, PrenomAut, DNaisAut, GenreAut, ProfAut, VilleAut#) Corrigé de l épreuve de Base de Données 2012 Sciences de l Informatique Page : 6/6