X.GESTIONNAIRE DE TAMPON 3.1) Principes

| On a une table de < zoneId, pageId> Si une page n'est pas disponible, le gestionnaire de tampon (GT) émet une demande au gestionnaire de disque. Au retour, s’il n'y a plus de zone libre, le GT choisit une zone occupée par une page pour y mettre la nouvelle page. Le critère du choix de la page à remplacer a un effet sur l'optimisation des transferts.
|
Si les demandes de pages peuvent être prédites, alors on peut charger plusieurs d'une passe (ex: scan séquentiel). Si la page à remplacer a été modifiée, alors il faudra réécrire sa nouvelle version sur le disque. On utilise un bit pour marquer les zones modifiées.
3.2) Critère de remplacement des pages :
Si le tampon est rempli et on veut charger une nouvelle page alors il faut en choisir une qu’il faudra remplacer par la nouvelle (de préférence, une qui n’a pas été modifiée car on n’a pas à la réécrire sur le disque). Après pour choisir entre celles qui n’ont pas été modifiées, on utilise plusieurs techniques: LRU (Least Recently Used), MRU (Most Recently Used) FIFO (First In First Out), LIFO (Last In First Out).
XI.FORMATS D'ENREGISTREMENTS
Les enregistrements sont de taille fixe ou de taille variable. Notons au préalable que le SGBD gère un catalogue qui permet de stocker des informations sur les fichiers (ex: le nom des champs, leurs tailles, …).
4.1) Taille fixe Dans ce cas, étant donnée l'adresse d'un enregistrement, on peut accéder directement a un champ particulier.

|
L'adresse d'un enregistrement est spécifiée par le num plateau, num piste, num bloc, num Secteur
|
Exemple : 20 caractères pour le nom... Il suffit alors que d'avoir juste le début de l'enregistrement (tuple = enregistrement). Personne, F1 Taille tuple = 40 octets (taille nom : 20 et taille prénom : 20).
Adresse d'un enregistrement < adresse de page , offset > (connaissance de la position de chaque champs) :
4.2) Taille variable
Deux alternatives :

| On lit jusqu’au séparateur $ puis encore au $ puison arrivera à C3.
On utilise des pointeurs vers le début et la fin des champs.
| La 2ème alternative est plus intéressante surtout pour la gestion des valeurs Nulles : Si un champ est NULL alors les pointeurs de début et de fin associées à ce champ sont égaux (2 champs = 3 pointeurs).
XII.FORMAT DES PAGES
5.1) Enregistrements de taille fixe
Organisation contiguë : Le problème est d’en cas de suppression, il faut réorganiser toute la page. Mais il suffit de consulter N (nbre de pages) pour savoir s’il y a de l’espace libre.
Organisation dynamique : en cas de suppression, on a de la place libre mais il faut écrire les en-têtes (compteur M sur le nombre d’enregistrement). Et pour savoir s’il y a de l’espace libre, on doit donc lire le tableau.
5.2) Enregistrements de taille variable
On ne connaît pas la taille de la liste des pointeurs…
|