Administration des bases de données relationnelles Part I



Documents pareils
3. La SGA ou System global Area

Notion de base de données

Cours Bases de données 2ème année IUT

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Introduction aux SGBDR

CHAPITRE 1 ARCHITECTURE

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

//////////////////////////////////////////////////////////////////// Administration bases de données

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Oracle Maximum Availability Architecture

TP11 - Administration/Tuning

Du 10 Fév. au 14 Mars 2014

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Administration de Base de Données Notes de cours

Chapitre III Architecture de Base de Données Oracle

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Administration des Bases de Données Oracle

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Administration des bases de données. Jean-Yves Antoine

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Cours Bases de données 2ème année IUT

Bases de Données Avancées

Cours Bases de données

Oracle 10g Administration +

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Structure fonctionnelle d un SGBD

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Bases de données et sites WEB Licence d informatique LI345

Présentation du module Base de données spatio-temporelles

Version Description Date

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Oracle : Administration

Bases de données et sites WEB

Implémentation des SGBD

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Systèmesdegestionde. basesdedonnées

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Les bases de données

Gestion des utilisateurs et de leurs droits

Notes de cours : bases de données distribuées et repliquées

Bases de données avancées Introduction

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

16H Cours / 18H TD / 20H TP

Le Langage De Description De Données(LDD)

Auto-évaluation Oracle: cours de base

et Groupe Eyrolles, 2006, ISBN :

Bases de Données relationnelles et leurs systèmes de Gestion

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL : créer et interroger une base

Le langage SQL Rappels

Département Informatique de l Institut Universitaire de Technologie de l Université Bordeaux 1 Bases de Données Oracle : administration (cours)

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Les bases de l optimisation SQL avec DB2 for i

Master Exploration Informatique des données DataWareHouse

Optimisations des SGBDR. Étude de cas : MySQL

TP Contraintes - Triggers

INSIA SIGL Bases de données ARCHITECTURE ORACLE

Administration d'une base de données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Mise en oeuvre TSM 6.1

Session S12 Les bases de l optimisation SQL avec DB2 for i

Nœud Suisse du Projet International GBIF (Global Biodiversity Information Facility)

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, /96

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. Qu'est qu'un tablespace?

Introduction au Système de Gestion de Base de Données et aux Base de Données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Architectures, modèles et langages de données

<Insert Picture Here> Solaris pour la base de donnés Oracle

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Bases de données relationnelles

Création d'une nouvelle base de données


Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

420-PK6-SL Banques de données Avancées UTILISATEURS

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Description de SQL SERVER. historique

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

TP Bases de données réparties

Chapitre 10. Architectures des systèmes de gestion de bases de données

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Intégrité des données

Créer le schéma relationnel d une base de données ACCESS

Bases de données cours 1

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Information utiles. webpage : Google+ : digiusto/

Oracle Database 11g: Administration Workshop I Release 2

Entraînement à l épreuve de QCM 40 mn

Administration de Bases de Données : Optimisation

Le Langage SQL version Oracle

et Groupe Eyrolles, 2006, ISBN :

Eléments de base de la sécurité des bases de données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Développement d une base de données relationnelle. Exploitation des statistiques de pêche au thon tropical

4D v11 SQL Release 5 (11.5) ADDENDUM

Transcription:

