0% ont trouvé ce document utile (0 vote)
153 vues4 pages

Décomposition et Requêtes SQL pour Base de Données

Le document décrit la répartition d'une base de données sur trois sites en Californie, New York et Colorado. Les tables sont décomposées horizontalement selon différents attributs puis recombinées à l'aide d'opérations en algèbre relationnelle.

Transféré par

Yacine Azira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
153 vues4 pages

Décomposition et Requêtes SQL pour Base de Données

Le document décrit la répartition d'une base de données sur trois sites en Californie, New York et Colorado. Les tables sont décomposées horizontalement selon différents attributs puis recombinées à l'aide d'opérations en algèbre relationnelle.

Transféré par

Yacine Azira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

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)]

Vous aimerez peut-être aussi