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 1re partie Version 2 - Janvier 2012 modifié le 14/10/2014 Support du chapitre 4, Implémentation des structures de données de l'ouvrage Bases de données, J-L Hainaut, Dunod 2012. I. Concepts des bases de données

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 Traitement séquentiel d'un fichier 4.5 Les index 4.6 Organisation séquentielle indexée 4.7 Organisation calculée 4.8 Les index secondaires 4.9 Les techniques d'agrégation(clustering) 4.10 Un exemple : SQL Server de Microsoft Contenu I. Concepts des bases de données

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 Traitement séquentiel 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 Traitement séquentiel 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 Traitement séquentiel 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 unité centrale bus d'échange SGBD SE processeur
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 Traitement séquentiel d'un fichier 4.1 Introduction unité centrale mémoire centrale SE SGBD PA données du SGBD du SE du PA gestion I/O MC processus fichiers etc. contrôleur USB contrôleur graphique contrôleur disques contrôleur réseau processeur clavier souris mémoire flash disques amovibles réseau écran disques bus d'échange I. Concepts des bases de données

7 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 Traitement séquentiel 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

8 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 Traitement séquentiel 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

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 Traitement séquentiel 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 (déplacement tangentiel) 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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - le disque magnétique bras au parking 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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - le disque magnétique 4 bras dont 2 doubles = six têtes trois plateaux et six (sur)faces I. Concepts des bases de données

12 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 Traitement séquentiel 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

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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - géométrie du disque magnétique Géométrie d'un disque magnétique ( 3 To) Le support est formé de 1 à 5 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 à 10 pistes, de 200 à secteurs de 512 octets. Exemple : WD Ultrastar 7K3000, 3 To = cyl x 10 ppc x spp, 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 Traitement séquentiel 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 1 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

15 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 Traitement séquentiel 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 ms/rév. 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 Traitement séquentiel 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

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 Traitement séquentiel 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 1 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 Traitement séquentiel 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) ms connexion = 0 ms délai rotationnel de 1/2 révolution = 4,17 ms temps de transfert : 8,33 / 900 = 0,00925 ms temps moyen : 12,18 ms Ecriture dans un secteur : même temps sauf si relecture de vérification. Dans ce cas, ajouter une rotation, soit 8,33 ms : 20,5 ms. I. Concepts des bases de données

19 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 Traitement séquentiel 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) ms connexion = 0 ms 1/2 révolution = 4,17 ms transfert : 8,33 / 900 * 8 = 0,074 ms temps moyen : tla1 =  12,3 ms on retient I. Concepts des bases de données