Administration des bases de données relationnelles Part I L administration des bases de données requiert une bonne connaissance - de l organisation et du fonctionnement interne du SGBDR : structures logiques et physiques, architecture fonctionnelle - des outils de surveillance et d administration disponibles 1 - Structures logiques et organisationnelles 1.1 - Le Dictionnaire de données Une fonction essentielle du SGBDR est de permettre la description des 3 niveaux préconisés par l architecture ANSI/SPARC : logique, interne, externe. La description de ces différents niveaux et la correspondance entre eux se fait via le Dictionnaire de Données. Le Dictionnaire de Données recense tous les objets ainsi que toutes les informations relatives à la définition et à l exploitation de la base de données; il fournit des informations telles que : - le nom des utilisateurs - les privilèges et rôles attribués à chaque utilisateur - le nom des différents objets logiques de la base (tables, vues, index, clusters,...) - des informations relatives aux contraintes d intégrité - les valeurs par défaut à utiliser dans les colonnes - espaces alloués aux différents objets, espace couramment utilisé par les objets - informations d audit telles que qui a accédé ou modifié un objet. Les tables et vues du dictionnaire des données ne sont accessibles qu en lecture. Exemple de Oracle Principaux types de vue du dictionnaire de données Préfixe de la vue Description Exemples all Informations sur tous les objets accessibles à l utilisateur all_users : liste de tous les utilisateurs de la base user Informations sur tous les objets appartenant à un utilisateur user_tables : informations sur les tables de l utilisateur dba Similaire à «user» mais pour tous les utilisateurs dba_tables : toutes les tables de la base v$ Vues dynamiques générées par le SGBDR au cours de son fonctionnement : informations sur les performances, l état des fichiers, la mémoire utilisée v$sga : description de la SGA 1.2 - Les structures logiques d une base de données 1.2.1 - Objets logiques d une base de données relationnelle Table : structure relationnelle qui décrit une entité ou une relation entre entités d un univers réel. C est la représentation d une relation au sens du modèle relationnel. D un point de vue logique la table est l unité de stockage de base. Elle contient les données accessibles à l utilisateur. Vue : table virtuelle générée à partir des tables de la base de données par une requête. Elément du schéma externe, la vue n a pas d existence physique, ce qui ne l empêche pas d être accédée de la même façon qu une table. Utilisations les plus fréquentes des vues : - fournir un niveau supplémentaire de sécurité en restreignant l accès d une table à certaines colonnes - masquer la complexité de la base, en regroupant des données provenant de plusieurs tables - présenter les données de façon personnalisée par rapport à l usage - stocker des requêtes complexes P.1

