0% ont trouvé ce document utile (0 vote)
189 vues54 pages

Cours de Base de Données pour Bac 2 Info

Le cours de base de données dispensé à l'Institut Supérieur Pédagogique de Kalemie vise à former les étudiants en informatique de gestion sur la conception, l'implémentation et l'utilisation de bases de données relationnelles. Les étudiants apprendront à exprimer les besoins d'information, à concevoir des bases de données en fonction des besoins métiers, et à utiliser des systèmes de gestion de bases de données. Le cours couvre également les concepts fondamentaux des données, des fichiers et des SGBD, ainsi que les défis contemporains liés à la gestion des bases de données.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
189 vues54 pages

Cours de Base de Données pour Bac 2 Info

Le cours de base de données dispensé à l'Institut Supérieur Pédagogique de Kalemie vise à former les étudiants en informatique de gestion sur la conception, l'implémentation et l'utilisation de bases de données relationnelles. Les étudiants apprendront à exprimer les besoins d'information, à concevoir des bases de données en fonction des besoins métiers, et à utiliser des systèmes de gestion de bases de données. Le cours couvre également les concepts fondamentaux des données, des fichiers et des SGBD, ainsi que les défis contemporains liés à la gestion des bases de données.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE

INSTITUT SUPERIEUR PEDAGOGIQUE DE KALEMIE


« ISP-KALEMIE/MOBA »

Département d’Informatique de gestion

COURS DE BASE DE
DONNEES
Destiné aux étudiants de BAC 2 Conception des systèmes d’information

Dispensé par Ir. Théophile KITAMBALA


Assistant

Volume horaire : 45 H
Crédits : 3

Année académique
2024-2025
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

OBJECTIFS
Les bases de données relationnelles permettent de faire fonctionner des applications
essentielles pour les entreprises et des applications Web. La conception réussie d'une base de
données repose sur la précision et l'exhaustivité avec lesquelles les besoins utilisateurs ont été
exprimés.
Ce cours s'adresse aux étudiants du cycle de Licence en informatique de gestion impliqués
dans la conception, la réalisation et l'utilisation de bases relationnelles, dans la mise en œuvre
d'applications de bases de données, mais également dans la gestion de projets de
développement de ces bases.
Il apprend notamment à :
• exprimer les besoins en information des applications de manière simple et rigoureuse,
• concevoir une base de données avec une démarche de gestionnaire d'entreprise,
• implémenter une base de données sur un système de gestion de bases de données
(SGBD) relationnel.
Objectivement, il sera question de:
• Concevoir, créer et utiliser une base de données relationnelle à l'aide de méthodes
éprouvées
• S'assurer que la conception de la base de données reflète bien les besoins métier
• Gérer les contraintes d'intégrité
• Simplifier le code et améliorer les performances en évitant les erreurs communes
Prérequis
• Bonne maitrise de l'environnement Windows (clavier, souris, …)
• Connaissance des terminologies informatiques de base (fichier, dossier, icones, clic,
double-clic, …)
• Bonne connaissance des notions de Modélisation informatique avec la Méthode
MERISE.
Plan
o Introduction
o Chapitre premier : Concepts de base
o Chapitre deuxième : Base de données Access
o Chapitre troisième : Base de données MySQL

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 1
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

INTRODUCTION

Depuis l’orée des temps, l’homme a toujours eu besoin de compter. Dans la préhistoire, il ne
savait calculer qu’à l’aide des cailloux ou de ses mains qui furent sans doute les premières
calculatrices de poche.
Les objets ont servi à nos ancêtres de compter et pour effectuer toutes sortes d’opérations
arithmétiques.
Curieusement, on parle de calcul digital dans la nouvelle science informatique. Notre système
décimal actuel est le résultat de cette évolution et des moyens mis en œuvre pour lui donner
des formes adaptées à l’expression écrite et orale et aux diverses méthodes de calcul.
Parallèlement à cette évolution de signes, calculs mentaux et manuels, on assistait au
développement d’outils, de systèmes, de machines pour simplifier et accélérer les bases de
différentes opérations et recherches que l’homme ne cesse d’effectuer du jour au lendemain.
Ainsi, ce n’est qu’au XVIIème siècle qu’on a conceptualisé les bases de la science moderne et
c’est là qu’on trouve les racines mêmes de ce grand développement d’idées qui conduira à
l’ordinateur.
De nos jours, l’ordinateur a franchi beaucoup d’obstacles et a dépassé le simple stade de
comptage dans le domaine d’arithmétique longtemps considéré comme domaine d’application
de celui-ci.
Les bases de données sont de nos jours une part importante des systèmes informatiques. Leur
gestion s’appuie sur une théorie solide, nécessite la mise en œuvre d’un ensemble
d’algorithmes sophistiqués et optimisés et demande le développement d’architectures
spécialisées.
Les systèmes de gestion des bases de données sont souvent considérés comme un premier
niveau de programmes d’application utilisant un système d’exploitation dont une des
fonctions essentielles est notamment la gestion des fichiers permettant le stockage des
données sur les mémoires secondaires.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 2
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

CHAPITRE PREMIER.

CONCEPTS DE BASE

Les activités humaines génèrent des données, lesquelles données, aujourd'hui, sont de plus en
plus souvent gérées par des moyens informatiques.
ü Donnée ou information ?
La codification des signes permet de représenter des données. Une série de signes comme le
« 1 » ou le « T » deviennent une donnée lorsqu’on connaît la codification correspondante,
comme le code ASCII par exemple.
Une information est quelque chose de beaucoup plus qu’une donnée brute. C’est une donnée
qui a un sens, et ce sens provient d’un certain modèle d’interprétation.
Ainsi une donnée peut revêtir plusieurs sens selon le modèle d’interprétation qui lui est
associé.
Par exemple, la donnée « 12101987 » peut être interprétée par un francophone comme le 12
octobre 1987 alors qu’un anglo-saxon y verrait le 10 décembre 1987.
Tout dépend donc du modèle d’interprétation.
Ceci est un exemple typique simple d’une donnée dont l’interprétation fournit une
information essentielle à notre vie quotidienne.
Le modèle d’interprétation fait partie de notre culture générale et se réfère à un contexte
sémantique précis. Ainsi tout le monde sait par exemple que lorsqu’une voiture est
immatriculée au Katanga, son numéro commence par KT…
En résumé :
Donnée = Signe + Code
Information = Donnée + Modèle d’interprétation
L’information est en définitive un élément de connaissance caractérisant un fait ou un
événement et pouvant être transmis par un signal ou une combinaison de signaux.
Il s’agit donc d’un renseignement sur quelqu’un ou quelque chose qui a un sens pour celui qui
veut l’utiliser dans un contexte sémantique précis.
C’est finalement une donnée qui a un sens et un impact sur le récepteur. Sa valeur est
proportionnelle à son impact et à son potentiel de surprise.
La valeur d’une information est quelque chose de très difficile à quantifier. Elle dépend de
plusieurs facteurs : de l’écoulement du temps (une information fraîche vaut beaucoup plus

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 3
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

qu’une information périmée !), du récepteur de l’information (une information boursière ou


un résultat sportif ont une valeur différente selon l’intérêt du récepteur), …
La récolte, le stockage et la diffusion de l’information est devenue une industrie à part entière.
Et toute organisation, quelle qu’elle soit, doit consacrer une partie de son effort à récolter, à
traiter, à stocker et à diffuser l’information issue de son propre fonctionnement.
Notion de Fichier
1. Définition
Un fichier ou lot logique de données est un récipient de données identifié par un nom et
contenant des données se rapportant à un même sujet. C’est encore un récipient
d’informations constituant une mémoire secondaire idéale permettant d’écrire des
programmes d’application indépendants des mémoires secondaires (organes de stockage des
données).
Plus simplement, un fichier est ensemble organisé d’articles de même nature.
2. Support du fichier
Un fichier est stocké dans un organe de stockage d’un ordinateur. Il s’agit de :
- disque
- cassette
- disquette
- bande magnétique
- mémoires secondaires
- CD
- flash disk, etc.
3. Opérations sur les fichiers
Toutes les opérations sur les fichiers sont gérées par le Système de Gestion des Fichiers
(SGF).
1. Création d’un fichier
- définir le nom du fichier et les rubriques (les encoder)
- déterminer le support
- organiser le fichier : comment les articles sont-ils reliés entre eux ?
2. Création ou ajout d’articles
On donne des valeurs aux rubriques de l’entité.
3. Consultation du fichier
C’est la lecture des articles du fichier.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 4
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

