Commit 9aab1cc6 authored by Gaetan Carabetta's avatar Gaetan Carabetta
parents 367d6baa 7922b725
CREATE OR REPLACE TYPE traitement AS OBJECT (
drop table animal;
drop table espece;
drop table client;
drop type listTraitements;
drop type listNumeros;
drop type traitement;
CREATE TYPE traitement AS OBJECT (
id_traitement NUMBER,
debut DATE,
duree NUMBER,
......@@ -9,46 +16,42 @@ CREATE OR REPLACE TYPE traitement AS OBJECT (
/
CREATE OR REPLACE TYPE listNumeros AS TABLE OF varchar(10);
CREATE TYPE listNumeros AS TABLE OF VARCHAR(10);
/
CREATE OR REPLACE TYPE listTraitements AS TABLE OF traitement;
CREATE TYPE listTraitements AS TABLE OF traitement;
/
CREATE OR REPLACE TABLE client (
id_client NUMBER NOT NULL,
CREATE TABLE client (
id_client NUMBER,
nom VARCHAR(20) NOT NULL,
prenom VARCHAR(20) NOT NULL,
dn DATE NOT NULL,
adresse VARCHAR(50) NOT NULL,
numeros listNumeros NOT NULL,
numeros listNumeros,
PRIMARY KEY(id_client)
)NESTED TABLE numeros STORE AS l_numeros;
/
CREATE OR REPLACE TABLE classeEspece(
classeEscpece VARCHAR(30) NOT NULL PRIMARY KEY
);
/
CREATE OR REPLACE TABLE espece(
CREATE TABLE espece(
classeEspece VARCHAR(30) NOT NULL,
espece VARCHAR(20) NOT NULL,
PRIMARY KEY(espece),
FOREIGN KEY (classeEspece) REFERENCES classeEspece(classeEspece)
espece VARCHAR(20),
PRIMARY KEY(espece)
);
/
CREATE OR REPLACE TABLE animal(
id_animal NUMBER NOT NULL,
id_client NUMBER NOT NULL,
espece VARCHAR(20) NOT NULL,
CREATE TABLE animal(
id_animal NUMBER,
id_client NUMBER,
espece VARCHAR(20),
nom VARCHAR(20),
poid FLOAT,
TAILLE FLOAT,
dn DATE,
traitements listTraitement NOT NULL,
traitements listTraitements,
CHECK (poid > 0),
CHECK (TAILLE > 0),
PRIMARY KEY (id_animal),
FOREIGN KEY (id_client) REFERENCES client(id_client),
FOREIGN KEY (espece) REFERENCES espece(espece)
......
......@@ -134,6 +134,7 @@ Les relations possibles sont décrites selon les labels suivants:
* Donc au moins un médicament a été prescrit.
#### Choix du modèle
* Nous avons intégré les classes d'espèces dans la table espèce pour réduire l'espace mémoire occupé et éviter de faire des jointures au niveau applicatif,
* Nous avons choisit d'imbriquer les tables Vétérinaire, Médicament et Posologie dans la table Traitement,
* Nous avons imbriqué la table Traitement à la table Animal,
* Nous avons rajouter une table Numéro, imbriquée dans la table Client.
......
INSERT INTO espece (classeEspece,espece)
VALUES ('mammifer','hamster');
/
INSERT INTO espece (classeEspece,espece)
VALUES ('mammifer','chien');
/
INSERT INTO espece (classeEspece,espece)
VALUES ('mammifer','chat');
/
INSERT INTO client (id_client,nom,prenom,dn,adresse,numeros)
VALUES (1,'VALDIVIA','Osvaldo',to_date('27-12-1998','DD-MM-YYYY'),'6 bis rue Winston Churchill',listNumeros('1029384756','5534034564'));
/
INSERT INTO client (id_client,nom,prenom,dn,adresse,numeros)
VALUES (2,'CARABETTA','Gaetan',to_date('10-06-1996','DD-MM-YYYY'),'16 rue Gambeta',listNumeros('5647384950','1738493728','5748394782'));
/
INSERT INTO client (id_client,nom,prenom,dn,adresse,numeros)
VALUES (3,'ALANIS','Oswaldo',to_date('14-05-1998','DD-MM-YYYY'),'52 av. Compiegne ',listNumeros('5647384950'));
/
INSERT INTO animal(id_animal,id_client,espece,nom,poid,TAILLE,dn,traitements)
VALUES (1,1,'chien','Diego',4050,300,to_date('15-04-2005','DD-MM-YYYY'),listTraitements(traitement(1,to_date('09-10-2018','DD-MM-YYYY'),5,2,'Pierre','Hueys'),traitement(2,to_date('11-12-2018','DD-MM-YYYY'),5,2,'Pierre','Orphex')));
INSERT INTO animal(id_animal,id_client,espece,nom,poid,TAILLE,dn,traitements)
VALUES (2,2,'chat','Doris',2100,200,to_date('15-02-2008','DD-MM-YYYY'),listTraitements(traitement(3,to_date('01-10-2019','DD-MM-YYYY'),4,1,'Jean','Hueys'),traitement(4,to_date('02-12-2019','DD-MM-YYYY'),6,3,'Pierre','Orphex')));
INSERT INTO animal(id_animal,id_client,espece,nom,poid,TAILLE,dn,traitements)
VALUES (3,3,'hamster','Pochoclo',100,10,to_date('10-10-2018','DD-MM-YYYY'),listTraitements(traitement(5,to_date('15-01-2019','DD-MM-YYYY'),4,1,'Valentin','Marphel')));
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment