Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFélix Lamothe Modifié depuis plus de 9 années
1
Les vues, indexes, séquences
2
Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base. 2. La définition d'une vue est donnée par un SELECT qui indique les données de la base qui seront vues. 3. Seule la définition de la vue est enregistrée dans la base, et pas les données de la vue. On peut parler de table virtuelle. 4. Les utilisateurs peuvent alors voir une partie des données, soit la partie qui les intéresse. Les vues
3
Syntaxe de création CREATE VIEW vue [(col1, col2...)] AS SELECT... La spécification des noms des colonnes de la vue est facultative : par défaut, les colonnes de la vue ont pour nom les noms des colonnes résultat du SELECT. Si certaines colonnes résultat du SELECT sont des expressions sans nom, il faut alors obligatoirement spécifier les noms de colonnes de la vue. Vue constituant une restriction de la table EMP aux employés du département 10 : CREATE VIEW EMP10 AS SELECT * FROM EMP WHERE deptno = 10 Les vues
4
Syntaxe de suppression DROP VIEW vue; Supprime la vue « vue ». Utilisation des vues Consultation Une vue est consultée comme on consulte les tables, ex: SELECT ENAME,JOB FROM EMP10; Mise à jour Il est possible de mettre à jour (INSERT, UPDATE, DELETE) des vues sous certaines conditions: Les vues
5
Utilisation des vues Mise à jour Il est possible de mettre à jour (INSERT, UPDATE, DELETE) des vues sous certaines conditions: 1. Pour effectuer un DELETE, le SELECT qui définit la vue ne doit pas comporter de jointure, de GROUP BY, de DISTINCT, de fonction de groupe. 2. Pour un UPDATE, en plus des conditions précédentes, les colonnes modifiées doivent être des colonnes réelles de la table sous-jacente. 3. Pour un INSERT, en plus des conditions précédentes, toute colonne NOT NULL de la table sous-jacente doit être présente dans la vue. Les vues
6
Utilité d’un index Afficher les emplyoés dont le job est CLERK: SELECT * FROM emp WHERE job=‘CLERK’; A l’exécution, on doit visiter chaque ligne de EMP et évaluer la condition j ob=‘CLERK’. Le temps d’exécution dépendra du nombre de lignes de EMP ! Si les utilisateurs de notre base consultent fréquemment EMP avec le critère de recherche JOB, il nous convient de créer un index sur la table EMP sur la colonne JOB. Les index : utilité
7
Un tel index inclut une liste d’indices pour chaque valeur distincte de JOB. Les indices référencent les lignes de la table EMP. Maintenant, pour exécuter cette requête SELECT * FROM emp WHERE job=‘CLERK’; L’accès se fait directement à partir de l’index ! CLERK1,11,12,14 ANALYST8,13 MANAGER4,6,7 PRESIDENT9 SALESMAN2,3,5,10 Les index : concept de base
8
Création d’un index CREATE INDEX nom_ind ON tab(col1,col2,…); Cette requête crée un indexe sur la table tab sur les colonnes spécifiées entre parenthèses. Exemple; CREATE INDEX emp_job ON emp(job); Inconvénients d’un index 1.Consomme de l’espace disque 2.Nécessite une maintenance (mise à jour) à chaque fois où la table indexée est mise à jour. Les index : création
9
Utilité d’une séquence Dans certains cas, nous avons besoin de générer des nombres séquentiels et uniques, le plus souvent pour les insérer dans des clés primaires. Une séquence est un objet BD qui stocke une valeur qui s’incrémente à chaque fois où on la consulte. Création d’une séquence CREATE SEQUENCE nom_seq MINVALUE min_val MAXVALUE max_val START WITH val INCREMENT BY val_inc [CYCLE|NOCYCLE] Les séquences
10
Exemple: CREATE SEQUENCE emp_seq MINVALUE 100 MAXVALUE 1000 START WITH 500 INCREMENT BY 1 CYCLE; Pour utiliser une séquence, on utilise les pseudo-colonnes nom_seq.curval (renvoie la valeur courante de la séquence), et nom_seq.nextval (valeur suivante de la séquence). Pour insérer un nouvel employé, on peut utiliser la séquence emp_seq pour dériver une valeur séquentielle et unique de la clé primaire empno. Exemple: INSERT INTO emp(empno,ename,sal) VALUES(emp_seq.nextval,’PATRICK’,1200); Les séquences
11
[1] Gilles Roy. «Conception de bases de données avec UML». Presses de l’Université du Québec, 2009. [2] Christian Soutou. «UML2 pour les bases de données». Eyrolles, 2007. [3] Giovanni Camponovo. « Bases de Données Avancées». Université de Lausanne, HEC, 2006. [4] Georges Gardarin. « Bases de Données ». Eyrolles, 6è édition, 2005. Bibliographie
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.