Вы находитесь на странице: 1из 17

www.oracle.

com/academy

Solution du projet de conception de base de données


Base de données du magasin Oracle Baseball League

Scénario du projet :

Vous êtes une petite entreprise de conseil spécialisée dans le développement de bases de données. Vous venez
d'obtenir un contrat pour développer un modèle de données pour un système d'application de base de
données pour un petit magasin de détail appelé Oracle Baseball League.

Le magasin Oracle Baseball League (OBL) vend du matériel de baseball à toute la communauté locale. OBL
possède deux types de client : ceux qui viennent acheter des articles comme des ballons, des crampons, des
gants, des maillots, des t-shirts imprimés et des shorts d'une part, et ceux qui représentent une équipe et qui
achètent des uniformes et des équipements pour le compte de leur équipe d'autre part.

Les clients, qu'ils viennent pour leur compte personnel ou pour celui d'une équipe, peuvent acheter tous les
articles de la liste d'inventaire, mais les équipes bénéficient d'une réduction sur le prix catalogue en fonction du
nombre de joueurs. Lorsqu'un client passe une commande, nous enregistrons les articles commandés dans
notre base de données.

OBL dispose d'une équipe de trois commerciaux qui ne s'occupent officiellement que des équipes, mais qui
gèrent également parfois les réclamations de clients individuels.

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
2

Section 4 - Leçon 2 - Exercice : Oracle SQL Developer Data Modeler

Générer le modèle relationnel à partir du modèle de données logique (S4L2 Objectif 3)


Partie 1 :

Dans cet exercice, vous allez transformer en modèle relationnel le modèle de données logique complété que
vous avez créé à l'aide d'Oracle SQL Data Modeler. Le modèle relationnel constitue la base de la conception de
base de données physique.

Créez un modèle relationnel dans Oracle SQL Data Modeler en procédant comme suit :
1. Mettez à jour les attributs de vos entités pour y inclure le type et la taille des données.
a. Double-cliquez sur l'entité pour accéder à ses propriétés.
b. Choisissez les attributs dans le menu de gauche.
c. Sélectionnez chaque attribut et choisissez Logical (Logique) dans la fenêtre des propriétés pour
activer le menu déroulant des types de données.
d. Choisissez le type de données approprié (VARCHAR pour du texte, il n'existe pas d'option
VARCHAR2).
e. Indiquez la taille dans la zone dédiée.
f. Vous pouvez renommer tous les attributs qui ont été intégrés en tant que clés étrangères dans
le modèle relationnel en double-cliquant dessus et en définissant une abréviation préférée.
g. Tous les attributs étant des noms qui utilisent des mots-clés doivent avoir une abréviation
préférée.
h. Vous ne pouvez pas affecter de clés uniques à ce stade.
i. Pour toutes les entités de supertype, définissez Subtree Generation (Génération de sous-arbre)
sur Single Table (Table unique) dans la propriété Subtype (Sous-type).

2. Cliquez sur l'icône Engineer to Relational Model (Régénérer en modèle relationnel).

3. Assurez-vous que toutes les valeurs sont conformes à ce qui était attendu en comparant les
informations logiques et relationnelles dans l'arborescence. Corrigez les valeurs si nécessaire.

4. Dans l'onglet General Options (Options générales), cliquez sur Engineer co-ordinates (Générer les
coordonnées) pour verrouiller le diagramme et éviter les chevauchements.

5. Lorsque vous êtes satisfait, cliquez sur Engineer (Générer).

6. Développez le nœud Relational Models (Modèles relationnels) dans le navigateur d'objet pour
visualiser les objets créés.

7. Déplacez les objets de nœud pour vous assurer que toutes les informations sont visibles sur votre
diagramme.

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
3

8. Vérifiez que le résultat correspond au plan de votre table et enregistrez votre travail.

Instructions de la tâche
Utilisez le document de mise en correspondance de table complété créé lors d'un exercice précédent pour
affecter les types et les tailles de données.

Table Name Table Short Name


customers ctr
Key Type Optionality Column Name Data Type Size
pk * ctr_number VARCHAR2 6
uk * email VARCHAR2 50
* first_name VARCHAR2 20
* last_name VARCHAR2 30
* phone_number VARCHAR2 11
* current_balance NUMBER 6,2
o loyalty_card_number VARCHAR2 6
fk1 o tem_id VARCHAR2 4
fk2 o sre_id VARCHAR2 4

