1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
CONCEPTION DES BASES DE DONNÉES: modèle entités-associations
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
LMD: Langage de Manipulation de Données
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
Manipulation des données Requêtes simples
Les transactions.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Traduction des opérations sous MySQL
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Les bases de données Séance 8 Jointures.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Complément sous-requêtes
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Le Langage de Manipulation de Données LMD Module 6.
Rémi BRISSIAUD MC de Psychologie — Université de Cergy-Pontoise — IUFM de Versailles Équipe “ Compréhension, Raisonnement et Acquisition de Connaissances.
1 Comment préparer un plan Document No. 2.1 Gestion des activités conjointes de lutte contre la tuberculose et le VIH: cours de formation pour responsables.
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
CENTRE DE COORDINATION ET DE GESTION DES PROGRAMMES EUROPEENS Fichier stagiaires annuel Accrojump Année N = année civile considérée 1 ère Année N concernée.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
Bases de données : modèlisation et SGBD Séance 3.
ASR5 Système pour architectures multicœurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques Répartis Gaël Thomas
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
BTN4U Gérer vos réservations du bout des doigts. BTN4U Gérer les réservations du bout des doigts Consultable toujours et partout Possibilité de multi-tâches.
UNIX AVANCE Yves PAGNOTTE – Janvier – QUELQUES RAPPELS SUR LES SYSTEMES D’EXPLOITATION 1.
Transaction et concurrence Du Mooc Bador Serge Abiteboul, Benjamin Nguyen, Philippe Rigaux.
Election au Conseil Confédéral National = CA Processus d’élection Période d’élection.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
Les méthodes de tests Les grands principes pour réaliser des tests efficaces.
Développement d’applications Problèmes relatifs aux BD.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Du panier à la commande client Créer un panier Identification Validation de la commande Paiement Formulaire de création de compte Etats de la commande.
Introduction à la Programmation Orientée Objet H.GATI.
Formation à l’utilisation de K-Sup V5 février 2009 CRISI - COM.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université.
 Introduction  Les protocoles de sécurité  Les attaques possibles  Conclusion.
On the analysis of CMMN expressiveness: revisiting workflow patterns Renata Carvalho Hafedh Mili.
Master sciences et techniques de géomatique environnementale
TRESORERIE Cash Call Envoi de fonds Comptabilisation (Formation des comptables/projets) 1.
Informatique 2A Langage C 3 ème séance.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
Cours de Langage C Les structures
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
INSCRIPTIONS SPORTIVES
1 Initiation aux bases de données et à la programmation événementielle Construction d’un état Support de TD rédigé par Bernard COFFIN Université Paris.
Développement d’application avec base de données Semaine 2: Requête avec l’Entity Data Model Automne 2015.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – PROCESSUS ET RESSOURCES.
AUTOMATISME Chapitre 2: Le GRAFCET.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
Les Bases de données Définition Architecture d’un SGBD
Structured Query Language
Notion De Gestion De Bases De Données
SQL InfoBanque 16/11/2018 Halim M'SILTI.
7 Contraintes d’intégrité en SQL
SQL Structured Query Language
Transcription de la présentation:

1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions

2 Bases de données VII Les opérateurs ensemblistes ORACLE

3  Les opérations ensemblistes  Les sous requêtes Dépendantes Indépendantes  Les transactions et accès concurrents Les transactions Les verrous Base de données VII Ce qui est abordé

4 ORACLE  Les opérateurs ensemblistes jouent avec les résultats de requête comme s’ils étaient des ensembles UNION : réunion des résultats MINUS : différence des résultats INTERSECT : intersection des résultats  Syntaxe générale : SELECT … SELECT … Base de données VII Les opérateurs ensemblistes

5  Même nombre de colonnes après chaque SELECT.  Colonnes de chaque table de même type.  Un DISTINCT est exécuté de manière implicite  ORDER BY : numéro des colonnes Base de données VII Les opérateurs ensemblistes : conditions

6 CICI BHBH AGAGR MINUS S C F I D1 B E H B1 A D G A1 R UNION S col3Col2Col1 Col3Col2Col1 D1 F B1 E A1 DS CFICFI BEHBEH ADGADG R c3C2C1Col3Col2Col1 Base de données VII Les opérateurs ensemblistes : exemples

7 Bases de données VII Les sous-requêtes ORACLE MySQL V > 5.0

8  Elles permettent d’effectuer une requête sur la base du résultat d’une autre requête.  Mysql ne les implémente pas jusqu’à MySQL 5.0  On peut toujours s’en passer, mais elles fournissent la façon la plus puissante d’extraire des données complexes Base de données VII Les sous-requêtes et requêtes imbriquées

9  Doivent toujours être placées après la clause WHERE ou la clause HAVING en lieu et place d’une constante  Il peut y avoir plusieurs requêtes imbriquées  La sous-requête peut renvoyer une valeur ou liste valeur  Elle peut être dépendante ou indépendante Base de données VII Les sous-requêtes et requêtes imbriquées

10  Sélection classique par comparaison avec une constante WHERE poste = 'Manager'  Est équivalent à : WHERE poste = (SELECT poste from...)  Accepte tous les opérateurs tels que, =, <> Base de données VII Les sous-requêtes qui renvoient une valeur

