Académique Documents
Professionnel Documents
Culture Documents
Introduction
La clause GROUP BY permet de partitionner la relation résultat selon les valeurs d'un ou de
plusieurs attributs. Les seuls noms de colonnes (en dehors des fonctions statistiques) qui peuvent
apparaître dans le SELECT sont celles qui figurent dans le GROUP BY.
Exemple
Cette commande permet de créer des partitions selon la Puissance dans la table VOITURE. On aura
donc, pour notre exemple, 3 partitions correspondant aux puissances 5, 6 et 7 chevaux. La somme
Certaines requêtes ont besoin de rechercher des données de la base et d’avoir un résultat
qui soit trié selon un ordre croissant ou décroissant des valeurs d’une ou de plusieurs colonnes.
WHERE <condition>
d’une ou plusieurs colonnes. Ces dernières sont données par le paramètre Nom_colonne, et elles
Les éléments dont les valeurs des colonnes concernées par le tri sont indéterminées(NULL) sont
Le tri peut être associé à n’importe quelle opération de recherche (projection, Sélection et
Jointure)
Remarque : Dans une requête SQL, la clause ORDER BY se situe juste après une clause
Exemple
SELECT *
FROM VOITURE
ORDER BY Puissance [ASC];
Ces 2 requêtes (avec ASC ou sans ASC) sont identiques et permettent d'afficher l'ensemble des
tuples de la table VOITURE triés sur l'attribut Puissance selon un ordre croissant.
Exemple
La clause ORDER BY permet également un tri sur plusieurs attributs : le tri sera effectué
SELECT *
FROM VOITURE
ORDER BY Puissance DESC, Couleur;
Cette requête permet d'afficher l'ensemble des tuples de la table VOITURE triés sur l'attribut
Puissance selon un ordre décroissant puis sur l'attribut Couleur (ordre alphabétique) selon un
ordre croissant.
WHERE <condition> ;
L’opération relationnel de jointure réalise une liaison entre deux tables en se basant sur l’égalité
des valeurs entre l’une des colonnes de chaque table.
Un alias permet de donner un nom synonyme, abrégé, à une table. Il permet d’alléger l’écriture
de la commande SELECT en cas d’ambiguïté.
Le paramètre <condition> sert, particulièrement, à préciser la condition de jointure. Cette
condition ne doit pas être confondue avec celle indiquée pour l’opération relationnelle de
sélection.
La condition de jointure doit porter sur les colonnes en commun aux tables utilisées pour
l’opération de jointure.
Exemple
Cette requête permet de faire la jointure entre la table VOITURE et la table ACHAT ; cette jointure
porte sur le numéro d'immatriculation. Cette requête renverra donc tous les tuples de la table
VOITURE et de la table ACHAT qui ont même numéro d'immatriculation (on n’a pas affiché
numImmatriculation).
Pour les autres types de jointure (non équijointure, autojointure, jointure externe), le principe
SELECT <attributs>
FROM <relation1> NATURAL JOIN <relation2> ;
SELECT <attributs>
attribut)
SELECT <attributs>
Les opérateurs relationnels en SQL sont basés sur les opérateurs relationnels vus dans le
chapitre Modèle Relationnel. En SQL, les principaux opérateurs sont UNION, INTERSECTION,
MINUS (différence). Les deux relations R1 et R2 sur lesquelles sont appliqués les opérateurs
UNION, INTERSECTION et MINUS doivent absolument avoir le même schéma de table (nombre
SELECT *
FROM VOITURE
WHERE Puissance = 5
UNION
SELECT * FROM VOITURE WHERE Puissance = 7;
Cette requête permet d'afficher l'ensemble des tuples de la table VOITURE dont la Puissance est
égale à 5 ou à 7 chevaux.
5. La clause « HAVING »
ENSEIGNANT : M. ESSAM BENJAMIN P a g e 40 | 95
La clause HAVING définit les conditions que les groupes doivent respecter pour être
retenus, elle sélectionne les partitions désirées. Elle ne peut comprendre que des conditions dont
le premier terme est une fonction statistique. La clause HAVING est aux groupes (GROUP BY) ce
que la clause WHERE est aux lignes (SELECT).
Exemple
Cette commande permet de créer des partitions selon la Puissance dans la table VOITURE. Elle
calculera le prix maximum sur ces partitions. La clause HAVING limite l'affichage aux partitions
contenant au moins 2 éléments (tuples) : COUNT (*)>1. On aura donc, pour notre exemple, 2
partitions correspondant aux puissances 6 et 7 chevaux (la partition relative à la Puissance de 5
chevaux n'a pas été retenue car elle ne contient pas assez d'éléments pour satisfaire la condition
énoncée dans la clause HAVING).
Leçon 11
EXPORT ET SAUVEGARDE DES DONNEES
Objectif
Au terme de cette leçon, l’élève doit être capable d’exporter/importer et sauvegarder une base de
données.
MODELISATION DES
SYSTEMES
D’INFORMATION
Leçon 12
LE SI DANS UNE ORGANISATION
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
Identifier les différentes ressources d’un SI ;
Situer le SI dans une organisation (son rôle, son importance, ses fonctions) ;
Permet de rendre un meilleur service (de qualité, rapide, etc.) aux partenaires de
l'organisation
rapidement à son destinataire soit sous forme orale, support papier ou support
numérique
Leçon 13
LANGAGE DE MODELISATION ET LIMITES DE MERISE
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
Citer quelques méthodes de développement (MERISE, UP, XP, SCRUM) ;
Enoncer les limites de MERISE ;
Citer un langage de modélisation ;
du développement d'un système afin de rendre ce développement plus fidèle aux besoins du client.
Ainsi, elle décrit une démarche, c’est-à-dire un ensemble de travaux tout en les ordonnant afin
Démarche
De capitaliser les expériences (ex. : réutilisation des solutions ayant résolu les mêmes
C’est une démarche dite analytique qui fixe les étapes à respecter, leur enchaînement,
Exemple :
- CORIG…
Le système d’information
Le système opérant
par les ouvriers de l’entreprise consiste en une transformation de ressources (Matière, finance,
ENTREPRISE / ORGANISATION
SYSTEME DE PILOTAGE
Commnication Génération
SYSTEME DINFORMATION
Traitement Mémorisation
Commnication
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
Donner la différence entre une donnée et une information ;
Décrire les méthodes de collecte de données ;
SITUATION PROBLEME
EBENDE est un jeune informaticien (analyste et programmeur) qui a été sélectionné pour
SOLUTION
1.
2.
3.
RESUME
La collecte de données est une approche systématique qui consiste à réunir et à mesurer
des informations en provenance de sources variées, afin d'obtenir une vue complète et précise d'un
domaine d'intérêt. Elle est très utile pour la réalisation d’un projet d’informatisation, car celle-ci
permet de connaitre de façon précise ce que l’utilisateur attend de son futur système d’information.
Plusieurs moyens peuvent être utilisés pour collecter les données nécessaires à la réalisation
De l’interview : c’est un entretien avec les différents acteurs de l’organisation. Cet entretien
L’étude des documents internes : Les documents internes (factures, bons de livraison, ordres
de fabrication) recèlent des informations qui sont souvent omises lors des entretiens.
L’étude des documents externes : les documents externes (factures des fournisseurs, bons de
livraison fournisseurs...) tout comme l’étude des documents internes permet de découvrir des
Questionnaires : ce sont des formulaires qui sont remplis par les déclarants (acteur de
l’organisation) seuls.
Suite à la collecte des données, il est nécessaire de centraliser toutes les informations et règles de
EXERCICE 1
1. Décrire les rôles des composantes d’un système d’organisation
2. Quels sont les acteurs de chacune de ces composantes ?
EXERCICE 2
1. Enumérez et expliquez les fonctions d’un SI
2. Dessinez et expliquez brièvement le schéma montrant l’interaction entre les différentes
composantes d’une entreprise.
Leçon 15
INTRODUCTION AU LANGAGE UML
Objectifs
Au terme de cette leçon, l’élève doit être capable de donner le rôle de quelques diagrammes
structurels/statiques du langage UML (diagramme de classes et diagramme d’objets).
Introduction
La réalisation d'un site web ou d’une application doit être impérativement précédée
plus fidèle aux besoins du client. La phase d'analyse permet de lister les résultats attendus,
du système, afin d'en faciliter la réalisation. Dans ce chapitre nous présentons une brève
1. Définition d’UML
Ce n'est pas une méthode, il ne donne pas de solution pour la mise en œuvre d'un projet.
C'est avant tout un formalisme graphique issu de notations employées dans différentes
méthodes objets. UML unifie (Rend homogène) également les natations et les concepts
orientés objet. Il ne s’agit pas d’une simple notation graphique, car les concepts transmis
par un diagramme ont une sémantique précise et sont porteurs de sens au même titre que
Elles décrivent le système d'un point de vue donné, qui peut être organisationnel,
Une façon de mettre en œuvre UML est de considérer différentes vues qui peuvent
Vue des cas d'utilisation : c'est la description du modèle vu par les acteurs du système.
Elle correspond aux besoins attendus par chaque acteur (c'est le QUOI et le QUI).
Vue d'implémentation : cette vue définit les dépendances entre les modules.
Vue des processus : c'est la vue temporelle et technique, qui met en œuvre les notions
Chaque type de diagramme UML possède une structure et véhicule une sémantique
précise. Combinés, les différents types de diagrammes UML offrent une vue complète des
perspectives et guident l'utilisation des éléments de modélisation (les concepts objet), car
façon à permettre la modélisation d'un projet tout au long de son cycle de vie.
dans le système.
point de vue physique, tels qu'ils sont mis en œuvre (fichiers, bibliothèques, bases de
données…
composants du système sont répartis sur ces éléments matériels et interagissent entre
eux.
Introduction
de relations entre ces classes. L’intérêt du diagramme de classe est de modéliser les entités du
informations finalisées qui sont gérées par le domaine. Ces informations sont structurées,
c’est-à-dire qu’elles ont regroupées dans des classes. Le diagramme met en évidence
Une classe est une représentation abstraite d’un d’ensemble d’objets, elle contient les
informations nécessaires à la construction de l’objet (c'est-à-dire la définition des attributs
et des méthodes).
La classe peut donc être considérée comme le modèle, le moule ou la notice qui va
permette la construction d’un objet. Nous pouvons encore parler de type (comme pour une
donnée). On dit également qu’un objet est l’instance d’une classe (la concrétisation d’une
classe).
du système (et pas au contenu des classes), nous pouvons ne pas représenter les attributs
et les méthodes de chaque classe (nous ne mettons rien dans le deuxième et troisième
compartiment).
Exemples :
- La classe Horloge
Horloge
- heures : int
Horloge
- minutes : int Ou
+ régler() : void
+ afficher() : void
- La classe LecteurMp3
LecteurMP3
- volume : int
- sélection : int
LecteurMP3
+ metreEnMarche() : void ou
+ arrêter() : void
+ lireSélection() : void
+ avanceRapide() : void
+ changerVolume() : void
Exemple :
Considérons la méthode régler (heures : int, minutes : int) : void de la classe Horloge de
l’exemple précédent. L’appelant de la méthode veut affecter les attributs heures et minutes avec
La direction des paramètres sera alors in : régler(in heures : int, in minutes : int) : void
Considérons maintenant la méthode getTime (heures : int, minutes : int) : void de la classe
Horloge. L’appelant de la méthode veut récupérer les valeurs des attributs heures et minutes.
En fonction des objectifs de modélisation, la représentation d’une classe peut être plus ou
moins exhaustive.
Remarque
Comme une méthode ne peut retourner qu’une seule valeur, et que dans notre cas nous avons
besoin de connaître deux valeurs (les heures et les minutes), le retour se fera par les arguments
(en utilisant les références ou les pointeurs en C++).
2.3. Valeurs par défauts des attributs et des paramètres des méthodes
Nous indiquons les valeurs par défauts des attributs lors de leur construction et les valeurs
par défauts des paramètres des méthodes s’ils ne sont pas clairement spécifiés lors de
l’appel.
Horloge
- heures : int = 0
- minutes : int = 0
+ régler(in heures : int =0, in minutes : int =0) : void
+ afficher() : void
+ getTime(out heures :int, out minutes : int ) : void
Une classe peut contenir des attributs et des méthodes qui lui sont propres et
auxquels nous pouvons accéder sans nécessairement instancier des objets.
Un attribut de classe n’appartient pas à un objet en particulier mais à toute la classe
(il n’est pas instancié avec l’objet).
Un attribut ou une méthode de classe est représenté par un nom souligné. Cela
permet également d’avoir une information commune à tous les objets instanciés.
Exemple Soit la classe Gasoil qui représente le gas-oil fourni par une pompe de station-service.
Remarques : OCL (Object Contraint Language) est un langage spécialement conçu pour
exprimer des contraintes. En voici quelques-unes qui peuvent être bien utiles :
{ readOnly } : si une telle contrainte est appliquée à un attribut, alors la valeur de celui-
ci ne peut plus être modifiée une fois la valeur initiale fixée (équivalent à un attribut
constant).
{ query } : une méthode peut être déclarée comme étant de type requête (query) si le
code implémentant celle-ci ne modifie nullement l’état de l’objet, donc aucun de ses
attributs .
{ordered} {list} : lorsqu’une multiplicité supérieure à 1 est précisée, il est possible
d’ajouter une contrainte pour préciser si les valeurs sont ordonnées {ordered} ou pas
{list}. Très souvent, dans ce dernier cas, nous ne précisons même pas cette deuxième
contrainte, c’est le mode par défaut.
{ unique } : on demande cette fois-ci qu’il n’y ait aucun doublon dans les valeurs de la
collection.
{ not null } : L’attribut doit à tout prix être initialisé (utile dans le cas des pointeurs).
Exemple ci-dessus
2.6. La multiplicité
La multiplicité indique le nombre de valeur que l’attribut peut contenir (l’attribut
est souvent un tableau de valeurs, statique ou dynamique).
La multiplicité se note entre crochets après le type de valeur que contient l’attribut.
Cardinalités Significations
0..1 Zéro ou une fois
1..1 ( ou 1) Une et une seule fois
0..* (ou *) De zéro à plusieurs fois
1..* De une à plusieurs fois
m..n Entre m et n fois
n..n (ou n) n fois
Exemple : Une station météo doit relever la température à intervalles de temps réguliers.
Elle doit pouvoir stocker 100 relevés.