4. Mise à jour ou modification d’articles


C’est l’exploitation des articles du fichier, c’est-à-dire l’insertion, la modification ou la
suppression d’articles.
5. Tri du fichier
Classer les articles dans un certain ordre : croissant ou décroissant sur une ou plusieurs
valeurs d’une ou de plusieurs rubriques.
6. Suppression du fichier :
C’est la destruction physique du fichier.
Les articles sont reliés entre eux pour composer un fichier. Les structures des liaisons
constituent l’organisation du fichier.
1.2 Bases des données
Une base de données est une collection d’informations modélisant une entreprise du monde
réel et dans laquelle il est possible de stocker des données de façon structurée et avec le moins
de redondance possible.
C’est donc un ensemble de données structurées modélisant les objets d’une partie du monde
réel, servant de support à une application informatique et stockées sur des supports
accessibles par l’ordinateur pour satisfaire simultanément plusieurs utilisateurs de façon
sélective et en un temps opportun (raisonnable).
Ces données doivent pouvoir être utilisées par des programmes et des utilisateurs différents.
Pour mériter le terme de bases de données, un ensemble de données non indépendantes doit
être interrogeable par le contenu, c’est-à-dire que l’on doit pouvoir retrouver tous les objets
qui satisfont à un certain critère.
Une base de données permet de mettre des données à la disposition d'utilisateurs pour une
consultation, une saisie ou bien une mise à jour, tout en s'assurant des droits accordés à ces
derniers. Cela est d'autant plus utile que les données informatiques sont de plus en plus
nombreuses.
Une base de données (BDD) est un ensemble structuré de données ou d'informations
organisées en vue de faciliter la recherche, la modification et l'extraction de données
spécifiques ».
Théoriquement, une base de données est un ensemble structuré logiquement d'informations
sur un support informatique, normalement motorisé par un SGBD (système de gestion de
BASE de données). ...
Une BDD requiert les deux conditions suivantes :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 5
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

o exhaustivité : la base contient toutes les informations requises pour le service


que l'on en attend ;
o unicité : la même information n'est présente qu'une seule fois (pas de
doublons).
Les bases de données sont très utilisées dans les entreprises pour gérer :
- les fournisseurs
- les clients
- les contacts
- les commandes
- les factures
- les produits et services
- le stock
- le personnel
- les salaires et les charges correspondantes
- les assurances
- des écoles
- de l’épidémiologie
- l’administration publique
- des médias
- le commerce électronique, etc.
1.3 Les SGBDs
La gestion d'une base de données pose des problèmes complexes.
Cette gestion est assurée par des logiciels spécialisés : les systèmes de gestion de bases de
données ou SGBD.
• Organisation des données : le SGBD organise les données en tables permanentes
stockées sur disque ; il crée les mécanismes garantissant un accès rapide aux données ;
il informe les utilisateurs sur ces structures.
• Gestion des données : le SGBD garantit l'évolution cohérente des données ; il vérifie
que les contraintes (unicité, référence entre tables, etc.) sont respectées.
• Accès aux données : le SGBD permet l'accès aux données à la fois par l'utilisateur
occasionnel et par les programmes de traitement de données.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 6
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

• Protection contre les accidents : le SGBD garantit l'intégrité et l'accessibilité des


données en cas d'incident ou d'attaque.
• Gestion des accès concurrents : le SGBD permet l'accès simultané aux données par
des centaines voire des milliers d'utilisateurs. Il contrôle rigoureusement les opérations
simultanées sur les mêmes données.
• Contrôle des accès : le SGBD garantit que seuls les utilisateurs autorisés peuvent
accéder aux données et les modifier.
1.4 Les défis des BDs aujourd’hui et demain
Multiplicité des types de données.
Une base de données moderne peut contenir :
- des données multimédias,
- des données textuelles,
- des données spatiales (données GPS par exemple),
- des données historiques (plusieurs lignes par entité),
- des données semi-structurées.
Volumes et performances.
- Une base de données peut contenir des dizaines de milliers de tables,
des milliards de lignes.
- Comment garantir l'accessibilité de ces données, leur protection contre
les incidents, des temps d'accès satisfaisants ?
Maintenance et évolution.
- La structure d'une base de données peut évoluer : ajouter ou supprimer
une table, une colonne, une contrainte.
- Comment préserver les données et les programmes utilisateurs lors de
cette évolution ?
Les données distribuées et nomades.
- Une base de données peut être répartie et/ou dupliquées sur plusieurs
ordinateurs répartis géographiquement.
- Certains de ceux-ci peuvent être des appareils mobiles (embarqués,
portables, smart phones).
- Comment garantir la cohérence, la protection et l'accessibilité des
données.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 7
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Les BD et le Web.
De nombreuses bases de données sont intimement liées au Web. En outre, le Web peut être vu
comme une gigantesque base de données (largement incohérente et redondante !) Qu'en est-il
des principes rigoureux des bases de données dans ce contexte ?
Les données décisionnelles.
Les données ne servent pas seulement à contrôler la gestion et le fonctionnement d'une
entreprise au jour le jour.
Elles sont aussi souvent utilisées pour soutenir des décisions tactiques et stratégiques.
Caractéristiques : traitement de très gros volumes de données complexes pour produire une
réponse courte (une heure de traitement de plusieurs téraoctets pour en extraire un seul
nombre !)
Comment structurer une base de données dans ce sens (= entrepôts de données) ?
II.3. Les structures de données de base
Le modèle relationnel est basé sur le schéma Entité – Association et repose sur les notions
mathématiques simples de la théorie des ensembles. C’est un modèle de type conceptuel et est
actuellement utilisé par plusieurs méthodes et outils d’aide à la conception de bases de
données. Le modèle E-A permet une représentation graphique assez lisible du chemin d’une
base de données.
Toute organisation faisant partie du monde réel peut être représentée comme un tout constitué
de deux éléments :
- les objets (appelés Entités)
- les liens entre ces objets (appelés Associations).
II.3.1. Le concept d’entité
Une entité est un objet concret ou abstrait de la réalité pour lequel on souhaite connaître et
enregistrer des informations.
C’est une représentation d’un élément matériel ou immatériel du monde réel ayant un rôle
dans le système où l’on voudrait opérer. C’est un modèle d’objet identifié du monde réel dont
le type est défini par un nom et une liste de propriétés (rubriques) qui le caractérisent.
L’identification [logique] des entités à modéliser constitue la première étape de représentation
logique des données.
Ces entités peuvent définir des personnes, des endroits, des choses ou des concepts.
Généralement elles correspondent aux noms figurant dans le système à modéliser.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 8
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

On peut finalement conclure qu’une entité est un regroupement d’objets :


- ayant la même nature
- jouant le même rôle
- ayant la même structure informationnelle
Il s’agit d’un type d’objets possédant des caractéristiques similaires et manipulables par des
opérations identiques.
Exemples : Le Client d’une banque, le cours enseigné dans une école, le malade dans un
hôpital, etc.
II.3.2. Entité et instance
Lorsque les propriétés d’une entité prennent des valeurs, l’ensemble de ces valeurs constitue
une instance d’entité ou une occurrence d’entité. Il s’agit donc d’un objet particulier
identifiable et précis d’une entité caractérisé par un identifiant et des valeurs de propriétés.
Exemple :

II.3.4. Le concept d’attribut et de domaine


