Databases: Mise en oeuvre d'un S.G.B.D

  1. Problématique
  2. 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. Le niveau physique d’un SGBD adresse cette problématique. La figure 1 montre les différents composants qui assurent la gestion physique de la base de données.

    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. Systèmes de gestion de fichiers (S.G.F)
    1. Support physique
    2. 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émoires caches) - 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.
      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 multi-processeurs ou d'un processeur d'E/S dédié.

      1. Arbre B+
      2. Les fichiers séquentiels indexés perdent leurs performances quand leur taille grandit. On propose donc des organisations différentes tels que les fichiers indexés par arbre B+ (B Balanced, équilibré) , qui sont très utilisés si l’on a des modifications fréquentes. Ils sont efficaces, quelque soit les opérations d'insertion ou d'effacement de données. Servitude lors des opérations d'insertion ou de suppression. Un arbre B+ est sous la forme d'un arbre équilibré.

          Tous les chemins qui mènent de la racine à une feuille ont la même longueur. Chaque noeud de l'arbre possède de n/2 à n enfants. La valeur n est fixée pour chaque arbre.

          Un pointeur Pi pointe soit sur le premier enregistrement de clé Ki, soit sur un paquet de pointeurs qui pointent sur Ki.

          Un noeud terminal comprend n - 1 valeurs de clés de tri K1, K2, …, Kn-1et n pointeurs P1, …Pn. Pour les valeurs i telles que 1 <= i <= n , Pi pointe vers un groupe de pointeurs qui pointent vers les enregistrements de clé Ki. Les valeurs de clés de tri, ordonnées : si i < j alors Ki < Kj.

      3. Conclusion
      4. Il n'y a pas de technique meilleure qu'une autre dans l'absolu. Doit-on utiliser l'une ou l'autre des techniques? Le coût des réorganisations périodiques dues à l'indexation ou au hachage est-il acceptable? Quelles sont les fréquences comparées des insertions et des suppressions? Est-il souhaitable d'optimiser le temps d'accès moyen et d'avoir des cas critiques? Quelles requêtes sont le plus fréquemment faites sur la BD?