Table Name Table Short Name


customers_addresses cas
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 8
* address_line_1 VARCHAR2 30
o address_line_2 VARCHAR2 30
* city VARCHAR2 15
* postal_code VARCHAR2 7
fk * ctr_number VARCHAR2 6

Table Name Table Short Name


teams tem
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 4
* name VARCHAR2 20
* number_of_players NUMBER 2
o discount NUMBER 2

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
4

Table Name Table Short Name


sales_representatives sre
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 4
uk * email VARCHAR2 50
* first_name VARCHAR2 20
* last_name VARCHAR2 30
* phone_number VARCHAR2 11
* commission_rate NUMBER 2
fk * supervisor_id VARCHAR2 4

Table Name Table Short Name


sales_representatives_address sas
Key Type Optionality Column Name Data Type Size
Pk, fk * id VARCHAR2 4
* address_line_1 VARCHAR2 30
o address_line_2 VARCHAR2 30
* city VARCHAR2 15
* postal_code VARCHAR2 7

Table Name Table Short Name


orders odr
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 9
* odr_date DATE
* odr_time TIMESTAMP 0
* number_of_units NUMBER 2
fk * ctr_number VARCHAR2 6

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
5

Table Name Table Short Name


ordered_items oim
Key Type Optionality Column Name Data Type Size
* quantity_ordered NUMBER 3
* quantity_shipped NUMBER 3
pk, fk1 * odr_id VARCHAR2 9
pk, fk2 * itm_number VARCHAR2 10

Table Name Table Short Name


items itm
Key Type Optionality Column Name Data Type Size
pk * itm_number VARCHAR2 10
* name VARCHAR2 20
* description VARCHAR2 50
* category VARCHAR2 25
o color VARCHAR2 15
o size CHAR 1
fk * ilt_id VARCHAR2 11

Table Name Table Short Name


inventory_list ilt
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 11
* cost NUMBER 7,2
* units NUMBER 4

Table Name Table Short Name


price_history phy
Key Type Optionality Column Name Data Type Size
pk * start_date DATE
pk * start_time TIMESTAMP 0
* price NUMBER 7,2
o end_date DATE
o end_time TIMESTAMP 0
pk, fk1 * itm_number VARCHAR2 10

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
Solution :
Assurez-vous que toutes les tables ont été créées correctement et que les résultats correspondent au document de mise en correspondance.

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
Générer le modèle relationnel à partir du modèle de données logique (S4L2 Objectif 3)
Partie 2 :

Dans cet exercice, vous allez utiliser votre modèle relationnel complété et créer les contraintes restantes.

1. Identifiez les tables pour lesquelles des colonnes uniques doivent encore être créées.
a. Cliquez avec le bouton droit de la souris sur la table et choisissez les propriétés.
b. Sélectionnez Unique Constraints (Contraintes uniques) dans le menu.
c. Cliquez sur la croix verte pour ajouter une nouvelle contrainte unique.
d. Utilisez le format de table abrégé nom_nomdecolonne_contrainte pour nommer vos contraintes.
e. Sélectionnez la colonne que vous souhaitez définir comme unique et cliquez sur la flèche pour
l'ajouter à la colonne sélectionnée.
f. Cliquez sur OK.

2. Identifiez les tables qui possèdent une relation récursive.


a. Cliquez avec le bouton droit de la souris sur la table et choisissez les propriétés.
b. Sélectionnez Foreign Keys (Clés étrangères) dans le menu.
c. Cliquez sur la croix verte pour ajouter une nouvelle clé étrangère.
d. Sélectionnez la colonne référencée (pk) et la colonne à utiliser pour créer le lien.
e. Cliquez sur OK.

3. Vérifiez que tous les noms respectent les conventions de dénomination.


a. Accédez à chaque table et choisissez l'option Foreign Keys (Clés étrangères) dans la boîte de
dialogue des propriétés.
b. Cliquez sur le nom et choisissez l'icône de modification pour raccourcir le nom.
c. Cliquez sur OK.

4. Enregistrez votre travail.

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
8