11 ORACLE SELECT nom FROM employe WHERE poste = (SELECT poste FROM employe WHERE nom = 'Martin') ; Renvoie tous les employés qui ont le même poste que Martin Note : On considère que nom est clé primaire Base de données VII Les sous-requêtes qui renvoient une valeur

12  …WHERE poste IN (SELECT poste FROM..); La valeur doit être trouvée dans le résultat de la sous requête On peut utiliser NOT IN  WHERE numero > ALL (SELECT numero FROM..); La valeur testée doit être supérieure à toutes les valeurs ramenées par la sous requête  …WHERE poste > ANY (SELECT poste FROM..); La valeur testée doit être supérieure à au moins une valeur obtenue par la sous requête Base de données VII Celles qui renvoient une liste de valeurs

13  opérateur IN, NOT IN  opérateur simple =, !=, <>,, = suivi de ALL ou ANY. =ANY est équivalent à IN !=ALL est équivalent à NOT IN Base de données VII Celles qui renvoient une liste de valeurs 2

14  Exemple SELECT nom FROM client WHERE num_client IN (SELECT num_client FROM commande WHERE date_commande = '05-JUN-98'); Base de données VII Celles qui renvoient une liste de valeurs 3

15 SELECT c.id_client FROM client c WHERE EXISTS (SELECT cde.id_client FROM commande cde WHERE cde.id_client = c.id_client)  Cette requête utilise une sous-requête dépendante.  Pour obtenir des résultats la sous-requête doit être vraie Base de données VII WHERE EXISTS et WHERE NOT EXISTS Dépendance

16 SELECT num FROM commande WHERE (date, id_client) = (SELECT date, id_client FROM commande WHERE id_client = 'client1' AND date = '25-jan-2005'); Base de données VII Sous-requêtes sur colonnes multiples

17 Bases de données VII Les transactions et les accès concurrents ORACLE MySQL V > 5.0

18  Un SGBD est par définition multi-utilisateurs.  L'exécution simultanée de plusieurs applications peut poser des problèmes d'accès concurrents (une même information étant manipulée par plusieurs utilisateurs à la fois). Base de données VII Transactions et accès concurrents

19  ‘Paul’ lit un enregistrement ‘a’ de la table ‘A’. ‘Paul’ modifie les données dans son application.  ‘Pierre’ lit le même enregistrement.  ‘Pierre’ modifie les données dans son application  ‘Pierre’ a fini plus tôt. Il sauvegarde ses modifications.  ‘Paul’ n’a rien vu, il sauvegarde à son tour.  ‘Pierre’ revient sur son enregistrement et ne trouve plus ses données. Base de données VII Accès concurrents : le problème

20  Une transaction est une séquence d'opérations (sauf create, alter, drop) qui accèdent et modifient le contenu d'une base de données.  Une transaction peut être validée ou invalidée.  Le début d'une transaction peut être implicite (début d’une session de connexion ou la fin d’une transaction précédente) ou explicite.  La fin d'une transaction peut être implicite ou explicite. Base de données VII Les transactions

21  Une fin explicite donne lieu à un ROLLBACK (annulation) ou un COMMIT (validation).  Une fin implicite est définie par : Exécution d'une commande du langage de définition de données (create alter drop) Fin d’une session. Base de données VII Les transactions 2

22  On peut découper une transaction complexe en créant des points d'arrêts (savepoints). SAVEPOINT ;  Ces points d'arrêt permettent d’annuler une partie de la transaction. La syntaxe est : ROLLBACK TO [ ; Base de données VII Les transactions : points de sauvegarde

23  Atomicité : Une transaction est complètement exécutée ou pas du tout (unité atomique de traitement).  Cohérence : une transaction prend une base de données dans un état cohérent et la transforme dans une nouvelle base de données qui est dans un état cohérent (préservation de la cohérence). Par contre, la cohérence peut être violée pendant l'exécution d'une transaction. Base de données VII Les transactions : Modèle ACID

24  Isolation : les mises à jour faites par une transaction ne sont visibles à l'extérieur de celle-ci (pour les autres transactions) qu'après la validation de la transaction.  Durabilité : après la fin d'une transaction, les mises à jour sont définitives même en cas de futurs problèmes matériels (grâce au mécanisme de reprise) Base de données VII Les transactions : Modèle ACID 2

25  Un verrou est une variable d'état associée à un objet X de la base et indiquant son état vis à vis des opérations de lecture/écriture.  Verrou binaire 2 états verrouillé ou libre avec deux opérations verrouiller(X) et libérer(X) => restrictif  Verrou ternaire 3 états en lecture (ou partagé), en écriture, ou libre. Base de données VII Gestion des accès concurrents

26  Granularité de contrôle de concurrence (de forte à faible) un attribut d’enregistrement, un enregistrement, une table, une base.  Plus la granularité est forte, plus le niveau de concurrence augmente, et plus le niveau de complexité de gestion des verrous augmente au détriment des performances. Base de données VII Gestion des accès concurrents 2

27 FIN DU COURS