Vous êtes sur la page 1sur 62

Base de données

CM4: Gestion des utilisateurs, Index, Vues...

Safa BETTOUMI ZOGHLAMI

November 20, 2022

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 1 / 62
1 Gestion des utilisateurs

2 Les rôles

3 Les profils

4 Les utilisateurs

5 Les Transactions

6 Les séquences

7 Les vues

8 Utilité des vues

9 Les vues sous Oracle

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 2 / 62
Gestion des utilisateurs

Création des utilisateurs

1. Nous allons voir comment créer et configurer un utilisateur ou un


compte avec lequel vous pourrez vous connecter et effectuer des
actions sur la base de données en fonction des droits qui vous serons
alloués.
2. Il est aussi bien de savoir que contrairement à d’autres bases de
données, quand vous créez un utilisateur sur une base de données
Oracle celui-ci ne dispose d’aucun droit. Voici les différentes étapes
qui seront nécessaire à la création d’un utilisateur Oracle.
• Choisir un nom d’utilisateur.
• Choisir une méthode d’identification
• Choisir les TABLESPACEs que l’utilisateur pourra utiliser.
• Définir les QUOTAS sur chaque TABLESPACE.
• Assigner les rôles et privilèges à l’utilisateur.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 3 / 62
Gestion des utilisateurs

Création des utilisateurs

1. Pour l’identification, il y a trois types d’authentifications:


• Authentification par la base de données.
• Authentification par le système d’exploitation.
• Authentification par le réseau.
2. Un tablespace Oracle est une structure logique qui regroupe des
fichiers du système d’exploitation. C’est dans les tablespaces que se
trouvent les différents objets d’une base de données : tables, Vues,...
Il y en a plusieurs par défaut :
• SYSTEM : les objets du système.
• TEMP : tables temporaires pour les tris.
• UNDO : depuis la 9i, utilisé pour les transactions (commit, rollback)
• USERS : c’est le tablespace où sont créés les objets des utilisateurs par
défaut.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 4 / 62
Gestion des utilisateurs

Contrôle d’accès

1. Sélectionner et répartir les droits des utilisateurs de la base de


données :
• Gestion des accès à la base de données.
• Limitation des ressources accessibles.
• Gestion des accès aux données de la base.
• Attribution des droits par défaut.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 5 / 62
Gestion des utilisateurs

Utilisateur (USER)

1. Tout objet a un utilisateur créateur qui possède tous les droits


(consultation, modification et suppression) sur cet objet.

2. Les autres utilisateurs n’ont aucun droit sur cet objet, à moins que le
créateur ne le leur accorde explicitement.

Un utilisateur est défint par:


1. Un nom d’utilisateur.
2. Un mot de passe.
3. Un ensemble de privilèges.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 6 / 62
Gestion des utilisateurs

Les privilèges

1. Droits attribués à un utilisateur d’exécuter un ensemble donné


d’ordres SQL ou d’accéder à certains objets de la base de données.
2. Un privilège peut être attribué soit directement à un utilisateur, soit à
un rôle.
• Les privilèges système.
• Les privilèges objet.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 7 / 62
Gestion des utilisateurs

Les privilèges

1. Privilèges objet : comment attribuer aux utilisateurs de la base le


droit de faire des actions sur des objets de la base. Par exemple :
• Autoriser un utilisateur à consulter des tables.
• Permettre à un utilisateur de faire des mises à jour, des références à
des tables.
2. Privilèges système : comment permettre à un utilisateur d’agir sur
les définitions des objets de la base. Par exemple :
• Autoriser un utilisateur à créer des tables, des vues, des index.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 8 / 62
Gestion des utilisateurs

Attribuer un privilège objet (1)

Syntaxe

Privilèges objet : DELETE, INSERT, REFERENCES, SELECT,


UPDATE,...
ALL : Tous les privilèges.
objet: table, vue,..
WITH GRANT OPTION : donne le droit de transmettre à d’autres...
Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,November
Vues... 20, 2022 9 / 62
Gestion des utilisateurs

Attribuer un privilège objet (2)

Pour INSERT, REFERENCES ou UPDATE, on peut limiter les attributs


concernés :
Syntaxe

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 10 / 62
Gestion des utilisateurs

Attribuer un privilège objet : Exemple

Jean a crée la table Individu et donne les droits en lecture à Paul:


Syntaxe

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 11 / 62
Gestion des utilisateurs

Supprimer un privilège objet

Syntaxe

