PL SQL
1 – Un Bloc PL SQL :
2 – Les procédures et les fonctions et les exceptions :
3 – Les curseurs :
Un curseur est un groupe d’enregistrements résultat de l’interrogation d’une base de données.
L’intérêt d’utiliser des curseurs est de pouvoir faire des traitements ligne par ligne chose qui n’est
pas possible avec une requête SQL simple.
4 – Les Triggers :
Un trigger (ou déclencheur) est un objet de base de données associé à une table. Dès lors que
certains événements initialement prévus se déroulent, il exécute un ensemble d’instructions.
5 - Les vues et les index :
Une vue est une table virtuelle dont le contenu est défini par une requête SELECT. Comme une table réelle, la
vue possède des colonnes nommées et des lignes de données, mais elle n’est pas stockée dans la base de
données, et n’a pas d’existence propre, indépendamment des tables.
Les index permettent d’optimiser le fonctionnement d’une base de données : ils accélèrent les opérations
SELECT, INSERT, UPDATE et DELETE en fournissant un accès direct sur certaines colonnes ou ensembles
de colonnes.
Un index ordonné (option CLUSTERED) fournit un accès direct aux lignes physiques de la table, sur le
disque. La création d’un index ordonné modifie l'ordre physique des lignes : il faut donc le créer avant les
index non ordonnés, et il ne peut y avoir qu’un index ordonné par table (souvent sur la clé primaire).
Un index non ordonné (sans l’option CLUSTERED) est un index qui s’appuie sur l'ordre logique de la table,
en mémoire. Une table peut contenir plusieurs index non ordonnés. Employez un index non ordonné pour : o
Des colonnes qui contiennent un nombre élevé de valeurs uniques ; o Des requêtes qui renvoient de petits
ensembles de résultats
BDD
1 – Les Liens :
Un database link est un chemin de communication unidirectionnel d’une base de données à
une autre.
CREATE [PUBLIC|PRIVATE] DATABASE LINK nom_lien
CONNECT TO user IDENTIFIED BY mdp
USING ‘connect_stringBD’;
Exemple :
CREATE DATABASE LINK usersite1_to_scott
connect to scott IDENTIFIED BY scott
USING ‘localhost:1521:orcl’;
SELECT * FROM emp@usersite1_to_scott;
2 - Les Fragmentations:
COPY FROM sépécification_base1
TO sépécification_base2
{REPLACE | APPEND | CREATE | INSERT}
nom_fragment [(liste_colonnes)] USING SELECT …
Fragmentation horizontale
COPY FROM user1/mdp1@connectStringBase1
TO user2/mdp2@connectStringBase2
WHERE ville = “paris”;
Fragmentation verticale :
COPY FROM user1/user1@alias_base1
TO user1/user1@alias_base2
CREATE produit1(np,design, PrixUnit)
USING SELECT np, design, PrixUnit FROM Produit;
3 - Les Synonymes :
Un synonyme est un autre nom donné à une table, une vue, une séquence, une vue
matérialisée ... Il permet d’identifier de façon unique dans un système distribué les objets
qu’ils nomment.
Création d’un synonyme :
CREATE SYNONYM CLIENT2 FOR CLIENT2@lien_Base2;
La requête suivante :
SELECT * FROM CLIENT2@lien_Base2;
est équivalente à :
SELECT * FROM CLIENT2;