Vous êtes sur la page 1sur 41

ARCHITECTURE DE SYSTEMES RELATIONNELS 1.

LE SGBD ORACLE
ORACLE a t dit par la socit Oracle Corporation, implante aux USA RedWood Shores en Californie. Premier prototype 1977. Oracle version1 en 1979 premier SGBDR au monde. Depuis, les produits ORACLE nont cess dvoluer avec lvolution des technologies de linformation et de la communication. Aujourdhui ORACLE est un SGBD rparti, qui sest tourn vers le Web. Lenvironnement ORACLE est un ensemble de produits autour de sa base de donnes : ORACLE Server, gestionnaire de la base de donnes : il contrle toutes les actions au niveau de la BD comme laccs utilisateur et la scurit, stockage et intgrit des donnes. Le langage SQL et lextension PL/SQL (langage comprenant des commandes procdurales supportant la gestion des erreurs et dclaration de variables) ORACLE Designer est un ensemble de produits intgrs dans un rfrentiel unique dentreprise pour la conception des applications. ORACLE Developer : outils de dveloppement dapplications client/serveur ou Internet. ORACLE Discoverer : outil dinterrogation pour des utilisateurs qui ont besoin daccder par eux-mmes aux donnes, Datawarehouse, Datamart.
1

Environnement des Produits ORACLE


Designer c-ap
Client Developer d-ap Discoverer entr-d

SQL*Plus

Serveur

PL/SQL

SQL

ORACLE SERVER

ORACLE est aujourdhui considr comme tant lun des meilleurs SGBD dans le monde, ce qui nous a men vouloir comprendre le fonctionnement dun tel systme. La version actuelle d ORACLE est : Oracle11g . Les composants principaux de larchitecture dORACLE sont les suivants : Les process Les structures mmoires Les fichiers

La System Global Area (SGA) reprsente lensemble des buffers ncessaires la gestion des transactions.
La SGA est galement appele Shared Global Area, elle est partage entre plusieurs utilisateurs. La SGA est une zone mmoire alloue au dmarrage dune instance, elle est restitue la fermeture de cette instance. Les donnes de la SGA sont partages par lensemble des utilisateurs connects un moment donn ; elles sont divises en plusieurs types de buffers :

Data Base Buffer Cache: Il contient les blocs de donnes, les blocs dindex, des blocs contenant les RollBack Segments (ils enregistrent les actions dune transaction pour la reprise en cas de panne) et des blocs pour la gestion du systme, les plus rcemment utiliss; il peut contenir des donnes modifies qui nont pas encore t enregistres sur disque. Redo Log Buffer: Il contient les redo entries, ensemble des modifications ralises sur la base ; ces redo entries sont mmorises sur un fichier redo log, qui pourra tre utilis en cas de panne. Shared Pool ou zone de partage des ordres SQL: cette zone est utilise pour mmoriser, analyser et traiter les ordres SQL soumis par les utilisateurs. Elle peut rutiliser les ordres SQL dj excuts.
6

Les Process Les Oracle Process sont diviss en trois catgories : les process utilisateurs, les Process Server et les background Process.

Les Background Process (Process dtachs) prennent en charge les mcanismes internes dOracle. Une instance Oracle contient au minimum quatre background process : DBWR, LGWR, SMON et PMON. DBWR : DataBase Writer : Son rle est de mettre jour les fichiers de donnes. Les blocs de donnes modifis en SGA sont stocks dans la base de donnes. LGWR : LoG Writer : Ce process crit squentiellement dans le fichier Redo Log courant des enregistrements Redo Log de la SGA. SMON : System MONitor : Il vrifie si la base a t arrte proprement. Si ce nest pas le cas, il rcupre dans les fichiers redo log les enregistrements valids, qui nont pas encore t crits dans la base par Oracle, pour les insrer. PMON : Process MONitor : Il administre les diffrents process dOracle. Il est charg de la libration des ressources occupes, par exemple dans le cas o un client teint sa machine sans se dconnecter. 7

Les autres process sont les suivants : CKPT : Checkpoint ARCH : Archiver RECO : Recover LCKn : LOCK SNPn : Snapshot Refresh Snnn : Shared server Dnnn : Dispatcher Pnnn : Parallel Query

Les process utilsateurs Un process utilisateur est dmarr lorsquun utilisateur excute un programme applicatif. Le process utilisateur : Excute loutil ou lapplication et est considr comme tant le client. En guise dexemple citons : SQL*plus, Forms,

Il transmet le SQL au process serveur et en reoit les rsultats.

