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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.

Présentations similaires


Présentation au sujet: "Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8."— Transcription de la présentation:

1 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8

2 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke2 Stockage des Données dans des fichiers dEnregistrements Un SGBD stocke les relations dans des fichiers denregistrements. Dans larchitecture dun SGBD, le niveau des méthodes daccès aux fichiers supporte le concept de fichier. Les fichiers peuvent être des fichiers non ordonnés (heap files) ou des fichiers indexés. Le niveau des méthodes daccès aux fichiers stocke les fichiers sous forme dune ou plusieurs pages sur disque et administre ces pages. Le buffer manager emmène les pages de la mémoire secondaire à la mémoire principale (dans le buffer pool). Le niveau des méthodes daccès aux fichiers fait appel au buffer manager.

3 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke3 Données sur Stockage Externe Disques: Peuvent puiser des pages au hasard à un coût fixe Cependant la lecture de plusieurs pages consécutives est moins coûteuse que une lecture dans un ordre aléatoire Bandes magnétiques: Peuvent ne lire les pages que séquentiellement Moins coûteux que les disques; utilisées pour archivage Gestion des fichiers: Méthode pour arranger un fichier denregistrements sur stockage externe. Identité denregistrement (Record id -- rid): Suffisant pour localiser physiquement lenregistrement Indexes: structures de données permettant de trouver les identités des enregistrements à partir des valeurs des clés de recherche

4 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke4 Alternatives pour lOrganisation des Fichiers Plusieurs alternatives existent, chacune étant idéale pour certaines situations, et pas pour dautres: Tas (Heap files): Adapté au scannage de tous les enregistrements. Fichiers triés: Adapté aux situations où les enregistrements doivent être puisés dans un certain ordre, ou lorsque un intervalle (range) denregistrements est requis. Indexes: Structures des données en forme darbres ou de hachage pour organiser les enregistrements. Comme les fichiers triés, ils accélèrent les recherches pour un sous ensemble denregistrements sur base des valeurs des clés. Les modifications sont plus rapides que dans les fichiers triés.

5 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke5 Indexes Un index sur un fichier accélère les sélections sur les clés de recherche pour cet index. Tout sous-ensemble des attributs dune relation peut servir de clé pour un index sur cette relation. Une clé de recherche nest pas la même chose quune clé au sens densemble minimal dattributs qui identifie de manière unique un enregistrement de la relation. Un index contient une collection d entrées de données et permet de puiser de manière efficiente toutes les entrées de données k* en utilisant une valeur de clé k.

6 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke6 Alternatives pour des Entrées de Données k* dans un Index Trois alternatives: une entrée de données peut être un enregistrement de données avec une valeur de clé k une paire Le choix dune des alternatives dépend de la technique dindexage utilisée pour localiser les entrées de données ayant une valeur de clé k. Exemples de techniques dindexage: Arbres B+, hachage Typiquement, un index contient de linformation qui oriente les recherches vers les entrées de données désirées.

7 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke7 Alternatives pour des Entrées de Données (Suite) Alternative 1: La structure de lindex est une organisation de fichier pour les enregistrements de données (en lieu et place dun tas ou dun fichier trié). Un maximum dun index peut être créé sur une collection denregistrements de données suivant lalternative 1. (Sinon, les enregistrements seront dupliqués, ce qui conduit à des redondances et à des inconsistances potentielles.) Si les enregistrements des données sont très nombreux, le # de pages contenant les entrées de données sera très élevé.

8 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke8 Alternatives pour des Entrées de Données (Suite) Alternatives 2 et 3: Ici, les entrées de données sont typiquement plus petites que les enregistrements de données. Ainsi, ces 2 alternatives sont meilleurs que la première pour traiter les enregistrements de données larges. Elles sont encore bien meilleures lorsque les clé de recherche sont petits. (La portion de la structure de lindex utilisée pour la recherche qui dépend de la taille des entrées de données est bien plus petite que dans lalternative 1.) Lalternative 3 est plus compacte que lalternative 2, mais utilise des enregistrements à taille variée, même si les clés de recherche sont à taille fixe.

9 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke9 Classification des Index Primaire vs. secondaire : Selon que la clé de recherche contient la clé primaire ou pas, on a un index primaire ou secondaire. Index unique : La clé de recherche contient un candidat clé. Groupé vs. nongroupé (Clustered vs. unclustered) : Si lordre des enregistrements des données est le même que ou proche de celui des entrées de données, alors lindex est groupé; sinon il est nongroupé. Lalternative 1 impliquee un index groupé; dans la practique, linverse est aussi vrai car les fichiers trié sont rares. Un fichier ne peut etre groupé que sur au plus une clé de recherche. Le cout de puiser des enregistrements de donnees en utilisant les index varie beaucoup selon que lendex en question est groupé ou pas.

