-- lancer par : @tme4-schema.txt prompt TME4 : Schema de la base drop table EnsModeleMoteur; drop table EnsModeleRoue; drop table EnsModeleVoiture; drop table EnsVoitures; drop table LesProprietaires; drop table LesBanques; drop type LesRoues force; drop type Voiture force; drop type Roue force; drop type Moteur force; drop type ModeleVoiture force; drop type ModeleRoue force; drop type ModeleMoteur force; drop type ListeVoitures force; drop type Proprietaire force; drop type Personne force; drop type CompteBancaire force; drop type Banque force; drop type Ville force; CREATE TYPE ModeleRoue AS OBJECT ( nom VARCHAR2(10) ); @compile CREATE TYPE ModeleMoteur AS OBJECT ( nom VARCHAR2(10) ); @compile CREATE TYPE ModeleVoiture AS OBJECT ( nom VARCHAR2(50), mRoue REF ModeleRoue, mMoteur REF ModeleMoteur ); @compile ------------------------------------------------------------------------------ CREATE TABLE EnsModeleVoiture OF ModeleVoiture; CREATE TABLE EnsModeleMoteur OF ModeleMoteur; CREATE TABLE EnsModeleRoue OF ModeleRoue; ------------------------------------------------------------------------------ CREATE TYPE Roue AS OBJECT ( numero NUMBER(20), marque VARCHAR2(50), modele REF ModeleRoue ); @compile CREATE TYPE Moteur AS OBJECT ( numero NUMBER(20), modele REF ModeleMoteur ); @compile CREATE TYPE LesRoues AS TABLE OF Roue; @compile CREATE TYPE Voiture AS OBJECT ( numero NUMBER(20), modele REF ModeleVoiture, roues LesRoues, mot Moteur ); @compile CREATE TABLE EnsVoitures OF Voiture NESTED TABLE roues STORE AS tabroue; ---------------------------------------------------------------------------- CREATE TYPE Ville AS OBJECT ( nom VARCHAR2(20), code NUMBER(5) ); @compile CREATE TYPE Banque AS OBJECT ( nom VARCHAR2(20), adr Ville ); @compile CREATE TYPE CompteBancaire AS OBJECT ( numero NUMBER(10), banq REF Banque ); @compile CREATE TYPE Personne AS OBJECT ( nom VARCHAR2(20), prenom VARCHAR2(20), dateNaissance Date, adr Ville, compte CompteBancaire ) NOT FINAL ; @compile -- maxmimum 10 voitures CREATE TYPE ListeVoitures AS VARRAY(10) OF REF Voiture; @compile CREATE TYPE Proprietaire UNDER Personne ( numeroClient NUMBER(20), vehicules ListeVoitures ); @compile CREATE TABLE LesBanques of Banque ; CREATE TABLE LesProprietaires OF Proprietaire;