Instructions de la tâche
Utilisez le document de mise en correspondance de table complété créé lors d'un exercice précédent pour
affecter les contraintes.

Table Name Table Short Name


customers ctr
Key Type Optionality Column Name Data Type Size
pk * ctr_number VARCHAR2 6
uk * email VARCHAR2 50
* first_name VARCHAR2 20
* last_name VARCHAR2 30
* phone_number VARCHAR2 11
* current_balance NUMBER 6,2
uk o loyalty_card_number VARCHAR2 6
fk1 o tem_id VARCHAR2 4
fk2 o sre_id VARCHAR2 4

Table Name Table Short Name


customers_addresses cas
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 8
* address_line_1 VARCHAR2 30
o address_line_2 VARCHAR2 30
* city VARCHAR2 15
* postal_code VARCHAR2 7
fk * ctr_number VARCHAR2 6

Table Name Table Short Name


teams tem
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 4
* name VARCHAR2 20
* number_of_players NUMBER 2
o discount NUMBER 2

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
9

Table Name Table Short Name


sales_representatives sre
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 4
uk * email VARCHAR2 50
* first_name VARCHAR2 20
* last_name VARCHAR2 30
* phone_number VARCHAR2 11
* commission_rate NUMBER 2
fk * supervisor_id VARCHAR2 4

Table Name Table Short Name


sales_representatives_address sas
Key Type Optionality Column Name Data Type Size
Pk, fk * id VARCHAR2 4
* address_line_1 VARCHAR2 30
o address_line_2 VARCHAR2 30
* city VARCHAR2 15
* postal_code VARCHAR2 7

Table Name Table Short Name


orders odr
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 9
* odr_date DATE
* odr_time TIMESTAMP 0
* number_of_units NUMBER 2
fk * ctr_number VARCHAR2 6

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
10

Table Name Table Short Name


ordered_items oim
Key Type Optionality Column Name Data Type Size
* quantity_ordered NUMBER 3
* quantity_shipped NUMBER 3
pk, fk1 * odr_id VARCHAR2 9
pk, fk2 * itm_number VARCHAR2 10

Table Name Table Short Name


items itm
Key Type Optionality Column Name Data Type Size
pk * itm_number VARCHAR2 10
* name VARCHAR2 20
* description VARCHAR2 50
* category VARCHAR2 25
o color VARCHAR2 15
o size CHAR 1
fk * ilt_id VARCHAR2 11

Table Name Table Short Name


inventory_list ilt
Key Type Optionality Column Name Data Type Size
pk * id VARCHAR2 11
* cost NUMBER 7,2
* units NUMBER 4

Table Name Table Short Name


price_history phy
Key Type Optionality Column Name Data Type Size
pk * start_date DATE
pk * start_time TIMESTAMP 0
* price NUMBER 7,2
o end_date DATE
o end_time TIMESTAMP 0
pk, fk1 * itm_number VARCHAR2 10

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
Solution :

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
12

Générer le modèle relationnel à partir du modèle de données logique (S4L2 Objectif 3)


Partie 3 : Création d'un fichier de script SQL

Dans cet exercice, vous allez utiliser le modèle relationnel complété que vous avez créé dans l'exercice
précédent et allez créer le script SQL qui générera vos tables dans APEX.

Tâche : création de scripts DDL


1. Assurez-vous que vous êtes dans la vue relationnelle.
a. Cliquez sur le bouton Generate DDL (Générer le DDL) dans la barre d'outils.
b. Choisissez l'environnement pour lequel vous souhaitez créer le script (11g convient).
c. Cliquez sur Generate (Générer).
d. Dans la fenêtre Generation Options (Générer des options), vérifiez que tout est conforme à ce
qui était prévu.
e. Cliquez sur OK.
f. Enregistrez votre fichier en local sous le nom "Sports Script.ddl".
g. Si vous identifiez des erreurs, vous devrez revenir dans votre modèle pour les résoudre avant
de régénérer le script.

Solution :
Si le modèle a été créé correctement, le script suivant doit être généré :

CREATE TABLE inventory_list (


id VARCHAR2(11) NOT NULL,
cost NUMBER(7,2) NOT NULL,
units NUMBER(4) NOT NULL,
CONSTRAINT inventory_list_pk PRIMARY KEY ( id )
);

