Cours Informatique
Cours Informatique
Cours Informatique
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Notions abordées :
- le vocabulaire des bases de données et vocabulaire : SGBD, base de données, table, champ,
dépendance fonctionnelle, clef primaire, clef étrangères, contrainte d’intégrité ;
- modélisation de base de données et dictionnaire des données ;
- modélisation de base de données et schéma relationnel : relation, attribut, relation un à plusieurs et
relation plusieurs à plusieurs ;
- manipulation de base de données en SQL et gestion des droits d’accès en SQL.
1.1. Le vocabulaire
J. Paquereau 1/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Toutes les contraintes que doivent respecter les données sont appelées
Contrainte d’intégrité contraintes d’intégrité référentiel, ou plus simplement contraintes d’intégri-
té. Le respect du type de donnée est un exemple de contrainte d’intégrité.
Toute table ou relation doit avoir une clef primaire. La clef primaire est
constituée d’un ou plusieurs champs. C’est ce champ ou ce sont ces champs
Clef primaire
qui sont qualifié de clef primaire. La clef primaire permet et doit permettre
d’identifier de manière unique chaque ligne d’une table.
Une table ou relation peut avoir un champ qui fait office de lien vers une
autre table, à savoir un champ faisant référence à la clef primaire d’une autre
Clef étrangère
table. Un tel champ est appelé clef étrangère. De même qu’une clef primaire,
une clef étrangère peut être constituée d’un ou plusieurs champs.
Toute ligne d’une table est identifiable à la valeur de sa clef primaire. La
Dépendance valeur des autres champs de la ligne est en quelque sorte rattachée à la
fonctionnelle valeur de la clef primaire. On dit que ces autres champs sont en dépendance
fonctionnelle avec la clef primaire, c’est-à-dire qu’ils lui sont rattaché.
L’on notera que ces concepts sont réinvestis et illustrés plus loin.
1.2. La conception
La conception d’une base de données passe typiquement par les étapes suivantes :
J. Paquereau 2/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
De quoi s’agit-il ?
Nous citions un peu plus haut MySQL. MySQL est un SGBD, c’est-
à-dire un logiciel qui permet de gérer et de manipuler des bases
de données. Cependant, en soi, l’utilisation directe de MySQL
n’est pas très conviviale…
Cliquer ici pour créer une Cliquer sur l’onglet « SQL » pour accéder à
nouvelle base de données. l’éditeur de requêtes. Cette interface est sans
conteste la plus importante. En effet, vous
pouvez tout y faire… pourvu que vous sachiez
Cliquer sur la table pour
comment…
en voir la structure ou
encore le contenu.
Le volet de gauche vous permet de visualiser et sélection-
ner les bases de données disponibles. Il vous permet
également de voir les tables constituant chacune des
bases de données. En l’occurrence, on voit 1 seule base de
données (db_gest_commandes) et ses 4 tables.
J. Paquereau 3/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
J. Paquereau 4/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Le dictionnaire des données est une représentation tabulaire de la structure d’une base de données. Il
consiste à énumérer tous les champs de toutes les tables d’une base de données. Il prend par exemple la
forme suivante :
Le schéma relationnel est une représentation qui permet de mettre en évidence les relations entre les
données. Ce schéma a une syntaxe, un formalisme, qui lui est propre. Et vous devez le connaître. Dans
un schéma relationnel, les tables sont appelées « relations » et les champs appelés« attributs ».
Les relations entre tables sont dictées par les clefs primaires et clefs étrangères.
J. Paquereau 5/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
J. Paquereau 6/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Table « Salarié »
Explication : on comprend bien que le salarié « 2 », soit
numSalarie prenomSalarie …
« Lucette », participe au projet « 1 ». On voit d’ailleurs qu’il y
a 3 salariés à participer au projet « 1 ». On constate
1 Jean-Claude
également que le salarié « 1 » participe aux projets « 1 » et 2 Lucette
« 2 ». … … …
Nous l’avons déjà vu, chaque champ d’une table a un type. Voici quelques-uns des types disponibles sur
les SGBDR, dont MySQL :
J. Paquereau 7/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Créer une table consiste à préciser le nom de la table, à lister les champs de la table avec leur type, puis à
préciser la clef primaire et les éventuelles clefs étrangères.
Par exemple, pour créer deux tables, Client et Commande, on pourra utiliser les
requêtes SQL suivantes :
CREATE TABLE Client( CREATE TABLE Commande(
Num INTEGER auto_increment, Num INTEGER auto_increment,
Civilite VARCHAR(3) NOT NULL, NumClient INTEGER NOT NULL,
Prenom VARCHAR(30) NOT NULL, Emission DATE NOT NULL,
Nom VARCHAR(30) NOT NULL, PRIMARY KEY (Num),
Adresse VARCHAR(80) NOT NULL, FOREIGN KEY (NumClient)
CodePostal VARCHAR(5) NOT NULL, REFERENCES Client(Num)
Exemple Ville VARCHAR(30) NOT NULL, );
PRIMARY KEY (Num)
);
Commentaire :
o Les champs « Num » étant ici les clefs primaires de chacune des deux tables, ils sont
NOT NULL par convention et il n’est pas utile de le préciser ;
o « auto_increment » permet de préciser que l’entier est un compteur qui augmentera
tout seul à chaque insertion de ligne (=enregistrement) dans la table ;
o Le champ « NumClient » est et doit être du même type que la clef primaire à laquelle
il fait référence.
On rappelle qu’on appelle « enregistrement » les lignes d’une table. A cet égard, le langage SQL permet
d’insérer de nouveaux enregistrements, de modifier des enregistrements existant mais encore de
supprimer des enregistrements. Le format des requêtes SQL est le suivant :
J. Paquereau 8/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Le cœur du SQL, pourrait-on dire, réside dans les requêtes que nous allons présentement étudier : les
requêtes SELECT. On parle de requêtes de projection, et souvent, à tort, de sélections.
Ces requête SQL permettent en quelque sorte d’afficher/retourner des données. Elles ont la syntaxe
suivante :
J. Paquereau 9/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
J. Paquereau 10/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Les jointures interviennent lorsque l’on souhaite récupérer des données en provenance de plusieurs
tables. La jointure permet en quelque sorte de préciser au SGBD comment mettre en relation les
données. S’agissant de « mettre en relation » les données, on comprendra qu’il s’agit de mettre en
relation la clef étrangère d’une table avec la clef primaire d’une autre.
Exemple de jointure :
Table « Client »
Jointure
J. Paquereau 11/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Les agrégats permettent de projeter des données calculées et ainsi de de répondre à des questions
comme : quel est le nombre de … ? Quelle est la moyenne de … ? Etc. Les agrégats figurent dans la
clauses SELECT :
Exemples :
Les deux exemples précédents ne retournent qu’une ligne. La clause GROUP BY permet de répondre à
des questions plus complexes en regroupant des enregistrements ensemble. Les agrégats sont alors
calculés par groupes d’enregistrements. La clause HAVING se comporte comme la clause WHERE à ceci
près qu’elle permet d’effectuer une restriction en fonction des agrégats, à savoir une fois que ces
derniers ont été calculés.
Exemples :
Remarque ! Il est absolument interdit d’utiliser des agrégats dans la clause WHERE.
Les requêtes peuvent elles-mêmes utiliser des requêtes, imbriquées dans la requête principale. Les
requêtes imbriquées sont qualifiées de sous-requêtes. En particulier, les sous-requêtes sont particu-
lièrement utilisées pour effectuer des restrictions avancées.
J. Paquereau 12/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Exemples :
Remarque : il faut bien souvent essayer de décomposer un problème en sous-problèmes plus simples.
En ce sens, une sous-requête répond à un sous-problème plus simple.
Très souvent, les bases de données sont partagées entre plusieurs utilisateurs. Pour des raisons de
sécurité, il convient de restreindre les droits des utilisateurs de sorte qu’ils ne puissent effectuer que les
manipulations dont ils ont besoin.
Dans le cadre de la conception d’un logiciel, l’on tâchera ainsi d’identifier les profils d’utilisateurs, c’est-
à-dire de déterminer les groupes d’utilisateurs ayant les même besoins (exemple : développeur,
administrateur et utilisateur final). Ceci fait, l’on déterminera les droits d’accès de chacun des groupes.
A cet égard, le SQL permet de configurer les droits d’accès des utilisateurs d’une base de données de
sorte qu’un utilisateur puisse seulement :
o Consulter des enregistrements (SELECT) ;
o Et/ou ajouter des enregistrements (INSERT) ;
o Et/ou mettre à jour des enregistrement (UPDATE) ;
o Et/ou supprimer des enregistrement (DELETE) ;
o Et/ou créer des tables/vues (CREATE) ;
J. Paquereau 13/14
Terminale STMG (SIG) Thème 2 - Question 4
Systèmes d’information de Gestion Comment peut-on produire de l’information à partir de données contenues dans une base ?
Exemples :
Autorise le profil « CLIENT » à consulter et à ajouter des commandes
GRANT SELECT, INSERT ON Commande TO CLIENT ;
Révoque l’autorisation accordée au profil « CLIENT » d’ajouter des commandes
REVOKE INSERT ON Commande TO CLIENT ;
J. Paquereau 14/14