Partie 5 : Sécuriser et automatiser ses actions
Dans cette partie, nous allons aborder trois notions qui permettent de sécuriser une base de données :
les transactions ;
les verrous ;
et les requêtes préparées.
Nous passerons ensuite aux procédures stockées et aux triggers (ou déclencheurs) qui permettent d'automatiser des actions
complexes.
Toutes ces notions ne sont pas indépendantes les unes des autres. Par exemple, automatiser un traitement peut permettre de
sécuriser une application.
Transactions
Pour commencer cette partie, nous allons voir ce que sont les transactions, à quoi elles servent exactement, et comment les
utiliser avec MySQL.
Les transactions sont une fonctionnalité absolument indispensable, permettant de sécuriser une application utilisant une base
de données. Sans transactions, certaines opérations risqueraient d'être à moitié réalisées, et la moindre erreur, la moindre
interruption pourrait avoir des conséquences énormes. En effet, les transactions permettent de regrouper des requêtes dans des
blocs, et de faire en sorte que tout le bloc soit exécuté en une seule fois, cela afin de préserver l'intégrité des données de la base.
Les transactions ont été implémentées assez tard dans MySQL, et qui plus est, elles ne sont pas utilisables pour tous les types
de tables. C'est d'ailleurs un des principaux arguments des détracteurs de MySQL.
Etat actuel de la base de données
Note : les tables de test ne sont pas reprises.
Secret (cliquez pour afficher)
Code : SQL
SET NAMES utf8;
DROP TABLE IF EXISTS Animal;
DROP TABLE IF EXISTS Race;
DROP TABLE IF EXISTS Espece;
CREATE TABLE Espece (
id smallint(6) unsigned NOT NULL AUTO_INCREMENT,
nom_courant varchar(40) NOT NULL,
nom_latin varchar(40) NOT NULL,
description text,
prix decimal(7,2) unsigned DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY nom_latin (nom_latin)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
LOCK TABLES Espece WRITE;
INSERT INTO Espece VALUES (1,'Chien','Canis canis','Bestiole à
quatre pattes qui aime les caresses et tire souvent la
langue',200.00),(2,'Chat','Felis silvestris','Bestiole à quatre
pattes qui saute très haut et grimpe aux
arbres',150.00),(3,'Tortue d''Hermann','Testudo
hermanni','Bestiole avec une carapace très dure',140.00),
(4,'Perroquet amazone','Alipiopsitta xanthops','Joli oiseau
parleur vert et jaune',700.00),(5,'Rat brun','Rattus
norvegicus','Petite bestiole avec de longues moustaches et une
longue queue sans poils',10.00);
UNLOCK TABLES;
Partie 5 : Sécuriser et automatiser ses actions
218/414
www.openclassrooms.com
Précédent

- 218/413

Suivant