1.26k likes | 1.47k Views
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 1 - 10 novembre 2009 Corrections 5/11/2010.
E N D
1. Motivation et introduction5. 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 1 - 10 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
1. Motivation et introduction5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données Contenu 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) 4. IMPLEMENTATION DES STRUCTURES DE DONNEES I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . étude du disque magnétique 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 I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 50.000 à 200.000 pistes circulaires et concentriques. • Chaque piste est décomposée en 200 à 1.000 secteurs. • Un secteur comprend 512 octets. • Le support tourne à une vitesse constante de 3.200 à 15.000 rpm. • Les pistes de même rang constituent un cylindre (virtuel) Une mémoire à disque magnétique est donc constituée de 50.000 à 200.000 cylindres, formés de 2 à 20 pistes, de 200 à 1.000 secteurs de 512 octets. I. Concepts des bases de données
1. Motivation et introduction5. 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 . . . secteur 307 de la piste 2 du cylindre 63450 cylindre 63450 piste 0 piste 2 piste 7 secteurs 0 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> Adressage LBA (logical block addressing) : les secteurs sont numérotés de 0 à 979.199.999. Conversion LBA <c,p,s> par le contrôleur. I. Concepts des bases de données
1. Motivation et introduction5. 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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets • Capacité : 979.200.000 secteurs 501.350.400.000 octets467 Go • Vitesse de rotation : 7.200 rpm ou 120 rps ou 8,33 msec/rév. I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . page 127 0 page 126 4.2 Les mémoires externes - lecture / écriture sur un disque Deux pages consécutives de 8 secteurs I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . c'est INSUFFISANT ! on devrait pouvoir dépasser 1.000 enregistrements par seconde Deux optimisations simples : le tampon et la lecture anticipée (troisième technique examinée plus tard : le clustering) 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 I. Concepts des bases de données
1. Motivation et introduction5. 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 28.600 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
1. Motivation et introduction5. 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 indexn° page n° de cadre. I. Concepts des bases de données
1. Motivation et introduction5. 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 . . . la donnée réclamée est dans le tampon coût = 0,00043 msec tampon disque PA la donnée demandée n'est pas dans le tampon coût supplémentaire de 12,3 msec 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. I. Concepts des bases de données
1. Motivation et introduction5. 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 : • 2.2.2.1 Un cadre libre C est trouvé • 2.2.2.2 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
1. Motivation et introduction5. 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 : • 2.2.2.1 Un cadre libre C est trouvé • 2.2.2.2 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets • Capacité : 979.200.000 secteurs 501.350.400.000 octets467 Go • Vitesse de rotation : 7.200 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
1. Motivation et introduction5. 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 . . . début début 0 99 199 849 0 49 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 [*] tant qu'on reste dans le même cylindre I. Concepts des bases de données
1. Motivation et introduction5. 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 4.000 $ 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
1. Motivation et introduction5. 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 ... 2. ... 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 10.000 à 100.000 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . 0 1 2 Np-3 Np-2 Np-1 . . . 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 I. Concepts des bases de données
1. Motivation et introduction5. 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 . . . aaaaaaaaa bbbbb cccccccccccccc ddddddddd 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 5 4 3 2 1 0 ... bbbbb ddddddddd aaaaaaaaa cccccccccccccc I. Concepts des bases de données
1. Motivation et introduction5. 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 . . . 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 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 I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets • Capacité : 979.200.000 secteurs 501.350.400.000 octets467 Go • Vitesse de rotation : 7.200 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
1. Motivation et introduction5. 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,3 + 199 x 0,074 = 27,03 msec si chaque page contient 10 enregistrements, la vitesse de lecture est de 10 x 200 / 0,02703 = 73.992 enreg./sec. [*] dans le même cylindre I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . 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= Npx 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 tlsf1Np x ttr à vérifier ! 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 I. Concepts des bases de données
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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
1. Motivation et introduction5. 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 . . . C. Disque partagé sans lecture anticipée : tlsf3= Np x tla1=3.075 sec utilité des optimisations ! 4.4 Lecture séquentielle d'un fichier Lecture séquentielle d'un fichier de Np pages. Exemple : Np = 250.000 pages A. Disque dédié : Calcul standard : tlsf1=tla1 + (Np- 1) x ttr + ncyl x seek1=18,8 sec Calcul simplifié : tlsf1Np x ttr=18,5 sec B. Disque partagé avec lecture anticipée d'une piste : tlsf2= Np x tls1=46 sec I. Concepts des bases de données
1. Motivation et introduction5. 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 à nfragfragments (= suites de pages contiguës). I. Concepts des bases de données