Un attribut est une propriété caractéristique d’une entité qui est utile ou nécessaire, mais pas
forcément pertinente pour décrire la réalité perçue. Il prend une valeur bien précise pour
chaque instance d’une entité.
Par exemple, un produit vendu dans un magasin peut avoir les attributs suivants :
- le code
- la désignation
- la quantité en stock
- le prix de vente unitaire
Un attribut prend ses valeurs dans un ensemble des valeurs possibles appelé « domaine ».

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 9
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Exemple
Attribut : Domaine
Nom d'une personne : Caractères alphanumériques
Quantité en stock : Nombre entier positif
Prix d'un article : Nombre avec 2 décimales
Date d'une commande : Jour / Mois / Année

II.3.5. Concept d’identifiant


L’identifiant est un attribut (ou un groupe d’attributs) permettant de repérer de manière unique
une instance parmi toutes les instances ou occurrences possibles d’une entité.
C’est, en d’autres termes, une propriété particulière d'un objet telle qu'il n'existe pas deux
instances de cet objet pour lesquelles cette propriété pourrait prendre une même valeur.
L’identifiant est aussi appelé Clé primaire.
Ainsi, chaque individu d’une entité doit être identifiable de manière unique. C’est pourquoi
les entités doivent toujours posséder un attribut (ou un groupe d’attributs) sans doublon qu’est
l’identifiant ou la clé primaire (toujours souligné).
II.3.6. Association
Une association représente les liens sémantiques qui peuvent exister entre deux ou plusieurs
entités.
A titre illustratif, on a l’association Acheter entre les entités Personne et Voiture.

N.B.
• Une association peut aussi posséder des attributs. Dans l’exemple ci-dessus, les
attributs date d’achat et prix peuvent appartenir à l’association Acheter.
• L’identifiant d’une association est constitué de l’ensemble des identifiants des entités
impliquées dans l’association.
II.3.7. Cardinalités
La cardinalité d’un lien entre une entité et une association est le minimum et le maximum de
fois qu’une instance de l’entité participe à l’association.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 10
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

- Minimum : 0 ou 1
- Maximum : 1 ou n
- Combinaisons possibles : (0,1) (1,1) (0,n) (1,n)
Exemple

- Un client peut acheter une à plusieurs fois (car pour être considéré comme client, il
faut avoir acheté au moins une fois) ; d’où (1,n)
- Un article peut ne pas être acheté ; ou s’il l’est, il peut l’être plusieurs fois. D’où (0,n)
II.3.8. Contrainte d’intégrité
Une contrainte d'intégrité est une propriété du schéma E/A, invariante dans le temps. On peut
aussi l’appeler règle de gestion. C’est en fait une règle de cohérence dans la structure des
données qui forment le système observé.
* La contrainte d’intégrité référentielle est une contrainte exprimée entre deux relations.
Intuitivement, elle consiste à vérifier que l'information utilisée dans un nuplet pour désigner
un autre nuplet est valide, notamment si le nuplet désigné existe bien.
Par exemple, on ne peut créer une commande pour un fournisseur qui n’existe pas, de même
qu’on ne peut supprimer un fournisseur pour lequel il existe encore des commandes non
soldées.
II.4. Perception du monde réel
Le monde réel peut être modélisé à l’aide d’entités qui représentent les objets ayant une
existence visible, et d’associations entre ces objets.
A titre d’exemple, soient les données modélisant des entités « personne » et « voiture », et le
type d’association « possède » qui traduit le fait qu’une personne est propriétaire d’une ou
plusieurs voitures. Une personne est caractérisée par un numéro de sécurité sociale (NSS), un
nom et un prénom alors qu’une voiture est caractérisée par les attributs Numéro de véhicule,
Marque, Type, Puissance et Couleur.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 11
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Chaque personne est identifiée par une occurrence du numéro de sécurité sociale (NSS) alors
que chaque voiture est identifiée par un numéro de véhicule (NV).
A chaque occurrence d’association correspond par exemple une date d’achat (DATE) et un
prix d’achat (PRIX).
La figure ci-dessous illustre la partie du monde réel modélisée en représentant une entité par
un rectangle, une association par un hexagone et un attribut par un cercle.
Graph.2

Le modèle relationnel se prête bien à la représentation des entités et des associations. Une
entité est représentée par une relation (table) dont le schéma est le nom de l’entité suivi de la
liste des attributs de l’entité.
Par exemple, les entités PERSONNE et VOITURE seront respectivement représentées par les
relations :
- PERSONNE (NSS, NOM, PRENOM)
- VOITURE (NV, MARQUE, TYPE, PUISSANCE, COULEUR)
Une association est représentée par une relation dont le schéma est le nom de l’association,
suivie de la liste des identifiants des entités participantes et des attributs de l’association.
Par exemple, l’association POSSEDE sera représentée par la relation :
- POSSEDE (NSS, NV, DATE, PRIX).
Notons qu’une mauvaise perception des entités et associations représentant le monde réel
modélisé conduit à des relations problématiques.
Imaginons par exemple que l’on isole une entité unique PROPRIETAIRE contenant tous les
attributs des trois relations PERSONNE, VOITURE et POSSEDE. Ainsi, nous pourrions
représenter toutes les informations modélisées par une seule relation.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 12
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Le tableau ci-dessous représente une extension possible de cette relation :


PROPRIETAIRE
NV MARQUE TYPE PUIS COUL NSS NOM PRENOM DATE PRIX
SH402B Renault R12TS 6 Rouge 100 KIZYA Gabriel 10.02.75 2000
KN511S Peugeot 504 9 Verte 100 KIZYA Gabriel 11.06.80 9000
KT689J Citroen 2CV 2 Bleue 200 FUNDI Gustave 20.04.76 1000
CD750N Citroen AM18 5 Bleue 200 FUNDI Gustave 20.08.81 5000
KT900G Renault R18B 9 Verte 300 KABONWA Judith 11.09.99 6000

La relation représentée ci-dessus souffre de plusieurs types d’anomalies :


- tout d’abord, des données sont redondantes ; par exemple, KIZYA Gabriel et FUNDI
Gustave apparaissent deux fois ; plus généralement, une personne apparaît autant de
fois qu’elle possède de voitures ;
- ces redondances conduisent à des risques d’incohérences lors des mises à jour : par
exemple, si l’on s’aperçoit que le prénom de KIZYA n’est pas Gabriel mais Veron, il
faudra veiller à mettre à jour les deux tuples contenant KIZYA sous peine de voir
apparaître un KIZYA Gabriel et un KIZYA Veron ;
- il est nécessaire d’autoriser la présence de valeurs nulles dans une telle relation afin de
pouvoir conserver des voitures sans propriétaire ou des personnes ne possédant pas de
voitures dans la base.
En résumé, une relation qui ne représente pas de vraies entités ou associations semble donc
souffrir de la présence de données redondantes et d’incohérences potentielles et nécessite le
codage de valeurs nulles. Il y a donc tout intérêt à éliminer ces anomalies afin de faciliter la
manipulation des relations.
Cette procédure d’élimination d’anomalies peut se faire à l’aide d’une approche par
décomposition. Celle-ci tend à partir d’une relation composée de tous les attributs, appelée la
relation universelle, et à décomposer cette relation en sous-relations qui ne souffriraient pas
des anomalies précédemment signalées.
La décomposition susmentionnée s’effectue par la notion de dépendances fonctionnelles.
II.5. Dépendances fonctionnelles
II.5.1. Définition
La notion de dépendance fonctionnelle fut introduite par CODD afin de caractériser des
relations qui peuvent être décomposées sans perte d’informations.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 13
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Soit une relation R (A, B, C, D) ; On dit que A détermine C ou que C dépend


fonctionnellement de A, et on note A → C si et seulement si ayant deux tuples (a1, b1, c1, d1)
et (a2, b2, c2, d2) tels que si a1=a2, alors c1=c2.
Plus simplement, un attribut (ou un groupe d’attributs) Y dépend fonctionnellement d’un autre
attribut (un groupe d’attributs) X si la connaissance d'une valeur de X lui fait correspondre
une valeur unique de Y.

Ici, le Matricule de l’agent détermine son Nom, son Prénom, sa Catégorie et son Adresse.