10 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke10 Index Groupé vc. Nongroupé Supposez que lalternative 2 est utilisée pour les entrées de données et que les enregistrements de données sont stockés sur un tas (heap file). Pour construire un index groupé, dabord trier le tas (tout en réservant de lespace libre sur chaque page). Les pages en dépassement de capacité peuvent être utiles pour les insertions. (Doù, lordre des enregistrements de données est proche de celui utilisé pour trier le tas.) Entrées dindex Entrées des données (Fichier Index) (Fichier des données) Enregistrements des données Entrées des données Enregistrements des données GROUPE NONGROUPE

11 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke11 Indexes A Hachage Bon pour les sélections dégalité. Lindex est une collection de compartiments ( buckets ). Bucket = page domiciliaire plus zéro ou plus de pages de dépassement. Fonction de hachage h : h ( r ) = bucket auquel lenregistrement r appartient. h utilise la clé de recherche de r. Si lalternative 1 est utilisé, les buckets contiennent les enregistrements des données; sinon, ils contiennent des pairs ou.

12 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke12 Indexes A Arbre B+ Les pages feuilles contiennent les entrées de données et sont chaînées Les pages internes contiennent les entrées de lindexe et dirigent la recherche: P 0 K 1 P 1 K 2 P 2 K m P m Entree de lindex Pages internes feuilles pages

13 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke13 Exemple dArbre B+ Trouvez 28*? 29*? Tous les x tels que 15* < x < 30*. Insertion/effacement: Trouvez les entrées des données dans les feuilles et changez les. Besoin dajustage des parents quelques fois. Les changements peuvent parfois sétendre jusquà la racine 2*3* Racine 17 30 14*16* 33*34* 38* 39* 135 7*5*8*22*24* 27 27*29* Entree <= 17Entree > 17

14 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke14 Modèle de Coût pour Comparer des Organisations de Fichiers Nous ignorons les coûts en unités CPU, pour simplifier les choses: B: nombre de pages de données R: nombre denregistrements par pages D: temps moyen de lecture/écriture dune page sur disque Nous ignorons aussi les gains obtenus en faisant du prélecture dune séquence de pages; Doù les coûts de I/O ne sont que approximatifs Average-case analysis avec des simplifications simplistes * Good enough to show the overall trends!

15 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke15 Comparaison des Organisations de Fichiers Heap files (ordre aléatoire; insertions à la fin) Fichiers triés suivant Fichier groupé en arbre B+, alternative 1 avec comme clé de recherche Heap file avec index à arbre B + nongroupé et avec comme clé de recherche Heap file avec un indexe à hachage nongroupé; avec comme clé de recherche

16 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke16 Opérations A Comparer Scan: Puiser tous les enregistrements du disque Recherche sur base dégalité Range selection (sélection dune plage de valeurs) Insertion denregistrement Effacement denregistrement

17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke17 Simplifications dans lAnalyse Heap Files: Sélection sur base de légalité utilisant la clé; exactement un appariement. Fichiers triés: Compactage du fichier après effacement. Indexes: Alt (2), (3): taille de lentrée = 10% de enregistrement Hachage: pas de buckets de dépassement. 80% doccupation => tailles du fichier = 1.25 fois la tailles des données Arbre: 67% doccupation (typique en pratique). Implique une taille de fichier = 1.5 fois la taille des données

18 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke18 Coûts des Opérations * Plusieurs suppositions sont faites ici: i.e. ce sont des approximations!

19 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke19 Spécification des Indexes en SQL Le standard ne supporte pas (encore) les indexes !!! En pratique, chaque système commercial supporte les indexes. Un exemple générique de création dindexe est: CREATE INDEX IndexAgeGpa ON Students WITH STRUCTURE = BTREE KEY = (age, gpa) Indexes en Oracle: Création: CREATE INDEX index_name ON table_name (attribute) Indexes composés: CREATE INDEX index_name ON table_name (att1, …,attn) Destruction: DROP INDEX index_name

20 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke20 Résumé Plusieurs alternatives dorganisations de fichiers existent, chacun étant approprié dans chaque situation. Si des requêtes de sélection sont frequentes, trier le fichier ou construire un index est important. Index à hachage seulement bons pour les sélections sur base de légalité. Fichiers triés et indexes à arbre bons pour les selections des plages de valeurs; mais aussi bon pour sélections sur base de légalité. (Puisque les fichiers sont rarement trié en pratique, les arbres B+ sont de bien meilleurs indexes.) Un index est une collection dentrees de donnees plus une maniere rapide de trouver ces entrees en usant des valeurs dune clé de recherche.

21 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke21 Résumé (Suite) Les entrées de données peuvent etre des enregistrements, ou des paires ou. On peut avoir plusieurs indexes sur un fichier denregistrements donné, chacun ayant une clé de recherche différente. Un index peut être groupé ou nongroupé, primaire ou secondaire, ainsi que dense ou éparpillé. Les différences ci haut ont des conséquences sur lutilité des données et la performance des opérations.


Télécharger ppt "Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8."

Présentations similaires


Annonces Google