BD 2
• Calculer des informations globales sur une table
• Regrouper des lignes • Types d’attributs et opérateurs
spécifiques • Prendre en compte les valeurs
inconnues : NULL
B. Habert 2012 Organiser les ressources - BD2 2
Indicateurs globaux
• Points de vue sur une table – Des lignes une à une – Un ensemble de lignes – Des regroupements de lignes
• On va utiliser ces deux (nouveaux) points de vue
B. Habert 2012 Organiser les ressources - BD2 3
Indicateurs globaux • Indications globales pour une table ou une partie
de table (après une restriction), considérée comme un groupe – Nombre de lignes – Selon le type d’attribut : minimum,
maximum… – Sur des valeurs numériques : moyenne, écart-
type… • Résultat : une table dont la ligne unique fournit
les indications souhaitées B. Habert 2012 Organiser les ressources - BD2 4
Indicateurs globaux
PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf.’ )[infirmieres] SELECT COUNT(*) AS ’Nbre inf . ’ FROM infirmieres B. Habert 2012 Organiser les ressources - BD2 5
Indicateurs globaux
RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. jour’ )[<résultat1>] SELECT COUNT(*) AS ’Nbre inf . jour ’ FROM infirmieres WHERE service = ’Jour ’ ; B. Habert 2012 Organiser les ressources - BD2 6
Indicateurs globaux
RESTRICTION(service = ’Nuit’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. nuit’ )[<résultat1>] SELECT COUNT(*) AS ’Nbre inf . nuit ’ FROM infirmieres WHERE service = ’Nuit ’ ; B. Habert 2012 Organiser les ressources - BD2 7
Indicateurs globaux RESTRICTION(service PARMI (’Nuit’, ’Jour’))[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. jour + nuit’ )[<résultat1>] SELECT COUNT(*) AS ’Nbre inf . jour + nuit ’ FROM infirmieres WHERE service IN ( ’Jour’ , ’Nuit’ ) ;
B. Habert 2012 Organiser les ressources - BD2 8
Indicateurs globaux
PAR GROUPE( MINIMUM(jour_naissance) TITRE ’Début étude’, MAXIMUM(jour_naissance) TITRE ’fin étude’ )[bebes] SELECT MIN( jour_naissance ) AS 'Début étude', MAX( jour_naissance ) AS 'fin étude' FROM `bebes` ; B. Habert 2012 Organiser les ressources - BD2 9
Indicateurs globaux RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. jour’, MINIMUM(age) TITRE ’âge min.’, MAXIMUM(age) TITRE ’âge max.’, MOYENNE(age) TITRE ’âge moy.’, MINIMUM(anciennete) TITRE ’anc. min.’, MAXIMUM(anciennete) TITRE ’anc. max.’, MOYENNE(anciennete) TITRE ’anc. moy.’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 10
Indicateurs globaux SELECT COUNT( * ) AS ’Nbre inf. jour’ , MIN( age ) AS ’ âge min. ’ , MAX( age ) AS ’ âge max. ’ , FORMAT(AVG( age ) , 2) AS ’ âge moy. ’ , MIN( anciennete ) AS ’anc . min. ’ , MAX( anciennete ) AS ’anc . max. ’ , FORMAT(AVG( anciennete ) , 2) AS ’anc . moy. ’ FROM infirmieres WHERE service = 'Jour' ;
B. Habert 2012 Organiser les ressources - BD2 11
Indicateurs globaux RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES(), MINIMUM(age), MAXIMUM(age), MOYENNE(age), ÉCART-TYPE(age), )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 12
Indicateurs globaux SELECT COUNT(*) , MIN( age ) , MAX( age ) , AVG( age ) , STD( age ) FROM infirmieres WHERE service = ’Jour ’ ;
B. Habert 2012 Organiser les ressources - BD2 13
Indicateurs globaux RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. jour’, MINIMUM(age) TITRE ’âge min.’, MAXIMUM(age) TITRE ’âge max.’, MOYENNE(age) TITRE ’âge moy.’, ÉCART -TYPE(age) TITRE ’écart-type âge’, )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 14
Indicateurs globaux SELECT COUNT(*) AS ’Nbre inf . jour ’ , MIN( age ) AS ’ âge min. ’ , MAX( age ) AS ’ âge max. ’ , FORMAT(AVG( age ) , 2) AS ’ âge moy. ’ , FORMAT(STD( age ) , 2) AS ’ écart−type âge ’ FROM infirmieres WHERE service = ’Jour ’ ;
B. Habert 2012 Organiser les ressources - BD2 15
Indicateurs globaux
• On distinguera soigneusement – NOMBRE DE LIGNES() qui compte le nombre de
lignes – NOMBRE DE VALEURS DISTINCTES(<attribut>) qui
compte le nombre de valeurs distinctes de l’attribut mentionné.
• En SQL – COUNT(*) – COUNT(DISTINCT <attribut>)
B. Habert 2012 Organiser les ressources - BD2 16
Indicateurs globaux RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES(), NOMBRE DE VALEURS DISTINCTES(age) )[<résultat1>] SELECT COUNT(*), COUNT(DISTINCT age ) FROM infirmieres WHERE service = ’ Jour ’ ;
B. Habert 2012 Organiser les ressources - BD2 17
Indicateurs globaux RESTRICTION(service = ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ‘Infirmières de jour’, NOMBRE DE VALEURS DISTINCTES(age) TITRE ‘âges différents’ )[<résultat1>] SELECT COUNT(*) AS ’ Infirmières de jour ’ , COUNT(DISTINCT age ) AS ’ âges différents ’ FROM infirmieres WHERE service = ’ Jour ’ ;
B. Habert 2012 Organiser les ressources - BD2 18
Indicateurs globaux RESTRICTION(service = ’Nuit’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. nuit’, MINIMUM(age) TITRE ’âge min.’, MAXIMUM(age) TITRE ’âge max.’, MOYENNE(age) TITRE ’âge moy.’, MINIMUM(anciennete) TITRE ’anc. min.’, MAXIMUM(anciennete) TITRE ’anc. max.’, MOYENNE(anciennete) TITRE ’anc. moy.’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 19
Indicateurs globaux SELECT COUNT( * ) AS ’Nbre inf. nuit’ , MIN( age ) AS ’ âge min. ’ , MAX( age ) AS ’ âge max. ’ , FORMAT(AVG( age ) , 2) AS ’ âge moy. ’ , MIN( anciennete ) AS ’anc . min. ’ , MAX( anciennete ) AS ’anc . max. ’ , FORMAT(AVG( anciennete ) , 2) AS ’anc . moy. ’ FROM infirmieres WHERE service = ’Nuit' ;
B. Habert 2012 Organiser les ressources - BD2 20
Indicateurs globaux Entrées du calcul d’indicateurs globaux (inf. de nuit)
Résultats
B. Habert 2012 Organiser les ressources - BD2 21
Indicateurs globaux
• Des indicateurs qui permettent de faire sens
B. Habert 2012 Organiser les ressources - BD2 22
Regroupements TRI SUR(service)[infirmieres] SELECT * FROM infirmieres ORDER BY service ; • Les groupes sont
matérialisés par des couleurs différentes de lignes
B. Habert 2012 Organiser les ressources - BD2 23
Regroupements REGROUPER SUR(service)[infirmieres] SELECT * FROM infirmieres GROUP BY service ;
Première ligne de chaque groupe
B. Habert 2012 Organiser les ressources - BD2 24
Regroupements REGROUPER SUR(service)[infirmieres] PAR GROUPE( service TITRE ’Service’, NOMBRE DE LIGNES() TITRE ’nbre’, MINIMUM(age) TITRE ’âge min.’, MAXIMUM(age) TITRE ’âge max.’, MOYENNE(age) TITRE ’âge moy.’, MINIMUM(anciennete) TITRE ’anc. min.’, MAXIMUM(anciennete) TITRE ’anc. max.’, MOYENNE(anciennete) TITRE ’anc. moy.’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 25
Regroupements SELECT service AS ’ Service ’ , COUNT(*) AS ’nbre ’ , MIN( age ) AS ’ âge min. ’ , MAX( age ) AS ’ âge max. ’ , FORMAT(AVG( age ) , 2) AS ’ âge moy. ’ , MIN( anciennete ) AS ’anc . min. ’ , MAX( anciennete ) AS ’anc . max. ’ , FORMAT(AVG( anciennete ) , 2) AS ’anc . moy. ’ FROM infirmieres GROUP BY service ;
B. Habert 2012 Organiser les ressources - BD2 26
Regroupements REGROUPER SUR(sexe)[bebes] PAR GROUPE( sexe TITRE ’Sexe’, NOMBRE DE LIGNES() TITRE ’nbre’, NOMBRE DE LIGNES() / 121 * 100 TITRE ’%’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 27
Regroupements SELECT sexe AS ’Sexe ’ , COUNT( * ) AS ’nbre ’ , COUNT( * ) / 121 * 100 AS ’ %’ FROM bebes GROUP BY sexe ;
B. Habert 2012 Organiser les ressources - BD2 28
Regroupements REGROUPER SUR(etat_j3)[bebes] PAR GROUPE( etat_J3, NOMBRE DE LIGNES() TITRE ’nbre’, NOMBRE DE LIGNES() / 121 * 100 TITRE ’%’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 29
Regroupements SELECT etat_J3 , COUNT( *) AS ’nbre ’ , FORMAT(COUNT(*) / 121 * 100, 2) AS ’ %’ FROM bebes GROUP BY etat_j3 ;
B. Habert 2012 Organiser les ressources - BD2 30
Regroupements REGROUPER SUR(sexe, etat_j3)[bebes] | PAR GROUPE( sexe TITRE ’Sexe’, etat_J3, NOMBRE DE LIGNES() TITRE ’nbre’, NOMBRE DE LIGNES() / 121 * 100 TITRE ’%’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 31
Regroupements SELECT sexe AS ’Sexe ’ , etat_J3 , COUNT( * ) AS ’nbre ’ , FORMAT(COUNT( * ) / 121 * 100, 2) AS ’ %’ FROM bebes GROUP BY sexe , etat_j3 ;
B. Habert 2012 Organiser les ressources - BD2 32
Regroupements REGROUPER SUR(etat_j3, sexe)[bebes] | PAR GROUPE( sexe TITRE ’Sexe’, etat_J3, NOMBRE DE LIGNES() TITRE ’nbre’, NOMBRE DE LIGNES() / 121 * 100 TITRE ’%’ )[<résultat1>]
B. Habert 2012 Organiser les ressources - BD2 33
Regroupements SELECT sexe AS ’Sexe ’ , etat_J3 , COUNT( * ) AS ’nbre ’ , FORMAT(COUNT( * ) / 121 * 100, 2) AS ’ %’ FROM bebes GROUP BY etat_j3, sexe ;
B. Habert 2012 Organiser les ressources - BD2 34
Regroupements Regroupement sur sexe puis etat_J3
Regroupement sur etat_J3 puis sexe
B. Habert 2012 Organiser les ressources - BD2 35
Regroupements • Table = ensemble d’entités de premier
niveau • Regroupements = ensemble d’entités de
deuxième niveau • Groupe = entités ayant mêmes valeurs
pour les attributs sélectionnés • Les regroupements favorisent
– Les généralisations – Le raisonnement inductif
B. Habert 2012 Organiser les ressources - BD2 36
Regroupements REGROUPER SUR(id_infirmiere)[fiches_originelles] | PAR GROUPE( id_infirmiere TITRE ’Infirmière’, NOMBRE DE LIGNES() TITRE ’nbre fiches’, NOMBRE DE VALEURS DISTINCTES(id_bebe), SOMME(LONGUEUR(texte)) / NOMBRE DE LIGNES() TITRE ’nbre moy. car.’ )[<résultat1>] TRI DESCENDANT SUR(’nbre moy. car.’)[<résultat2>] NB : la table fiches_originelles comprend la signalétique et le texte
B. Habert 2012 Organiser les ressources - BD2 37
Regroupements Nombre moyen de caractères / fiche par inf.
2 infirmières proches mais de prolixité différente
B. Habert 2012 Organiser les ressources - BD2 38
Gérer l’inconnu : NULL
RESTRICTION(service = NULL)[infirmieres] retourne la table vide • NULL n’est même pas égal à lui-même • Il marque l’absence de valeur (temporaire
ou non) • D’où des opérateurs spécifiques
B. Habert 2012 Organiser les ressources - BD2 40
Gérer l’inconnu : NULL RESTRICTION(service <> ’Jour’)[infirmieres] | PAR GROUPE( NOMBRE DE LIGNES() TITRE ’Nbre inf. <> jour’ )[<résultat1>] SELECT COUNT( * ) AS ’Nbre inf . <> jour ’ FROM infirmieres WHERE service <> ’ Jour ’ ; • NULL suppose des précautions pour être pris en compte dans les
regroupements
B. Habert 2012 Organiser les ressources - BD2 41
Gérer l’inconnu : NULL
• Dans les fiches, on a noté 0 quand l’infirmière avait oublié de fournir le poids du bébé
• Cette convention (à la place de NULL) – Sous-estime de 9 à 15 grammes la moyenne
réelle – Sur-estime la dispersion autour de cette
moyenne • NULL : compliqué mais nécessaire B. Habert 2012 Organiser les ressources - BD2 42
Top Related