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)