Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees...

115
Administration de Bases de Donn´ ees Implantation d’une BD Thierry Hamon Bureau H202 Institut Galil´ ee - Universit´ e Paris 13 & LIMSI-CNRS [email protected] https://perso.limsi.fr/hamon/Teaching/P13/ABD-AIR3-2019-2020/ AIR3 – ABD 1/113

Transcript of Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees...

Page 1: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Administration de Bases de DonneesImplantation d’une BD

Thierry Hamon

Bureau H202Institut Galilee - Universite Paris 13

&LIMSI-CNRS

[email protected]

https://perso.limsi.fr/hamon/Teaching/P13/ABD-AIR3-2019-2020/

AIR3 – ABD

1/113

Page 2: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Presentation du coursSuite du cours de AIR3

Objectifs de l’enseignement :Connaıtre et manipuler des notions liees a l’administrationd’un SGBD

Connaıtre l’architecture d’un SGBDSavoir configurer, optimiser et securiser des bases de donnees

Programme des enseignements

Implantation de Bases de DonneesOptimisation de Requetes, Evaluation de RequetesArchitecture de SGBD, Administration de BD

Repartition des enseignements

3 × 3h de cours4 × 3h de TP

2/113

Page 3: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Presentation du coursSuite du cours de AIR3

Objectifs de l’enseignement :Connaıtre et manipuler des notions liees a l’administrationd’un SGBD

Connaıtre l’architecture d’un SGBDSavoir configurer, optimiser et securiser des bases de donnees

Programme des enseignements

Implantation de Bases de DonneesOptimisation de Requetes, Evaluation de RequetesArchitecture de SGBD, Administration de BD

Repartition des enseignements

3 × 3h de cours4 × 3h de TP

2/113

Page 4: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Presentation du coursSuite du cours de AIR3

Objectifs de l’enseignement :Connaıtre et manipuler des notions liees a l’administrationd’un SGBD

Connaıtre l’architecture d’un SGBDSavoir configurer, optimiser et securiser des bases de donnees

Programme des enseignements

Implantation de Bases de DonneesOptimisation de Requetes, Evaluation de RequetesArchitecture de SGBD, Administration de BD

Repartition des enseignements

3 × 3h de cours4 × 3h de TP

2/113

Page 5: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Role d’un Administrateur d’une Base de Donnees(ABD ou DataBase Administrator DBA)

Double role de l’administrateur d’une Base de Donnees :

role organisationnel

Definition du schema conceptuel des donneesPartage de ces donnees par les utilisateurs

role technique

Mise en œuvre ce schemapartage a l’aide des capacites techniques du SGBD

3/113

Page 6: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Role d’un Administrateur d’une Base de Donneesrole technique

Installation du SGBD et des outils associes

Creation de la BD et ses composants conformement a unschema conceptuel

Surveillance de son evolution en modifiant, en creant ou ensupprimant certaines structures

Gestion des privileges d’accesAttribution et retrait de privileges d’acces aux donnees auxdifferents utilisateurs de la base de donnees

4/113

Page 7: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Role d’un Administrateur d’une Base de Donneesrole technique

Amelioration les performancesChoix de l’implantation optimale des donnees de facon aobtenir les meilleures performancesIdentification et prise en compte des utilisations qui serontfaites des donnees

Surveillance de la securite et la coherence des donneesMise en place de structures et de procedures permettant

de faire face a tous les incidentsde retrouver l’integrite et la coherence des donnees

5/113

Page 8: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Role d’un Administrateur d’une Base de Donneesrole technique

Echange les donnees entre la BD et le monde exterieur

Surveillance de l’integration des donnees en provenanced’autres applications ou BDMigration des donnees de la base vers d’autres applications ouBD

Outils a utiliser : SQL*DBA, SQL*Loader, SQLPLUS, etc.

6/113

Page 9: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Sources des transparents

F. Boufares, LIPN, Universite Paris Nord

7/113

Page 10: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation/definition d’une table

Attributs : types de donnees de base (predefinis par lesysteme – Numerique, Caractere, Texte, Date, etc.)

Attributs : types de donnees definis par l’utilisateur

Contraintes : controles de validite (Cles primaire etetrangeres, etc.)

Caracteristiques physiques :

Taux de remplissage des blocs, evolution, etc.Lieu de stockage (disque, MC, ), parallelisme, etc.Optimisations : Partitionnement, decoupage

8/113

Page 11: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation/definition d’une table

Indexer :

Accelerer les traitementReconstruire les blocs, etc.

Construire de vues materialisees (des pre-calculs, etc.)

Partager les donnees entre plusieurs utilisateursCreer des vues, des droits d’acces, des roles, des profiles, etc.

9/113

Page 12: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation/definition d’une tableCREATE TABLE nomtb ( a t t r i b u t s , c o n t r a i n t e s )

TABLESPACE nomtbspPCTUSED x1PCTFREE x2INITRANS x3MAXTRANS x4

STORAGE ( INITIAL n1 NEXT n2MINEXTENTS m1 MAXEXTENTS m2PCTINCREASE p )

PARALLEL p / NOPARALLEL ( a p p l i q u e r l e p a r a l l e l i s m e )

LOGGING / NOLOGGING ( pour ne pas c o p i e r l e s m i s e s a j o u rdans l e r o l l b a c k )

CACHE / NOCACHE ( permet de g a r d e r l a t a b l e en memoire ;a u t i l i s e r avec p r e c a u t i o n )

PARTITIONnement ( une s o r t e de decoupage de l a t a b l e )

10/113

Page 13: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure d’une base de donnees (Oracle)

une structure physique

une structure logique

un ensemble de vues donnant des visions partielles auxutilisateurs

Description de ces trois niveaux et la correspondance entre eux atravers le dictionnaire de donnees

11/113

Page 14: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure d’une baseElements composant d’une base :

Fichiers qui composent la base de donnees :

Fichier rollbackFichier tablespaceRedo logsFichiers de controle (Control files)Fichiers de trace et alert.log

Instances definies par un nom (SID)Il s’agit des processus qui gerent :

La coherence de la baseLa mise a jour, rollbacketc ..

Aussi le SGA (System Global Area)

12/113

Page 15: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure physique

Composee d’un ensemble de fichiers qui constituent le supportphysique de stockage de donnees

Trois types de fichiers :

Fichiers de donnees (Data Files)

Fichiers de reprise (Redo Log Files)

Fichiers de controle (Control Files)

Specification des Data Files et Redo Log lors de la creation ou lamodification de la base de donnees

13/113

