Vous êtes sur la page 1sur 3

Département Informatique Administration des Bases de

Faculté des Sciences de Monastir Données

Niveau : LGSI 2
Année universitaire : 2022-2023 Enseignant : Salma CHAIEB

TP 5 : SQL
Langage de Contrôle de Données

Objectifs :
- Se familiariser avec le langage de contrôle de données sous Oracle et son environnement de travail
SQL Developer,
- Gerere les accès concurrents (COMMIT, ROLLBACK, SAVEPOINT).

I. Quelques notions de base

- Une transaction est un bloc d’instructions LMD faisant passer la base de données d’un état cohérent
à un autre état cohérent. Si un problème logiciel ou matériel survient au cours d’une transaction, aucune
des instructions contenues dans la transaction n’est effectuée, quel que soit l’endroit de la transaction
où est intervenue l’erreur.
- Pour contrôler les transactions, Oracle ne rend permanente aucune instruction de manipulation des
données à moins que vous ne la validiez.
- Si vous ne validez pas la transaction et que l'alimentation est coupée ou que le système tombe en panne,
la transaction est annulée.

- Les déclarations de contrôle des transactions disponibles dans Oracle sont :

 COMMIT : rendre permanentes les modifications effectuées dans la transaction.


 ROLLBACK : restaurer l'état de la base de données jusqu'au dernier commit.
 ROLLBACK To SAVEPOINT : restaurer l'état de la base de données jusqu'au dernier point
de validation.
 SAVEPOINT : utilisé pour spécifier un point dans la transaction auquel vous pourrez
ultérieurement revenir en arrière.

- La commande BEGIN; ou BEGIN TRANSACTION; ne peut pas être utilisé sous Oracle.
- Une transaction débute à la première commande SQL LMD (INSERT, UPDATE ou DELETE)
rencontrée ou dès la fin de la transaction précédente.

II. Création d’une base de donnée

Lancer SQL Developer et se connecter avec le compte sys/SYSTEM ou system/SYSTEM


Soit la base de données « Gestion des vols » définie par le schéma relationnel suivant :
Pilote (numP : numérique (3), nomP : texte (10), adresseP : texte (20), salaire : numérique (10))
Avion (numA : numérique (3), typeA : texte (10), capaciteA : numérique (4), locA : texte (30))
Vol (numV : numérique (6), #numP, #numA, villeDep : texte (15), villeArr : texte (15),
dateDep : Date, dateArr : Date)
1. Ecrivez le script SQL permettant de créer les différentes tables en respectant les contraintes
d’intégrité.
2. Ecrivez le script SQL permettant d’insérer les différentes données dans les trois tables.

III. Gestion des transactions

Ecrivez le script SQL permettant de :

1) Insérer l’enregistrement ci-dessous dans la table Pilote.

113 Jean Lille 5200

2) Afficher le nombre des pilotes de la table Pilote. Combien ?


3) Valider l’insertion de tous les enregistrements de la table Pilote.
4) Insérer l’enregistrement ci-dessous dans la table Pilote.

114 Patrice Valenciennes 4950

5) Annuler l’insertion de l’enregistrement inséré par 4).


6) Afficher le nombre des pilotes de la table Pilote. Combien ?
7) Réinsérer l’enregistrement du pilote num 114.
8) Afficher le nombre des pilotes de la table Pilote. Combien ?
9) Insérer un point de validation.
10) Augmenter les salaires de tous les pilotes par 20%.
11) Annuler toutes les requêtes.
12) Combien de pilotes dans la table Pilote ?
13) Modifier l’heure de départ du vol 1001 par 14:55.
14) Insérer un point de validation.
15) Modifier l’heure d’arrivée du vol 1001 par 17:35.
16) Annuler la modification de deux dates.
17) Modifier le type de l’avion numéro 123 par A320 et modifier par la suite sa capacité.
18) Supprimer toutes les avions de la table Avion.
19) Annuler la suppression des avions tout en gardant les requêtes précédentes.
20) Afficher le nombre des pilotes de la table Pilote. Combien ?

Vous aimerez peut-être aussi