Vous êtes sur la page 1sur 7

Base de donnees :

1. Normalisation :
1. Relation Client :
Client(Num_Cli, Nom_Cli ,Prenom_Cli, Civ_Cli, Email_Cli, Date_Naiss_Cli, MilSold,
DateExpMil, Mil_Stat, Nbr_Vol)

On a deux clé possible : Num_Cli et Email_Cli

Num_Cli -> Nom_Cli ,Prenom_Cli, Civ_Cli, Email_Cli, Date_Naiss_Cli, MilSold, DateExpMil,


Mil_Stat, Nbr_Vol
Email_Cli -> Nom_Cli ,Prenom_Cli, Civ_Cli, Email_Cli, Date_Naiss_Cli, MilSold, DateExpMil,
Mil_Stat, Nbr_Vol

 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car les deux clés possibles sont des
clés simple est pas compose, donc pas de dépendance partielle
 3FN:

Cette Relation est déjà en troisième forme normal car y’a pas de dépendance transitive

2. Relation Activite :
Activite(Num_Act, DateAct, Numvol, NumBill, Activite, Num_Cli, Description,depart,arrive,
Code_ClassT)

On a Une clé possible : Num_Act

Num_Act-> DateAct, Numvol, NumBill, Activite, Num_Cli, Mil_Stat, MilPrim, Description


 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:

Cette Relation est déjà en troisième forme normal car y’a pas de dépendance transitive
2

3. Relation Carte :
Carte(Nbr_Vol_Min,Nbr_Vol_Max, Nbr_MilStat_Min,Nbr_Milstat_Max, Type_Carte , Bonus)

On a une clé possible : Nbr_Vol,Nbr_Milstat

Nbr_Vol_Min,Nbr_Vol_Max->Type_Carte
Nbr_Milstat_Min,Nbr_Vol_Max -> Type_Carte
Type_Carte->Bonus
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation n’est pas en deuxième forme normal, car il existe deux dépendances
partielles
Alors on va découper la relation Carte en deux :
Carte_Vol(Nbr_Vol_Min,Nbr_Vol_Max, Type_Carte)
Carte_Stat(Nbr_Milstat_Min,Nbr_Milstat_Max, Type_Carte, bonus)
 3FN:

Cette Relation n‘est pas en troisième forme normal car y a une de dépendance transitive
Typ_ Carte -> Bonus
Alors on va découper la relation Carte_Stat en deux :
Carte_Stat(Nbr_Milstat_Min,Nbr_Milstat_Max, Type_Carte)
Carte_Vol(Nbr_Vol_Min,Nbr_Vol_Max, Type_Carte)
Bonus(Type_Carte, Bonus)

4. Relation Classe_Transport :
Classe_Transport(Code_ClassT, Type_Classe, Miles_Pourcentage)

On a Une clé possible : Code_ClasstT

Code_ClassT-> Type_Classe
Type_Classe->Miles_Pourcentage
Par transitivite :
Code_ClassT ->Miles_Pourcentage
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:
3

Cette Relation est n’est pas en troisième forme normal car il existe une dépendance
transitive
Alors on va découper la relation en deux

Classe_Transport(Code_ClassT, Type_Classe)
Classe_Pourcentage(Type_Classe, Miles_Pourcentage)

5. Relation Distance :
Distance(Ville_Depart, Ville_Arrivee, Nbr_Miles)

On a Une clé possible : Ville_Depart,Ville_Arrive


Ville_Depart,Ville_Arrive ->Nbr_Miles
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:

Cette Relation est en troisième forme normal car il n’existe pas une dépendance
transitive

6. Relation Prime :
Prime(Miles_Prime,Type_Carte,Prime)

On a Une clé possible : Miles_Prime,Type_Carte


Miles_Prime,Type_Carte ->Prime
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:

Cette Relation est en troisième forme normal car il n’existe pas une dépendance transitive

7. Relation Pays :
Pays(Nom_Pays,Nom_Zone)

On a Une clé possible : Nom_Pays


Nom_Pays ->Nom_Zone
 3FN :

Cette relation est déjà en Troisieme forme normal car c’est une relation de type binaire
4

8. Relation Ville :
Ville(Nom_Ville,Nom_Pays)

On a Une clé possible : Nom_Ville


Nom_Ville ->Nom_Pays
 3FN :

Cette relation est déjà en Troisieme forme normal car c’est une relation de type binaire

9. Relation Baggage :
Baggage(Nom_Zone ,Exce_Bag, Nbr_Miles)

On a Une clé possible : Nom_Zone,Exce_Bag


Nom_Zone,Exce_Bag->Nbr_Miles
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:

Cette Relation est en troisième forme normal car il n’existe pas une dépendance transitive

10. Relation Billet_Prime :


Billet_Prime(Nom_Zone, Type_Classe, Nbr_Miles)

On a Une clé possible : Nom_Zone,Type_Classe


Nom_Zone,Type_Classe->Nbr_Miles
 1FN :

Cette relation est déjà en première forme normal car tous les attributs sont simples
 2FN:

