La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

4. IMPLEMENTATION DES STRUCTURES DE DONNEES

Présentations similaires


Présentation au sujet: "4. IMPLEMENTATION DES STRUCTURES DE DONNEES"— Transcription de la présentation:

1 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 Version novembre 2009 Corrections 5/11/2010 Support du chapitre 4, Implémentation des structures de données de l'ouvrage Bases de données, J-L Hainaut, Dunod 2009. I. Concepts des bases de données

2 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 Lecture séquentielle 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) Contenu I. Concepts des bases de données

3 4.1 Introduction 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.1 Introduction I. Concepts des bases de données

4 Trois questions 4.1 Introduction
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.1 Introduction Trois questions 1. Comment les tables, les lignes et les index sont-ils stockés dans l'ordinateur ? 2. Quel volume occupent une table et un index ? 3. Comment calculer le temps d'accès aux données ? I. Concepts des bases de données

5 4.1 Introduction L'ordinateur est composé (entre autres) :
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.1 Introduction L'ordinateur est composé (entre autres) : d'un processeur d'une mémoire centrale (mémoire interne, mémoire RAM) de mémoires externes fixes de mémoires externes amovibles Mémoire centrale : électronique, volatile, très rapide, limitée, coûteuse Mémoire externe : magnétique / optique / électronique, persistante, lente, grande capacité, peu coûteuse I. Concepts des bases de données

6 4.1 Introduction Mémoire externe magnétique : disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.1 Introduction Mémoire externe magnétique : disque magnétique disque magnéto-optique mémoire à bande magnétique (cartouche) Mémoire externe optique : CD DVD Blue Ray Mémoire externe électronique : mémoire flash (clé USB), disque électronique (solid-state disk ou SSD) I. Concepts des bases de données

7 4.2 Les mémoires externes étude du disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes Les données sont stockées dans une mémoire externe, distincte de la mémoire centrale. Données inactives, backup : bande magnétique, mémoires optiques Données actives : disque magnétique, disque électronique étude du disque magnétique I. Concepts des bases de données

8 4.2 Les mémoires externes - le disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - le disque magnétique axe et moteur (caché) face supérieure du premier plateau parking tête bras en position de lecture/écriture axe des bras moteur des bras I. Concepts des bases de données

9 4.2 Les mémoires externes - le disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - le disque magnétique bras au parking I. Concepts des bases de données

10 4.2 Les mémoires externes - le disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - le disque magnétique 4 bras dont 2 doubles (et six têtes) trois plateaux et six (sur)faces I. Concepts des bases de données

11 4.2 Les mémoires externes - le disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - le disque magnétique Exemple de disque à déplacement radial (NEC D5126, 1985) I. Concepts des bases de données

12 4.2 Les mémoires externes - géométrie du disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - géométrie du disque magnétique Géométrie d'un disque magnétique Le support est formé de 1 à 10 plateaux présentant 2 faces. Chaque face comprend de à pistes circulaires et concentriques. Chaque piste est décomposée en 200 à secteurs. Un secteur comprend 512 octets. Le support tourne à une vitesse constante de à rpm. Les pistes de même rang constituent un cylindre (virtuel) Une mémoire à disque magnétique est donc constituée de à cylindres, formés de 2 à 20 pistes, de 200 à secteurs de 512 octets. I. Concepts des bases de données

13 4.2 Les mémoires externes - géométrie du disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - géométrie du disque magnétique Adresse physique d'un secteur : <c, p, s> Exemple : secteur <63450, 2, 307> piste 0 piste 7 cylindre 63450 secteur 307 de la piste 2 du cylindre 63450 piste 2 secteurs 0 Adressage LBA (logical block addressing) : les secteurs sont numérotés de 0 à Conversion LBA  <c,p,s> par le contrôleur. I. Concepts des bases de données

14 4.2 Les mémoires externes - géométrie du disque magnétique
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - géométrie du disque magnétique Géométrie d'un disque magnétique Modèle de disque de référence (500 Go, 3.5”) Géométrie : cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : secteurs octets 467 Go Vitesse de rotation : rpm ou 120 rps ou 8,33 msec/rév. I. Concepts des bases de données

15 4.2 Les mémoires externes - lecture / écriture sur un disque
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - lecture / écriture sur un disque Les secteurs et les pages Secteur = unité de lecture/écriture trop petite Les échanges entre le disque et le SGBD s'effectuent par pages entières 1 page = de 2 à 256 secteurs contigus, soit de 1Ko à 128 Ko. Les enregistrements (les lignes) sont écrits dans les pages Taille typique : 1 page = 8 secteurs = 4 Ko I. Concepts des bases de données

