SQL DML Insert, Update, Delete, Truncate et les transactions Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes

Documents pareils
Cours Bases de données 2ème année IUT

Bases de données et sites WEB Licence d informatique LI345

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Le Langage De Description De Données(LDD)

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Implémentation des SGBD

BTS/CGO P10 SYSTEME INFORMATION Année

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de Données relationnelles et leurs systèmes de Gestion

TP3 : Creation de tables 1 seance

SQL Historique

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage SQL : créer et interroger une base

Encryptions, compression et partitionnement des données

Bases de données relationnelles

1. Base de données SQLite

Création et Gestion des tables

Les bases de données

Notes de cours : bases de données distribuées et repliquées

Intégrité des données

Olivier Mondet

Systèmes de Gestion de Bases de Données

Le langage SQL (première partie) c Olivier Caron

Introduction au Système de Gestion de Base de Données et aux Base de Données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Administration des bases de données. Jean-Yves Antoine

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

Devoir Data WareHouse

TP Contraintes - Triggers

Cours Bases de données 2ème année IUT

Les BASES de DONNEES dans WampServer

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

A QUOI SERVENT LES BASES DE DONNÉES?

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Compétences Business Objects

Gestion des utilisateurs et de leurs droits

16H Cours / 18H TD / 20H TP

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Cours SQL. Base du langage SQL et des bases de données

FileMaker 13. Guide de référence SQL

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Notion de base de données

PROJET 1 : BASE DE DONNÉES REPARTIES

Département Génie Informatique

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

A QUOI SERVENT LES BASES DE DONNÉES?

CREATION WEB DYNAMIQUE

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Introduction à JDBC. Accès aux bases de données en Java

Le langage SQL Rappels

Session S12 Les bases de l optimisation SQL avec DB2 for i

Installation d'un serveur FTP géré par une base de données MySQL

SQL Server Database Engine : Part1. Modes de récupération / Sauvegardes / Checkpoint

Les bases de l optimisation SQL avec DB2 for i

IFT3030 Base de données. Chapitre 1 Introduction

UE8 Systèmes d information de gestion Corrigé indicatif

Le Langage SQL version Oracle

Vincent Augusto

Cours de Base de Données Cours n.12

Les déclencheurs. Version 1.0. Grégory CASANOVA

Bases de données et sites WEB

Module BDR Master d Informatique (SAR)

Raja Bases de données distribuées A Lire - Tutoriel

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Bases de données avancées

Présentation du module Base de données spatio-temporelles

Eléments de base de la sécurité des bases de données

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Introduction aux Bases de Données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

OpenPaaS Le réseau social d'entreprise

Pour les débutants. langage de définition des données

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Partie II Cours 3 (suite) : Sécurité de bases de données

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Intégrité sémantique dans les bases de données relationnelles

Structure fonctionnelle d un SGBD

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

PHP 5. La base de données MySql. A. Belaïd 1

Le langage procédural PL-PGSQL

Gestion de base de données

Transcription:

Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Les ordres de création de lignes, de mise à jour des valeurs de colonnes et de suppression de lignes interviennent au niveau du CONTENU des tables. Ces ordres mettent en œuvre l APPLICATION DES CONTRAINTES D INTEGRITE spécifiés lors de la création des tables les mécanismes de GESTION DE TRANSACTION afin de garantir l intégrité des données lors d accès concurrent aux données. 1-Insérer des lignes dans une table, ordre INSERT INTO L ordre INSERT permet l ajout de lignes dans une table. A- Insérer une ligne complète à partir de valeurs fixes Dans ce cas de requête d insertion, les listes des valeurs sont fournies par des valeurs constantes ou des expressions contenant des fonctions. Ces listes de valeurs doivent correspondre à toutes les colonnes de la table, sinon une liste des noms de colonnes correspondantes doit être précisée. INSERT INTO nom_table [(col1, col2, col3,...)] VALUES (valeur1, valeur2, valeur3, ) Par exemple : ajouter un membre INSERT INTO member VALUES (1,'dupont','pierrE','bld Gambetta', 'cachan', '20/10/1975',NULL) B- Insérer plusieurs lignes à partir d une requête Dans ce cas de requête d insertion, les listes des valeurs sont fournies par une requête SELECT complète. Ces listes de valeurs doivent correspondre à toutes les colonnes de la table, sinon une liste des noms de colonnes correspondantes doit être précisée. INSERT INTO nom_table [(col1, col2, col3,...)] SELECT nomcol1, nomcol2, nomcol3,... FROM nom_table1 [WHERE conditions] [GROUP BY colonnes] [HAVING conditions] [ORDER BY colonnes] PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 1/6

2-Mettre à jour des valeurs de colonnes, ordre UPDATE L ordre UPDATE permet la mise à jour de valeurs de colonnes dans UNE SEULE TABLE selon la valeur d une condition exprimée dans la clause WHERE. ATTENTION : UN ORDRE DE MISE A JOUR SANS CLAUSE WHERE AFFECTE TOUTE LES LIGNES DE LA TABLE. UPDATE nom_table SET col1 = valeur1 [,col2 = valeur2, col3 = valeur3,...] [WHERE expression_condition] La condition spécifiée peut être exprimée : Par rapport aux colonnes de la table mise à jour Par rapport à une requête imbriquée indépendante ou corrélée Mettre à jour (corriger) le prénom d un membre : UPDATE membre SET prenom = john WHERE id_memb = 10 Augmenter le tarif des activités (de TOUTES les activités) de 10% : UPDATE activite SET tarif = tarif * 1.1 Augmenter de 10% le prix des oeuvres des artistes nés avant 1900 : UPDATE t_oeuvre SET prix = prix * 1.1 WHERE numartiste IN ( SELECT numartiste FROM t_artiste WHERE anneenaissance < 1900 ) 3-Supprimer des lignes d une table, ordre DELETE L ordre DELETE permet la suppression d une ou plusieurs lignes d une table selon la valeur d une condition. PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 2/6

