• Aucun résultat trouvé

[PDF] Cours Concepts avancés SQL | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours Concepts avancés SQL | Cours informatique"

Copied!
12
0
0

Texte intégral

(1)

IFT3030

Base de données

Chapitre 9

Concepts avancés

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

Plan du cours

n

Introduction

n

Architecture

n

Modèles de données

n

Modèle relationnel

n

Algèbre relationnelle

n

SQL

n

Conception

n

Fonctions avancées

(2)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

3

Introduction

n

En plus des concepts de base du model

relationnel, les SGBD relationnels

implantent des concepts avancés

n

Concepts présentés

– Vues

– Optimisation de requêtes

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

4

La notion de vue

n

Généralités

– Les vues sont pour le relationnel ce que sont les

niveaux externes pour les modèles légués

– Garantissent l'indépendance logique entre les

applications et la base de données

– Renforcent la sécurité

n

Exemple

Vente (Numv, Nump, Numf, Date, Qte)

Produit (Nump, Des, Type, Prix)

Fournisseur (Numf, Nom, Region, Tel)

– les produits vendus par le fournisseur FLUX

– les ventes du produit numéro 63755 par région

– les fournisseurs de l'île de Montréal

(3)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

5

La notion de vue

n

Définition

– Table virtuelle dont le schéma et le contenu sont

dérivés de la base de données par une requête

n

Syntaxe SQL

CREATE VIEW <une_vue> [ <liste_alias> ]

AS <une_requête>

[WITH CHECK OPTION]

n

Exemple

– les produits vendus par le fournisseur FLUX

– les ventes par région

– les fournisseurs de l'île de Montréal

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

La notion de vue

n

Syntaxe SQL (suite)

(4)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

7

La notion de vue

n

Mise à jour des données à travers une vue

– Problèmes : traduire toute mise à jour, insertion

ou suppression portant sur une vue en une mise

à jour des tables de base

– Exemples

• Modifier un produit du fournisseur FLUX

• Rajouter un fournisseur à la liste des

fournisseurs de l'île de Montréal

– Solution

• En pratique, mise à jour réservé aux vues

monotable avec obligation de contenir la clé

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

8

La notion de vue

n

Mise à jour des données à travers une vue

– Règle pour la mise à jour avec SQL

1. La vue est définie comme une sélection (pas d'union par

exemple)

2. Pas de DISTINCT dans le SELECT

3. Tout élém ent du SELECT est une référence à un attribut

de la table sous-jacente

4. La clause FROM contient une référence à une seule

table

5. Cette table peut être soit une table de base soit une vue

qui peut être mise à jour

6. Pas de clause WHERE qui contient une sous-requête

dont la clause FROM fait référence à la table en question

7. Pas de GROUP BY

(5)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

9

La notion de vue

n

Cas particulier: Vue concrète

– Une vue calculée à partir des tables de

base et stockée physiquem ent sur disque

– Elle est mise à jour dès qu'une transaction

modifie les tables sous-jacentes par

différentiel quand c'est possible

– Particulièrem ent intéressante pour

mémoriser les agrégats

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

La notion de vue

n

Cas particulier: Vue concrète

– Syntaxe SQL

CREATE SNAPSHOT <une_vue_concrete>

AS <une_requête>

[ REFRESH [FAST | COMPLETE | FORCE] [START WITH

date] [NEXT date]]

– Exemple

(6)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

11

Optimisation de requêtes

n

Objectif

Maintenir des perform ances acceptables lors de

l’exécution des requêtes

n

Exemple :

Requête : Nom et prénom s des buveurs

Montréalais de Volnay depuis 1999

Contenu de la base :

10 millions de buveurs dont 1 m à Montréal

10 millions d'abus dont 10000 de Volnay

et 1m depuis 1999 (2000 de Volnay depuis 1999)

1000 vins

Coût d’exécution :

10m * 10m + …

B.NOM, B.PRENOM A.NV V.NV = V Résultat B.NB A.NB = B.VILLE ‘Montréal’ B = A A.DATE >= 01-01-1999 V.CRU =‘Volnay’ 6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

12

Optimisation de requêtes

n

Autre solution

– Coût d’exécution :

10m + 10m + 10000 +

+ 1m * 1 m + 2000 + …

B.NOM, B.PRENOM A.DATE V.CRU 01-01-1999 ‘Volnay’ >= = A.NV V.NV = V Résultat = B.NB A.NB B.VILLE ‘Montréal’ B = A B.NB, B.NOM, B.PRENOM A.NB, A.NV

V.NV B.NOM, B.PRENOM,A.NV

(7)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

13

Optimisation de requêtes

n

Problème :

– suivant l'ordre des opérateurs algébriques dans

un arbre, le coût d'exécution est diffèrent

n

Pourquoi?

– le coût des opérateurs varient en fonction du

volume des données traitées. Plus le nombre de

n-uplets des relations traitées est petit, plus les

coûts cpu et d'E/S sont minimisés

– certains opérateurs diminuent le volume des

données

e.g., restriction et projection

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

Optimisation de requêtes

n

Processus

1.Transformer la requête dans un form at

interne

2.Trouver une forme canonique

3.Décider de la stratégie d’exécution de

bas niveau

(8)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

15

Optimisation de requêtes

n

Transformer la requête dans un form at

interne

– Arbre de requête en algèbre relationnelle

n

Exemple :

– Requête : Nom s et prénom s des buveurs

Montréalais de Volnay depuis 1999

SELECT NOM, PRENOM