16 4.2 Les mémoires externes - lecture / écriture sur un disque
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - lecture / écriture sur un disque Deux pages consécutives de 8 secteurs page 126 page 127 I. Concepts des bases de données

17 4.2 Les mémoires externes - lecture / écriture sur un disque
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - lecture / écriture sur un disque Lecture du contenu d'un secteur d'adresse <c, p, s> pour lire un secteur <c, p, s> : 1. les bras se déplacent sur le cylindre c 2. le bras de position p est connecté 3. attente que le secteur s se présente sous la tête de lecture 4. la tête lit et transfère le contenu du secteur <c, p, s> temps de la lecture : déplacement du bras = (1, 8, 15) msec connexion = 0 msec délai rotationel de 1/2 révolution = 4,17 msec temps de transfert : 8,33 / 900 = 0,00925 msec temps moyen : 12,18 msec Ecriture dans un secteur : même temps sauf si relecture de vérification. Dans ce cas, ajouter une rotation, soit 8,33 msec : 20,5 msec. I. Concepts des bases de données

18 4.2 Les mémoires externes - lecture / écriture sur un disque
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - lecture / écriture sur un disque Lecture du contenu d'une page de 4 Ko d'adresse <c, p, s> 1. les bras se déplacent sur le cylindre c 2. le bras de position p est connecté 3. attente que le secteur s se présente sous la tête de lecture 4. la tête lit et transfère le contenu des 8 secteurs à partir de <c, p, s> déplacement du bras = (1, 8, 15) msec connexion = 0 msec 1/2 révolution = 4,17 msec transfert : 8,33 / 900 * 8 = 0,074 msec temps moyen : tla1 =  12,3 msec on retient ! I. Concepts des bases de données

19 (troisième technique examinée plus tard : le clustering)
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation Lecture d’un enregistrement quelconque : optimisation Théoriquement : l’enregistrement est stocké dans une page la lecture de l’enregistrement réclame la lecture de sa page le temps de lecture de l'enregistrement est donc de 12,3 msec la vitesse de lecture est de 1/0,0123 = 81 enregistrements par seconde c'est INSUFFISANT ! on devrait pouvoir dépasser enregistrements par seconde Deux optimisations simples : le tampon et la lecture anticipée (troisième technique examinée plus tard : le clustering) I. Concepts des bases de données

20 Conclusion bien sûr irréaliste, mais pas tant que cela ...
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : le tampon Optimisation # 1 : le tampon Observation de transfert d'une page de 4 Ko mémoire centrale  mémoire centrale : 0,00043 msec disque  mémoire centrale : 12,3 msec Soit un rapport de Conclusion : il serait préférable de conserver les données en mémoire centrale plutôt que sur disque. Conclusion bien sûr irréaliste, mais pas tant que cela ... I. Concepts des bases de données

21 4.2 Les mémoires externes - Optimisation : le tampon
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : le tampon Optimisation # 1 : le tampon Idée : conserver en mémoire centrale des copies des pages les plus utilisées. Tampon (buffer) ou mémoire cache Espace en mémoire rapide (en général mémoire centrale) dans lequel sont rangées des données issues de (ou destinées à) une mémoire plus lente (disque). Principe Eviter les accès au disque en conservant dans un tampon une quantité importante de données. Avec un peu de chance, les données demandées sont dans le tampon, ce qui évite d’accéder au disque. Structure Le tampon est constitué d'un tableau de cadres (taille 1 cadre = 1 page) et d'un index n° page  n° de cadre. I. Concepts des bases de données

22 4.2 Les mémoires externes - Optimisation : le tampon
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : le tampon Optimisation # 1 : le tampon Le programme PA demande la lecture de données qui se trouvent sur le disque. la donnée réclamée est dans le tampon coût = 0,00043 msec PA tampon disque la donnée demandée n'est pas dans le tampon coût supplémentaire de 12,3 msec I. Concepts des bases de données

23 4.2 Les mémoires externes - Optimisation : le tampon
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : le tampon Optimisation # 1 : le tampon Principes de la lecture (lecture de l'enregistrement R) : 1. Le SGBD détermine la page P dans laquelle se trouve R 2. Deux cas : 2.1 une copie de P se trouve dans le tampon, dans le cadre (emplacement) C : 2.2 pas de copie de P dans le tampon : 2.2.1 Le SGBD recherche un cadre libre dans le tampon 2.2.2 Deux cas : Un cadre libre C est trouvé Tous les cadres sont occupés : le SGBD recherche le cadre C dont le contenu n'a plus été utilisé (copié, modifié) depuis le plus long temps. Si le contenu de C a été modifié, il est recopié sur le disque. C est alors considéré comme libre (politique LRU simplifiée : least recently used) 2.2.3 La page P est lue sur le disque et une copie est rangée dans le cadre C 3. Le SGBD recherche l'enregistrement R dans le cadre C et en transfère une copie dans la variable du programme : I. Concepts des bases de données

