Programme de baccalauréat en informatique
Modèles et langages des bases de données
IFT-19022
Édition janvier 2005
André Gamache, professeur
© Université Laval
Nabil Sahli, chargé de cours
Architecture Oracle
Module 9
Bureau de la formation à distance
Objectifs d’apprentissage
Expliquer la différence entre la structure logique et la
structure physique dans l’architecture Oracle.
Expliquer comment Oracle gère l’espace physique.
Décrire la structure de la base de données dans
Oracle.
Décrire la structure de la mémoire Oracle et expliquer
son rôle dans le fonctionnement du SGBD.
Expliquer sommairement les processus du SGBD et
leur fonctionnement au sein du SGBD (selon leur
type).
03/01/2005
© 2
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 3
Bureau de la formation à distance
Les outils Oracle
SQL plus: Exécution de commandes SQL, PL/SQL
TORA: Environnement pour la gestion de la BD, création
de tables, saisie de données, des modifications de
colonnes, les mises à jour, etc.
Oracle ProC_C++: Définir du code C ou C++ pour bâtir
des applications connectées à une BD.
Oracle developer: ensemble d’outils pour construire une
application BD.
03/01/2005
© 4
Bureau de la formation à distance
Les outils Oracle
Oracle Developer:
Forms
Forms builder: faire la conception des formulaires
Forms compiler: compile les formulaires
Forms runtime: exécute des formulaires
Graphics
Graphics builder: faire des statistiques
Graphics runtime: exécution des statistiques
03/01/2005
© 5
Bureau de la formation à distance
Les outils Oracle
Oracle Developer:
Procedure
Procedure builder: Écrire et exécuter du code Pl/SQL
Procedure line mode: un prompt pl/sql>
Project
Project builder: définir un projet où des forms, reports,
graphics, etc. peuvent être inclus
03/01/2005
© 6
Bureau de la formation à distance
Les outils Oracle
Oracle Developer:
Query
Query builder: Définir des requêtes de manière
interactive
Reports
Reports builder: faire la conception d’un rapport
Reports compiler: la compilation du rapport
Reports runtime: exécution du rapport
03/01/2005
© 7
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 8
Bureau de la formation à distance
Introduction
SGBD est conçu résoudre le problème de gestion de
l’information.
Dans une entreprise les données peuvent être
partagées et plusieurs utilisateurs peuvent y accéder.
Il faut donc définir des mécanismes pour prévenir
contre les accès illégaux aux données.
Un SGBD peut subir une panne, il faut aussi fournir
des solutions de reprise de données en cas de panne.
03/01/2005
© 9
Bureau de la formation à distance
Introduction
Oracle est une solution qui répond à ce qui a été
dicté dans l’acétate précédente.
Oracle est un Environnement Client/Serveur.
Il permet la définition de grandes BD avec une
gestion de disque efficace.
03/01/2005
© 10
Bureau de la formation à distance
Introduction
Plusieurs utilisateurs peuvent se partager Oracle où
chacun peut avoir ses propres données ou se partager
des données avec d’autres.
Oracle a différentes versions sous différents systèmes
d’exploitations. Les différentes versions peuvent
communiquer entre elles.
03/01/2005
© 11
Bureau de la formation à distance
Introduction
C’est un SGBD qui fonctionne de longues périodes
sans subir de pannes.
C’est un SGBD qui supporte des standards
informatiques (XML, TCP/IP,..).
Il comporte un module pour la gestion de la sécurité
contre les accès illégaux.
Il garanti l’intégrité des données.
03/01/2005
© 12
Bureau de la formation à distance
Introduction
Serveur Oracle est constitué d’une BD oracle et d’une instance de
serveur.
Oracle gère toute les informations qu’il contient sous la forme d’une
très grande base de données. Lors de l’installation, Oracle vous
demande de saisir un SID (System Identifier), c’est le nom de la
grande base de données (BD oracle). Au département
informatique, la BD s’appelle ora8i.
Instance serveur est constituée du processus utilisateur qui
contient du code, et du processus oracle qui répond aux
commandes du processus utilisateur et qui garantit le bon
fonctionnement du serveur.
03/01/2005
© 13
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 14
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace
disque
Une BD oracle: une collection de données à
stocker et chercher
Une BD a une structure logique et une structure
physique
Une BD est identifiée par un identifiant système
unique (SID): exemple ora8i
03/01/2005
© 15
Bureau de la formation à distance
Exemple
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY pz6r58
USER SYSTEM IDENTIFIED BY y1tz5p
LOGFILE GROUP 1 ('/vobs/oracle/oradata/mynewdb/[Link]') SIZE 100M,
GROUP 2 ('/vobs/oracle/oradata/mynewdb/[Link]') SIZE 100M,
GROUP 3 ('/vobs/oracle/oradata/mynewdb/[Link]') SIZE 100M MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII NATIONAL
CHARACTER SET AL16UTF16
03/01/2005
© 16
Bureau de la formation à distance
Exemple
DATAFILE '/vobs/oracle/oradata/mynewdb/[Link]' SIZE 325M
REUSE EXTENT
MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE tempts1
DATAFILE /vobs/oracle/oradata/mynewdb/[Link]' SIZE 20M
REUSE
UNDO TABLESPACE undotbs DATAFILE
'/vobs/oracle/oradata/mynewdb/[Link]' SIZE 200M REUSE
AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
03/01/2005
© 17
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Une BD oracle: une collection de données à
stocker et chercher
Une BD a une structure logique et une structure
physique
Les structures logiques et physiques sont
séparées
La gestion des structures physique n’affecte pas
l’accès aux structures logiques
03/01/2005
© 18
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques représentent les notions qui sont
utilisées pour gérér la BD.
Les structures logiques d’une BD oracle sont:
Tablespaces
Objets schémas
Blocks de données
Les extents
Les segments
03/01/2005
© 19
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Tablespaces
Les Tablespaces sont des unités logiques de stockage qui
ont une taille définie lors de la création
Ils permettent le regroupement de structures logiques en
relation entre elles
Ex: tous les objets d’une application particulière
03/01/2005
© 20
Bureau de la formation à distance
Exemple
CREATE TABLESPACE users
LOGGING DATAFILE '/vobs/oracle/oradata/mynewdb/[Link]'
SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE
UNLIMITED EXTENT MANAGEMENT LOCAL;
• Un tablespace peut être partagé par plusieurs utilisateurs, ou à
chaque utilisateur, on associe un tablespace.
03/01/2005
© 21
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
chaque BD (par exemple ora8i) est divisé en un ou plusieurs
tablespaces.
Un tablespace peut être partagé par plusieurs utilisateurs.
A chaque tablespace, on associe des fichiers physiques pour
stocker l’information
03/01/2005
© 22
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Un tablespace peut être online ou offline.
online: il est accessible et les données peuvent être
exploitées
offline: pour restreindre l’accès à certaines données de
la BD. (chaque BD est constitué de un ou plusieurs
tablespaces).
03/01/2005
© 23
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Il faut avoir des privilèges bien particuliers pour créer,
modifier ou supprimer un tablespace.
Les utilisateur SYS et SYSTEM, créés a l'installation,
possède les privilèges nécessaires pour ces opérations sur
les tablespaces.
03/01/2005
© 24
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Exemple de création de tablespace:
create tablespace ift20328h03 DATAFILE
'info20328h03' size 400M
DEFAULT STORAGE (
INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 100
PCTINCREASE 0)
OFFLINE;
03/01/2005
© 25
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
On crée un tablespace nommé ift20328h03.
À ce tablespace, on associe un fichier physique sur le
serveur qui s'appelle info20328h03 de taille 400Mo.
Les opérations sur la BD se déroulent sur le tablepsace
ift20328h03. Ces opérations se répercutent
physiquement sur info20328h03. L’utilisateur travaille sur
son tablespace. Le système s’occupe de l’organisation
au niveau physique.
03/01/2005
© 26
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
On peut modifier un tablespace tel que le rendre online:
alter tablespace ift19022h03 online;
On peut ajouter de l'espace physique à un tablespace
déjà créé (on ajoute par exemple 1400Mo):
alter TABLESPACE ift19022h03 add datafile
'/home6/vega/oracle-u02/oradata/sbd/datai/image2' size
1400M;
Pour effectuer ces tâches, il faut avoir les privilèges
nécessaires (ce qui n’est pas le cas avec vos compte de
l’université).
03/01/2005
© 27
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Objets schémas
Un schéma inclut des tables, des procédures, des indexes
ou des vues
Un schéma est une structure logique qui réfère aux
données de la BD
03/01/2005
© 28
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Objets schémas
Il n’y a pas de relation entre un schéma et un
tablespace.
Les objets d’un schéma peuvent être dans différents
tablespace.
Un tablespace peut contenir des objets de différents
schémas.
03/01/2005
© 29
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Blocks de données
Les données sont stockées dans des blocks de données.
Un bloc de données correspond à un nombre d’octets dans
l’espace physique de la BD. L’utilisateur ne gère pas
l’organisation des octets d’un blocks de données. C’est le
système qui s’en charge de le faire.
03/01/2005
© 30
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Les extents
Un extent: c’est un ensemble de blocks de données
contiguës utilisé pour stocker un type particulier
d’information.
03/01/2005
© 31
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures logiques d’une BD:
Les segments
Un segment: un ensemble de extents alloués pour une
certaine structure logique
Les types de segment: segment de données, segment
d’index et un segment de rollback et segment temporaire
03/01/2005
© 32
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Une BD oracle: une collection de données à
stocker et chercher
Une BD a une structure logique et une structure
physique
Les structures logiques et physiques sont
séparées
La gestion des structures physique n’affecte pas
l’accès aux structures logiques
03/01/2005
© 33
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures physiques d’une BD:
Datafiles (.dbf)
Fichiers redo log (.rdo ou .log)
Fichiers de contrôles (.ctl)
03/01/2005
© 34
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures physiques d’une BD:
Datafiles
Chaque BD a un ou plusieurs datafiles
Les datafiles contiennent les données de la BD
Les données des structures logiques sont stockées
dans des datafiles
03/01/2005
© 35
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures physiques d’une BD:
Datafiles
Chaque datafile est associé à une BD
Les datafiles peuvent s’agrandir (si le droit est donné)
au cas où la BD dépasse la limite de stockage qui lui
était allouée au départ
Un ou plusieurs datafiles forment un tablespace
03/01/2005
© 36
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures physiques d’une BD:
Fichiers redo log (Journal Externe)
À chaque BD est associé deux ou plusieurs fichiers
redo log
Il enregistre tous les changements effectués sur les
données.
Si une panne survient et des données ne sont pas
enregistrées dans la BD, lors du redémarrage de la BD,
on peut les récupérer par les fichiers redo log
03/01/2005
© 37
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Exemple d’un fichier Redo Log
GROUP# THREAD# SEQ BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
1 1 10605 1048576 1 YES ACTIVE 11515628 16-APR-00
2 1 10606 1048576 1 NO CURRENT 11517595 16-APR-00
3 1 10603 1048576 1 YES INACTIVE 11511666 16-APR-00
4 1 10604 1048576 1 YES INACTIVE 11513647 16-APR-00
03/01/2005
© 38
Bureau de la formation à distance
Structure de la BD
et gestion de l’espace disque
Les structures physiques d’une BD:
Fichiers de contrôles
Ils spécifient la structure physique de la BD: le nom de
la BD, les noms des datafiles et des fichiers redo log.
A chaque ouverture de la BD, les fichiers de contrôle
sont invoqués pour retrouver les fichiers associés à la
BD ainsi que ses fichiers redo log. À chaque création de
nouveaux fichiers, ces informations sont reportées dans
les fichiers de contrôle.
03/01/2005
© 39
Bureau de la formation à distance
Des tables, vues…
Stockés dans des blocks
Dans le disque dur
03/01/2005
© 40
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 41
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Pour accéder à la BD, on a besoin de mémoire ainsi que de
processus.
Les processus spécifient les tâches qui tournent dans la mémoire
de l’ordinateur. Un processus peut être une requête SQL.
La mémoire est utilisée pour des tâches telles que: l’exécution de
programmes ou la sauvegarde de données.
Oracle possède deux structures de mémoire: La structure
System et la structure Program.
03/01/2005
© 42
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
La structure system est appelée The System Global Area (SGA)
Il s’agit d’une zone mémoire partagée entre les différents
processus en exécution sur le serveur.
Elle contient des données et des informations de contrôle pour
une instance Oracle.
Une instance Oracle est constituée de la SGA et des processus
propres à Oracle (Ce sont des processus spécifiques à la gestion
des transactions entre les utilisateurs et le serveur).
03/01/2005
© 43
Bureau de la formation à distance
Instance
SID: nom de l’instance
03/01/2005
© 44
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Les utilisateurs connectés à un serveur Oracle se
partagent des données dans le SGA telles que des
données du fichier redo log.
Pour des raisons de performance, la SGA doit être la
plus large possible pour supporter un grand nombre
d’utilisateurs.
L’objectif est de minimiser l’accès au disque.
03/01/2005
© 45
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Utilisation de la mémoire et des processus pour accéder à la BD
Processus: tâches qui tournent dans la mémoire de l’ordinateur
La mémoire est utilisée pour des tâches telles que: l’exécution de
programmes ou la sauvegarde de données.
Deux structures de mémoire associées à Oracle: La structure
System et la structure Program
03/01/2005
© 46
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Structure Program: Program Global Area (PGA)
Elle contient les données et les informations de contrôle
pour un processus serveur.
À chaque utilisateur connecté est associé un processus
serveur donc une PGA.
Si l’utilisateur exécute une requête dont les informations
ne sont pas en mémoire (SGA), le processus serveur
qui lui est associé doit aller chercher cette information
du disque.
03/01/2005
© 47
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 48
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Il existe deux types de processus:
Processus utilisateurs
Processus Oracle
03/01/2005
© 49
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus utilisateurs
Il représente le code d’une application (PL/SQL, pro*C/C++, ou
autres)
03/01/2005
© 50
Bureau de la formation à distance
Exemple
• Créer des usagers et modifier les privilèges de chaque usager.
create user equipe1 identified by abcdef default tablespace
ift19022h03 quota 10M on ift19022h03;
grant create table to equipe1;
grant create session to equipe1;
grant create trigger to equipe1;
grant create tablespace to equipe1;
grant create procedure to equipe1;
03/01/2005
© 51
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus Oracle
Les processus Oracle sont appelés par d’autres processus tels
que les processus utilisateurs.
Ils leur exécutent des tâches particulières (du code PL/SQL).
Comme exemples de processus Oracle, on peut citer: les
processus serveurs, et les processus de base.
03/01/2005
© 52
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus Oracle
Processus serveurs
Processus de base
• Intermédiaires entre les processus utilisateurs et Oracle
• Si un user demande des données qui ne sont pas dans le buffer de la
SGA, un processus serveur va chercher l’information
• On peut configurer Oracle de manière à déterminer le nombre de
processus serveurs ainsi que le nombre de processus utilisateurs à
considérer
03/01/2005
© 53
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus Oracle
Processus serveurs
Processus de base
Pour des raisons de sécurité, on peut configurer Oracle
de manière à déterminer le nombre de processus
serveurs ainsi que le nombre de processus utilisateurs à
considérer.
03/01/2005
© 54
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus Oracle
Processus serveurs
Processus de base
Ils exécutent les opérations d’entrée/sortie entre la
mémoire et le disque et entre le serveur et le client.
03/01/2005
© 55
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Deux types de processus:
Processus Oracle
Processus serveurs
Processus de base
Ils gèrent d’autres processus oracle (ce sont les grands
gestionnaires d’oracle)
Par exemple: écriture dans la BD, recouverture d’une
panne, gestion de l’exécution des processus, etc.
03/01/2005
© 56
Bureau de la formation à distance
Principaux processus
Oracle
DBWR (DataBase Writer ou Dirty Buffer Writer), le processus
chargé d'écrire le contenu des buffers dans les fichiers de
données
LGWR (Log Writer), le processus chargé d'écrire le contenu des
buffers dans les fichiers Redo Log
PMON (Process Monitor), le processus chargé de nettoyer les
ressources, les verrous et les processus utilisateurs non utilisés
SMON (System Monitor), le processus chargé de vérifier la
cohérence de la base de données et éventuellement sa
restauration lors du démarrage si besoin
03/01/2005
© 57
Bureau de la formation à distance
La structure de la mémoire
et les processus Oracle
Étapes de fonctionnement d’oracle:
3. Connexion au serveur
4. Allocation d’un processus serveur à la connexion 1. Serveur Oracle
2. Utilisateur se connecte
(user process)
7. Information de 5. Requête SQL
l’utilisateur du résultat Traitée par le processus
serveur
6. Recherche de l’information
Datafile ou SGA Zone SQL partagée
03/01/2005
© 58
Bureau de la formation à distance
Exemple
• Lors du démarrage d'une session sqlclient, le client contacte le
serveur oracle et vérifie le login, mot-de-passe etc.
• Un processus est démarré et la session sqlclient est associé a
un port.
• Voici une petite sortie du 4 décembre 2002 en pm :
TCP s-oracle:1220 IFT-3708-111:3580 ESTABLISHED
TCP s-oracle:1221 IFT-3708-111:3582 ESTABLISHED
TCP s-oracle:1246 IFT-3708-117:3225 ESTABLISHED
03/01/2005
© 59
Bureau de la formation à distance
Plan
Les outils Oracle
Introduction architecture
Structure de la BD et gestion de l’espace disque
La structure de la mémoire et les processus Oracle
Accès concurrents et consistance des données
03/01/2005
© 60
Bureau de la formation à distance
Accès concurrents et
consistance des données
Les données doivent être lues et modifiées de manière
consistante
L’accès concurrentiel aux données doit être géré
Une grande performance doit être garantie pour des
BD multi-users.
03/01/2005
© 61
Bureau de la formation à distance
Accès concurrents et
consistance des données
Accès concurrentiel: accès simultané aux mêmes
données par différents users.
Si aucun contrôle sur les accès concurrentiels, les
données peuvent être changées, et compromettant
ainsi leur intégrité
Stratégie: chaque utilisateur attend son tour pour
accéder à la donnée partagée (en modification)
03/01/2005
© 62
Bureau de la formation à distance
Accès concurrents et
consistance des données
Assurer que les lecteurs n’attendent pas après les
écrivains ou les autres lecteurs
Assurer que les écrivains n’attendent pas après les
lecteurs.
Assurer que les écrivains n’attendent que pour leurs
vraisemblables qui accèdent à la même donnée pour
modification.
03/01/2005
© 63
Bureau de la formation à distance
Accès concurrents et
consistance des données
Lock mechanism:
Assurer que les données qu’un utilisateur est en train
d’utiliser ne changent pas durant cette utilisation
(consistance)
Assurer que les changements des données reflètent
tous les changements effectués dans la bonne
séquence
03/01/2005
© 64
Bureau de la formation à distance
Résumé…
03/01/2005
© 65
Bureau de la formation à distance
03/01/2005
© 66
Bureau de la formation à distance
Références
[Link]
[Link]
[Link]
[Link]
[Link]
03/01/2005
© 67
Bureau de la formation à distance