De même ici, l’Adresse Fournisseur et le Prix sont déterminés par le Nom du Fournisseur et
l’Article Fourni.
Il est essentiel de bien remarquer qu’une dépendance fonctionnelle est une assertion sur toutes
les valeurs possibles et non pas sur des valeurs actuelles ; elle est caractérisée par une
intention et non une extension d’une relation. Autrement dit, il est impossible de déduire les
dépendances fonctionnelles d’une réalisation particulière d’une relation. La seule manière de
déterminer une dépendance fonctionnelle est de regarder soigneusement ce que signifient les
attributs car ce sont des assertions sur le monde réel qui lient les valeurs possibles des
attributs entre elles.
En pratique, une base de données n'est créée qu'à l'aide d'un Système de Gestion de Base de
données (SGBD) qui est un logiciel.
Dans le cadre de ce cours, nous allons faire usage de MS ACCESS et MySQL.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 14
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

CHAPITRE DEUXIEME.

BASE DE DONNEES ACCESS


Dans les bases de données, la table est le premier objet par ordre d'importance décroissante.
Pas de table, pas de données.
2.1 Comment créer une base des données Access ?
Le démarrage d'Access 2016 se fait comme suit :
- cliquer sur le bouton Démarrer dans la barre de tâche
- puis sur Toutes les applications/Microsoft Office/Ms Access (2007, 2010, 2013,
2016). Ou Vous rechercher l’icône dans votre Menu démarrer
L'écran d'accueil d'Access s'affichera comme suit :

Cliquer sur Base de données vide pour créer, puis sur cette zone pour saisir le nom de votre
fichier Access comme illustré ci-après.

Saisissez ici le nom Cliquez ici pour


de votre Base de pouvoir choisir
données l’emplacement de
votre Base de données

Cliquez sur ici pour Créer


votre Base de données

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 15
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Au clic sur Créer, la fenêtre suivante s'ouvre


8
4 5 6 7

3
2

Légende
1. Liste des objets principaux d'Access
2. La table (nommée par défaut Table1) en mode affichage
3. Bouton bascule, permettant d'afficher une table ou un objet Access en différents
modes (Mode création, Mode Feuille de données, …)
4. L'onglet Accueil
5. L’onglet "Créer" permettant de créer tout objet Access (Table, Requête,Formulaires,
Etat, …).
6. L'onglet Données externes permettant l’importation ou l'exportation des données.
7. L'Onglet de base de données, permettant l'accès aux commandes relatives à la base de
données (relations, ……)
8. L’onglet Outils tables-création permettant de créer le(s) champ(s) clé.
9. L’onglet Fichier/Bouton office permettant d’accéder aux tâches habituelles de gestion
des fichiers (enregistrer, imprimer, Options, …)
Ce qu’il faut retenir :
Une base des données Access est composée de Table, Requête,
formulaire, et Etat.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 16
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.2 La création d'une table


2.2.1 Créer une table on mode création
Créer une table revient à définir sa structure ; c’est-à-dire déterminer pour chaque champ de
votre table, le nom du champ, le type de données (numérique, texte, ….) et les propriétés
qu'il contient.
Etape1 : Déterminer les champs de votre table
Pour créer une table, il est préférable d'utiliser le mode création de table.

1
2

Pour ce faire :
1. Cliquer sur l'onglet "Créer"
2. Puis sur Création de table
3. Taper ici le nom de chaque champ

Choisir ici le type de données


pour chaque champ.
Les types de données
disponibles :
Texte,
Mémo,
Numérique,
Monétaire, etc.

Définir ici les propriétés du


champ sélectionné

Etape2 : Déterminer la clé primaire de votre table


Chaque table doit avoir une clé primaire ou champ clé pour pouvoir différencier les
enregistrements (exemple : NumMatricule, codeclient, codearticle, …).

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 17
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Ainsi pour définir un champ clé, il faut cliquez sur l'icône


Cliquer sur le champ qui doit devenir clé primaire

Cliquez ici pour faire de ce champ CodeClient, une clé primaire de cette table

Cliquez ici pour placer votre curseur

La clé (encore appelée "clé primaire") identifie de manière unique chaque enregistrement de
la table.
Le champ clé auquel on a appliqué une clé acquiert les propriétés suivantes :
- les doublons (deux informations identiques ou plus) sont désormais interdits par le
système.
- la présence de la clé interdit la présence d'un champ vide dans un enregistrement.;
- le champ auquel on applique une clé est automatiquement trié par ordre croissant.
Pour supprimer une clé, il faut sélectionner le champ et cliquer sur l'icône de la clé
; cette icône fonctionne comme un commutateur.
Notons enfin qu'il ne peut y avoir qu'une seule clé simple ou composée par table.
Etape 3. Enregistrer la table pour lui donner un nom
Ceci constitue la dernière étape de création de la table.
Il faut que la table ait un nom afin de l’identifier et la distinguer d’autres tables.
Pour ce faire
Cliquer sur,
puis saisir ici le nom de la table

Cliquer sur Ok

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 18
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Etape 4 : Saisir les données