24 4.2 Les mémoires externes - Optimisation : le tampon
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : le tampon Optimisation # 1 : le tampon Principes de l'insertion/modification/suppression de l'enregistrement R) : 1. le SGBD détermine la page P dans laquelle se trouve (ou se trouvera) R 2. Deux cas : 2.1 une copie de P se trouve dans le tampon, dans le cadre C : 2.2 pas de copie de P dans le tampon : 2.2.1 Le SGBD recherche un cadre libre dans le tampon 2.2.2 Deux cas : Un cadre libre C est trouvé Tous les cadres sont occupés Le SGBD recherche le cadre C dont le contenu n'a plus été utilisé (copié, modifié) depuis le plus longtemps. Si le contenu de C a été modifié, il est recopié dans la mémoire secondaire. 2.2.3 La page P est lue sur le disque dur et une copie est rangée dans le cadre C 3. Le SGBD effectue la modification dans le contenu du cadre C (mais cette réécriture peut être retardée). I. Concepts des bases de données

25 4.2 Les mémoires externes - Optimisation : lecture anticipé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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation : lecture anticipée Optimisation # 2 : la lecture anticipée Idée : lire d'avance les pages qui seront probablement demandées. Observation la lecture de pages consécutives est très fréquente (lecture séquentielle). Principe Lorsque la lecture d'une page est demandée, le SGBD lit et copie dans le tampon certaines des pages suivantes (par exemple celles de la piste courante). Justification La lecture de pages consécutives est très rapide : temps de transfert uniquement et pas de positionnement du bras ni de délai rotationnel. I. Concepts des bases de données

26 4.2 Les mémoires externes - Optimisation
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation Optimisation : un exemple Exemple : lecture d'une page 1. Pages de 4 Ko, enregistrements de 200 octets, piste de 450 Ko. 2. Une page contient 20 enregistrements; la piste contient une séquence de 112 pages. 3. Le programme client effectue une lecture séquentielle des enregistrements Premier scénario : pas de lecture anticipée, chaque page fait l'objet d'une lecture aléatoire. Temps de lecture des 112 pages : 112 x 12,3 = 1.377,6 msec Second scénario : le SGBD effectue une lecture anticipée des pages de la piste. Temps de lecture de la 1re page : 12,3 msec Temps de lecture des 111 pages suivantes : 111/112 x 8,33 = 8,26 msec Temps de lecture des 112 pages : 20,56 msec. facteur d'amélioration de 67 ! Temps de lecture d'une page avec anticipation d'une piste : tls1 = 20,56 / 112 = 0,184 msec on retient ! I. Concepts des bases de données

27 4.2 Les mémoires externes - Optimisation
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation Géométrie d'un disque magnétique (suite et fin) Modèle de disque de référence (500 Go) Géométrie : cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : secteurs octets 467 Go Vitesse de rotation : rpm ou 120 rps ou 8,33 msec/rév. Déplacement du bras : seek1 = 1 msec, seekavg = 8 msec, seekmax = 15 msec Lecture d'une page aléatoire (4 Ko) : tla1 = 12,3 msec Transfert d’une page (4 Ko) : ttr = 0,074 msec Lecture d’une page (4 Ko) avec anticipation d’une piste : tls1 = 0,184 msec Gain de la lecture avec anticipation d’une piste : aas = tla1 / tls1 = 67 on met un marque-page I. Concepts des bases de données

28 Exemple : lecture de 100 pages contiguë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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Optimisation Optimisation : un exemple Remarque : le temps de lecture séquentielle ne dépend pas de l'adresse initiale [*] Exemple : lecture de 100 pages contiguës 49 849 début 199 99 [*] tant qu'on reste dans le même cylindre I. Concepts des bases de données

