La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ARCHITECTURE DE SYSTEMES RELATIONNELS 1.L E SGBD ORACLE ORACLE a été édité par la société Oracle Corporation, implantée aux USA à RedWood Shores en Californie.

Présentations similaires


Présentation au sujet: "ARCHITECTURE DE SYSTEMES RELATIONNELS 1.L E SGBD ORACLE ORACLE a été édité par la société Oracle Corporation, implantée aux USA à RedWood Shores en Californie."— Transcription de la présentation:

1 ARCHITECTURE DE SYSTEMES RELATIONNELS 1.L E SGBD ORACLE ORACLE a été édité par la société Oracle Corporation, implantée aux USA à RedWood Shores en Californie. Premier prototype Oracle version1 en 1979 premier SGBDR au monde. Depuis, les produits ORACLE nont cessé dévoluer avec lévolution des technologies de linformation et de la communication. Aujourdhui ORACLE est un SGBD réparti, qui sest tourné vers le Web. Lenvironnement ORACLE est un ensemble de produits autour de sa base de données : ORACLE Server, gestionnaire de la base de données : il contrôle toutes les actions au niveau de la BD comme laccès utilisateur et la sécurité, stockage et intégrité des données. Le langage SQL et lextension PL/SQL (langage comprenant des commandes procédurales supportant la gestion des erreurs et déclaration de variables) ORACLE Designer est un ensemble de produits intégrés dans un référentiel unique dentreprise pour la conception des applications. ORACLE Developer : outils de développement dapplications client/serveur ou Internet. ORACLE Discoverer : outil dinterrogation pour des utilisateurs qui ont besoin daccéder par eux-mêmes aux données, Datawarehouse, Datamart. 1

2 PL/SQLSQL SQL*Plus Developer d-apDiscoverer entr-d Designer c-ap Client Serveur ORACLE SERVER Environnement des Produits ORACLE 2

3 ORACLE est aujourdhui considéré comme étant lun des meilleurs SGBD dans le monde, ce qui nous a mené à vouloir comprendre le fonctionnement dun tel système. La version actuelle d ORACLE est : Oracle11g. Les composants principaux de larchitecture dORACLE sont les suivants : Les process Les structures mémoires Les fichiers 3

4 4

5 La System Global Area (SGA) représente lensemble des buffers nécessaires à la gestion des transactions. La SGA est également appelée Shared Global Area, elle est partagée entre plusieurs utilisateurs. La SGA est une zone mémoire allouée au démarrage dune instance, elle est restituée à la fermeture de cette instance. Les données de la SGA sont partagées par lensemble des utilisateurs connectés à un moment donné ; elles sont divisées en plusieurs types de buffers : 5

6 Data Base Buffer Cache: Il contient les blocs de données, 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 système, les plus récemment utilisés; il peut contenir des données modifiées qui nont pas encore été enregistrées sur disque. Redo Log Buffer: Il contient les redo entries, ensemble des modifications réalisées sur la base ; ces redo entries sont mémorisées 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 utilisée pour mémoriser, analyser et traiter les ordres SQL soumis par les utilisateurs. Elle peut réutiliser les ordres SQL déjà exécutés. 6

7 Les Process Les Oracle Process sont divisés en trois catégories : les process utilisateurs, les Process Server et les background Process. Les Background Process (Process détachés) prennent en charge les mécanismes internes dOracle. Une instance Oracle contient au minimum quatre background process : DBWR, LGWR, SMON et PMON. DBWR : DataBase Writer : Son rôle est de mettre à jour les fichiers de données. Les blocs de données modifiés en SGA sont stockés dans la base de données. LGWR : LoG Writer : Ce process écrit séquentiellement dans le fichier Redo Log courant des enregistrements Redo Log de la SGA. SMON : System MONitor : Il vérifie si la base a été arrêtée proprement. Si ce nest pas le cas, il récupère dans les fichiers redo log les enregistrements validés, qui nont pas encore été écrits dans la base par Oracle, pour les insérer. PMON : Process MONitor : Il administre les différents process dOracle. Il est chargé de la libération des ressources occupées, par exemple dans le cas où un client éteint sa machine sans se déconnecter. 7

