TD Base de Données Avancées EPIcorrigé
TD Base de Données Avancées EPIcorrigé
TD Base de Données Avancées EPIcorrigé
Soit le modèle E/A suivant. On propose de créer une modélisation Relationnel-Objet ainsi
que ses possibilités d’implémentation sous Oracle.
1
Type Facture_type : (num:NUMBER, datef:DATE, lignes_facture:typLignesFacture,
REF_Client)
La table Facture de Facture_type(num clé primaire)
2. Réalisez l’implémentation SQL 3 sous Oracle
2
CREATE TABLE Facture of Facture_type (
PRIMARY KEY (num),
REF_Client references Client,
Check(REF_Client IS NOT NULL))
NESTED TABLE lignes_facture STORE AS nt_lignes_facture;
5. Insertion d’objets dans les tables : Insérez les lignes suivantes dans les tables RO
TABLE Client
NUM NOM ADRESSE DateNaiss
1 Abidi Dorsaf Bizerte 12/01/1998
2 Brini Sofien Ben Arous 29/07/2006
3
TABLE Produit
NUM DESIGNATION PRIX STOCK
1 PC P GAMER ASUS 7200.50 6
2 PC P GAMER MSI SWORD 3400.10 8
3 MANETTE PS4 210.30 12
4 CASQUE KONIX 75.90 23
TABLE Facture
NUM DATEF LIGNE_FACTURE REF_CLIENT
0000123 05/12/2022 REF_PRODUIT QTE 356746
2 1
3 2
0000124 06/12/2022 REF_PRODUIT QTE 356747
1 1
4 1
4
06/12/2022,
LignesFacture_type(
typLigneFacture((select REF(p) from produit p where p.num=1),1),
typLigneFacture((select REF(p) from produit p where p.num=4),1)
),
(select REF (cli) from client cli where cli.num=2);
6. Interrogation de données
a) Afficher la liste des numéros de factures existantes, avec le nom et l’age du client.
5
FROM THE(select f.lignes_facture from facture f WHERE f.num = SELF.num ) lf;
RETURN vQuantite;
END quantite;
END;
d) Exploiter la méthode quantiteT() afin d’afficher les numéros et noms des clients
ayant payé au moins une facture avec plus de 3 articles.