Après avoir fixé la structure de la table, ce qui reste, c’est de la remplir des données.
Pour introduire des données dans une table, il faut l'ouvrir en mode "feuille de données".
Dans la fenêtre base de données (l'objet table étant sélectionné), on peut :
- faire un double clic sur le nom de la table
- faire un clic droit sur le nom de la table, et
cliquer sur "Ouvrir"
2.2.2 Importer une table de la feuille Excel
Lorsqu'on dispose d'une feuille Excel qui contient des données sous forme de table correcte, il
y a possibilité de l'importer dans Access pour éviter de la ressaisir ?
Soit une table CLIENT contenue dans un fichier Excel nommé (GESTIONVENTES)
Code_Client Nom_client Ville PAYS
CL1 PSARO Lubumbashi RDC
CL2 Jambo Mart Londres ANGLETERRE
CL3 Ets Kabongo Lusaka ZAMBIE
CL4 Groupe Malta Madrid Espagne
Etapes d’importation
1. Ouvrir votre base de données concernée si elle existe déjà
2. Cliquez du bouton droit de la souris quelque part dans le volet Gauche de Toutes les
tables (1), puis sur Importer-Excel.

Ou Cliquez sur l'onglet puis sur

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 19
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

3. Dans la boîte de dialogue qui suit, cliquez sur parcourir pour affichez les fichiers de
type Excel dans le dossier où se situe le fichier Excel, et choisissez le fichier à
importer.

4. Sélectionnez ensuite la feuille à importer, puis cliquez sur le bouton Suivant.

5. A l 'étape suivante, cochez la case "Première ligne contient les en-têtes de colonnes"...

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 20
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

A cette étape cliquez sur suivant. (Toutes les opérations de cette étape peuvent être faites plus
tard, en ouvrant la table finale en mode Création).

§ Choisir votre clé ou laisser Access créer la clé automatiquement ou Pas de clé.

§ Cliquez enfin sur Terminer.


CONSEIL
Excel n'a pas vraiment de notion de type de données et de taille de champ. Au moment de
l'importation, Access va donc faire les choix les plus larges, par défaut. Ça veut dire que tous
les nombres seront de type Réel double, et que les champs Texte auront une taille de 255
caractères.
Ce serait une bonne idée, après l'importation, d'ouvrir la table en mode Création, et de
vérifier toutes les propriétés.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 21
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.3 Créer les relations entre tables


Lorsqu’une base de données a plusieurs tables, celles-ci doivent impérativement être reliées
d’une manière rationnelle.
2.3.1 La création des relations
Pour relier les tables, on procède comme suit :
- Cliquez sur l'onglet "Outils de base de données"

- Cliquez sur le bouton.


- À cet effet, une petite fenêtre affiche la liste des tables disponibles
Double cliquez sur chaque table pour l'ajouter dans la fenêtre des relations.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 22
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Glissez le champ matricule de la table


client vers le même champ dans la table
facture et lâcher la souris.
Dans la fenêtre qui apparait cocher la
case. Appliquez l’intégrité référentielle.

Faites de même pour relier les autres tables afin d’avoir les relations illustrées ci-après.

A quoi sert l’intégrité référentielle ?


Ce terme implique que le SGBD effectue un certain nombre de contrôles, pour assurer la
cohérence interne de la BDD.
Si nous appliquons l'intégrité référentielle :
- un code client ne provenant pas de la table "Agent" sera refusé dans la table
"Propriétaire" ;
- il ne sera pas possible de supprimer un code client dans la table "Agent" s'il a été
utilisé dans la table " Propriétaire ".

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 23
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Exercice. Créer une base de données ayant les tables ci-dessous et reliez les

2.4 Les Requêtes


2.4.1 Définition
Les requêtes permettent de manipuler les données qui se trouvent dans les tables. C'est-à-dire
que dans Access les tables ne servent que seulement pour stocker les informations. Et que si
on veut faire des tries ou des filtres ou des calculs basés sur les données de la table, on utilise
la requête.
Types de requêtes :
La requête sélection : sélectionner des enregistrements, faire des calculs et des
regroupements.
La requête d'Analyse croisée : résultats sous forme de tableau comparer des valeurs,
dégager des tendances.
La requête de Création de table : créer une table à partir des données extraites dans
d’autres tables.
La requête Mise à Jour : modifier le contenu de champs de tables. mettre à jour en
masse .
La requête Ajout : ajouter les données extraites à la fin d'une table existante.
La requête Suppression : supprimer des enregistrements de tables.
La requête calculée
La requête paramétrée

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 24
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.4.2 La création d'une requête sélection simple


A titre de premier exemple de sélection simple, nous allons créer une requête qui extrait d'une
table une liste de personnes désignées par leur nom et leur prénom. Notre point de départ sera
la table "TbPersonnes" représentée ci-dessous.
nom_personne prénom nom_organisme fonction
Turlutu Jean Amato et Cie technicien
Surpont Yvette EGMF secrétaire
Lechant Paul STL directeur
Durand Nathalie MCK ingénieur
Lechant Paul SNCC président
Verseau Pierre Bidule SA commercial

Pour créer une requête simple cliquer sur créer puis sur création de requête comme le montre
la figure ci-après.

Cliquez sur
l’Onglet CREER
Puis cliquer sur le bouton
Création de requête

Une boite affiche la liste des tables que contient la BDD


Sélectionnons la table "Personnes" sur
laquelle doit porter la requête, puis
nous cliquons successivement sur les
boutons "Ajouter" et "Fermer".

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 25
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Pour y introduire un champ dans la grille de définition de la requête nous disposons de trois
méthodes :
cliquer sur la ligne "Champ :" et choisir dans la liste déroulante qui s'affiche ;
double cliquer sur le nom du champ ;
tirer le nom du champ avec la souris de la table vers la grille.

Double-cliquez sur chaque champ


pour les faire apparaitre en bas

Les champs double-cliqués


vont apparaitre ici

La requête étant définie, nous l'exécutons en cliquant sur le bouton de la barre d'outils. Nous
obtenons le résultat suivant :
nom_personne prénom
Turlutu Jean
Surpont Yvette
Lechant Paul
Durand Nathalie
Lechant Paul
Verseau Pierre

2.4.3 La requête avec création de champ


Dans la liste des personnes, nous voulons maintenant rassembler chaque nom, suivi de son
prénom, dans une même colonne. Pour ce faire, nous créons la requête suivante :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 26
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Le signe & désigne, comme en Visual Basic, l'opérateur de concaténation de chaînes. Les
crochets [........] signifient que l'on évoque le contenu des champs correspondants. Le résultat
de la requête est le suivant :
nom_personne
Turlutu Jean
Surpont Yvette
Lechant Paul
Durand Nathalie
Lechant Paul
Verseau Pierre

2.4.4 La requête de sélection multiple


La requête de sélection joue, dans les BDD, un rôle très important. Dans le cas le plus simple,
la requête sélection permet d'extraire d'une table les lignes répondant à certains critères.
L'ensemble des critères d'une requête de sélection est parfois appelé filtre.
D'une manière générale, la sélection :
- s'applique soit à une seule
table, soit à plusieurs tables
liées par des relations ;
- permet de sélectionner les
lignes par application d'un ou
plusieurs critères portant sur
un ou plusieurs champs ;
- permet de choisir les
colonnes que l'on veut conserver (comme la sélection simple) ;
- peut enregistrer son résultat sous forme d'une table ;
- peut créer une nouvelle colonne ;
- peut être paramétrée.
La formulation d'une requête de sélection met en jeu des critères liés par des opérateurs
logiques. Sa réalisation pratique pose des problèmes de syntaxe, qui sont propres au SGBD
utilisé.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 27
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.4.4.1 La syntaxe
- une donnée de type texte doit être écrite entre guillemets ("..."), et précédée de
l'opérateur "Comme".
- les nombres sont écrits tels quels ;
- la date et / ou l'heure doivent être placées entre dièses (exemple : #01/01/2003#). Dans
certains SGBD, le dièse est remplacé par l'apostrophe ;
- un booléen doit être déclaré vrai ou faux.
2.4.4.2 Les caractères génériques
Pour rechercher les enregistrements qui contiennent la chaine de caractère "rie" dans un
champ donné, nous écrivons, Comme "*rie*"
Les caractères génériques, sont des caractères qui peuvent remplacer un ou plusieurs autres
caractères quels qu'ils soient. Le caractère générique le plus fréquemment utilisé est
l'astérisque *, qui remplace un nombre quelconque de caractères.
Ainsi :
Caractère Type de données Exemple Effets
générique d'application
* Texte Comme permet de sélectionner tout
"*truc" enregistrement dont le champ considéré
contient une chaîne de caractères se
terminant par "truc", telle que "truc" et "le
truc". Mais "trucage" sera ignoré.
? Texte Comme "c?d" remplace un caractère quelconque et un
seul. On retrouvera par exemple cad, ced,
cid, cod, mais pas cd
Texte Comme recherche le point d'interrogation (placé
"*[?]*" n'importe où dans un champ). Le ? étant
un caractère générique, il faut le placé
entre crochets.

Notons de plus que, dans les versions récentes de la plupart des SGBD, l'astérisque est
remplacé par le pourcent (%) et le point d'interrogation par le caractère de soulignement (_).
Et voici un exemple d’une requête multicritères :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 28
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.4.5 Créer une requête Paramètre


La création d’un paramètre revient à ajouter un critère normal à une requête : Créez une
requête Sélection, puis ouvrez-la en mode Création.
Dans la ligne Critères du champ auquel vous souhaitez appliquer un paramètre, tapez le texte
à afficher dans la zone du paramètre, entre crochets. Par exemple, [Quelle la date de début ?]

Vous pouvez utiliser plusieurs paramètres dans un critère. Par exemple, Entre [Date début :]
Et [Date fin :] génère deux invites quand vous exécutez la requête.

2.5 Les Formulaires


2.5.1 Définition
Un formulaire c’est une interface utilisateur. C'est-à-dire une interface graphique permettant
d’afficher des données provenant d’une table ou aussi permet d’ajouter des données dans une
table. A partir d’un formulaire on peut remplir une table.
Le formulaire est avant tout un outil de saisie d'information au clavier. A ce titre, il entre en
concurrence avec :
- L’écriture directe dans les tables ;
- L’importation des données.
Un formulaire peut rendre la saisie de certaines informations plus facile et permettre l'ajout de
boutons, menus, etc. qui donnent à l'application un aspect très "fini".

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 29
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Certaines bases de données sont principalement alimentées en données par importation des
données : le formulaire ne sert alors plus à rien.
C'est, par exemple, le cas des magasins à grande surface, qui alimentent leur BDD
directement et en temps réel depuis les caisses enregistreuses. C'est aussi le cas des sites web
qui déversent quotidiennement leur fichier journal dans la BDD qui sert au suivi du site et à
la mesure d'audience. C'est encore le cas de tous ceux qui font de l'acquisition de données via
des capteurs couplés à des ordinateurs, etc.
Accessoirement, le formulaire sert aussi d'outil de visualisation, c’est-à-dire de consultation
du contenu de la base à l'écran.
2.5.2 La création d'un formulaire simple
Pour créer un formulaire procédez comme illustré ci-après

Cliquer sur l’Onglet CREER Cliquer sur Assistant


Formulaire

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 30
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Pour étudier les formulaires, nous utiliserons une table (nommée "Projet") dotée d'une liste de
choix (nommée "Titre"), comme le montre la figure ci-dessous.
Fournir à l'assistant les informations utiles (tables, champs, etc.)
Voici comment se présente le formulaire, dont le nom apparaît désormais dans la fenêtre
"Base de données" :

Le formulaire est constitué d'étiquettes (les noms des champs dans la table) et de contrôles
correspondant aux champs de la table. Lorsqu'ils sont directement dérivés de la table, les
contrôles sont appelés "contrôles dépendants", ou encore "champs".
2.5.3 Le perfectionnement du formulaire
Pour modifier les propriétés d'un formulaire, il faut ouvrir sa feuille de propriétés de la
manière suivante :
- sélectionner le formulaire ;
- cliquer sur l'icône "Modifier" ou cliquer droit sur le formulaire à modifier et aller dans
Mode Création ;
- cliquer sur l'icône "Propriétés" ou « Feuille de propriété » ou double-
cliquer sur le carré noir qui se trouve en haut et à gauche de la fenêtre du
formulaire ;
- sélectionner l'onglet "Données" pour Access 2007 ou « Création » pour Access 2010
et supérieur, qui donne accès à diverses propriétés du formulaire.
Les contrôles :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 31
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Voici la liste des contrôles que nous pourrons utiliser, les contrôles non documentés servent,
de façon générale, à insérer dans un formulaire des "objets" provenant d'autres applications
Windows, comme par exemple un fichier sonore Wav, une vidéo AVI, un fichier au format
Word, une page HTML, etc.
Pour tous les contrôles placés sur le formulaire, en cliquant dessus avec le bouton droit, on
obtient le menu ci-contre :

Ce menu permet de modifier l'aspect (couleur, choix de la police, effets, etc.) ou le


comportement (format d'affichage, masque de saisie, etc.) du contrôle, l'option "Propriétés"
du menu permet l'affichage et la modification de toutes les caractéristiques du contrôle. Les
propriétés varient selon le type de contrôle.
Exemple d’un formulaire avec contrôles

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 32
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

2.6 Les états


Dans une base de données, l'objet état est utilisé pour mettre en forme les données destinées à
être imprimées. A ce titre, l'état constitue donc le troisième objet des SGBD par ordre
d'importance décroissante, après les tables et les requêtes.
La création d'un état ressemble fortement à la création d'un formulaire.
2.6.1 Création d'un état
Ouvrons une BDD contenant au moins une table pourvue de données et, dans la fenêtre "Base
de données", sélectionnons l'objet "États". Deux options nous sont présentées :
- Créer un état en mode Création
- Créer un état à l'aide de l'Assistant

Cliquez sur
1 2 Puis cliquez
l’onglet sur le bouton
CREER Assistant Etat
Les manuels, en général, conseillent d'utiliser l'assistant en toutes circonstances, car créer un
état à partir de rien est assez fastidieux.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 33
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Il existe aussi une icône "Nouveau", qui redonne le mode création et l'assistant, mais propose
de plus des fonctions dont l'intérêt est plutôt mince :
- État instantané : Colonnes. Cette fonction crée un état en présentation verticale dès
que nous lui fournissons le nom de la table ou de la requête. Nous ne sommes pas
maître des paramètres, et le résultat est sommaire ;
- État instantané : Tableau. Cette fonction opère comme la précédente, mais en
présentation tabulaire ;
- Assistant graphique. Cette fonction permet de créer des graphiques, mais leur qualité
est très mauvaise. Pour créer un graphique correct, il faut exporter les données vers un
tableur ;
- Assistant étiquette. Comme son nom l'indique, cette fonction permet d'imprimer des
étiquettes.
2.6.2 La structure de l'état
L'état que nous venons de créer apparaît dans la fenêtre "Base de données" (l'objet "État" étant
sélectionné). Nous le sélectionnons, puis nous cliquons sur l'icône "Modifier". Une fenêtre
s'ouvre, qui nous permet de modifier l'état.

Exemple Complet Sur la base de données


Etape 1 : Démarrer Microsoft Access 2007 ou 2010
• Cliquez sur Démarrer/Tous les programmes/Microsoft office/MS ACCESS 2010
• Créer une BD portant votre nom précédé de « BD ». EX. : BD Theo
Etape 2 : Créer les tables
• Importer la table Article se trouvant dans le classeur Excel « GestionVentes » sur le
Bureau. La clé est le champ DésignationArt

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 34
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

• Table Facture (N°Fact, DateFact, Client)


• Table DetailsFacture(N°Fact,DesignationArt,Qte). Le champ DesignationArt puisera
ses données de la table Article (utlisez l’Assistant liste de choix comme type de
données)
Etape 3 : Relier les tables comme illustré ci-après :

Etape 4 : Créer les requêtes


a) Créer une Requête nommée
RFacture basée sur la Table
Facture et ajouter tous les
champs