8 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 8

9 Les process utilsateurs Un process utilisateur est démarré lorsquun utilisateur exécute un programme applicatif. Le process utilisateur : Exécute loutil ou lapplication et est considéré comme étant le client. En guise dexemple citons : SQL*plus, Forms, Il transmet le SQL au process serveur et en reçoit les résultats. 9

10 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 exécuter les commandes SQL o Lire les blocs de données à partir du disque dans les zones partagées de la SGA o Renvoyer les résultats des commandes SQL au Process utilisateur Linstance dORACLE : Cest la combinaison de la SGA et des process détachés de la base de données. Quand une instance est démarrée, les zones mémoires de la SGA sont allouées et les process détachés sont lancés. Ne pas confondre une BD ORACLE et une instance dORACLE : linstance est dabord démarrée puis elle monte la BD (ouverture des fichiers). Les process serveurs et utilisateurs ne font pas partie de linstance dORACLE. 10

11 Mécanisme : Lorsquun utilisateur demande une donnée, son processus va la chercher en SGA, si elle ny est pas, le processus va la chercher dans les fichiers de données. Toutes les transactions sont enregistrées dans les fichiers Redo Log, en cas de problème la reprise après panne est assurée par le process SMON au démarrage dune nouvelle instance. 11

12 12

13 Structure interne dune base de données ORACLE : Table Index Tablespace SYSTEM ROLLBACK SEGMENT Table Tablespace DATA Index Tablespace INDEX Index DBfile1DBfiles … 13

14 LES TABLESPACES : Les données dune base Oracle sont mémorisées dans une ou plusieurs unités logiques appelées tablespaces et physiquement dans des fichiers associés à ces tablespaces. Chaque base contient obligatoirement un tablespace SYSTEM, celui-ci contient les tables du dictionnaire de données, les procédures, les fonctions, les packages, les triggers et le rollback segment SYSTEM. Les autres tablespaces contiennent les segments de la base de données (tables, index,…). LES ROLLBACK SEGMENTS Une base de données contient un ou plusieurs ROLLBACK SEGMENTS ; un rollback segment enregistre les actions dune transaction qui peuvent être annulées en cas dincident. Le rollback segment SYSTEM est créé lors de la création de la base dans le tablespace SYSTEM ; il nest utilisé que pour les transactions portant sur les données du dictionnaire. Un ou plusieurs autres rollback segments doivent exister pour les transactions portant sur des données utilisateur. 14