CASCADE CONSTRAINTS :Cette clause n’est pertinente que si vous


révoquez le privilège REFERENCES ou ALL [PRIVILEGES]. Elle supprime
toutes les contraintes d’intégrité référentielle que le révoqué a définies à
l’aide du privilège REFERENCES, qui aurait pu être accordé explicitement
ou implicitement via ALL.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 12 / 62
Gestion des utilisateurs

Attribuer/Supprimer un privilège système


Syntaxe pour attribuer un privilège

Privileges système: CREATE TABLE, CREATE VIEW, ALTER TABLE,


DROP TABLE,..
WITH ADMIN OPTION: donne le droit de transmettre à d’autres..
Syntaxe pour supprimer un privilège

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 13 / 62
Les rôles

Un rôle

Définition:
Un rôle est un ensemble de privilèges système et/ou objet identifiés par un
nom. Un rôle peut être affecté :
• à un utilisateur pour lui attribuer des privilèges.
• à un rôle pour lui ajouter des privilèges.
Un rôle permet d’englober un ensemble cohérent de droits qui seront
donnés...

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 14 / 62
Les rôles

Les rôles prédéfinis sous Oracle

Voici la liste des privilèges des rôles principaux existant par défaut:
1. CONNECT:
• ALTER SESSION,
• CREATE CLUSTER,
• CREATE DATABASE LINK,
• CREATE SEQUENCE,
• CREATE SESSION,
• CREATE SYNONYM,
• CREATE TABLE,
• CREATE VIEW

2. RESOURCE:
• CREATE CLUSTER,
• CREATE INDEXTYPE,
• CREATE OPERATOR,
• CREATE PROCEDURE,
• CREATE SEQUENCE,
• CREATE TABLE,
• CREATE TRIGGER,
• CREATE TYPE

3. DBA:Tous les privilèges système avec WITH ADMIN OPTION.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 15 / 62
Les rôles

Créer un rôle

Syntaxe

IDENTIFIED permet de protéger le rôle par un mot de passe.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 16 / 62
Les rôles

Ajouter des privilèges ou un rôle à un rôle

Syntaxe

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 17 / 62
Les rôles

Attribuer un rôle à un utilisateur

Syntaxe

Exemple

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 18 / 62
Les rôles

Supprimer un rôle ou un rôle à un utilisateur


Supprimer un rôle

Supprimer un privilège système ou un rôle d’un rôle

Supprimer un privilège objet d’un rôle

Retirer un rôle à un utilisateur

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 19 / 62
Les profils

Les profils

Définition
Un profil est un ensemble de limites concernant l’utilisation des ressources
de la base de données.
Un profil peut être attribué à un utilisateur lors de la création de
l’utilisateur.

Syntaxe

Pour modifier : ALTER


Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 20 / 62
Les profils

Les profils

Voici la liste des limitations que vous pourrez mettre en place:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 21 / 62
Les utilisateurs

Les utilisateurs
Définition
Tout utilisateur a un nom et un mot de passe.
Il est propriétaire de tous les objets qu’il a crée.

Syntaxe

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 22 / 62
Les utilisateurs

Les utilisateurs

• USER: Login du futur utilisateur.


• IDENTIFIED BY mot de passe: Active l’authentification par la
base de données avec le mot de passe spécifié.
• IDENTIFIED EXTERNALLY: Active l’authentification par le
système d’exploitation.
• IDENTIFIED GLOBALLY As ’nom externe’: Active
l’authentification par un protocole d’accès à une base sur les
utilisateurs d’un réseau externe).
• DEFAULT TABLESPACE nom du tablespace: Permet d’attribuer
un TABLESPACE de données par défaut à l’utilisateur.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 23 / 62
Les utilisateurs

Les utilisateurs

• TEMPORARY TABLESPACE nom du tablespace: Permet


d’attribuer un TABLESPACE temporaire de données par défaut à
l’utilisateur.
• QUOTA options ON nom du tablespace: permet de définir le
quota d’espace attribué à l’utilisateur sur un TABLESPACE précis.
• PROFILE nom du profil: Permet d’attribuer un profil limitant les
ressources système de l’utilisateur.
• PASSWORD EXPIRE: Permet de faire expirer le mot de passe de
l’utilisateur pour que celui-ci le change lors de la première connexion.
• ACCOUNT LOCK/UNLOCK: Permet d’activer ou désactiver un
compte utilisateur.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 24 / 62
Les utilisateurs

En conclusion ...

Quand on crée un utilisateur...