20 (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 Traitement séquentiel 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 ms 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

21 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 Traitement séquentiel 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 ms disque  mémoire centrale : 12,3 ms 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 ... (*) : sauf BD in-memory 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 Traitement séquentiel 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 (mémoire centrale,flash) dans lequel sont rangées des données issues de (ou destinées à) une mémoire plus lente (flash,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

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 Traitement séquentiel 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 ms PA tampon disque la donnée demandée n'est pas dans le tampon coût supplémentaire de 12,3 ms 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 Traitement séquentiel 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

25 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 Traitement séquentiel 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

26 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 Traitement séquentiel 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

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 Traitement séquentiel 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 ms Second scénario : le SGBD effectue une lecture anticipée des pages de la piste. Temps de lecture de la 1re page : 12,3 ms Temps de lecture des 111 pages suivantes : 111/112 x 8,33 = 8,26 ms Temps de lecture des 112 pages : 20,56 ms. facteur d'amélioration de 67 ! Temps de lecture d'une page avec anticipation d'une piste : tls1 = 20,56 / 112 = 0,184 ms Soit une vitesse de enregistrements/s on retient I. Concepts des bases de données

28 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 Traitement séquentiel 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 (pourquoi pas 500 ?) Vitesse de rotation : rpm ou 120 rps ou 8,33 ms/rév. Déplacement du bras : seek1 = 1 ms, seekavg = 8 ms, seekmax = 15 ms Lecture d'une page aléatoire (4 Ko) : tla1 = 12,3 ms Transfert d’une page (4 Ko) : ttr = 0,074 ms Lecture d’une page (4 Ko) avec anticipation d’une piste : tls1 = 0,184 ms 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

29 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 Traitement séquentiel 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 1 49 849 début 199 99 [*] tant qu'on reste dans le même cylindre I. Concepts des bases de données

30 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 Traitement séquentiel 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 à 2 TB (en 2014). 2. Utilisée comme mémoire externe (clé USB, cartes mémoire) ou interne (mémoire BIOS, disque dur électronique ou SSD [de 32 GB à 2 TB]) 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 de qualité industrielle 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 grand public; I. Concepts des bases de données

31 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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Mémoire flash 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 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, courant important, d'où usure de la mémoire (dégradation chimique, maximum à effacements d'un même bloc). L'effacement d'un bloc est effectué lorsqu'il n'y a plus de pages inscriptible. 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

32 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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Mémoire flash 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,05 msec écriture d'une page : 0,8 msec effacement d'un bloc : 2,5 msec Problème important de sécurité : La modification d'une donnée laisse sa version précédente dans la mémoire. Inaccessible par l'interface standard mais lisible si on court-circuite le système d'exploitation de la mémoire. Seule manière actuellement d'effacer de manière sûre des données (pages, fichiers) : compléter la mémoire avec des données quelconques, de manière à occuper TOUS les blocs supprimer (logiquement) la totalité de ces données, pour rendre disponibles tous les blocs remplir à nouveau complètement la mémoire avec des données non sensibles pour forcer l'effacement électronique de TOUS les blocs. I. Concepts des bases de données

33 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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Mémoire flash Complément : la mémoire flash Applications en BD 1. SSD : de à 2 To 2. Cache entre disques et le tampon en MC Taille (Go) Vitesse accès aléatoire (Mo/s) Vitesse streaming (Mo/s) DM1 DM2 DM3 DM4 12.000 0,3 124 mémoire flash 1.000 80 300 50 9.500 9.500 tampon MC I. Concepts des bases de données

34 4.2 Les mémoires externes - Database machines
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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Database machines Complément : les machines de bases de données Exemple : Oracle Exadata X4-8 (caractéristiques maximales) Une armoire comprend 2 serveurs DB (machine SQL, couches hautes) 14 serveurs de stockage Exadata (gestion opérations de bas niveau) Processeurs : serveurs DB : 8 processeurs Xeon à 15 coeurs = 120 coeurs par serveur serveurs de stockage : 12 coeurs par serveur total : 408 coeurs Connexions : entre composants d'une armoire et entre armoires; par réseau à très grande vitesse : 40 GB/second I. Concepts des bases de données

35 4.2 Les mémoires externes - Database machines
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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Database machines Complément : les machines de bases de données Exemple : Oracle Exadata X4-8 (caractéristiques maximales) Mémoire à 3 niveaux : mémoire RAM (serveurs DB) : 12 TB mémoire RAM (serveurs stockage) : nd flash (serveurs de stockage, géré comme un tampon persitant) : 56 cartes PCI = 44,8 TB disques magnétiques des 2 serveurs DB : 14 disques rpm x 0,6 TB total : 8,4 TB disques magnétiques des 14 serveurs de stockage: 168 disques (soit rpm x 1,2 TB, soit rpm x 4 TB) total : de 202 TB à 672 TB Autres fonctions Compression par hardware. Augmente la capacité effective des mémoires Cryptage par hardware des données. Redondance des alimentations, processeurs, données, etc. Prix Non disponible (2014). Par analogie avec les équipements précédents, probablement de 1,5 à 5 millions € par armoire. + licences software, proportionnelles au nombre de coeurs. I. Concepts des bases de données

36 4.2 Les mémoires externes - Database machines
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 Traitement séquentiel d'un fichier 4.2 Les mémoires externes - Database machines Complément : les machines de bases de données Exemple : Oracle Exadata X4-8 (caractéristiques maximales) Performances théoriques Mémoire flash Maximum SQL bandwidth : 100 GB/s Maximum SQL 8K read : /s Maximum SQL 8K write : /s Disques Maximum SQL bandwidth : 20 GB/s or 24 GB/s Maximum SQL 8K read/write : or /s Disk data capacity (brute) : 672 TB or 200 TB Disk data capacity (effective, mirroring) : 300 TB or 90 TB Maximum data load speed : 5,5 GB/s = 32 MB/s par disque si 168 disques sans redondance (Source : octobre 2014) 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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage I. Concepts des bases de données

38 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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage Espace de stockage : conteneur dans lequel les lignes d'une table peuvent être enregistrées. 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

39 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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage Comment ranger des enregistrements dans une page ? On retient 4 techniques (il y en a d'autres) : 1. rangement séquentiel 2. pages segmentées en cellules (slots) de taille fixe 3. espace segmenté en cellules (slots) de taille fixe 4. rangement dynamique avec indirection aaaaaa bb ccccccccc dddddd eeeeeee ...     ...   1 0 I. Concepts des bases de données

40 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 Traitement séquentiel 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

41 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 Traitement séquentiel 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

42 = adresse stable ou instable selon le SGBD (instable dans SQL Server)
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 Traitement séquentiel 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 ou instable selon le SGBD (instable dans SQL Server) Approche classique mais coûteuse (voir plus loin) : adresse = rowid + valeurs identifiant primaire I. Concepts des bases de données

43 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 1. Fragmentation de l'espace du disque Création d'un fichier  allocation d'espace sur le disque Suppression d'un fichier  libération de son espace, qui peut être réutilisé I. Concepts des bases de données

44 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 1. Fragmentation de l'espace du disque f f f f f f f f f Après quelque temps de fonctionnement, le disque ressemble à du gruyère ! f I. Concepts des bases de données

45 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 2. Fragmentation d'un fichier Création d'un fichier  allocation d'espace en un ou plusieurs fragments selon espace disponible Extension d'un fichier  allocation d'une extension contiguë ou non f f f g f g f f g f f f f f f f f f f f f f f f f f f f f f f f f f f f I. Concepts des bases de données

46 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 2. Fragmentation d'un fichier I. Concepts des bases de données

47 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 2. Fragmentation d'un fichier Un fichier est constitué d'un ou plusieurs fragments, chacun formé d'une suite de pages consécutives . . . 1 503 505 504 1286 1287 Np-1 Np-2 1288 I. Concepts des bases de données

48 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 2. Fragmentation d'un fichier Défragmentation : opération visant à diminuer le nombre de fragments des fichiers sur le support. Utilitaires de défragmentation Plus simplement copie des fichiers du support A vers le support B suppression des fichiers sur le support A copie 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

49 4.3 Les espaces de stockage - Fragmentation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Fragmentation Phénomène(s) de fragmentation 3. Trois phénomènes de fragmentation a. Fragmentation de l'espace du disque b. Fragmentation d'un fichier c. Fragmentation d'un enregistrement I. Concepts des bases de données

50 4.3 Les espaces de stockage - Organisation
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 Traitement séquentiel d'un fichier 4.3 Les espaces de stockage - Organisation Organisation des fichiers sur le support Plusieurs centaines de milliers de fichiers sur un disque comment les organiser : selon une structure hiérarchique de répertoires comment y accéder : via un catalogue Catalogue fichier système dont l’adresse sur disque est prédéfinie recense les fichiers et répertoires du support pour chaque répertoire, une entrée indique son nom l'entrée dans le catalogue de son répertoire parent direct pour chaque fichier, une entrée indique : l'adresse et la longueur de chacun de ses fragments etc. I. Concepts des bases de données

51 4.4 Traitement séquentiel 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier I. Concepts des bases de données

52 4.4 Traitement séquentiel 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier De nombreux fichiers sont séquentiels : on y range les enregistrements séquentiellement; tout enregistrement est inséré à la suite du dernier on lit les enregistrements séquentiellement pas de suppressions ni de modifications Un fichier à accès direct doté d'un index (une table par exemple) est souvent traité de manière séquentielle : select * from CLIENT where COMPTE > 1000 select count(*) from CLIENT select * from CLIENT ... order by LOCALITE select ... group by LOCALITE I. Concepts des bases de données

53 Etude de deux processus
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier Etude de deux processus lecture séquentielle d'un fichier tri d'un fichier I. Concepts des bases de données

54 4.4 Traitement séquentiel 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel 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 ms/rév. Déplacement du bras : seek1 = 1 ms, seekavg = 8 ms, seekmax = 15 ms Lecture d'une page aléatoire (4 Ko) : tla1 = 12,3 ms Transfert d’une page (4 Ko) : ttr = 0,074 ms Lecture d’une page (4 Ko) avec anticipation d’une piste : tls1 = 0,184 ms Gain de la lecture avec anticipation d’une piste : aas = tla1 / tls1 = 67 I. Concepts des bases de données

55 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Etude préliminaire : lecture d'une courte séquence de pages consécutives dans un fichier. Séquence de p pages [dans le même cylindre]. 1. lecture de la première page : tla1 2. lecture des p-1 pages suivantes : (p - 1) x ttr  lecture des p pages : tlsq = tla1 + (p - 1) x ttr Exemple : lecture d'une séquence de 200 pages de 4 Ko [*]. tlsq = tla1 + (p - 1) x ttr = 12, x 0,074 = 27,03 ms si chaque page contient 10 enregistrements, la vitesse de lecture est de 10 x 200 / 0,02703 = enreg./s I. Concepts des bases de données

56 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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 et est prêt à lire les pages suivantes Disque partagé : après une lecture, le bras est déplacé et occupe pour la lecture suivante une position aléatoire; la lecture suivante exigera un (re)positionnement aléatoire du bras I. Concepts des bases de données

57 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Lecture séquentielle d'un fichier de Np pages. Hypothèse 1 : fichier non fragmenté Hypothèse 2 : temps de traitement des enregistrements négligeable On distingue 3 situations : A. Disque dédié (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

58 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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 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

59 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

60 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

61 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

62 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

63 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

64 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Lecture séquentielle d'un fichier de Np pages. Exemple : Np = pages de 4 Ko (= 1 Go) A. Disque dédié : Calcul standard : tlsf1 = tla1 + (Np - 1) x ttr + ncyl x seek1 = 18,8 s (*) Calcul simplifié : tlsf1  Np x ttr = 18,5 s B. Disque partagé avec lecture anticipée d'une piste : tlsf2 = Np x tls1 = 46 s C. Disque partagé sans lecture anticipée : tlsf3 = Np x tla1 = 3.075 s utilité des optimisations ! (*) pourquoi " Np - 1" ? Parce que ttr a déjà été comptabilisé une fois dans tla1 I. Concepts des bases de données

65 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Lecture d'un fichier fragmenté En toute généralité, le fichier occupe sur le support de 1 à q fragments (= suites de pages contiguës). I. Concepts des bases de données

66 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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

67 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Le phénomène de fragmentation Le fichier est formé de Np pages réparties en q fragments. Concerne principalement le scénario A (streaming). Temps de lecture du fichier (disque dédié) : tlsf4 = Np x ttr + (q - 1) x (tla1 - ttr) tlsf4  tlsf1 + (q - 1) x tla1 I. Concepts des bases de données

68 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle Le phénomène de fragmentation Exemple 1 : fichier de pages (1 Go) décomposé de 50 fragments (de pages ou 20 Mo en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 18, x 0,0123 = 19,4 s (+ 3%) Exemple 2 : fichier de pages (100 Mo) décomposé de 50 fragments (de 500 pages ou 2 Mo en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 1, x 0,0123 = 2,5 s.(+ 32%) Exemple 3 : fichier de pages (10 Mo) décomposé de 50 fragments (de 50 pages ou 200 Ko en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 0, x 0,0123 = 0,8 s.(+ 300%) I. Concepts des bases de données

69 4.4 Traitement séquentiel d'un fichier - lecture séquentielle
1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4.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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - lecture séquentielle 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 pour 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. I. Concepts des bases de données

70 Tri d'un fichier séquentiel
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel Tri d'un fichier Fi = production d'un fichier Fo, de même contenu que Fi, mais dont les enregistrements sont ordonnés selon les valeurs (dé)croisantes d'un ou plusieurs champs. i = input o = output Si Fi est de petite taille, et si la mémoire centrale est suffisante : 1. lire les enregistrements de Fi et les ranger dans un tableau T en mémoire centrale 2. trier le contenu de T par une méthode de tri interne 3. recopier le contenu de T dans un fichier Fo. Sinon : tri externe Bonne nouvelle : les tris externes sont très efficaces ! I. Concepts des bases de données

71 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base Observation Une liste en désordre est constituée de sous-suites ordonnées Sous-suite maximale = monotonie Une liste est constituée d'une suite de monotonies Une liste de N éléments en ordre est constituée de 1 monotonie en ordre inverse est constituée de N monotonies en parfait désordre est constituée de N/2 monotonies I. Concepts des bases de données

72 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base Une procédure élémentaire : fusion ou interclassement de deux listes ordonnées : I. Concepts des bases de données

73 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base On combine ces deux acquis : fusion de deux listes non ordonnées Les monotonies de même rang sont fusionnées en une seule. La liste finale contient deux fois moins de monotonies que les deux listes d'origine. I. Concepts des bases de données

74 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base Procédure de base : Fo = tri(Fi) F := Fi éclater F en 2 demi-fichiers F1 et F2 tant que F2 n'est pas vide, faire fusionner F1 et F2 en F fin-tq Fo := F1 Coûts de base : lecture de F = tlsf écriture de F = tlsf lecture de F1 ou F2 = 0,5 x tlsf écriture e F1 ou F2 = 0,5 x tlsf I. Concepts des bases de données

75 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base 82 98 78 83 56 85 92 80 87 23 79 72 91 34 67 éclatement fusion utilise 3 fichiers Coût : x 2 lectures/écritures de F, soit 12 x tlsf I. Concepts des bases de données

76 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base La matérialisation interne du fichier F dans le corps de boucle est inutile. La suite d'enregistrements sortant du processus de fusion peut alimenter directement le processus d'éclatement. On gagne ainsi une écriture et une lecture de F à chaque phase de fusion-éclatement. I. Concepts des bases de données

77 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base 82 98 87 78 83 23 79 56 85 92 72 91 80 34 67 éclatement fusion utilise 4 fichiers vide Coût : x 2 lectures/écritures de L, soit 8 x tlsf I. Concepts des bases de données

78 Tri d'un fichier séquentiel - Procédure de base
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Procédure de base F1, F2 := éclatement(Fi) F3, F4 := fusion-éclatement(F1, F2) F2 vide ? non oui F1, F2 := F3, F4 Fo := F1 I. Concepts des bases de données

79 Tri d'un fichier séquentiel - Calcul du temps de tri
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Calcul du temps de tri P phases de fusion-éclatement M monotonies dans Fi 1 monotonies dans Fo; Chaque phase divise le nombre total de monotonies par 2. la phase 1 produit M / 2 monotonies la phase k produit M / 2k monotonies. la phase P produit M / 2P monotonies On a donc M / 2P  1 (et bien sûr M / 2P-1 > 1) Soit encore P = log2M Temps de tri d'un fichier ttri = 2 x (1 + P) x tlsf ttri = 2 x (1 + log2 M) x tlsf I. Concepts des bases de données

80 Tri d'un fichier séquentiel - Calcul du temps de tri
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Calcul du temps de tri Si fichier parfaitement en désordre : M = Nr / 2 P = log2 Nr - 1 Temps de tri d'un fichier en parfait désordre ttri = 2 x  log2 Nr x tlsf Observation : complexité O(Nr log Nr) I. Concepts des bases de données

81 Tri d'un fichier séquentiel - 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Optimisation Il est possible de réduire considérablement le temps d'un tri. 1. Tri interne lors de la phase initiale d'éclatement 2. Augmentation du nombre de voies 3. Parallélisme lecture/écriture Le prix à payer : plus d'espace en mémoire centrale, plus de fichiers ouverts I. Concepts des bases de données

82 Tri d'un fichier séquentiel - 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Optimisation 1. Tri interne lors de la phase initiale d'éclatement Idée : on réduit P en diminuant M On augmente artificiellement la taille des monotonies de Fi par un tri interne initial : lors de la phase initiale d'éclatement, on range en mémoire centrale b enregistrements, qu'on trie avant de les recopier dans un des demi-fichiers théoriquement, on forme des monotonies de taille b au lieu de 2 mieux : certaines techniques de tri forment des monotonies de taille 2 b (tri du tournoi, voir annexe) P' = P - log2 b Exemples : Nr = sans pré-tri : M = P = 23 b = : M' = P' = P - 10 = 13 b = M' = 610 P' = P - 13 = 10 I. Concepts des bases de données

83 Tri d'un fichier séquentiel - 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Optimisation 2. Augmentation du nombre de voies Idée : on réduit P en augmentant "2" (!) dans  log2 M On a travaillé sur 2 fragments de fichiers (= 2 voies). on pourrait travailler sur v voies (v = 4, 8, 20, 50, etc.) le nombre de phases passe de P = log2M à P" = logvM = log2M / log2v Exemples : Nr = , b = 8 200 v = 2 P' = 10 v = 4 P" = 5 v = 32 P" = 2 v = P" = 1 (linéaire en Nr; mais pas réaliste pour gros fichiers) Evidemment, on choisira v  M I. Concepts des bases de données

84 Tri d'un fichier séquentiel - 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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Optimisation 3. Parallélisme lecture/écriture Idée : on réduit ttri en diminuant "2" (!) dans 2 x (1 + P) On travaille sur 2 disques : on lit sur l'un et on écrit sur l'autre on intervertit après chaque phase lecture et écriture s'effectuent en parallèle et coûtent, à deux, tlsf le temps de tri est divisé par 2 ttri = (1 + P") x  tlsf I. Concepts des bases de données

85 Tri d'un fichier séquentiel - Exemple
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 Traitement séquentiel d'un fichier 4.4 Traitement séquentiel d'un fichier - tri externe Tri d'un fichier séquentiel - Exemple Fichier séquentiel de 1 000 000 enregistrements de 400 octets; pages de 4 Ko; lecture anticipée : tlsf = 18 s Procédure de base M = ; P = 19 ttri = 2 x (1 + P) x tlsf = 720 secondes Tri interne initial (b = ) M' = 5; P' = 3 ttri = 2 x (1 + P') x tlsf = 144 secondes Augmentation du nombre de voies (v = 5) M' = 5; P" = 1 ttri = 2 x (1 + P") x tlsf = 72 secondes Parallélisme I/O M' = 5; P" = 1 ttri = (1 + P") x tlsf = 36 secondes I. Concepts des bases de données

86 Fin de la 1re partie du module 4
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 de la 1re partie du module 4 Suite : 4. Implémentation des structures de données (2) I. Concepts des bases de données

87


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

Présentations similaires


Annonces Google