Schéma Relationnel

Fichier Excel

fichier

###Création de la connection

library(DBI)
con <- dbConnect(odbc::odbc(), .connection_string = "Driver={PostgreSQL Unicode};", 
    timeout = 10)

###Création du schéma

CREATE SCHEMA sae_veto;

Création des tables

CREATE TABLE sae_veto.nom_animaux(
id_animal VARCHAR(2),
nom_animal VARCHAR(255),
id_maitre CHAR(1),
steril CHAR(3),
date_steril DATE,
couleur VARCHAR(255),
genre VARCHAR(7),
date_naissance DATE,
id_race VARCHAR(2)
);
CREATE TABLE sae_veto.maitre(
id_maitre CHAR(1),
nom VARCHAR(255),
prenom VARCHAR(255),
adresse VARCHAR(255)
);
CREATE TABLE sae_veto.race(
race VARCHAR(255),
id_race VARCHAR(2),
espece VARCHAR(5)
);
CREATE TABLE sae_veto.visite(
id_visite VARCHAR(3),
date_visite DATE,
motif VARCHAR(255),
poids FLOAT
);
CREATE TABLE sae_veto.numero(
id_visite VARCHAR(3),
id_animal VARCHAR(2)
);

Création des clés primaires

ALTER TABLE sae_veto.nom_animaux ADD CONSTRAINT sae_pkey1 PRIMARY KEY (id_animal);
ALTER TABLE sae_veto.maitre ADD CONSTRAINT sae_pkey2 PRIMARY KEY (id_maitre);
ALTER TABLE sae_veto.race ADD CONSTRAINT sae_pkey3 PRIMARY KEY (id_race);
ALTER TABLE sae_veto.visite ADD CONSTRAINT sae_pkey4 PRIMARY KEY (id_visite);
ALTER TABLE sae_veto.numero ADD CONSTRAINT sae_pkey5 PRIMARY KEY (id_visite);

###Création des clés étrangéres

ALTER TABLE sae_veto.nom_animaux ADD CONSTRAINT sae_fk1 FOREIGN KEY (id_race) REFERENCES sae_veto.race (id_race);
ALTER TABLE sae_veto.nom_animaux ADD CONSTRAINT sae_fk2 FOREIGN KEY (id_maitre) REFERENCES sae_veto.maitre (id_maitre);
ALTER TABLE sae_veto.numero ADD CONSTRAINT sae_fk3 FOREIGN KEY (id_animal) REFERENCES sae_veto.nom_animaux (id_animal);
ALTER TABLE sae_veto.numero ADD CONSTRAINT sae_fk4 FOREIGN KEY (id_visite) REFERENCES sae_veto.visite (id_visite);

Importation des données

J’ai importé mes données dans le terminal à l’aide de la commande: psql puis de : sae_veto.race FROM ‘race.csv’ CSV DELIMITER ‘;’ HEADER sae_veto.maitre FROM ‘maitre.csv’ CSV DELIMITER ‘,’ HEADER sae_veto.nom_animaux FROM ‘nom_animal.csv’ CSV DELIMITER ‘;’ HEADER sae_veto.visite FROM ‘visite.csv’ CSV DELIMITER ‘;’ HEADER sae_veto.numero FROM ‘numero.csv’ CSV DELIMITER ‘;’ HEADER

Création de la vue

CREATE VIEW sae_veto.sae_vue AS
SELECT a."nom_animal",r."espece", m."nom", m."prenom", m."adresse", a."steril", a."date_steril", a."couleur", r."race", a."genre", v."date_visite", v."motif", v."poids", a."date_naissance"
FROM sae_veto.numero as num, sae_veto.maitre as m, sae_veto.race as r, sae_veto.visite as v, sae_veto.nom_animaux as a
WHERE a."id_animal" = num."id_animal" AND a."id_race" = r."id_race" AND a."id_maitre" = m."id_maitre" AND num."id_visite" = v."id_visite";