4. IMPLEMENTATION DES STRUCTURES DE DONNEES

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
L’ordinateur et ses composants Un ordinateur est composée d'une unité centrale et de périphériques. Tous les périphériques sont branchés sur l'unité centrale.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Fonctionnement interne d'un routeur (kurose p ) Eugen Dedu IUT Belfort-Montbéliard, R&T1, France avril 2009.
1 Observer le paramétrage d’un réseau. 2 Dans notre réseau téléphonique habituel, les postes, reliés à un auto-commutateur... …peuvent dialoguer, car.
Module 13 : Implémentation de la protection contre les sinistres.
Les mémoires de l’ordinateur
Les Bases de données Définition Architecture d’un SGBD
La technologie des mémoires
L’ordinateur et ses composants
Architecture des ordinateurs, Environnement Numérique de Travail
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Architecture des microordinateurs
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
LAN Médias cch_ccnp.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Visite guidée - session 3 Les postes de charge et les gammes
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
Base de données: Généralité IFT6800 Jian-Yun Nie.
Rappels et présentation des supports de stockage
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Journée Analyse D0, 19 janvier 2004
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Centralisation de logs
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Le moniteur Le clavier L'unité centrale (l'ordinateur proprement dit) Qui sont des périphériques DEFINITIONS DE BASE.
Bienvenue Comment peut-on disposer d’un espace numérique permettant de stocker toutes sortes de documents pouvant être utilisés par n’importe quel membre.
Introduction Présentation du formateur : Adresse
Windows 7 NTFS.
Module 5 : Gestion des disques.
P2P-Tube : amélioration de YouTube par P2P.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Initiation à l’informatique Partie matérielle du PC Unité Centrale Université de Tébessa 1 ère Année MI Y. MENASSEL.
Révision finale GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde.
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Carte mère AD77 infinity : assemblage d'un ordinateur de bureau
Disques durs et disques optiques
Le moniteur Le clavier L'unité centrale (l'ordinateur proprement dit) Qui sont des périphériques DEFINITIONS DE BASE.
À l’intérieur de l’ordinateur
L’ordinateur Exposé par Marin
Architecture de machines Le microprocesseur Cours
Bus et adressage GIF-1001: Ordinateurs: Structure et Applications
Qu’est-ce qu’un ordinateur ?. Ordinateur – calculateur Un ordinateur est une machine qui permet de réaliser, d’exécuter des opérations, des calculs, c’est.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Architecture des ordinateurs
Introduction Présentation du formateur : Adresse
6. CONCEPTION PHYSIQUE RELATIONNELLE
Gestion des photos Organisation du disque dur, Navigation
ARCHITECTURE DES ORDINATEURS
Gestion de la mémoire GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde.
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
1 Décodage d’adresses et mémoires Introduction Définition, Caractéristiques des mémoires Classification des mémoires La mémoire centrale Caractéristiques.
Chapitre 7 : Les mémoires
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
4. IMPLEMENTATION DES STRUCTURES DE DONNEES
EXPOSER DES TYPES DE MÉMOIRE (EXTERNE) Réaliser par :Youcef Ladjal Belhadj A/Fatah Salmi Brahim Sous la direction de: mesieux ziania.
Schéma d'un ordinateur L'INTERIEUR DE L'ORDINATEUR.
BUFFER CIRCULAIRE Meryem EL BAKRI. PLAN Introduction Buffer circulaire Fonctionnement.
Architecture d’un ordinateur
LIVE MIGRATION Windows Server 2012 & Hyper-V3
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
Dridi Lobna 1 Couche Réseau II Réseau : Gestion de l’accès.
Transcription de la présentation:

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

4. IMPLEMENTATION DES STRUCTURES DE DONNEES 1. Motivation et introduction 5. Les SGBD 2. Concepts des bases de données 3. Modèle relationnel et normalisation 4. Implémentation des structures de données 4. IMPLEMENTATION DES STRUCTURES DE DONNEES 4.1 Introduction 4.2 Les mémoires externes 4.3 Organisation d'un espace de stockage 4.4 Traitement séquentiel d'un fichier 4.5 Les index 4.6 Organisation séquentielle indexée 4.7 Organisation calculée 4.8 Les index secondaires 4.9 Les techniques d'agrégation(clustering) 4.10 Un exemple : SQL Server de Microsoft Contenu I. Concepts des bases de données