• on lui donne un nom et un mot de passe (à changer éventuellement).
• on décide des ressources qu’il pourra utiliser:
• combien de sessions il pourra ouvrir.
• combien de temps CPU il pourra consommer,...
→ son profil
• on décide :
• ce qu’il pourra faire sur les objets existants.
• s’il pourra créer de nouveaux objets.
→ son rôle

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 25 / 62
Les utilisateurs

Les index

L’index est un objet de la BD qui appartient à une table et qui pointe sur
une ou plusieurs colonnes de cette table L’index sert à accélérer la
recherche dans une table en utilisant les colonnes indexées.
• Un index est crée:
• Soit automatiquement par le noyau (indexation implicite).
• Soit à la demande du développeur (indexation explicite).
• Indexation implicite:
• Est mise en oeuvre lorsqu’une clé primaire ou une contrainte d’unicité
est définie sur une table.
• Indexation Explicite:
• Pour accéder plus vite aux lignes d’une table à partir d’autres attributs
de la table : index crées manuellement (explicites).

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 26 / 62
Les utilisateurs

Creation d’index

• Indexation Explicite:
Syntaxe:

• UNIQUE: permet de créer un index qui ne supporte pas les doublons.


• BITMAP: crée un index ’chaı̂ne de bits’.
• ASC et DESC: présentent l’ordre croissant ou décroissant.
Exemple:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 27 / 62
Les utilisateurs

Types d’inex
• Les types d’index les plus courants sous Oracle sont les suivants:
• Arbres équilibrés(Balanced arbre:B-arbre) :
- Les index B-Tree sont le type d’index par défaut quand on ne précise
rien.
- Comme son nom l’indique l’index B-Tree est organisée en arbre.
- Toutes les branches de l’arbre ont la même longueur.
- Les index B-tree sont plus efficaces pour les données à cardinalité
élevée, c’est-à-dire les données avec de nombreuses valeurs possibles,
telles que CUSTOMER NAME ou PHONE NUMBER.
• Bitmap:
- Un index stocké sous forme de bitmap comporte une chaı̂ne de bits
pour chaque valeur de la colonne indéxée.
- Les avantages de l’utilisation d’index bitmap sont plus importants
pour les colonnes à faible cardinalité : c’est-à-dire les colonnes dans
lesquelles le nombre de valeurs distinctes est faible par rapport au
nombre de lignes dans la table. Si les valeurs d’une colonne sont
répétées plus d’une centaine de fois, alors la colonne est candidate pour
un index bitmap.
Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 28 / 62
Les utilisateurs

quand créer des index?

• Quand il faut créer des index?


• Attributs utilisés dans des jointures.
• Attributs servant souvent pour les sélections.
• Table de gros volumes.
• Quand il ne faut pas créer des index?
• Attributs souvent modifiées: vu le coût des opérations de mise à jour
des index.
• Attributs ne faisant pas objet d’interrogations fréquentes.
• Table de petit volume..

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 29 / 62
Les Transactions

Les transactions
• Une transaction est un ensemble d’ordres SQL qui constitue une unité
logique de traitement. Soit la totalité des instructions de l’unité est
exécutée avec succés soit aucune instruction n’est exécutée.
• Une transaction est constituée de trois primitives:

• L’instruction COMMIT permet de signaler que la tansaction s’est


bien terminée, les modifications qu’elle a exécutées sont rendues
visibles aux autres transactions et enregistrement physique.
• Si une transaction échoue, le ROLLBACK permet d’annuler toutes
les actions effectuées par cette transaction.
Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 30 / 62
Les Transactions

Exemple:transactions
• Alice souhaite verser à Bob 100 euros.
• Le SGBD doit effectuer deux opérations sur la table COMPTE:
• Retirer 100 euros du compte d’Alice.
• Ajouter 100 euros au compte de Bob.
BEGIN TRANSACTION
UPDATE COMPTE
SET SOLDE=SOLDE-100
WHERE NC=0;

UPDATE COMPTE
SET SOLDE=SOLDE+100
WHERE NC=1;
COMMIT TRANSACTION
ROLLBACK TRANSACTION

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 31 / 62
Les séquences

Les Séquences

• Une séquence est un objet, de la base comme les tables, les vues..
• Les séries (sequences) sont un excellent moyen d’avoir une base de
données qui génère automatiquement des clés primaires entières
uniques qui sont incrémentées ou décrémentées par serveur Oracle.
• Elle est créee par l’utilisateur.
• Stockée et gérée indépendamment d’une table.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 32 / 62
Les séquences

