0% ont trouvé ce document utile (0 vote)
4 vues4 pages

ORACLE

Le document présente les séquences sous Oracle, qui sont des objets de base de données permettant de générer des nombres uniques et ordonnés, souvent utilisés pour les clés primaires. Il explique également la gestion des transactions, en détaillant les concepts d'atomicité, de cohérence, d'isolation et de durabilité, ainsi que les commandes associées comme COMMIT et ROLLBACK. Enfin, il aborde les transactions explicites et implicites, soulignant l'importance de la gestion des modifications dans la base de données.

Transféré par

kougblenoumodeste69
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues4 pages

ORACLE

Le document présente les séquences sous Oracle, qui sont des objets de base de données permettant de générer des nombres uniques et ordonnés, souvent utilisés pour les clés primaires. Il explique également la gestion des transactions, en détaillant les concepts d'atomicité, de cohérence, d'isolation et de durabilité, ainsi que les commandes associées comme COMMIT et ROLLBACK. Enfin, il aborde les transactions explicites et implicites, soulignant l'importance de la gestion des modifications dans la base de données.

Transféré par

kougblenoumodeste69
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

HECM

SIL3
Dr. Amadou Tidjani SANDA MAHAMA

ORACLE (suite du cours)

I. Séquences sous Oracle


Définition

Une séquence est un objet de base de données qui permet de générer des nombres
uniques et ordonnés.

• Souvent utilisé pour créer des clés primaires ou des identifiants uniques.

• Les séquences ne sont pas liées à une table, elles sont indépendantes.

Caractéristiques d’une séquence

Lors de la création d’une séquence, tu peux définir :

Paramètre Description

START WITH Valeur initiale de la séquence (par défaut 1).

INCREMENT BY Pas de l’incrément (par défaut 1, peut être négatif pour


décrément).

MAXVALUE Valeur maximale (optionnelle).

MINVALUE Valeur minimale (optionnelle).

CYCLE / Détermine si la séquence recommence à MINVALUE après


NOCYCLE MAXVALUE.

CACHE / Nombre de valeurs pré-allouées en mémoire pour améliorer la


NOCACHE performance.

ORDER / Garantit que les valeurs sont générées dans l’ordre pour RAC.
NOORDER

Création d’une séquence

Exemple 1 : séquence simple

CREATE SEQUENCE seq_client

START WITH 1

INCREMENT BY 1

NOCACHE

NOCYCLE;

1
HECM
SIL3
Dr. Amadou Tidjani SANDA MAHAMA

Exemple 2 : séquence avec cache et cycle

CREATE SEQUENCE seq_commande

START WITH 1000

INCREMENT BY 5

MAXVALUE 10000

CYCLE

CACHE 20;

Explications :

Après 10000, la séquence recommencera à 1000 (CYCLE). 20 valeurs seront stockées


en mémoire pour accélérer les accès.

Utilisation d’une séquence

Récupérer la prochaine valeur

• NEXTVAL : génère et retourne la prochaine valeur

SELECT seq_client.NEXTVAL FROM dual;

• CURRVAL : retourne la dernière valeur générée dans la session en cours

SELECT seq_client.CURRVAL FROM dual;

Insérer une valeur unique dans la table client

INSERT INTO client (id_client, nom, prenom)

VALUES (seq_client.NEXTVAL, 'Dupont', 'Marie');

L’id généré est garanti unique, même en cas d’insertion simultanée par plusieurs
utilisateurs.

Modification d’une séquence existante

• Pour changer certaines propriétés :

ALTER SEQUENCE seq_client

INCREMENT BY 10;

• Pour supprimer une séquence :

DROP SEQUENCE seq_client;

2
HECM
SIL3
Dr. Amadou Tidjani SANDA MAHAMA

Cas d’utilisation

1. Clés primaires auto-incrémentées

CREATE TABLE employe (

id_employe NUMBER PRIMARY KEY,

nom VARCHAR2(50),

prenom VARCHAR2(50)

);

INSERT INTO employe VALUES (seq_employe.NEXTVAL, 'Martin', 'Paul');

II. Gestion des transactions sous Oracle


Définition d’une transaction

Une transaction est un ensemble d’opérations SQL qui doit être exécuté de manière
atomique : soit toutes les opérations réussissent, soit aucune n’est appliquée.

• Objectif : assurer la cohérence de la base de données.

• Oracle utilise le mécanisme ACID pour les transactions.

Propriété Description

A – Atomicité La transaction est indivisible : tout ou rien.

C– La base passe d’un état valide à un autre état valide.


Cohérence

I – Isolation Les transactions concurrentes ne se perturbent pas.

D – Durabilité Une fois validée, la transaction est persistante même en cas de


panne.

Commandes de gestion des transactions

2.1 Validation d’une transaction

• COMMIT : applique définitivement toutes les modifications réalisées depuis le


début de la transaction.

3
HECM
SIL3
Dr. Amadou Tidjani SANDA MAHAMA

UPDATE compte SET solde = solde - 100 WHERE id_compte = 1;

UPDATE compte SET solde = solde + 100 WHERE id_compte = 2;

COMMIT;

• Après COMMIT, les changements sont visibles par toutes les sessions.

2.2 Annulation d’une transaction

• ROLLBACK : annule toutes les modifications depuis le début de la transaction ou


depuis le dernier SAVEPOINT.

UPDATE compte SET solde = solde - 100 WHERE id_compte = 1;

ROLLBACK; -- annule l’opération

2.3 Points de sauvegarde intermédiaires

• SAVEPOINT : permet de créer un point intermédiaire dans la transaction.

UPDATE compte SET solde = solde - 100 WHERE id_compte = 1;

SAVEPOINT avant_credit;

UPDATE compte SET solde = solde + 100 WHERE id_compte = 2;

ROLLBACK TO avant_credit; -- annule seulement la seconde modification

Transactions implicites et explicites

• Transactions explicites : Tu contrôles toi-même le COMMIT ou ROLLBACK.

• Transactions implicites : Certaines commandes SQL dans Oracle effectuent un


COMMIT automatique, par exemple :

o DDL (CREATE TABLE, DROP TABLE, ALTER TABLE)

o GRANT / REVOKE

• Les transactions DML (INSERT, UPDATE, DELETE) ne sont pas validées


automatiquement ; tu dois utiliser COMMIT ou ROLLBACK.

Vous aimerez peut-être aussi