b) Créer une 2ème requête nommée RDetails basée sur les tables Article et
DetaislFacture. Ajouter le champ calculé PrixTotal comme illustré ci-après

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 35
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Etape 6 : Créer les formulaires


1. Créer un formulaire principal basé sur la Requête RFacture

- Cliquer sur Créer puis sur


- Sélectionner la requête Rfacture puis cliquer ici pour choir tous les champs
- Poursuivre la démarche jusqu’à la fin en cliquant sur suivant …

2. Créer un sous formulaire basé sur la requête Rdetails


- Ouvrir le formulaire Rfacture en mode création
- Dans l’onglet « Création » cliquer sur l’objet Sous-formulaire

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 36
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

- Tracer un rectangle de bonne dimension sur le formulaire


- Sélectionner la requête Rdetails avec tous ses champs

- Définir vous-même les champs de lien entre le formulaire principal Rfacture et


le sous-formulaire

- Cliquer sur suivant jusqu’à la fin


- Et vous aurez un résultat semblable à ceci

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 37
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Le formulaire montre maintenant les informations du formulaire ainsi que les items facturés.
Mais il ne montre pas le total de la facture. Il faut ajouter un champ calculé pour le voir
Etape 6 : Ajouter le total de la facture au sous formulaire
- Ouvrir le sous formulaire en mode création.

- Dessiner une zone dans le pied de page du sous formulaire


- Écrivez la formule suivante: =somme(Prixtotal).

Ajoutez un champ en dessous du sous-formulaire en appuyant sur le bouton . Placez le


pointeur par-dessus le nouveau champ.
Appuyez sur le bouton droit de la souris. Du menu contextuel, sélectionnez l'option
Propriétés. Placez le pointeur dans la case Source contrôle.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 38
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Cliquez sur le bouton Générateur des expressions (…).

Passer en mode formulaire et vous aurez un résultat semblable à ceci :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 39
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Autres questions :
- Importez la table Client depuis le classeur « GestionVentes » sur votre bureau
- Créez une requête affichant tous les clients habitants les communes Lubumbashi et
Katuba
- Créez une requête affichant toutes les clientes dont le nom se termine par « INE »
- Créez une requête affichant tous les clients dont le nom se commence par « A »
- Créez une requête affichant tous les articles et le chiffre d’affaires réalisés par article

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 40
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

CHAPITRE TROISIEME.

BASE DE DONNEES MySQL


3.1 Introduction à MySQL/PhPMyAdmin
MySQL est un système de gestion de base de données (SGBD). Issu du monde libre, il est l'un
des logiciels de gestion de base de données le plus utilisé au monde.
Le MySQL dérive directement de SQL (Structured Query Language)
L’outil phpMyAdmin est développé en PHP et offre une ´ interface pour l’administration des
bases de données. Cet outil permet de :
- créer de nouvelles bases ´
- créer/modifier/supprimer des tables ´
- afficher/ajouter/modifier/supprimer des tuples dans des tables
- effectuer des sauvegardes de la structure et/ou des donnes´
- effectuer des requêtes
- gérer les privilèges des utilisateurs
3.2 Présentation et manipulation de l’environnement phpMyAdmin
Nous allons découvrir phpMyAdmin, un des outils les plus connus permettant de manipuler
une base de données MySQL.
PhpMyAdmin est livré avec WampServer, qu’il faut préalablement installer.
3.2.1 Créer une table

