29.10.2014 Views

Rappels des concepts fondamentaux - smis inria

Rappels des concepts fondamentaux - smis inria

Rappels des concepts fondamentaux - smis inria

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Calculs d'agrégats<br />

Les fonctions d’agrégation (Count, Sum, Avg, Min, Max) permettent de réaliser <strong>des</strong><br />

calculs sur <strong>des</strong> ensembles de données<br />

• Calcul de statistiques globaux<br />

− Nombre de patients : SELECT count(*) FROM PAT<br />

− Prix moyen <strong>des</strong> médicaments : SELECT avg(Prix) FROM MED<br />

• Calcul de statistiques par groupe<br />

− Nombre de patients par ville :<br />

SELECT VillePat, count(*) NbPatient FROM PAT GROUP BY VillePat<br />

− Et celle-ci ?<br />

SELECT VillePat FROM PAT, RDV<br />

WHERE PAT.NumPat = RDV.NumPat and Motif = ‘mal de tête’<br />

GROUP BY VillePat<br />

HAVING count(DISTINCT(NumPat)) > 10<br />

Union/Inter°/Diff. : exemples<br />

• Ensemble <strong>des</strong> personnes de la base médicale<br />

SELECT NomMed NomPers FROM MED<br />

UNION<br />

SELECT NomPat NomPers FROM PAT<br />

• Patients qui sont aussi médecins<br />

SELECT NomPat PatMed FROM PAT<br />

INTERSECT<br />

SELECT NomMed PatMed FROM MED<br />

• Patients qui ne sont pas médecins<br />

SELECT NomPat Patient FROM PAT<br />

EXCEPT<br />

SELECT NomMed Patient FROM MED<br />

49<br />

50<br />

Évaluation « sémantique » d’une requête SQL<br />

Vues relationnelles<br />

1. FROM<br />

Réalise le produit cartésien <strong>des</strong> relations<br />

2. WHERE<br />

Réalise restriction et jointures<br />

3. GROUP BY<br />

Constitue les partitions<br />

(e.g., tri sur l’intitulé du groupe)<br />

4. HAVING<br />

Restreint aux partitions désirées<br />

5. SELECT<br />

Réaliser les projections/calculs finaux<br />

6. ORDER BY<br />

Trier les tuples résultat<br />

AGG1<br />

AGG3<br />

AGG1<br />

AGG3<br />

XXX<br />

XXX<br />

YYY<br />

ZZZ<br />

XXX<br />

XXX<br />

YYY<br />

ZZZ<br />

XXX<br />

ZZZ<br />

ZZZ<br />

XXX<br />

51<br />

AGG1<br />

AGG2<br />

AGG3<br />

• Les vues permettent d’implémenter l’indépendance logique<br />

en créant <strong>des</strong> objets virtuels<br />

• Vue = Question SQL stockée<br />

• Le SGBD stocke la définition et non le résultat<br />

• Exemple : la vue <strong>des</strong> patients parisiens<br />

Create View Patients_Parisiens as (<br />

Select<br />

From<br />

Nom, Prénom<br />

Patients<br />

Where Patients.Ville = ’Paris’ )<br />

52

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!