0% found this document useful (0 votes)
9 views2 pages

Rendu SGBD

The document outlines the creation of several database tables for a vehicle management system, including VEHICULES, MODELES, PERSONNES, ACQUISITIONS, and CONTRAT_VENTE, with defined primary and foreign key relationships. It also includes constraints for data validation such as checks on price, power, and unique identifiers. Additionally, modifications are made to existing tables to enforce further data integrity rules.

Uploaded by

saifassas3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views2 pages

Rendu SGBD

The document outlines the creation of several database tables for a vehicle management system, including VEHICULES, MODELES, PERSONNES, ACQUISITIONS, and CONTRAT_VENTE, with defined primary and foreign key relationships. It also includes constraints for data validation such as checks on price, power, and unique identifiers. Additionally, modifications are made to existing tables to enforce further data integrity rules.

Uploaded by

saifassas3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

1/

CREATE TABLE VEHICULES (


Immatriculation VARCHAR2(30) PRIMARY KEY,
Ref_Model VARCHAR2(30) NOT NULL,
Date_Mise_Circulation DATE NOT NULL,
Kilometrage NUMBER NOT NULL,
Prix_Demande NUMBER NOT NULL,
CONSTRAINT fk_vehicule_modele FOREIGN KEY (Ref_Model) REFERENCES MODELES
(Ref_Model) ON DELETE CASCADE
);

CREATE TABLE MODELES (


Ref_Model VARCHAR2(30) PRIMARY KEY,
Modele VARCHAR2(30) NOT NULL,
Marque VARCHAR2(30) NOT NULL,
Puissance VARCHAR2(30) NOT NULL
);

CREATE TABLE PERSONNES (


CIN VARCHAR2(15) PRIMARY KEY,
Nom VARCHAR2(30) NOT NULL CHECK (REGEXP_LIKE(Nom, '^[A-Za-z]+$')),
Prenom VARCHAR2(30) NOT NULL CHECK (REGEXP_LIKE(Prenom, '^[A-Za-z]+$')),
Email VARCHAR2(50) UNIQUE NOT NULL,
Num_Tel NUMBER UNIQUE NOT NULL CHECK (LENGTH(TO_CHAR(Num_Tel)) >= 8)
);

CREATE TABLE ACQUISITIONS (


Immatriculation VARCHAR2(30),
CIN VARCHAR2(15),
Date_Debut DATE NOT NULL,
Date_Fin DATE CHECK (Date_Fin > Date_Debut),
PRIMARY KEY (Immatriculation, CIN),
CONSTRAINT fk_acquisition_vehicule FOREIGN KEY (Immatriculation) REFERENCES
VEHICULES (Immatriculation) ON DELETE CASCADE,
CONSTRAINT fk_acquisition_personne FOREIGN KEY (CIN) REFERENCES PERSONNES (CIN)
ON DELETE CASCADE
);

CREATE TABLE CONTRAT_VENTE (


Ref_Contrat VARCHAR2(30) PRIMARY KEY,
CIN VARCHAR2(15),
Immatriculation VARCHAR2(30),
Date_Vente DATE DEFAULT SYSDATE NOT NULL,
Prix_Vente NUMBER NOT NULL CHECK (Prix_Vente > 0),
CONSTRAINT fk_contrat_vehicule FOREIGN KEY (Immatriculation) REFERENCES
VEHICULES (Immatriculation) ON DELETE CASCADE,
CONSTRAINT fk_contrat_personne FOREIGN KEY (CIN) REFERENCES PERSONNES (CIN) ON
DELETE CASCADE
);

2/
ALTER TABLE MODELES
ADD CONSTRAINT chk_puissance CHECK (Puissance IN ('4CH', '5CH', '6CH'));

ALTER TABLE VEHICULES


ADD CONSTRAINT chk_prix_demande CHECK (Prix_Demande BETWEEN 1000 AND 100000);

ALTER TABLE PERSONNES


ADD CONSTRAINT chk_nom_prenom CHECK (Nom <> Prenom);

ALTER TABLE ACQUISITIONS


MODIFY Date_Debut DATE NOT NULL;

ALTER TABLE VEHICULES


ADD Num_Chassis VARCHAR2(50) UNIQUE NOT NULL;

You might also like