Démarrez WAMP, faites un clic gauche sur l'icône de la barre des tâches et allez dans
« phpMyAdmin ».
L'écran d’accueil de phpMyAdmin ressemble à la figure suivante.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 41
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

1. Liste des bases : c'est la liste de vos bases de données. Le nombre entre parenthèses est
le nombre de tables qu'il y a dans la base.
2. Créer une base : pour créer une nouvelle base de données, entrez un nom dans le
champ de formulaire à droite, cliquez sur « Créer » .
L'écran de la figure suivante devrait alors s'afficher si la base a bien été créée.

La base de test a été créée, vide


Dans le champ « Créer une nouvelle table sur la base test », entrez le nom et le nombre de
champs, comme vous le montre la figure suivante.

Cliquer sur Exécuter


la figure suivante apparait.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 42
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

3.2.2 Les types de champs MySQL


MySQL propose une quantité très importante de types de
données.
Les quatre types de données les plus courants :
- INT : nombre entier ;
- VARCHAR : texte court (entre 1 et 255 caractères) ;
- TEXT : long texte (on peut y stocker un roman sans
- problème) ;
- DATE : date (jour, mois, année).

3.3 Le langage SQL


Le SQL (Structured Query Language) est un langage permettant de communiquer avec une
base de données. Ce langage informatique est notamment très utilisé par les développeurs web
pour communiquer avec les données d’un site web.
Dans cette section nous allons es apprendre les principales commandes SQL telles que:
SELECT, INSERT INTO, UPDATE, DELETE, DROP TABLE.
3.3.1 SQL CREATE DATABASE
La. Syntaxe pour créer une base de données est:
CREATE DATABASE ma_base ou CREATE DATABASE IF NOT EXISTS
ma_base.
Et pour sélectionner une base de données, on utilise la syntaxe USE ma_base ;
3.3.2 La commande CREATE TABLE
La commande CREATE TABLE permet de créer une table en SQL.
La création d’une table sert à définir les colonnes et le type de données qui seront contenus
dans chacun des colonne (entier, chaîne de caractères, date, valeur binaire …).
La syntaxe générale pour créer une table est la suivante :

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 43
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

CREATE TABLE nom_de_la_table


(
colonne1 type_donnees,
colonne2 type_donnees,
)

Le type de données sont : INT, DATE, TEXT ….


Pour chaque colonne, il est également possible de définir des options telles que (liste non
exhaustive) :
- NOT NULL : empêche d’enregistrer une valeur nulle pour une colonne.
- DEFAULT : attribuer une valeur par défaut si aucune donnée n’est indiquée pour
cette colonne lors de l’ajout d’une ligne dans la table.
- PRIMARY KEY : indiquer si cette colonne est considérée comme clé primaire pour
un index.
Exemple
CREATE TABLE utilisateur
(
id INT PRIMARY KEY NOT NULL,
nom VARCHAR(100),
prenom VARCHAR(100),
email VARCHAR(255),
date_naissance DATE,
pays VARCHAR(255),
ville VARCHAR(255),
code_postal VARCHAR(5),
nombre_achat INT
)
Voici des explications sur les colonnes créées :
- id : identifiant unique qui est utilisé comme clé primaire et qui n’est pas nulle
- nom : nom de l’utilisateur dans une colonne de type VARCHAR avec un maximum de
100 caractères au maximum
- prenom : idem mais pour le prénom
- email : adresse email enregistré sous 255 caractères au maximum
- date_naissance : date de naissance enregistré au format AAAA-MM-JJ (exemple :
1973-11-17)

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 44
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

- pays : nom du pays de l’utilisateur sous 255 caractères au maximum