FROM BUVEURS B, ABUS A, VINS V

WHERE B.NB = A.NB

AND A.NV = V.NV

AND CRU = ‘Volnay’

AND DATE >= 01-01-1999

AND VILLE = ‘Montréal’

B.NOM, B.PRENOM A.NV V.NV = V Résultat B.NB A.NB = B.VILLE ‘Montréal’ B = A A.DATE >= 01-01-1999 V.CRU =‘Volnay’ 6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

16

Optimisation de requêtes

n

Trouver une forme canonique

– Définitions

– Soit Q un ensemble de requêtes et R une relation

d’équivalence entre ces requêtes (deux requêtes sont

équivalentes si elles produisent le mêm e résultats), un

sous ensembles C de Q est un ensemble de formes

canoniques de Q pour R si et seulem ent si toute

requête q de Q est équivalente à exactem ent une

requête c de C

(9)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

17

Optimisation de requêtes

n

Trouver une forme canonique

Règles de transformation

1.

Une suite restrictions sur une relation donnée peut

être transform er en une restriction conjonctive sur

cette relation

2.

Dans une suite de projections sur une relation

donnée, on peut garder uniquement la dernière

3.

Une restriction d’une projection peut être

transform ée en une projection sur une restriction

4.

Distributivité : f(A ° B)

f(A) ° f(B) ou f est une

opération sur une table (restriction, projection) et °

une opération binaire (union, intersection, différence,

jointure)

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

Optimisation de requêtes

n

Trouver une forme canonique

Règles de transformation

4.

Distributivité : f(A ° B)

f(A) ° f(B)

Si les attributs de

Non

Oui

Oui

Projection

Si 2 cond., une

pour chaque table

Oui

Oui

Oui

Restriction

Jointure

Différence

Intersection

Union

(10)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

19

Optimisation de requêtes

n

Trouver une forme canonique

Règles de transformation

5.

Commutativité : A ° B

B ° A

union, intersection, jointure (pas différence, division)

6.

Associativité : (A ° B) ° C

A ° (B ° C)

union, intersection, jointure (pas différence, division)

7.

Idempotence : A ° A

A

union, intersection, jointure (pas différence, division)

8.

Simplification d’expressions arithm étiques

Exemple : a * b + a * c

a * (b + c)

9.

Transform ation d’expressions logiques

Exemple : a > b AND b > 3

a > b AND b > 3 AND a > 3

6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

20

Optimisation de requêtes

n

Trouver une forme canonique

Règles de transformation

10. Transform ations sém antiques

Dépendent de la sém antique du domaine

Reliés aux contraintes d’intégrité

Exemple : suppression de jointure dans certains cas

Project(Join(Abus, Vins), NV)

Project(Abus, NV)

(11)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

21

Optimisation de requêtes

n

Trouver une forme canonique

B.NOM, B.PRENOM A.DATE V.CRU 01-01-1999 ‘Volnay’ >= = A.NV V.NV = V Résultat = B.NB A.NB B.VILLE ‘Montréal’ B = A B.NB, B.NOM, B.PRENOM A.NB, A.NV

V.NV B.NOM, B.PRENOM,A.NV B.NOM, B.PRENOM A.NV V.NV = V Résultat B.NB A.NB = B.VILLE ‘Montréal’ B = A A.DATE >= 01-01-1999 V.CRU = ‘Volnay’ 6Introduction 6Architecture 6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

Optimisation de requêtes

n

Décider de la stratégie d’exécution de bas

niveau

Tient compte des facteurs suivants

Les indexes

La distribution des valeurs de données mémorisées

L’emplacement des physique des données mémorisées

Etc.

(12)

6Modèles de données 6Modèle relationnel 6Algèbre relationnelle 6SQL 6Conception 6Fonctions avancées 6Concepts avancés 6Modèle des objets 6BD à objets

23

Optimisation de requêtes

n

Générer les plans de requêtes et choisir le

meilleur

Chaque opérateur algébrique est implanté par plusieurs

procédures

Un plan d’exécution est une combinaison de procédures

pour une requête donnée

Il existe plusieurs plans possibles pour une requête

Le coût de chaque plan est la somm e des coûts des

procédures qu’il contient

Le coût de chaque procédure est estimé en fonction des

résultats possibles de la procédure précédente

Tous les plans ne sont pas générés. Des techniques de

réduction de l’espace de recherche sont utilisées

Références

Documents relatifs

Ces matériaux ont été développés suivant trois axes principaux : d’abord l’axe des mouvements, associés aux moyens de transport et aux centres névralgiques

L ’opposition qui est établie entre « avoir un sens » et « parler » n’est pas très spectaculaire. Elle est cependant d ’une grande clarté : le rêve, certes, signifie quelque

Les cotextes argumentatifs attirent l’attention sur le caractère par définition fragmentaire de la parole journalistique enchâssante, dans la mesure où

D'autre part, si l'on tient compte du fait que, pour le haoussa, la plus grande diversité dialectale se situe dans la partie Nord-Ouest (Dogon Doutchi, Tibiri, Sokoto, Ader,

Our objective was to show that literature participates in the editorialization of the Trans-Canada, with editorialization referring to the process through which interactions

Il est désormais bien admis par la communauté des chercheurs que l’histoire de l’Anabase ne saurait être la retranscription fidèle d’un carnet de voyage annoté au jour le jour

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

If one core Core x violates a real-time con- straint (RT), Then the proposed strategy executes one of these solutions (SolutionA and SolutionB) in order to ensure that the