Séquences : objet de la base de données générant des numéros uniques pour des colonnes numériques de tables de la base. Chaque rangée de table possède un numéro unique pour la colonne concernée. L'ordre de création d'une séquence (CREATE SEQUENCE) permet de définir optionnellement: une valeur de départ, une valeur d'incrément ou de décrément, une valeur maximum (pour une séquence incrémenté) ou minimum (pour une séquence décrémenté), la taille du cache contenant plusieurs valeurs d'avance, la possibilité de revenir à la valeur de départ (CYCLE) après avoir atteint la valeur max ou min. Quand ces options ne sont pas utilisées, le SGBDR utilise ses valeurs par défaut. On utilise une séquence en la référençant via les ordres SQL de mise à jour INSERT, UPDATE.. Exemple: Création sous PostgreSql CREATE SEQUENCE serial START 101 ; crée la séquence "serial" commençant à 101 Utilisation sous PostgreSql SELECT CURRVAL(serial); la fonction CURRVAL fournit la valeur courante de la séquence INSERT INTO VALUES(... NEXTVAL(serial)); la fonction NEXTVAL permet d obtenir une nouvelle valeur dans la séquence Création sous Oracle : CREATE SEQUENCE serial START WITH 101 ; crée la séquence "serial" commençant à 101 Utilisation sous Oracle : select serial.currval from dual; la pseudo-colonne "currval" fournit la valeur courante de la séquence (la table "dual" est l'emplacement dans lequel Oracle stocke les différentes séquences) INSERT INTO VALUES(... serial.nextval); la pseudo-colonne "nextval" permet d obtenir une nouvelle valeur dans la séquence Procédure : ensemble nommé de commandes stockées dans la base Fonction : ensemble nommé de commandes stockées dans la base et retournant une valeur Triggers : programme associé à une table. C est une procédure stockée dans la base de données qui est exécutée soit à l occurrence d un événement donné, soit à l occurrence d une condition donnée sur la table. L'ordre CREATE TRIGGER permet de spécifier : - la table à laquelle est attaché le trigger - l'instruction sur laquelle se déclenche le trigger (INSERT, UPDATE, DELETE) - le moment, par rapport à l'instruction, d'éxécuter le code associé : avant l'instruction (BEFORE), après l'instruction (AFTER), à la place de l'instruction (INSTEAD OF, utilisable uniquement sur des vues) - la condition d'exécution du trigger (WHEN expression_logique) - le code à exécuter, soit en le spécifiant directement dans l'ordre, soit en référençant une procédure existante Le code à exécuter est écrit en PL/SQL, le langage procédural du SGBDR. Index : structure contenant pour chaque ligne d une table l adresse physique à laquelle se trouvent les valeurs de cette ligne. L index permet un accès direct à l information, donc un accès plus rapide. Le SGBDR crée automatiquement un index associé à la clé primaire d'une table. L'ordre CREATE INDEX permet à l'administrateur de créer explicitement de nouveau index. Le type d index généralement utilisé dans les SGBDR est le BTREE et ses variantes. Principe du BTREE (Balance Tree = arbre équilibré) : il s'agit d'un arbre dont toutes les feuilles sont au même niveau; chaque nœud contient des clés triées par ordre croissant et des pointeurs; un pointeur interne désigne un fils dans l arbre; un pointeur externe désigne les données (adresse physique). La recherche se fait en partant de la racine, et en comparant la valeur recherchée aux valeurs de clé du noeud. Si la valeur recherchée est inférieur à la première valeur du noeud on poursuit via le premier pointeur interne, sinon, si elle est comprise entre la première valeur et la suivante, on poursuit en utilisant le pointeur correspondant; et ainsi de suite. Cette technique permet de retrouver beaucoup plus rapidement une clé qu'en accès séquentiel. P.2

Exemple d arbre B d ordre 2: L'arbre B+ est une variante de l'arbre B qui limite les pointeurs externes au seuls noeuds terminaux (feuille de l'arbre); les noeuds intermédiaires n'ayant que des pointeurs internes. Par ailleurs des pointeurs internes sont définis entre noeud de même niveau. Les principes de recherche et d'insertion sont les même que pour l'arbre B. Exemple d arbre B+ d ordre 4 : «Ordre» d un arbre B Dans un arbre B d ordre N, à l exception de la racine, le nombre de clés par nœud est compris entre N et 2N ; et le nombre de fils d un nœud est compris entre N+1 et 2N+1. Pour la racine le nombre de fils est compris entre zéro et 2N+1. P.3

«Ordre» d un arbre B+ Dans un arbre B+ d ordre N, tout nœud interne possède un nombre de fils compris entre N/2 et N ; le nombre de clés est toujours égal au nombre de fils -1. Mise à jour du BTREE En contre-partie, l'insertion d'une nouvelle valeur peut être relativement complexe et lourde. On cherche à insérer la nouvelle clé dans le noeud terminal adéquate; si après cette insertion le nombre de clés du noeud devient supérieur au maximum déterminé par l'ordre de l'arbre, il faut migrer la clé intermédiaire au niveau supérieur de l'arbre et reprendre le processus d'insertion. La suppression d'une clé est d'une complexité équivalente. Autres types d index dans les SGBDR Le «hachage» (ou hashing en anglais) est une autre technique utilisée pour l indexation. Elle consiste à appliquer à la clé une fonction de calcul qui détermine une adresse relative pour stocker l enregistrement correspondant. Une méthode de chaînage vient compléter la technique en cas de collision (même résultat de hachage pour des valeurs de clé différentes). Ce type d index n est pas adapté aux clés triées, et n est pas adapté à la recherche multicritère. La technique du bitmap est destinée à indexer sur des attributs ayant peu de valeurs distinctes. On associe un indice à chaque valeur possible. Le bitmap est constitué d une matrice dans laquelle la position (i,j), valorisée à 1, indique que l enregistrement i possède la valeur d indice j. L index bitmap est plus particulièrement utilisé pour indexer des attributs multivalués, pour indexer sur plusieurs attributs, ou sur plusieurs valeurs d un même attribut. PostgreSql implémente 3 méthodes d accès: BTREE par défaut, RTREE, et HASH Oracle utilise l arbre-b +, ainsi que le bitmap dans la mise en œuvre du datawarehouse (=entrepôt de données à visée décisionnelle dans lequel les données ne sont plus modifiées). Cluster : regroupement physique de lignes de plusieurs tables ayant un lien entre elles. L objectif est de rendre plus rapide l accès à des données fréquemment accédées ensemble (jointure). Le cluster apporte également un gain en stockage. Exemple de regroupement de deux tables Pilote(numpil, nompil, prenpil, villpil, salairpil) et Vol(numvol, numpil, numavion, villdep, villarr, heurdep, heurarr) sur l attribut numpil 100 DUPONT PAUL NICE 4500 256 100 50 NICE PARIS 1100 1230 305 100 60 BORDEAUX PARIS 0900 1030 266 100 50 PARIS NICE 1900 2030 278 100 58 PARIS TOULOUSE 2000 2100 1 de cluster 200 DUPONT PAUL NICE 4500 285 200 59 LYON PARIS 1100 1230 345 200 68 RENNES PARIS 0900 1030 286 200 59 PARIS LYON 1900 2030 208 200 99 PARIS MARSEILLE 2000 2100 Depuis la version10, un «hash cluster» relatif à une table unique peut être créé pour stocker ensemble les lignes correspondant à une même valeur de la fonction de hashing associé. L objectif demeure toujours le même : accélérer l accès aux données. Schéma : c est l ensemble des objets logiques d un utilisateur ou groupe d utilisateurs P.4

1.2.2 - Structures logiques du SGBDR Oracle Ces différentes structures logiques sont : - les tablespaces - les segments - les extensions - les blocs Ces éléments permettent de définir la façon dont sont organisées les objets de la base de données. Ils sont le lien entre le niveau physique et le niveau purement logique de la base de données. Les Tablespaces Une base de données Oracle est composée d un certain nombre de partitions logiques appelées Tablespace. Un tablespace regroupe un ensemble d objets logiques (table, index,...).chaque objet logique de la base doit être associé à un seul tablespace. Une base de données doit avoir au moins un tablespace appelé SYSTEM qui contient le dictionnaire de données. Il est fortement conseillé de créer au moins un deuxième tablespace pour stocker les objets de la base. BASE DE DONNEES SYSTEM Tablespace APPLI_1 TableSpace APPLI_2 TableSpace Depuis la version 9, les tablespaces suivants sont fortement recommandés : TEMP, TOOLS, UNDO Le tablespace est constitué d au moins un fichier de données (Data File). Depuis la version 8, la gestion des tablespaces peut être soit local (informations de stockage en en-tête du tablespace), soit par le dictionnaire (informations de stockage dans le dictionnaire). Exemples : Créer un tablespace Create tablespace data01 Datafile `g:\oracle\oradata\orafrance\data01.dbf` size 100M ; Associer une table à un tablespace Create table T-ex1 ( ) tablespace data01; Les s Oracle permet un contrôle fin de l espace disque selon 3 niveaux de granularité : le bloc de données, l extension, et le segment. SEGMENT EXTENSION_1 EXTENSION_2 P.5

Le niveau le plus fin de granularité est le bloc de données; c est donc la plus petite unité logique de stockage allouée par Oracle; c est également la plus petite unité logique d E/S de la base de données. Bien que Oracle n utilise pas les blocs système, la taille du bloc de données Oracle (paramètre DB_BLOCK_SIZE dans init.ora) doit être un multiple de la taille du bloc système (OS block size). Cette taille varie généralement de 2 à 4Kbytes. Le format d un bloc de donnée est le même quelque soit ce qu il contient (table, index, clusters,...). En_tête Répertoire des tables Répertoire des lignes Espace Libre Données - en-tête : informations générales : adresse du bloc, type de segment - Répertoire des tables : informations sur les tables ayant des lignes dans ce bloc - Répertoire des lignes : informations (incluant adresses des fractions de rangées dans la zone de données) sur les lignes présentes dans le bloc - Espace libre : espace libre pour insérer de nouvelles lignes ou mettre à jour des lignes quand de l espace supplémentaire est requis - Données : données des tables ou des index Gestion de l espace libre : PCTFREE, PCTUSED PCTFREE et PCTUSED sont deux paramètres utilisables dans les commandes de création et modification de tables et d index. PCTFREE : pourcentage d espace devant rester libre pour la mise à jour des lignes déjà présente dans le bloc. Quand l espace libre devient inférieur à PCTFREE, le bloc est sorti de la freelist. PCTUSED : pourcentage au dessous duquel doit redescendre le taux d occupation du bloc, après que PCTFREE ait été atteint, pour que l insertion de nouvelles données soit à nouveau autorisée (retour dans la freelist). FREELIST : liste des blocs dans lesquels Oracle peut écrire des données. Un bloc sort de la freelist dès que son espace libre devient inférieur à PCTFREE%. Il y retourne dès que le niveau d'occupation redescend en dessous de PCTUSED% : en cas de DELETE de lignes ou d'update avec des valeurs plus petites. P.6

Espace Libre 100% PCTUSED 40% PCTFREE 15% Temps Insertion autorisée Insertion interdite Insertion autorisée Les Extensions Oracle L extension est un ensemble de blocs alloués simultanément à un segment. Le segment est créé avec une extension initiale. Quand l espace initial est totalement utilisé, Oracle alloue une nouvelle extension (extension supplémentaire). La clause STORAGE (commande création de table/index/tablespace) permet de spécifier : - la taille en octet de l extension initiale (INITIAL=) - la taille en octet de la seconde extension (NEXT) - le nombre d extensions alloués à la création - le nombre maximum d extension pouvant être allouées - le pourcentage d accroissement de l extension(i+1) par rapport à l extension (i). Exemple : STORAGE (INITIAL 100k NEXT 100k MINEXTENT 1 MAXEXTENT 5 PCTINCREASE 50) 1ère extension (initiale) : 100k 2ème extension : 100k 3ème extension : (100*1.5)=150k 4ème extension : (150*1.5)=225k 5ème extension : (225*1.5)=337k Ces paramètres pouvant être définis à plusieurs niveaux, la priorité est la suivante : prise en compte au niveau de l objet si définis à ce niveau sinon prise en compte au niveau tablespace si définis sinon prise en compte valeur par défaut d Oracle P.7

Les Segments Oracle Un segment est un ensemble d extensions qui contient un objet logique (table, index) 4 types de segments : segments de données : pour stocker les données des tables utilisateur, des tables système, et des clusters Oracle attribut automatiquement un segment à une table au moment de sa création (CREATE TABLE). C est également un segment de données qui est attribué à un cluster au moment de sa création. segments d index : pour stocker les index séparément des données. Oracle attribut automatiquement un segment à un index au moment de sa création (CREATE INDEX). NOTE : il est recommandé de créer l index dans un tablespace distinct de celui de la table associée. segments d annulation ou Rollback Segments : pour enregistrer les actions effectuées dans les transactions, et ce dans le but de défaire éventuellement la transaction. Oracle utilise les Rollback segments pour - assurer la cohérence de lecture (Read Consistency) - réaliser l annulation de transaction (Rollback) - restaurer la base de données Les rollback segments ne sont pas accessibles aux utilisateurs et administrateurs de la base. Seul Oracle peut y accéder en lecture/écriture. Dans une entrée de rollback segment, Oracle enregistre entre autre des informations sur le bloc de données correspondant aux données modifiées, et les données elles-même avant une action de la transaction. Toutes les entrées créées sont liées de telle sorte qu Oracle retrouve facilement l enchaînement d actions d une transaction. segments temporaires : espace de travail d Oracle pour le traitement des requêtes SQL le requérant : - CREATE INDEX - SELECT... ORDER BY - SELECT DISTINCT - SELECT... GROUP BY - SELECT... UNION - SELECT... INTERSECT - SELECT... MINUS Si un tablespace spécifique n a pas été défini pour les segments temporaires d un utilisateur, c est le tablespace SYSTEM qui est utilisé pour ces derniers (ce qui est fortement déconseillé). Un segment temporaire est désalloué dès la fin de la requête qui l utilisait. 1.3 - Structures physiques d une base de données Ce sont des fichiers, supports physiques de stockage des données. 1.3.1 - Structures physiques du SGBDR Oracle Oracle gère des fichiers au format propriétaire : - data file : pour les données - redolog file : pour l historique des modifications - control file : pour des informations de contrôle telles que nom de la base, date de création de la base, emplacement fichiers log,. P.8

1.3.2 - Structures physiques du SGBDR PostgreSql Dans PostgreSql : ces fichiers sont dans le répertoire /var/lib/pgsql/data (pg_database, pg_group, pg_hba_conf, ) 1.3.3 - Correspondance entre les structures logiques et physiques d une base de données Oracle P.9

2 - Architecture fonctionnelle 2.1 Architecture générique d un SGBDR Les fonctions principales d un SGBDR sont - d une part de stocker les données dans la base de données (structures logiques et physiques) - d autre part de restituer ces données à la demande. Concernant la restitution des données, on peut décomposer le fonctionnement du SGBDR en plusieurs étapes. Voici le modèle d architecture fonctionnelle qui en découle : ANALYSEUR - analyse syntaxique - analyse sémantique Dictionnaire des données TRADUCTEUR - modification requête - contrôle d intégrité - contrôle d autorisation OPTIMISEUR - Ordonnancement - Optimisation - Elaboration plan optimisé EXECUTEUR - Exécution plan - Contrôle conccurrence - Atomicité des transactions BD Déroulement des étapes de fonctionnement : Etape1- Etape de vérification syntaxique de la requête, en adéquation avec le langage SQL, pour comprendre ce que l utilisateur demande. La phase essentielle est la normalisation des prédicats qui consiste à mettre les expressions logiques de la requête sous forme normale disjonctive (= disjonction de conjonctions) ou conjonctive (= conjonction de disjonction), i.e. (p 1 p 2 p 3. p n )... (q 1 q 2 q 3. q m ) ou (p 1 p 2 p 3. p n )... (q 1 q 2 q 3. q m ) Exemple : SELECT libelle FROM produit P, stock S WHERE P.prod = S.prod AND adr = Paris AND (qte = 1000 OR qte = 2000); Forme disjonctive de l expression logique : (p.prod = s.prod adr = Paris qte = 1000) (p.prod = s.prod adr = Paris qte = 2000) Forme conjonctive de l expression logique : p.prod = s.prod adr = Paris (qte = 1000 qte = 2000) Etape2- pour s assurer que les données demandée soient disponibles pour l utilisateur, une étape de vérification sémantique qui s appuie sur le dictionnaire des données. Cette étape vérifie également que les expressions utilisées sont correctement typées. La requête est alors traduite en format interne, i.e les noms sont remplacés par des références internes. Etape3- la requête en format interne est ensuite traduite en une ou plusieurs requêtes référençant directement des objets de la base : remplacement des références aux objets de la vue utilisateur par leur définitions en terme d objet du schéma logique; c est l étape de modification de requêtes. Exemple : La requête : SELECT * FROM V WHERE pu < 200.0; Où V est défini par : CREATE VIEW AS SELECT * FROM produit WHERE pu > 100.0 and pu < 200.0; devient : SELECT * FROM produit WHERE pu > 100.0 AND pu < 200.0 AND pu < 200.0; de façon simplifié : SELECT * FROM produit WHERE pu > 100.0 AND pu < 200.0 ; P.10

Etape4- à ce stade, le SGBDR effectue le contrôle des droits d accès (autorisation de lire ou d écrire un objet), et le contrôle d intégrité (s assurer que les règles de cohérence des données restent vérifiées après mise à jour) Etape5- la requête fait ensuite l objet d une optimisation logique visant à réduire le plus tôt possible la quantité de données manipulées et qui aboutit à une ou plusieurs séquences optimisées d opérations de l algèbre relationnelle ; la traduction de cette (ces) séquence(s) en successions d opérations d accès élémentaire (sélection d index, lecture d article,...) permettra, par l application de fonction de coût de déterminer un plan d accès optimisé aux objets. Etape6- le plan d accès optimisé est alors exécuté en exploitant les méthodes d accès aux fichiers. A ce stade, sont également pris en compte les problèmes de concurrence d accès et d atomicité des transactions. 2.2 Architecture générique du SGBDR Oracle C est une instance d Oracle (ensemble de processus + espace mémoire partagé) qui permet d exploiter une base de données, et une seule. Une instance Oracle Sytem Global Area (SGA) Data Base Buffer Cache Shared Pool Large Pool Java Pool Redo Log Buffer CKPT PMON SMON DBWR LGWR ARCH Control File Data File RedoLog File RedoLog File (arch) Une instance ne peut ouvrir qu une bases de données à la fois Une base de données peut être ouverte par plusieurs instances dans une configuration de serveurs en cluster System Global Area La SGA est une zone contenant les structures de données accessibles à tous les processus Database Buffer cache servant à stocker toutes les données provenant de ou destinées à la base de données dans le but d accélérer l accès aux données (bloc de données, bloc d index, ) Paramètres associés : DB_BLOCK_SIZE : défini lors de la création de la base de données, représente la taille par défaut d'un bloc de données Oracle. DB_CACHE_SIZE : définit le nombre par défaut de blocs Oracle qui pourront être contenus dans le Database Buffer Cache. Shared Pool servant à mémoriser, traiter, et analyser les requêtes SQL des différents utilisateurs (requêtes SQL, programme PL/SQL, dictionnaire des données, ) RedoLog Buffer servant à mémoriser les données en cours de modification (données avant, données après) avant leur enregistrement dans le (les) RedoLog File(s) P.11

Large Pool servant à délester le Buffer Cache et la Shared Pool. Java Pool servant à exécuter le code Java intégré à Oracle Les processus système (back-end) DBWn (Database Writer) est un processus dédié à l'écriture des blocs du Database Buffer Cache (SGA) dans les fichiers de données. Il peut y avoir jusqu à 10 processus DBW (n [0..9]). Le nombre de blocs écrits par DBWR est défini avec le paramètre FAST_START_IO_TARGET si celui-ci a été défini. Par ailleurs, il s'assure qu'il reste assez de place de disponible pour l'écriture des données dans le buffer, en vérifiant en permanence le nombre de blocs libres dans le Database Buffer Cache. DBWR se déclenche lors de certains événements: nombre de bloc dirty (modifié, validé, en attente d écriture sur disque) dépassant une certaine limite, processus serveur à la recherche de blocs libres dans le Buffer Cache, timeouts, checkpoint (signal de LGWR ou CKPT) LGWR ( Log Writer) est le processus qui transfère dans les fichiers REDOLOG FILE les informations contenues dans le REDO LOG Buffer. Cette écriture dans les fichiers est déclenchée par les évènements suivants : transaction terminée avec un COMMIT, REDO LOG Buffer au 1/3 plein, plus de 1Mo d'informations de log contenues dans le buffer, timeout, avant que DBWn n'écrive le contenu du Database Buffer Cache dans les fichiers du disque dur Le processus CKPT sert à mettre à jour les en-têtes des fichiers de données, et à mettre à jour les fichiers CONTROL FILE afin de spécifier que l'action de CHECKPOINT s'est bien déroulée. Le checkpoint indique un état cohérent de la base où tous les fichiers de la base de données sont synchronisés. Le CHECKPOINT est un évènement qui se déclenche lors : d'un changement de groupe de REDO LOG FILE, d'un arrêt normal de la base de données (c'est à dire sans l'option ABORT), d'une demande explicite de l'administrateur, d'une limite définie par les paramètres d'initialisation LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT, et FAST_START_IO_TARGET C'est l'évènement CHECKPOINT qui déclenche l'activation de DBWR pour l'écriture d'un certain nombre de blocs du Database Buffer Cache dans les fichiers de données par DBWR, ainsi que l'activation préalable de LGWR pour vider le REDO LOG Buffer. ARCn (ARChive) crée une copie archivée des fichiers de journalisation en ligne en mode ARCHIVELOG (en mode NOARCHIVELOG le processus n'existe pas). Il se déclenche quand le fichier REDO LOG est plein. SMON (System Monitor) est un processus servant à : recouvrir l instance, à corriger les plantages de l'instance et à vérifier la synchronisation des données. Si l'instance plante, c'est SMON qui va se charger de rejouer le contenu des REDO LOG FILE afin de pouvoir rejouer les transactions et de re-synchroniser les données dans les fichiers de données. PMON (Process Monitor) est un processus lié aux processus utilisateurs. Il sert à annuler les transactions d'une session (lors d'un plantage de la session par exemple), mais également à relâcher tous les verrous posés par la session, ainsi qu à relâcher toutes les ressources détenues par la session. Les processus utilisateur et les architectures client-serveur Processus Client créé lors de la connexion d un utilisateur pour prendre en charge les échanges entre l utilisateur et le Processus Serveur Processus Serveur : en charge de la communication avec les processus client, de l analyse et de l exécution des requêtes. Dans une architecture de serveur dédié, un processus serveur dessert un processus client. P.12

(Source : Guide administration Oracle 10g) Dans une architecture de serveur partagé, un processus serveur dessert plusieurs processus client. (Source : Guide administration Oracle 10g) Le processus dispose d une zone mémoire dédiée, la Programme Global Area (PGA) contenant les données propres à la session utilisateur. P.13

2.3 Architecture générique du SGBDR PostgreSql Architecture client-serveur. Cela se traduit par le fait que toute requête soumise est traitée par 2 types de processus - un processus utilisateur ou processus Client - un processus SGBD ou processus Serveur En fait 3 processus coopèrent : Processus Utilisateur (frontend) Un processus utilisateur est créé chaque fois qu un outil tel que psql, ou pgaccess est exécuté par un utilisateur en mode interactif ou via un programme d application. Un processus utilisateur communique avec le SGBDR via un processus serveur. Processus Serveur (backend) Le rôle du processus serveur est d effectuer les opérations suivantes : - analyser et exécuter les requêtes SQL soumises par les utilisateurs et les applications - transférer les blocs de données nécessaires du disque vers la mémoire - communiquer les résultats des requêtes aux applications et utilisateurs Processus deamon Superviseur (postmaster) en charge de la création des processus serveur P.14