Your SlideShare is downloading. ×

DB2

1,970
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,970
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
45
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DB2 Représentations physiques des informations Azucena MOLINA SAEZ
  • 2. Plan de l’exposé Page 1 Présentation 3 2 Description des objets de stockage 6 3 Organisation des données (Transferts) 18 • Page • Buffer Pool • Traitement d’un GETPAGE • Exemple de création d’objets 4 Le DATA-MANAGER 23 • Fonction • Objets du Data Manager 5 Structures physiques 26 • Pages de DATA et d’INDEX • Format interne des pages et des lignes 6 Mécanisme de rangement 31 • Insertion • Suppression • Modification 7 Impact sur la conception des applications 32
  • 3. 1 Présentation SYSTEME UTILISE Environnement La documentation exploitée traite de DB2 UDB pour OS/390 (MVS). Les composants du système OS/390 (MVS) Le système MVS est un système orienté à l’origine vers le mode d’utilisation différé (traitement par lot batch), mais par le biais de sous systèmes tel que VTAM, TSO, CICS ou IMS, les modes d’utilisation par temps partagé et transactionnels ont été obtenus. Rappel définition MVS Multiple Virtual Storage Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 3 sur 39
  • 4. 1 Présentation DIFFÉRENCE ENTRE LOGIQUE ET PHYSIQUE Logique • table = {tuples} • tuple = {attributs} Physique • espace = {volumes} • espace = {contenants} • contenant = {pages} (blocs) • page = {lignes} • ligne = {colonnes} Rappel définition ATTRIBUT Nom affecté à chaque composante des éléments constituant la relation TUPLE (ou N-UPLET) Un des éléments à n composantes de la relation Volume Disque magnétique sur lequel le gestionnaire d'espace physique de DB2 implante des fichiers séquentiels VSAM LDS. VSAM Virtual storage access method: méthode d’accès utilisée par DB2 pour gérer des fichiers de données. VSAM LDS Linear data set: type de fichiers VSAM utilisé par DB2 Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 4 sur 39
  • 5. 1 Présentation Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 5 sur 39
  • 6. 2 Description des objets de stockage Les objets supports des données Rappel définition Groupe de stockage (STORAGE GROUP) • Ensemble de volumes de même type avec catalogue VSAM associé pour enregistrer les caractéristiques des fichiers qui y figurent • Le groupe de stockage facilite les tâches de gestion des données en laissant DB2 effectuer la recherche et l'allocation des fichiers. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 6 sur 39
  • 7. 2 Description des objets de stockage STOKAGE Espace à base de VSAM LDS géré par DB2 STORAGE GROUP TABLESPACE INDEXSPACE PAGE PAGE TYPE 1 SOUSPAGE TYPE 2 (V4) LIGNE ENTREE STORAGE GROUP = 1 à 133 unités DASD TABLESPACE = 1 à 64 fichiers PAGE DE TABLESPACE = 4 ou 32 K LIGNE = 1 à 127 PAGE INDEX =4K SOUSPAGE INDEX TYPE 1 = ¼, ½, 1, 2, 4 K Rappel définition DASD Direct access storage device Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 7 sur 39
  • 8. 2 Description des objets de stockage Les objets supports des données +------------+-------------------------------------+ |STORAGE |. Ensemble de volumes DASD | | GROUP |. Gestion par DB2 | +------------+-------------------------------------+ |DATABASE |. Ensemble d’index et de tablespaces | | |. Unité de gestion | +------------+-------------------------------------+ |TABLESPACE |. Description infos sur | | | le stockage des tables | | |. 1 à 64 LDS VSAM | | |. 1 page = 1 ou 8 CI | +------------+-------------------------------------+ |TABLE |. Ensemble de lignes | | | décomposées en colonnes | +------------+-------------------------------------+ |INDEX |. Ensemble ordonné de | | | pointeurs sur une table | | |. 1 ou plusieurs colonnes | +------------+-------------------------------------+ |INDEXSPACE |. Description infos sur | | | le stockage des index | | |. 1 à 64 LDS VSAM | | |. 1 page = 1 CI | | |. 2 modes d’organisation | | | - type 2 | | | - type 1 | | | page = 1,2,4,8 ou 16 sous-pages | +------------+-------------------------------------+ |BUFFERPOOL |. Ensemble de buffers affectés à DB2 | +------------+-------------------------------------+ |VUE |. Sélection prédéfinie | | | sur 1 ou plus. tables | +------------+-------------------------------------+ |SYNONYM |.Nom alterné d’une table ou vue | | |.Propre à un utilisateur | +------------+-------------------------------------+ |ALIAS |.Nom alterné d’une table ou vue | | |.Accessible par plusieurs utilisateurs | +------------+-------------------------------------+ Rappel définition CI Control interval : Unité de transfert entre le support physique, le DASD,et la mémoire. Taille d'un CI : n*0.5Ko ou n*2Ko, avec 1<=n<=16 Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 8 sur 39
  • 9. 2 Description des objets de stockage Choix du tablespace Espace table et table ( Tablespace ) • Objet destiné à contenir une ou plusieurs tables. • Appartient à une DATABASE. • Nombre maximum de fichiers VSAM associés : 254. • Taille maximum : 1 téra octets. • Toutes les tables du TABLESPACE ont la même taille de page (4K ou 32K). Trois type de tablespace dans DB2 • Tablespace simple • Tablespace segmenté • Tablespace partitionné En règle générale, les critères de choix sont les suivants : Les gros tablespaces sont candidats au partitionnement (> 500 Mo) tous les autres devraient être segmentés Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 9 sur 39
  • 10. 2 Description des objets de stockage Tablespace simple • Contient une ou plusieurs tables. • Une page peut contenir des lignes de plusieurs tables. • Utilisé dans des cas très particuliers ou ont doit maintenir des lignes de tables différentes dans une même page pour réduire les E/S. Sinon doit être impérativement monotable. Inconvénients des tablespaces simples multitables : • La lecture complète d’une table implique le parcours de tout le tablespace. • Lorsque l’une des tables est supprimée, l’espace n’est pas immédiatement récupéré. • Le verrouillage ne peut pas se limiter à la seule table accédée. Rappel Niveaux de verrouillage DB2 : • Page • Ligne • TableSpace • Partition de TableSpace La commande LOCK TABLE bloque le TableSpace contenant la table. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 10 sur 39
  • 11. 2 Description des objets de stockage Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 11 sur 39
  • 12. 2 Description des objets de stockage Tablespace segmenté Caractéristiques • Conçu pour être multitables • Découpage physique en segments : un segment contient n pages (n est un multiple de 4 compris entre 4 et 64) • La taille du segment est fixée par le paramètre SEGSIZE • Un segment appartient à une table et une seule • Une table peut occuper plusieurs segments qui ne sont pas forcément consécutifs (sauf après une réorganisation) Avantages • Récupération immédiate des segments libérés par le DROP d’une table • Verrouillage limité à une table (LOCKSIZE TABLE) • Accès aux seules pages de la table à lire • Suppression de toutes les lignes en masse plus performante • L’utilitaire COPY ne sauvegarde pas les pages vides • Les Space Map Pages contiennent l’information sur l’espace libre d’une page. • Moins de fichiers physiques (donc moins d’ordres "DD") • Gestion plus facile de l’intégrité référentielle Inconvénients • L’unité pour LOAD REPLACE, COPY, RECOVER, REORG est le tablespace (toutes les tables). • Les paramètres de définition du tablespace doivent convenir à toutes les tables qu’il contient (PCTFREE, FREEPAGE, SEGSIZE, LOCKSIZE etc...). Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 12 sur 39
  • 13. 2 Description des objets de stockage Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 13 sur 39
  • 14. 2 Description des objets de stockage Tablespace partitionné Partitionné • Ne peut contenir qu'une table • Divisé en partitions (maximum 254) • Chaque partition occupe un fichier VSAM propre et contient une plage de clés • Index CLUSTER obligatoire définissant la plage de clés de chaque partition • Intéressant pour les très grosses tables • La partition est l’unité de travail pour les utilitaires (COPY, REORG, LOAD, RECOVER, RUNSTATS) • Les partitions peuvent être implantées sur des STOGROUP différents Exemple : CREATE INDEX nnnn ON TABLE tttt (col1,col2) USING STOGROUP SG1 PRIQTY 400 SECQTY 50 CLUSTER (PART 1 VALUES (’EZZ’,’KM’), PART 2 VALUES (’NOU’,’US’), PART 3 VALUES (’ZZ’,’Z’) USING STOGROUP SG2 PRIQTY 600 SECQTY 60 ) Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 14 sur 39
  • 15. 2 Description des objets de stockage Avantages • Sauvegarde (COPY) ou réorganisation (REORG) au niveau de la partition : réduction du temps de traitement • Possibilité de faire en parallèle des sauvegardes des différentes partitions • Possibilité de restauration (RECOVER) d’une partition particulière • Possibilité d’exécuter l’utilitaire RUNSTATS sur une partition particulière • Possibilité d’arrêter ou de démarrer une partition particulière (données ou index) par les commandes START/STOP • Possibilité de restaurer une partition «logique» particulière d’index non partitionné • Permet le parallélisme pour les requêtes en lecture seule • Permet le parcours sélectif des partitions (partition scan) Inconvénients • Modification du critère de partitionnement lourd (nécessitant Unload, Drop, Create et Reload) • Pas de mise à jour directe de la clé : il faut passer par DELETE puis INSERT • Limitation en taille (1, 2 ou 4 GB) et en nombre de partitions (64, 32, 16) • La recherche d’espace est moins efficace que pour le segmenté Partitionnement géré par l’application Programmation de la ventilation des lignes sur différentes tables selon un critère défini. Avantages • L’ensemble des tables ainsi constituées peut faire plus de 64 GB • Pas de limite quant au nombre de tables • Permet un changement de clé plus simple • Permet d’avoir la séquence cluster différente de celle de la clé de partitionnement Inconvénients • Manipulation plus délicate (par exemple l’emploi de l’opérateur UNION) • Risque d’atteindre la limite de 15 tables pour la définition de vue Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 15 sur 39
  • 16. 2 Description des objets de stockage Espace index et index ( Indexspace ) IndexSpace • Créé automatiquement à la définition d'un index. • Un index par espace index. • La taille de page d'un index est toujours de 4K Caractéristiques des INDEX • Clé des performances en DB2 • Ne sont fonctionnellement nécessaires que pour garantir l’unicité des valeurs des colonnes, notamment de la clé primaire. • Techniquement nécessaires pour définir la séquence physique des lignes de la table (CLUSTER) pour le partionnement et l’intégrité référentielle • Bâtis sur une ou plusieurs colonnes (64 maximum, sur une longueur maximum de 254 caractères) • Construction immédiate ou différée (selon l’option DEFER) des entrées de l’index • Index maintenu à chaque mise à jour (INSERT, DELETE et UPDATE d’une colonne indexée) • Annulation dynamique Remarques • 1 indexspace par index : la création de l’indexspace est implicite (CREATE INDEX). • Même si une table comporte des index, ceux-ci ne sont pas forcément utilisés pour accéder aux données. • La suppression d’un poste dans un entrée multiple coûte plus cher que dans le cas d’un index unique. • Le nombre d’index a un impact sur la gestion courante, sur le temps du LOAD ou du RECOVER pour la reconstruction des entrées. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 16 sur 39
  • 17. 2 Description des objets de stockage Type 1 et type 2 Il existe deux types d’index depuis la version 4 de DB2 : Les index de type 2 permettent : • le verrouillage au niveau ligne sur le tablespace • la lecture sans verrouillage (isolation UR) • le parallélisme CPU lors du traitement des requêtes • les accès concurrents à différentes partitions logiques Globalement, les index de type 2 procurent une concurrence accrue, ainsi que de meilleures performances. Ordre de manipulation des objets de stockage DB2 n'impose pas de faire figurer de manière explicite le nom d'objets de stockage. Si on omet ces noms, des objets par défaut, définis de manière interne ou à la génération du système seront utilisés. • CREATE STOGROUP • ALTER STOGROUP • CREATE DATABASE • ALTER DATABASE • CREATE TABLESPACE • ALTER TABLESPACE Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 17 sur 39
  • 18. 3 Organisation des données (Transferts) Le transfert des données la PAGE • unité logique de transmission 4K ou 32K (1 ou 8 CI) • 1 ligne se trouve dans 1 page le BUFFER POOL • Mémoire tampon contenant des pages d’informations en provenance ou à destination des supports physiques. • Deux niveaux de cache : virtuel (mémoire centrale) et hiperpool (mémoire étendue) • Utilisation d’hiperpool : jusqu’à 8GB en mémoire virtuelle étendue • Permet d’accéder à 4 fois plus d’informations sans effectuer d’I/O (par rapport à des buffer pools uniquement implantés en mémoire centrale) • 60 BUFFER POOLS BP0, BP1, BP2, ...,BP49 pages de 4 K (50 BP) BP32K, BP32K1, BP32K2, ...,BP32K9 pages de 32 K (10 BP) • Spécification lors de la création de l’espace (TABLESPACE ou INDEX) • BP0 est utilisé par les tables catalogue et le directory Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 18 sur 39
  • 19. 3 Organisation des données (Transferts) Traitement d’un getpage Temps d ’ accès à une page (4 K) • En mémoire centrale : 80 nanosecondes 12 500 000 p/s (x 500) • En mémoire étendue : 40 micro-secondes 25 000 p/s (x 50) • En mémoire cache 3990 : 2 milli-secondes 500 p/s (x 9) • Sur disque 3990-1 : 17,6 milli-secondes 57 p/s Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 19 sur 39
  • 20. 3 Organisation des données (Transferts) Processus de traitement des lignes TABLESPACE SCAN Rappel définition RDS Relational Data System Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 20 sur 39
  • 21. 3 Organisation des données (Transferts) Processus de traitement des lignes INDEX SCAN Rappel définition RDS Relational Data System Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 21 sur 39
  • 22. 3 Organisation des données (Transferts) Rappel définition LOCKSIZE : niveau de blocage pour l'intégrité des données. SEGSIZE : taille des segments pour TABLESPACE segmenté. PRIQTY et SECQTY : taille, en kilo-octets, de l'allocation primaire et secondaire requise pour implanter les fichiers du TABLESPACE. FREEPAGE : nombre de pages après lesquelles on laisse une page libre (de 0 à 255). PCTFREE : pourcentage d'espace à laisser libre dans chaque page (de 0 à 99). BUFFERPOOL : bufferpool utilisé pour les entrées-sorties effectuées sur le tablespace Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 22 sur 39
  • 23. 4 Le DATA-MANAGER Les objets du data manager • Le DATA MANAGER est le sous-composant de DB2 chargé de la gestion physique des données. • La description interne des bases de données et des objets qui les composent est rangé dans le DIRECTORY (DSNDB01) sous la forme de descripteurs de bases (DBD). • Un DBD contient des descripteurs d’objets (OBD) File : Regroupement logique de tous les enregistrements qui constituent un TABLESPACE. Le descripteur correspondant indique comment les enregistrements sont rangés, organisés et accédés. Page set : Ensemble de fichiers (MVS data sets) contenant des enregistrements de données (file page set) ou des entrées d’index (index page set) Un page set constitue la représentation physique d’un TABLESPACE ou d’un INDEXSPACE. On distingue les page sets linéaires et partitionnés. Record type : Ensemble de champs constituant une ligne de table. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 23 sur 39
  • 24. 4 Le DATA-MANAGER Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 24 sur 39
  • 25. 4 Le DATA-MANAGER Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 25 sur 39
  • 26. 5 Structures physiques STRUCTURE D’UNE PAGE Format de la page • Préfixe : 20 octets (informations de contrôle). • Zone contenant les lignes, éventuellement, des descripteurs d'espace libre (trous) ou des pointeurs vers des lignes déplacées. • Espace libre contigü, zone de stockage non encore utilisée. • Suffixe : des informations de contrôle et un poste pour chaque ligne contenant son adresse relative. Les TROUS sont chaînés selon leur longueur. Format de la ligne • Un préfixe de 6 octets contenant : − un type (ligne à la suite ou ligne déplacée) − la longueur totale des données de la ligne ou un pointeur. • Les données de la ligne (rangées dans leur ordre de définition). Identificateur interne de la ligne : RID Adresse de rangement d’une ligne de table (indirecte), concaténation d’un numéro de page et d’un numéro de poste dans le suffixe de la page. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 26 sur 39
  • 27. 5 Structures physiques Format des tables et index Header page • La page header contient des informations de contrôle pour DB2 (104 octets) • La page header contient notamment le LRBA de la dernière mise à jour Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 27 sur 39
  • 28. 5 Structures physiques Data page => contient les données tablespace Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 28 sur 39
  • 29. 5 Structures physiques PAGE RACINE ROOT PAGE : suit la page INDEX SPACE MAP page index niveau 0 PAGE INTERMEDIAIRE NON LEAF PAGE : clés + numéros de page pointe sur le niveau inférieur PAGE FEUILLE LEAF PAGE : clés + RID Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 29 sur 39
  • 30. 5 Structures physiques Structure des index • Un ou plusieurs index peuvent être construits à partir des données rangées dans une table. • Un index permet de localiser la ou les lignes de table contenant une valeur de clé. • DB2 construit les index comme un ensemble de postes organisés de manière arborescente et stockés dans des pages. Poste d’index Chaque poste d'index permet d'établir la correspondance entre une valeur et une ou plusieurs lignes de table contenant cette valeur. Deux formats possibles : index unique : chaque poste est composé de : • la clé (formée du contenu d'une ou plusieurs colonnes) • le RID de la ligne contenant cette clé index non unique : poste composé de : • un préfixe • la clé • la liste des RID des lignes contenant cette clé Pages d’index Index : structure arborescente constituée de trois types de pages. Une page racine, toujours présente, pouvant contenir : • soit des postes d'index rangés en ordre croissant (si la table est suffisamment petite) • soit des couples constitués d'un numéro de page dépendante suivi de la valeur de la plus grande clé contenue dans cette page dépendante Des pages intermédiaires, présentes si la taille de l'index le justifie, et contenant des couples : numéro de page dépendante-plus grande clé de cette page dépendante Des pages feuilles, contenant les postes d'index rangés en ordre croissant, et chaînées les unes aux autres Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 30 sur 39
  • 31. 6 Mécanisme de rangement Mécanisme de rangement Insertion • Localisation d'une page comportant de l'espace disponible La meilleure page est celle qui contient des lignes proches • Rangement − dans l’espace libre contigu s’il peut contenir la ligne ou à la place d’un trou (si une ligne a déjà été annulée ou déplacée). − Si nombre insuffisant d'octets contigus pour ranger la ligne, tassement des trous puis rangement de la ligne (si somme des trous suffisante) Un poste du suffixe pointe sur l'adresse relative dans la page de la ligne insérée. Mise à jour Une ligne de longueur variable modifiée peut devenir plus courte ou plus longue : • Recherche de la page contenant la ligne • Rangement en place si même longueur • Si longueur < . création d’un trou (descripteur d'espace libre est créé) • Si longueur > − récupération d’un trou − déplacement de la ligne dans la page (l'ancien préfixe contient alors le RID donnant la nouvelle adresse) − séparation préfixe données : une ligne est répartie sur deux pages (au maximum) Annulation • Un descripteur d'espace libre est créé, et relié à une cha îne d'espace disponible partant du préfixe. Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 31 sur 39
  • 32. 7 Impact sur la conception des applications Conception des applications Définir le contenant physique • Allouer un espace primaire contenant toute la table • Allouer de l’espace libre suffisant pour prendre en compte les insertions et mises à jour de lignes pouvant arriver après chargement ou réorganisation • Spécifier un FREEPAGE lorsque la longueur de la ligne est > 1/2 page • Déterminer le PCTFREE de telle manière que l’espace libre puisse accueillir 1 ou plusieurs lignes • Pour les tablespaces segmentés, préférer des segments de 32 pages (facilite le sequential prefetch) • Suivre les allocations primaire et secondaire (par l’analyse d’un LISTVTOC) − Augmenter l’espace primaire si constat de nombreux extents pour le tablespace • BP32K à utiliser lorsque la ligne est > 4056 et conseillé pour les lignes > 2038 et < 4056 (particulièrement pour les tables en lecture) car : − sur une page de 4K (BP0 à BP49) 1 seule ligne de 2038 caractères donc sur 8 pages 8 lignes donc place perdue d’environ 8 x 2036 = 16288 − sur une page de 32 K, 16 lignes de 2038 caractères sur une page et place perdue d’environ 138 − en conclusion avec le même nombre d’I/O (8 CI) double de lignes lues avec BP32K • Définir une base de données contenant des tables liées Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 32 sur 39
  • 33. 7 Impact sur la conception des applications • Définir les paramètres de blocage de la base de données permettant de ne bloquer que le minimum de données pendant le minimum de temps − de préférence ANY le nombre de verrous page qu’une application peut détenir sur 1 TS est contrôlé par le paramètre NUMLKTS ou LOCKMAX. Quand ce nombre est atteint, les verrous pages sont retirés au profit d’un verrou TS − PAGE ou ROW concurrence maxi mais consommation CPU importante − TABLESPACE à utiliser pour les tables accédées en lecture seulement concurrence mini (read-only en TP, pas de concurrence avec le batch) − TABLE verrous S, U, X sur la table et verrous IS ou IX sur le TS Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 33 sur 39
  • 34. 7 Impact sur la conception des applications Implanter les règles de gestion • Évaluer le maintien de l’intégrité de la clé primaire . par index unique . par programme • Évaluer le maintien de l’intégrité des clés étrangères . par intégrité de référence . par programme • Évaluer le maintien de l’intégrité des attributs . par index (unique) . par routine de contrôle . par contrainte CHECK (V4) . par programme • Envisager la maintenance des contraintes d’intégrité de référence et leur coût Maintien de l’intégrité des clés étrangères par intégrité de référence • Avantages . le Data Manager effectue le test sur les pages dans le buffer pool . le plan ou le package ne contient pas de coding particulier, les contraintes figurant dans le DBD • Inconvénients . Gestion plus lourde au niveau des utilitaires . Risque de vérifications redondantes. Exemple de l’application qui accède à la ligne parente avant de créer la ligne fille . Risque de vérifications répétitives. Exemple de multiples insertions sous la ligne parente . l’application effectuera une seule fois la vérification . DB2 effectuera la vérification pour chaque insertion Bases de données avancées – Exposé : DB2 Représentation physique des informations - jj/07/OO 13:14 - Page 34 sur 39
  • 35. Documentation utilisée Cours INFOTEL Bases de données DB2 pour OS/390 D21 – Principes fondamentaux D22 – Conception des applications D27 – Performances des applications … Systèmes OS 390 S00 – Principes fondamentaux S01 - Introduction Documentation technique DB2 DB2 Universal Database Server for OS/390 and z/OS Version 7 product libraries: DB2 for OS/390 and z/OS • DB2 Administration Guide, SC26-9931 • DB2 Application Programming and SQL Guide, SC26-9933 • DB2 Command Reference, SC26-9934 • DB2 SQL Reference, SC26-9944 Cours IBM DB2/MVS : administration du système, des bases Cours DB842 : travaux pratiques (ZRF2-7874-P2) (1996)
  • 36. Page de données / Format Page « Header page » Page Header • La page header contient des informations de contrôle pour DB2 (104 octets) • contient notamment le La page header DBIB Database ID LRBA de la dernière mise à jour PSID Page Set (TS ou IS) OBID Table Page Page Header 26 bytes « Space Map » Une entrée de 2 bits XX .. .. .. pour chaque page Espace XX pour : 0 > taille max de ligne 1 < max & >= taille moyenne de ligne 10 < moy & >= taille min de ligne 11 < taille min de ligne Free Page Status X . . . Une entrée s’1 bit pour chaque page X : 2 Page 8 Non modifié 1 modifié Page Status Adressage des lignes Free Space ID Map RID 8 Page-ID 5 Slot Row 5
  • 37. Format de ligne Ligne à longueur fixe : Fld3 est NULL fld1 00 fld2 ff fld3 Fld2 est présent Fld1 ne peut être NULL Ligne à longueur variable (fld3): Fld3 est NULL fld1 00 fld2 03 00 fld3 Fld2 est présent Fld1 ne peut être NULL Page-ID Slot Fld1 00 fld2 ff fld3
  • 38. Free space Total Free Space Ts Header F LL Space Next Large hole F Small hole Free Space ID Map Page d’INDEX / Format ROOT (Page racine) PHYSICAL HEADER (28) LOGICAL HEADER 08 he 09 iu 10 kz 11 mh 12 Free Sapce Clé hi-order de la page physique Numéro de page d’index (3 octest)
  • 39. Page d’INDEX / Format de LEFPAGE (contient 1 ou plusieurs sous- pages) DIRECTORY PHYSICAL HEADER 1 2 hs 3 if 4 iu LOGICAL HDR KEY RID Free Space LOGICAL HDR hh hi hk hs RID Free Space LOGICAL HDR ht hw ia if RID Free Space LOGICAL HDR ih ik im iu RID Free Space Page d’INDEX / Format des sous-pages (SUBPAGE) LHDR (17) ….. ….. ….. Free Space Key RID Clé unique 11 12 n Key RID RID Clé non-unique 3 octets préfixe de 6 octets