Cette Relation est déjà en deuxième forme normal car la clé est simple est pas compose,
donc pas de dépendance partielle
 3FN:

Cette Relation est en troisième forme normal car il n’existe pas une dépendance transitive
5

2. Système Relationnel et langage de requête :


1. Algerbre Relationnel :
On suppose que l’utilisateur a été authentifie avec le login et le mot de passe
 R1:Civilite:

Select Client where Num_Cli= ? giving R


Project R over Civ_Cli giving R1
 R2:Nom_Client:

Select Client where Num_Cli= ? giving R


Project R over Nom_Cli giving R2
 R3:Prenom_Client:

Select Client where Num_Cli= ? giving R


Project R over Prenom_Cli giving R3
 R4:Numero de Cart:

Select Client where Num_Cli= ? giving R


Project R over Num_Cli giving R4
 R5:Type du Carte:

Select Client where Num_Cli = ? giving R1


Join R1 and Carte_Vol where Nbr_Vol > Nbr_MilVol_Min and Nbr_Vol < Nbr_MilVol_Max
giving R5_11
Project R1 over Type_Carte,Num_Cli giving R5_12

Select Client where Num_Cli = ? giving R2


Join R2 and Carte_Stat where Nbr_Mile > Nbr_MilStat_Min and Nbr_Stat <
Nbr_MilStat_Max giving R5_21
Project R1 over Type_Carte,Num_Cli giving R5_22

Join R5_2 and R5_1 over Num_Cli giving R5


 R6:Sold des Miles:

Select Client where Num_Cli= ? giving R


Project R over MilSold giving R6
 R7:Numero Activite(on obtient une liste d’activite)

Select Activite where Num_Cli= ? giving R


Project R over Num_Act giving R7
 R8:Date d’activite (Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Date_Act giving R8
6

 R9 :Numero de Vol (Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Num_Vol giving R9
 R10 :Classe de Vol (Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Code_ClassT giving R10_1
Join R10_1 and Classe_Transport over Code_ClassT giving R10_2
Project R10_2 over Type_Classe

 R11 :Numero Billet(Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Num_Bil giving R11
 R12 :Activite(Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Act giving R12
 R13 :Description(Pour chaque activite de la liste activite de R6)

Select Activite where Num_Act = ? giving R


Project R over Description giving R13
 R14 : Mile_Prime(Pour chaque activite de la liste activite de R6)

On a deux type de Mile_Prime : un pour les Activites de Vols(+Prime) et un pour les


Activites d’utilisation des Miles ( -Prime)
Si le Client x a fait une activite d’utlisation des miles alors l’attribut Num_Vol = ”-” dans la
table Activite .

 Activite de Vol :

Select Activite where Num_Act = ? and Num_Vol !=”-” giving R


Project R over Depart,Arrive giving R14_1
Join R14_1 and Distance where Depart=Depart and Arrive=Arrive giving R14_2
Project R14_2 over Nbr_Miles giving R14_3
//Pour Avoir le pourcentage Bonus des Classe Transport on va utiliser la requête R10
Join R10 and Classe_Pourcentage over Type_Classe giving R14_4
Project R14_4 over Miles_Pourcentage ginving R14_5
//Pour Avoir le Bonus des types de cartes on va utiliser la requete R5
Jon R5 and Bonus over Type_Carte giving R14_6
Project R14_6 over Bonus giving R14_7
Mile_Prime=R14_3 * R14_5 * R14_7
Mile_Stat=Mile_Prime
7

 Utilisation des Miles:

Select Activite where Num_Act = ? and Num_Vol =”-” giving R


Project R over Act,arrive,description giving R14_1
//Excess de baggage
Select R14_1 where Act=”Exces de bagage” giving R14_2
Join R14_2 and Ville where arrive=Nom_Ville giving R14_3
Join R14_3 and Pays over Nom_Pays giving R14_4
Project R14_4 over Nom_Zone giving R14_5
Join R14_2 and Bagage where description=Exce_Bag giving R14_6
Join R14_6 and R14_5 over Nom_Zone giving R14_7
Project R14_7 over Nbr_Miles giving R14
//Billet Prime on va utiliser le type de classe ( Requete R10)
Select R14_1 where Act=”Billet Prime” giving R14_2
Join R14_2 and Ville where arrive=Nom_Ville giving R14_3
Join R14_3 and Pays over Nom_Pays giving R14_4
Project R14_4 over Nom_Zone giving R14_6
Join R10 and Billet_Prime over Type_Classe giving R14_7
Join R14_7 and R14_4 over Nom_Zone giving R14_8
Project R14_8 over Nbr_Miles giving R14

//Autre Prime(on va utlise le type de carte(requete R5))


Select R14_1 where Activite!=”Billet Prime” and Activite!=”Exces de bagage” giving R14_2
Join R14_2 and Prime where Act=Prime giving R14_3
Join R14_3 and R5 over Type_Carte giving R14_4
Project R14_4 over Miles_Prime giving R14

Mile_Prime= -1 * R14

Vous aimerez peut-être aussi