Académique Documents
Professionnel Documents
Culture Documents
Bases de données
CP SIGMA 2023/2024
2ème année
Système d'information (SI)
2
Système d’information
manuel
•Recueil des informations
•Délimiter le système.
Expression des Besoins •…
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
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
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
Œ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
Exemple :
Dans l'exemple du libraire, on a les relations
suivantes:
I. Méthode Merise
La construction du MCD
41
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
Opérations
Concerne
Id_op
Type
1:1
Date
montant
I. Méthode Merise
Exercice : MCD (gestion de commandes)
52
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
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
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:
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
Se transforme en:
I. Méthode Merise
Modèle logique des données
67
Cas particuliers
Quelques cas particuliers peuvent apparaitre.
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
Exemple :
Le MLD correspondant à l'exemple du libraire est le
suivant :
I. Méthode Merise
MCD>>MLD: A retenir
71
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
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
Syntaxe SQL :
❑SELECT [UNIQUE1] liste_attributs2 FROM Table ;
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
➢ SELECT * FROM Étudiants WHERE Age IN (19, 20, 21, 22, 23);
➢ SELECT * FROM Étudiants WHERE Age BETWEEN 19 AND 23;
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 :
89
II. Cours SQL
Produit Cartésien
90
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
91
91
II. Cours SQL
Jointures par requêtes imbriquées
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
Syntaxe
GROUP BY liste_attributs
HAVING condition avec fonction
Cette clause regroupe les résultats par valeur selon la condition
le partitionnement GROUP 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 ?
97
II. Cours SQL
Insertion
98
Syntaxe :
Pour insérer un tuple complètement spécifié :
INSERT INTO Table VALUES (val1,..., valn);
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.
Syntaxe :
UPDATE Table
SET attribut1 = expr1, ..., attributn = exprn
FROM ...
WHERE ...
100
II. Cours SQL
Mise à jour:
101
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.
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
104
II. Cours SQL
Modification de table
105
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;
106
II. Cours SQL
Base de données
107
Syntaxe :
CREATE DATABASE NomBdd;
Syntaxe :
DROP DATABASE NomBdd;
107
108
Merci ☺