CREATE TABLE items (


itm_number VARCHAR2(10) NOT NULL,
name VARCHAR2(20) NOT NULL,
description VARCHAR2(50) NOT NULL,
category VARCHAR2(25) NOT NULL,
color VARCHAR2(15),
"Size" CHAR(1),
ilt_id VARCHAR2(11) NOT NULL,
CONSTRAINT item_pk PRIMARY KEY ( itm_number )
);
Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
13

CREATE TABLE price_history (


start_date DATE NOT NULL,
start_time DATE NOT NULL,
price NUMBER(7,2) NOT NULL,
end_date DATE,
end_time DATE,
itm_number VARCHAR2(10) NOT NULL,
CONSTRAINT price_history_pk PRIMARY KEY ( itm_number, start_date, start_time ),
CONSTRAINT price_history_items_fk FOREIGN KEY ( itm_number ) REFERENCES items (itm_number )
);

CREATE TABLE sales_representatives (


id VARCHAR2(4) NOT NULL,
email VARCHAR2(50) NOT NULL,
first_name VARCHAR2(20) NOT NULL,
last_name VARCHAR2(30) NOT NULL,
phone_number VARCHAR2(11) NOT NULL,
commision_rate NUMBER(2) NOT NULL,
supervisor_id VARCHAR2(4) NOT NULL,
CONSTRAINT sales_representative_pk PRIMARY KEY ( id ),
CONSTRAINT sre_email_uk UNIQUE (email)
);

CREATE TABLE sales_rep_addresses (


id VARCHAR2(4) NOT NULL,
address_line_1 VARCHAR2(30) NOT NULL,
address_line_2 VARCHAR2(30),
city VARCHAR2(15) NOT NULL,
postal_code VARCHAR2(7) NOT NULL,
CONSTRAINT sales_rep_address_pk PRIMARY KEY ( id )
);

CREATE TABLE teams (


id VARCHAR2(4) NOT NULL,
name VARCHAR2(20) NOT NULL,
number_of_players NUMBER(2) NOT NULL,
discount NUMBER(2),
CONSTRAINT team_pk PRIMARY KEY ( id )
);

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
14

CREATE TABLE customers (


ctr_number VARCHAR2(6) NOT NULL,
email VARCHAR2(50) NOT NULL,
first_name VARCHAR2(20) NOT NULL,
last_name VARCHAR2(30) NOT NULL,
phone_number VARCHAR2(11) NOT NULL,
current_balance NUMBER(6,2) NOT NULL,
sre_id VARCHAR2(4),
tem_id VARCHAR2(4),
loyalty_card_number VARCHAR2(6),
CONSTRAINT customer_pk PRIMARY KEY ( ctr_number ),
CONSTRAINT ctr_email_uk UNIQUE (email),
CONSTRAINT ctr_lcn_uk UNIQUE (loyalty_card_number)
);

CREATE TABLE customers_addresses (


id VARCHAR2(8) NOT NULL,
address_line_1 VARCHAR2(30) NOT NULL,
address_line_2 VARCHAR2(30),
city VARCHAR2(15) NOT NULL,
postal_code VARCHAR2(7) NOT NULL,
ctr_number VARCHAR2(6) NOT NULL,
CONSTRAINT customer_address_pk PRIMARY KEY ( id )
);

CREATE TABLE orders (


id VARCHAR2(9) NOT NULL,
odr_date DATE NOT NULL,
odr_time DATE NOT NULL,
number_of_units NUMBER(2) NOT NULL,
ctr_number VARCHAR2(6) NOT NULL,
CONSTRAINT orders_pk PRIMARY KEY ( id )
);

CREATE TABLE ordered_items (


quantity_ordered NUMBER(3) NOT NULL,
quantity_shipped NUMBER(3) NOT NULL,
itm_number VARCHAR2(10) NOT NULL,
odr_id VARCHAR2(9) NOT NULL,
CONSTRAINT ordered_item_pk PRIMARY KEY ( itm_number,odr_id )
);

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
15

ALTER TABLE customers_addresses ADD CONSTRAINT customer_address_customer_fk FOREIGN KEY


(ctr_number ) REFERENCES customers ( ctr_number );

ALTER TABLE customers ADD CONSTRAINT customer_sales_rep_fk FOREIGN KEY ( sre_id )


