4. IMPLEMENTATION DES STRUCTURES DE DONNEES 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4. IMPLEMENTATION DES STRUCTURES DE DONNEES 2e partie Version 2 - Janvier 2012 Modifié le 10 avril 2013 Support du chapitre 4, Implémentation des structures de données de l'ouvrage Bases de données, J-L Hainaut, Dunod 2012. I. Concepts des bases de données
4. IMPLEMENTATION DES STRUCTURES DE DONNEES 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4. IMPLEMENTATION DES STRUCTURES DE DONNEES 4.1 Introduction 4.2 Les mémoires externes 4.3 Organisation d'un espace de stockage 4.4 Traitement séquentiel d'un fichier 4.5 Les index 4.6 Organisation séquentielle indexée 4.7 Organisation calculée 4.8 Les index secondaires 4.9 Les techniques d'agrégation (clustering) 4.10 Un exemple : SQL Server de Microsoft Contenu I. Concepts des bases de données
4.5 Les index 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index I. Concepts des bases de données
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Index structure technique associée à un fichier (une table par exemple) qui permet un accès sélectif et rapide aux enregistrements (ou lignes) de ce fichier qui possèdent des valeurs déterminées de certains champs. Ces champs constituent la clé de l'index. En SQL, l'extraction et la modification de données ne nécessitent pas la connaissance des index. On peut associer un nombre quelconque d'index à un fichier (table). Un index est dit identifiant si un identifiant a été déclaré sur la clé de cet index. I. Concepts des bases de données
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Les index améliorent les performances de certaines opérations sur les données mais induisent des coûts de stockage et de gestion. La requête select NOM, LOCALITE from CLIENT where NCLI = ’C400’ s'exécutera en 15 s sans index sur NCLI et en 0.025 s avec un index sur NCLI (600 fois plus rapidement !). Mais, pas de miracle : tout avantage a un coût ! Ici, le volume et le coût de gestion de l'index. La modification de lignes de la table CLIENT implique des opérations de modification de l'index sur NCLI. I. Concepts des bases de données
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Un index convertit une valeur de la clé en l'ensemble des adresses des enregistrements qui possèdent cette valeur. Formellement, un index défini sur une colonne K de la table T matérialise une fonction f qui renvoie pour chaque valeur k de K un ensemble A d'adresses de lignes dans T. A = f(k) Si la colonne K est identifiante, A contient au plus une adresse. Les différentes technologies d'index se distinguent par la manière dont la fonction f est implémentée : table de conversion ou calcul. I. Concepts des bases de données
Deux classes d'index 1. les index primaires 2. les index secondaires 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Deux classes d'index 1. les index primaires 2. les index secondaires I. Concepts des bases de données
4.5 Les index Index primaire 1. le plus souvent identifiant 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Index primaire 1. le plus souvent identifiant 2. un seul index primaire par fichier 3. la structure du fichier dépend fortement de la présence d'un index primaire 4. difficile d'ajouter et de supprimer un index primaire au vol 5. faible volume, très bonnes performances Index secondaire 1. identifiant ou non identifiant 2. de 0 à N index secondaires par fichier 3. la structure du fichier est indépendante de la présence d'un index secondaire 4. facile d'ajouter et de supprimer un index secondaire au vol 5. volume plus important, moins bonnes performances 6. Certains SGBD n'offrent que des index secondaires I. Concepts des bases de données
Principales technologies des index primaires 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.5 Les index Principales technologies des index primaires 1. organisation séquentielle indexée 2. organisation calculée I. Concepts des bases de données
4.6 Organisation séquentielle indexée 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Principes Un fichier séquentiel indexé de clé K est constitué d'un fichier de base séquentiel ordonné sur le(s) champ(s) K d'un index sur K index sur K fichier de base ordonné sur K I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Principes L’index matérialise une fonction f qui transforme une valeur k de la clé K en une adresse A. La fonction f est implémentée sous la forme d'une table de correspondance fournissant une adresse (celle d'une page) pour chaque valeur de K. I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Principes à démontrer ! L'organisation séquentielle indexée d'un fichier permet 1. la lecture séquentielle ordonnée des enregistrements du fichier de base 2. la lecture séquentielle ordonnée des valeurs de K (via l'index) 3. l'accès rapide à l'enregistrement tel que K = k 4. l'accès rapide aux enregistrements tel que K [k1, k2] 5. l'insertion rapide d'un enregistrement de clé K 6. la modification rapide de la valeur de K d'un enregistrement 7. la suppression rapide d'un enregistrement Cette organisation s'inspire de structure d'arbre dite B-tree (balanced tree) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Principes Hypothèses simplificatrices 1. La clé K est un identifiant du fichier 2. Le fichier contient des enregistrements d'un seul type 3. Les enregistrements sont de taille fixe 4. La taille des enregistrements est inférieure à la moitié de celle des pages 5. Un enregistrement est entièrement compris dans une page I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Principes B062 GOFFIN Namur B2 B112 HANSENNE Poitiers C1 B332 MONTI Genève B512 GILLET B1 C003 AVRON C123 MERCIER C400 FERARD D063 Toulouse F010 TOUSSAINT F011 PONCELET F400 JACOB Bruxelles C2 K111 VANBIST Lille K729 NEUMAN N227 MARTIN P650 ANTOINE · G110 H736 H991 F375 BERNIER Paris STEVEN London L422 FRANK M162 M345 NOEL Liège S127 VANDERKA S712 GUILLAUME . . . I452 J079 J823 fichier de base index H109 DUPUIS Lausanne ARNOULD Observations 1. les enregistrements de chaque page de base sont ordonnés selon K 2. une page de base est caractérisée par sa plus grande valeur de K. 3. les pages de base sont ordonnées selon K 4. l'index comprend n niveaux (n 1) 5. chaque page d'index comprend des entrées d'index 6. chaque niveau d'index jouit des propriétés 1 à 3 7. chaque entrée du niveau n de l'index comprend 1 valeur ki de K et 1 pointeur vers la page de base dont la plus grande valeur de K = ki 8. chaque entrée du niveau m (m < n) de l'index comprend 1 valeur ki de K et 1 pointeur vers la page d'index de niveau m+1 dont la plus grande valeur de K = ki 9. le 1er niveau de l'index comprend 1 page 10. certaines pages ne sont pas pleines 11. la position d'un enregistrement est fonction de sa valeur de K I. Concepts des bases de données
H109 se trouve dans cette page 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Accès par clé Accès par clé (K = 'H109') H109 P650 H109 H991 H109 H736 H109 se trouve dans cette page ou nulle part ailleurs G110 H736 H991 F400 J079 P650 S712 H109 DUPUIS Lausanne C2 H736 ARNOULD Paris B1 K = 'H109' niveau 1 niveau 2 niveau 3 page de base Observation 1 : la recherche par clé nécessite la lecture de n+1 pages, quel que soit l'enregistrement. Observation 2 : si la recherche échoue, tout n'est pas perdu : elle indique la page dans laquelle l'enregistrement aurait dû se trouver. I. Concepts des bases de données
l'enregistrement recherché 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Accès par clé Accès par clé (K = k) i := 1; p := p1 i := i + 1 I := 1re entrée de la page [p] tel que I.K k R:= 1er enreg. de la page [p] tel que R.K k i = n ? oui non R.K = k ? l'enregistrement recherché est absent du fichier R est l'enregistrement recherché p := I.ptr k Kmax ? I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modes d'accès 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modes d'accès Les trois modes d'accès aux enregistrements ponctuel selon K intervalle selon K séquentiel selon K select * from CLIENT where NCLI = 'C400' select * from CLIENT where NCLI like 'C%' select * from CLIENT order by NCLI I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Insertion d'un enregistrement 1. On identifie la page d'insertion 2. On tente d'y insérer l'enregistrement : cas 1 : la page contient de l'espace libre cas 2 : la page ne contient pas d'espace libre I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Insertion d'un enregistrement (K = H555) G110 H736 H991 - H555 est absent - la page n'est pas pleine F400 H991 J079 P650 K = 'H555' P650 S712 H109 DUPUIS Lausanne C2 H736 ARNOULD Paris B1 G110 H736 H991 F400 J079 P650 S712 H109 DUPUIS Lausanne C2 H555 MARTINEZ Madrid H555 est inséré dans la page H736 ARNOULD Paris B1 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Insertion d'un enregistrement (K = C805) B332 C003 D063 F400 H991 J079 P650 S712 C123 MERCIER Namur C1 C400 FERARD Poitiers B2 K = 'C805' - C805 est absent - la page est pleine D063 MERCIER Toulouse B332 C003 C400 F400 H991 J079 P650 S712 C805 SMITH Londres B1 - la page est dédoublée D063 MERCIER Toulouse C123 MERCIER Namur C1 C400 FERARD Poitiers B2 D063 nouvelle page ancienne page 0,5 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Insertion d'un enregistrement La nouvelle page est-elle juste devant la page pleine ? Sauf miracle, non ! Où a-t-on trouvé cette page ? - parmi les pages libres réservées à la fin du fichier - parmi les pages préalablement libérées suite à la suppression d'enregistrements. En règle générale, la nouvelle page est physiquement plus ou moins éloignée de sa page soeur. I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Séquence physique et séquence logique 1 99 100 101 102 103 99.997 99.998 99.999 séquence physique des pages dans le fichier 101 99 102 . . . 1 100 103 . . . séquence logique de lecture Insertion dans la page 101, qui devient 101 (localisée en 99.997) + 102 (localisée en 101): . . . 1 99 100 101 99.999 99.998 99.997 103 102 104 séquence physique séquence logique Les pages se suivent logiquement mais ne se suivent plus physiquement = ruptures physiques. I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Comment reconstituer la séquence logique ? Trois techniques 1. Les pages de bases sont chaînées via l'ajout d'un pointeur référençant la page de base suivante. Le parcours de cette chaîne livre les pages de base dans bon ordre. 2. Les pages du dernier niveau d'index sont chaînées via l'ajout d'un pointeur référençant la page d'index suivante (VSAM d'IBM). L'utilisation des pointeurs de ces pages parcourues selon cette chaîne livre les pages de base dans bon ordre. 3. L'accès aux pages de base s'effectue via le parcours de l'index (visite des noeuds en profondeur d'abord). I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Synthèse: insertion d'un enregistrement (K = k) Procédure 1. On recherche la page [p] dans laquelle l'enregistrement K = k devrait être stocké. 2. Si la page [p] n'est pas pleine, on y insère l'enregistrement. 3. Si la page [p] est pleine, on procède à son éclatement : 3.1 on insère devant [p] une page vide [p'] (logiquement, pas physiquement) 3.2 on répartit la charge de [p] entre les pages [p'] et [p] 3.3 on insère l'enregistrement dans l'une de ces deux pages 3.4 on insère une entrée relative à la page [p'] dans le niveau n de l'index Observations 1. le taux d'occupation de chaque page reste 0,5 (sauf, éventuellement la dernière) 2. les pages logiquement consécutives ne le sont plus nécessairement physiquement 3. l'insertion d'une entrée d'index obéit à la même procédure I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Remarque: insertion en fin de fichier Scénario : les enregistrements sont insérés par valeurs croissantes de la clé K (insertion ordonnée) Dans ce cas, la gestion des pages pleines peut être différente de la procédure décrite plus haut. Exemple : Lors d'une insertion ordonnée, lorsque qu'une page (la dernière du fichier de base) est pleine, une page suivante lui est associée, qui contiendra les enregistrements suivants. Le taux d'occupation n'est plus de 50% mais peut être plus élevé : 90% ou même 100% (cf. Oracle, malgré l'appellation maladroite 90-10 split) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Suppression d'un enregistrement 1. On identifie la page de l'enregistrement à supprimer 2. On l'efface de sa page 3. On réorganise la page si nécessaire : cas 1 : la page garde un taux d'occupation 0,5 cas 2 : le taux d'occupation de la page tombe sous 0,5 cas 2.1 : redistribution des enregistrements avec une page voisine cas 2.2 : fusion de la page avec une page voisine I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Suppression d'un enregistrement (K = 'C400') B332 C003 D063 F400 H991 J079 P650 S712 C123 MERCIER Namur C1 C400 FERARD Poitiers B2 K = 'C400' D063 MERCIER Toulouse 0,5 B332 C003 D063 F400 H991 J079 P650 S712 C123 MERCIER Namur C1 D063 MERCIER Toulouse 0,5 suppression I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Suppression d'un enregistrement (K = 'B512') B332 B062 GOFFIN Namur B2 C003 0,5 F400 H991 J079 P650 B110 HANSENNE Poitiers C1 D063 B332 MONTI Genève B1 F400 K = 'B512' P650 S712 B512 GILLET Namur B1 < 0,5 C003 AVRON Poitiers B1 B110 C003 D063 F400 H991 J079 P650 S712 B332 MONTI Genève B1 C003 AVRON Poitiers B1 B062 GOFFIN Namur B2 B110 HANSENNE Poitiers C1 0,5 suppression puis répartition I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Suppression d'un enregistrement (K = 'H109') G110 F375 BERNIER Paris C1 H736 0,5 F400 H991 J079 P650 G110 STEVEN London B2 H991 K = 'H109' P650 S712 H109 DUPUIS Lausanne C2 < 0,5 H736 ARNOULD Paris B1 libre 0,5 H736 H991 F400 J079 P650 S712 H736 ARNOULD Paris B1 F375 BERNIER Paris C1 G110 STEVEN London B2 suppression puis fusion I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Synthèse: suppression d'un enregistrement Procédure 1. On recherche la page [p] de l'enregistrement. 2. On efface l'enregistrement de la page [p]. 3. Si le taux d'occupation de la page [p] est < 0,5 : 3.1 on rééquilibre le contenu de [p] avec celui de la page précédente [p'] 3.2 si le taux d'occupation des 2 pages est 0,5, on corrige l'entrée d'index de niveau n relative à la 1re page 3.2 si le taux d'occupation d'une des deux pages est < 0,5, on les fusionne 3.3.1 on transfère le contenu de la page [p'] vers [p] 3.3.2 on abandonne la page [p'], qui devient libre 3.3.3 on supprime l'entrée de [p'] dans le niveau n de l'index Observations 1. le taux d'occupation de chaque page reste 0,5 2. on produit des pages vides réutilisables lors de l'insertion d'enregistrements 3. la suppression d'une entrée d'index obéit à la même procédure I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Modifications 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Modifications Modification de la valeur de K (k1 k2) d'un enregistrement Procédure 1. On supprime l'enregistrement K = k1. 2. On crée un enregistrement K = k2 de même contenu. Modification d'un champ extérieur à K : simple remplacement dans la page. I. Concepts des bases de données
Caractéristiques et performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances Caractéristiques et performances 1. Calcul des volumes 2. Calcul des temps de lecture 3. Calcul des temps de modification 4. Estimation des taux I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (volumes) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (volumes) Volume d'un fichier séquentiel indexé Les données 1. Nombre d'enregistrements : Nr 2. Taille des enregistrements : Lr 3. Taille de la clé K : Lk 4. Taille d'une entrée d'index (Lk + taille pointeur de page) : Li 5. Taux moyen d'occupation des pages de base : tb 6. Taux moyen d'occupation des pages d'index : ti Les grandeurs calculées 1. Taille du fichier (en pages) : Np 2. Taille du fichier de base : Npb 3. Taille de l'index : Npi 4. Nombre de niveaux d'index : n 5. Nombre d'entrée d'index au niveau m : Ni(m) 6. Nombre de pages d'index au niveau m : Npi(m) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (volumes) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (volumes) Volume d'un fichier séquentiel indexé On a bien sûr : Np = Npb + Npi Fichier de base : calcul de Npb Capacité d'une page de base Mrpp = Lp / Lr Contenu moyen d'une page de base Nrpp = tb x Mrpp Nombre de pages de base Npb = Nr / Nrpp pages vides ignorées I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (volumes) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (volumes) Volume d'un fichier séquentiel indexé Index : calcul détaillé de Npi On a : Npi = Sm n Npi(m) Capacité d'une page d'index Mipp = Lp / Li Contenu moyen d'une page de base Nipp = ti x Mipp Taille du niveau n Nombre d'entrée de l'index Ni(n) = Npb Nombre de pages Npi(n) = Ni(n) / Nipp Taille d'un niveau m < n Nombre d'entrée de l'index Ni(m) = Npi(m+1) Nombre de pages Npi(m) = Ni(m) / Nipp On atteint le niveau m = 1 lorsque Npi(m) = 1 On en déduit le nombre de niveaux n I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (volumes) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (volumes) Volume d'un fichier séquentiel indexé Index : calculs simplifiés Evaluation de n (base quelconque) n = log(Npb) / log(Nipp) Evaluation de Npi En général Npi(n) >> Sm < n Npi(m) Donc Npi Npi(n) = Npb / Nipp I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (volumes) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (volumes) Volume d'un fichier séquentiel indexé Pour les concepteurs pressés et pas trop regardants : On connait Nr, Lr, Li, tb, ti, Lp 1. Taille du fichier de base Npb = Nr / tb x Lp / Lr 2. Taille de l'index Npi Npi(n) = Npb / (ti x Lp / Li) 3. Nbre de niveaux d'index n = log(Npb) / log(ti x Lp / Li ) Eviter de mémoriser ces formules ! I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé Trois opérations 1. Lecture séquentielle 2. Lecture par index d'un enregistrement 3. Lecture par index des enregistrements d'un intervalle de K Hypothèses réalistes 1. Disque partagé 2. Lecture anticipée d'une piste I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 1. Lecture séquentielle selon K Préliminaire : coût du phénomène de ruptures n° physique . . . 1 99 100 101 99.999 99.998 99.997 102 103 0,184 n° séq. logique éclatement de la page 101 en 101 (nouvelle) et 102 (ancienne 101) . . . 1 99 100 101 99.999 99.998 99.997 103 102 104 0,184 12,3 0 Pourquoi 0 ? I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 1. Lecture séquentielle selon K Analyse 1. Lecture des pages du fichier de base selon leur séquence physique ne marche pas, car ruptures de séquence (séquence physique séquence logique) 2. On accède aux pages de base à partir de l'index (tout ou dernier niveau avec chaînage), qui est ordonné selon K 3. Temps de lecture = temps de parcours de l'index (ou dernier niveau) + temps d'accès aux pages de base 4 Mais, temps de parcours de l'index en général négligeable I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 1. Lecture séquentielle selon K Calcul sans rupture de séquence On a déterminé : tlsf = tlsf2 = Npb x tls1 Calcul avec ruptures de séquence Soit pr la proportion de pages en rupture de séquence On a : tlsf = (1 - pr) x Npb x tls1 + pr x Npb x tla1 Exemple Npb = 250.000; pr = 0,2; Sans rupture : tlsf = 46 s Avec ruptures : tlsf = 652 s I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 2. Lecture ponctuelle selon K Analyse 1. Examen naïf : on accède à 1 page pour chaque niveau d'index + 1 page de base 2. En pratique, on charge les premiers niveaux d'index dans le tampon pour éviter les accès au disque I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 2. Lecture ponctuelle selon K Calcul naïf : tlk1 = tla1 x (n + 1) + 1 page pour tout le reste Calcul pratique Si on maintient les m premiers niveaux d'index dans le tampon : tlk1 = tla1 x (n-m+1) Le nombre de pages du tampon dédiées au processus est de Sj m Npi(j) + 1 Exemple Npb = 250.000; n = 3; Npi(1) = 1; Npi(2) = 46; Npi(3) = 3.361; Tampon de 1 page: tlk1 = 12,3 X 4, soit 49,2 ms Tampon de 1 + 1 = 2 pages : tlk1 = 12,3 X 3, soit 36,9 ms Tampon de 1 + 46 + 1 = 48 pages : tlk1 = 12,3 X 2, soit 24,6 ms Tampon de 1 + 46 + 3.361 + 1 = 3 409 pages : tlk1 = 12,3 X 1, soit 12,3 ms les performances ont un coût I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 3. Lecture par intervalle [k1, k2] selon K Analyse 1. Intervalle : NCLI >= 'K111'; NCLI >= 'K000' and NCLI <= 'K999'; NCLI between 'K000' and 'K999'; NCLI like 'K%' 2. L'index est utilisé en deux temps : 2.1 accès par l'index NCLI = k1 (ou, plus généralement 1er enregistrement qui satisfait la condition NCLI >= k1) 2.2 lecture séquentielle selon l'index tant que K <= k2 I. Concepts des bases de données
Temps de lecture d'un fichier séquentiel indexé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de lecture) Temps de lecture d'un fichier séquentiel indexé 3. Lecture par intervalle [k1, k2] selon K Nombre d'enregistrements et de pages dans l'intervalle Probabilité qu'un enregistrement tombe dans l'intervalle : pik Nombre d'enregistrements dans l'intervalle : nrik = pik x Nr Ces enregistrements occupent : npik = (nrik - 1)/ Nrpp + 0,5 + 1 pages consécutives Calcul du temps de lecture séquence courte : tlik = tla1 + (npik - 1) x ttr séquence plus longue (lecture anticipée) : tlik = npik x tls1 séquence plus longue avec ruptures : voir texte I. Concepts des bases de données
Temps de modification des données 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de modification) Temps de modification des données 1. Insertion d'un enregistrement Soit tsplit la proportion des insertions qui ont provoqué un éclatement tins = tl1k + (1 + 3 x tsplit) x tla1 lire page vide recopier nouvelle page maj de l'index recopier page courante accès à la page de base I. Concepts des bases de données
Temps de modification des données 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de modification) Temps de modification des données 2. Suppression d'un enregistrement Soit tbal la proportion des suppressions qui ont provoqué un rééquilibrage Soit tmerge la proportion des suppressions qui ont provoqué une fusion tdel = (1 + 3 x tbal + 3 x tmerge) x tla1 lire page voisine libérer page vide maj de l'index lire page voisine recopier page voisine maj de l'index recopier page courante I. Concepts des bases de données
Temps de modification des données 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (temps de modification) Temps de modification des données 3. Modifier un enregistrement = une suppression + une insertion I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Les calculs dépendent de 6 taux : tb et ti (mais phénomène identique = t) pr tsplit tbal tmerge Comment les évaluer ? 1. Analytiquement (processus stochastiques) : complexe 2. Par simulation : plus simple, intuitif mais réclame un peu de programmation I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Paramètres d'une simulation 1. Nombre initial de pages : Np0 2. Taille des pages : Mrpp [en nombre d'enregistrements] 3. Taux d'occupation initial t0 (ou nombre initial d'enregistrements par page Nrpp0 = t0 x Mrpp ) 4. Proportion d'insertions tins parmi des opérations insert-delete (ou %ins de 0 à 100); 100% = insertions seulement; 0% = suppressions seulement 5. Nombre d'opérations de la simulation Nop 6. Nombre d'exécutions Nsim (sous la forme de nombre de pas Npas et nombre d'opérations par pas Nopp) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Simulateur tableau d'entiers PAGE(Npmax); PAGE(I) = nbre d'enregistrements de la page I on initialise les Np0 premières pages selon Nrpp0 on choisit une opération au hasard selon %ins on choisit un enregistrement R au hasard (il se trouve dans la page P) on simule l'opération sur R en modifiant PAGE(P) et ses voisines selon l'opération choisie à la fin de chaque pas, on mémorise les statistiques à la fin des Nsim exécutions, on calcule les moyennes des statistiques et on les sort dans un fichier de résultats Simulateur : ISAM-auto.dbm I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Résultats d'une simulation (moyenne des Nsim exécutions) 1. Step : numéro du pas courant (de 0 à Npas) 2. Nop : nombre d'opérations exécutées 3. Nins : nombre d'insertions exécutées 4. Ndel : nombre de suppressions exécutées 5. Np : nombre actuel de pages 6. Nr : nombre actuel d'enregistrements 7. tocc : taux d'occupation actuel 8. Nsplit : nombre d'insertions avec éclatement 9. Nbal : nombre de suppressions avec rééquilibrage 10. Nmerge : nombre de suppressions avec fusion 11. Nerror : nombre d'erreurs (doit être 0) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Fichier de paramètres pour 3 simulations 'Simulations pour %ins = 70, 80, 90 'Np0, Mrpp, Nrpp0, TauxIns, NbrePas, NbreOpPas, NbreSimul step Np Nr tocc Nsplit Nbal Nmerge 5000, 40, 28, 70, 200, 2000, 5 5000, 40, 28, 80, 200, 2000, 5 5000, 40, 28, 90, 200, 2000, 5 ' commentaires résultats demandés simulation 1 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation des taux d'occupation Résultats de la simulation 1 Start time = 01/12/2011 09:38:44 End time = 01/12/2011 09:44:58 STEP Np Nr tocc Nsplit Nbal Nmerge 0 5000 140000 0,7 0 0 0 1 5000 140794 0,70397 0 0 0 2 5000 141608 0,7080137 0,2 0 0 3 5000 142430 0,7121235 0,2 0 0 4 5000 143239 0,7161673 0,2 0 0 5 5000 144017 0,7200552 0,2 0 0 6 5000 144834 0,724112 0,4 0 0 7 5001 145673 0,7282786 0,6 0,2 0 . . . 197 10571 297375 0,7033097 5929,6 3340,2 359 198 10597 298191 0,7034819 5957,4 3356,8 360,4 199 10629 298985 0,7032048 5990,6 3373,8 361,2 200 10656 299797 0,7033539 6019,6 3388,6 363,6 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t Comment évolue t ? 1. En fonction du nombre d'opérations nop depuis la création du fichier. Durée de la simulation : nop = Nop. 2. En fonction de la taille des pages Mrpp [en nombre d'enregistrements] 3. En fonction du taux d'occupation t0 à la création du fichier (Nr0 = x ) 4. En fonction du % d'insertions %ins [0-100] dans les opérations insert-delete (100 = insertions seulement; 0 = suppressions seulement) 5. Ne dépend pas de la taille du fichier (Np) mais de nop / Nr0 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t 1 pas = 1,25 x Nr0 / 100 Np0 = 5 000; Mrpp = 40; t0 = 0,8; %ins = 50-100; Nop = 400 000 I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - les résultats sont-ils extrapolables ? oui : [k x Np0, Mrpp, Nrpp0, %ins, k x Nop] = [Np0, Mrpp, Nrpp0, %ins, Nop] [ Np0 = 1 000 000; Mrpp = 40; t0 = 0,8; %ins = 90; Nop = 100 000 000] = [Np0 = 5 000; Mrpp = 40; t0 = 0,8; %ins = 90; Nop = 500 000] I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Comportement asymptotique Que devient t lorsqu'on laisse fonctionner le fichier pendant très longtemps ? Il tend vers une constante t = q 1 pas = 5 x Nr0 / 100 Np0 = 5 000; Mrpp = 40; t0 = 0,8; %ins = 50-100; Nop = 1 600 000 I. Concepts des bases de données
La valeur asymptotique t = q dépend de %ins et Mrpp 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Comportement asymptotique La valeur asymptotique t = q dépend de %ins et Mrpp q = f(%ins, Mrpp) coût : 700h de calcul I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Les abaques opérationnels La valeur asymptotique est un concept théorique : on ne laisse jamais un fichier fonctionner aussi longtemps sans réorganisation (pr > 0,5 !!!). Seule la période de prime jeunesse (A, B, C) est utile. Simulations courtes. [Mrpp=40; t0 = 0,8; %ins = 90%] I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Les abaques opérationnels Abaques opérationnels : nous renseignent sur la période utile des fichiers. Obtenus à partir d'une série de simulations. Plus faciles à utiliser que des tableaux de chiffres Permettent des interpolations Trois familles : selon Mrpp selon %ins selon t0 I. Concepts des bases de données
t = f(%ins=55; t0=0,7; Mrpp=(10-100); pas) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Les abaques opérationnels Abaques selon Mrpp 1 pas = Nr0 / 100 t = f(%ins=55; t0=0,7; Mrpp=(10-100); pas) I. Concepts des bases de données
t = f(%ins=50-100; t0=0,7; Mrpp=20; pas) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Les abaques opérationnels Abaques selon %ins 0,799 1 pas = Nr0 / 100 22 t = f(%ins=50-100; t0=0,7; Mrpp=20; pas) I. Concepts des bases de données
t = f(%ins=55; t0=0,6-1; Mrpp=20; pas) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t - Les abaques opérationnels Abaques selon t0 1 pas = Nr0 / 100 t = f(%ins=55; t0=0,6-1; Mrpp=20; pas) I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de t, pr, tsplit , tbal, tmerge 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 t Pr tsplit tbal tmerge 1 pas = Nr0 / 100 [Np0 = 11 250; Mrpp = 20; %ins = 90; t0 = 0,8; Nop = 360 000] I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (taux) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (taux) Evaluation de pr, tsplit , tbal, tmerge 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 tsplit tbal tmerge 1 pas = Nr0 / 100 [Np0 = 11 250; Mrpp = 20; %ins = 90; t0 = 0,8; Nop = 360 000] I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : évolution d'un fichier de base Nbre initial de pages Taille des pages Taux de chargement initial % des insertions Nbre d'opérations par jour Nbre de pas Nop = 2 x Nr0 Tps lecture page suivante (prefetch) Tps lecture aléatoire 1 page. Tps lecture page suivante (rupture) Tps accès page de base av. insert Tps accès page de base av. delete Nbre initial d'enr. par page Nbre initial d'enr. Nbre total d'opérations Nbre d'opérations par pas Nbre d'insertions par pas Nbre de suppressions par pas Nbre de nouveaux enreg. par pas Nbre de jours par pas I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : évolution d'un fichier de base Nbre de jours N° du pas Nbre d'enreg. Nbre d'enr. par page Nbre de pages Tps de lecture séquentielle Vitesse de lecture (enreg./s) Tps d'une insertion Tps d'une suppression I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : évolution d'un fichier de base Quand réorganiser ? Tps lecture page suivante (rupture) tlsr = 12,3 ms tlsr = 4,0 ms I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : calcul volume et tps de lecture fichier SI Tps déplacement bras unitaire Tps déplacement bras moyen Vitesse de rotation Taille d'un secteur Nbre de secteurs/piste Nbre de pistes/cylindre Nbre de cylindre Capacité d'une piste Capacité d'un cylindre Capacité d'un disque (en MB) Tps d'une rotation Tps lecture d'un secteur aléatoire Tps lecture d'une piste aléatoires Taille d'une page Taille pointeur d'enreg. Taille pointeur de page Taux d'occupation fichier de base Taux d'occupation index Overhead page de base Overhead enreg. de base Overhead page d'index Overhead entrée d'index Overhead fichier Taille d'une extension Taille du tampon Nre de pages/piste Tps lecture d'une page aléatoire Nbre d'enreg. Taille d'un enreg. Taille de la clé Modèle de calcul : ISAM.xls I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : calcul volume et tps de lecture fichier SI Taille enreg. Nbre max d'enreg./page Nbre moyen d'enreg./page Nbre de pages de base Taille entrée d'index Nbre max d'entrées/page Nbre moyen d'entrées/page Nbre de pages d'index Nbre de niveaux d'index Niveau 3 : nbre d'entrées Niveau 3 : nbre de pages Niveau 2 : nbre d'entrées Niveau 2 : nbre de pages Niveau 1 : nbre d'entrées Niveau 1 : nbre de pages I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances (application) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances (application) Application : calcul volume et tps de lecture fichier SI Volume du fichier de base Volume de l'index Volume total Volume total réel ... en MB ... en disque Nbre de niveaux observés Nbre de niveaux calculés Taux d'occupation global Tps max de lect. séquentielle Idem réduit à l'enreg. Vitesse de lecture Tps d'accès par clé Tps min. de lect. séquentielle Idem réduit à l'enreg. Vitesse de lecture Accès par clé Idem en secondes Vitesse de lecture par clé Taille du tampon Taille du tampon utilisée I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances Dégradation des performances d'un fichier séquentiel indexé Les opérations de modification entraînent principalement 2 phénomènes de dégradation des performances : 1. Chute des taux d'occupation tb et ti : Npb = Nr / (tb x Mrpp) augmente tlsf = Npb x tls1 augmente n = log(Npb) / log(ti x Lp / Li ) augmente 2. Augmentation des ruptures de séquence : pr augmente tlsf = (1 - pr) x Npb x tls1 + pr x Npb x tla1 0,184 ms 12,3 ms Cependant : dégradation très progressive. I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances Taux : observations et recommandations générales 1. Valeur optimale de t0 = 0,7. t0 = 1 admissible si aucune insertion (fichier en lecture seule par exemple) 2. Performances favorable pour les grandes valeurs de Mrpp (fichier de base et index). 3. t et pr deviennent défavorables à partir du pas 50, voire plus tôt. Réorganisation du fichier recommandée dès que nop se rapproche de 30 à 50% du nombre d’enregistrements au départ. p.ex. à partir de 400.000 opérations dans un fichier de 1.000.000 enregistrements I. Concepts des bases de données
4.6 Organisation séquentielle indexée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée - Performances Réorganisation d'un fichier séquentiel indexé Reconditionnement du fichier : 1. taux d'occupation favorable (70-80) uniforme (pour toutes les pages) 2. élimination des ruptures de séquences (pr = 0) Réorganisation par rechargement : Processus très simple et rapide (linéaire en Nr mais attention à pr !) 1. lecture séquentielle du fichier courant 2. rangement séquentiel des enregistrements dans le nouveau fichier, avec un taux d'occupation initial favorable (p. ex. t0 = 0,7 à 0,8) 3. en parallèle, construction des différents niveaux d'index, avec un taux d'occupation initial favorable. I. Concepts des bases de données
4.6 Organisation séquentielle indexée 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.6 Organisation séquentielle indexée Compléments 1. Adaptation aisée au cas où K n'est pas un identifiant (mais rarement appliqué) 2. Le fichier de base est instable : l'adresse d'un enregistrement peut évoluer au cours du temps 3. Application intéressante aux fichiers comportant des enregistrements de plusieurs types. I. Concepts des bases de données
4.7 Organisation calculée 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Deuxième technique de base d'implémentation d'un index primaire L'adresse d'un enregistrement est obtenue par une fonction de calcul I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Considérant l'expression A = f(K), la fonction f est implémentée sous la forme d'une procédure de calcul fournissant une adresse (celle d'une page) pour chaque valeur de K. séquentiel indexé conversion k p mémorisée k f k calculé conversion k p calculée page [p] I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes à démontrer ! L'organisation calculée d'un fichier permet 1. la lecture séquentielle non ordonnée des enregistrements du fichier de base 2. l'accès rapide à l'enregistrement possédant une valeur de clé K = k 4. l'insertion rapide d'un enregistrement de clé K 5. la modification rapide de la valeur de K d'un enregistrement 6. la suppression rapide d'un enregistrement Cette organisation ne permet pas l'accès séquentiel ordonné I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Hypothèses simplificatrices 1. La clé K est un identifiant du fichier 2. Le fichier contient des enregistrements d'un seul type 3. Les enregistrements sont de taille fixe 4. Un enregistrement est entièrement compris dans une page Ces contraintes sont aisées à lever I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Nature de la fonction f ? K : valeurs de l'identifiant p : adresse de la page de l'enregistrement k K Mrpp : capacité d'une page Cas 1 K = {0, 1, 2, 3, ..., 99998, 99999} p = k / Mrpp Cas 2 K = {1, 3, 5, 7, ..., 99997, 99999} p = ((k - 1)/2) / Mrpp Cas 3 K = {1, 3, 4, 87, 162, 163, 164, 290, 1035, ..., 99991} p = ? Cas 4 K = {'Anselme', 'Bernard', 'Catherine', 'Eve', ..., 'Xavier'} p = ? I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Nature de la fonction f ? La fonction f doit convertir un ensemble de valeurs quelconques en une suite d'entiers naturels également répartis dans l'espace des adresses En pratique, une telle fonction n'existe pas en toute généralité La fonction f doit convertir un ensemble de valeurs quelconques en une suite d'entiers naturels raisonnablement bien répartis dans l'espace des adresses Les pages du fichier seront donc inégalement occupées : certaines pages resteront peu occupées voire vides certaines pages déborderont. I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Deux problèmes à résoudre : 1. Choix de la fonction f de calcul d'adresse 2. Gestion des débordements I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes La fonction de calcul d'adresse Objectif : répartir au mieux les valeurs de K dans l'espace des adresses. f(k) = f3(f2(f1k))) f1 : numérisation - transforme k en nombre n1 f2 : hachage - transforme n1 en n2 de répartition régulière f3 : cadrage - transforme n2 en p, ajusté à Np I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes La fonction de calcul d'adresse Où ranger l’enregistrement d’identifiant "Charles" dans un fichier de 5.000 pages ? numérisation f1 Codes ASCII des caractères de "Charles" = chaîne de 56 bits : 01000011 01101000 01100001 01110010 01101100 01100101 01110011 XOR entre les 32 premiers bits et les 24 suivants étendus à 32 bits par des 0 On obtient le nombre 0010 1111 0000 1101 0001 0010 0111 0010 = 789385842 On a donc f1("Charles") = 789385842. hachage f2 Technique du pliage : f2(789385842) = 78938 + 02485 = 81423. cadrage f3 Ajustement à un espace de [0, 4999] pages : f3(81423) = 81423 mod 5000 = 1423. On a donc : f("Charles") = 1423 L’enregistrement sera rangé dans la page d’adresse p = 1 423. I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Gestion des débordements Que faire d'un enregistrement dont l'adresse p désigne une page pleine ? Réponse : on le stocke dans une page dont l'adresse p' est dérivable de p. Exemple : on le stocke dans une page qui possède assez d'espace pour accueillir l'enregistrement et dont l'adresse p' est stockée dans la page [p]. On distingue donc : l’adresse de base p l’adresse de stockage p’ I. Concepts des bases de données
4.7 Organisation calculée - Principes 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Principes Gestion des débordements I. Concepts des bases de données
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Un fichier calculé est défini par 1. Npb le nombre de pages de base 2. Mrpp la taille des pages On connaît, à un moment déterminé, 1. Nr le nombre d'enregistrements qui ont été stockés (répartis entre espace de base et espace de débordement) 2. Nrpp le nombre moyen d'enregistrements envoyés dans une page de base; peut être > Mrpp On définit : tch = Nrpp / Mrpp, le taux de chargement du fichier (typiquement de 0,5 à 2) On a : Nrpp = tch x Mrpp Nr = tch x Mrpp x Npb I. Concepts des bases de données
tap : taux d'accroissement du nombre de page dû aux débordements 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Volume du fichier On connaît : Npb le nombre de pages de base On cherche : Np le nombre total de pages On pose : Np = tap x Npb tap : taux d'accroissement du nombre de page dû aux débordements On détermine la fonction tap = f(Mrpp, tch) Disponible sous forme d'abaque I. Concepts des bases de données
4.7 Organisation calculée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Volume du fichier tap 1,00 1,20 1,40 1,60 1,80 2,00 2,20 2,40 2,60 0,5 0,6 0,7 0,8 0,9 1 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2 50 5 10 15 20 25 30 35 40 45 Mrpp 1,62 tch I. Concepts des bases de données
tch = Nr / (Mrpp x Npb) = 1,1 4.7 Organisation calculée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Volume du fichier Exemple Npb = 100 000 Mrpp = 20 Nr = 2 200 000 tch = Nr / (Mrpp x Npb) = 1,1 L'abaque nous donne, pour Mrpp = 20 et tch = 1,1 tap = 1,62 On a donc : Np = tap x Npb = 162 000 pages Taux d'occupation global t = Nr / (Mrpp x Np) = 0,679 I. Concepts des bases de données
Performances d'un fichier calculé Temps de lecture séquentielle 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Temps de lecture séquentielle Ordre des enregistrements indifférent tlsf = Np x tls1 I. Concepts des bases de données
Performances d'un fichier calculé Temps de lecture par clé 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Temps de lecture par clé nombre moyen de lectures de pages : nlp = f(Mrpp, tch) nlp 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 0,5 0,6 0,7 0,8 0,9 1 1,8 1,9 2 5 50 10 15 20 25 30 35 40 45 Mrpp 1,135 tch I. Concepts des bases de données
4.7 Organisation calculée - Performances 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Performances Performances d'un fichier calculé Temps de lecture Exemple L'abaque nous donne, pour Mrpp = 20 et tch = 1,1 nlp = 1,135 On a donc : tlk1 = nlp x tla1 = 14 ms Vitesse de lecture : 71 enreg./s I. Concepts des bases de données
plusieurs milliers de pages 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.7 Organisation calculée - Comparaison des techniques primaires séquentiel indexé calculé disponibilité très répandu plus rare occupation espace disque moyen moyen à excellent occupation mémoire centrale plusieurs milliers de pages 1 page stabilité adresses faible bonne accès par clé : temps moyen moyen, améliorable excellent accès par clé : constance tps constant variable tps d'accès par clé selon Npb logarithmique moyenne constante accès ordonné oui non accès par intervalle oui non dégradation progressive (pr !) progressive, faible, extensibilité oui oui reconstruction rapide lente I. Concepts des bases de données
4.8 Les index secondaires 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires I. Concepts des bases de données
4.8 Les index secondaires Rappel Index primaire 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Rappel Index primaire 1. le plus souvent identifiant 2. un seul index primaire par fichier 3. la structure du fichier dépend fortement de la présence d'un index primaire 4. difficile d'ajouter et de supprimer un index primaire au vol 5. faible volume, très bonnes performances Index secondaire 1. identifiant ou non identifiant 2. de 0 à N index secondaires par fichier 3. la structure du fichier est indépendante de la présence d'un index secondaire 4. facile d'ajouter et de supprimer un index secondaire au vol 5. volume plus important, moins bonnes performances 6. Certains SGBD n'offrent que des index secondaires I. Concepts des bases de données
4.8 Les index secondaires Index (dans un livre) Rappel B 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Rappel Index (dans un livre) B base de données active 167 base de données temporelles 153, 170 between 67 C cardinalité d’attribut 182 cardinalité d’un role 187 catalogue 147, 169 cellules 280 Chen 29, 205 chimpanzé 364 circuit de dépendances 312, 392 classe d’objets 201 classe fonctionnelle 184, 185, 242, 245 clé étrangère 34, 44, 77, 81, 156 close 145 coalescing 155 COBOL 18, 143 Codd 27 codomaine 351 colonne 32, 35, 44 les termes de la lettre B le terme clé étrangère numéros des pages qui contiennent ce terme I. Concepts des bases de données
Index (dans une base de données) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Rappel Index (dans une base de données) Index sur la colonne LOCALITE 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 Bruxelles Genève Lille Namur Paris Poitiers Toulouse 11 03 12 01 06 14 15 16 02 07 09 04 05 08 10 13 numéros des lignes dont LOCALITE = 'Toulouse' chaque ligne possède un numéro unique; l'accès à une ligne de numéro donné est très rapide les valeurs de LOCALITE, triées par ordre alphabétique I. Concepts des bases de données
Structure d'un index secondaire (non identifiant) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Structure d'un index secondaire (non identifiant) Index (LOCALITE) Bruxelles Genève Lille Paris Toulouse Poitiers Namur Fichier de base B062 ... Goffin B2 S712 Guillaume B1 B112 Hansenne C1 B332 Monti B512 Gillet C003 Avron C123 Mercier C400 Férard D063 A1 F010 Toussaint F011 Poncelet F400 Jacob C2 K111 Vanbist K729 Neuman B3 L422 Frank S127 Vanderka Index du dictionnaire des valeurs (séq. indexé ou calculé) Dictionnaire des valeurs données de base Accès aux enregistrements (liste de pointeurs) Nv entrées I. Concepts des bases de données
Structure d'un index secondaire (identifiant) 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Structure d'un index secondaire (identifiant) Index (NCLI) Fichier de base B062 ... Namur Goffin B2 S712 Paris Guillaume B1 B112 Poitiers Hansenne C1 B332 Genève Monti B512 Toulouse Gillet C003 Avron C123 Mercier C400 Férard D063 A1 F010 Toussaint F011 Poncelet F400 Bruxelles Jacob C2 K111 Lille Vanbist K729 Neuman B3 L422 Frank S127 Vanderka peut remplacer un index primaire I. Concepts des bases de données
Un fichier peut posséder plusieurs index secondaires 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Un fichier peut posséder plusieurs index secondaires Index (LOCALITE) Bruxelles Genève Lille Paris Toulouse Poitiers Namur Index (NCLI) Fichier de base B062 ... Goffin B2 S712 Guillaume B1 B112 Hansenne C1 B332 Monti B512 Gillet C003 Avron C123 Mercier C400 Férard D063 A1 F010 Toussaint F011 Poncelet F400 Jacob C2 K111 Vanbist K729 Neuman B3 L422 Frank S127 Vanderka I. Concepts des bases de données
Représentation pratique des listes de pointeurs 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Représentation pratique des listes de pointeurs Toulouse Toulouse Toulouse ner entrées réelles Toulouse une entrée théorique I. Concepts des bases de données
4.8 Les index secondaires Les index bitmap 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Les index bitmap Chaque entrée K = k comporte une chaîne B de Nr bits. Si l'enregistrement i est tel que K = k, alors B(i) = 1 Index (LOCALITE) Bruxelles Genève Lille Paris Toulouse Poitiers Namur 1000000000000000 0100000000000000 0001000000000000 0000000010000000 0000000000010111 0000000101101000 0010111000000000 Chaînes très longues compression par technique sans pertes (LZN par exemple) I. Concepts des bases de données
Les index identifiants augmentés 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Les index identifiants augmentés Les entrées contiennent des valeurs de champs additionnelles. B062 S712 B112 B332 B512 C003 C123 C400 D063 F010 F011 F400 K111 K729 L422 S127 Index (NCLI + [LOCALITE,CAT]) Fichier de base Namur GOFFIN B2 Paris GUILLAUME B1 Poitiers HANSENNE C1 Genève MONTI Toulouse GILLET AVRON MERCER FERARD MERCIER A1 TOUSSAINT PONCELET Bruxelles JACOB C2 Lille VANBIST NEUMAN B3 FRANK VANDERKA Objectif : éviter l'accès au fichier de base. select NCLI, LOCALITE, CAT from CLIENT where NCLI between k1 and k2 and CAT like 'B%'; I. Concepts des bases de données
Performances d'un index secondaire 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.8 Les index secondaires Performances d'un index secondaire Un index secondaire est constitué de : un dictionnaire de valeurs; pour chacune des Nv entrées théoriques, ner entrées réelles : une valeur de K de longueur Lk une sous-liste de R' pointeurs un index primaire pour l'accès au dictionnaire de valeurs (séquentiel indexé ou calculé) On dispose donc de tous les éléments pour calculer : le volume de l'index le temps d'accès aux enregistrements selon le critère "where K = k" le temps d'accès aux enregistrements selon le critère "where K between k1 and k2" I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Proximité logique proximité physique Proximité logique : enregistrements d'un fichier lus successivement enregistrements lus dans un certain ordre enregistrements couplés par des associations Proximité physique : enregistrements dans la même page enregistrements dans des pages successives Objectif : minimiser le nombre d'accès physiques I. Concepts des bases de données
Proximité logique proximité physique 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Proximité logique proximité physique enregistrements d'un fichier lus successivement select NCLI, NOM, LOCALITE from CLIENT; enregistrements rangés séquentiellement dans l'espace; chaque page est lue une seule fois I. Concepts des bases de données
Proximité logique proximité physique 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Proximité logique proximité physique enregistrements lus dans un certain ordre select NCLI, NOM, LOCALITE from CLIENT order by NCLI; les enregistrements sont rangés dans l'espace par valeurs croissante de NCLI; chaque page est lue une seule fois I. Concepts des bases de données
Proximité logique proximité physique 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Proximité logique proximité physique enregistrements couplés par des associations select M.NCOM, DATECOM, QCOM, NPRO from COMMANDE M, DETAIL D where M.NCOM = D.NCOM; les enregistrements COMMANDE et DETAIL de mêmes valeurs de NCOM sont rangés dans la (les) même(s) page(s); plusieurs enregistrements utiles dans une même page; I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Deux techniques très répandues : le clustering index (p. ex. DB2, SQL Server) le cluster (p. ex. Oracle) I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Le clustering index index secondaire sur une clé K; table de base a priori en vrac MAIS : (tant qu'à faire) on cherche à ranger les lignes selon les valeurs croissantes de K; lors du chargement initial, on laisse de l'espace libre dans chaque page; les insertions se font autant que possible de manière à respecter l'ordre selon K; après un certain temps, l'ordre est de moins en moins respecté; nécessite une réorganisation de temps en temps; I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Le clustering index au début, performances aussi favorables que le séquentiel indexé (lecture d'une page pour Nrpp lignes); au cours du temps, les performances se dégradent et se rapprochent de celles d'une table en vrac (lecture d'une page pour chaque ligne); un seul clustering index par table exclut tout index primaire favorise les requêtes incluant : order by K group by K K between k1 and k2 K >= k1 K like 'MAC%'; I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Le cluster basé sur une colonne (ou des colonnes) K commune(s) à une ou plusieurs tables; les lignes de même valeur de K sont rangées dans la même page; si nécessaire dans des pages successives d'une chaîne de pages on associe un index au cluster Index (NCOM) 30179 C400 22/12/2008 30179 CS262 0060 30179 PA60 0020 30182 S127 23/12/2008 30182 PA60 0030 30178 K111 22/12/2008 30178 CS464 0025 30184 C400 23/12/2008 30184 CS464 0120 30184 PA45 0020 30185 F011 02/01/2009 30185 CS464 0260 30185 PA60 0015 30185 PS222 0600 30177 30178 30179 30182 30184 30185 30186 30187 Fichier de base : clusters <COMMANDE(NCOM), DETAIL(NCOM)> I. Concepts des bases de données
4.9 Les techniques d'agrégation 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.9 Les techniques d'agrégation Le cluster un seul cluster par table exclut tout index primaire favorise les requêtes incluant : des jointures des sous-requêtes group by K K = k1 et, si l'index du cluster est en séquentiel indexé : K between k1 and k2 K >= k1 K like 'MAC%'; I. Concepts des bases de données
4.10 Un exemple : SQL Server de Microsoft 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.10 Un exemple : SQL Server de Microsoft I. Concepts des bases de données
4.10 Un exemple : SQL Server de Microsoft 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données . . . 4.8 Les index secondaires 4.5 Les index 4.9 Les techniques d'agrégation 4.6 Organisation séquent. indexée 4.10 Un exemple : SQL Server 4.7 Organisation calculée 4.10 Un exemple : SQL Server de Microsoft voir annexe H I. Concepts des bases de données
5 : Les systèmes de gestion de bases de données 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données Fin du module 4 Module suivant : 5 : Les systèmes de gestion de bases de données I. Concepts des bases de données