4.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

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

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

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

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

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

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

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

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

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

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 50.000 à 300.000 pistes circulaires et concentriques. Chaque piste est décomposée en 200 à 2.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 à 300.000 cylindres, formés de 2 à 10 pistes, de 200 à 2.000 secteurs de 512 octets. Exemple : WD Ultrastar 7K3000, 3 To = 300.000 cyl x 10 ppc x 2.000 spp, I. Concepts des bases de données

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 à 979.199.999. Conversion LBA  <c,p,s> par le contrôleur. I. Concepts des bases de données

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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : 979.200.000 secteurs 501.350.400.000 octets 467 Go Vitesse de rotation : 7.200 rpm ou 120 rps ou 8,33 ms/rév. I. Concepts des bases de données

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

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

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

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

(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 1.000 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

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 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 ... (*) : sauf BD in-memory I. Concepts des bases de données

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

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

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 : 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

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 : 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

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

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 5.400 enregistrements/s on retient I. Concepts des bases de données

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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : 979.200.000 secteurs 501.350.400.000 octets 467 Go (pourquoi pas 500 ?) Vitesse de rotation : 7.200 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

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

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

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 ... 2. ... 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 10.000 à 100.000 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

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

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 0.128 à 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

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

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 10.000 rpm x 0,6 TB total : 8,4 TB disques magnétiques des 14 serveurs de stockage: 168 disques (soit 10.000 rpm x 1,2 TB, soit 7.200 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

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 : 2.660.000/s Maximum SQL 8K write : 1.960.000/s Disques Maximum SQL bandwidth : 20 GB/s or 24 GB/s Maximum SQL 8K read/write : 32.000 or 50.000/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 : http://www.oracle.com/technetwork/database/exadata/exadatax4-8datasheet-2243041.pdf; octobre 2014) I. Concepts des bases de données

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

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

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 ...     3 2 1 0 ...   1 0 0 1 2 2706 2707 2708 2709 2710 2711 I. Concepts des bases de données

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

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

= 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

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

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

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

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

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

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

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

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

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

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

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

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 : 136.000 cylindres de 8 pistes (ou têtes) de 900 secteurs de 512 octets Capacité : 979.200.000 secteurs 501.350.400.000 octets 467 Go Vitesse de rotation : 7.200 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

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,3 + 199 x 0,074 = 27,03 ms si chaque page contient 10 enregistrements, la vitesse de lecture est de 10 x 200 / 0,02703 = 73.992 enreg./s I. Concepts des bases de données

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

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

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

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

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

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

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

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

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 = 250.000 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

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

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

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

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 250.000 pages (1 Go) décomposé de 50 fragments (de 5.000 pages ou 20 Mo en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 18,8 + 49 x 0,0123 = 19,4 s (+ 3%) Exemple 2 : fichier de 25.000 pages (100 Mo) décomposé de 50 fragments (de 500 pages ou 2 Mo en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 1,9 + 49 x 0,0123 = 2,5 s.(+ 32%) Exemple 3 : fichier de 2.500 pages (10 Mo) décomposé de 50 fragments (de 50 pages ou 200 Ko en moyenne) tlsf4  tlsf1 + (q -1) x tla1 = 0,2 + 49 x 0,0123 = 0,8 s.(+ 300%) I. Concepts des bases de données

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

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

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 82 98 87 78 83 23 79 56 85 92 72 91 80 34 67 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

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 : 21 29 30 23 27 32 34 38 21 23 27 29 30 32 34 38  I. Concepts des bases de données

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 82 98 78 83 56 85 92 80 87 23 79 72 91 34 67 82 87 98 23 78 79 83 56 72 85 91 92 34 67 80  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

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

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 : 2 + 5 x 2 lectures/écritures de F, soit 12 x tlsf I. Concepts des bases de données

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

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 : 2 + 3 x 2 lectures/écritures de L, soit 8 x tlsf I. Concepts des bases de données

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

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

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

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

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 = 10 000 000 sans pré-tri : M = 5 000 000 P = 23 b = 1 024 : M' = 4 883 P' = P - 10 = 13 b = 8 200 M' = 610 P' = P - 13 = 10 I. Concepts des bases de données

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 = 10 000 000, b = 8 200 v = 2 P' = 10 v = 4 P" = 5 v = 32 P" = 2 v = 1 024 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

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

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 = 500 000; P = 19 ttri = 2 x (1 + P) x tlsf = 720 secondes Tri interne initial (b = 100 000) 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

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