Process Server : ils prennent en charge les demandes des utilisateurs. Ils sont responsables de la communication entre la SGA et le Process User. Les taches du process serveur o Analyser et excuter les commandes SQL o Lire les blocs de donnes partir du disque dans les zones partages de la SGA o Renvoyer les rsultats des commandes SQL au Process utilisateur Linstance dORACLE : Cest la combinaison de la SGA et des process dtachs de la base de donnes. Quand une instance est dmarre, les zones mmoires de la SGA sont alloues et les process dtachs sont lancs. Ne pas confondre une BD ORACLE et une instance dORACLE : linstance est dabord dmarre puis elle monte la BD (ouverture des fichiers). Les process serveurs et utilisateurs ne font pas partie de linstance dORACLE.
10

Mcanisme : Lorsquun utilisateur demande une donne, son processus va la chercher en SGA, si elle ny est pas, le processus va la chercher dans les fichiers de donnes. Toutes les transactions sont enregistres dans les fichiers Redo Log, en cas de problme la reprise aprs panne est assure par le process SMON au dmarrage dune nouvelle instance.

11

La base de donnes ORACLE La base de donnes ORACLE est compose de fichiers de donnes et de fichiers redo log tous tants rfrencs dans un ou plusieurs fichiers de contrle. Structure physique Fichiers de donnes Dfinition Contiennent toutes les donnes de la base : les tables, index, procdures, fonctions, ; ainsi que le dictionnaire de donnes (cr lors de la cration de la base de donnes) . Gardent des enregistrements de toutes les modifications effectues sur la base de donnes dans un but de restauration Conservent la dfinition des structures physiques et les tats de la Base de donnes: nom de la base, nom et chemin daccs des fichiers de donnes et Redo Log, date et heure de cration de la base.

Fichiers Redo Log

Fichiers de contrle

12

Structure interne dune base de donnes ORACLE :


Tablespace SYSTEM

Tablespace DATA

Tablespace INDEX Index

Table

Table

Index
ROLLBACK SEGMENT

Index Index Table Index

DBfile1

DBfiles

DBfiles

13

LES TABLESPACES : Les donnes dune base Oracle sont mmorises dans une ou plusieurs units logiques appeles tablespaces et physiquement dans des fichiers associs ces tablespaces. Chaque base contient obligatoirement un tablespace SYSTEM, celui-ci contient les tables du dictionnaire de donnes, les procdures, les fonctions, les packages, les triggers et le rollback segment SYSTEM. Les autres tablespaces contiennent les segments de la base de donnes (tables, index,). LES ROLLBACK SEGMENTS Une base de donnes contient un ou plusieurs ROLLBACK SEGMENTS ; un rollback segment enregistre les actions dune transaction qui peuvent tre annules en cas dincident. Le rollback segment SYSTEM est cr lors de la cration de la base dans le tablespace SYSTEM ; il nest utilis que pour les transactions portant sur les donnes du dictionnaire. Un ou plusieurs autres rollback segments doivent exister pour les transactions portant sur des donnes utilisateur.
14

2. Larchitecture gnrale de SYSTEM R


.

Usager 1

Usager n

Prog. en PL/1 ou Cobol

Langage SQL RDS : Relationnel Data System


Gestion de catalogues Optimisation de requtes Mcanismes dautorisation Contraintes dintgrit

