AUcun de ces objet n’est un ’segment’. C’est à dire qu’il ne consomment pas de blocs dans les fichiers de la base. Ils sont simplement définis dans le dictionnaire de données.
Les vues
Une vue est une fenetre sur une table. Elle ne contient pas de données. Stockée dans le DD sous forme de ’select nommé’.
La mise à jour d’une vue est en fait la mise à jour de la table ‘A TRAVERS’ la vue. Il n’y a pas de duplication de données.
Une vue peut porter sur plusieurs tables, éventuellemnts distantes !
Les vues sont décrites dans la vue dba_views du dictionnaire de données.
create view emp_10 as select empno numero, ename nom
where deptno = 10
l’une des colonnes de dba_views est de type LONG. Si on veut visualiser la totalité des informatiions sous SQL*Plus, utiliser la commande ‘SET LONG 2000′ par exemple pour ne pas tronquer l’affichage !
il existe des vues paramétrées qui peuvent rendrent de grands services pour restreindre certains type d’accès
Si on veut restreindre l’accès à certaines périodes horaires par exemple :
CREATE VIEW emp_ouvrable
AS SELECT * FROM EMP
WHERE TO_CHAR(SYSDATE,’HH’) BETWEEN ‘08′ AND ‘17′
en dehors de la période 8H - 17H le predicat est faux et la vue ne renvoie aucune données !
Si on veut restreindre l’accès a certains postes de travail :
CREATE VIEW EMP_RESTREINTE
AS SELECT * FROM EMP
WHERE USERENV(’TERMINAL’) IN (’PC1′, ‘PC3′)
seuls les postes clients dont l’identification réseau est ‘PC1′ ou ‘PC3′ seront autorisés !
Les Synonymes
Un synonyme est un nom logique (un alias) référencant un objet d’un schema.
Un synonyme peut être privé (visible seulement dans le schéma du propriétaire) ou public (visibles par tous).
Syntaxe :
SQL> create synonym nom_syn for [propr.]objet
SQL> create public synonym nom_syn for [propr.]objet
rem : il faut posseder le privilège ‘CREATE PUBLIC SYNONYM’ ou être DBA pour créer ou détruire un synonyme public.
Un synonyme public doit être unique dans la base.
Le fait que le synonyme soit public ne veut pas dire que l’objet pointé est accessible par tout le monde, il faut en plus donner des droits si nécessaire!
exemple :
SQL> CONNECT SCOTT/TIGER
SQL> GRANT SELECT ON EMP TO DUPONT
SQL> CONNECT DUPONT/JEAN
SQL> CREATE SYNONYM EMP FOR SCOTT.EMP
SQL> SELECT * FROM EMP…
Les liens de base de données (database links)
Les database links sont des référence à des comptes utilisateurs distants.
Ceci permet au sein d’une même session SQL d’accéder à différents objets de bases réparties sur le réseau. On peut par exemple définir un database link compta_bordeaux qui référence le schéma compta qui se trouve sur la base distante localisée sur le serveur de bordeaux. Ensuite on pourra accéder à une table ou vue distante via ce database link. Une description des database links se trouve dans la vue USER_DB_LINKS du dictionnaire.
exemple
SQL> CREATE DATABASE LINK compta_bordeaux CONNECT TO compta IDENTIFIED BY xyz USING ‘la_base_de_bordeaux’ ;
SQL> SELECT * FROM balance@compta_bordeaux ;
– on peut le rendre transparent grace aux synonymes
SQL> CREATE SYNONYM balance FOR balance@compta_bordeaux ;
SQL> SELECT * FROM balance ;
Les séquences
Une séquence est un compteur programmable stocké en mémoire par Oracle et utilisable de manière partagé.
Il est en général utilisé pour fournir des no de clé d’enregistrements.
Pour créer une séquence :
SQL> create sequence nom_seq start with no_debut
increment by saut
maxvalue valeur_max cycle|nocycle cache|nocache
Pour utiliser une séquence :
la valeur courante de la séquence est donnée par nom_seq.currval et la suivante par nom_seq.nextval.
Exemple
SQL> create sequence seq_no_cli
start with 1000 increment by 100;
SQL> insert into clients (no, nom) values (seq_no_cli.nextval, ‘Martin’);
pour vérifier rapidement la valeur à suivre : select seq_no_cli.nexval from dual