Les Séquences

• CYCLE indique que la séquence doit continuer de générer des valeurs même après avoir
atteint sa limite.
• NOCYCLE (par défaut) Est une option qui interdit à la série de produire des valeurs au
delà des maximum ou minimum définis. C’est la valeur par défaut.
• NOMAXVALUE Ceci a pour effet de définir la valeur maximale croissante à 1027 et la
valeur maximale décroissante à −1. Cette option est l’option par défaut.
• NOMINVALUE valeur minimal = 1 pour les séries croissantes et −1026 pour les séries
décroissantes.
• CACHE est une option qui permet à des numéros de série d’être pré-alloués et stockés en
mémoire pour un accès plus rapide. La valeur minimale est 2.
• Exp: CREATE SEQUENCE ma sequence CACHE 100;
Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 33 / 62
Les séquences

Utilisation d’une séquence

• Pour utiliser une séquence, on utilise les pseudo-colonnes:


• non seq.CURRVAL (renvoie la valeur courante de la séquence), et
• nom seq.NEXTVAL (incrémente la séquence et retourne la nouvelle
valeur).
• Lors de la première utilisation d’une séquence, il faut utiliser
NEXTVAL pour l’initialiser.
• ATTENTION :
• Ne jamais utiliser une séquence avec CYCLE pour générer des valeurs
de clé primaire.
• La valeur de la séquence peut être perdue :
• Lorsqu’un enregistrement est supprimé de la table,
• Lors de l’insertion d’un enregistrement, s’il y a violation d’une
contrainte d’intégrité (l’enregistrement n’a pas été inséré).

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 34 / 62
Les séquences

Utilisation d’une séquence

• Exemple

• Insertion d’un enregistrement dans une table en utilisant les


séquences:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 35 / 62
Les vues

Les vues: Définition

• Une vue est le résultat d’une requête à laquelle on a donné un nom:


• Elle est construite à partir du résultat d’un SELECT.
• C’est une table virtuelle.
• Ensemble de tuples qui n’existe pas physiquement.
• Calculable à l’exécution.
• La vue sera vue par l’utilisateur comme une table réelle.
• Peut être utilisée pour définir une autre vue.
• Le nom d’une vue peut être utilisé partout où on peut mettre le nom
d’une table:
• SELECT, UPDATE, DELETE, INSERT,GRANT

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 36 / 62
Les vues

Création d’une vue: Syntaxe Générale

• La spécification des noms de colonnes (attributs) de la vue est


facultative.
• Par défaut, les colonnes de la vue ont pour nom les noms des
colonnes résultat de SELECT.
• La clause WITH CHECK OPTION empêche que l’utilisateur ajoute
ou modifie dans une vue des lignes non conformes à la définition de la
vue.
• Exemple 1: Créer une vue des élèves ingénieurs du département
informatique.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 37 / 62
Les vues

Création d’une vue: Syntaxe Générale


• Exemple 2 : créer une vue des employés du département 10 (NUM,
NOM, FONCTION):
• Emp(NUM, NOM, FONCTION,NUMSUP, EMBAUCHE,COMM,
DEPTNO)

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 38 / 62
Les vues

Création d’une vue: Syntaxe Générale

• Exemple 3: Créer une vue à partir de plusieurs tables:


• Exemple: créer une vue comportant le nom des employés, le nom du
service dans lequel ils exercent leurs fonctions et le lieu du travail.
• Soit le schéma relationnel suivant:
• Emp ( Num, Nom, Fonction,NumSup, Embauche,Salaire, DeptNo)
• DEPT(DeptNo, Nom, Loc)

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 39 / 62
Les vues

Suppréssion et Renommage d’une vue

• Suppression d’une vue

• La suppression d’une vue n’entraine pas la suppression des données.


• Toutes les vues qui utilisent cette vue sont automatiquement détruites.
• Les vues figurent dans les tables systèmes ALL CATALOG,
USER VIEWS et ALL VIEWS
• USER: Décrit les objets qui appartiennent à l’utilisateur courant.
• ALL: Décrit les objets qui sont accessibles à l’utilisateur courant.
• DBA: Décrit tous les objets (ces vues ne sont accessibles que par
l’administrateur)
• Renommage d’une vue

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 40 / 62
Les vues

Interrogation

• Pour récupérer les données de vues, on procédera comme si l’on était


en face d’une table classique.

• En réalité, cette table est virtuelle. Elle est reconstruite à chaque


