![]() ![]() |
La section suivante définit les concepts importants relatifs aux bases de données ci-dessous :
Un schéma de base de données est un ensemble d'objets de base de données tels que des tables, des vues, des procédures stockées, etc., qui sont la propriété d'utilisateurs de base de données particuliers. La propriété est souvent exprimée par une notation à points du type DIRXML.EMP, où DIRXML est le nom de l'utilisateur de base de données qui est propriétaire de la table EMP. Tous les objets de base de données qui appartiennent à DIRXML constituent le schéma de base de données DIRXML.
Les instructions en langage DML (Data Manipulation Language - Langage de manipulation de données) sont des éléments hautement normalisés qui permettent de manipuler des données. Elles sont fondamentalement les mêmes quelle que soit la base de données utilisée.
L'exemple suivant contient plusieurs instructions DML :
SELECT* FROM EMP;
INSERT INTO EMP(EMPNO,LNAME)VALUES(1,'Last Name');
UPDATE EMP SETFNAME='First Name' WHERE EMPNO=1;
REMARQUE : Les exemples utilisés dans l'ensemble du présent guide d'implémentation s'appliquent à la base de données Oracle.
Les instructions en langage DDL (Data Definition Language - Langage de définition de données) permettent de manipuler des objets de base de données comme des tables, des index, des comptes utilisateur, etc. Les instructions DDL sont propriétaires et diffèrent largement selon les bases de données.
L'exemple suivant contient une instruction DDL :
CREATE TABLE EMP
(
EMPNO NUBMER(8),
FNAME VARCHAR2 (32),
LNAME VARCHAR2 (32)
);
CREATE USER DIRXML IDENTIFIED BY NOVELL;
Une transaction est une opération de base de données atomique qui se compose d'une ou de plusieurs instructions. Lorsqu'une transaction est terminée, toutes les instructions qu'elle contient sont validées. Lorsqu'une transaction est interrompue ou que l'une de ses instructions est erronée, elle est restaurée à son état initial. Dans ce cas, la base de données est rétablie à son état antérieur, celui qu'elle avait avant le début de la transaction.
Les transactions sont soit manuelles (définies par l'utilisateur), soit automatiques. Les transactions manuelles peuvent se composer d'une ou de plusieurs instructions et doivent être explicitement validées. Les transactions automatiques ne comportent qu'une seule instruction et sont implicitement validées après l'exécution de cette instruction.
Les transactions manuelles contiennent généralement plusieurs instructions. En principe, il est impossible de combiner des instructions DDL et des instructions DML dans une transaction manuelle. L'exemple suivant illustre une transaction manuelle :
INSERT INTO EMP(EMPNO,LNAME) VALUES(1,'LAST NAME');
UPDATE EMP SET FNAME='First Name' WHERE EMPNO=1;
COMMIT;
Les transactions automatiques se composent d'une seule instruction. Elles sont souvent appelées instructions « auto-validées » car les modifications sont implicitement validées après chaque instruction. Lorsqu'une instruction est exécutée automatiquement, elle est indépendante de toute autre instruction. L'exemple suivant illustre une transaction automatique :
INSERT INTO EMP(EMPNO,LNAME) VALUES(1,'LAST NAME');
Un déclencheur de base de données est une logique programmable associée à une table qui se déclenche ou s'exécute dans certaines conditions. Les déclencheurs servent souvent à créer des effets secondaires dans une base de données. Voici un exemple de déclencheur de base de données sur une table EMP hypothétique.
TABLE EMP
(
EMPNO NUMBER(8)
FNAME VARCHAR(32)
LNAME VARCHAR(32)
);
CREATE TRIGGER EMP_INSERT
AFTER INSERT ON EMP
FOR EACH ROW
BEGIN
UPDATE EMP SET FNAME = 'First Name' WHERE EMPNO =
:new.EMPNO;
END;
Lorsqu'une instruction est exécutée sur une table qui comporte des déclencheurs, un déclencheur se déclenche si l'instruction répond aux conditions qu'il indique. Par exemple, dans la table ci-dessus, si l'instruction d'insertion suivante était exécutée,
INSERT INTO EMP(EMPNO,LNAME)VALUES(1,'Last Name')
le déclencheur EMP_INSERT se déclencherait après l'exécution de l'instruction d'insertion et l'instruction de mise à jour suivante serait également exécutée :
UPDATE EMP SET FNAME = 'First Name' WHERE EMPNO = 1
Un déclencheur peut généralement être exécuté avant ou après l'instruction qui l'a déclenché. Les instructions qui sont exécutées dans le cadre d'un déclencheur de base de données sont généralement incluses dans la même transaction que l'instruction déclenchante. Dans l'exemple ci-dessus, les instructions INSERT et UPDATE seraient validées ou annulées ensemble.
Une procédure ou fonction stockée est une logique programmable enregistrée dans une base de données. Contrairement aux déclencheurs, les procédures/fonctions stockées ne sont pas associées à une table. Elles peuvent être appelées à partir de n'importe quel contexte ou presque.
Le pilote peut utiliser des procédures stockées pour extraire des valeurs de clé primaire à partir de lignes insérées dans des tables, afin de créer des associations. Ces procédures peuvent également être appelées à partir d'instructions SQL ou de déclencheurs intégrés.
La distinction entre procédures stockées et fonctions varie selon la base de données. En principe, les deux peuvent renvoyer des données en sortie. Ce sont leurs modes de renvoi qui diffèrent. En effet, les procédures stockées renvoient généralement des valeurs par l'intermédiaire de paramètres, tandis que les fonctions les renvoient par l'intermédiaire d'un ensemble de résultats.
![]() ![]() |