Td4 BDD2

Exercice 1

a)

Avant la transformation

  • Logiciel(numLogiciel, nom)
  • Version(numVersion, nom)
  • Responsable(numResponsable)
  • Personne(numPers, nom)
  • Developpeur(numDev)
  • Livraison(numLivraison, date)
  • Technologies(numTechno, nom)

Ordre de transformation

Composition

  • Logiciel -> Version (numLogiciel en clé étrangère de Version)
  • Version -> Livraison ((numLogiciel, numVersion) dans Livraison)
  • Personne -> Developpeur (numPers dans Developpeur)
  • Personne -> Responsable (numPers dans Responsable)

Nouvelle Table

  • Developpeur -> Technologies (Nouvelle table UtiliseTechnologie)
  • Developpeur -> Version (Nouvelle table DeveloppeVersion)

R1\*

  • Responsable -> Livraison (numResponsable vers Livraison)
  • Responsable -> Version (numResp vers Version)
  • Responsable -> Logiciel (numResp vers Logiciel)

Transformation

  • Version(numVersion, nom, #numLogiciel, #numResp)
  • Livraison(numLivraison, date, #numLogiciel, #numVersion, #numResp)
  • Developpeur(numDev, #numPers)
  • Responsable(numResp, #numPers)
  • Technologies(numTechno, nom)
  • Personne(numPers, nom)
  • UtiliseTechnologie((#numDev, #numTechno))
  • DeveloppeVersion((#numDev, #numVersion))
  • Logiciel(numLogiciel, nom, #numResp)

b)

create table Personne (
       numPers serial primary key,
       nom varchar[20]
)

create table Technologie (
       numTechno serial primary key,
       nom varchar[20]
)

create table Responsable (
       numResp serial ,
       numPers int references Personne(numPers),
       primary key (numResp, numPers)
)

create table Developpeur (
       numDev serial ,
       numPers int  references Personne(numPers),
       primary key (numDev, numPers)
)

create table UtiliseTechnologie (
       numDev int,
       numPers int,
       numTechno int  references Technologies(numTechno)
       primary key (numDev, numTechno, numPers),
       foreign key (numDev, numPers ) references Developpeur(numDev, numPers)
)

create table Logiciel (
       numLogiciel serial primary key,
       nom varchar[20],
       numResp int references Responsable(numResp)
)

create table Version (
       numVersion serial ,
       nom varchar[20],
       numLogiciel  references Logiciel(numLogiciel),
       numResp references Responsable(numResp),
       primary key (numLogiciel, numVersion)
)

create table DeveloppeVersion (
       numDev int,
       numPers int,
    numVersion int ,
        numLogiciel int,
        primary key (numDev, numVersion, numPers, numLogiciel),
       foreign key (numDev, numPers ) references Developpeur(numDev, numPers),
       foreign key (numVersion, numLogiciel) references Version(numVersion, numLogiciel)
)

create table Livraison (
       numLivraison serial,
       date date,
       numLogiciel,
       numVersion int,
       numResp int references Responsable(numResp),
       primary key (numLivraison, numLogiciel, numVersion),
       foreign key (numVersion, numLogiciel) references Version(numVersion, numLogiciel)

Created: 2026-01-30 ven. 10:19

Validate