appel de la vue EMP par exécution du SELECT constituant la
définition de la vue.
• En effet, le contenu d’une vue recalculé à chaque utilisation de la vue
par SQL.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 41 / 62
Les vues

Interrogation
• Ceci est équivalent coté SGBD à rechercher dans la méta-base (le
dictionnaire de données) la définition de la vue EMPVU10 et à
transformer la requête initiale pour obtenir:
Exemple 5:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 42 / 62
Utilité des vues

Utilité des vues

Les vues permettent :


• Des accès simplifiés aux données:
• Effet macro: remplacer une requête compliquée nécessitant plusieurs
étapes par des requêtes plus simples.
• Masquer la complexité du schéma de la base.
• Une indépendance logique des données.
• La confidentialité des données.
• L’intégrité de la base.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 43 / 62
Utilité des vues

Assurer la confidentialité des données

• Grâce aux vues, Il est possible:


• D’émettre des restrictions d’accès en fonction de contexte.
• De restreindre les accès à certaines colonnes ou à certaines lignes.
• Exemple 6: créer une vue et octroyer les droits aux utilisateurs
concernés par cette vue ( un utilisateur peut visualiser leurs propre
infos).
Personnel(numpers, nom, salaire, prime mois, adresse, tel,
#depno)
• Chaque utilisateur peut visualiser un seul tuple de la relation: celui qui
le concerne.
• Donner les privilèges de lecture sur la vue à chaque utilisateur:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 44 / 62
Utilité des vues

Assurer la confidentialité des données

• Encore mieux donner les privilèges de modification sur certaines


colonnes de la vue (adresse, tel):
• Exemple 7: Employé (Nss,nom, prénom, adresse, tel salaire).

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 45 / 62
Utilité des vues

Assurer la confidentialité des données

• Restreindre l’accès à certaines colonnes personnelles.


• Exemple 8: donner au service comptable d’une entreprise la possibilité
de suivi des salaires de façon anonyme(sans savoir le nom) pour les
titulaires de grands salaires.
• L’utilisateur service comptable ne peut connaitre ni le nom, ni le
prénom ni l’adresse des gagnants plus de 10 000 euros.

• Accorder le privilège au service comptable.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 46 / 62
Utilité des vues

Assurer l’indépendance logique

• Les applications utilisant les tables de la base ne doivent pas être


modifiées si on change le schéma de la base.
• Grâce aux vues, les applications peuvent être insensibles au
changement du schéma logique de la base.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 47 / 62
Utilité des vues

Mise à jour au travers des vues

Pour qu’une vue soit modifiable, il faut respecter les conditions suivantes:
1 L’expression de table associée à la vue doit être un simple SELECT,
elle ne peut donc contenir les termes JOIN, INTERSECT, UNION
ou EXCEPT/MINUS.
2 La modification ne peut influcer qu’une seule table.
3 L’expression SELECT ne peut contenir la clause DISTINCT.
4 La liste des colonnes du SELECT ne peut comporter d’expression.
5 Si le SELECT contient une requête imbriquée, celle-ci ne peut faire
référence à la même table que la requête externe.
6 La requête SELECT ne peut contenir ni GROUP BY ni HAVING.
Si une de ces conditions n’est pas remplie, la vue n’est pas modifiable:
impossibilité d’utiliser les commandes INSERT INTO, DELETE ou
UPDATE.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 48 / 62
Les vues sous Oracle

Cas d’oracle

• Syntaxe de création:

• OR REPLACE: remplace la vue par la nouvelle définition même si


elle existait déjà (évite de détruire la vue avant la recréer).
• FORCE pour créer la vue sans vérifier si les sources qui l’alimentent
existent, ou si les privilèges adéquats (SELECT, INSERT, UPDATE,
ou DELETE) sur ces objets sont acquis par l’utilisateur qui crée la
vue. Par défaut c’est NO FORCE qui est utilisée.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 49 / 62
Les vues sous Oracle

Cas d’oracle

• WITH READ ONLY déclare la vue non modifiable par INSERT,


UPDATE, ou DELETE.
• WITH CHECK OPTION garantit que toute mise à jour de la vue
par INSERT ou UPDATE s’effectuera conformément à la définition de
la vue.
• CONSTRAINT nomConstrainte nomme la clause CHECK OPTION
sous la forme d’un nom de contrainte.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 50 / 62
Les vues sous Oracle

Vue sous Oracle

• Exemple 9:

• Toute tentative de modification du numéro du département dans une


ligne de la vue échouera, car elle transgresse la contrainte WITH
CHECK OPYTION

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 51 / 62
Les vues sous Oracle

Vue sous Oracle

• Exemple 10:

• Toute tentative d’exécution d’un ordre du LMD sur une ligne de la


vue génère l’erreur Oracle Server ORA-01752 → Refus des ordres du
LMD.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 52 / 62
Les vues sous Oracle

Vue sous Oracle

• Soit le schéma relationnel considéré dans les exemples suivants:


• Companie(Comp, nrue, rue, ville, nomComp)
• Pilote(breve, nomnbHvol, #compa)

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 53 / 62
Les vues sous Oracle

Vue sous Oracle

• Vues monotables
• Exemple 11: Soit la vue état-civil définie comme suit:

• Dites si les opérations suivantes sont autorisées?

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 54 / 62
Les vues sous Oracle

Vue sous Oracle

• Exemple 12
• Ajout d’un pilote à travers la vue (nom, nbHvol,compa)

→ Un tuple ne peut pas être inséré dans une vue qui ne contient pas la
clé de la table.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 55 / 62
Les vues sous Oracle

Vue sous Oracle

• Impact de l’option WITH CHECK OPTION


• Exemple 13: créer une vue des pilotes appartenant à la compagnie
aérienne ’AF’.

• Opérations de mise à jour: Insertion d’un nouveau pilote:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 56 / 62
Les vues sous Oracle

Vue sous Oracle

• Exemple 14:
• Opérations de mise à jour:
• Exemple de Modification de pilote:

• Impossible: violation de la définition de la vue.*


• Modification non effectuée grâce à WITH CHECK OPTION

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 57 / 62
Les vues sous Oracle

Vue sous Oracle


• Exemple 15: Vue des pilotes AF avec la ville et le nom de la
compagnie.

• Insertion à travers une vue multi-table


• Exemple 16: Vue 1: Pilotes multi AF(p.Brevet,p.nom,p.nbHvol,
c.ville,c.nomcomp)

Le tuple ne peut pas être insérer dans la table pilote.


L’opération d’insertion affecte deux tables ⇒ Impossible! ORA-01776:
cannot modify more than one base table through a join view.
Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 58 / 62
Les vues sous Oracle

Vue sous Oracle


• Modification et suppréssion à travers les vues multi-tables
Notion de tables protégée
• Une table est dite protégée par sa clé (Key preserved) si sa clé est
préservée dans la clause de jointure et se retrouve en tant que colonne
de la vue multitable (peut jouer le rôle de clé primaire de la vue).
• Exemple 17:

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 59 / 62
Les vues sous Oracle

Vue sous Oracle

• Exemple 18

• Cela ne veut pas dire que cette vue est modifiable de toute manière.
• Aucune insertion n’est permise dans la table compagnie.
• Seules les modifications des colonnes de la table Pilote sont autorisées.
• Les suppressions se répercuteront sur la table Pilote.
• La table préservée est la table Pilote, car la colonne brevet identifie
chaque enregistrement extrait de la vue alors que la colonne comp ne
le fait pas.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 60 / 62
Les vues sous Oracle

Vue sous Oracle

• Résumé condition des mises à jour des vues multi-tables sous


Oracle
• Pour qu’une vue multi-table soit modifiable, sa requête de définition
doit respecter les critères suivants:
• La mise à jour (INSERT,UPDATE, DELETE) n’affecte qu’une seule
table.
• Seules des enregistrements de la tables protégée peuvent être modifiés.
• Si la clause WITH CHECK OPTION est utilisée, aucune insertion n’est
possible(messsage d’erreur:ORA-01733).
• Les colonnes virtuelles ne sont pas autorisées ici.
• Seules les colonnes de la table protégée peuvent être modifiées.
• Seuls les enregistrements de la table protégée peuvent être supprimés.

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 61 / 62
Les vues sous Oracle

Vue sous Oracle

• La table système USER UPDATABLE COLUMNS


• Afin de savoir dans quelle mesure les colonnes d’une vue sont
modifiables(en insertion ou suppression), il faut interroger la vue.
• USER UPDATABLE COLUMNS du dictionnaire de données:c’est une
table système qui contient la liste des colonnes modifiables des tables
et des vues.
• Exemple 19

Safa BETTOUMI ZOGHLAMI Base de données CM4: Gestion des utilisateurs, Index,
November
Vues... 20, 2022 62 / 62

Vous aimerez peut-être aussi