15 2. Larchitecture générale de « SYSTEM R » Usager 1 Usager n Prog. en PL/1 ou Cobol Langage SQL RDS : Relationnel Data System Gestion de catalogues Optimisation de requêtes Mécanismes dautorisation Contraintes dintégrité DBSS : Data Base Storage System Gestion espace physique Gestion des index Gestion des transactions Accès concurrents Reprise après pannes BD Méta Base (Description relations de base et relations systèmes. 15

16 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-systèmes : Le sous-système de données relationnel (RDS) qui gère globalement toutes les interactions avec les utilisateurs, et certaines fonctions systèmes comme loptimisation des requêtes ou le contrôle des autorisations. Cest ce sous-système qui prépare à lexécution de la requête. Le sous-système de stockage qui peut être vu comme un S.G.B.D de bas niveau. Il comporte une interface interne qui fournit des opérateurs daccès « un tuple à la fois » aux relations de base. Les appels aux fonctions du DBSS doivent spécifier explicitement les segments et index à utiliser. Le DBSS gère : Les allocations en mémoire secondaire La mémoire tampon Le contrôle de transactions (concurrence et reprise après pannes) Le maintien automatique des index (la méthode daccès supportée est VSAM). 16

17 Exécution dune requête De manière générale, une requête est analysée en suivant les étapes suivantes : analyse syntaxique de la question optimisation génération dun plan dexécution de la requête Il existe deux manières dinterroger une base de données : 1.En mode interactif : lutilisateur interroge directement la base de données par des requêtes en langage SQL, directement interprétables. Un plan dexécution de la requête est généré en passant dabord par les phases danalyse syntaxique et doptimisation : 17

18 ANALYSEUR OPTIMISEUR INTERPRETEUR SYSTEME DE STOCKAGE ENSEMBLES DES OPERATEUR RELATIONNELS Requête Résultat de la Requête Arbre A 18

19 Lanalyseur transforme la question sous forme darbre où les nœuds correspondent aux opérateurs et les feuilles aux attributs et aux relations. Exemple : SELECT NOM, CODE FROM FOURNISSEUR, FOURNITURE WHERE VILLE = TUNIS AND NP = P2 ; Cette requête SQL qui donne le nom et le code des fournisseurs domiciliés à Tunis et qui fournissent la pièce P2, est traduite par larborescence suivante : 19

20 . JOIN NF = Fournisseur Fourniture Restrict NP Restrict = P2 = VilleTunis Project NOM, CODE 20

21 Différentes interprétations selon différents ordres dapplication de ces opérateurs conduisent à des temps dexploitation différents. Doù la nécessité de trouver des techniques qui permettent de trouver le meilleur ordre dapplication des opérateurs, les meilleurs chemins daccès aux relations. Ces techniques qui améliorent les performances des systèmes se retrouvent au niveau de loptimiseur. En sortie de loptimiseur on aura donc un arbre optimisé. Larbre précédent sera transformé par loptimiseur comme suit : 21

22 Project Nom, Code. JOIN = NF Restrict Fournisseur = = Fourniture P2NP VilleTunis 22

23 Cet arbre est obtenu par application des opérateurs de réduction dabord en laissant les opérateurs de jointure à la fin si possible. Linterpréteur de requêtes fournit le résultat de la requête en exécutant les opérateurs contenus dans larborescence à laide de procédure associée à ces opérateurs. Le système de stockage doit permettre une organisation efficace des données et un accès rapide grâce à limplémentation de méthodes daccès appropriées. 23

24 En mode programmé : Les ordres SQL sont incorporés à un programme dapplication écrit en langage de programmation PL/1, C, COBOL, ou autre, appelés langages hôtes. Dans ce cas la démarche nécessite une approche de précompilation. Le précompilateur est un processeur qui regroupe les instructions SQL du programme dapplication dans un module de requêtes de la BD, et les remplace dans le programme initial par des appels (CALLs) du langage hôte à un superviseur dexécution qui surveille les programmes SQL. 24

25 Module Source $ select *from employe Précompilateur Optimisation Module source modifié … Call M M : Module daccès ou plan dexécution (code machine) Compilateur Module objet Editeur de liens Module exécutable Module daccès DBSS : Gestion de données mémoire et zone tampon Supervision de lexécution Module exécutable Génération de code Analyse syntaxique 25

26 Fonctions du précompilateur : analyse le programme source, remplacement des ordres SQL par des instructions dappels. Génération dun module de requête de base de données qui passe par linterpréteur SQL pour être exécuté. Compilation du programme avec édition de liens ayant pour résultat un module exécutable. Lexécution seffectue par le sous-système de stockage : le module exécutable sexécute normalement, lorsque le premier call est atteint, le superviseur prend la main et exécute le module daccès en invoquant le gestionnaire de données et le gestionnaire des tampons. 26

27 Fonction Création / modification dans les SGBD relationnels La structure de données primaire dans les systèmes relationnels est la relation de base. La forme générale de la requête permettant la création dune relation dans SQL est la suivante : CREATE TABLE (définition dattribut [, définition dattribut]…) ; Où définition dattribut est : Les principaux types de données prédéfinis sont : CHAR (n) : n précise la longueur maximum, par défaut 254 DATE : format mm/jj/aa DECIMAL(x,y) : x nombre total de chiffres y détermine 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 nêtre jamais indéfinie (NONULL), évitant ainsi certaines incohérences dans une expression arithmétique dans laquelle une des opérandes est indéfinie. 27

28 Exemple : Notre base de données approvisionnement sera décrite à laide de cette commande de la manière suivante : CREATE TABLE FOURNISSEUR (NF CHAR(5) NONULL, NOM CHAR(20), CODE INTEGER, VILLE (CHAR (15)) ; CREATE TABLE PIECE (NP CHAR(5) NONULL, NOM CHAR(20), MATERIAU CHAR(6), POIDS INTEGER, VILLE CHAR (15)) ; CREATE TABLE FOURNITURE (NF CHAR (5) NONULL, NP CHAR(5) NONULL, QTE INTEGER) ; 28

29 Les ordres CREATE TABLE peuvent être émis à tout moment dans la vie de la base et non pas comme les systèmes classiques seulement à la phase de création du module ou du schéma de la base. Pour les clés primaires, il est recommandé de les définir dès la création de table car les données sont stockées selon lordre de cette clé. La commande de la création de table est dans ce cas : CREATE TABLE (définition dattribut [, définition dattribut]…) CONSTRAINT nom_constrainte PRIMARY KEY (nom_Att1,…,nom_Attn) Les attributs Att1, …Attn représentent les attributs qui composent la clé primaire. 29

30 Les SGBD Rel peuvent aussi modifier à tout moment le schéma des relations existantes. Supprimer une relation : DROP TABLE ; Ajouter un nouveau constituant afin de prendre en compte une information qui navait pas été prévue au départ. ALTER TABLE ADD FIELD ( type de donnée) ; 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 indéfinie dans tous les cas. Modifier une colonne existante : ALTER TABLE MODIFY FIELD ( type de donnée) ; Exemple modifier la taille du nom dans la relation fournisseur : ALTER TABLE Fournisseur MODIFY FIELD NOM (CHAR (40)) ; 30

31 Après la création des tables, lutilisateur peut maintenant procéder au chargement des données en utilisant linstruction INSERT de SQL. Pour insérer la pièce 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 pièce insérée sont indéfinis, cela est possible car ces champs nont pas été définis avec loption NONULL. 31

32 Pour linsertion dun grand nombre de n-uplets dans la relation, il est évident que la commande dinsertion savère inadéquate. De plus, les informations correspondantes se trouvent généralement à lextérieur de la base de données, dans un fichier de saisie ou dans une autre base. Pour résoudre ce problème, les SGBD offrent plusieurs solutions : En utilisant une fonction de chargement en invoquant une commande spéciale du système et en lui précisant la relation à charger, le support des informations sources et les divers paramètres décrivant le format des données. A laide dun programme de lecture écriture écrit dans un langage hôte. 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 résultat du SELECT 32

33 Pour la modification dune relation nous utilisons la commande UPDATE. UPDATE SET = nouvelle valeur, [nom attribut2 = nouvelle valeur, …] WHERE ; Exemple : modifier le code des fournisseurs qui sont localisés à Alger : UPDATE FOURNISSEUR SET CODE = CODE + 20 WHERE VILLE = ALGER ; Modifier la ville des pièces en fer à lidentique de la ville du fournisseur F5 : UPDATE PIECE SET VILLE = (SELECT VILLE FROM FOURNISSEUR WHERE NF = F5) WHERE MATERIAU = fer ; 33

34 Et enfin pour effacer certains n-uplets dune relation : DELETE FROM [WHERE ] ; Linstruction efface les tuples complets qui satisfont le prédicat. Exemple : exprimer que les fournisseurs dAlger ne fournissent plus de pièces : DELETE FROM FOURNITURE WHERE NF IN SELECT NF FROM FOURNISSEUR WHERE VILLE = ALGER; 34

35 Chemins daccès Le schéma relationnel de la B.D. est le seul que doivent connaître les usagers normaux de la base de données gérée par le SGBD. Il correspond à lensemble de tables de valeurs, sans description du stockage physique des n-uplets et des chemins daccès quil faut utiliser pour retrouver les n-uplets dune relation dans un ordre donné ou pour aller dune relation à une autre. Aucune requête relationnelle ne précise les chemins daccès aux informations ou lordre dans lequel les opérateurs de produit sappliquent. Cest à ladministrateur de demander au système la création des chemins daccès sur les relations stockées et au système de choisir, grâce à loptimiseur, parmi les chemins disponibles celui qui est le plus adéquat (indépendance physique). Un chemin daccès défini 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 défini sur la clé de la relation : à une valeur de la clé, la fonction index ramènera un tuple. Lindex primaire fournit un accès direct aux tuples dune relation, i.e., lordre des tuples sur la clé coïncide avec lordre physique. Lindex secondaire peut être défini sur des constituants non clé : à une valeur de lattribut de lindex, celui-ci ramènera un ou plusieurs tuples. Lindex secondaire est un réarrangement logique des tuples dune relation en fonction des valeurs dun attribut ou groupe dattributs. 35

36 En SQL, la commande de création dun index est de la forme : CREATE [UNIQUE] INDEX ON (nom attribut [ordre][,nom attribut [ordre]…] ) ; Où ordre est soit ASC ou DESC et sil nest pas spécifié, lordre ASC est pris par défaut. Loption UNIQUE permet dune part de définir quun attribut (ou un groupe dattributs) est clé discriminante de la relation et dautre part de fournir un chemin daccès direct aux n-uplets ayant une valeur de clé donnée. Pour définir les index primaires de notre base de données 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 création dun index secondaire selon la ville des fournisseurs serait : CREATE INDEX XV ON FOURNISSEUR (VILLE) ; 36

37 Linstruction de suppression dun index dune relation est : DROP INDEX ; Remarque : En permettant lexécution à tout moment des instructions CREATE INDEX et DROP INDEX le SGBD assure lindépendance des programmes vis à vis des chemins daccès (indépendance physique) : en effet, pour améliorer les performances dune application, nous avons besoin de changer lordre de stockage des informations. Ceci est possible à laide de la définition dun index selon le nouvel ordre sans toucher aux programmes dapplication. 37

38 Catalogues ou méta-données Du point de vue dun SGBD relationnel, une base de données comporte des relations de la base et des vues. De plus pour chaque relation stockée, il peut exister un ou plusieurs chemins daccès. La manière la plus naturelle pour un SGBD relationnel de conserver toutes ces informations est de les stocker dans des catalogues qui sont eux mêmes des relations stockées dans la base ; le SGBD permet aux usagers de consulter, grâce au langage dinterrogation, les informations relatives à la description de la base. Principaux catalogues pour décrire une base de données relationnelle : Relation : contient un n-uplet pour chaque relation de la base de données y compris lui même et les autres catalogues. On y trouve des informations sur le nom de la relation, son créateur, son degré, certaines statistiques sur son contenu etc.… Attribut : pour chaque relation de la base décrite dans le catalogue Relation, le catalogue Attribut comporte autant de lignes quil y a dattributs dans la relation. Chaque n-uplets décrit un attribut : son nom, son type, sa longueur, etc.… Chemin daccès : description des chemins daccès définis sur les relations de la base. Pour chaque index, par exemple, on y trouve la relation et les constituants concernés et sil sagit dun index primaire ou secondaire etc.… … 38

39 Exemple dune intension ainsi quune extension du schéma partiel des catalogues : Relation RELATION : Chacun de ses tuples est un descripteur de relations qui peuvent être de trois types : base, système, ou vue. Nom-relTypeIdf-relTailleCardDegréDate- création Version… RelationS … FournisseurB …. 39

40 Nom- AttributIdf-attIdf- relType-attLongueurPosition-att. … Nom-rel … NF1102Integer0601 NOM1202Char1002 … Relation ATTRIBUT : Chacun de ses tuples décrit un attribut dune relation système, de base ou dune vue 40

41 Relation INDEX : Chaque tuple décrit une relation index crée sur les relations de base ou système Nom indexIdf-relType (prim., sec)Liste-arg-index… … XF02PNOM XV02SVILLE … 41


Télécharger ppt "ARCHITECTURE DE SYSTEMES RELATIONNELS 1.L E SGBD ORACLE ORACLE a été édité par la société Oracle Corporation, implantée aux USA à RedWood Shores en Californie."

Présentations similaires


Annonces Google