Vous êtes sur la page 1sur 108

Introduction aux systèmes

d’informations et aux bases de


données

Bases de données

CP SIGMA 2023/2024
2ème année
Système d'information (SI)
2

 Un système d'information (SI) est un ensemble organisé de


ressources (matériels, logiciels, personnel, données et
procédures) qui permet de regrouper, de classifier, de traiter
et de diffuser de l'information sur un environnement donné.
 L'utilisation de moyens informatiques, électroniques et la
télécommunication permettent d'automatiser et de
dématérialiser les opérations telles que les procédures
d'entreprise surtout en matière logistique. Ils sont aujourd'hui
largement utilisés en lieu et place des moyens classiques tels
que les formulaires sur papier et le téléphone et cette
transformation est à l'origine de la notion de système
d´informatiques. http://esto.gi.free.fr/access/
Rapide introduction aux Bases de données (relationnelles)
Introduction
3

 Le système d'information est le véhicule de la communication


dans l'organisation. Sa structure est constituée de l'ensemble
des ressources (les hommes, le matériel, les logiciels)
organisées pour : collecter, stocker, traiter et communiquer les
informations. Le système d'information coordonne grâce à
l'information les activités de l'organisation et lui permet ainsi
d'atteindre ses objectifs.
 Cette quantité d'informations (données) stockée dans un
ordinateur s'appelle une base de données.
 Un logiciel permettant d'utiliser ces données est un système de
gestion de base de données (SGBD).
Introduction
SGBD:
4

 Différents logiciels existent;


 Un tableur (Excel) peut être considéré comme un SGBD.
 Nous allons utiliser dans notre cours le logiciel MySQL
comme SGBD; Ce logiciel permet une conception aisée
de bases de données de "petite" taille avec un nombre
restreint d'utilisateurs.
 Il est à noter que plusieurs autres SGBD plus
performants (mais également plus complexes) existent
par ailleurs. On peut citer notamment Oracle, SQL
Server, Paradox, MySQL, PostgreSQL parmi beaucoup
d'autres.
Introduction
SGBD:
5

 La plupart de ces systèmes sont basés (dont Access)


sur le modèle relationnel et fonctionnent sur les
même principes;
 Les informations sont stockées dans des tables qui
sont reliées entre elles par des relations.
L'interrogation de la base de données se fait à
l'aide de requêtes, ces requêtes étant écrites à
l'aide d'un langage commun à la plupart des SGBD:
le SQL (Structured Query Language).
Introduction
SGBD:
6

 Access a comme avantage par rapport à la


plupart de ses concurrents de permettre une
écriture en mode graphique des tables, de leurs
relations et de la plupart des requêtes.
 De plus, il intègre un système de création
d'applications claires et simples pour chaque base
de données.
Plan du cours
7

 Ce cours est composé de six parties :


 Cette introduction,
 Une partie consacrée à la méthode Merise, qui indique
comment concevoir une base de données,
 Une partie consacrée à la création de la base de
données dans le logiciel Access,
 Une partie consacrée aux différents types de requêtes,
 Et une dernière partie consacrée à la finalisation de la
base de données (notamment conception des
formulaires, des états et des menus) qui permet d'avoir
un produit fini, utilisable par un utilisateur n'ayant pas de
connaissances particulière sur les SGBD,
I. Méthode Merise
Principes généraux:
8

 La méthode Merise a été créée en France dans les


années 1970. Méthode d’Etude et de Réalisation Informatique pour les
Systèmes d’Entreprises.

 Cette méthode utilise le système dit d'entités-


relations.
 Un outil et une technique d'analyse permettant de