Mta Base
(Description relations de base et relations systmes

DBSS : Data Base Storage System


Gestion espace physique Gestion des index Gestion des transactions Accs concurrents Reprise aprs pannes

BD
15

La structure de System R est relativement complexe, et le produit comporte un grand nombre de composants, que nous pouvons regrouper en deux grands sous-systmes : Le sous-systme de donnes relationnel (RDS) qui gre globalement toutes les interactions avec les utilisateurs, et certaines fonctions systmes comme loptimisation des requtes ou le contrle des autorisations. Cest ce sous-systme qui prpare lexcution de la requte. Le sous-systme de stockage qui peut tre vu comme un S.G.B.D de bas niveau. Il comporte une interface interne qui fournit des oprateurs daccs un tuple la fois aux relations de base. Les appels aux fonctions du DBSS doivent spcifier explicitement les segments et index utiliser. Le DBSS gre : Les allocations en mmoire secondaire La mmoire tampon Le contrle de transactions (concurrence et reprise aprs pannes) Le maintien automatique des index (la mthode daccs supporte est VSAM). 16

Excution dune requte De manire gnrale, une requte est analyse en suivant les tapes suivantes : analyse syntaxique de la question optimisation gnration dun plan dexcution de la requte Il existe deux manires dinterroger une base de donnes : 1. En mode interactif : lutilisateur interroge directement la base de donnes par des requtes en langage SQL, directement interprtables. Un plan dexcution de la requte est gnr en passant dabord par les phases danalyse syntaxique et doptimisation :

17

Requte

ANALYSEUR Arbre A OPTIMISEUR Arbre A INTERPRETEUR ENSEMBLES DES OPERATEUR RELATIONNELS SYSTEME DE STOCKAGE

Rsultat de la Requte

18

Lanalyseur transforme la question sous forme darbre o les nuds correspondent aux oprateurs et les feuilles aux attributs et aux relations.

Exemple : SELECT NOM, CODE FROM FOURNISSEUR, FOURNITURE WHERE VILLE = TUNIS AND NP = P2 ;
Cette requte SQL qui donne le nom et le code des fournisseurs domicilis Tunis et qui fournissent la pice P2, est traduite par larborescence suivante :

19

Project

NOM, CODE
=

Restrict Tunis
=

Ville

Restrict
.JOIN

NP

P2
=

NF Fournisseur

NF Fourniture

20

Diffrentes interprtations selon diffrents ordres dapplication de ces oprateurs conduisent des temps dexploitation diffrents. Do la ncessit de trouver des techniques qui permettent de trouver le meilleur ordre dapplication des oprateurs, les meilleurs chemins daccs aux relations. Ces techniques qui amliorent les performances des systmes se retrouvent au niveau de loptimiseur. En sortie de loptimiseur on aura donc un arbre optimis. Larbre prcdent sera transform par loptimiseur comme suit :

21

Project Nom, Code


.JOIN

Restrict NF Fournisseur
Ville
=

Restrict NF
Fourniture
=

Tunis

NP

P2

22

Cet arbre est obtenu par application des oprateurs de rduction dabord en laissant les oprateurs de jointure la fin si possible. Linterprteur de requtes fournit le rsultat de la requte en excutant les oprateurs contenus dans larborescence laide de procdure associe ces oprateurs. Le systme de stockage doit permettre une organisation efficace des donnes et un accs rapide grce limplmentation de mthodes daccs appropries.

23

En mode programm : Les ordres SQL sont incorpors un programme dapplication crit en langage de programmation PL/1, C, COBOL, ou autre, appels langages htes. Dans ce cas la dmarche ncessite une approche de prcompilation. Le prcompilateur est un processeur qui regroupe les instructions SQL du programme dapplication dans un module de requtes de la BD, et les remplace dans le programme initial par des appels (CALLs) du langage hte un superviseur dexcution qui surveille les programmes SQL.

24

Module Source $ select *from employe

Analyse syntaxique

Prcompilateur Optimisation

Gnration de code

Module source modifi Call

M : Module daccs ou plan dexcution

(code machine) Compilateur Module objet Editeur de liens

Module excutable
Module daccs DBSS : Gestion de donnes mmoire et zone tampon Supervision de lexcution
25

Module excutable

Fonctions du prcompilateur : analyse le programme source, remplacement des ordres SQL par des instructions dappels. Gnration dun module de requte de base de donnes qui passe par linterprteur SQL pour tre excut. Compilation du programme avec dition de liens ayant pour rsultat un module excutable. Lexcution seffectue par le sous-systme de stockage : le module excutable sexcute normalement, lorsque le premier call est atteint, le superviseur prend la main et excute le module daccs en invoquant le gestionnaire de donnes et le gestionnaire des tampons.
26

Fonction Cration / modification dans les SGBD relationnels La structure de donnes primaire dans les systmes relationnels est la relation de base. La forme gnrale de la requte permettant la cration dune relation dans SQL est la suivante : CREATE TABLE <nom de table> (dfinition dattribut [, dfinition dattribut]) ; O dfinition dattribut est : <nom-attribut (type-donne [, NONULL])> Les principaux types de donnes prdfinis sont : CHAR (n) : n prcise la longueur maximum, par dfaut 254 DATE : format mm/jj/aa DECIMAL(x,y) : x nombre total de chiffres y dtermine la place de la virgule en partant de la droite FLOAT (x,y) INTEGER LOGICAL De plus, on peut imposer la valeur dun attribut de ntre jamais indfinie (NONULL), vitant ainsi certaines incohrences dans une expression 27 arithmtique dans laquelle une des oprandes est indfinie.

Exemple : Notre base de donnes approvisionnement sera dcrite laide de cette commande de la manire suivante : CREATE TABLE FOURNISSEUR (NF CHAR(5) NONULL, NOM CHAR(20), CODE INTEGER, VILLE (CHAR (15)) ; CREATE TABLE PIECE (NP CHAR(5) NONULL, NOM INTEGER, VILLE CHAR (15)) ;

CHAR(20), MATERIAU CHAR(6), POIDS

CREATE TABLE FOURNITURE (NF CHAR (5) NONULL, NP CHAR(5) NONULL, QTE INTEGER) ;

28

Les ordres CREATE TABLE peuvent tre mis tout moment dans la vie de la base et non pas comme les systmes classiques seulement la phase de cration du module ou du schma de la base.

Pour les cls primaires, il est recommand de les dfinir ds la cration de table car les donnes sont stockes selon lordre de cette cl. La commande de la cration de table est dans ce cas :
CREATE TABLE <nom de table> (dfinition dattribut [, dfinition dattribut]) CONSTRAINT nom_constrainte PRIMARY KEY (nom_Att1,,nom_Attn) Les attributs Att1, Attn reprsentent les attributs qui composent la cl primaire.

29

Les SGBD Rel peuvent aussi modifier tout moment le schma des relations existantes. Supprimer une relation : DROP TABLE <nom table> ; Ajouter un nouveau constituant afin de prendre en compte une information qui navait pas t prvue au dpart. ALTER TABLE <nom table> ADD FIELD (< nom attribut> type de donne) ; Exemple : ALTER TABLE FOURNITURE ADD FIELD (DATE CHAR (6));

Tous les n-uplets de la relation vont tre tendus de trois quatre champs. La valeur du nouveau champ est indfinie dans tous les cas.
Modifier une colonne existante : ALTER TABLE <nom table> MODIFY FIELD (< nom attribut> type de donne) ; Exemple modifier la taille du nom dans la relation fournisseur : ALTER TABLE Fournisseur MODIFY FIELD NOM (CHAR (40)) ;

30

Aprs la cration des tables, lutilisateur peut maintenant procder au chargement des donnes en utilisant linstruction INSERT de SQL. Pour insrer la pice P7 qui est un clou dans la relation PIECE nous crivons : INSERT INTO PIECE (NP, NOM, MATERIAU, POIDS, VILLE) values (P7, clou,?,?,?);

Les trois derniers champs de la pice insre sont indfinis, cela est possible car ces champs nont pas t dfinis avec loption NONULL.

31

Pour linsertion dun grand nombre de n-uplets dans la relation, il est vident que la commande dinsertion savre inadquate. De plus, les informations correspondantes se trouvent gnralement lextrieur de la base de donnes, dans un fichier de saisie ou dans une autre base. Pour rsoudre ce problme, les SGBD offrent plusieurs solutions : En utilisant une fonction de chargement en invoquant une commande spciale du systme et en lui prcisant la relation charger, le support des informations sources et les divers paramtres dcrivant le format des donnes. A laide dun programme de lecture criture crit dans un langage hte. A laide du PL-SQL dans Oracle On peut galement copier certaines lignes partir dune autre relation. Exemple : INSERT INTO FOURNISSEUR-TUNIS (NF, NOM) SELECT NF, NOM FROM FOURNISSEUR WHERE VILLE = Tunis ; Le nombre de colonnes et le type des colonnes dans le INSERT doivent correspondre ceux du rsultat du SELECT
32

Pour la modification dune relation nous utilisons la commande UPDATE.


UPDATE <nom de table> SET <nom attribut1> = nouvelle valeur, [nom attribut2 = nouvelle valeur, ] WHERE <prdicat> ; Exemple : modifier le code des fournisseurs qui sont localiss Alger : UPDATE FOURNISSEUR SET CODE = CODE + 20 WHERE VILLE = ALGER ; Modifier la ville des pices en fer lidentique de la ville du fournisseur F5 : UPDATE PIECE SET VILLE = (SELECT VILLE FROM FOURNISSEUR WHERE NF = F5) WHERE MATERIAU = fer ;
33

Et enfin pour effacer certains n-uplets dune relation :

DELETE FROM <nom table> [WHERE <prdicat>] ;


Linstruction efface les tuples complets qui satisfont le prdicat.

Exemple : exprimer que les fournisseurs dAlger ne fournissent plus de pices :


DELETE FROM FOURNITURE WHERE NF IN SELECT NF FROM FOURNISSEUR WHERE VILLE = ALGER;

34

Chemins daccs Le schma relationnel de la B.D. est le seul que doivent connatre les usagers normaux de la base de donnes gre par le SGBD. Il correspond lensemble de tables de valeurs, sans description du stockage physique des n-uplets et des chemins daccs quil faut utiliser pour retrouver les n-uplets dune relation dans un ordre donn ou pour aller dune relation une autre. Aucune requte relationnelle ne prcise les chemins daccs aux informations ou lordre dans lequel les oprateurs de produit sappliquent. Cest ladministrateur de demander au systme la cration des chemins daccs sur les relations stockes et au systme de choisir, grce loptimiseur, parmi les chemins disponibles celui qui est le plus adquat (indpendance physique). Un chemin daccs dfini sur une relation est appel INDEX. Un index est un arrangement des tuples dune relation en fonction des valeurs dun constituant ou dun groupe de constituants. Nous distinguons deux types dindex : index primaire et index secondaire. Lindex primaire est dfini sur la cl de la relation : une valeur de la cl, la fonction index ramnera un tuple. Lindex primaire fournit un accs direct aux tuples dune relation, i.e., lordre des tuples sur la cl concide avec lordre physique. Lindex secondaire peut tre dfini sur des constituants non cl : une valeur de lattribut de lindex, celui-ci ramnera un ou plusieurs tuples. Lindex secondaire est un rarrangement logique des tuples dune relation en fonction des valeurs dun attribut ou groupe dattributs.
35

En SQL, la commande de cration dun index est de la forme : CREATE [UNIQUE] INDEX <nom index> ON < nom relation> (nom attribut [ordre][,nom attribut [ordre]] ) ; O ordre est soit ASC ou DESC et sil nest pas spcifi, lordre ASC est pris par dfaut. Loption UNIQUE permet dune part de dfinir quun attribut (ou un groupe dattributs) est cl discriminante de la relation et dautre part de fournir un chemin daccs direct aux n-uplets ayant une valeur de cl donne. Pour dfinir les index primaires de notre base de donnes nous crivons : CREATE UNIQUE INDEX XF ON FOURNISSEUR (NF) ; CREATE UNIQUE INDEX XP ON PIECE (NP) ; CREATE UNIQUE INDEX XFP ON FOURNITURE (NF, NP) ; La cration dun index secondaire selon la ville des fournisseurs serait : CREATE INDEX XV ON FOURNISSEUR (VILLE) ;
36

Linstruction de suppression dun index dune relation est :


DROP INDEX <nom index> ;

Remarque : En permettant lexcution tout moment des instructions CREATE INDEX et DROP INDEX le SGBD assure lindpendance des programmes vis vis des chemins daccs (indpendance physique) : en effet, pour amliorer les performances dune application, nous avons besoin de changer lordre de stockage des informations. Ceci est possible laide de la dfinition dun index selon le nouvel ordre sans toucher aux programmes dapplication.

37

Catalogues ou mta-donnes Du point de vue dun SGBD relationnel, une base de donnes comporte des relations de la base et des vues. De plus pour chaque relation stocke, il peut exister un ou plusieurs chemins daccs. La manire la plus naturelle pour un SGBD relationnel de conserver toutes ces informations est de les stocker dans des catalogues qui sont eux mmes des relations stockes dans la base ; le SGBD permet aux usagers de consulter, grce au langage dinterrogation, les informations relatives la description de la base. Principaux catalogues pour dcrire une base de donnes relationnelle : Relation : contient un n-uplet pour chaque relation de la base de donnes y compris lui mme et les autres catalogues. On y trouve des informations sur le nom de la relation, son crateur, son degr, certaines statistiques sur son contenu etc. Attribut : pour chaque relation de la base dcrite dans le catalogue Relation, le catalogue Attribut comporte autant de lignes quil y a dattributs dans la relation. Chaque n-uplets dcrit un attribut : son nom, son type, sa longueur, etc. Chemin daccs : description des chemins daccs dfinis sur les relations de la base. Pour chaque index, par exemple, on y trouve la relation et les constituants concerns et sil sagit dun index primaire ou secondaire etc.

38

Exemple dune intension ainsi quune extension du schma partiel des catalogues : Relation RELATION : Chacun de ses tuples est un descripteur de relations qui peuvent tre de trois types : base, systme, ou vue.

Nom-rel Relation

Type S

Idf-rel Taille Card Degr Datecration 1 100 50 9

Version

Fournisseur B .

10

110

100

3-11-08

39

Relation ATTRIBUT : Chacun de ses tuples dcrit un attribut dune relation systme, de base ou dune vue

Nom- Attribut Nom-rel NF NOM

Idf-att

Idf- rel Type-att Longueur Position-att.

11 12

02 02

Integer Char

06 10

01 02

40

Relation INDEX : Chaque tuple dcrit une relation index cre sur les relations de base ou systme

Nom index Idf-rel

Type (prim., sec) Liste-arg-index

XF XV

02 02

P S

NOM VILLE

41