29 4.2 Les mémoires externes - Mémoire flash
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes - Mémoire flash Complément : la mémoire flash 1. Mémoire électronique (EEPROM, technologie NAND) non volatile. La rétention des données ne nécessite pas d'énergie (comme le DM et contrairement à la MC). Disponible de 32 MB à 256 GB (en 2009). 2. Utilisée comme mémoire externe (clé USB, cartes mémoire) ou interne (mémoire BIOS, disque dur électronique ou SSD [de 60 GB à 1 TB mais $ en 2010]) 3. Deux technologies : SLC (single level cell, ou 1 bit par cellule) et MLC (multiple level cell, ou 2+ bits par cellule). 4. SLC : plus rapide (de 3 à 4 X), plus robuste à l'usure (10 X) mais plus coûteuse (3 X) et plus faible densité (3 X); surtout utilisée dans les SSD rapides MLC : plus lente, usure rapide, faible coût; forte densité; surtout utilisées dans les clés USB, cartes mémoire multimédia, SSD standard; I. Concepts des bases de données

30 Complément : la mémoire flash
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes Complément : la mémoire flash 1. Comportement externe similaire à celui du disque magnétique ... mais fonctionnement interne complexe, très différent. 3. La mémoire MLS est décomposée en blocs (typiquement 128 Ko), eux-mêmes décomposés en pages (typiquement 4 Ko). 4. Au départ, chaque bloc est vierge = tous ses bits sont à 1. 5. L'écriture d'une page consiste à mettre à 0 certains bits de la page encore vierge dans un bloc. Ecriture séquentielle des pages dans un bloc. 6. Lorsque toutes les pages d'un bloc ont été écrites, ce bloc n'est plus modifiable. Pour pouvoir y écrire à nouveau, il faut effacer le bloc pour y mettre tous les bits à 1. Opération coûteuse : temps important et usure de la mémoire (maximum à effacements d'un même bloc) 7. Pour retarder la dégradation irréparable : wear-leveling. Le firmware de la mémoire répartit les écritures dans tous les blocs de la mémoire. I. Concepts des bases de données

31 Complément : la mémoire flash
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.2 Les mémoires externes Complément : la mémoire flash 8. Une page modifiée est recopiée à un autre emplacement que son adresse d'origine (devenue read-only + wear-leveling). 9. Temps (MLS) : lecture d'une page : 0,025 msec écriture d'une page : 0,800 msec effacement d'un bloc : 1,500 msec I. Concepts des bases de données

32 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage I. Concepts des bases de données

33 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage Espace de stockage : conteneur dans lequel les lignes d'une table peuvent être enregistrée. Pour le lecteur fatigué : concept analogue à celui de fichier Occupe généralement une portion d'un disque magnétique Constitué d'une suite de Np pages numérotées de 0 à Np-1 En principe, ces pages sont consécutives sur le disque ... mais, si cette suite est trop longue, elle peut être fragmentée en plusieurs sous-suites stockées à différents endroits du disque Peut s'étendre sur plusieurs disques . . . 2 1 Np-1 Np-2 Np-3 I. Concepts des bases de données

34 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage Comment ranger des enregistrements dans une page ? On retient 3 techniques (il y en a d'autres) : 1. rangement séquentiel 2. pages segmentées en cellules (slots) de taille fixe 3. rangement dynamique avec indirection aaaaaaaaa bbbbb cccccccccccccc ddddddddd aaaaaaaaa bbbbb cccccccccccccc ddddddddd bbbbb ddddddddd aaaaaaaaa cccccccccccccc ...       I. Concepts des bases de données

35 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage Comment gérer l'évolution de la taille des enregistrements ? Deux techniques de base préservant l'adresse initiale des enregistrements : 1. indirection 2. fragmentation Comment choisir la page d'un enregistrement ? 1. Au hasard (là où il y a de la place) : rangement en vrac 2. De manière à le retrouver rapidement via la valeur d'un champ : selon un index primaire (voir plus loin) 3. A proximité d'un enregistrement logiquement lié : clustering I. Concepts des bases de données

36 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage Adresse d'un enregistrement Chaque enregistrement possède une adresse dans son espace de stockage. Selon la technique de stockage : rang de l'enregistrement rang de son segment n° de page + n° de segment dans la page n° de page + n° de pointeur dans la page I. Concepts des bases de données

37 4.3 Les espaces de stockage
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.3 Les espaces de stockage Adresse d'un enregistrement Une adresse est stable si sa valeur ne change pas durant la vie de l'enregistrement Stabilisation des adresses : par table de correspondance n°  adresse réelle. l'adresse pratique est le n° en cas de déplacement d'un enregistrement, on remplace l'adresse réelle dans la table de correspondance. Dans une table relationnelle, chaque ligne est identifiée par un numéro : le rowid. = adresse stable I. Concepts des bases de données

38 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier I. Concepts des bases de données

39 Petit rappel utile Modèle de disque de référence (500 Go)
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier Petit rappel utile Modèle de disque de référence (500 Go) Géométrie : cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : secteurs octets 467 Go Vitesse de rotation : rpm ou 120 rps ou 8,33 msec/rév. Déplacement du bras : seek1 = 1 msec, seekavg = 8 msec, seekmax = 15 msec Lecture d'une page aléatoire (4 Ko) : tla1 = 12,3 msec Transfert d’une page (4 Ko) : ttr = 0,074 msec Lecture d’une page (4 Ko) avec anticipation d’une piste : tls1 = 0,184 msec Gain de la lecture avec anticipation d’une piste : aas = tla1 / tls1 = 67 I. Concepts des bases de données

40 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier La lecture d'une séquence de pages consécutives dans un fichier est une opération extrêmement fréquente. Quel est le temps de cette lecture ? Problème préliminaire : lecture d'une courte séquence de q pages [*]. 1. lecture de la première page : tla1 2. lecture des q-1 pages suivantes : (q - 1) x ttr  lecture des q pages : tlsq = tla1 + (q - 1) x ttr Exemple : lecture d'une séquence de 200 pages de 4 Ko [*]. tlsq = tla1 + (q - 1) x ttr = 12, x 0,074 = 27,03 msec si chaque page contient 10 enregistrements, la vitesse de lecture est de 10 x 200 / 0,02703 = enreg./sec. [*] dans le même cylindre I. Concepts des bases de données

41 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Lecture séquentielle d'un fichier de Np pages. Concept préliminaire : disque dédié ou partagé Disque dédié : seul le processus lecteur utilise le disque et il y lit exclusivement le fichier Disque partagé : plusieurs processus utilisent le disque en même temps et/ou le processus lecteur exécute en même temps d'autres lectures/écritures sur ce disque Conséquence Disque dédié : après une lecture, le bras conserve sa position Disque partagé : après une lecture, le bras est déplacé et occupe pour la lecture suivante une position aléatoire I. Concepts des bases de données

42 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Lecture séquentielle d'un fichier de Np pages. On distingue 3 situations : A. Disque dédié, fichier non fragmenté (cas le plus favorable) B. Disque partagé, lecture anticipée (cas normal) C. Disque partagé, pas de lecture anticipée (cas le plus défavorable) I. Concepts des bases de données

43 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier A. Lecture séquentielle d'un fichier de Np pages. Disque dédié (cas le plus favorable) Caractéristiques : 1. Seul le processus lecteur utilise le disque 2. La séquence des pages du fichier est d'un seul tenant (pas de fragmentation) 3. Les pages d'un cylindre sont lues sans interruption 4. Les seules ruptures sont les sauts au cylindre suivant 5. Lecture anticipée inutile = lecture en streaming I. Concepts des bases de données

44 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier A. Lecture séquentielle d'un fichier de Np pages. Disque dédié (cas le plus favorable) 1. cas simplifié : le fichier réside dans un seul cylindre tlsf1 = tla1 + (Np - 1) x ttr 2. cas général : le fichier occupe plusieurs cylindres il faut compter le temps de déplacement du bras aux cylindres suivants (seek1) Nombre de cylindres suivants : ncyl = Np x Lp/ Lcyl + 0,5 Temps de lecture du fichier : tlsf1 = tla1 + (Np - 1) x ttr + ncyl x seek1 Np = nombre de pages Lp = taille d'une page Lcyl = taille d'un cylindre 3. Calcul simplifié : on néglige tla1 et seek1 devant le temps du transfert tlsf1  Np x ttr à vérifier ! I. Concepts des bases de données

45 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier B. Lecture séquentielle d'un fichier de Np pages. Disque partagé, lecture anticipée (cas normal) Caractéristiques : 1. Plusieurs processus utilisent le disque 2. Conséquence : entre deux lectures (avec anticipation) le bras se déplace de manière aléatoire 3. La lecture du fichier apparaît comme une série de lectures de courtes séquences de pages consécutives I. Concepts des bases de données

46 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier B. Lecture séquentielle d'un fichier de Np pages. Disque partagé, lecture anticipée (cas normal) Lecture du fichier avec anticipation d'une piste : tlsf2 = Np x tls1 I. Concepts des bases de données

47 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier C. Lecture séquentielle d'un fichier de Np pages. Disque partagé, pas de lecture anticipée (cas le plus défavorable) Caractéristiques : 1. Plusieurs processus utilisent le disque 2. Le processus lit une page à la fois sans anticipation 3. La lecture du fichier apparaît comme une série de lectures de pages d'adresses aléatoires I. Concepts des bases de données

48 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier C. Lecture séquentielle d'un fichier de Np pages. Disque partagé, pas de lecture anticipée (cas le plus défavorable) Lecture du fichier sans lecture anticipée : tlsf3 = Np x tla1 I. Concepts des bases de données

49 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Lecture séquentielle d'un fichier de Np pages. Exemple : Np = pages A. Disque dédié : Calcul standard : tlsf1 = tla1 + (Np - 1) x ttr + ncyl x seek1 = 18,8 sec Calcul simplifié : tlsf1  Np x ttr = 18,5 sec B. Disque partagé avec lecture anticipée d'une piste : tlsf2 = Np x tls1 = 46 sec C. Disque partagé sans lecture anticipée : tlsf3 = Np x tla1 = 3.075 sec utilité des optimisations ! I. Concepts des bases de données

50 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Le phénomène de fragmentation En principe, un fichier occupe une suite de pages contiguës sur le disque. Dans certaines circonstances, il n'est pas possible d'allouer au fichier un espace d'un seul tenant : pas assez d'espace libre contigu sur le disque au moment de la création du fichier  stockage en plusieurs fragments le fichier s'est progressivement étendu  il a fallu lui ajouter des pages En toute généralité, le fichier occupe sur le support de 1 à nfrag fragments (= suites de pages contiguës). I. Concepts des bases de données

51 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Le phénomène de fragmentation . . . 2 1 502 503 504 505 1286 1287 1289 1288 Np-1 Np-2 séquentiel ( tls1) 1 fragment . . . 2 1 Np-1 Np-2 502 503 505 504 1286 1287 1289 1288 séquentiel ( tls1) aléatoire ( tla1) 3 fragments I. Concepts des bases de données

52 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Le phénomène de fragmentation. Le fichier est formé de Np pages réparties en nfrag fragments. Temps de lecture du fichier (disque dédié) : tlsf4  tlsf1 + (nfrag - 1) x tla1 Temps de lecture du fichier (disque partagé avec lecture anticipée d'une piste) : tlsf4  tlsf2 + (nfrag - 1) x tla1 I. Concepts des bases de données

53 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Le phénomène de fragmentation Exemple 1 : fichier de pages décomposé de 50 fragments (de pages ou 200 Mo en moyenne) tlsf4  tlsf1 + nfrag x tla1 = 18, x 0,0123 = 19,4 sec. (+ 3%) tlsf4  tlsf2 + nfrag x tla1 = x 0,0123 = 46,6 sec. (+ 1,3%) Exemple 2 : fichier de pages décomposé de 50 fragments (de 500 pages ou 2 Mo en moyenne) tlsf4  tlsf1 + nfrag x tla1 = 1, x 0,0123 = 2,5 sec..(+ 32%) tlsf4  tlsf2 + nfrag x tla1 = 4, x 0,0123 = 5,2 sec. (+ 13%). Exemple 3 : fichier de pages décomposé de 50 fragments (de 50 pages ou 200 Ko en moyenne) tlsf4  tlsf1 + nfrag x tla1 = 0, x 0,0123 = 0,8 sec..(+ 300%) tlsf4  tlsf2 + nfrag x tla1 = 0, x 0,0123 = 1,1 sec. (+ 120%). I. Concepts des bases de données

54 4.4 Lecture séquentielle d'un fichier
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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.4 Lecture séquentielle d'un fichier Le phénomène de fragmentation Quelques conclusions rapides la dégradation du temps de lecture est sensible pour des fragments de petite taille (prépondérence de tla1 sur ttr ou tls1). la dégradation du temps de lecture est sensible les petits fichiers très fragmentés. la dégradation du temps de lecture est négligeable les fichiers de grande taille peu fragmentés. Défragmentation : opération visant à diminuer le nombre de fragments des fichiers sur le support. Utilitaires de défragmentation ou plus simplement déplacement des fichiers du support A vers le support B supression des fichiers sur le support A déplacement des fichiers du support B vers le support A Variante : déplacements via un utilitaire d’image de disque ou de partition (Ghost, Acronis, etc.) I. Concepts des bases de données

55 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.5 Les index I. Concepts des bases de données

56 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.5 Les index Index structure technique associée à un fichier (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

57 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 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/ou de gestion. La requête select NOM, LOCALITE from CLIENT where NCLI = ’C400’ s'exécutera en 15 sec sans index sur NCLI et en 25 msec avec un index sur NCLI (600 fois plus rapidement !). Mais, pas de miracle : tout avantage a un coût ! Ici, 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

58 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.5 Les index 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. I. Concepts des bases de données

59 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.5 Les index Deux classes d'index 1. les index primaires 2. les index secondaires I. Concepts des bases de données

60 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 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 bonne 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

61 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.1 Introduction 4.5 Les index 4.2 Les mémoires externes 4.6 Organisation séquent. indexée 4.3 Espace de stockage 4.7 Organisation calculée 4.4 Lecture séquentielle d'un fichier 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

62 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée I. Concepts des bases de données

63 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

64 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Considérant l'expression A = f(k), 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

65 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée à 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 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 s'inspire de structure d'arbre dite B-tree (balanced tree) I. Concepts des bases de données

66 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

67 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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 M562 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

68 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

69 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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 I. Concepts des bases de données

70 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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 >= 'C400' order by NCLI select * from CLIENT order by NCLI I. Concepts des bases de données

71 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Insertion d'un enregistrement (K = k) Procédure 1. On recherche la page [p] dans laquelle l'enregistrement 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 (logiquement, pas physiquement) 3.2 on répartit la charge de [p] entre ces deux pages 3.3 on insère l'enregistrement dans l'une de ces deux pages 3.4 on insère une entrée relative à la nouvelle page dans le niveau n de l'index Observations 1. le taux d'occupation de chaque page reste  0,5 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

72 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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 3.2 si le taux d'occupation des 2 pages est  0,5, on corrige l'entrée de niveau n relative à la 1re page 3.2 si le taux d'occupation d'une des pages est < 0,5 3.3.1 on transfère le contenu de la page précédente vers [p] 3.3.2 on supprime la page précédente 3.3.3 on supprime son entrée 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

73 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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. I. Concepts des bases de données

74 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

75 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

76 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Volume d'un fichier séquentiel indexé Index : calcul 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

77 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée 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

78 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Volume d'un fichier séquentiel indexé Pour les concepteurs pressés et pas trop regardants : 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(tb x Lp / Li ) Eviter d'étudier ces formules par coeur ! I. Concepts des bases de données

79 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Evaluation des taux d'occupation Comment évolue tb ? 1. En fonction du nombre d'opérations depuis la création du fichier 2. Dépend du taux d'insertions %Add [0-100] dans les opérations (100 = insertions seulement) 3. Dépend de la taille des pages (Mrpp) [en nombre d'enregistrements] 4. Dépend du taux d'occupation t0 [0-1] à la création du fichier 5. Ne dépend pas de la taille du fichier (Np) Comment évaluer tb ? 1. Analytiquement (processus stochastiques) : complexe 2. Par simulation : plus simple, intuitif mais réclame un peu de programmation Le comportement de ti est identique à celui de tb. I. Concepts des bases de données

80 Nbre d'opérations en pourcentage du nombre initial d'enregistrements
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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Evaluation des taux d'occupation taux d'occupation en % lire : Mrpp ! Nbre total d'opérations Nbre d'opérations en pourcentage du nombre initial d'enregistrements I. Concepts des bases de données

81 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Evaluation des taux d'occupation I. Concepts des bases de données

82 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Evaluation des taux d'occupation I. Concepts des bases de données

83 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à un fichier séquentiel indexé Trois opérations 1. Lecture séquentielle 2. Lecture ponctuelle par l'index 3. Lecture par intervalle de K par l'index Hypothèses réalistes 1. Disque partagé 2. Lecture anticipée d'une piste I. Concepts des bases de données

84 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à un fichier séquentiel indexé 1. Lecture séquentielle selon K Analyse 1. Lecture des pages du fichier de base inappropriée, car ruptures de séquence dues à l'éclatement des pages (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

85 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à 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 = ; pr = 0,2; Sans rupture : tlsf = 46 sec Avec ruptures : tlsf = 652 sec I. Concepts des bases de données

86 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à 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

87 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à 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 = ; n = 3; Npi(1) = 1; Npi(2) = 46; Npi(3) = 3.361; Tampon de 1 page: tlk1 = 12,3 X 4, soit 49,2 msec Tampon de = 2 pages : tlk1 = 12,3 X 3, soit 36,9 msec Tampon de 1 + 46 + 1 = 48 pages : tlk1 = 12,3 X 2, soit 24,6 msec Tampon de 1 + 46  = pages : tlk1 = 12,3 X 1, soit 12,3 msec les performances ont un coût I. Concepts des bases de données

88 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à un fichier séquentiel indexé 3. Lecture par intervalle [k1,k2] selon K Analyse 1. Intervalle : NCLI >= 'K111'; 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

89 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.6 Organisation séquentielle indexée Temps d'accès à 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 / Nrpp + 0,5 + 1 pages consécutives corriger ! 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

90 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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. 4. Phénomène de dégradation des performances 4.1 nombre croissant de ruptures de séquences dues à l'éclatement des pages 4.2 baisse du taux d'occupation (à Nr constant, Np et n augmentent) 4.3 heureusement : dégradation progressive (graceful degradation) 5. Nécessité de réorganiser le fichier en temps utile. Processus très simple et très rapide (linéaire en Nr): 5.1 lire séquentiellement le fichier courant 5.2 ranger séquentiellement ces enregistrements dans le nouveau fichier, avec un taux d'occupation initial favorable (p. ex. t0 = 0,8) 5.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

91 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée I. Concepts des bases de données

92 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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

93 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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

94 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée à 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

95 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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

96 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée Nature de la fonction f ? K : identifiant p : adresse de la page de l'enregistrement 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

97 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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, voire pas occupées certaines pages déborderont. I. Concepts des bases de données

98 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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

99 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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

100 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée La fonction de calcul d'adresse Où ranger l’enregistrement d’identifiant "Charles" dans un fichier de pages ? numérisation f1 Codes ASCII des caractères de "Charles" = chaîne de 56 bits : XOR entre les 32 premiers bits et les 24 suivants étendus à 32 bits par des 0 On obtient le nombre = On a donc f1("Charles") =  hachage f2 Technique du pliage : f2( ) = 78938 + 02485 = cadrage f3 Ajustement à un espace de [ ] 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

101 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée 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. Il devient un squatter. Exemple : on le stocke dans la page la plus proche de p qui possède assez d'espace pour accueillir l'enregistrement. On distingue donc : l’adresse de base p l’adresse de stockage p’ Problème : comment retrouver p' à partir de p ? I. Concepts des bases de données

102 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée Gestion des débordements Technique par chaînage en zone primaire Historique de l'insertion d'une séquence d'enregistrements de même valeur de p (la page 82 contient un squatter) 1. insertion de A (p = 82) dans la page 82 2. insertion de B (p = 82) dans la page 82 (la page 82 accueille un squatter) 3. insertion de C (p = 82) dans la page 82 (la page 83 est pleine) 4. insertion de D (p = 82) dans la page 84 (la page 84 est pleine) 5. insertion de E (p = 82) dans la page 84 6. insertion de F (p = 82) dans la page 84 (1 enreg. est supprimé de la page 83) C A B D page 85 page 84 page 83 page 82 F E présence de squatters  chaînes longues bloquage brutal à 100% bonne occupation de l’espace I. Concepts des bases de données

103 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée Gestion des débordements Technique alternative zone primaire zone de débordement A F B G page 82 C page 1471 D E H Q I R page 83 J page 1472 S K T U L M page 84 N page 1473 pas de squatters chaînes courtes pas de bloquage (graceful degradation) moins bonne occupation de l’espace O P W V X page 85 Y page 1474 Z I. Concepts des bases de données

104 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.7 Organisation calculée Performances d'un fichier calculé (chaînage en zone primaire) I. Concepts des bases de données

105 4.7 Organisation calculée - Comparaison des techniques 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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 très bonne accès par clé : temps moyen assez bon très bon accès par clé : constance tps constant tps très 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 brutale ou progressive extensibilité oui selon la technique reconstruction rapide lente [*] sauf techniques spéciales I. Concepts des bases de données

106 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.8 Les index secondaires I. Concepts des bases de données

107 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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 bonne 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

108 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

109 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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 16 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

110 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

111 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

112 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

113 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

114 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

115 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.9 Les techniques d'agrégation I. Concepts des bases de données

116 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

117 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

118 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

119 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

120 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

121 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexée 4.9 Les techniques d'agrégation Le clustering index index secondaire sur une 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

122 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

123 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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 on associe un index à chaque cluster Index (NCOM) 30179 C400 22/12/2008 30179 CS 30179 PA 30182 S127 23/12/2008 30182 PA 30178 K111 22/12/2008 30178 CS 30184 C400 23/12/2008 30184 CS 30184 PA 30185 F011 02/01/2009 30185 CS 30185 PA 30185 PS 30177 30178 30179 30182 30184 30185 30186 30187 Fichier de base : clusters <COMMANDE(NCOM), DETAIL(NCOM)> I. Concepts des bases de données

124 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 Organisation calculée 4.4 Lecture séquentielle d'un fichier 4.8 Index secondaires 4.5 Les index 4.9 Techniques d'agrégation 4.6 Organisation séquent. indexé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

125 Fin du chapitre 4 Chapitre suivant :
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 chapitre 4 Chapitre suivant : Chap. 5 : Les systèmes de gestion de bases de données I. Concepts des bases de données

126


Télécharger ppt "4. IMPLEMENTATION DES STRUCTURES DE DONNEES"

Présentations similaires


Annonces Google