Page 16: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Fichiers de donnees (Data Files)

Les fichiers de donnees assurent le stockage

des objets crees par les utilisateurs : tables, index, vues,clusters, etc.des structures necessaires au fonctionnement d’Oracle :dictionnaire de donnees

Un fichier de donnees est associe a une et une seule base dedonnees

Lors de la creation d’une base de donnees, il doit y avoir aumoins un fichier de donnees pour stocker le dictionnaire dedonnees

14/113

Page 17: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Taille d’un Data File

Exprimee en Kilo ou en Mega octets

Attribuee au moment de la creation du fichier, pouvant etremodifiee

Son choix depend de la taille de la base de donnees et de sonevolution

Le premier fichier de donnees cree doit avoir une taillesuperieure ou egale a 2Mo

15/113

Page 18: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Nom d’un Data File

Depend du systeme d’exploitation

Peut etre modifie, sauf pour le premier fichier

La modification se fait en deux etapes :

modification du nom du fichier en utilisant les commandes OSrepercussion de cette modification dans les fichiers de controle

16/113

Page 19: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’un Data FileRealisee selon quatre configurations :

Creation d’une base

CREATE DATABASE baseDATAFILE s p e c i f i c a t i o n f i c h i e r

Creation d’un tablespace

CREATE TABLESPACE t b sDATAFILE s p e c i f i c a t i o n f i c h i e r

Modification d’une base par ajout d’un nouveau fichier de donnees

ALTER DATABASE baseCREATE DATAFILE f i c h i e r AS s p e c i f i c a t i o n

Modification d’un tablespace par ajout d’un nouveau fichier dedonnees

ALTER TABLESPACE t b sADD DATAFILE s p e c i f i c a t i o n f i c h i e r

17/113

Page 20: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Modification d’un Data File

Deux cas de modifications :

modification du nom et de localisationmodification de la taille

Modification du nom : TableSpace en Offline (eviter que desdonnees soient accesssibles pendant le deplacement)

ALTER TABLESPACE o r a d a t a OFFLINE

ALTER TABLESPACE t b sRENAME DATAFILE ’ f i c h 1 ’ , ’ f i c h 2 ’ TO ’ f i c h 1 1 ’ , ’ f i c h 2 2 ’

ALTER DATABASE baseRENAME FILE ’ f i c h 1 ’ , ’ f i c h 2 ’ TO ’ f i c h 1 1 ’ , ’ f i c h 2 2 ’

18/113

Page 21: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Modification d’un Data File

Modification de la taille :

