Téléchargemnt des fichiers

https://guacamole.univ-avignon.fr/nextcloud/index.php/s/L9fXjKdn4And9tq

Création des tables

CREATE SCHEMA sae_201; 
CREATE TABLE sae_201.article(
id_article CHAR(2),
article VARCHAR(255),
prix FLOAT
);
CREATE TABLE sae_201.client (
id_client CHAR(1),
prenom VARCHAR(255),
nom VARCHAR(255),
adresse VARCHAR (255)
);
CREATE TABLE sae_201.commande (
id_commande CHAR(2),
numero_de_commande VARCHAR(4),
date_de_commande DATE,
moyen_de_paiement VARCHAR(15)
);
CREATE TABLE sae_201.numero (
id_commande CHAR(2),
id_client CHAR(1),
id_article CHAR(2),
quantite INT
);

Création des clés primaires

ALTER TABLE sae_201.article ADD CONSTRAINT table_article_id_var1_pkey PRIMARY KEY (id_article) ;
ALTER TABLE sae_201.client ADD CONSTRAINT table_client_id_var1_pkey PRIMARY KEY (id_client) ;
ALTER TABLE sae_201.commande ADD CONSTRAINT table_commande_id_var1_pkey PRIMARY KEY (id_commande) ;

Création des clés étrangères

ALTER TABLE sae_201.numero ADD CONSTRAINT fk_id_client FOREIGN KEY (id_client) REFERENCES sae_201.client (id_client);
ALTER TABLE sae_201.numero ADD CONSTRAINT fk_id_commande FOREIGN KEY (id_commande) REFERENCES sae_201.commande (id_commande);
ALTER TABLE sae_201.numero ADD CONSTRAINT fk_id_article FOREIGN KEY (id_article) REFERENCES sae_201.article (id_article);

Copie des fichiers

\copy sae_201.commande FROM 'sae201_commande (2).csv' CSV DELIMITER ';' HEADER ;
\copy sae_201.article FROM 'sae201_article (2).csv' CSV DELIMITER ';' HEADER ;
\copy sae_201.client FROM 'sae201_client (2).csv' CSV DELIMITER ';' HEADER ;

Cette dernière ne fonctionnant pas j’ai utilisé une autre méthode:

dbWriteTable(con,Id(schema="sae_201",table="client"),as.data.frame('sae_201_client (2).csv'))

J’ai utilisé la fonction dbWriteTable car il m’était impossible d’importer (import dataset) mon fichier CSV conçu au préalable. ERREUR: Is it a CSV file ? Invalide multibyte string .

\copy sae_201.numero FROM 'sae201_numero (3).csv' CSV DELIMITER ';' HEADER ;

Vue du fichier

SELECT com."numero_de_commande", c."prenom", c."nom", c."Adresse", a."article", n."quantite", a."prix", com."date_de_commande", com."moyen_de_paiement" 
FROM commande as com, article as a, numero as n, client as c
WHERE n."id_article"= a."id_article" AND n."id_commande"= com."id_commande" AND n."id_client"= c."id_client";

Schéma relationnel