Télécharger la présentation
Publié parGuarinot Thiery Modifié depuis plus de 10 années
1
Geti2101 : Systèmes d’Information et Informatique
Règles de traduction d’un diagramme declasses vers un diagramme relationnel Requêtes SQL
2
1. Règle1: présence de la cardinalité (?..1) d’un côté de l’association
Chaque classe se transforme en une table Chaque attribut de classe se transforme en un champs de table L’identifiant de la classe qui est associée à la cardinalité (?..1) (ex: Livre) devient le clé étrangère de l’autre classe (ex: Exemplaire) Contrainte d’intégrité référentielle: CléEtrangère CléPrimaire Ex: Exemplaire.Code-Livre Livre.Code-Livre
3
Règle1 - Exemple Quel est l’auteur de l’exemplaire dont le N°Exemplaire est 30 ? Quels sont les exemplaires (N°Exemplaire) du livre dont le CodeLivre est 1 ? Quel est l’auteur de l’exemplaire dont le N°Exemplaire est 50 ? pas de sens !!! Contrainte d’intégrité référentielle : Exemplaire.Code-Livre Livre.Code-Livre
4
2. Règle2: présence de (?..N) des deux côtés de l’association
Chaque classe se transforme en une table Chaque attribut de classe se transforme en un champs de table L’association se transforme en une table. Cette table a comme champs l’identifiant de chacune des deux classes, plus d’éventuels autres attributs. Emprunte.Code-Personne Personne.Code-Personne Emprunte.Code-Livre Livre.Code-Livre
5
2. Règle2: présence de (?..N) des deux côtés de l’association (idem sans la classe association)
T_Eleve.IdEleve T_0.IdEleve T_AnneeEtude.IdAnneeEtude T_0.IdAnneeEtude
6
Règle2 - Exemple Contraintes d’intégrité référentielle :
Emprunte.Code-Personne Personne.Code-Personne Emprunte.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 d’une 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 d’une généralisation
Méthode 2: Créer une table pour chaque sous type, chaque table se compose des attributs génériques et d’attributs spécifiques
9
Règle3: présence d’une généralisation
Méthode 3: Créer une table par classe et des associations
10
Exercice Construire le modèle relationnel correspondant au diagramme de classe suivant:
11
Exercice: Solution
12
Requêtes SQL
13
Anatomie d’une 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.’
14
SELECT Nom_Client, Prénom_Client FROM Client WHERE Titre = ‘M.’
Output
15
SELECT Nom_Client, Prénom_Client FROM Client, Commande
WHERE (Id_Produit = 32000) AND (Client.Id_Client = Commande.Id_Client) Output
16
Exercice : la base de données ClientProduit
17
Quel est le prix et numéro produit d’une TV
Client N_Client NomClient Adresse Tel 1 Michel Bruxelles 123456 2 David Namur 456298 3 Harold Lieget 876230 4 Kevin Bastogne 937402 5 Louis 384043 Quel est le prix et numéro produit d’une 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 n‘ont pas fait d’achat en octobre. Qui (nom et adresse) a acheté un ordi Quels sont les produits (nomProduit) achetés par Kevin Commande N_Commande DateCommande N_Client 1 12/09/03 2 16/09/03 3 01/10/03 4 10/10/03 5 11/11/03 5 6 13/11/03 2 Constitution QtProduit N_Commande N_Produit 25 5 100 1 1 200 50 4 400 1 100 20 2 200 Produit N_Produit NomProduit Prix Ordi 800 TV 500 2 3 300 300 Hi Fi 400 400 CD 20 Contraintes d’intégrité référentielle : Commande.N_Client Client.N_Client Constitution.N_Commande Commande.N_Commande Constitution.N_Produit Produit.N_Produit
18
Solution 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 WHERE Client.Adresse IN ("Bruxelles", "Namur");
19
Solution 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 n’ont pas fait d’achat en octobre (Commande.DateCommande NOT LIKE "__/10/__");
20
Solution 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 (Client.NomClient ="Kevin");
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.