Cours oracle n°1 Le SGBD ORACLE Patrice Saintenoy Université Paris X - Nanterre UFR SEGMI Licence MIAGE
HISTORIQUE Oracle est un SGBDédité par la société du même nom (Oracle Corporation - http://www.oracle.com ) En 1979, le premier prototype (RDBMS - RSI1) En 1983 la troisième version apporte des améliorations au niveau des performances et une meilleure prise en charge du SQL. En 1984 la première version d'Oracle (Oracle 4) est commercialisée sur les machines IBM. En 1985 Oracle 5 permet une utilisation client-serveur grâce au middleware SQL*Net. En 1986 Oracle a été porté sur la plateforme 8086. En 1988 Oracle 6 est disponible sur un grand nombre de plates-formes. En 1991, Oracle 6.1 propose une option Parallel Server (dans un premier temps sur la DEC VAX, puis rapidement sur de nombreuses autres plates-formes).
HISTORIQUE (SUITE) En 1992, Oracle 7 sort sur les plates-formes UNIX (Windows qu'à partir de 1995). En 1997, la version Oracle 7.3 (baptisée Oracle Universal Server) apparaît, suivie de la version 8 offrant des capacités OBJET à la base de données En 1998, Oracle 8i SQLJ –Linux-XML En 2001, Oracle 9i Services Web –Serveurs d’applications –Architectures sans fil En 2004, Oracle 10g Grid Computing (ressources en clusters)
Les versions d'Oracle Oracle se décline en plusieurs versions : Oracle Server Standard, une version comprenant les outils les plus courants de la solution Oracle. Il ne s'agit pas pour autant d'une version bridée... Oracle Server Enterprise Edition
Les fonctionnalités d'Oracle Oracle est un SGBD permettant d'assurer : La définition et la manipulation des données La cohérence des données La confidentialité des données L'intégrité des données La sauvegarde et la restauration des données La gestion des accès concurrents
Les composants d'Oracle On peut classer les outils d'Oracle selon diverses catégories : Les outils d'administration Les outils de développement Les outils de communication Les outils de génie logiciel Les outils d'aide à la décision
Les outils d'administration d'Oracle Oracle est fourni avec de nombreux outils permettant de simplifier l'administration de la base de données. Parmi ces outils, les plus connus sont : Oracle Manager (SQL*DBA) NetWork Manager Oracle Enterprise Manager Import/Export : un outil permettant d'échanger des données entre deux bases Oracle
Outils de développement d'Oracle Oracle propose également de nombreux outils de développement permettant d'automatiser la création d'applications s'interfaçant avec la base de données. Ces outils de développement sont : Oracle Designer Oracle Developer SQL*Plus : une interface interactive permettant d'envoyer des requêtes SQL et PL/SQL à la base de données.
ORACLE DEVELOPPER Oracle Developper : conception et à la création d'applications client-serveur. Il est composé de 4 applications : Oracle Forms (anciennement SQL*Forms) : un outil permettant d'interroger la base de données de façon graphique sans connaissances préalables du langage SQL. Oracle Reports (SQL*ReportWriter) : un outil permettant de réaliser des états Oracle Graphics : un outil de génération automatique de graphiques dynamiques. Procedure Builder : un outil permettant de développer des procédures, des fonctions et des packages.
Outils de programmation Oracle dispose d'un grand nombre d'interfaces (API)Ces interfaces (appelées précompilateurs) forment une famille dont le nom commence par PRO* : Pro*C Pro*Cobol Pro*Fortran Pro*Pascal Pro*PLI ...
Architecture du SGBD Oracle Une base de données Oracle est constituée de plusieurs éléments : Des processus chargés en mémoire sur le serveur Des fichiers physiques stockés sur le serveur D'un espace mémoire sur le serveur appelé SGA (System Global Area)
Les fichiers physiques d'une base Oracle Oracle a défini une architecture permettant de définir une méthode d'organisation standard des fichiers de la base Oracle. Cette architecture est nommée OFA (Optimal Flexible Architecture) : Les fichiers de données (dont l'extension est .dbf). Ces fichiers contiennent l'ensemble des données de la base (les tables, les vues, les procédures stockées, ...). Les fichiers Redo Log (dont l'extension est .rdo ou .log). Ces fichiers contiennent l'historique des modifications effectuées sur la base de données Les fichiers de contrôle (dont l'extension est .ctl). Ces fichiers permettent de stocker les informations sur l'état de la base de données (emplacement des fichiers, dates de création, ...)
Les fichiers de données Les fichiers de données contiennent des informations de deux types : Le dictionnaire de données et de travail Les données des utilisateurs La lecture de ces fichiers de données est faire à l'aide des processus utilisateurs tandis que l'écriture est assuré par le processus DBWR (Database Writer)
Les fichiers Redo-log Les fichiers Redo-log contiennent l'historique des modifications apportées à la base de données Oracle. Ces fichiers de journalisation enregistrent les modifications successives de la base de données afin de pouvoir restaurer la base de données en cas de défaillance d'un disque dur.
Les fichiers de contrôle Les fichiers de contrôle permettent de stocker l'état de la base de données. Ils sont créés lors de la création de la base. Le fichier de contrôle contient les informations suivantes : Nom de la base de données Date et heure de création de la base L'emplacement des fichiers journaux (Redo-Log) Des informations de synchronisation
Le fichier d'initialisation Ce fichier est un fichier au format texte contenant l'ensemble des paramètres de démarrage de la base (il est généralement nommé initSID.ora, où SID représente le nom donné à l'instance). Son existence n'est toutefois pas majeure car il peut être facilement reconstruit.
Les processus Le fonctionnement de la base Oracle est régi par un certain nombre de processus chargés en mémoire. On distingue généralement deux types de processus : les processus utilisateurs (appelés aussi user process ou noyau oracle) Oracle Server Code, aussi appelé noyau d'Oracle, est chargé d'interpréter et d'exécuter les requêtes SQL. Code spécifique de l'outil, l'implémentation qui exécute réellement les commandes SQL. les processus systèmes (oracle process). Les processus serveurs (process server) gérant les requêtes des utilisateurs. Les processus d'arrière-plan (background process) chargés d'assurer le fonctionnement interne du SGBD Oracle (gestion de la mémoire, écriture dans les fichiers, ...).
LES PROCESSUS Les 4 principaux processus systèmes sont : DBWR (DataBase Writer ou Dirty Buffer Writer) LGWR (Log Writer) PMON (Process Monitor) Il existe également d'autres processus d'importance secondaire : CKPT (CheckPoint) RECO (Recoverer), ARCH (Archiver). Dnnnn (Dispatcher, nnnn représente une suite de nombre entiers) Snnnn LCKn (Lock)