Title: Geti2101 : Systmes dInformation et Informatique
1Geti2101 Systèmes dInformation et Informatique
- Règles de traduction dun diagramme declasses
vers un diagramme relationnel - Requêtes SQL
2- 1. Règle1 présence de la cardinalité (?..1)
dun côté de lassociation - Chaque classe se transforme en une table
- Chaque attribut de classe se transforme en un
champs de table - Lidentifiant de la classe qui est associée à la
cardinalité (?..1) (ex Livre) devient le clé
étrangère de lautre classe (ex Exemplaire) - Contrainte dintégrité référentielle
- CléEtrangère ? CléPrimaire
- Ex Exemplaire.Code-Livre ? Livre.Code-Livre
3Règle1 - Exemple
- Quel est lauteur de lexemplaire dont le
NExemplaire est 30 ? - Quels sont les exemplaires (NExemplaire) du
livre dont le CodeLivre est 1 ? - Quel est lauteur de lexemplaire dont le
NExemplaire est 50 ? - ? pas de sens !!!
Contrainte dintégrité référentielle
Exemplaire.Code-Livre ? Livre.Code-Livre
4- 2. Règle2 présence de (?..N) des deux côtés de
lassociation - Chaque classe se transforme en une table
- Chaque attribut de classe se transforme en un
champs de table - Lassociation se transforme en une table. Cette
table a comme champs lidentifiant de chacune des
deux classes, plus déventuels autres attributs. -
-
- Emprunte.Code-Personne ? Personne.Code-Personne
- Emprunte.Code-Livre ? Livre.Code-Livre
52. Règle2 présence de (?..N) des deux côtés de
lassociation (idem sans la classe association)
T_Eleve.IdEleve ?
T_0.IdEleve T_AnneeEtude.IdAnneeEtude ?
T_0.IdAnneeEtude
6Règle2 - Exemple
Contraintes dintégrité référentielle
Emprunte.Code-Personne ? Personne.Code-Personne E
mprunte.Code-Livre ? Livre.Code-Livre
- Qui a emprunté le Happy baby book ?
- Quels sont les livres (titres) qui sont empruntés
par Stéphane Faulkner ? - Qui a emprunté le livre LaTEX ? ? pas de sens
- Quels sont les livres (titres) qui sont empruntés
par Pierre Dupont ? ? pas de sens
7- Règle3 présence dune généralisation
- Méthode 1
- Créer une table avec tous les attributs des
classes - Ajouter un attribut pour distinguer les types des
objets -
Professeur, Etudiant
8- Règle3 présence dune généralisation
- Méthode 2
- Créer une table pour chaque sous type, chaque
table se compose des attributs génériques et
dattributs spécifiques -
9- Règle3 présence dune généralisation
- Méthode 3
- Créer une table par classe et des associations
-
10Exercice
- Construire le modèle relationnel correspondant au
diagramme de classe suivant
11Exercice Solution
12Requêtes SQL
13Anatomie dune requête SQL
- SELECT ou liste de colonnes
- FROM nom de table
- WHERE prédicats
- Exemple
- SELECT Nom_Client, Prénom_Client
- FROM Client
- WHERE Titre M.
14Client
SELECT Nom_Client, Prénom_Client FROM
Client WHERE Titre M.
Output
15Client
Commande
SELECT Nom_Client, Prénom_Client FROM Client,
Commande WHERE (Id_Produit 32000) AND
(Client.Id_Client Commande.Id_Client)
Output
16Exercice la base de données ClientProduit
17- Quel est le prix et numéro produit dune TV
- Quels sont les clients (nom) qui habitent à
Bruxelles et Namur - Quels sont les clients (nom et adresse) qui ont
achetés de produits le 10/10/03 - Quels sont les clients qui nont pas fait dachat
en octobre. - Qui (nom et adresse) a acheté un ordi
- Quels sont les produits (nomProduit) achetés par
Kevin
5
11/11/03
5
6
13/11/03
2
Constitution
QtProduit
N_Commande
N_Produit
25
5
100
1
1
200
2
3
300
300
Hi Fi
400
400
CD
20
Contraintes dintégrité référentielle
Commande.N_Client ? Client.N_Client Constitution.
N_Commande ? Commande.N_Commande Constitution.N_Pr
oduit ? Produit.N_Produit
18Solution
- Quel est le prix et numéro produit TV
- SELECT Produit.Prix, Produit.N_Produit
- FROM Produit
- WHERE Produit.NomProduit "TV"
- Quels sont les clients (nom) qui habitent à
Bruxelles - et Namur
- SELECT Client.NomClient
- FROM Client
- WHERE Client.Adresse "Bruxelles" OR
- Client.Adresse "Namur"
- Ou
- SELECT Client.NomClient
- FROM Client
- WHERE Client.Adresse IN ("Bruxelles", "Namur")
19Solution
Quels sont les clients (nom et adresse) qui ont
achetés des produits le 10/10/03 SELECT
Client.NomClient, Client.Adresse FROM Client,
Commande WHERE (Client.N_Client
Commande.N_Client) And (Commande.DateCommande
"10/10/03") Quels sont les clients (nom et
adresse) qui nont pas fait dachat en
octobre SELECT Client.NomClient,
Client.Adresse FROM Client, Commande WHERE
(Client.N_Client Commande.N_Client) And
(Commande.DateCommande NOT LIKE "__/10/__")
20Solution
- Qui (nom et adresse) a acheté un ordi
- SELECT Client.NomClient, Client.Adresse
- FROM Client, Commande, Constitution, Produit
- WHERE (Client.N_Client Commande.N_Client) And
- (Commande.N_Commande Constitution.N_Commande)
And - (Constitution.N_Produit Produit.N_Produit)
And - (Produit.NomProduit "ordi")
- Quels sont les produits (nomProduit) achetés par
Kevin - SELECT Produit.NomProduit
- FROM Client, Commande, Constitution, Produit
- WHERE (Client.N_Client Commande.N_Client) And
- (Commande.N_Commande Constitution.N_Commande)
And - (Constitution.N_Produit Produit.N_Produit)
And - (Client.NomClient "Kevin")