ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 page 1/6 SOMMAIRE 1 PRESENTATION DE LA SEQUENCE ................................................................... 2 1.1 1.2 DESCRIPTION DES SAVOIRS ....................................................................................... 2 COMPETENCES ATTENDUES ...................................................................................... 2 2 PROBLEMATIQUE ................................................................................................... 2 3 ORGANISATION PHYSIQUE DES FICHIERS .................................................... 2 4 ORGANISATION LOGIQUE DES FICHIERS ...................................................... 3 5 METHODES D’ACCES ............................................................................................. 4 6 L’INDEXATION ......................................................................................................... 4 6.1 6.2 6.2.1 6.2.2 PRINCIPE.................................................................................................................... 4 GESTION DES INDEX .................................................................................................. 5 Création .............................................................................................................. 5 Suppression ........................................................................................................ 5 6.3 6.4 DIFFERENTS TYPES D’INDEX ..................................................................................... 6 QUAND UTILISER LES INDEX ? .................................................................................. 6 D:\582687728.doc 1 ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 page 2/6 PRESENTATION DE LA SEQUENCE 1.1 Description des savoirs Ce chapitre présente l’organisation logique des fichiers qui constituent une base de données. S24 Système de gestion de fichiers S25 Administration de la base de données 1.2 Compétences attendues Comparer les techniques d’organisation des données Administrer une BdD non répartie et en assurer la sécurité 2 PROBLEMATIQUE Les SGBD doivent gérer des volumes de données parfois considérables (plusieurs gigas-octets qui sont accédés de façon concurrente par plusieurs utilisateurs simultanément). Ceci impose des contraintes de gestion efficace des données avec un contrôle fin au niveau de l’utilisation afin d’assurer une certaine sécurité et un confort d’utilisation maximum. L’objectif est donc de stocker les données afin d’assurer les performances maximales au niveau des requêtes d’interrogation, d’insertion, de suppression et de mise à jour. 3 ORGANISATION PHYSIQUE DES FICHIERS Afin d’assurer la pérennité de l’information, les données de la base de données sont stockées sur un support de mémoire secondaire. Il existe différents types de mémoire : les mémoires accessibles directement par la CPU (MC, mémoirescaches) - mémoires volatiles -. les mémoires secondaires (disques, BM, ...) plus lentes d'accès mais en général avec une capacité plus grande. Non directement accessibles, - mémoires non volatiles -. Les données d'une base de données sont en général trop volumineuses pour tenir entièrement en mémoire centrale (RAM). Les données sont stockées sous la forme de fichiers d'enregistrements. Les échanges entre la mémoire secondaire et la mémoire centrale se font par transfert de page. Définition Une page est une granule d'allocation d'espace mémoire secondaire (unité de lecture/écriture sur le support). Chacune des pistes comporte la même quantité d'information. Un bloc (une page) représente l'unité de transfert entre disque et zone tampon (buffer) qui est une zone réservée en mémoire centrale. Il est possible de transférer plusieurs blocs à la fois (cluster). Le temps d'accès au premier bloc se situe entre 15 et 60 ms; il est de l'ordre de 1 à 2 ms pour le bloc suivant. D:\582687728.doc ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 page 3/6 L’utilisation de plusieurs buffers permet d’améliorer les performances en réduisant considérablement les temps d'accès. Ceci est possible dans le cas d'une machine multiprocesseurs ou d'un processeur d'E/S dédié. Le Système de Gestion de Fichiers (SGF) gère les différentes méthodes d'accès. Il alloue de l’espace pour les fichiers. Un fichier peut être considéré comme un ensemble de pages sur le disque. Cette vision facilite la gestion en faisant correspondre des adresses relatives et des adresses physiques. @relative (n°page, déplacement) @absolue (n°cylindre, n°piste, n°secteur) Le gestionnaire d'entrées/sorties gère les différentes structures pour chaîner les différentes pages affectées à un fichier d'enregistrements. Un enregistrement n'est pas nécessairement de taille fixe (champ de taille variable ou champs optionnels). On utilise donc des séparateurs de champs et d'enregistrements pour faciliter le parcours de l’information. Un fichier peut contenir des enregistrements de différents types (cluster). On utilise des indicateurs de type d'enregistrements. Un bloc peut contenir plusieurs enregistrements (facteur de blocage). Le nombre d'enregistrements/bloc est soit fixe, soit variable (chaînage). Les blocs sont soit consécutifs, soit chaînés. 4 ORGANISATION LOGIQUE DES FICHIERS Le but est de minimiser le nombre d'accès pour retrouver un bloc particulier. Un descripteur de fichier donne le nom du fichier, le nom du propriétaire, la liste des droits associés, la date de création, la taille, l'organisation, le nombre de champs... L’organisation de fichiers concerne le mode de stockage des enregistrements (1 fichier, 1 organisation). L’organisation séquentielle Les enregistrements sont accessibles dans leur ordre de création. Pour atteindre un enregistrement, il faut d’abord lire tous les précédents. L’organisation relative Les enregistrements porte un numéro d’ordre ; Chaque enregistrement est accessible par son numéro d’ordre. Les enregistrements peuvent aussi se lire séquentiellement du plus petit au plus grand numéro d’ordre. Les enregistrements doivent être de taille fixe. L’organisation séquentielle indexée Quand un fichier est indexé, il est possible de retrouver un enregistrement précis en connaissant une partie des informations qu’il contient : c’est la clé d’index. Une table d’index donne la correspondance entre les valeurs des clés d’index et les enregistrements où on les trouve. D:\582687728.doc 5 ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 page 4/6 METHODES D’ACCES Le type d’accès est choisi par le programmeur ou par le SGBD en tenant compte de l’organisation des fichiers. Il détermine la façon dont les enregistrements seront recherchés dans le fichier. Accès séquentiel On accède aux enregistrements les uns à la suite des autres dans leur ordre de création pour un fichier séquentiel dans l’ordre des numéros d’enregistrement pour un fichier relatif dans l’ordre alphanumérique d’une clé d’index pour les fichiers séquentiels indexés Accès direct L’accès direct n’est possible que sur les fichiers relatifs ou indexés. On accède directement à un enregistrement En connaissant son numéro d’ordre dans un fichier relatif En connaissant la valeur de sa clé d’index dans un fichier indexé. 6 L’INDEXATION 6.1 Principe L’indexation a pour but d’accélérer les traitements de recherche. Il existe différentes techniques (indexation, hachage) selon le contexte. L’évaluation d'une technique se fait selon des critères de temps d'accès, délai d'insertion, délai d'effacement, occupation mémoire. Un index contient le critère de recherche. Ici, index sur l’année des films. D:\582687728.doc ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 Ici, index sur des noms de films. Un index est toujours trié. On parcourt l’index pour trouver la page de donnée. Exemple : je cherche les données du film Psychose. En accès séquentiel : Parcours des pages 1, 2 et 3 => 3 accès disque En accès indexé : Parcours de la page d’index et parcours de la page 3 => 2 accès disque. En accès indexé, le nombre d’accès disque est toujours identique quelque soit la donnée à rechercher et il est égal à la profondeur de l’arbre d’index + 1accès aux données. 6.2 Gestion des index CREATE TABLE ( NoFilm NomFilm DteCreation film INT NOT NULL, VARCHAR(60) NOT NULL, DATE NOT NULL ) 6.2.1 Création Syntaxe CREATE INDEX nom_d'index ON table (col1 [,col2,...]) 6.2.2 Suppression Syntaxe DROP INDEX nom_d'index ; D:\582687728.doc Exemple CREATE INDEX iFilm ON film (NoFilm) Exemple DROP INDEX iFilm; page 5/6 ALSI S25 Administration d’un SGBD Relationnel STS2 IG Création d’index Le 16/04/17 page 6/6 6.3 Différents types d’index Pour une même table, il est possible d'avoir plusieurs index : Un Index primaire (plaçant) : l’ordonnancement des clés dans l'index correspond à l'ordonnancement des enregistrements dans le fichier. L’index secondaire (non plaçant) : l’ordonnancement des clés dans l'index correspond à un ré-ordonnancement logique des enregistrements dans le fichier. L’index contient alors le ROWID de l’enregistrement à accéder. La table d’index peut contenir toutes les valeurs des clés d’index présentes dans le fichier de données. On parle alors d’index dense. Dans le cas contraire (une clé d’index pour plusieurs enregistrements), on parle d’index creux. Exemple d’index dense non plaçant : 6.4 Quand utiliser les index ? Colonnes à indexer Clés primaires et étrangères : la table d’index correspondante est créée automatiquement. Colonnes dans lesquelles des plages de valeurs de clés sont recherchées Colonnes dont l'accès s'effectue selon un ordre trié Colonnes à ne pas indexer Auxquelles il est rarement fait référence dans une requête. Il faut étudier les interfaces. Qui contiennent peu de valeurs uniques (à réserver aux index bitmap) Qui sont définies avec les types de données bit, text ou image Quand une fonction est appliquée au critère de recherche, l’index n’est pas utilisé. Exemple : SELECT * FROM EMPLOYE WHERE UPPER(nom) = ‘DUPONT’; Oracle permet la création d’index qui prend en compte la fonction. D:\582687728.doc