Académique Documents
Professionnel Documents
Culture Documents
4- La Gestion de transactions
1
Les Vues (VIEW)
requete_sql [option]
La requête SQL peut s'appliquer à une table ou une vue (exception faite
de la vue que l'on est en train de définir, i.e. on ne peut pas créer une
définition récursive). La définition de la vue est stockée dans le
dictionnaire ce qui permet de traduire toute requête utilisant des vues en
une requête sur les tables.
3
Les Vues (VIEW)
• Soit les tables suivante de Schéma HR de oracle
EMPLOYEES(EMPLOYEE_ID , FIRST_NAME ,
LAST_NAME ,EMAIL,PHONE_NUMBER ,HIRE_DATE ,JOB_ID,SALARY,
COMMISSION_PCT, MANAGER_ID,DEPARTMENT_ID)
4
Les Vues (VIEW)
• Modification au travers d'une vue
Les instructions de mise à jour de la vue doivent être traduites en mise à jour sur les tables de
base. Ceci n'est pas possible dans le cas général. Pour cette MAJ Il faut que :
1- Chaque colonne de la vue doit correspondre à une colonne d'une table.
2- La vue ne doit pas contenir :
un opérateur ensembliste
un opérateur DISTINCT
une fonction de groupe, ou une fonction mathématique
une clause GROUP BY, ORDER BY
des jointures (avec quelques exceptions ....)
On peut interdire de modifier une vue, avec l'option WITH READ ONLY. (Sous Oracle, mais je n'ai
pas vu cette option dans la norme SQL).
5
Les Vues (VIEW)
La clause WITH CHECK OPTION
Cette option (définie dans la norme SQL) permet de vérifier que lorsqu'on modifie une
vue, les lignes concernées par la modification sont bien sélectionnées par la requête qui
définit la vue.
Sans cette option, voici le genre de problèmes que l'on peut avoir :
- Create view Nom_Emp as select * from EMPLOYEES where last_name like ‘ JOHN ’
Vue bien crée
6
Les Vues (VIEW)
L’index est utile pour accélérer l’exécution d’une requête SQL qui lit des données et ainsi
améliorer les performances d’une application utilisant une base de données
Création de l’index
De manière générale, un index est créé automatiquement lors de la création de la clé
primaire d'une table ;
de la même manière, il est d'usage d‘en créer un pour chaque clé étrangère afin d'améliorer
la vitesse lors des jointures.
Simplement le stockage des données d'une colonne de table qui sera souvent sollicitée
(surtout au niveau des recherches)
L'ensemble de plusieurs colonnes qui feront l'objet de requête pour les recherches.
Les Index
Création de l’index
Quand ne pas créer un index
-------------------------------
Quand créer un index
----------------------------- Attributs souvent modifiés (index à
Table de gros volume dont la majorité des si requêtes sur NULL car les NULL, non
interrogations sélectionne moins de 15% des stockés dans l’index. (ex : WHERE ... IS
lignes, NULL).
•Les options ASC\DESC permettent de définir un ordre de classement des valeurs présentes
dans la colonne
Feuilles
( Leaf Blocks) Cette Figure représente Une Structure de l’index L’index B-TREE
Les Index
35
35
Les Index
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
La Recherche
5
20
10
6
Les Index
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
L’Insertion
5 11
20
10
11
Les Index
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
5 7
20
10
7
Les Index
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
5 2
2
Les Index
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
20
20
22
30
25
22
Les Index
L’index Bitmap Select nom, prenom, job_id from employees
Créer l’index :
Ceci pour : Générer des clés uniques dans des tables avoir un compteur à
titre informatif, que l'on incrémente quand on veut etc...
Création D’une Séquence
L'ordre SQL minimal de création d'une séquence :
SQL> CREATE SEQUENCE ma_sequence;
La séquence a 2 Pseudo-colones
Lorsque la séquence atteint sa valeur maxi (resp. mini), on peut lui demander de s'arrêter
(Oracle retournera une erreur lors de la prochaine tentative d'utilisation de NEXTVAL), ou de
reprendre à sa valeur mini (resp. maxi) et reprendre son compte .
Cas N°1 :
Cas N°2 :
CREATE SEQUENCE ma_sequence_WC START WITH 1 MINVALUE -10 MAXVALUE
10 CYCLE;
Cette séquence (ma_sequence_WC ) comptera de 1 à 10, puis de -10 à 10, puis de -10 à 10... :
Synonyme privé : accessible uniquement à partir du schéma dans lequel il a été créé
Cohérance et Transaction :
Une transaction est une suite d’instructions qui réussissent ou qui échouent en totalité (pas
de réussite partielle).
Ou encore c’est ensemble des order SQL indivisible faisant passer la base de donnée d’un
etat cohérant à un autre en une seule etape
.
Transactions
On dit qu’une transaction est ACID :
Savepoint : point de contrôle, état de la base où l’on pourra revenir plus tard
Exemples de transactions
Commit;