- ville : idem pour la ville
- code_postal : 5 caractères du code postal
- nombre_achat : nombre d’achat de cet utilisateur sur le site
3.3.3 La commande INSERT INTO
L’insertion de données dans une table s’effectue à l’aide de la commande INSERT INTO.
Cette commande permet au choix d’inclure une seule ligne à la base existante ou plusieurs
lignes d’un coup.
La syntaxe pour remplir une ligne avec cette méthode est la suivante :
INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...)
INSERT INTO table (nom_colonne_1, nom_colonne_2, ... VALUES ('valeur
1', 'valeur 2', ...)

INSERT INTO client (prenom, nom, ville, age)


VALUES
('Gabriel', 'Kitambala', 'Likasi, 24),
('Veronique', 'Kyabu', 'Kalemie', 36),
('Gustave', 'Fundi', 'Lubumbashi', 27),
('Judith', 'Kabonwa', ‘Moba', 58);

A noter : lorsque le champ à remplir est de type VARCHAR ou TEXT il faut indiquer le
texte entre guillemet simple. En revanche, lorsque la colonne est un numérique tel que INT ou
BIGINT il n’y a pas besoin d’utiliser de guillemet, il suffit juste d’indiquer le nombre.
3.3.4 La commande SELECT
L’utilisation la plus courante de SQL consiste à lire des données issues de la base de données.
Cela s’effectue grâce à la commande SELECT, qui retourne des enregistrements dans un
tableau de résultat.
Cette commande peut sélectionner une ou plusieurs colonnes d’une table.
L’utilisation basique de cette commande s’effectue de la manière suivante:
SELECT nom_du_champ FROM nom_du_tableau
SELECT ville FROM client
SELECT prenom, nom FROM client

Cette requête SQL va sélectionner (SELECT) le champ « nom_du_champ » provenant


(FROM) du tableau appelé « nom_du_tableau ».

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 45
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

SELECT * FROM client

Cette requête retourne automatiquement toutes les colonnes d’un tableau sans avoir à
connaître le nom de toutes les colonnes.
3.3.4.1 Fonctionnalités ou attributs du SELECT
Voici un petit aperçu des fonctionnalités possibles qui sont abordées sur le reste du site:
- Joindre un autre tableau aux résultats
- Filtrer pour ne sélectionner que certains enregistrements
- Classer les résultats
- Grouper les résultats pour faire uniquement des statistiques (note moyenne, prix le
plus élevé, etc.)
Voici une requête SELECT qui possède presque toutes les commandes possibles:
SELECT *
FROM table
WHERE condition
GROUP BY expression
HAVING condition
{UNION | INTERSECT | EXCEPT }
ORDER BY expression
LIMIT count
OFFSET start

A noter : cette requête imaginaire sert principale d’aide-mémoire pour savoir dans quel ordre
sont utilisé chacun des commandes au sein d’une requête SELECT.
3.3.4.2 WHERE
La commande WHERE dans une requête SQL permet d’extraire les lignes d’une base de
données qui respectent une condition. Cela permet d’obtenir uniquement les informations
désirées.
SELECT nom_colonnes FROM nom_table WHERE condition

Exemple : SELECT * FROM client WHERE ville = 'paris'


Opérateurs de comparaisons
Il existe plusieurs opérateurs de comparaisons. La liste ci-jointe présente quelques-uns des
opérateurs les plus couramment utilisés.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 46
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Opérateur Description
= Egale
<> Pas égale
!= Pas égale
> Supérieur à
< Inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à
IN Liste de plusieurs valeurs possibles SELECT nom
FROM agents
WHERE nom IN (
'Gabriel', 'Kitambala',
'Kizya' )
BETWEEN Valeur comprise dans un intervalle SELECT * Extrait toutes les
donnée (utile pour les nombres ou FROM table dates comprise entre
dates) WHERE dateEngag le 05 et le 15 avril
BETWEEN ‘2018-04-05' 2018
AND '2018-05-15'
LIKE Recherche en spécifiant le début, SELECT * Extrait les clients
milieu ou fin d'un mot. FROM client dont la ville commence
WHERE ville LIKE 'P%' par P
IS NULL Valeur est nulle
IS NOT NULL Valeur n'est pas nulle
And, Or pour combiner des conditions SELECT * FROM
produit
WHERE categorie =
'informatique' AND stock
< 20

3.3.4.3 GROUP BY
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et utiliser une
fonction de totaux sur un groupe de résultat.
Sur une table qui contient toutes les ventes d’un magasin, il est par exemple possible de liste
regrouper les ventes par clients identiques et d’obtenir le coût total des achats pour chaque
client.
SELECT colonne1, fonction(colonne2)
FROM table
GROUP BY colonne1

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 47
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

A noter : cette commande doit toujours s’utiliser après la commande WHERE et avant la
commande HAVING.
SELECT client, SUM(PrixTotal)
FROM achat
GROUP BY client

Utilisation d’autres fonctions de statistiques


Il existe plusieurs fonctions qui peuvent être utilisées pour manipuler plusieurs
enregistrements, il s’agit des fonctions d’agrégations statistiques, les principales sont les
suivantes :
§ AVG() pour calculer la moyenne d’un set de valeur. Permet de connaître le prix du
panier moyen pour de chaque client
§ COUNT() pour compter le nombre de lignes concernées. Permet de savoir combien
d’achats a été effectué par chaque client
§ MAX() pour récupérer la plus haute valeur. Pratique pour savoir l’achat le plus cher
§ MIN() pour récupérer la plus petite valeur. Utile par exemple pour connaître la date du
premier achat d’un client
§ SUM() pour calculer la somme de plusieurs lignes. Permet par exemple de connaître
le total de tous les achats d’un client
Ces petites fonctions se révèlent rapidement indispensable pour travailler sur des données.
3.3.4.4 SQL HAVING
La condition HAVING en SQL est presque similaire à WHERE à la seule différence que
HAVING permet de filtrer en utilisant des fonctions telles que SUM(), COUNT(), AVG(),
MIN() ou MAX().
L’utilisation de HAVING s’utilise de la manière suivante :
SELECT colonne1, SUM(colonne2)
FROM nom_table
GROUP BY colonne1
HAVING fonction(colonne2) operateur valeur

Cela permet donc de SÉLECTIONNER les colonnes DE la table « nom_table » en


GROUPANT les lignes qui ont des valeurs identiques sur la colonne « colonne1 » et que la
condition de HAVING soit respectée.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 48
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Important : HAVING est très souvent utilisé en même temps que GROUP BY bien que ce ne
soit pas obligatoire.
Exemple Si dans cette table on souhaite récupérer la liste des clients qui ont commandé plus
de 40$, toutes commandes confondues alors il est possible d’utiliser la requête suivante :
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
HAVING SUM(tarif) > 40

3.3.5 La commande ALTER TABLE


La commande ALTER TABLE en SQL permet de modifier une table existante. Il est ainsi
possible d’ajouter une colonne, d’en supprimer une ou de modifier une colonne existante, par
exemple pour changer le type.
3.3.5.1 Ajouter une colonne
L’ajout d’une colonne dans une table est relativement simple et peut s’effectuer à l’aide d’une
requête ressemblant à ceci:
ALTER TABLE nom_table
ADD nom_colonne type_donnees
Exemple : ALTER TABLE utilisateur ADD adresse_rue VARCHAR(255)
3.3.5.2 Supprimer une colonne
Une syntaxe permet également de supprimer une colonne pour une table. Il y a 2 manières
totalement équivalentes pour supprimer une colonne:
ALTER TABLE nom_table
DROP nom_colonne
Ou (le résultat sera le même)
ALTER TABLE nom_table
DROP COLUMN nom_colonne

3.3.5.3 Modifier une colonne


Pour modifier une colonne, comme par exemple changer le type d’une colonne, il y a
différentes syntaxes selon le SGBD.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 49
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

MySQL
ALTER TABLE nom_table
MODIFY nom_colonne type_donnees
PostgreSQL
ALTER TABLE nom_table
ALTER COLUMN nom_colonne TYPE type_donnees
Ici, le mot-clé « type_donnees » est à remplacer par un type de données tel que INT,
VARCHAR, TEXT, DATE …
3.3.5.4 Renommer une colonne
Pour renommer une colonne, il convient d’indiquer l’ancien nom de la colonne et le nouveau
nom de celle-ci.
MySQL
Pour MySQL, il faut également indiquer le type de la colonne.
ALTER TABLE nom_table
CHANGE colonne_ancien_nom colonne_nouveau_nom type_donnees
Ici « type_donnees » peut correspondre par exemple à INT, VARCHAR, TEXT, DATE …
PostgreSQL
Pour PostgreSQL la syntaxe est plus simple et ressemble à ceci (le type n’est pas demandé):
ALTER TABLE nom_table
RENAME COLUMN colonne_ancien_nom TO colonne_nouveau_nom

3.3.6 Jointure SQL


Les jointures en SQL permettent d’associer plusieurs tables dans une même requête pour
obtenir des résultats qui combinent les données de plusieurs tables de manière efficace.
3.3.6.1 Types de jointures
Il y a plusieurs méthodes pour associer 2 tables ensemble. Voici la liste des différentes
techniques qui sont utilisées :
3.3.6.1.1 INNER JOIN
Jointure interne pour retourner les enregistrements quand la condition
est vraie dans les 2 tables. C’est l’une des jointures les plus
communes.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 50
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

SELECT *
FROM A
INNER JOIN B ON A.key = B.key
3.3.6.1.2 CROSS JOIN :
Jointure croisée permettant de faire le produit cartésien de 2 tables.
En d’autres mots, permet de joindre chaque lignes d’une table avec
chaque ligne d’une seconde table. Attention, le nombre de résultats
est en général très élevé.
SELECT *
FROM A
LEFT JOIN B ON A.key = B.key

3.3.6.1.3 LEFT JOIN (ou LEFT OUTER JOIN) :


Jointure externe pour retourner tous les enregistrements de la table de
gauche (LEFT = gauche) même si la condition n’est pas vérifié dans l’autre table.
SELECT *
FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL
3.3.6.1.4 RIGHT JOIN (ou RIGHT OUTER JOIN) :
Jointure externe pour retourner tous les enregistrements de la table de droite (RIGHT = droite)
même si la condition n’est pas vérifié dans l’autre table.
SELECT *
FROM A
RIGHT JOIN B ON A.key = B.key
Jointure droite (RIGHT JOINT sans l’intersection A)
SELECT *
FROM A
RIGHT JOIN B ON A.key = B.key
WHERE B.key IS NULL

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 51
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

3.3.6.1.5 FULL JOIN (ou FULL OUTER JOIN) :


Jointure externe pour retourner les résultats quand la condition est vrai dans au moins une des
2 tables.
Union de 2 ensembles
SELECT *
FROM A
FULL JOIN B ON A.key = B.key
Jointure pleine (FULL JOINT sans intersection)
SELECT *
FROM A
FULL JOIN B ON A.key = B.key
WHERE A.key IS NULL
OR B.key IS NULL

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 52
Cours de Base de données destiné aux étudiants de Bac 2 Info ISP

Bibliographie
• Dominique Dionisi (2006), L’essentiel sur Merise, Eyrolles.
• Guézélou, P. (2006), Modélisation des données : Approche pour la conception des
bases des données, (http ://philippe.guezelou.free.fr/mcd /mcd.htm).
• Hernandez, M. J. & Viescas, J. L. (2001), Introduction aux requêtes SQL, Eyrolles.
• Jacques Sornet (2007), Informatique de gestion - Analyse et partage des bases de
données en 21 fiches, 2e édition, Dunod.
• Janet Valade (2007), PHP et MySQL pour les Nuls, First Interactive.
• Kauffman, J., Matsik, B. & Spencer, K. (2001), Maîtrisez SQL, (Wrox Press, Ed.).
CampusPress.
• Laurent AUDIBERT, Base de Données et Langage SQL, Villetaneuse, s.d
• Marre, D. (1996, January). Introduction aux systèmes de gestion de bases de données,
Support de cours.
• Petrucci, L. (2006), Base de données. Présentation projetée et travaux dirigés, IUT
GTR, Villetaneuse.

Bonne application dans vos entreprises personnelles que vous créerez.

Dispensé par Ir. Théophile KITAMBALA + 243 822 305 940 Page 53

Vous aimerez peut-être aussi