Nom
:Aouadi
Prénom :Abdelmadjid
Groupe Master1_isil
Résumé concernent l'exercice é de la série de TD
PRODUITS (Num-Produit, Catégorie, Titre, Description, Prix, …)
INVENTAIRE (Num-Produit, Entrepôt, Nbr-Exemplaire, …)
COMMANDES (Num-Commande, Num-Produit, Adresse-Livraison, Quantité, …)
La Requéte sur le shéma globale :
Select sum(nb_exemplaire) from PRODUIT P,INVENTAIRE I
Where P.num_Produit=I.num_Produit
AND Catégorie = ‘Livre’
AND Titre = ‘X’
AND [Link] = IN(‘CA’,’CO’);
Supposons maintenant que la base PointCom est répartie sur les trois sites
informatiques de la Californie, de New York, et du Colorado. Proposer une
bonne décomposition de la base sur ces trois sites.
Les définitions en SQL et algèbre relationnelle des fragments
créés lors de la répartition de la base de données
(Produir, inventaire et entrepot) :
PRODUITS (Num-Produit, Catégorie, Titre, Description, Prix, …)
Frag Horizontal selon les valeurs de l’attribut Catégorie :
En algébre relationnel :
Livre : RESTRICT ( PRODUIT , Catégorie = ‘Livre’)
Musique : RETRSICT (PRODUIT, Catégorie = ‘Musique ‘)
Jeux : RETRSICT (PRODUIT, Catégorie = ‘Jeux ‘)
Vidéos : RESTRICT (PRODUIT, catégorie = ‘Vidéos’)
En SQL :
Select * from PRODUIT where Catégorie = ‘Livre’;
Select * from PRODUIT where Catégorie = ‘Musique’;
Select * from PRODUIT where Catégorie = ‘Jeux’;
Select * from PRODUIT where Catégorie = ‘Vidéos’;
INVENTAIRE (Num-Produit, Entrepôt, Nbr-Exemplaire, …)
Frag horizontale selon les valeurs de l’attribut Entrepot :
En algébre relationnel :
I_ca : RESTRICT (Inventaire , entrepot = ‘CA’)
I_co : RESTRICT (Inventaire , entrepot = ‘CO’)
I_ny : RESTRICT (Inventaire , entrepot = ‘NY’)
En SQL :
I_ca : Select * from INVENTAIRE where entrepot =’CA’;
I_co : Select * from INVENTAIRE where entrepot =’CO’;
I_ny : Select * from INVENTAIRE where entrepot =’NY’;
COMMANDES (Num-Commande, Num-Produit, Adresse-Livraison, Quantité, …)
Frag horizontal dirivée selon les frag de la table produit :
En algébre relationnel :
Cmd_livre= Restrict (cmd, num_produit IN Livre )
Cmd_musique = Restrict (cmd, num_produit IN Musique )
Cmd_jeux = Restrict (cmd, num_produit IN Jeux )
Cmd_video = Restrict (cmd, num_produit IN Vidéo )
En SQL :
Cmd_livre= Select * from Cmd where num_Produit IN(Select num_Produit from
Livre)
Cmd_musique= Select * from Cmd where num_Produit IN(Select num_Produit
from Musique)
Cmd_jeux= Select * from Cmd where num_Produit IN(Select num_Produit from
Jeux)
Cmd_video= Select * from Cmd where num_Produit IN(Select num_Produit
from Video)
Frag horizontal selon attribut Adresse_livraison :
En algébre relationnel :
Cmd_Est = Restrict (Commande, adr_livraison = EST)
Cmd_Ouest = Restrict (Commande, adr_livraison = Ouest)
Cmd_Centre = Restrict (Commande, adr_livraison = Centre)
En SQL :
Cmd_Est = Select * from Commande where adr_livraison = ’Est’ ;
Cmd_Ouest = Select * from Commande where adr_livraison = ’Ouest’ ;
Cmd_Centre = Select * from Commande where adr_livraison = ’Centre’ ;
Ensuite : frag horizontal selon les frag de produit :
En algébre relationnel :
Cmd_livre_est = Restrict (cmd_est, num_produit IN Livre )
Cmd_musique_est = Restrict (cmd_est, num_produit IN Musique )
Cmd_jeux_est = Restrict (cmd_est, num_produit IN Jeux )
Cmd_video_est = Restrict (cmd_est, num_produit IN Vidéo )
Cmd_Ouest = Restrict (Commande, adr_livraison = Ouest)
Cmd_livre_ouest = Restrict (cmd_ouest, num_produit IN Livre )
Cmd_musique_ouest = Restrict (cmd_ouest, num_produit IN Musique )
Cmd_jeux_ouest = Restrict (cmd_ouest, num_produit IN Jeux )
Cmd_video_ouest = Restrict (cmd_ouest, num_produit IN Vidéo )
Cmd_Centre = Restrict (Commande, adr_livraison = Centre)
Cmd_livre_centre = Restrict (cmd_centre, num_produit IN Livre )
Cmd_musique_centre = Restrict (cmd_centre, num_produit IN Musique )
Cmd_jeux_centre = Restrict (cmd_centre, num_produit IN Jeux )
Cmd_video_centre = Restrict (cmd_centre, num_produit IN Vidéo )
En SQL :
Cmd_livre_est = Select * from Commande_Livre where adr_livraison = ’Est’ ;
Cmd_musique_est = Select * from Commande_musique where adr_livraison =
’Est’ ;
Cmd_jeux_est = Select * from Commande_jeux where adr_livraison = ’Est’ ;
Cmd_video_est = Select * from Commande_video where adr_livraison = ’Est’ ;
Cmd_livre_ouest = Select * from Commande_Livre where adr_livraison =
’Ouest’ ;
Cmd_musique_ouest = Select * from Commande_musique where adr_livraison
= ’Ouest’ ;
Cmd_jeux_ouest = Select * from Commande_jeux where adr_livraison =
’Ouest’ ;
Cmd_video_ouest = Select * from Commande_video where adr_livraison =
’Ouest’ ;
Cmd_livre_centre = Select * from Commande_Livre where adr_livraison =
’Centre’ ;
Cmd_musique_centre = Select * from Commande_musique where adr_livraison
= ’ Centre’ ;
Cmd_jeux_centre = Select * from Commande_jeux where adr_livraison = ’
Centre’ ;
Cmd_video_centre= Select * from Commande_video where adr_livraison = ’
Centre’ ;
Les opération algébriques qui permettent
la reconstitution des relation fragmentées :
Reconstruction : Produit = Livre UNION Musique UNION Jeux UNION Vidéo
Reconstruction : Inventaire = I_CA UNION I_CO UNION I_NY
Reconstruction Commande = cmd_Est UNION cmd_Centre UNION Cmd_Ouest
Reconstruction :
Commande = [ (cmd_livre_est UNION cmd_musique_est UNION cmd_jeux_est
UNION cmd_vidéo_est) UNION (cmd_livre_centre UNION cmd_musique_centre
UNION cmd_jeux_centre UNION cmd_videos_centre) UNION (cmd_livre_ouest
UNION cmd_musique_ouest UNION cmd_jeux_ouest UNION
cmd_videos_ouest)]