REFERENCES sales_representatives ( id );

ALTER TABLE customers ADD CONSTRAINT customer_team_fk FOREIGN KEY ( tem_id )


REFERENCES teams ( id );

ALTER TABLE items ADD CONSTRAINT item_inventory_list_fk FOREIGN KEY ( ilt_id )


REFERENCES inventory_list ( id );

ALTER TABLE orders ADD CONSTRAINT order_customer_fk FOREIGN KEY ( ctr_number )


REFERENCES customers ( ctr_number );

ALTER TABLE ordered_items ADD CONSTRAINT ordered_item_item_fk FOREIGN KEY ( itm_number )


REFERENCES items ( itm_number );

ALTER TABLE ordered_items ADD CONSTRAINT ordered_item_order_fk FOREIGN KEY ( odr_id )


REFERENCES orders ( id );

ALTER TABLE sales_rep_addresses ADD CONSTRAINT sales_rep_add_sales_rep_fk FOREIGN KEY ( id)


REFERENCES sales_representatives ( id );

ALTER TABLE sales_representatives ADD CONSTRAINT sales_rep_sales_rep_fk FOREIGN KEY (supervisor_id )


REFERENCES sales_representatives ( id );

CREATE OR REPLACE TRIGGER fkntm_orders BEFORE UPDATE OF ctr_number ON orders


BEGIN
raise_application_error(-20225, 'Non Transferable FK constraint on table orders is violated');
END;
/

** Remarque : le script terminé est disponible dans la section 0 (obl Sports.ddl).

(suite à la page suivante)

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
16

Suppression des tables et des contraintes

Si vous devez supprimer tous les éléments créés dans ce script, le script suivant peut être utilisé :

ALTER TABLE sales_representatives DROP CONSTRAINT sales_rep_sales_rep_fk;

ALTER TABLE sales_rep_addresses DROP CONSTRAINT sales_rep_add_sales_rep_fk;

ALTER TABLE price_history DROP CONSTRAINT price_history_item_fk;

ALTER TABLE ordered_items DROP CONSTRAINT ordered_item_order_fk;

ALTER TABLE ordered_items DROP CONSTRAINT ordered_item_item_fk;

ALTER TABLE orders DROP CONSTRAINT order_customer_fk;

ALTER TABLE items DROP CONSTRAINT item_inventory_list_fk;

ALTER TABLE customers DROP CONSTRAINT customer_team_fk;

ALTER TABLE customers DROP CONSTRAINT customer_sales_rep_fk;

ALTER TABLE customers_addresses DROP CONSTRAINT customer_address_customer_fk;

ALTER TABLE teams DROP CONSTRAINT team_pk;

DROP TABLE teams;

ALTER TABLE sales_representatives DROP CONSTRAINT sales_representative_pk;

DROP INDEX sales_representative__idx;

DROP INDEX sre_email_un;

DROP TABLE sales_representatives;

ALTER TABLE sales_rep_addresses DROP CONSTRAINT sales_rep_address_pk;

DROP TABLE sales_rep_addresses;

ALTER TABLE price_history DROP CONSTRAINT price_history_pk;

DROP TABLE price_history;

ALTER TABLE orders DROP CONSTRAINT orders_pk;


Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.
17

DROP TABLE orders;

ALTER TABLE ordered_items DROP CONSTRAINT ordered_item_pk;

DROP TABLE ordered_items;

ALTER TABLE items DROP CONSTRAINT item_pk;

DROP TABLE items;

ALTER TABLE inventory_list DROP CONSTRAINT inventory_list_pk;

DROP TABLE inventory_list;

ALTER TABLE customers_addresses DROP CONSTRAINT customer_address_pk;

DROP TABLE customers_addresses;

ALTER TABLE customers DROP CONSTRAINT customer_pk;

DROP INDEX customer__idx;

DROP INDEX ctr_loyalty_un;

DROP INDEX ctr_email_un;

DROP TABLE customers;

Copyright © 2017, Oracle et/ou ses affiliés. Tous droits réservés. Oracle et Java sont des marques déposées d'Oracle Corporation et/ou de ses affiliés. Tout autre nom mentionné peut
correspondre à des marques appartenant à d'autres propriétaires qu'Oracle.