Vous êtes sur la page 1sur 42

Ch3- Structures dans

une base de données


Naourez Mejri
naourez.mejri@gmail.com
Tablespace
Structure logique d’une BD

Tablespace 1Tablespace 2
BD
ORACLE Objets de schéma
Tablespace 3Tablespace n (Tables, index, vues, etc.)

 Un tablespace peut être :


 Actif (online) : ses données sont accessibles aux utilisateurs
 Désactivé (offline) : ses données ne sont plus accessibles aux utilisateurs
 Il est possible d’ajouter des tablespaces à une BD en cours
d’utilisation
 Un tablespace peut être supprimé même s’il contient des données

3
Utilité des tablespaces

 Bien ranger les objets par type (application, index, tables,


etc…)
 Permettre une administration plus fluide et plus souple, une
meilleure optimization et performance de la BD.

4
Structure logique d’une BD

• Une BD est définie avec au moins: BD Oracle


• Un tablespace SYSTEM utilisé pour les
fonctionnalités principales de la base
(ex : les tables du dictionnaire des
données)
SYSTEM SYSAUX tablespace tablespace
• Un tablespace SYSAUX système
auxiliaire
• Les composants d’Oracle
supplémentaires (ex : le référentiel
Entreprise Manager) l’utilisent comme
tablespace par défaut afin de réduire la
charge à SYSTEM.
Composants de Composants
• Il possède les mêmes attributs de bases
sécurité que le tablespace SYSTEM. supplémentaires
(ex : (ex : le référentiel
Dictionnaire Entreprise
• SYSTEM et SYSAUX ne peuvent de données) Manager)
jamais être désactivés. 5
Structure logique d’une BD

• On trouve aussi
• Tablespace UNDO
• réservé exclusivement à l'annulation des commandes DML (Data
Manipulate Language) (UPDATE, INSERT, etc...).
• ROLLBACK permet de revenir en arrière
• COMMIT supprime les lignes du tablespace UNDO

• Tablespace TEMPORAIRE
• spécifique aux opérations de tri pour lesquelles la
SORT_AREA_SIZE ne serait pas suffisamment grande.

6
Structure Physique d’une BD

Tablespace = Un ou plusieurs fichiers de données

Stockage des données

Point de vue Logique Point de vue Physique

Fichier de Fichier de Fichier de


données 1 données 2 données n

Tablespace USERS

7
Structure Physique d’une BD

8
Tablespace

Tablespace
Segment 1 Segment 2

Extent

Block

9
Principaux types de segments
 Segments de données
 Servent à stocker les données contenues dans les tables des utilisateurs et les tables du dictionnaire de
données

 Segments d’index
 Servent à stocker les informations d’indexations relatives aux tables
 Segments d’annulation
 utilisés pour la gestion des transactions
 Contiennent les copies des données avant modification
 permettant ainsi d’annuler la transaction en cas de besoin
 Segments temporaires
 utilisés pour allouer de l’espace du travail afin d’évaluer certaines requêtes.
 Segment de démarrage (bootstrap)
 Utilisé une seule fois lors de la création de la base de données
10
Opérations portant sur les tablespaces

• Création
• CREATE TABLESPACE ...
• Suppression
• DROP TABLESPACE...
• Modification
• ALTER TABLESPACE...

11
Création d’un tablespace

CREATE TABLESPACE nom_tablespace


