FEDERATION EUROPEENNE DES ECOLES EUROPEAN FEDERATION OF SCHOOLS Organisation non gouvernementale dotée du statut participatif auprès du Conseil de l’Europe NGO enjoying participatory status with the Council of Europe
UE D - TECHNIQUES PROFESSIONNELLES
Master Européen d’Informatique UC D41.2 – Développement
Corrigé
Type d’épreuve : QCM et Exercice pratique Durée : 3 heures Session : Juin 2011
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement – Corrigé
1/ QCM : 45 minutes
1. En langage PHP, La fonction "var_dump()" retourne : a. b. c. d.
les informations structurées d'une variable, y compris son type les informations structurées d'une variable, y compris son type et sa valeur uniquement le type d’une variable uniquement la valeur d’une variable
2. Pour " parser " un document XML, il existe deux différentes méthodes utilisant : soit " SAXParser ", soit " DOM ". Pour la première méthode, quelle assertion est correcte ? a. le principe du "SAX parser" consiste à parcourir le flux XML du début vers la fin sans s’arrêter b. le principe du "SAX parser" consiste à parcourir le flux XML (du début vers la fin) et de "s'arrêter" dès qu'un élément particulier est rencontré afin de le traiter c. le principe du "SAX parser" consiste à charger tout le flux XML sous la forme d'un arbre (en mémoire) puis d'aller y piocher l'information qui nous intéresse d. le principe du "SAX parser" consiste à charger tout le flux XML sous la forme d'un tableau (en mémoire) puis d'aller y piocher l'information qui nous intéresse
3. Pour " parser " un document XML il existe deux différents moyens utilisant : soit " SAXParser ", soit " DOM ". Pour la seconde méthode, quelle assertion est correcte ? a. le principe du " DOM " consiste à parcourir le flux XML du début vers la fin sans s’arrêter b. le principe du " DOM " consiste à parcourir le flux XML (du début vers la fin) et de "s'arrêter" dès qu'un élément particulier est rencontré afin de le traiter c. le principe du " DOM " consiste à charger tout le flux XML sous la forme d'un arbre (en mémoire) puis d'aller y piocher l'information qui nous intéresse d. le principe du " DOM " consiste à charger tout le flux XML sous la forme d'un tableau (en mémoire) puis d'aller y piocher l'information qui nous intéresse
4. La norme RSS est basée sur le standard XML, la balise racine est une balise : a. b. c. d.
Item XML Title RSS
5. Dans un flux RSS, la balise RSS doit obligatoirement contenir un bloc " Channel ", qui doit obligatoirement contenir une balise title et : a. b. c. d.
une balise link, une balise description et au moins un bloc item une balise link, et au moins un bloc item une balise description, et au moins un bloc item une balise link, une balise description, mais pas de bloc item
6. En langage PHP, la fonction xml_set_element_handler( ) : a. b. c. d.
admet un seul paramètre admet deux paramètres admet trois paramètres n’admet aucun paramètre
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
2/15
7. En langage PHP, la fonction xml_set_character_data_handler (P1,P2) admet deux paramètres… : a. b. c. d.
P1 est le parseur XML et P2 la fonction à appeler lorsqu’une balise ouvrante est rencontrée P1 est le parseur XML et P2 la fonction à appeler lorsqu’une balise fermante est rencontrée P1 est le parseur XML et P2 la fonction à appeler lorsque du texte est rencontré P1 est le parseur XML et P2 la fonction à appeler lorsqu’une balise est rencontrée
8. L’exemple DTD suivant : < !ELEMENT chapitre (titre_chapitre, corps_chapitre)> a. indique que l’élément chapitre, peut être répété et que chaque chapitre est constitué des éléments titre_chapitre et corps_chapitre dans cet ordre b. indique que l’élément chapitre est obligatoire, peut être répété et que chaque chapitre est constitué des éléments titre_chapitre et corps_chapitre dans cet ordre c. indique que l’élément chapitre, peut être répété et que chaque chapitre est constitué des éléments titre_chapitre et corps_chapitre dans n’importe quel ordre d. indique que l’élément chapitre est obligatoire, peut être répété et que chaque chapitre est constitué des éléments titre_chapitre et corps_chapitre dans n’importe quel ordre
9. A l'origine le langage PERL a été créé pour UNIX pour manipuler des : a. b. c. d.
fichiers et des textes processus réseaux processus locaux fichiers, des processus et des textes
10. Parmi les affirmations suivantes, laquelle est fausse ? a. b. c. d.
le langage PERL permet d'intégrer des requêtes SQL le langage PERL est un langage qui permet la programmation orienté objet le langage PERL est un langage utilisable sous Windows le langage PERL est un langage très différent du Langage C
11. En langage PERL, quelle commande ou fonction retourne un tableau d’éléments trouvés ? a. b. c. d.
substr() join () splice() grep()
12. En langage PERL, comment peut-on définir un constructeur de la classe C1 ? a. b. c. d.
sub nouvelle { } construct ( ) construct {} new C1( )
13. En langage PERL pour écrire une classe, on doit créer un fichier : a. b. c. d.
.pm .pl .class .perl
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
3/15
14. En langage PERL qu’est-ce qu’un champ statique ? a. b. c. d.
un champ qui est commun à toutes les classes un champ qui est commun à tous les objets un champ qui est commun à tous les objets d'une classe un champ qui est constant
15. L’appel système fork() permet de créer : a. b. c. d.
deux nouveaux processus un processus à partir d'une structure générale de processus du noyau un processus par duplication et un nouveau processus un nouveau processus
16. L’appel de la fonction " kill( ) " permet : a. b. c. d.
de tuer le nouveau processus de tuer le processus dont le " pid " est passé en paramètre d’envoyer le signal SIG au processus dont le " pid " est passé en paramètre de créer un processus nouveau
17. Comment sait-on que le parent d'un processus est mort ? a. b. c. d.
getppid() retourne 0 getppid() retourne -1 getppid() retourne 1 getpid() retourne -1
18. L’instruction " File *Popen() " : a. b. c. d.
ouvre un pointeur sur un fichier renvoi un descripteur de fichier lance l’exécution d’une commande et renvoie un descripteur de fichier lance une commande
19. La valeur du signal SIGKILL est : a. b. c. d.
-1 1 5 9
20. Dans le prototype du " main " : int main( int argc, char *argv[], char *arge[] ), quelle proposition est fausse ? a. b. c. d.
le " main " est toujours typé entier " *arge[] " est un tableau de dimension infinie on peut déclarer " arge " aussi avec: " char **arge " " arge " récupère l’environnement mémoire du processus exécutant le main()
21. La norme POSIX, préconise de retourner une constante " #define " plutôt qu’un zéro en cas de succès de la sortie du main(), pourquoi ? return(EXIT_SUCESS) ; /* ou bien return(0) */ a. b. c. d.
parfois le main() ne retourne rien *arge[] est un tableau de dimension infinie certaine C/Unix/Linux retourne autre chose que 0 pour un retour avec succès (portabilité) cela garantit une bonne sortie du code, comme la fonction exit()
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
4/15
22. Dans ce prototype de la fonction " read ", qu’est-ce qui n’est pas correct ? #include ssize_t read(int descripteur_fichier, void *ptr, size_t nb_octets); a. b. c. d.
un descripteur est un numéro index du tableau des ouvertures d’un processus void *ptr pointe sur un type quelconque une opération de lecture se fera sur au plus nb_octets ssize_t n’est pas un type
23. L’appel Système pipe() permet de créer un tube simple entre 2 processus sous Unix/Linux. Trouvez la proposition fausse : int pipe(int p[2]) ; a. b. c. d.
un tube simple pipe() possède 2 ouvertures un tube simple est accessible par un nom de lien dans l’arborescence, comme un fichier l’(es) ouverture(s) du tube simple est(sont) gérée(s) par descripteur un processus peut créer un tube seul (pas besoin d’être deux processus)
24. Comment peut-on écraser la tâche (recouvrir le code) en cours sur le même processus ? a. b. c. d.
fork() execlp( ‘’ls’’, ‘’ls’’, ‘’-l’’, NULL) les processus Unix/Linux ne peuvent pas changer de tâche WinCreate(pid)
25. Laquelle de ces assertions est fausse ? a. une classe JAVA hérite d'une autre classe par le biais du mot clé " extends " b. une classe JAVA ne peut hériter que d'une seule et unique classe c. si nous ne définissons pas de constructeur dans nos classes JAVA, la JVM se charge d'en créer un à l’interprétation d. en langage JAVA, une méthode déclarée " final " est redéfinissable
26. Laquelle des assertions suivantes est vrai ? a. b. c. d.
la JFrame est un container intermédiaire le JButton est un container intermédiaire le JPanel est un container intermédiaire le JLabel est un container intermédiaire
27. Peut-on instancier une interface en JAVA ? a. b. c. d.
oui non oui, si il n’y a pas de méthodes abstraites oui, si il y a uniquement des méthodes abstraites
28. En Langage JAVA, parmi les assertions suivantes, laquelle est fausse ? a. b. c. d.
une interface sert à définir un super type et à utiliser le polymorphisme par classe, on ne peut implémenter qu’une seule interface une interface s'implémente dans une classe en utilisant le mot clé " implements " toutes les méthodes d'une interface n'ont pas de corps
29. En Langage JAVA, laquelle de ses assertions est fausse ? a. b. c. d.
lorsqu'un événement que la JVM ne sait pas gérer apparaît, une exception est levée la super classe qui gère les exceptions s'appelle : Exception on ne peut définir qu’une seule exception par méthode l'instruction qui permet de capturer des exceptions est le bloc try{ } catch{ }
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
5/15
30. En Langage JAVA, laquelle de ses assertions est fausse ? a. b. c. d.
un ArrayList n’a pas de taille limite un ArrayList a une taille limite un ArrayList peut contenir n'importe quel type de données la classe ArrayList se trouve dans le package java.util
31. En Langage JAVA, pour l’objet " Hastable ", que fait la méthode " contains(Object value) " ? a. b. c. d.
elle retourne "vrai" si l'objet est vide elle retourne "vrai" si la valeur est présente elle retourne "null" si l'objet est vide elle retourne -1 si l'objet est vide
32. En Langage JAVA, qu'est-ce que la généricité ? a. un concept permettant de ne pas spécifier de type précis pour une classe, une collection ou une méthode afin d'avoir du code réutilisable b. la possibilité d’avoir une classe, une méthode ou une collection figée pour chaque utilisation c. un concept permettant aux classes abstraites de contenir des méthodes non abstraites d. un concept permettant aux classes abstraites de contenir des méthodes abstraites
33. En Langage JAVA, que fait la méthode suivante : public static InetAddress getLocalHost() throws UnknownHostException ? a. b. c. d.
elle construit un nouvel objet " InetAddress " elle renvoie l'adresse IP du site local d'appel elle renvoie une exception connue elle renvoie une exception inconnue du site local d'appel
34. En JDBC, laquelle de ces assertions est fausse ? a. JDBC permet d'appeler une procédure stockée sur la base de données depuis une application écrite en Langage JAVA b. la première étape permettant d'appeler une procédure SQL est de créer un objet " CallableStatement " c. un objet " CallableStatement " contient l'appel d'une procédure SQL d. un objet " CallableStatement " contient la procédure SQL à appeler
35. ORACLE offre une possibilité de se connecter sans fournir explicitement le mot de passe de son compte. Parmi ces assertions, laquelle est fausse ? a. b. c. d.
il faut que l’utilisateur, soit authentifié de manière externe il faut que le nom du compte ait pour suffixe le nom du compte de l’OS il faut que le compte ne soit pas protégé il faut que le nom du compte ait pour préfixe un préfixe générique défini dans le fichier de paramétrage de la base (init.ora) par la variable "OS_AUTHENT_PREFIX "
36. Une base locale est identifiée sur un OS par une variable d’environnement généralement nommée : a. b. c. d.
ORACLE_ID ORACLE_SID ORACLE_VAR ORACLE_ENR
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
6/15
37. Pour ORACLE, laquelle de ces assertions est fausse ? a. b. c. d.
un tablespace est une partition logique contenant un ou plusieurs fichiers un tablespace peut s'étendre par ajout (on-line) d'un fichier un tablespace peut s'étendre par auto-extension un tablespace ne peut pas stocker les datas et les index en même temps
38. Pour ORACLE, laquelle de ces assertions est fausse ? a. b. c. d.
un segment est composé d'extents un extent est composé de blocs contigus un segment s’étend dynamiquement le segment s'étend dans un seul fichier
39. Une instance ORACLE, c’est : a. b. c. d.
les processus et les zones mémoires utiles au fonctionnement d’une base de données l’ensemble des fichiers utiles au fonctionnement d’une base de données Oracle la phase d'installation du logiciel Oracle une base de données sauvegardée
40. Parmi les procédures et méthodes suivantes, laquelle ne fait pas partie du paquetage DBMS_OUTPUT d’ORACLE ? a. b. c. d.
PUT GET_LINE IS_OPEN PUT_LINE
41. Parmi les procédures et méthodes suivantes, laquelle ne fait pas partie du paquetage UTL_FILE (Oracle) ? a. b. c. d.
IS_OPEN FCLOSE FOPEN ENABLE
42. Parmi les procédures et méthodes suivantes, laquelle ne fait pas partie du paquetage DBMS_LOB (Oracle)? a. b. c. d.
LOADLOBFROMFILE LOADCLOBFROMFILE LOADGLOBFROMFILE LOADBLOBFROMFILE
43. Quelle commande doit on utiliser pour démarrer l’instance ORACLE et ouvrir sa base associée ? a. b. c. d.
SQL> STARTUP XXX SQL> STARTUP PFILE initXXX.ora SQL> STARTUP initXXX.ora SQL> STARTUP PFILE = $ORACLE_HOME/dbs/initXXX.ora
44. Le processus de démarrage STARTUP d’une base ORACLE passe par : a. b. c. d.
un niveau deux niveaux trois niveaux quatre niveaux
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
7/15
45. Quel privilège système permet à un utilisateur de se connecter à une Base ORACLE en mode restreint ? a. b. c. d.
restricted restricted User restricted session restricted connect
46. Le bloc PL/SQL ORACLE associé à un trigger est exécuté pour chaque ligne affectée ? a. b. c. d.
toujours dans un trigger jamais dans un trigger en utilisant " for each row " en utilisant " for each "
47. Les fichiers Redo log d’ORACLE contiennent l'historique des données : a. b. c. d.
" commitées " "non- commitées " " commitées " et "non- commitées " supprimées
48. En UML2, pour les " paquetages " (packages) laquelle de ces assertions est vrai ? a. b. c. d.
ils ne possèdent pas d’interfaces ils regroupent des éléments de modélisation logiques et physiques ils regroupent des éléments de modélisation logiques ils regroupent des éléments de modélisation Physiques
49. Lors du passage du MCD Merise au diagramme de classes UML2, toute : a. b. c. d.
entité est transformée en classe association est transformée en classe entité est transformée en composition association est transformée en composition
50. En UML2, laquelle de ces assertions est fausse ? a. b. c. d.
les diagrammes de déploiement montrent la disposition physique des matériels les diagrammes de déploiement montrent la répartition des composants sur les matériels les diagrammes de déploiement montrent la nature des lignes de communication les diagrammes de déploiement montrent la répartition des activités dans le système
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
8/15
2/ Exercice pratique : 2 heures 15
Dossier 1 - Langages de développement
Exercice 1 - Modélisation UML2
Question En partant du diagramme de paquetage suivant, réalisez les diagrammes de cas d’utilisation du système de contrôle et du système de pilotage : 40 points
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
9/15
Exercice 2 - Java - swing
Question Donnez le code JAVA utilisant la bibliothèque graphique SWING qui affiche une fenêtre " MaFenetre " avec juste un bouton " butQuit " qui sera centré et opérationnel en utilisant l’interface " ActionListener " : Commentez votre code. 30 points import import import
javax.swing.*; java.awt.*; java.awt.event.*;
public {
class
MaFenetre
private public
extends
JButton MaFenetre
JFrame
butQuit; ()
super("examen
/**
implements //le
bouton
Constructeur
java
");//titre
JPanel
ActionListener
de
MaFenetre
de
=new
pan=new
JPanel(); BorderLayout());
JButton("quitter!");
butQuit.addActionListener(this);
//ajoute
pan.add(butQuit,BorderLayout.CENTER);
pack();
/**
{
//permet
obligatoire
de
car
mettre
MaFenetre
un
listener
//bouton :
//ajoute
ici le
*/ { fenetre
la
pan.setLayout(new butQuit
butQuit
le
listener
boutton
est
dans
butQuit cette
classe
le
panel
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setContentPane(pan); une bonne dimension a la fenetre setVisible(true); } implémente
l'interface
ActionListener
*/
public void actionPerformed(ActionEvent System.out.println("quitter !"); MaFenetre.dispose(); //quand on clique sur le bouton ici public {
static new
void MaFenetre
main(String ();
e) }
args[]) }
}
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
10/15
Exercice 3 - Les sockets - Java
Question 1 Commentez et définissez le morceau de code JAVA suivant : 40 points public class Main { public static void main(String[] args) throws Exception { exception traitée dans un catch 5 points String host = "host"; int port = 25;
// permet
de déclencher une
Socket servSocket = new Socket(host, port); // Création d’un socket machine « host » et port 5 points DataOutputStream os = new DataOutputStream(servSocket.getOutputStream());//La classe DataOutputStream permet de créer un flux permettant l'écriture de données de type primitif Java, etde chaînes de caractères. 5 points DataInputStream is = new DataInputStream(servSocket.getInputStream());//DataInputStream permet de lire des type primitifs java. Les constructeurs de ces classes prennent en paramètre un InputStream, qui est le flux sur lequel les lectures vont être faites 5 points if (servSocket != null && os != null && is != null) { os.writeBytes("BONJOUR\r\n"); } os.writeBytes("Subject:\r\n"); os.writeBytes("body\r\n");
// ecriture dans le flux DataOutputStream 5 points
String responseline; while ((responseline = is.readUTF()) != null) { if (responseline.indexOf("Ok") != -1) // attente de la réponse ok du serveur pour fermer 5 points break; } } } C’est un client SMTP utilisant les sockets 10 points
Question 2 Quelle API pourrait être utilisée pour simplifier ce code ? 10 points JavaMail, c’est une API qui fournit un ensemble de classes afin de développer des clients mails en Java.
Question 3 Quelle solution peut-on proposer ? 10 points Utiliser des « threads ». © Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
11/15
Exercice 4 - Programmation JAVA - JDBC
Question 1 Définissez ce qu’est JDBC. 20 points JDBC (Java Database connectivity ) :c'est une API (Application Programming Interface) qui permet l'accès à des données de type table de bases de données SGBD relationnelles, l'API analogue en langage C++ est ODBC.
Question 2 Réalisez un petit programme d’une classe Jconnect en incluant la gestion d’erreur lors du chargement du pilote et lors d’une erreur SQL. 30 points import java.sql.*; public class Jconnect { public Jconnect () { try { // Chargement du pilote JDBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // URL de connexion String url = "jdbc:odbc:fede"; // Connexion Connection con = DriverManager.getConnection(url); // Création d'une instruction Statement statement = con.createStatement(); // Exécution d'une requete String query = "SELECT * FROM QcmM1"; ResultSet resultset = statement.executeQuery(query); // Traitement des résultats while(resultset.next()) { System.out.println(resultset.getString(1) + " " + resultset.getString(2)); } // fermeture de la connexion con.close(); } catch( ClassNotFoundException e) {System.err.println("Erreur lors du chargement du pilote : " + e);} catch(SQLException sqle) { System.err.print("Erreur SQL : " + sqle);} } public static void main(String[] args) { Jconnect test = new Jconnect ();}
Question 3 Que signifie le GAP d’un resultset ? 10 points Lors de l’exécution de la requête, l’objet ResultSet n’est pas positionné sur le premier enregistrement mais avant, dans une zone que l’on nomme le GAP.
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
12/15
Dossier 2 - Administration bases de données
Exercice - Base de données ORACLE et PL/SQL
Question 1 Donnez le code d’un trigger PL/SQL qui s’assure que le champ " NomEtudiant " de la table Etudiant_M1 sera en majuscule dans la base. 10 points CREATE OR REPLACE TRIGGER bf_ins_upd_ Etudiant_M1 BEFORE INSERT OR UPDATE ON Etudiant_M1 FOR EACH ROW BEGIN :new.NomEtudiant:=upper(:new.NomEtudiant); END;
Question 2 Donnez le code d’une procédure PL/SQL dynamique oracle qui insère le champ " NomEtudiant " dans la table Etudiant_M1. 10 points CREATE PROCEDURE insert_into_table ( nom_table VARCHAR2, nom_champs VARCHAR2, valeur_champs VARCHAR2) IS sql_str VARCHAR2(200); BEGIN sql_str := 'INSERT INTO ' || nom_table || ' ( '|| nom_champs || ' ) '|| ' values ('|| valeur_champs || ')'; EXECUTE IMMEDIATE sql_str; END;)
Question 3 Expliquez ce qu’est la pseudo-colonne Level en PL/SQL. 10 points Dans une hiérarchie, on peut avoir un élément A qui a pour enfant un élément B, qui lui-même a pour enfant un élément C, etc... On peut alors dire que l'élément. C’est au niveau n+2 par rapport au niveau n de l'élément A. Afin de mieux voir la profondeur de hiérarchie, nous pouvons utiliser la pseudo-colonne LEVEL, qui permet de savoir à quel niveau hiérarchique on se trouve.
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
13/15
Question 4 Que peut faire un autre utilisateur pendant cette transaction? 15 points Il peut lire toute la table sans problème mais ne voit ni les modifications ni les nouvelles informations.
Question 5 Décrivez ces fichiers cités… 50 points Les fichiers de données (dont l'extension est .dbf). Ces fichiers contiennent l'ensemble des données de la base (les tables, les vues, les procédures stockées, ...). Les fichiers de données contiennent des informations de deux types : - le dictionnaire de données et de travail, - les données des utilisateurs. La lecture de ces fichiers de données est faite à l'aide des processus utilisateurs tandis que l'écriture est assuré par le processus DBWR (Database Writer) Les fichiers Redo Log (dont l'extension est .rdo ou .log). Les fichiers Redo-log contiennent l'historique des modifications apportées à la base de données Oracle. Ces fichiers de journalisation enregistrent les modifications successives de la base de données afin de pouvoir restaurer la base de données en cas de défaillance d'un disque dur. Au même titre que les fichiers de données, les fichiers Redo-log sont dans un format propriétaire Oracle et l'écriture dans ces fichiers est assurée par le processus LGWR (Log Writer). Les fichiers de contrôle (dont l'extension est .ctl). Ils sont créés lors de la création de la base. Ces fichiers permettent, lors de l'initialisation de la base, de savoir si la base de données a été arrêtée correctement, ainsi que de connaître l'emplacement des fichiers de données et des fichiers Redo Log. Les fichiers de contrôle sont eux-même repérés par le fichier d'initialisation. Les informations contenues sont : - nom de la base de données, - date et heure de création de la base, - l'emplacement des fichiers journaux (Redo-Log), - des informations de synchronisation.
Question 6 Expliquez ce qu’est le dictionnaire de données ORACLE. 15 points Le dictionnaire de données Oracle représente le coeur de la base de données. Il s'agit d'un ensemble de tables systèmes contenant les informations relatives à la structure de la base de données : - utilisateurs de la base (ainsi que leurs privilèges et leur rôle), - noms et caractéristiques des objets contenus dans la base (tables, vues, index, clusters, triggers, packages...), - contraintes d'intégrité, - ressources physiques allouées à la base… Le dictionnaire est créé au moment de la création de la base et est mis à jour. Il appartient à l'utilisateur SYS, mais l'utilisateur SYSTEM, c'est-à-dire l'administrateur de la base, possède des droits de lecture sur des vues du dictionnaire. Enfin le dictionnaire de données est conservé dans le tablespace SYSTEM. Le dictionnaire de données sert principalement dans deux situations : - afin de vérifier la syntaxe et les privilèges sur une requête SQL (pour le DDL, Data Definition Language), - afin d'obtenir des informations sur la structure de la base de données. © Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
14/15
GRILLE DE NOTATION EXERCICES NOM DU CORRECTEUR__________________________________ Prénom du correcteur___________________________________ N° de candidat____________ Question
Note attribuée
Dossier 1 - Langages de développement
/190
Dossier 2 - Administration base de données
/110
TOTAL
/300
Observations obligatoires
Appréciation générale :
Je soussigné,____________________, certifie avoir corrigé la copie d’examens en suivant le corrigé d’examens en ma possession et en respectant la procédure de correction des examens.
Fait à _______________________________________ le ____________
Signature :
© Fédération Européenne Des Ecoles - European Federation of Schools - Juin 2011 UC D41.2 Développement - Corrigé
15/15