Td4 BDD2
Table of Contents
Exercice 1
a)
1. Avant la transformation
- Logiciel(numLogiciel, nom)
- Version(numVersion, nom)
- Responsable(numResponsable)
- Personne(numPers, nom)
- Developpeur(numDev)
- Livraison(numLivraison, date)
- Technologies(numTechno, nom)
2. 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)
3. 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)