Td4 BDD2

Exercice 1

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)
  1. 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-03-24 mar. 09:09