Requêtes décisionnelles avec TPC H
Préparation
Lire le sujet du TME, et le schema de TPC-H
- Configurer l'environnement Linux: (voir ConnexionOracle)
Copier les fichiers du TME puis démarrer l'éditeur emacs
- tar zxvf $BD_TOOL/tpch-etu.tgz
- cd tpch-etu
- emacs etu-r0.sql &
- depuis emacs se connecter au serveur de données ora11 (voir ConnexionOracle)
dans le buffer etu-r0.sql, aller sur la ligne suivante pour créer les synonymes vers la base TPCH de petite taille
@tpch (puis saisir 2 fois Ctrl-C)
- Vérifier que le résulat de la requête R0 s'affiche.
Exercice
Ecrire les requêtes décisionnelles R1 à R23.
Valeurs d'attributs à utiliser pour tester les requêtes
- Q1: l_shipdate <= '01/01/1993'
- Q2: r_name='EUROPE' AND p_type like '%COPPER' AND p_size=26
Documentation
Nom des attributs
- Dans la base TPCH, le nom des attributs est préfixé par la première lettre de la relation. Ex. la date de livraison est nommée L_shipdate. Le préfixe pour les attributs de Partsupp est PS.
Regroupement: group by : Impossible de projeter sur un attribut dont la valeur n'est pas identique pour tous les tuples d'un même groupe. Autrement dit: seuls les attributs mentionnés dans le group by peuvent apparaître dans le select, les autres attributs doivent être préalablement aggrégés. Exemples :
Erreur à cause de l'étoile :
Select * From Lineitem Group by L_linestatus;
Syntaxe correcte :
Select L_linestatus, count(*) From Lineitem Group by L_linestatus;
Requêtes paramétrées: define
- définir des variables pour les requêtes paramétrées, voir etu-r0.
- le livre SQL Reference de la DocumentationOracle
Divers
Pour installer l'extrait de la base TPC-H chez soi, récupérer le contenu sous la forme de 8 fichiers plats et le schéma de la base. Adaptez les instructions de création de la base à votre environnement.
Eventuellement, adapter le format par défaut des dates pour qu'il corresponde à celui du fichier texte
- alter session set NLS_DATE_FORMAT = 'DD/MM/YY';
- Spécification TPC-H (avec les requêtes SQL, à lire seulement en fin de TME...)