Le carnet
Deck complet · TAD

Toutes les flashcards

70+ cartes pour réviser les 6 chapitres en un seul endroit. Clique pour retourner. Shift+F pour tout retourner.

6 chapitres ~ 70 cartes 30 min de drill

1. CM1 — SPARC · encre bleue

Créer un user

Syntaxe minimale.

tourne →
CREATE USER nom
IDENTIFIED BY pwd
DEFAULT TABLESPACE users;

3 rôles prédéfinis

Cite-les.

tourne →
CONNECT · RESOURCE · DBA

Vue logique vs matérialisée

Différence stockage.

tourne →
Logique : SQL ré-exécuté, pas de stockage.
Matérialisée : contenu dupliqué et rafraîchi.

3 modes refresh VM

ON DEMAND (défaut) · ON COMMIT · START WITH … NEXT

3 méthodes refresh VM

FAST (requiert VIEW LOG) · COMPLETE · FORCE (défaut)

Rôle d'application

Particularité d'activation.

Activé automatiquement à l'exécution d'un élément du package — unique moyen.

Privilège pour proc/fct

EXECUTE

2. CM2 — Tablespaces, indexes, clusters · encre verte

Hiérarchie stockage

Du plus gros au plus petit.

Base · Tablespace · Fichier · Segment · Extension · Bloc

5 segments

Données · Index · Temporaire · Amorçage · Rollback

Sélectivité

Formule.

Nb valeurs distinctes / Nb lignes

B-tree limitations

① Sélectivité doit être élevée · ② Ne gère pas NULL

Bitmap

3 conditions d'usage.

① Faible sélectivité
② Beaucoup de lignes
③ Très peu de MAJ

Index par fonction

Contrainte.

Fonction DETERMINISTIC obligatoire. SYSDATE non.

Cluster

Particularité.

Remplace le tablespace.
Requiert un index ON CLUSTER.

3. CM3 — Transactions · encre bordeaux

ACID

Atomicité · Cohérence · Isolation · Durabilité

Début transaction

Début de session OU fin de la précédente.

Lecture seule

Syntaxe.

SET TRANSACTION READ ONLY;

Savepoint

SAVEPOINT j1;
ROLLBACK TO SAVEPOINT j1;

Verrou ligne

Quand libéré ?

À la fin de la transaction qui l'a posé.

Oracle & deadlock

Détecte → annule une opération d'une transaction.

OLTP

Online Transaction Processing — temps réel.

Synonyme

CREATE PUBLIC SYNONYM n FOR o;

4. CM4 — BDDR · encre prune

3 fragmentations

H = sélection · V = projection · Mixte = V puis H

Recomposer H

UNION des fragments.

Recomposer V

JOINTURE sur la clé (présente dans chaque fragment).

DB link

CREATE DATABASE LINK n
CONNECT TO u
IDENTIFIED BY p
USING 'svc';

Accès distant

SELECT * FROM t@lien;

Réplication

CREATE MATERIALIZED VIEW v
REFRESH FAST
AS SELECTFROM T@lien;

2PC

2 phases.

Phase 1 = préparation (vote) · Phase 2 = décision (unanimité requise)

5. CM5 — Triggers & Séquences · encre sienne

Bloc PL/SQL

DECLARE
BEGIN
EXCEPTION
END;

%TYPE vs %ROWTYPE

%TYPE = type d'une colonne · %ROWTYPE = ligne complète

Trigger syntaxe

CREATE TRIGGER n
BEFORE|AFTER INSERT ON t
FOR EACH ROW
BEGINEND;

:new et :old

Uniquement avec FOR EACH ROW.

Garde-fou

RAISE_APPLICATION_ERROR(
   -20012, 'msg');

Vue non modifiable

Trigger INSTEAD OF

Séquence

CREATE SEQUENCE s
START WITH 1
INCREMENT BY 1;

NEXTVAL / CURRVAL

NEXTVAL = génère + incrémente · CURRVAL = lit en cours

Auto-incrément

BEFORE INSERT ON t
FOR EACH ROW
BEGIN
   :new.id := s.NEXTVAL;
END;

6. CM6 — Procédures, curseurs, exceptions · encre charbon

Procédure vs Fonction

Procédure : effet · Fonction : RETURN typé, utilisable dans SELECT

3 modes paramètres

IN · OUT · IN OUT

Types signature

SANS taille. NUMBER et pas NUMBER(6,2).

Curseur cycle

DECLARE → OPEN → FETCH (boucle) → CLOSE

Curseur FOR LOOP

FOR v IN cur LOOPEND LOOP;
-- auto open/close

4 attributs curseur

%FOUND
%NOTFOUND
%ISOPEN
%ROWCOUNT

3 exceptions classiques

DUP_VAL_ON_INDEX · NO_DATA_FOUND · TOO_MANY_ROWS

Exception perso

e EXCEPTION;
PRAGMA EXCEPTION_INIT(e, -20001);
RAISE e;

Transaction autonome

PRAGMA AUTONOMOUS_TRANSACTION;

Package — 2 parties

Déclaration (public) + Body (impl)