DATAFILE ‘chemin d’accès du fichier’ SIZE
valeur [K|M]
[MINIMUM EXTENT valeur [K|M] ]
[MAXIMUM EXTENT valeur [K|M] ]
[DEFAULT STORAGE
( [INITIAL valeur [K|M]] [NEXT valeur
[K|M]] [MINEXTENTS nombre]
[MAXEXTENTS nombre]
[PCTINCREASE pourcentage]) ;

12
Création d’un tablespace

CREATE TABLESPACE nom_tablespace


DATAFILE ‘chemin d’accès du fichier’ SIZE valeur [K|M]
[MINIMUM EXTENT valeur [K|M] ]
[MAXIMUM EXTENT valeur [K|M] ]
[DEFAULT STORAGE Taille du fichier (tablespace)
( [INITIAL valeur [K|M]] [NEXT valeur [K|M]]
[MINEXTENTS nombre] [MAXEXTENTS nombre]
[PCTINCREASE pourcentage]) ;

Chemin d’accès du fichier dans lequel est stocké le tablespace


Ex : ‘F:\oracle\oradata\data_tbs.dbf’

13
Création d’un tablespace

CREATE TABLESPACE nom_tablespace


DATAFILE ‘chemin d’accès du fichier’ SIZE valeur [K|M]
[MINIMUM EXTENT valeur [K|M] ]
Taille minimale d’une extension
[MAXIMUM EXTENT valeur [K|M] ]

[DEFAULT STORAGE Taille maximale d’une extension


( [INITIAL valeur [K|M]] [NEXT valeur [K|M]]
[MINEXTENTS nombre] [MAXEXTENTS nombre]
[PCTINCREASE pourcentage]) ;

14
Création d’un tablespace

CREATE TABLESPACE nom_tablespace


DATAFILE ‘chemin d’accès du fichier’ SIZE valeur [K|M]
[MINIMUM EXTENT valeur [K|M] ]
[MAXIMUM EXTENT valeur [K|M] ]
[DEFAULT STORAGE
( [INITIAL valeur [K|M]]
[NEXT valeur [K|M]]
[MINEXTENTS nombre] Caractéristiques du stockage
[MAXEXTENTS nombre]
[PCTINCREASE pourcentage]) ;

INITIAL : Taille de la première extension allouée lors de la création d’un segment


NEXT : Taille de la deuxième extension du segment
MINEXTENTS : Nombre d’extensions allouées à la création du segment
MAXEXTENTS : Nombre maximal d’extensions pouvant être allouées au segment
PCTINCREASE : Pourcentage d’accroissement de la taille des extensions, appliqué
à partir de la troisième extension 18 15
Modification d’un tablespace

• Modification
• Agrandissement de l’espace de stockage
• Modification des caractéristiques de stockage
• Modification des caractéristiques des fichiersassociés
• Mise hors service d’un tablespace
• Mise en service d’un tablespace
• Tablespace en lecture seule

16
Agrandissement de l’espace de stockage

ALTER TABLESPACE nom_tablespace


ADD DATAFILE fichier [, fichier] ;

Il est possible d’agrandir le tablespace en ajoutant


de nouveaux fichiers

17
Modification des caractéristiques de stockage

ALTER TABLESPACE nom_tablespace


[DEFAULT STORAGE
( [INITIAL valeur [K|M]]
[NEXT valeur [K|M]]
[MINEXTENTS nombre]
[MAXEXTENTS nombre]
[PCTINCREASE pourcentage]) ;

18
Modification des caractéristiques des fichiers associés

ALTER TABLESPACE nom_tablespace


RENAME DATAFILE texte_existant [, texte_existant] …
TO texte_nouveau [, texte_nouveau] ;

• Avec texte_nouveau de la forme


‘chemin\nom_fichier’ SIZE taille.
• Ce qui permet de :
• Changer le nom du fichier
• Changer le fichier du disque
• Changer la taille du fichier
19
Mise hors service d’un tablespace

ALTER TABLESPACE nom_tablespace


OFFLINE [ NORMAL | IMMEDIATE ] ;

• OFFLINE NORMAL : le tablespace est mis hors service lorsque tous les
utilisateurs du tablespace ont fini leurs transactions en cours

• OFFLINE IMMEDIATE : le tablespace est mis hors service même si les


transactions en cours ne sont pas terminées

20
Mise en service d’un tablespace

ALTER TABLESPACE nom_tablespace


ONLINE ;

30 21
Tablespace en lecture seule

ALTER TABLESPACE nom_tablespace


READ ONLY ;

• Un tablespace peut être créé pour recevoir des tables de


type historique dont les données ne doivent jamais être
modifiées.

• Il est possible de protéger une telle structure en


attribuant au tablespace le mode lecture seule.

22
Suppression d’un tablespace

DROP TABLESPACE nom_tablespace


[INCLUDING CONTENT] ;
• L’option INCLUDING CONTENT doit être utilisée si le
tablespace contient des informations
• L’exécution de l’ordre DROP ne supprime pas les fichiers du
disque ; il faut ensuite détruire ces fichiers par les commandes
du système d’exploitation
• Avant de supprimer un tablespace, il faut le mettre hors
service
23
Dictionnaire de
données
Dictionnaire de données
 Appartient à l’utilisateur SYS et stocké dans le tablespace
SYSTEM
 Créé lors de la creation de la BD et mis à jour
automatiquement par Oracle lorsques des orders SQL DDL
son exécutés (CREATE,ALTER,DROP).
 Rôle: métadonnées sur les données
 Exemple: à la creation d’une table, des métadonnées sur
cette table sont stockées dans le dictionnaire de données
(noms des colonnes, longueur, type de données et autres
attributs, etc).
 La vue DICT Permet de trouver l’information sur toutes les
vues dans la base de données.

Select * from DICT 25


Vues d’un dictionnaire de données

26
Vues d’un dictionnaire de données
 4 formes
 USER_ [View]  exemple: USER_TABLES, USER_USERS
 Liste seulement les objets appartenant à l’utilisateur
(connecté) lui même
 ALL_[View]  exemple: ALL_TABLES, ALL_USERS
 Liste les objets auxquels l’Utilisateur à les privileges d’accès
 DBA_[View]  exemple: DBA_TABLES, DBA_USERS
 Liste tous les objets (sauf en cas de restriction par la clause
where)
 Réservé aux administrateurs de la BD
 V$ [View]  exemple: V$CACHE, V$BAKCUP
 Vues de performance dynamique
27
Vues d’un dictionnaire de données-exemples
SELECT table_name FROM user_tables;

 Remarque: il n’y a pas de colonnes owner dans les vues


USER_[View]

SELECT table_name
FROM all_tables
WHERE table_name LIKE ‘ETUD%';

SELECT table_name
FROM dba_tables
WHERE table_name LIKE ‘ETUD%' AND owner like ‘KARIM%';

28
Remarque

 Pour trouver des informations sur les vues et tables du


dictionnaire de données d'Oracle, on utilise la commande
DESCRIBE (ou DESC)
 Syntaxe: DESC[RIBE] table-Name | view-Name

 Exemple DESC DBA_TABLES;

29
Objets Oracle
Schéma

 Un schéma est une collection d’objets.


 Les objets du schéma sont des structures logiques qui font
directement référence aux données de la base de données.
 Un schéma correspond au nom du propriétaire de l’objet

31
Types d’objets

 Une base de données Oracle peut contenir de multiples


objets/structures de données.
 Table
 Vue
 index
 Séquence
 Synonyme
 Cluster
 Programmes stockés (procedures et fonctions)
 Packages
 Triggers
32
Tables

 Contiennent les données utilisateur.


 Composées de colonnes.
 Description des tables disponible dans DBA_TABLES ou
USER_TABLES ou ALL_TABLES.
 Remarque: Si une table n’appartient pas à l’utilisateur connecté, le
nom du propriétaire doit précéder le nom de la table.
 Exemple: userA et userB possèdent les deux une table EMPLOYEES

33
Tables
 Création et mise à jour

 Syntaxe  Exemple

CREATE TABLE [nom_schema.]nom_table CREATE TABLE employes (


(nom_colonne datatype [DEFAULT expr] emp_id NUMBER(6) NOT NULL,
[column_constraint], ... [table_constraint][,...]); Nom VARCHAR2(20),

CONSTRAINT emp_PK PRIMARY KEY (emp_id)
);

 Suppression
DROP TABLE nom_table; DROP TABLE employes;

34
Tables
 Modifcation
 Ajout colonne
 Syntaxe  Exemple

ALTER TABLE nom_table ALTER TABLE clients


ADD nom_colonne datatype; ADD Email varchar(255);

 Suppression colonne

ALTER TABLE nom_table ALTER TABLE clients


DROP COLUMN nom_colonne datatype; DROP COLUMN Email;

 Modification colonne

ALTER TABLE Personne


ALTER TABLE nom_table
MODIFY DateNaissance year;
MODIFY nom_colonne datatype;
35
Vues

 Une vue est une fenêtre sur une table.


 Elle ne contient pas de données.
 Stockée dans le dictionnaire de données (DD) sous forme de
'select nommé’.
 La mise à jour d'une vue est en fait la mise à jour de la table
'A TRAVERS' la vue.
 Il n'y a pas de duplication de données.
 Une vue peut porter sur plusieurs tables
 Sont décrites dans la vue DBA_VIEWS du dictionnaire de
données

36
Vues
 Création et mise à jour
 Syntaxe  Exemple
CREATE [OR REPLACE] VIEW nom_vue CREATE VIEW empvu80
AS requête d’interrogation select AS
SELECT employee_id, last_name, salary
FROM employees WHERE department_id = 80;

 Suppression
DROP VIEW empvu80;
DROP VIEW nom_vue;

 Interrogation

SELECT nom_attributs FROM nom_vue; SELECT * FROM empvu80;

37
Indexes

 Accélérateurs utilisés pour améliorer les performances des


requêtes de recherche
 Externes aux tables.
 Peuvent être créés / détruits à tout moment. Se remplissent
dynamiquement au fur et à mesure des mises à jour de la
table indexée.
 Syntaxe  Exemple

Création CREATE INDEX index ON table (column[, column]...); CREATE INDEX emp_last_name_idx ON
employees(last_name);
Suppression DROP INDEX index; DROP INDEX emp_last_name_idx ;

38
Synonymes
 Donne un nom alternatif aux objets
 Création
 Syntaxe  Exemple
CREATE [PUBLIC] SYNONYM nom_synonyme CREATE PUBLIC SYNONYM dept FOR alice.departments;
FOR nom_objet;
SELECT * FROM dept;

 PUBLIC crée un synonyme accessible à tous les utilisateurs


 Un synonyme privé ne peut pas porter le même nom qu’un objet déjà
présent dans le schéma.

 Suppression
 Syntaxe  Exemple

DROP SYNONYM nom_synonyme ; DROP SYNONYM dept;


39
Séquence

 Compteur programmable stocké en mémoire par Oracle et


utilisable de manière partagé.
 Il est en général utilisé pour fournir des no de clé
d'enregistrements.
 Syntaxe  Exemple
CREATE SEQUENCE nom_seq START WITH no_debut CREATE SEQUENCE seq_no_cli
INCREMENT BY SAUT START WITH 1000 INCREMENT BY 100;
MAXVALUE valeur_max CYCLE|NOCYCLE
CACHE|NOCACHE INSERT INTO clients (no, nom) VALUES
(seq_no_cli.nextval, 'Martin');

40
Cluster

 Accélérateurs de performance
 Des segments spéciaux qui contiennent plusieurs tables
fusionnées, suivant en général une colonne de jointure.
 On peut les voir comme des jointures physiques.
 Remarque : un certain nombre de tables du dictionnaire sont
organisées en cluster.
 Sont décrits dans la vue DBA_CLUSTERS.

41
Autres objets

 Programmes stockés
 programmes codés en PL/SQL, nommés, et stockés dans un schéma
dee la base.
 Types: procedures et fonctions
 Package
 ensemble encapsulé de procédures et ou de fonctions

 Trigger
 morceau de code PL/SQL, stocké dans la base,
 déclenché lors de l'occurrence d'un événement particulier.
 permet de synchroniser des opérations entre plusieurs tables.
 La plupart du temps les triggers sont déclenchés par la modification du
contenu d'une table
42

Vous aimerez peut-être aussi