construire des schémas théoriques de
raisonnement sur des applications tournant avec
des bases de données dite relationnelles (comme
celles d'Access).
I. Méthode Merise
Principes généraux:
9

 A noter que nous ne présenterons ici qu'une partie


de la méthode Merise, puisque la méthode Merise
générale traite de l'intégralité de la conception de
la base de données :
 Elle ne s'intéresse pas uniquement de la partie
correspondant au stockage des données, mais
également à leur traitement.
Merise…cycle d’abstraction

Système d’information
manuel
•Recueil des informations
•Délimiter le système.
Expression des Besoins •…

•Construire les MCD et MCT


Modèle Conceptuel

•Construire les MOD et MOT


Modèle Organisationnel

•Construire (entre autres) les MLD,MPD …


Modèle Opérationnel

Système d’information
automatique 10
I. Méthode Merise
Les quartes phases de la méthode Merise:
11

1. La phase d'analyse :
Cette phase, qui ne sera pas étudié dans ce cours, est
une phase essentielle qui consiste à:
 étudier l'existant :
◼ y-a-t'il un système qui gère déjà tout ou partie de
l'information, qu'il s'agisse d'un logiciel ou d'un ensemble de
documents papiers ?
◼ Comment ces informations sont elles stockées?
◼ Quelles sont les informations stockées ?
◼ Que manque t-il ?
◼ Qu'est ce qui convient ou ne convient pas aux utilisateurs?
I. Méthode Merise
Les quartes phases de la méthode Merise:
12

 Interroger les futurs utilisateurs :


◼ Qu'attendent-ils du futur SGBD ?
◼ Quelles sont les opérations qu'ils désirent
automatiser ?
◼ Recueillir les informations existantes, étudier les
divers liens qui peuvent exister entre ces
informations, mettre en évidence les règles de
gestion employées, ...
I. Méthode Merise
Les quatres phases de la méthode Merise:
13

2. La phase conceptuelle :
Elle consiste à représenter l'organisation des
données de manière générale.
Elle aboutit sur la création du modèle conceptuel
des données (MCD) dans lequel les données sont
représentées sous forme d'entités liées entre elles
par des relations.
I. Méthode Merise
Les quartes phases de la méthode Merise:
14
I. Méthode Merise
Les quartes phases de la méthode Merise:
15

3. La phase logique ou organisationnelle :


Dans cette phase, la base de données sont
représentées sous une forme logique plus proche
de leur représentation réelle au sein du SGBD :
Les informations sont représentées uniquement sous
forme de tables au sein d'un modèle logique des
données (MLD).
I. Méthode Merise
Les quartes phases de la méthode Merise:
16
I. Méthode Merise
Les quartes phases de la méthode Merise:
17

4. La phase physique ou opérationnelle :


Elle consiste à construire réellement la base de
données au sein du SGBD (ici Access).
Cette partie ne sera pas décrite dans cette
section, mais dans les suivantes.
I. Méthode Merise
❑ A retenir :
18

 Les quatre phases de la méthode Merise :


 Analyse (étude de l'existant et enquête),
 Conceptuel (création du MCD),

 Logique (création du MLD),

 Physique (conception de la base de données dans


Access).
I. Méthode Merise
19

Modèle Conceptuel de données


 Après la phase d'analyse, nous pouvons commencer

à représenter les informations sous forme


conceptuelle.
 Le Modèle Conceptuel de Données (MCD) que nous

allons construire contient deux éléments principaux :


les entités et les relations.
I. Méthode Merise
Modèle Conceptuel de données
20

 Un type entité est un élément du problème.


 Elle est définie par un ensemble de propriétés.
Chacune des propriétés est l'un des éléments qui
caractérise l'entité.
 Il faut distinguer un type entité et une entité ou
occurrence de type entité (ou instance).
 Un type entité correspond au type général d'une
donnée (ex : le type "employé") alors qu'une
occurrence d'une entité est un représentant particulier
de ce type entité (l'employé "Jean Martin").
I. Méthode Merise
Modèle Conceptuel de données
21

 Un relation est un lien possible qui relie deux entités.


 Par exemple, si un employé peut être affecté à un
entrepôt, il y aura une relation (type association)
"affectation" entre le type entité "entrepôt" et
l'type entité"employé". Cela ne signifie pas
nécessairement qu'il y aura affectation pour chacun
des employé, juste qu'il est possible qu'un employé
soit affecté à un entrepôt.
 Une relation peut éventuellement être reliée à plus
de deux entités et peut avoir certaines propriétés.
I. Méthode Merise
Modèle Conceptuel de données
22

 Après avoir fait une analyse aussi complète que


possible du problème à informatiser, la
construction du MCD se fait en quatre étapes :
a. Repérage des entités,
b. Construction des entités, choix des propriétés,
c. Construction des relations,
d. Choix des cardinalités.
I. Méthode Merise
La construction du MCD
23

a. Repérage des entités:


 Une type entitéest un composant du problème : une
personne, une facture, un livre, ...
 C'est la représentation d'un objet matériel ou
immatériel pourvu d'une existence propre et
conforme aux choix de gestion de l'entreprise.
I. Méthode Merise
La construction du MCD
24

 Comme dit plus haut, ce que l'on considère comme


entité est un type général (ex : l'entité personne
représente toutes les personnes) à ne pas
confondre avec une occurrence (Jean Martin étant
une personne, on le considère comme une
occurrence de l'entité personne).
 Une entité doit avoir une existence
indépendamment de toute autre entité.
I. Méthode Merise
La construction du MCD
25

 Exemple : On considère le problème suivant :


 Un libraire gère des œuvres littéraires. Une œuvre
est une création littéraire.
 Une œuvre a au moins un auteur et est dans une
édition (un livre).
 Une édition possède un ISBN unique et a un unique
éditeur. Elle peut contenir plusieurs œuvres.
 On veut mémoriser pour chaque édition le nombre
d'exemplaires en stock et pour chaque exemplaire
son état.
I. Méthode Merise
La construction du MCD: Exemple
26

 Dans ce problème, les entités sont :


 L’entité "œuvre" : Une création littéraire, un récit…
 L’entité "auteur" : une personne créateur d'œuvre,

 L’entité "édition" : un livre contenant une ou plusieurs


œuvres littéraires,
 L’entité "éditeur" : la société qui va imprimer les livres,

 L’entité "exemplaire" : un exemplaire physique de livre.

➢ L'ISBN, par exemple, n'est pas une entité puisqu'il


s'agit d'un élément qui caractérise l'entité "édition".
I. Méthode Merise
La construction du MCD: Exemple
27

 Exemple Liste des œuvres

ISBN Titre Auteur Editeur Stocks

2.207.30089.7 Fondation 5 Denoël 10

2.221.09973.7 L'incident Jésus 2 Laffont 7

2.070.42167.8 Chrono-Minets 5 Gallimard 8

2.290.03567.X Frankenstein 1 J'ai Lu 12

2.070.36822.X 1984 3 Gallimard 5

Liste des auteurs


Code Nom Prénom
1 Shelley Mary W.
2 Herbert Franck
3 Orwell Georges
4 Bradbury Ray
5 Asimov Isaac
I. Méthode Merise
La construction du MCD
28

b. Construction des entités


 On commence par donner un nom à chacune des
entités. Il faut ensuite rechercher les propriétés de ces
entités.
 On devra garder à l'esprit les points suivants :
 toute propriété est élémentaire (elle n'est pas la
composition d'éventuelles propriétés plus petites),
 une propriété ne doit pas être "instable" ou "calculable" :
si une propriété peut être obtenue par calcul à partir
d'autres éléments qui vont apparaitre dans la base de
données (notamment d'autres propriétés), on ne doit pas la
considérer,
I. Méthode Merise
La construction du MCD
29

 toute entité doit posséder une propriété particulière


appelée sa clé (ou identifiant).
Une clé doit caractériser de manière unique chaque
occurrence de l'entité. Par exemple, le nom de famille
d'une personne ne peut pas être considéré comme une
clé d'une entité "personne" puisque deux personnes
peuvent avoir le même nom de famille. Le numéro de
sécurité sociale est par contre tout à fait acceptable. Il
vaut mieux éviter les identifiants trop longs (on
préférera un code de quelques chiffres à un intitulé
d'une vingtaine de lettres par exemples),
I. Méthode Merise
La construction du MCD
30

 siaucune des propriétés "naturelles" ne peut servir


de clé, on en rajoute une artificiellement (Par
exemple "CodeLivre" ou "IdAnimal").
 Chaque propriété ne doit dépendre que d'une
seule entité.
I. Méthode Merise
La construction du MCD
31

 Une entité se représente ensuite graphiquement


sous la forme d'une boite dans laquelle on indique
en titre le nom de l'entité suivi de toutes ses
propriétés. On indique d'une manière particulière
l'identifiant.
I. Méthode Merise
La construction du MCD
32

 Exemple :
 Dans l'exemple du libraire, on peut construire les
entités suivantes (les propriétés sont indiquées après
le nom de l'entité, l'identifiant est en gras) :
 œuvre : Idœuvre, titre
 Auteur : IdAuteur, nom, prénom

 édition : ISBN, titre, nb pages

 éditeur : IdEditeur, nom

 Exemplaire : IdExemplaire, état


I. Méthode Merise
La construction du MCD
33

 Notons que, dans le cas de l'édition, l'ISBN est un


identifiant tout à fait acceptable.
 Dans les autres cas, aucune des propriétés ne
convenant comme identifiant, il a fallu créer une
propriété particulière pour cet effet (Id...).
I. Méthode Merise
La construction du MCD
34

Œuvres
Auteurs
Idœuvre
Titre IdAuteur
Nom
Prénom

Editions
ISBN
Editeurs
Titre
Nb pages IdEditeur
Exemplaires
Nom
Id_livre
Etat
I. Méthode Merise
La construction du MCD
35

c. Construction des relations


 L'étape suivante consiste à énumérer toutes les
relations possibles entre entités.
 Si une relation a une chance d'apparaitre (et de
nous intéresser), alors on doit la considérer dans le
MCD. On parle également parfois d'association.
 Une relation se représente de la manière suivante :
I. Méthode Merise
La construction du MCD
36

 On notera les points suivants :


 Une relation est en général entre deux entités. Il est
possible d'avoir des relations entre plus que deux
entités.
 Par exemple, une relation Vente entre Acheteur,
Vendeur et Lieu pour une base de données de
transaction immobilière.
 Il est néanmoins souvent possible (et préférable!) de se
restreindre à des relations entre deux entités.
 Dans le cas ici, la relation Vente pourrait être
remplacée par une entité Acte de vente qui est en
relation avec l'acheteur, le vendeur et le lieu.
I. Méthode Merise
La construction du MCD
37

 Ilest tout à fait possible d'avoir plusieurs relations entre


deux entités.
 Il est également possible d'avoir une relation dite
réflexive, c'est-à-dire entre une entité et elle-même.
 Par exemple, on peut avoir une relation Responsable
entre une table employé et elle même.
◼ Dans ce cas, il convient tout de même de remarquer
que chacune des "pattes" de la relation a une
signification différente. Ici, l'une des "pattes"
signifiera est responsable de et l'autre signifiera a
comme responsable.
I. Méthode Merise
La construction du MCD
38

 Une relation peut avoir des propriétés.


Par exemple, si une relation Contient lie l'entité Facture
et l'entité Produit, elle possède certainement la
propriété "quantité" (une facture contient un produit x
en quantité y).
D'ailleurs, si une propriété dépend de plus d'une entité
(comme c'est le cas ici avec la quantité qui dépend à la
fois de la facture et du produit), c'est certainement
qu'elle dépend d'une relation, et non pas d'une entité.
I. Méthode Merise
La construction du MCD
39

 Ilfaut éviter les relations que l'on peut déduire d'autres


relations par transitivité.
Par exemple, dans une base de données gérant une
université, si on dispose d'entités étudiant, formation et
cours. On a les relations fait partie entre formation et
cours (un cours fait partie d'une formation) et
inscription entre étudiant et formation. Il est inutile
d'avoir en plus une relation inscription entre étudiant
et cours : tout étudiant inscrit à une formation est
systématiquement inscrit à tous les cours qui composent
la formation.
I. Méthode Merise
La construction du MCD
40

 Exemple :
Dans l'exemple du libraire, on a les relations
suivantes:
I. Méthode Merise
La construction du MCD
41

d. Choix des cardinalités


 Une fois les relations établies, il convient ensuite de
caractériser le nombre de fois ou chacune de ces
relations peut apparaitre réellement. Ceci se fait à
l'aide des cardinalités. Dans une relation classique
(i.e. entre deux entités), quatre cardinalités sont à
déterminer.
I. Méthode Merise
La construction du MCD
42

 minA est le nombre minimal de fois où une occurrence de l'entité A


participe à une relation du type considéré. Il s'agit en général de
0 ou 1.
 maxA est le nombre maximal de fois où une occurrence de l'entité
B participe à la relation. Il s'agit en général de 1 ou n (n pour
plusieurs fois, ou un nombre quelconque de fois).
 minB et maxB fonctionnent de la même manière, mais en
considérant l'entité B.
 Notons qu'il est souvent difficile de choisir entre une cardinalité
de type 0: n et une cardinalité de type 1: n. Il est important de
noter que ce choix a souvent peu d'importance.
I. Méthode Merise
La construction du MCD
43

 Exemple :
 Dans l'exemple du libraire, considérons la relation édite
qui existe entre les entités éditeur et édition.
 Ainsi, dans l'exemple du libraire, une édition (un livre) a
toujours un et un seul éditeur (soit un minimum de un
éditeur, et un maximum de un éditeur).
 Un éditeur par contre peut éditer au minimum une
édition et au maximum plusieurs éditions (un nombre
quelconque de fois).
I. Méthode Merise
La construction du MCD
44

 Ce qui nous donne :

 Le MCD complet est donc :


I. Méthode Merise
La construction du MCD
45

e. Cas particuliers et pièges :


 Quelques points particuliers sont à garder à l'esprit
lors de la réalisation d'un MCD.
 Un identifiant est obligatoire pour chaque entité.

 Il ne doit pas y avoir de redondance


d'informations: Une information quelconque ne doit
pas être représentée plus d'une fois dans le MCD.
I. Méthode Merise
La construction du MCD
46

 Evitez autant que possible les relations entre plus


de deux entités. Souvent, il est possible de
remplacer la relation par une entité.
 Restez dans la mesure du possible avec des
cardinalités de valeurs 0, 1 ou n. Il est de toute
manière souvent possible de se ramener à ce cas
dans les rares cas où des cardinalités d'un autre
type semblent plus naturelles. En pratique, il peut y
avoir d’autre valeurs, mais c’est très rare (exemple
du tiercé : un pari concerne exactement 3 chevaux
cardinalité 3:3)
I. Méthode Merise
47

 Dans l'idéal, il faut trouver un bon compromis entre niveau


de détail et "taille" de la base de données.
Il est toujours possible de multiplier les entités, mais il vaut
mieux le faire que si cela a vraiment du sens et un intérêt
dans le problème.
Par exemple, si on a une entité personne, on peut considérer
l'adresse comme une entité séparée (reliée à personne par
une relation "habite à") ou comme une propriété de la
personne (ce qui est fait usuellement). En règle générale, il
est plus économique de définir l'adresse comme une
propriété, mais dans un cas ou il est courant que des
personnes habitent au même endroit, la règle de non-
redondance incite plutôt à utiliser une nouvelle entité
I. Méthode Merise
La construction du MCD: A retenir!
48

 La méthode générale de construction du MCD :


 Recherche des entités,
 Recherche des propriétés (dont la clé de chaque
entité),
 Recherche des relations entre entités,

 Recherche des cardinalités (0:1, 1:1, 0: n ou 1:n ?)


I. Méthode Merise
Exercice : réalisation de MCD (Banque)
49

 Une banque désire posséder un SGBD pour


suivre ses clients. Elle désire ainsi stocker les
coordonnées de chaque client (nom, prénom adresse),
et les comptes dont elle dispose ainsi que leur solde
(sachant par ailleurs que certains compte ont plusieurs
bénéficiaires). On stockera également les opérations
relatives à ces comptes (retrait et dépôt, avec leur
date et le montant).
I. Méthode Merise
Exercice : réalisation de MCD
50

 Une banque désire posséder un SGBD pour


suivre ses clients. Elle désire ainsi stocker les
coordonnées de chaque client (nom, prénom adresse),
et les comptes dont elle dispose ainsi que leur solde
(sachant par ailleurs que certains compte ont plusieurs
bénéficiaires). On stockera également les opérations
relatives à ces comptes (retrait et dépôt, avec leur
date et le montant).
I. Méthode Merise
Exercice : réalisation de MCD
51

1:n 1:n 0:n


 bénéficie Comptes
Clients
NoClient Id_Cpt
Nom
Solde
Prénom
Adresse

Opérations
Concerne
Id_op

Type
1:1
Date

montant
I. Méthode Merise
Exercice : MCD (gestion de commandes)
52

 Les règles de gestion :


 Le magasin vend des produits a des clients.

 Les produits possèdent une référence (un code), un libelle et un prix


unitaire.
 Les clients ont une identité (nom, prénom, adresse...).

 Les clients passent des commandes de produits. On mémorise la date


de la commande.
 Pour chaque commande, le client précise une adresse de livraison.

 La commande concerne un certain nombre de produits, en une quantité


spécifiée pour chaque produit.
I. Méthode Merise
Exercice : MCD (gestion de commandes)
53
I. Méthode Merise
Exercice : MCD (agence immobilière)
54

 Les règles de gestion :


 Une agence de location de maisons et d’appartements désire gérer sa
liste de logements. Elle voudrait en effet connaître l’implantation de
chaque logement (nom de la commune et du quartier) ainsi que les
personnes qui les occupent (les signataires uniquement).
 Le loyer dépend d’un logement, mais en fonction de son type (maison,
studio, T1, T2...) l’agence facturera toujours en plus du loyer la même
somme forfaitaire à ses clients. Par exemple, le prix d’un studio sera
toujours égal au prix du loyer + 30 DH de charges forfaitaires par
mois.
 Pour chaque logement, on veut disposer également de l’adresse, de la
superficie ainsi que du loyer.
 Quant aux individus qui occupent les logements (les signataires du
contrat uniquement), on se contentera de leurs noms, prénoms, date de
naissance et numéro de téléphone.
I. Méthode Merise
Exercice : MCD (gestion de commandes)
55

 Pour chaque commune, on désire connaître le nombre d’habitants ainsi


que la distance séparant la commune de l’agence.
 L’agence désire gérer l’historique de l’occupation des logements par les
individus. On considèrera de plus qu’un individu peut être signataire de
plusieurs contrat de location.
 On précise aussi qu’un logement peut faire l’objet de plusieurs locations
disjointes dans le temps.
 L’unité géographique retenue pour la gestion des logements est le
quartier et on considère que chaque commune possède au moins un
quartier.
I. Méthode Merise
Exercice : MCD (gestion de commandes)
56

Individus
1,N
Communes 1,N
Effectuer
Id commune
1,1 Nom commune
N°identité Distance agence
Nom Nombre d'habitants
Prénom Locations Situer Dan
DateNaissance 1,1
N°téléphone N°Location Concerner
DateDébut
DateFin 1,1
0,N
Quartiers
Logements
1,1 N° logement Id quartier
TypeLogements Adresse Nom quartier
Superficie
Type logement Correspondre
Loyer
Charges forfaitaires

1,1 0,N
1,N Appartenir
I. Méthode Merise
MCD>>> MLD
57

 L'étape de transformation du MCD en MLD est


assez simple et passe par trois étapes :
 Transformation des entités en tables,
 Transformation des relations du MCD,

 Suppression des tables inutiles.


I. Méthode Merise
Modèle logique des données
58

a. Construction des tables


 La première étape consiste à transformer toutes les
entités du MCD en tables du MLD.
 Cette transformation est directe : il suffit de recopier les
entités. Il s'agit essentiellement d'un changement de
vocabulaire :
 une entité devient une table,
 une propriété devient un champ,
 un identifiant devient une clé primaire.
 A noter toutefois qu'il est essentiel qu'il n'y ait pas deux
tables qui aient le même nom.
I. Méthode Merise
Modèle logique des données
59

 Exemple:
 la première partie de la construction du MLD du
libraire est directe. Il suffit de recopier les entités.
I. Méthode Merise
Modèle logique des données
60

b. Transformation des relations en liens


Pour les associations. Dépend des cardinalités. Deux
grand cas possibles :
 Relation 1:1 ?:?

la relation est matérialisée par l’ajout d’une clé étrangère

 Relation ?:n ?:n

la relation donne lieu à la création d’une table


I. Méthode Merise
Modèle logique des données
61

Premier cas:
 Dans le cas d'une relation ou l'une des branches a une
cardinalité de 1:1 ou 0:1, la transformation de la
relation se fait de la manière suivante :
 On ramène dans la table correspondant à l'entité "du côté
du 1:1" (ou du 0:1) la clé primaire de l'autre table ainsi que
toutes les éventuelles propriétés de la relations.
 On lie la clé primaire ainsi importée avec la clé primaire de
la deuxième table.
 Si la relation contenait des propriétés, celle-ci se retrouve
également importée du côté du 1:1
I. Méthode Merise
Modèle logique des données
62

 Se transforme en:

 A noter que la clé importée (ici IdB qui se retrouve dans


table A) ne devient pas une clé de la table : c'est une
propriété comme une autre. Notons aussi que le lien se
fait entre champs (on relie IdA à IdB) et non pas, comme
dans le MCD, entre les tables.
I. Méthode Merise
Modèle logique des données
63


EntitéA EntitéB
0:n relation 1:1
IdA IdB
propriétéR
PropriétéA1 propriétéB1

devient
TableA
TableB
PK_IdA PK_IdB
Champ A1 Ch_propriété B1
FK IdA
Ch_proriété R
I. Méthode Merise
Modèle logique des données
64

Deuxième cas
 Dans tous les autres cas, la relation du MCD se

transforme en une table du MLD :


 On crée une nouvelle table correspondant à la relation.
Cette table contient toutes les éventuelles propriétés de
la relation.

 On intègre à cette table les clés primaires des entités


impliquées dans la relation.
I. Méthode Merise
Modèle logique des données
65

 Onrelie les clés primaires des tables avec les clés


importées dans la nouvelle table.

 On choisit enfin la ou les clés primaires de la


nouvelle table. L'idée générale est que chaque
occurrence de cette entité doit pouvoir être
identifiée de manière unique par ses clés primaires.
I. Méthode Merise
Modèle logique des données
66

 Cela revient en général à choisir comme clés


primaires l'ensemble de clés importées des autres
tables.

 Se transforme en:
I. Méthode Merise
Modèle logique des données
67

Cas particuliers
 Quelques cas particuliers peuvent apparaitre.

 Si la relation est de type 1:1 - 1:1, on fusionne les


deux entités en une. Ce type de relation rare est
souvent dû à un problème dans la conception du
MCD.
 Si la relation est de type 0:1 - 1:1, on traite la
relation comme une relation de type 1:1 ?:?(en
ramenant la clé primaire du côté du 1:1)
I. Méthode Merise
Modèle logique des données
68

Cas particuliers
 Les relations réflexives (entre une entité et elle-
même) se traitent comme les autres relations.
 les relations ternaires (entre trois entités, ou plus), se
traitent comme d'habitude.
Si l'une des branches a une cardinalité de type 1:1,
on ramène les clés primaires des autres entités et les
propriétés de la relation dans l'entité "du côté du
1:1".
Si ce n'est pas le cas, la relation se transforme en
table.
I. Méthode Merise
Modèle logique des données
69

c. Suppression des tables inutiles


 La dernière étape consiste simplement à supprimer
les tables inutiles.
 En général (mais pas toujours), une table qui ne
contient qu'un seul champ (sa clé) est inutile : elle ne
nous apporte aucune information.
 L'exemple le plus classique est une entité de type
"date".
I. Méthode Merise
Modèle logique des données
70

 Exemple :
 Le MLD correspondant à l'exemple du libraire est le
suivant :
I. Méthode Merise
MCD>>MLD: A retenir
71

 La méthode de transformation MCD-MLD :


 les entités sont transformées en tables (sans modification)
 les relations sont transformées en fonction de leurs
cardinalités
◼ pour une relation de type 1:1 - ?:? entre une entité A et une
entité B se traduit par une importation de la clé primaire de
l'entité B dans la table de A, et on ajoute un lien entre les
deux clés,
◼ une relation autre (sans 1:1 - ?:?) se transforme en
table dans laquelle on retrouve les clés primaires de
A et B.
 les tables inutiles sont supprimées : il s'agit essentiellement des
tables à un seul champ (leur clé).
I. Méthode Merise
MCD>>MLD: Quelques cas particuliers
72

 Relation binaire (0,1)-(1,1):


 On duplique la clé de la table basée sur l'objet à cardinalité (0,1) dans la table
basée sur l'objet à cardinalité (1,1).
I. Méthode Merise
MCD>>MLD: Quelques cas particuliers
73

 Plusieurs relations entre 2 objets


 Les règles générales s'appliquent.
I. Méthode Merise
MCD>>MLD: Quelques cas particuliers
74

 Relation binaire (0,1)-(0,1):


 On duplique la clé d'une des tables dans l'autre. Lorsque la relation contient
elle-même des propriétés, celles-ci deviennent également attributs de la table
dans laquelle a été ajoutée la clé étrangère.
I. Méthode Merise
MCD>>MLD: Quelques cas particuliers
75

 Relations réflexives:
 Nous appliquons les règles générales avec la seule différence que la relation
est 2 fois reliée au même objet.
I. Méthode Merise
MCD>>MLD: Quelques cas particuliers
76

 Relations réflexives:
 Nous appliquons les règles générales avec la seule différence que la relation
est 2 fois reliée au même objet.
I. Méthode Merise
MCD>>MLD: Exercices
77

 Exercice «Gestion d'école»


◼ Transformez le MCD suivant, qui représente «la gestion d'une école» en un MLD
en respectant toutes les règles du passage MCD à MLD.
I. Méthode Merise
MCD>>MLD: Exercices
78
I. Méthode Merise
MCD>>MLD: Exercices
79


I. Méthode Merise
MCD>>MLD: Exercices
80


I. Méthode Merise
MCD>>MLD: Exercices
81 81
1,N
1,N

Id commune
N°identité Effectuer Nom commune
1,1
Nom Distance agence
Prénom Nombre d'habitants
DateNaissance Situer Dans
N°téléphone 1,1
Concerner
N°Location
1,1
DateDébut 0,N
DateFin

Id quartier
1,1 N° logement Nom quartier
Adresse
Superficie
Type logement Correspondre
Loyer
Charges forfaitaires

1,1 0,N
1,N Appartenir
I. Méthode Merise
MCD>>MLD: Exercices


Résumé
83

 La méthode Merise, comprend 4 niveaux avec


chacun un modèle référent :
II. Cours SQL
Introduction au SQL
84

 Requêtes de consultation de tables


 Projection, Sélection, Jointure
 Tri, Agrégation, Partitionnement

 Requêtes de Modification de tables


 Ajout
 Suppression

 Manipulation de tables, de vues et de bases de


données
II. Cours SQL
Projection
85

Syntaxe SQL :
❑SELECT [UNIQUE1] liste_attributs2 FROM Table ;

❑1 Permet d'éliminer les doublons (on trouvera aussi DISTINCT).


❑2 On peut mettre une étoile * pour demander tous les attributs.
❑ On peut renommer un attribut en ajoutant AS NomAttribut
II. Cours SQL
Projection
86

❑ Soit la Table Étudiants(#num, nom, prénom, âge, ville,


CodePostal).
▪ Afficher toute la table Étudiant.

• SELECT * FROM Étudiants;

▪ Donner les noms, les prénoms et les âges de tous les


étudiants.
• SELECT nom, prénom, âge FROM Étudiants;
▪ Donner les numéros des étudiants dans une colonne
nommée Numéro.

• SELECT #num AS Numéro FROM Étudiants;


86
II. Cours SQL
Sélection
87

Syntaxe SQL :
SELECT * FROM table WHERE condition;

La condition peut formée sur des noms d'attributs ou des constantes avec
 des opérateurs de comparaison : =, >, <, <=, >=, <>1

 des opérateurs logiques : AND, OR, NOT

 des opérateurs : IN, BETWEEN+AND, LIKE, EXISTS, IS

 _ qui remplace un caractère et % qui remplace une chaîne de caractères

1 La différence est parfois notée !=


II. Cours SQL
Sélection
88

❑ Sur la table Étudiants(#Num, Nom, Prénom, Age, Ville, CodePostal)

❑ Quels sont tous les étudiants âgés de 20 ans ou plus ?

➢SELECT * FROM Étudiants WHERE (Age >= 20);

❑Quels sont tous les étudiants âgés de 19 à 23 ans ?

➢ SELECT * FROM Étudiants WHERE Age IN (19, 20, 21, 22, 23);
➢ SELECT * FROM Étudiants WHERE Age BETWEEN 19 AND 23;

❑ Quels sont tous les étudiants habitant dans le département 60?

➢ SELECT * FROM Étudiant WHERE CodePostal LIKE ‘60%' ;

Quels sont tous les étudiants dont la ville est inconnue/connue ?

➢ SELECT * FROM Étudiants WHERE Ville IS NULL ;


➢ SELECT * FROM Étudiants WHERE Ville IS NOT NULL ;

88
II. Cours SQL
Produit Cartésien
89

Syntaxe SQL :
SELECT * FROM table1 [Alias1], ..., tablen [Aliasn];

Syntaxe SQL :
SELECT * FROM table1 [Alias1], ..., tablen [Aliasn] WHERE condition;

Autre Syntaxe :

SELECT * FROM table1 INNER JOIN table2 ON condition;

89
II. Cours SQL
Produit Cartésien
90

Soient les tables :


• Produit (#prod, nomProd, fournisseur, pu)
• DétailCommande (#cmd, #prod, pu, qte, remise)
Quels sont les numéros de commande correspondant à l'achat d'une table ?

SELECT DétailCommande.#num FROM Produit, DétailCommande WHERE


Produit.#prod =DétailCommande.#prod AND nomProd LIKE "%table;

Même requête, mais avec des alias pour les noms de relation :

SELECT dc.#num
FROM Produit p, DétailCommande dc
WHERE p.#prod = dc.#prod
AND nomProd LIKE "%table%";
90

90
II. Cours SQL
Jointures par requêtes imbriquées
91

Une jointure peut aussi être effectuée à l'aide d'une sous-requête.


SELECT *
FROM Stock
WHERE #prod IN ( SELECT #prod
FROM Produit)
Principe : Le mot-clef "IN" permet ici de sélectionner les tuples #prod
appartenant à la sous-requête.
 La sous-requête ne doit retourner qu'une colonne !
 Les tables de sous-requêtes ne sont pas visibles depuis l'extérieur

91

91
II. Cours SQL
Jointures par requêtes imbriquées
92

A partir des relations suivantes : Produit(#prod, libellé, pu)


Stock(#prod, #dép, qté)
Dépôt(#dép, adr, volume)
Quels sont les produits qui sont en rupture de stock et l’adresse du dépôt:

SELECT p.#prod, p.libellé, d.#dép, d.Adr


FROM Produit p, Dépôt d, Stock s
WHERE p.#prod = s.#prod
AND s.#dép = d.#dép
AND s.qte <= 0 92

92
II. Cours SQL
Tri
93

Syntaxe :
Cette clause se place derrière la clause WHERE
ORDER BY attribut [ordre] [, attribut [ordre] ...]
On peut préciser un ordre croissant ASC ou décroissant DESC.

Exemple
Trier Stock par numéro de produit croissant et par quantité décroissante
SELECT *
FROM Stock
WHERE qte > 0
ORDER BY #prod ASC, qte DESC
93

93
II. Cours SQL
Agrégation des résultats
94

Il est possible d'utiliser des fonctions f d'agrégation dans le résultat d'une


sélection.
Syntaxe :
SELECT f ( [ ALL | DISTINCT ] expression)
FROM ...
où f peut être COUNT nombre de tuples
SUM somme des valeurs d'une colonne
AVG moyenne des valeurs d'une colonne
MAX maximum des valeurs d'une colonne
MIN minimum des valeurs d'une colonne
Pour COUNT, on peut aussi utiliser COUNT(*) 94
Seul COUNT prend en compte les valeurs à NULL. 94
II. Cours SQL
Partitionnement des résultats:
95

Syntaxe
GROUP BY liste_attributs
HAVING condition avec fonction
Cette clause regroupe les résultats par valeur selon la condition

Dans l'ordre, on effectue


 la sélection SELECT

 le partitionnement GROUP BY

 on retient les partitions intéressantes HAVING

 on trie avec ORDER BY.

95
II. Cours SQL
Partitionnement des résultats:
96

Résultats
 (de Pierre)
Quelle est la note moyenne pour chaque coefficient
Matière Coef Note
?
SELECT coef, Avg(note) as Coef Moyenne
Maths 4 15
Moyenne 1 11
Sc Nat 3 9 FROM Résultats 2 12
Sc Phy 3 12 GROUP BY coef; 3 10.5
4 15
Français 2 13
Quels sont les coefficients auxquels participe une
Sc Hum 2 11 seule matière ?

Anglais 1 10 SELECT coef


Coef
FROM Résultats GROUP BY 4
Sport 1 12
coef
HAVING count(*)=1;
96
II. Cours SQL
Plan
97

 Requêtes de consultation de tables


 Projection, Sélection, Jointure
 Tri, Agrégation, Partitionnement

 Requêtes de Modification de tables


 Ajout
 Suppression

 Manipulation de tables, de vues et de bases de données

97
II. Cours SQL
Insertion
98

Syntaxe :
Pour insérer un tuple complètement spécifié :
INSERT INTO Table VALUES (val1,..., valn);

Pour insérer un tuple incomplètement spécifié :


INSERT INTO Table (liste_attributs)VALUES (val1,..., valn);

On peut insérer un tuple à partir d'une relation ayant le même schéma.


INSERT INTO Table
SELECT *
FROM ...

98
II. Cours SQL
Insertion exemple
99

Sur les relations Étudiants (#Num, Nom, Prénom, Age, Ville, CodePostal)
ClubThéâtre(#Num, Nom, Prénom)

Ajouter l'étudiant Sylvain HEBON, 21 ans, habitant Nancy avec le numéro 634.

INSERT INTO Étudiants


VALUES (634, 'HEBON', 'Sylvain', 'Nancy', '54000', 21);
Ajouter tous les étudiants Vosgiens dans le Club de Théâtre
INSERT INTO ClubThéâtre
SELECT #Num, Nom, Prénom
FROM Étudiants
WHERE CodePostal LIKE '88%';
99
II. Cours SQL
Mise à jour
100

Syntaxe :
UPDATE Table
SET attribut1 = expr1, ..., attributn = exprn
FROM ...
WHERE ...

Les expressions peuvent être


une constante
une valeur NULL
une clause SELECT

100
II. Cours SQL
Mise à jour:
101

Sur la relation Étudiants (#Num, Nom, Prénom, Age, Ville, CodePostal)

Augmenter d'un an l'age de tous les étudiants.


UPDATE Étudiants
SET Age = Age + 1;
On a appris que tous les étudiants de Bar-le-Duc ont déménagé à Nancy.

UPDATE Étudiants
SET Ville = 'Nancy', CodePostal = '54000'
WHERE Ville = 'Bar-Le-Duc';
II. Cours SQL
Suppression
102

 Syntaxe :
DELETE FROM Table
[WHERE condition]
Remarque :
Si on supprime tous les tuples d'une relation,
! le schéma de relation existe toujours !
Exemple :
Retirer de la liste tous les étudiants de plus de 22 ans.

DELETE FROM Étudiants


WHERE Age > 22;

102
II. Cours SQL
Création de table
103


Syntaxe :
CREATE TABLE nomTable (
Attribut Domaine [Contraintes ...],
...
Attribut Domaine [Contraintes ...],
[Contraintes ... ] )

103
II. Cours SQL
Création de table
104

 Créer la table Stock1(Pièce, NbP, Fournisseur)

CREATE TABLE Stock1 (


Pièce VARCHAR(20) NOT NULL,
NbP INT,
Fournisseur CHAR(20) NOT NULL,
PRIMARY KEY (Pièce, Fournisseur)
)

104
II. Cours SQL
Modification de table
105

 Modification de Schéma de la Table (Syntaxe variable !)

Exemple pour Oracle v6 :


ALTER TABLE Table
[ADD (définition_attribut | Contrainte), [définition_attribut |
Contrainte] ... )]
[MODIFY (définition_attribut [, définition_attribut ]... )]
[DROP CONSTRAINT contrainte]

Suppression complète d'une relation (et de son schéma) :

DROP TABLE Table;

Attention, toutes les données de la table sont perdues


!

105
II. Cours SQL
Vue
106

 Une vue est une Table non stockée dans la base de données mais
recalculée à chaque utilisation.
Syntaxe :
CREATE VIEW NomVue AS
Requête_de_définition1

Exemple :
CREATE VIEW Personnes_Âgées AS
SELECT *
FROM Personnes
WHERE Age > 70;

La suppression s'effectue avec DROP VIEW NomVue;


1 La requête ne doit pas contenir de tris (ORDER BY).

106
II. Cours SQL
Base de données
107

 Création d'une base de données

Syntaxe :
CREATE DATABASE NomBdd;

Destruction totale d'une base de données

Syntaxe :
DROP DATABASE NomBdd;

107
108

Merci ☺

Vous aimerez peut-être aussi