ALTER TABLESPACE t b sADD DATAFILE s p e c i f i c a t i o nAUTOEXTEND [ OFF | ON [NEXT e n t i e r [K |M] ][ MAXSIZE UNLIMITED | e n t i e r [K |M] ]

ALTER DATABASE baseDATAFILE ’ f i c h 1 ’ RESIZE e n t i e r [K |M]AUTOEXTEND [ OFF | ON [NEXT e n t i e r [K |M] ][ MAXSIZE UNLIMITED | e n t i e r [K |M] ]

19/113

Page 22: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Suppression d’un Data File

Solution 1 : en deux etapes

1 Suppression du tablespace associe au Data file

DROP TABLESPACE t b sINCLUDING CONTENTS

2 Suppression des fichiers physiques manuellement parcommande OS.

Solution 2 : en une seule etapeSuppression du tablespace associe au Data file ainsi que lesfichiers physiques

DROP TABLESPACE t b sINCLUDING CONTENTS and d a t a f i l e s

20/113

Page 23: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Fichiers Redo Log

Contiennent les modifications les plus recentes des donnees dela base

Utilises par Oracle pour remettre la base dans un etatcoherent apres une panne sans perdre les mises a jour quin’ont pas ete enregistrees dans les data files

Lors du redemarrage de l’instance, Oracle applique les mises a jourdes Redo Log sur les Data file (reprise a chaud)

Au moins deux fichiers par instance, utilises d’une facon circulaire

21/113

Page 24: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Fichiers Redo Log

Redo Log multiple : duplication des fichiers Redo Log surdifferents disquesLorsqu’un des fichiers est perdu ou endommage, son imagesur l’autre disque peut etre utilise

L’ensemble des Redo Logs actifs simultanement constitue ungroupeChaque fichier de ce groupe est dit membre

Avant de reutiliser un Redo Log plein, Oracle peut l’archiver sila base est en mode ARCHIVELOG (voir plus loin)

22/113

Page 25: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’un Redo Log

Possibilite de creer ou d’ajouter des Redo Logs dans une baseexistante :

CREATE DATABASE baseLOGFILE [GROUP e n t i e r ] ( ’ f i c h ’ , ’ f i c h ’ , . . . )SIZE e n t i e r [K |M] . . .

ALTER DATABASE baseADD LOGFILE [THREAD e n t i e r ] [GROUP e n t i e r ]

( ’ f i c h ’ , ’ f i c h ’ , . . . ) SIZE e n t i e r [K |M] . . .ADD LOGFILE MEMBER ’ f i c h ’ [ REUSE ] TO

{GROUP e n t i e r | ’ f i c h ’ }

23/113

Page 26: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Suppression d’un Redo Log

Suppression d’un Redo Log, d’un groupe ou d’un membre :

ALTER DATABASE baseDROP LOGFILE {GROUP e n t i e r | ( ’ f i c h ’ , ’ f i c h ’ , . . . ) }

. . .DROP LOGFILE MEMBER { ’ f i c h ’ | ( ’ f i c h ’ , ’ f i c h ’ , . . . ) }

Un Redo Log peut etre initialise par :

ALTER DATABASE baseCLEAR [ UNARCHIVED ] LOGFILE {GROUP e n t i e r |( ’ f i c h ’ , ’ f i c h ’ , . . . ) } . . . [UNRECOVERABLE DATAFILE ]

24/113

Page 27: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Control File

Contient les informations relatives a la structure physique dela base de donnees :

nom de la base de donneesnoms et localisations des Datafile et Redo Logstimestamp de creation de la basele nombre de sequence log courantinformations sur le checkpoint

Cree au moment de la creation de la base

25/113

Page 28: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Control File

Utilise lors de l’ouverture d’une base pour identifier lesDatafiles et les Redo Logs

Au moins un fichier de controleRecommandation : dupliquer ce fichier plusieurs fois

Mise a jour automatique a chaque modification de structurede la base

Noms specifies dans init.ora

26/113

Page 29: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure logique

La structure logique d’une base est composee

des tablespaces

des segments

des extensions (extents)

des blocs

Un ensemble d’objets logiques constitue d’objets de schema(schema objects)Les objets de schema constituent la structure relationnelle de labase

27/113

Page 30: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Tablespace

Une base de donnees est composee d’un ensemble d’uniteslogiques dites tablespaces

Un tablespace permet de regrouper un ensemble d’objetslogiques (tables, index, etc.)

Il peut etre utilise pour regrouper des objets logiques d’uneapplication pour que les operations de sauvegarde et derestauration soient efficaces

28/113

Page 31: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure d’une base de donnees

29/113

Page 32: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Tablespace

Chaque objet logique doit etre associe a un et un seultablespace

Chaque tablespace est identifie par un nom

Un tablespace peut etre supprime meme s’il contient desdonnees

Une base de donnees doit avoir au moins un tablespace appeleSYSTEM qui contient le dictionnaire de donnees

30/113

Page 33: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Tablespace

Un tablespace peut etre active (OnLine) ou desactive(OffLine)

Le tablespace SYSTEM ne peut jamais etre desactive

Un tablespace peut etre cree, modifie et supprime

Il est recommande de creer d’autres tablespaces pour lesobjets de la base

31/113

Page 34: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation de Tablespace

CREATE TABLESPACE t b sDATAFILE s p e c SIZE e n t i e r {M|K}[AUTOEXEND {OFF |ON} ][NEXT e n t i e r {M|K} ][ MAXSIZE {UNLIMITED | e n t i e r {M|K } ] } . . .[DEFAULT STORAGE c l a u s e s t o c k a g e ][ ONLINE | OFFLINE ][PERMANENT | TEMPORARY]

32/113

Page 35: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Modification d’unTablespace

ALTER TABLESPACE t b sADD DATAFILE s p e c SIZE e n t i e r {M|K}

[AUTOEXEND {OFF |ON} ][NEXT e n t i e r {M|K} ][ MAXSIZE {UNLIMITED | e n t i e r {M|K } ] } . . .

[RENAME ’ f i c h ’ , . . . TO ’ f i c h ’ , . . . ][COALESCE ][DEFAULT STORAGE c l a u s e s t o c k a g e ][ ONLINE | OFFLINE {NORMAL | TEMPORARY | IMMEDIATE} ][{BEGIN | END} BACKUP][READ {ONLY | WRITE} ][PERMENENT | TEMPORARY]

33/113

Page 36: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Suppression d’un Tablespace

DROP TABLESPACE t b s[ INCLUDING CONTENTS][CASCADE CONSTRAINTS]

INCLUDING CONTENTS supprime le contenu de tablespace

CASCADE CONSTRAINTS supprime les contraintes d’integritedes tables d’autres tablespaces qui se referent aux clesprimaires des tables du tablespace specifie

34/113

Page 37: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion des tablespaces

L’administrateur peut consulter les vues du dictionnaire de donneessuivantes :

USER_EXTENTS, DBA_EXTENTS

USER_SEGMENTS, DBA_SEGMENTS

USER_FREE_SPACE, DBA_FREE_SPACE

DBA_USERS

DBA_TS_QUOTAS

USER_TABLESPACES, DBA_TABLESPACES

DBA_DATA_FILES

V$DATAFILE

35/113

Page 38: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Utilisation des tablespaces

Un tablespace peut etre attribue par defaut a un utilisateur

Les objets de cet utilisateur seront stockes dans ce tablespacesauf contre indication

CREATE | ALTER u s e r IDENTIFIED [BY mdp | EXTERNALLY ][DEFAULT TABLESPACE t b s ][TEMPORARY TABLESPACE t b s ][QUOTA { e n t i e r {M | K} | UNLIMITED} ON t b s ]

36/113

Page 39: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple

s e l e c t ∗ from d b a t a b l e s p a c e s ;a l t e r t a b l e s p a c e USERS o f f l i n e ;a l t e r t a b l e s p a c e USERS

rename d a t a f i l e ’ c :\ d a t a f i l e \ tp \db\ g e s t e e . dbf ’ TO’ c :\ d a t a f i l e \ tp \db\ g e s t e e 0 1 . dbf ’

a l t e r t a b l e s p a c e USERS o n l i n ec r ea te t a b l e s p a c e t e s t

d a t a f i l e ’ c :\ d a t a f i l e \Tp\DB\ d a t a t e s t . dbf ’ s i z e 20M;a l t e r t a b l e s p a c e t e s t

add d a t a f i l e ’ c :\ d a t a f i l e \Tp\DB\ d a t a t e s t 2 . dbf ’ s i z e 3M;c r ea te t ab l e t o t o ( c o l 1 number , c o l 2 number )

t a b l e s p a c e t e s t

37/113

Page 40: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Retour sur le schema physique (SQL2)

c r ea te t ab l e COURS(NUM COURS NUMBER( 2 ) ,NOMC VARCHAR( 2 0 ) ,NBHEURES NUMBER( 2 ) ,ANNE NUMBER( 1 ) ,c o n s t r a i n t PK COURS pr imary key (NUM COURS) ,c o n s t r a i n t NN COURS NOMC check (NOMC I S NOT NULL) )

38/113

Page 41: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Ajout d’un tablespace dans le schema physique

PCTUSED de 98% initialement une seule transactionPCTFREE de 1% peut acceder aux lignes a la fois

255 transsactions au maximumTaille du premier extent : 11280 Ko Nombre illimite d’extents alloues au segmentTaille du premier extent : 11 Mo Nombre de blocs dans lequel Oracle1 extent alloue a la creation du segment peut ecrire des donnees : 9 (1 groupe de blocs)

Possibilite de traitement en parallele

TABLESPACE S COURS DATAPCTUSED 98PCTFREE 1INITRANS 1MAXTRANS 255STORAGE ( INITIAL 11280K

NEXT 11MMINEXTENTS 1MAXEXTENTS u n l i m i t e dPCTINCREASE 0FREELISTS 9FREELIST GROUPS 1 )

PARALLEL ;

39/113

Page 42: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Ajout dans le schema physiquec r ea te t ab l e PROFESSEURS(NUM PROF NUMBER( 4 ) ,NOMP VARCHAR2( 2 5 ) ,SPECIALITE VARCHAR2( 2 0 ) ,DATE ENTREE DATE,DER PROM DATE,SALAIRE BASE NUMBER,SALAIRE ACTUEL NUMBER,c o n s t r a i n t PK PROFESSEURS pr imary key (NUM PROF)c o n s t r a i n t NN PROFESSEURS NOMP check (NOMP I S NOT NULL)

)

TABLESPACE S PROF DATAPCTUSED 98PCTFREE 1INITRANS 6MAXTRANS 255STORAGE ( INITIAL 20M NEXT 5M)NOPARALLEL ;

40/113

Page 43: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Ajout dans le schema physique

c r ea te t ab l e CHARGE(NUM PROF NUMBER( 4 ) ,NUM COURS NUMBER( 4 ) ,c o n s t r a i n t PK CHARGE pr imary key (NUM COURS, NUM PROF)c o n s t r a i n t FK CHARGE COURS f o r e i g n key (NUM COURS)

r e f e r e n c e s COURS (NUM COURS)c o n s t r a i n t FK CHARGE PROFESSEURS f o r e i g n key (NUM PROF)

r e f e r e n c e s PROFESSEURS (NUM PROF) )

TABLESPACE S CHARGE DATAPCTUSED 98PCTFREE 1INITRANS 1MAXTRANS 255STORAGE ( INITIAL 11280K

NEXT 11MMINEXTENTS 1MAXEXTENTS u n l i m i t e dPCTINCREASE 0FREELISTS 9)

PARALLEL 3 ;

41/113

Page 44: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

SEGMENT, EXTENSION, BLOC

Lors de la creation d’un fichier, Oracle reserve tout l’espacequi lui est associe

A l’interieur de ce fichier, l’espace disque est geredynamiquement au fur et a mesure de l’utilisation de la basede donnees

Gestion selon trois niveaux de granularite :

segmentextensionbloc

42/113

Page 45: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

SEGMENT, EXTENSION, BLOC

43/113

Page 46: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Bloc de donnees

Un bloc de donnees est la plus petite unite logiqued’entree/sortie utilisee par Oracle

Appele egalement Bloc logique ou Page

A distinguer du bloc physique utilise par les OS(bloc physique = ensemble d’octets sur disque)

Taille d’un bloc de donnees

attribuee par defaut selon OS (2 , 4 ou 8 Ko)modifiable par DB_BLOCK_SIZE = n

44/113

Page 47: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Format d’un bloc de donnees

Les blocs de donnees sont organises de la meme facon quelque soitleur contenu : donnees, index ou cluster

45/113

Page 48: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Format d’un bloc de donnees

Entete : contient des informations generales (adresse du bloc,type du segment, etc)

Liste des tables : utilisee uniquement pour les clusters.Contient des informations relatives aux tables groupees ayantdes donnees dans ce bloc

Liste des lignes : contient des informations relatives aux lignessituees dans ce bloc (adresse)

Espace libre : utilise pour l’insertion de nouvelles lignes ou lamise a jour des lignes necessitant de l’espace

Reste du bloc : reserve aux donnees

46/113

Page 49: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Organisation d’une ligne

Ordre de stockage des colonnes :

determine par Oraclepeut differer de celui utilise lors de la creation de la table

Ajout d’une nouvelle colonne a une table : la colonne setrouve toujours en derniere position

47/113

Page 50: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion de l’espace des blocs

Parametres PCTFREE et PCTUSED :

Gestion de l’espace libre des blocs de donnees

Utilisation dans les commandes de creation ou de modificationde tables, clusters, snapshot et snapshot log

Le parametre PCTFREE peut etre utilise egalement dans lescommandes de creation et de modification d’index

48/113

Page 51: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

PCTFREE

Definition du pourcentage d’espace dans un bloc qui doit etremaintenu libre pour les eventuelles mises a jour des lignes dublocExemple : PCTFREE = 15Possibilite d’inserer de nouvelles lignes dans le bloc tant quel’espace libre > 15%

Criteres de choix

mode d’utilisation de la table ou de l’index associesuperieur a 10 si la mise a jour augmente souvent la tailleinferieur a 10 dans le cas contraire

49/113

Page 52: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

PCTFREE

Chercher un compromis entre le gain d’espace etl’amelioration des performances

valeur faible : gain d’espace et degradation des performances acause de la fragmentation des donneesvaleur elevee : perte d’espace et un gain de performances

50/113

Page 53: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

PCTUSED

Utilise simultanement avec le parametre PCTFREE (valeur pardefaut est 40)

Un bloc est initialement vide

Insertions de nouvelles lignes jusqu’a atteindre PCTFREE

Possibilite d’insertion de nouvelles lignes dans le bloc que si lepourcentage d’espace utilise devient inferieur a PCTUSED

A nouveau, possibilite d’insertion de nouvelles lignes jusqu’ace que l’espace libre atteint PCTFREE

51/113

Page 54: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple PCTFREE et PCTUSED

PCTFREE = 20, PCTUSED = 40

52/113

Page 55: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

RemarquesPCTFREE

Permet de specifier l’espace libre laisse dans le bloc pourrealiser les mises a jour des lignes stockees dans le blocPar defaut, la valeur de ce parametre est egale a 10Dans tous les cas, la somme de PCTFREE et de PCTUSED nepeut exceder 100Lorsque l’espace libre dans un bloc atteint PCTFREE, aucunenouvelle ligne n’est inseree dans le bloc

PCTUSEDLorsque l’on ne peut plus inserer de lignes dans le bloc(l’espace libre restant dans le bloc devient egal a PCTFREE)

le bloc n’est plus utilise pour inserer de nouvelles lignes tantque l’espace utilise n’est pas redescendu en dessous de lavaleur de PCTUSED

53/113

Page 56: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Remarques

Les consequences d’un petit PCTFREE :

Moins d’espace est reserve au niveau du bloc pour effectuer lesmises a jour des lignes existantesPermet aux insertions de mieux remplir le blocPermet d’economiser de l’espace dans la mesure ou les blocssont mieux remplisAugmente le temps de traitement dans la mesure ou Oracledoit regulierement reorganiser les blocs lorsque l’on insere oumodifie des lignesAugmente les temps de traitement dans la mesure ou les misesa jour peuvent conduire a la generation de chaınages entredifferents blocs

Un petit PCTFREE est utilise pour les objets ayant une faibleactivite en mise a jour

54/113

Page 57: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Remarques

Les consequences d’un grand PCTFREE :

Plus d’espace est reserve au niveau du bloc pour effectuer lesmises a jour des lignes existantesPlus de blocs peuvent etre necessaires pour gerer la memequantite de donnees (moins de lignes sont stockees dans lesblocs)Diminution du temps de traitement dans la mesure ou lesreorganisation les blocs sont moins nombreusesAmelioration des performances en MAJ dans la mesure ou leschaınages des blocs sont evites

Un grand PCTFREE est necessaire pour les objets ayant uneforte activite en mise a jour

55/113

Page 58: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Remarques

Les consequences d’un petit PCTUSED :

Les blocks sont moins remplisReduction des couts de traitements lors des commandesINSERT UPDATE pour mettre a jour la FREELIST quand unbloc est utilise a moins de PCTUSED pourcentAugmentation de la consommation d’espace dans la base dedonnees

Les consequences d’un grand PCTUSED :

Le blocs sont mieux remplisAmelioration de la gestion d’espace. Les blocs sont mieuxremplisAugmentation du cout des insertions et des mises a jour

56/113

Page 59: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Autres parametrages

INITRANS

Nombre initial de transactions pouvant acceder simultanementaux lignes contenues dans un blocL’espace est reserve en entete de chaque bloc de donnees etd’indexLa valeur par defaut est 1 pour les donnees et 2 pour lesindexes

MAXTRANS

Le parametre MAXTRANS permet de limiter le nombre detransactions

57/113

Page 60: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Autres parametrages

FREELISTS

Liste des blocs libres par objetPar defaut, la valeur est egale a 1En cas de contention sur la freelist, les performances desapplications peuvent etre altereesPour identifier ce probleme,

1 il suffit de consulter le contenu de la table v$waitstat de lafacon suivante :

s e l e c t c l a s s , count w a i t sfrom v $ w a i t s t a t where c l a s s = ’ f r e e l i s t ’ ;

58/113

Page 61: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Autres parametrages

2 Il faut ensuite comparer le nombre � waits � sur les blocslibres par rapport au nombre total de demandes de donneessur la meme periode.

s e l e c t sum( value ) g e t sfrom v $ s y s s t a t where namei n ( ’ db b l o c k g e t s ’ , ’ c o n s i s t e n t g e t s ’ ) ;

3 Si le ratio waits/gets est inferieur a 1%, il faut ajouter desfreelist

59/113

Page 62: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Extent (extension)

Unite logique d’allocation d’espace

composee d’un ensemble contigue de blocs de donneesalloues simultanement a un segment

Tout segment est initialement cree avec au moins uneextension appelee extension initial (INITIAL EXTENT)

Lorsque l’espace d’un segment est completement utilise,attribution par Oracle d’une nouvelle extension dite extensionsupplementaire (INCREMENTAL EXTENT)

60/113

Page 63: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Procedure d’attribution d’une nouvelle extension

1 Recherche dans le tablespace contenant le segment le premierensemble contigue de blocs libres de taille au moins egale acelle de l’extension supplementaire

2 Si la recherche n’aboutit pas, fusion des blocs libres pourconstituer des ensembles de blocs libres de taille superieure,puis reprend la recherche

3 Si de nouveau la procedure de recherche n’aboutit pas,message d’erreur signale

4 Mise a jour de l’entete du segment et du dictionnaire dedonnees pour tenir compte de la nouvelle extension

61/113

Page 64: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Liberation des extensions

Liberation des extensions d’un segment que lorsque lesegment est supprime suite a la suppression d’une table, d’uncluster, etc.

Lorsque des extensions sont liberees, mise a jour dudictionnaire de donnees

62/113

Page 65: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Taille des extensionsDefinition de la taille des extents par les parametres de la clauseSTORAGE :

STORAGE ( INITIAL n1 NEXT n2MINEXTENTS m1 MAXEXTENTS m2PCTINCREASE p )

n1 : taille du premier extent alloue lorsque un segment estcree

n2 : taille du second extent alloue au segment

m1 : nombre d’extents alloues a la creation du segment

m2 : nombre total d’extents pouvant etre alloues a segment

p : pourcentage d’accroissement de la taille du segment I + 1par rapport a celle du segment I (I > 2).

taille du segment I + 1 = (taille du segment I ) ∗ (1 + p/100)

63/113

Page 66: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple

STORAGE ( INITIAL 50K NEXT 50KMINEXTENTS 1 MAXEXTENTS 5PCTINCREASE 50)

Si la taille d’un bloc = 2Ko, la taille des differents extents sera :

1er Extent : 50Ko

2eme Extent : 50Ko

3eme Extent : Arrondi(50 ∗ 1, 5) = 76Ko

4eme Extent : Arrondi(76 ∗ 1, 5 = 114Ko

5eme Extent : Arrondi(114 ∗ 1, 5) = 172Ko

64/113

Page 67: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

ExempleDonner des valeurs explicites dans la clause storage des tables duschema INFO2

Il existe deja dans la base, le tablespace suivant :

Create t a b l e s p a c e s t o r a g e s t a n d a r dd a t a f i l e ’ c :\ d a t a b a s e \ s t r g s t d 0 1 . dbf ’s t o r a g e ( i n i t i a l 1 M next 5M maxextents 1 0 0 0 ) ;

Solution 1 :

Create tab le t a b s t d ( c o l 1 number )t a b l e s p a c e s t o r a g e s t a n d a r d ;

Solution 2 :

Create u s e r INFO2 i d e n t i f i e d by INFO2defau l t t a b l e s p a c e STORAGE STANDARD ;

65/113

Page 68: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Segment

Compose d’un ou de plusieurs extents contenant les donneesd’une structure logique dans un tablespace

Quatre types de segments :

segments de donneessegments d’indexsegments temporairessegments de rollback

66/113

Page 69: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Structure d’une base de donnees

67/113

Page 70: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Segments de donnees

Stockage des donnees des tables et des clusters utilisateurs etsysteme

Chaque table possede un et un seul segment creeautomatiquement lors de la creation de la table

Un cluster contient un seul segment pour stocker toutes lesdonnees des tables en cluster

La maniere dont les extents sont alloues dans un segment estspecifiee par les parametres de stockage lors de la creation dela table ou du cluster

68/113

Page 71: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Segments d’index

Stockage des donnees d’index separement des donnees

Chaque index est contenu dans un segment distinct cree lorsde la creation d’index

Lors de la creation d’index, on peut preciser le tablespace danslequel sera cree le segment d’indexLe tablespace peut etre different de celui du segment dedonnees de la table associee

69/113

Page 72: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Segments temporaires

Utilises pour le traitement des commandes SQL necessitantun espace disque temporaire (order by, group by, distinct,union, instersect ou minus)

Une meme commande SQL peut necessiter plusieurs segmentstemporaires

Creation automatique en cas de besoin et suppression apresl’execution de la commande

le tablespace dans lequel sont crees les segments temporairesest defini a l’aide de l’option temporary tablespace decreate/alter user

70/113

Page 73: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Segments rollback

Enregistrement des actions effectuees par les transactions

Stockage des donnees avant modification par les transactionspossibilite d’annulation de leur effet en cas de besoin

Composantes d’un segment rollback : rollback entries

Chaque roolback entry contient les informations suivantes :

identification du bloc modifie (noms des fichier et ID du bloc)valeurs des donnees avant modification par la transaction

71/113

Page 74: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Controle de transactionsCommandes COMMIT et ROLLBACK

Lancer une transaction avec la premiere commande du LMD ala suite d’un COMMIT ou un ROLLBACK

Utiliser le COMMIT ou le ROLLBACK de SQL pour terminer unetransaction

72/113

Page 75: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Commande ROLLBACK

73/113

Page 76: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Controle de transactionsDeterminer le traitement des transactions pour le bloc PL/SQLsuivant

BEGININSERT INTO temp ( num col1 , num col2 , c h a r c o l )

VALUES ( 1 , 1 , ’ROW 1 ’ ) ;SAVEPOINT a ;INSERT INTO temp ( num col1 , num col2 , c h a r c o l )

VALUES ( 2 , 2 , ’ROW 2 ’ ) ;SAVEPOINT b ;INSERT INTO temp ( num col1 , num col2 , c h a r c o l )

VALUES ( 3 , 3 , ’ROW 3 ’ ) ;SAVEPOINT c ;ROLLBACK TO SAVEPOINT b ;COMMIT;

END;

74/113

Page 77: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation de Rollback

CREATE ROLLBACK SEGMENT r o l l backTABLESPACE t b sSTORAGE c l a u s e s t o c k a g e

75/113

Page 78: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Modification et suppression de Rollback

Modification de Rollback

ALTER ROLLBACK SEGMENT r o l l backOFFLINE | ONLINESTORAGE c l a u s e s t o c k a g eOPTIMAL TO [ e n t i e r K |M] [NULL ]SHRINK TO [ e n t i e r K |M]

Suppression de Rollback

DROP ROLLBACK SEGMENT r o l l back

76/113

Page 79: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple : utilisation d’un ROLLBACK SEGMENT

Definition d’un rollback segment particulier a utiliser pour unetransaction :

SET TRANSACTION USE ROLLBACK SEGMENT r b s l a r g e ;

Creation d’un ROLLBACK SEGMENT RBS_Large

create ro l l back segment r b s l a r g et a b l e s p a c e INFO2 STORAGE (

INITIAL 50K NEXT 10KMINEXTENTS 100 MAXEXTENTS 1000)

Modification du rollback segment (mise online)

a l t e r ro l l back segment r b s l a r g e o n l i n e

77/113

Page 80: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion et suivi des Rollbacks

Liste des rollbacks de la base

s e l e c t ∗ from s y s . d b a r o l l b a c k s s e g s ;

Affichage des statistiques des Rollback en cours d’utilisation

s e l e c t n . name , s . e x t e n t s , s . r s s i z e , s . o p t s i z e ,s . hwmsize , s . x a c t s , s . s t a t u s

from v $ r o l l n a m e n , v $ r o l l s t a t swhere n . usn=s . usn

Quelles transactions utilisent quels rollback segments ?

s e l e c t s . username , t . x i d u s n , t . u b a f i l ,t . ubablk , t . u s e d u b l k

from v $ s e s s i o n s , v $ t r a n s a c t i o n twhere s . s a d d r=t . s e s a d d r

78/113

Page 81: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion automatique des Undo Tablespace (9i)

Objectifs :

Gestion moins contraignante par le DBA des segments deRollback(moins de probleme concernant leur taille)

Possibilite d’historiser les modifications sur plusieursgenerations de transactions

79/113

Page 82: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple de parametrage

Parametrage du temps de retention des donnees dans UndoTablespace :

Alter system set u n d o r e t e n t i o n=nbre s e c o n d e s /∗ d e f a u t 30 s e c o n d e s ∗/

Ora-1555 (snapshot too old)

Plus l’intervalle de retention choisi est grand, plus le tablespaceUNDO devra etre volumineux

80/113

Page 83: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’une base avec UNDO Tablespace (9i)

Create d a t a b a s e TestundoMAXINSTANCES 1 MAXLOGHISTORY 1M a x l o g f i l e s 5 maxlogmenbers 3m a x d a t a f i l e s 100

D a t a f i l e ’ I :\ o r a c l e \ o r a d a t a \ t e s t \ system01 . dbf ’s i z e 250M r e u s e

Autoextend on next 1024 k mas i ze u n l i m i t e de x t e n t management l o c a l

De fau l t Temporary T a b l e s p a c e TempT e m p f i l e ’ I : / o r a c l e / dbs / t e s t . dbf ’ s i z e 40M

r e u z e a u t o e x t e n d on next640 k m a x s i z e u n l i m i t e d

81/113

Page 84: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’une base avec UNDO Tablespace (9i)

Undo T a b l e s p a c e ’ UNDOTBS1 ’d a t a f i l e ’ i :\ o r a c l e \ o r a d a t a \ t e s t \ undotbs01 . dbf ’s i z e 200M r e u s e

a u t o e x t e n d on next 5120 k m a x s i z e u n l i m i t e d

Character s e t WE8MSWIN1252 NATIONAL cha r a c t e r s e t AL16UTF16

LOGFILE GROUP 1 ( ’ I :\ o r a c l e \ o r a d a t a \ t e s t \ redo01 . l o g ’ )s i z e 102400 k

GROUP 2 ( ’ I :\ o r a c l e \ o r a d a t a \ t e s t \ redo02 . l o g ’ )s i z e 102400 k

GROUP 3 ( ’ I :\ o r a c l e \ o r a d a t a \ t e s t \ redo03 . l o g ’ )s i z e 102400 k

;

82/113

Page 85: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion de Tablespace UNDO

Si le parametre undo_management =’AUTO’ et si aucunTablespace Undo n’est cree :Oracle cree un tablespace Undo SYS_UNDO

cat init.ora

.................

###########################################

# Base de donnees utilisant le tablespace Undo

# pour la gestion des mises a jour

###########################################

undo_management=AUTO

undo_retention=10800

undo_tablespace=TBSUNDO

......................

83/113

Page 86: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion de Tablespace UNDO

Implementation de tablespace Undo

1 Creation d’un tablespace UNDOExemple : TBSUNDO

2 Specifier le TBS Undo dans init.ora

UNDO_TABLESPACE=TBS_UNDO

undo_management=auto

84/113

Page 87: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Gestion de Tablespace UNDO

Parametrage du tablespace Undo de la base

CREATE DATABASE <SID > . . . UNDO TABLESPACE undotbsDATAFILE ’ g :\ o r a c l e \ o r a d a t a \ o r a f r a n c e \ undotbs . dbf ’s i z e 100M;

Creation du tablespace UNDO

CREATE UNDO TABLESPACE u n d o b i sDATAFILE ’ g :\ o r a c l e \ o r a d a t a \ o r a f r a n c e \ undotbs . dbf ’s i z e 100M;

Modification du tablespace UNDO utilise

ALTER SYSTEM SET UNDO TABLESPACE=u n d o b i s ;

85/113

Page 88: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Partitionnement des donnees

Objectifs :

Organiser les donnees pour ameliorer les performances

Acces aux donnees avec un niveau de granularite plus fin

86/113

Page 89: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Partitionnement des donnees

Avantages :

Creation de tables plus grandes que la taille permise (au dela de lalimite physique du disque ou de la partition SF)Possibilite de stocker les partitions dans des endroits differents

Suppression tres rapidement des donnees plus utiles ou non utiliseesPossibilite de destruction de la partition pour supprimer les donnees

Optimisation de requetes en accedant uniquement aux donneesnecessaires(sinon prise en compte/consultation de tous les enregistrements)

→ Partitionnement de tables : utilise aussi et generalement pourles BD reparties

87/113

Page 90: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Techniques de partitionnementFragmentation horizontale

Decoupage horizontal de la table

Repartition des enregistrements dans plusieurs partitions

Necessite de definir d’une condition de partitionnement(permet de determiner la partition dans laquelle sera stockel’enregistrement)

Recuperation de tous les enregistrements (regroupement descontenus des partitions) : union d’ensemble

88/113

Page 91: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Techniques de partitionnementFragmentation horizontale

89/113

Page 92: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Techniques de partitionnementFragmentation verticale

Decoupage vertical de la table

Repartition des colonnes dans plusieurs partitions

Possibilite de separer les donnees frequemment utilisees desdonnees accedees plus rarement

Recuperation de tous les enregistrements : jointure entre lespartitions

90/113

Page 93: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Techniques de partitionnementFragmentation verticale

91/113

Page 94: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Partitionnement : complements

Possibilite

d’utiliser d’un partitionnement vertical et horizontal sur unememe table

de definir des partitions de partitions

92/113

Page 95: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Schema PhysiqueDefinition d’une partition horizontale

c r ea te t ab l e PROFESSEURS(NUM PROF NUMBER( 4 ) ,

. . .c o n s t r a i n t PK PROFESSEURS pr imary key (NUM PROF) )

PARTITION BY RANGE (NUM PROF)(PARTITION P1 VALUES LESS THAN (1000)

TABLESPACE ECOLE PARIS ,PARTITION P2 VALUES LESS THAN (2000)

TABLESPACE ECOLE TUNIS) ;

s e l e c t ∗ from PROFESSEURS PARTITION ( P1 ) ;

s e l e c t ∗ from PROFESSEURS PARTITION ( P2 ) ;

93/113

Page 96: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Schema PhysiqueDefinition d’une partition horizontale

c r ea te t ab l e PROFESSEURS(NUM PROF NUMBER( 4 ) ,

. . .c o n s t r a i n t PK PROFESSEURS pr imary key (NUM PROF) )

PARTITION BY RANGE (DATE ENTREE)(

PARTITION p 200312 VALUES LESS THAN( t o d a t e ( ’ 2004−01−01 ’ , ’YYYY−MM−DD ’ ) )

PARTITION p 200406 VALUES LESS THAN( t o d a t e ( ’ 2004−07−01 ’ , ’YYYY−MM−DD ’ ) )

PARTITION p 200412 VALUES LESS THAN( t o d a t e ( ’ 2005−01−01 ’ , ’YYYY−MM−DD ’ ) )

) ;

94/113

Page 97: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Index

Objectifs :

Verification des contraintes d’unicite (cle, contrainteexplicite) : index crees automatiquement

Amelioration de l’acces aux donnees

Utilisation de la cle d’une tableUtilisation d’autres attributsNB: Possilite d’utilisation d’un ou plusieurs attributs (indexcomposite)

Positionnement d’un index sur des informations permettant dediminuer le cout des acces

Attention : la definition d’un index utilise de l’espace disque

95/113

Page 98: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’Index

CREATE [UNIQUE | BITMAP ] INDEX [<schema>.]<nom index>ON <nom de table>

(<nom de co lonne> [ASC |DESC][ ,<nom de co lonne> [ASC |DESC ] ]

, . . . )

CREATE INDEX IndNomPrenomProfON I n d i v i d u ( nomProf , prenomProf ) ;

96/113

Page 99: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Type d’Index

Arbres equilibres (B-arbre - par defaut) : toutes les branchesde l’arbre ont la meme longueur (reduction importante dunombre d’acces)

Bitmap : definition d’une chaıne de bits pour chaque valeur(si peu de valeurs sont possibles)

97/113

Page 100: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Index type B-arbre (B-tree)Exemple

Chaque cle est atteinte en au plus 3 acces

98/113

Page 101: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Index type BitmapExemple

Table contenant les identifiants de Professeur et les classes danslaquelles ils interviennent (valeurs de l’attribut : 1, 2, 3)

NumProf ... civilite ...

23 M12 Mme45 M76 Melle87 M19 Mme34 M56 M97 Melle22 Mme

civilite Valeur Index

M 001Mme 010Melle 100

Recherche des elements de civiliteMelle : operation ET binaire entre lavaleur de l’index et ’100’

99/113

Page 102: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Cas d’utilite d’un index

Attributs utilises dans des jointures

Attributs servant souvent pour les selections

Table de gros volume dont la majorite des requetesselectionne moins de 15% des lignes

index Bitmap : attribut avec peu de valeurs distinctes

index B-arbre : attribut avec beaucoup de valeurs distinctes

100/113

Page 103: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Cas ou un index est inutile

Beaucoup de modification (insertion/suppression) de tableNecessite de recreer l’index !

Table de petit volume

(sauf Oracle) Requete SQL dont la clause WHERE fait appel aune fonction

Utilisation de NULL dans la requete (WHERE ... is NULL)

101/113

Page 104: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Schema PhysiqueAjout d’index

c r ea te t ab l e COURS (NUM COURS NUMBER( 2 ) ,. . . c o n s t r a i n t PK COURS pr imary key (NUM COURS) , . . . ) ;

c r ea te t ab l e PROFESSEURS (NUM PROF NUMBER( 4 ) ,. . . c o n s t r a i n t PK PROFESSEURS pr imary key (NUM PROF) , . . . ) ;

c r ea te t ab l e CHARGE (NUM PRO F . . . , NUM COURS . . . ,c o n s t r a i n t PK CHARGE pr imary key (NUM COURS, NUM PROF)c o n s t r a i n t FK CHARGE COURS

f o r e i g n key (NUM COURS)r e f e r e n c e s COURS (NUM COURS) , . . . ) ;

CREATE INDEX NDX PROF ON PROFESSEURS (NUM PROF) ;CREATE INDEX NDX COURS . . .

CREATE BITMAP INDEXNDX PROF ON PROFESSEURS (NUM PROF) ;

CREATE INDEX NDX COURS . . .

102/113

Page 105: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Vues

Une vue est

une table virtuelle

le resultat d’une requete que l’on nomme

Objectifs :

Simplification des requetes complexes

Resolution des problemes de confidentialite

Garantie de l’integrite d’une base

103/113

Page 106: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Creation d’une vue

CREATE [OR REPLACE ] [ FORCE |NO FORCE ]VIEW <nom de vue> [< l i s t e a t t r i b u t s >)]

AS <c l a u s e se lect>[WITH CHECK OPTION [CONSTRAINT <nom de c o n t r a i n t e > ] ][WITH READ ONLY]

Exemple :

CREATE VIEW ProfMath ASSELECT ∗ FROM PROFESSEURS WHERE = ’ Mathematique ’ ;

104/113

Page 107: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Utilisation d’une vue

SELECT . . . FROM <nom de vue> WHERE . . .

Exemple :

SELECT ∗ FROM ProfMath where age > 30 ;

Utilisation du nom de la vue : dans toute requete ou le nom d’unetable peut etre sepcifie (SELECT, UPDATE, DELETE, INSERT, GRANT)

105/113

Page 108: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Suppression et renommage

Suppresion :

DROP VIEW <nom de vue>

supprime la vue mais pas les donnees

Renommage :

RENAME <a n c i e n nom de vue> TO<nouveau nom de vue>

Liste des vues : Consultation des tables systemeALL_CATALOG, USER_VIEWS et ALL_VIEWS

106/113

Page 109: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple de simplification de requetes complexes

CREATE VIEW F i l m C r i t i q u e ( NumFilm , T i t r e , NomReal ,NomCrit , Note ) AS

SELECT F . NumFilm , T i t r e , I 1 . NomIndiv idu , I 2 . NomIndiv idu ,Note

FROM Fi lm F , I n d i v i d u I 1 ; I n d i v i d u I2 , C r i t i q u e CWHERE C . NumFilm = F . NumFilm

AND C . NumCrit ique = I 2 . NumIndiv iduAND F . N u m R e a l i s a t e u r = I 1 . NumIndiv idu

Utilisation :

SELECT NumFilm , T i t r e , NomCrit , NoteFROM F i l m C r i t i q u eWHERE NomReal= ’ROHMER ’

107/113

Page 110: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Exemple de restriction d’acces

Confidentialite :

CREATE VIEW PROFVIEW ASSELECT NUM PROF, NOMP, SPECIALITE , SALAIRE ACTUE

FROM PROFESSEUR ;

Seul le createur de PROFESSEUR acceder a PROFESSEUR, et il donne

l’acces aux autres, qu’a la vue

Visibilite des informations uniquement entre 8h et 17h :

CREATE VIEW PROFESSEUROUVRABLeAS SELECT ∗ FROM PROFESSEURWHERE TO CHAR(SYSDATE, ’HH ’ ) BETWEEN ’ 08 ’ AND ’ 17 ’

108/113

Page 111: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Verification de contraintes d’integrite

CREATE VIEW C r i t i q u e S a n s A v i s ASSELECT ∗ FROM C r i t i q u eWHERE A p p r e c i a t i o n I S NULL

Puis mise a jour :

UPDATE C r i t i q u e S a n s A v i sSET A p p r e c i a t i o n= ’ Sans i n t e r e t ’WHERE Note = 0

109/113

Page 112: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Modification d’une vue

Mise a jour ou modification (UPDATE, DELETE, INSERT) possiblessi la ou les lignes concernees peuvent etre retrouvees.

La vue ne doit pas contenir :

d’operateurs ensemblistes (UNION, EXCEPT, INTERSECT)

d’operateurs DISTINCT

de fonction d’aggregation comme attribut

de clause GROUP BY, ORDER BY, CONNECT BY

de jointure

de sous requetes

Oracle doit etre capable de deduire les modifications des tables

110/113

Page 113: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Particularite d’OracleCondition de mise a jour

Jointures possible si la cle est preservee dans la table resultat

CREATE OR REPLACE VIEW VueFi lmsComplets ASSELECT numFilm , t i t r e ,

NumIndiv idu as NumReal i sateur ,n o m I n d i v i d u as NomRea l i sateur ,p r e n o m I n d i v i d u as P r e R e a l i s a t e u r

FROM Film , I n d i v i d uWHERE R e a l i s a t e u r = n u m i n d i v i d u

Mise a jour possible :

UPDATE VueFi lmsCompletsSET T i t r e = Upper ( T i t r e ) ;

111/113

Page 114: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Particularite d’OracleCondition de mise a jour

Conditions de mise a jour : cas particulier Oracle (2)Mises a jour impossible :

UPDATE VueFi lmsCompletsSET N o m R e a l i s a t e u r = ’ROHMER ’WHERE T i t r e = Upper ( ’ genou de C l a i r e ’ )

NumIndividu ne pourrait pas etre clef primaire de la vue

INSERT INTO VueFi lmsComplets( Numfilm , T i t r e , NomRea l i sateur , P r e R e a l )VALUES (200000 , Upper ( ’ Les Amours d ’ A s t r e e e t

de Ce ladon ’ ) ,’ROHMER ’ , ’ ERIC ’ )

Les attributs n’appartiennent pas a une seule table

112/113

Page 115: Administration de Bases de Données - Implantation d'une BD · Construire de vues mat erialis ees (des pr e-calculs, etc.) Partager les donn ees entre plusieurs utilisateurs Cr eer

Bilan

Differents � outils � a disposition qui definitissent l’implantationd’une BD :

Fichiers de la BD et parametres associes

Parametres des tablespace et des tables pour stocker lesdonnees

Definition et gestion des unites logiques contenant les donnees(bloc, extension, segment)

Partitionnement des donnees

Index et vue

113/113