ATTENTION : UN ORDRE DE SUPPRESSION SANS CLAUSE WHERE SUPPRIME TOUTE LES LIGNES DE LA TABLE. DELETE [FROM] nom_table [WHERE expression_condition] La condition spécifiée peut être exprimée : Par rapport aux colonnes de la table cible de la suppression de lignes Par rapport à une requête imbriquée indépendante ou corrélée Supprimer les inscriptions du membre de numéro 10 : DELETE inscrire WHERE id_memb = 10 4-Vider une table de son contenu, ordre TRUNCATE TABLE L ordre TRUNCATE TABLE permet la suppression de TOUTES LES LIGNES D UNE TABLE sans conservation de la trace de la suppression (SANS JOURNALISATION). ATTENTION : LES SUPPRESSIONS DE LIGNES NE SONT PAS JOURNALISEES (un ordre ROLLBACK ne permet pas d annuler cette suppression de lignes) TRUNCATE TABLE nom_table 5-Validation ou abandon des mises à jour effectuées Les mises à jour demandées au SGBD ne sont effectivement vraiment enregistrées dans le base de données que lorsque demande leur validation explicitement. A- Valider les mises à jour effectuées Permet de confirmer la mise à jour des données dans la base de données (depuis le dernier ordre COMMIT) COMMIT [TRANSACTION] B- Annuler les mises à jour effectuées Permet d annuler la mise à jour des données dans la base de données (depuis le dernier ordre COMMIT). ROLLBACK [TRANSACTION] PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 3/6

6-Gestion des transaction Les requêtes SQL DML permettent la réalisation de tâches de mises à jour complexes sur les données des tables. Dans certains cas, ces mises à jour vont requérir l exécution de plusieurs requêtes successives afin de prendre en compte les mises à jour multi tables. De plus, dans des environnement transactionnels, des mises à jour simultanées peuvent être requises par différents utilisateurs ou différents applications. Des effets d entrelacement dans l exécution de ces lots de requêtes peuvent apparaître. A- Les mécanismes d isolation des transactions : les verrous Les lectures et écritures d une transaction doivent être garanties par le SGBD : soit elles se déroulent toutes correctement soit elles sont toutes abandonnées. Voici quelques cas d anomalies possibles qui est indispensable de gérer. et représentent 2 transactions se déroulant simultanément. R représente une opération de lecture, W une opération de mise à jour. Cas A- Lecture des données non validées («dirty read») Une transaction () va lire des données écrites par une autre transaction () concurrente non encore validée, W(A) R(B), W(B), abort Cas B- Lecture des données non répétable(«non repeatable read») Une transaction () est amenée à relire des données lues précédemment, ces données ayant été modifiées depuis la lecture initiale par une transaction () Cas C- Lecture fantômes («phantom») Une transaction () est amenée à relire un ensemble de lignes lues précédemment, des lignes ayant été ajoutées par une transaction () SET TRANSACTION ISOLATION LEVEL niveau_isolation PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 4/6

Les degrés d isolation des transactions : Niveau d isolation niveau A B C READ UNCOMMITED 0 possible possible possible Permet de lire une ligne même si elle a été mises à jour par une transaction non validée READ COMMITED 1 impossible possible possible Empêche la lecture d une donnée mise à jour par une autre transaction REPEATABLE READ 2 impossible impossible possible Empêche la mise à jour de données lues SERIALIZABLE Empêche toute mise à jour ou insertion si une transaction est en cours 3 impossible impossible impossible La pose de verrous sur les lignes lues (ou les pages physiques) va permettre aux autres transaction ayant besoin de ces pages de savoir qu elles doivent attendre pour garantir les données lues. B- Le Deadlock, contrepartie de la pose des verrous La gestion des transactions met en place des verrous (lock) de lectures de lignes (ou au niveau physique bloc ou pages de la base) pour empêcher la lecture de lignes en train d être mises à jour. Ces verrous sont libérés sur le commit ou le rollback Ces mécanismes de verrous peuvent néanmoins conduire à une situation de blocage, selon la terminologie : Deadlock - verrou mortel - étreinte fatale - interblocage Verrou(A) R(B) Attente libération Verrou(B) R(B) Verrou(B) Attente libération Verrou(A) Cette situation de blocage est gérée par les SGBD. A la détection de ces blocages, évènement est déclenché, celui-ci annulant l une des 2 transactions en cours. PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 5/6

7-Mécanismes de journalisation A- Les journaux pour garantir la reprise après incident La journalisation regroupe les mécanismes utilisés par les SGBD pour garantir les données qu ils gèrent. Un journal central va contenir toutes les mises à jour. Des journaux de transaction (Quick Before Look, par exemple) vont contenir les images des lignes en cours de mise à jour (image avant et images après). En cas d incident (coupure de courant, défaillance disque, etc.), le SGBDR est capable de vérifier ses journaux, de détecter les transactions qui n étaient pas validées et annuler leurs mises à jour afin de conserver l intégrité des données de la base. B- Placement des fichiers journaux et des fichiers de bases de données Le placement des fichiers relatifs aux journaux et aux fichiers de bases de données font l objet d une attention particulière. Une répartition physique sur des disques différents permet D une part de garantir des performances optimales De répartir les risques en cas de perte de disque (les fichiers journaux sont souvent dupliquées sur plusieurs axes ou disques) PATDEZ-2006- Insérer des lignes, modifier des valeurs de colonnes et supprimer des lignes Page 6/6