SQL avancé Correction

Dimension: px
Commencer à balayer dès la page:

Download "SQL avancé Correction"

Transcription

1 SQL avancé Correction 1 Base Cinéma étendue (modèle logique de données et modèle relationnel) Nous utiliserons lors de ce TD une extension de la base Cinéma. Le modèle logique de données (MLD) et le modèle relationnel (MR) de cette base sont les suivants. 1.1 Modèle logique de données (schéma entité-association) 1.2 Modèle relationnel Les clés primaires sont soulignées avec une ligne droite, les clés étrangères sont soulignées avec des vagues. 1

2 ACTEUR (NUMERO ACTEUR, NOM ACTEUR, PRENOM ACTEUR, NATION ACTEUR, DATE DE NAISSANCE) ROLE ( NUMERO ACTEUR, NUMERO FILM, NOM DU ROLE) FILM (NUMERO FILM, TITRE FILM, DATE DE SORTIE, DUREE, GENRE, NUMERO REALISATEUR) REALISATEUR (NUMERO REALISATEUR, NOM REALISATEUR, PRENOM REALISATEUR, NATION REALISATEUR) SEANCE (NUMERO SEANCE, NUMERO FILM, CATEGORIE DE LA SEANCE, DATE DE LA SEANCE, HORAIRE) CATEGORIE SEANCE (CATEGORIE DE LA SEANCE, TYPE SEANCE) RESERVATION ( NUMERO SEANCE, NUMERO PLACE, NOM SPECTATEUR) PLACE (NUMERO PLACE, CATEGORIE DE LA PLACE) CATEGORIE PLACE (CATEGORIE DE LA PLACE, TYPE PLACE) TARIF ( CATEGORIE DE LA PLACE, CATEGORIE DE LA SEANCE, PRIX) 2 SQL : configuration (Rappels) 2.1 Récupération des fichiers utiles pour le TD Créez un dossier de travail, téléchargez-y l archive disponible à l adresse enseignement/enseirb/sqlav/sqlav.tar et décompressez la. Par exemple : 1 $ mkdir <d o s s i e r d e t r a v a i l > && cd <d o s s i e r d e t r a v a i l > $ wget http : / / uuu. e n s e i r b. f r / f o u r e s t i / enseignement / e n s e i r b / s q l a v / s q l a v. t a r 3 $ t a r xvf s q l a v. t a r 2.2 Connexion Afin de pouvoir se connecter à la base, il faut définir plusieurs variables d environnement. Pour les définir automatiquement, ajoutez les lignes suivantes à la fin du fichier ~/.bash_export (pour gagner du temps, ces lignes peuvent être copiées à partir du fichier config_oracle) : 1 export ORACLE BASE=/opt / o r a c l e /app/ o r a c l e export ORACLE HOME=$ORACLE BASE/ product / / db 1 3 export ORACLE SID=e c o l e export PATH=$ORACLE HOME/ bin :$PATH 5 unset TWO TASK Remarque 2.1. Lorsque que l on se connecte à oracle avec ssh, le fichier ~/.bashrc (qui s exécute habituellement lorsque l on démarre une console) n est pas exécuté, c est le fichier ~/.bash_profile qui est exécuté à la place. Comme les fichiers ~/.bashrc et ~/.bash_profile contiennent tous les deux la ligne suivante : 1. ${HOME} /. bash export Ils executent tous les deux le fichier ~/.bash_export. Ainsi ajouter les lignes permettant de définir les variables d environnement à la fin du fichier ~/.bash_export permet d être sûr qu elles soient définies à la fois lorsque l on ouvre une nouvelle console ou lorsque l on se connecte en ssh. Pour pouvoir se connecter à la base, il faut se connecter à la machine qui héberge la base : oracle. 1 $ ssh X o r a c l e $ cd <d o s s i e r d e t r a v a i l > Vous pouvez maintenant vous connecter à la base en exécutant la commande suivante : $ s q l p l u s Un nom d utilisateur et un mot de passe vous sont demandés. Par défaut, ils sont tous les deux égaux à votre login de l ENSEIRB. Une fois connecté, un invite de commande apparaît. Pour quitter l invite de commande, il faut utiliser le raccourci <CTRL-D> ou la commande exit. Exécutez la commande suivante pour modifiez votre mot de passe d accès à la base : 1 SQL> alter user <n o m u t i l i s a t e u r > identified by <nouveaumotdepasse > ; 2

3 2.3 Utilisation de sqlplus En plus de l exécution directe de commandes SQL, sqlplus permet d exécuter un fichier sql entier en utilisant le Ainsi, pour exécuter le fichier test.sql, il faut écrire : 1 Écrire des commandes SQL directement à l invite de commande est peu commode. Je vous conseille d utiliser votre éditeur de texte favori pour éditer les commandes, puis de les sélectionner pour les copier, et enfin de cliquer sur le bouton du milieu de la souris pour les coller dans la console où il y a l invite de commande. Remarque 2.2. Il est possible d augmenter le nombre de caractères affichés par ligne grâce à la commande suivante : 1 SQL> set l i n 150 l e s l i g n e s f e r o n t 150 c a r a c t è r e s max SQL> set wrap o f f on a c t i v e l a t r o n c a t u r e des l i g n e s 2.4 Création de la base Cinéma étendue Nous allons maintenant créer la base Cinéma étendue. Celle-ci sera utilisée dans la suite du TD pour réaliser des requêtes. 1. Lisez rapidement le fichier de création des tables : base_etendue.sql et le fichier d ajout des données : donnees_etendue.sql. 2. Exécutez ces fichiers. base etendue 2 donnees etendue 3. Affichez la description de la table SEANCE pour vous assurer que la création de la base a bien eu lieue : SQL> desc seance 3 SQL : requêtes (rappels) Voici quelques rappels de syntaxe (un mot entre crochet est facultatif, lorsque il y a des accolades, il faut choisir un mot au choix) : 1 select select [ distinct ] expr [ as a l i a s ], expr [ as a l i a s ]... 3 from { t a b l e vue} [ a l i a s ], { t a b l e vue} [ a l i a s ]... [ where c o n d i t i o n ] 5 [ group by expr ] r e q u ê t e s de regroupements [ having c o n d i t i o n ] c o n d i t i o n sur l e s groupes 7 [ { union intersect minus} r e q u ê t e ] o p é r a t i o n e n s e m b l i s t e s [ order by { expr posn } [ { asc desc } ], 9 { expr posn } [ { asc desc } ],... ] t r i s 11 insert insert into { t a b l e vue} [ ( col1,..., c o l n ) ] 13 {values ( val1,..., valn ) r e q u ê t e } 15 delete delete [ from ] { t a b l e vue} 17 [ where c o n d i t i o n ] 19 update update { t a b l e view } [ as a l i a s ] 21 set colonne = expr, [ colonne = expr ]... [ where c o n d i t i o n ] Écrivez en SQL les requêtes permettant de répondre aux demandes suivantes (les résultats devant être obtenus sont affichés sous questions afin de vous permettre de valider vos solutions). 3

4 1. Les dates des séances (sans répétition) des films dans lesquels l acteur numéro 1 joue. select distinct DATE DE LA SEANCE 2 from SEANCE S, FILM F, ROLE R where R.NUMERO FILM = F.NUMERO FILM 4 and S.NUMERO FILM = F.NUMERO FILM and R.NUMERO ACTEUR = 1 ; 1 24 MAY MAY Les noms des rôles de l acteur numéro 4 triées par ordre alphabétique. select distinct NOM DU ROLE 2 from ROLE where NUMERO ACTEUR = 4 4 order by NOM DU ROLE; MARIE PIERRE 3. Les dates et les horaires des séances du film numéro 7 triées par ordre décroissant selon les dates et croissant selon les horaires. 1 select DATE DE LA SEANCE, HORAIRE from SEANCE S 3 where S.NUMERO FILM = 7 order by 1 desc, 2 ; 24 MAY MAY MAY MAY MAY Le nombre d acteurs. 1 select count ( ) from ACTEUR; Le titre des films projetés pendant exactement deux séances. 1 select F. TITRE FILM from FILM F, SEANCE S 3 where F.NUMERO FILM = S.NUMERO FILM group by F.NUMERO FILM, F. TITRE FILM 5 having count ( ) = 2 ; 1 TITRE FILM LE MATIN EXODUS 4 Jointures Jusqu à maintenant, les jointures était réalisées au moyen d une clause du type : 4

5 [... ] 2 where TABLE1. CLE PRIMAIRE = TABLE2. CLE SECONDAIRE [... ] Il s agit en fait d une des syntaxes permettant de réaliser une jointure interne. Dans cette section, nous étudions les différents types de jointures et les syntaxes associées. 4.1 Jointures internes Le résultat des jointures internes peut être défini comme la réalisation d un produit cartésien 1 entre tous les enregistrements des tables puis le retrait de toutes les lignes qui ne satisfont pas le prédicat de jointure (lorsque l on utilisait la syntaxe avec un WHERE, on utilisait un prédicat d égalité : TABLE1.CLE PRIMAIRE = TABLE2.CLE SECONDAIRE). Figure 1 Jointure interne : avec un prédicat d égalité, le résultat obtenu est l intersection des ensembles associés aux tables (équi-jointure) Équi-jointure On parle d équi-jointure lorsque le prédicat de jointure contient l opérateur de comparaison = 2. La syntaxe dédiée est la suivante : 1 select from REALISATEUR inner join FILM 3 on REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; 20 rows s e l e c t e d. ou : select 2 from REALISATEUR inner join FILM using (NUMERO REALISATEUR) ; Le résultat sera le même qu avec : 1 select from REALISATEUR, FILM 3 where REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; Remarque 4.1. Il est préférable d utiliser la première syntaxe (inner join) à la place du where car l on assure le SGBD que l on veut faire un jointure (alors que le where peut aussi correspondre à une sélection). Le SGBD sera ainsi plus à même d utiliser un algorithme de jointure optimisé. Remarque 4.2. La syntaxe en inner join avec using, ne permet pas d utiliser les alias, il est donc préférable d utiliser la syntaxe avec on. Voici un exemple d usage des alias avec cette syntaxe : 1. Le produit cartésien de deux tables est obtenu en associant tous les enregistrements de la seconde table à chacun des enregistrements de la première. On obtient donc nombre ligne table1 nombre ligne table2 lignes dans la table résultat. 2. Lorsque l on utilise un opération de comparaison différente (ex : ), l on parle de théta-jointures. 5

6 1 select from REALISATEUR R inner join FILM F 3 on R.NUMERO REALISATEUR = F.NUMERO REALISATEUR; Remarque 4.3. Pour réaliser des jointures entre plus de deux tables, il faut utiliser des parenthèses : 1 select from (REALISATEUR R inner join FILM F 3 on R.NUMERO REALISATEUR = F.NUMERO REALISATEUR) inner join ROLE RO 5 on F.NUMERO FILM = RO.NUMERO FILM; Jointure naturelle Les jointures naturelles sont en fait des équi-jointures où la colonne utilisée pour réaliser la jointure n est pas précisée 3 : toutes les colonnes des deux tables ayant le même nom sont utilisées pour réaliser la jointure. La syntaxe est la suivante : 1 select from REALISATEUR natural join FILM ; [... ] 2 20 rows s e l e c t e d. Remarque 4.4. L erreur ORA-25155: column used in NATURAL join cannot have qualifier est renvoyée par Oracle lorsque le choix automatique des colonnes utilisées pour la jointure est ambigu. Pour ne pas avoir ce type de problème, le mieux est de spécifier à chaque fois la colonne à utiliser pour réaliser la jointure (et donc d utiliser un inner join). Remarque 4.5. Depuis la version 11g d Oracle, il n est plus possible de faire des projections explicites de la clé : select FILM.NUMERO REALISATEUR 2 from REALISATEUR natural join FILM ; ERROR at l i n e 1 : 2 ORA 25155: column used i n NATURAL j o i n cannot have q u a l i f i e r select NUMERO REALISATEUR 2 from REALISATEUR natural join FILM ; [... ] 2 20 rows s e l e c t e d. 4.2 Jointures externes Une jointure externe n a pas besoin que chaque ligne aient une valeur commune : la(les) table(s) avec laquelle l on réalise la jointure conservera(ont) toutes ses(leurs) lignes, Les colonnes pour lesquelles il n y a pas de correspondance sont remplies avec la valeur NULL. On parle de jointure externe gauche, droite ou complète en fonction des tables dont on conservera toutes les lignes. 3. On parle de jointure implicite. 6

7 4.2.1 Jointure externe gauche La syntaxe est la suivante : select 2 from REALISATEUR l e f t outer join FILM on REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; 22 rows s e l e c t e d. Toutes les lignes de la table de gauche sont conservées, celle de la table de droite ne sont conservées que si elles correspondent à une ligne de la table de gauche. Figure 2 Jointure externe gauche avec prédicat d égalité Jointure externe droite La syntaxe est la suivante : select 2 from REALISATEUR r i g h t outer join FILM on REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; 21 rows s e l e c t e d. C est l inverse de la jointure externe gauche : on prend la table de droite comme référence. C est donc équivalent à : select 2 from FILM l e f t outer join REALISATEUR on REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; En pratique, seule la notation left outer join est utilisée afin de gagner en lisibilité dans le code Jointure externe complète La table résultat conserve les lignes des deux tables en complétant au besoin par NULL. La syntaxe est la suivante : 1 select from FILM f u l l outer join REALISATEUR 3 on REALISATEUR.NUMERO REALISATEUR = FILM.NUMERO REALISATEUR; 23 rows s e l e c t e d. 7

8 Figure 3 Jointure externe complète. 4.3 Auto-jointure On parle d auto-jointure lorsque l on réalise une jointure entre deux instances d une même table. Par exemple : select P.NUMERO ACTEUR, P.NOM ACTEUR, S.NUMERO ACTEUR, S.NOM ACTEUR 2 from ACTEUR P, ACTEUR S where P.NATION ACTEUR = S.NATION ACTEUR 4 and P.NUMERO ACTEUR < S.NUMERO ACTEUR order by P.NUMERO ACTEUR, P.NOM ACTEUR, S.NUMERO ACTEUR, S.NOM ACTEUR; 3 NUMERO ACTEUR NOM ACTEUR NUMERO ACTEUR NOM ACTEUR 5 33 DALLE 35 RIVIERE 34 ANGLADE 35 RIVIERE rows s e l e c t e d. P et S sont des alias vers deux copies de la table ACTEUR. La condition P.NATION ACTEUR = S.NATION ACTEUR permet de ne conserver que les pairs d acteur ayant la même nationalité. La condition P.NUMERO ACTEUR < S.NUMERO ACTEUR permet de ne pas avoir de doublons. 4.4 Exercices Écrivez en SQL les requêtes permettant de répondre aux demandes suivantes. 1. Pour les tables ACTEUR et ROLE. (a) La jointure interne. select 2 from ACTEUR A inner join ROLE R on A.NUMERO ACTEUR = R.NUMERO ACTEUR; 3 40 rows s e l e c t e d. (b) La jointure externe gauche. 1 select from ACTEUR A l e f t outer join ROLE R 3 on A.NUMERO ACTEUR = R.NUMERO ACTEUR; 3 41 rows s e l e c t e d. 8

9 2. Les noms et prénoms des réalisateurs qui ont travaillé avec l acteur DUBOIS (en utilisant les nouvelles syntaxes pour les jointures). 1 s e l e c t R. NOM REALISATEUR, R.PRENOM REALISATEUR from ( (REALISATEUR R inner join FILM F 3 on R.NUMERO REALISATEUR = F.NUMERO REALISATEUR) inner join ROLE RO 5 on F.NUMERO FILM = RO.NUMERO FILM) inner join ACTEUR A 7 on RO.NUMERO ACTEUR = A.NUMERO ACTEUR where A.NOM ACTEUR = DUBOIS ; NOM REALISATEUR PRENOM REALISATEUR 2 SAUTET CLAUDE 3. Le classement des acteurs selon le nombre de rôle réalisés (en classant en dernier les acteurs n ayant pas réalisés de rôles). 1 s e l e c t A.NOM ACTEUR, A.PRENOM ACTEUR, count (R.NUMERO FILM) as NOMBRE from ACTEUR A l e f t outer join ROLE R 3 on A.NUMERO ACTEUR = R.NUMERO ACTEUR group by A.NOM ACTEUR, A.PRENOM ACTEUR, A.NUMERO ACTEUR 5 order by NOMBRE desc ; Il est important de spécifier R.NUMERO FILM dans le count car un count(*) compterai le nombre de ligne et ne renverrai pas 0 pour les acteurs ayant n ayant pas joué dans des films (ce comportement de count peut varier en fonction des implantations). 3 NOM ACTEUR PRENOM ACTEUR NOMBRE 5 CLUZET FRANCOIS 1 ROBERT YVES rows s e l e c t e d. 5 Vues Les vues sont des images partielles de la base de données. Elles proposent une vision logique des données contenues dans une ou plusieurs tables. Une vue est considérée comme une table virtuelle, sa description est stockée sous la forme d une requête, aucune donnée ne lui est associée. Utilité : Confidentialité : On peut n autoriser pour les utilisateurs que d accéder aux vues. Cacher la complexité des données aux utilisateurs : vue simplifiée des données, simplifier les requêtes complexes. Présenter différentes perspectives sur les données. Syntaxe : create [ or replace ] view nom vue [ ( nouveaux nom colonne1, 2 nouveaux nom colonne2, e t c ) ] as sous r e q u ê t e 4 [ with check option [ constraint nom contrainte ] ] [ with read only ] ; or replace : remplace une vue existante. with read only : interdit les modifications. with check option : contraintes d intégrité à respecter lors de l insertion ou de la modification d une ligne. 9

10 5.1 Exercices 1. Réaliser une vue contenant pour chaque acteur le nombre de séance où l on a pu voir des films dans lequel il a participé. Afficher le contenu de la vue. 1 create view NOMBRE SEANCES (NOM, PRENOM, SEANCES) as select A.NOM ACTEUR, A.PRENOM ACTEUR, count ( S.NUMERO SEANCE) 3 from ( (ACTEUR A inner join ROLE R on A.NUMERO ACTEUR = R.NUMERO ACTEUR) 5 inner join FILM F on R.NUMERO FILM = F.NUMERO FILM) 7 inner join SEANCE S on F.NUMERO FILM = S.NUMERO FILM 9 group by A.NOM ACTEUR, A.PRENOM ACTEUR, A.NUMERO ACTEUR; 1 select from NOMBRE SEANCES; 1 View c r e a t e d. NOM PRENOM SEANCES 3 [... ] 5 BOURVIL BOURVIL 10 NEWMAN PAUL rows s e l e c t e d. 6 Déclencheurs Un déclencheur (trigger en anglais) est activé par un événement : insertion, suppression ou modification sur une table. Lorsqu un déclencheur est activé, une condition est évaluée. Si la condition est vraie, l action est exécutée : insertion, suppression ou modification de la base de données. Utilité : Maintenir les contraintes d intégrité. Calculer des valeurs dérivées. Syntaxe : create [ or replace ] trigger NOM TRIGGER 2 { before after instead of } insert update delete 4 [ of nom d a t t r i b u t 1, nom d a t t r i b u t 2, e t c ] on NOM TABLE 6 [ for each row [when ( c o n d i t i o n ) ] ] 8 begin <b l o c SQL, PL/SQL, programme Java ou C> 10 end ; / Attention à ne pas o u b l i e r l e / Le langage PL/SQL est une extension de SQL propre à Oracle. or replace : remplace un déclencheur existant. before, after, instead of : executer l action avant, après ou à la place de l événement déclencheur. for each row [when (condition)] : vérifier la condition sur toutes les lignes de la table. L événement déclencheur (par exemple un update) peut toucher plusieurs lignes à la fois. Suivant l objectif du déclencheur, on peut souhaiter qu il s exécute une seule fois, même si l update auquel il répond touche 10 lignes, ou bien vouloir qu il s exécute autant de fois qu il y a de lignes touchées par l update. La clause for each row permet de traiter ce second cas. 10

11 Exemple : 1 create trigger MAJ LOG after update on PAYS 3 for each row when (new.surface <> old.surface) 5 begin insert into PAYS LOG (NOM, LIBELLE) 7 values (new.nom, s u r f a c e c h a n g é e ) ; end ; 9 / old et new sont des versions de la table sur laquelle agit les déclencher. Le contenu de ces tables dépend de l événement du déclencheur : Type old new insert NULL Valeur créée delete Valeur avant suppression NULL update Valeur avant modification Valeur après modification En cas de problème de compilation, la commande suivante permet d afficher les erreurs : 1 show errors trigger NOM TRIGGER; Remarque 6.1. Les déclencheurs sont des cas particuliers des procédures stockées. Une procédure stockée est un ensemble d instructions pré-compilées, stockées sur le serveur, directement dans la base de données. Ces instructions sont écrites dans une extension du langage SQL propre à chaque SGBD (PL/SQL en Oracle), ainsi il faut autant que possible ne pas les utiliser afin de garder un système portable. Les procédures stockées répondent à ce problème : une requête n est envoyée qu une fois sur le réseau puis analysée, interprétée et stockée sur le serveur sous forme exécutable (pré-compilée). Pour qu elle soit exécutée, le client n a qu à envoyer une requête comportant le nom de la procédure stockée avec si besoin des paramètres et il recevra le résultat comme si c était une requête SQL classique. Intérêts : Simplification : code plus simple à comprendre. Rapidité : moins d informations sont échangées entre le serveur et le client. Performance : économise au serveur l interprétation de la requête car elle est précompilée. Sécurité : les applications et les utilisateurs n ont aucun accès direct aux tables, mais passent par des procédures stockées prédéfinies. 6.1 Exercices 1. Écrire un déclencheur qui lorsque l on réalise une réservation sur la place n o 1, le fait puis change la catégorie de la place en categorie speciale (cf. le fichier donnees_etendue.sql). Vérifier le fonctionnement du déclencheur. 1 create or replace trigger RESA SPECIALE after insert on RESERVATION 3 for each row when (new.numero PLACE = 1) 5 begin update PLACE 7 set CATEGORIE DE LA PLACE = S where NUMERO PLACE = 1 ; 9 end ; / 11 show errors trigger RESA SPECIALE ; 1 T r i g g e r c r e a t e d. 11

12 1 1 row c r e a t e d. 1 NUMERO PLACE C 3 1 S 7 Optimisation Sous Oracle, il est possible de visualiser les traces d exécution : 1 d o l l a r s q l p l u s f o u r e s t i / f o u r e s t i SQL> set a u t o t r a c e on e x p l a i n s t a t 3 SQL> select s y s d a t e from dual ; [... ] 5 Execution Plan 7 Plan hash value : [... ] En pratique, un moyen d optimiser les requêtes et de faire les sélections les plus tôt possible. Pourquoi? Vérifiez sur une requête de votre choix. 8 Transactions 8.1 Définitions Définition 8.1. Une transaction est une séquence de requêtes SQL qui est exécuté en une seule fois. Une transaction doit respecter les propriétés ACID : Définition 8.2. Les propriétés ACID sont les suivantes : Atomicité : une transaction doit être soit complètement exécuté soit complètement annulée. Cohérence : une transaction ne doit pas laisser la base de données dans un état incohérent. Isolation : une transaction ne doit pas voir aucune autre transaction en cours d exécution. Durabilité : après que le client a été informé du succès de la transaction, les résultats de celle-ci ne disparaîtront pas. Définition 8.3. Le verrouillage à deux phases est un protocole spécifiant une procédure possible pour exécuter les transactions en respectant les propriétés ACID. Définition 8.4. Une estampille permet d identifier de façon unique une transaction et elle est créée avant l exécution de la transaction. En pratique, les estampilles sont calculées à partir de la date de début de la transaction ou d un compteur. 8.2 Pratique 1. Effectuez successivement les opérations suivantes. (a) Affichez toutes les réservations. (b) Insérez une réservation. insert into RESERVATION values (1, 1, un s p e c t a t e u r ) ; (c) Affichez toutes les réservations. (d) Tapez l instruction commit;. (e) Affichez toutes les réservations. (f) Insérez une nouvelle réservation. 12

13 (g) Affichez toutes les réservations. (h) Tapez l instruction rollback;. (i) Affichez toutes les réservations. (j) Concluez! L insertion est effectuée dans la base de données mais peut être défaite définitivement par un rollback ou bien devient effective de manière permanente par un commit : propriété de durabilité des transactions. 2. Lancez une seconde session sqlplus et procédez comme suit. (a) Insérez une réservation dans cette seconde session. La réservation est créée dans la seconde session. (b) Affichez cette même réservation pour chacune des deux sessions. Commentez! La réservation n apparaît que dans la seconde session (et pas dans la première) ; propriété d isolation des transactions. (c) Insérez cette même réservation dans la première session. Que se passe-t-il dans cette première session? La première session est bloquée sur cette insertion ce qui suppose un mécanisme de verrouillage des enregistrements (par exemple : l utilisation de mutex). (d) Effectuez un rollback dans la seconde session. La seconde session défait l insertion et termine sa transaction, et ainsi débloque la première session qui peut alors effectuer son insertion. (e) Affichez cette même réservation pour chacune des deux sessions. La réservation n apparaît que dans la première session (et non dans la seconde). (f) Effectuez un commit dans la première session. La seconde session valide définitivement la réservation. (g) Affichez cette même réservation pour chacune des deux sessions. La réservation apparaît dans les deux sessions. (h) Concluez! Les sessions ne voient que leurs propres mises à jour tant que les autres transactions ne sont pas achevées (validées ou invalidées). De plus, en cas d accès concurrents, le dernier arrivé est mis en attente. 3. Effectuez successivement les opérations suivantes. (a) Modifiez une réservation R1 dans la première session. 1 update RESERVATION set NOM SPECTATEUR = un s p e c t a t e u r 3 where NUMERO SEANCE = 1 and NUMERO PLACE = 1 ; La réservation R1 est modifiée dans la première session. (b) Modifiez une réservation R2 dans la seconde session. La réservation R2 est modifiée dans la seconde session. (c) Modifiez la réservation R1 dans la seconde session. La seconde session est bloquée sur la modification de la réservation R1. (d) Modifiez la réservation R2 dans la première session. La demande de la modification de la réservation R2 par la première session est annulée par Oracle suite à la détection d un interblocage d où le message d erreur ORA-00060: deadlock detected while waiting for resource. On est donc ramené à la même situation que dans l exercice précédent. (e) Effectuez un rollback dans la première session. La première session défait son travail (uniquement sur la réservation R1), termine sa transaction et ainsi débloque la seconde session qui modifie alors la réservation R1. (f) Effectuez un rollback dans la seconde session. La seconde session défait son travail (sur les réservations R2 et R1) et termine sa transaction. (g) Concluez! Oracle a un mécanisme de détection (et de résolution) d interblocage. (h) Fermez la seconde session sqlplus. 13

14 8.3 Bonus : Procédure stockées Cette partie est une partie bonus! Elle aborde les procédures stockées qui n ont été que survolées lors d une remarque. N hésitez pas à lire de la documentation sur internet pour en savoir plus Effectuez successivement les opérations suivantes. (a) Exécutez le fichier procedure-declencheur.sql. (b) Choisissez une nouvelle réservation. SQL> s e l e c t from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 1 ; 2 no rows s e l e c t e d i. Insérez cette réservation. insert into RESERVATION values (1, 1, un s p e c t a t e u r ) ; 2 1 row c r e a t e d. ii. Affichez cette réservation. SQL> s e l e c t from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 1 ; 2 NUMERO SEANCE NUMERO PLACE NOM SPECTATEUR un s p e c t a t e u r iii. Tapez l instruction sqlplus execute INSER 1 RESA OBLIG(a,b); où a est le numéro de séance et b le numéro de place de cette réservation. SQL> execute INSER 1 RESA OBLIG ( 1, 1 ) ; 2 PL/SQL procedure s u c c e s s f u l l y completed. iv. Supprimez cette réservation. SQL> delete from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 1 ; 2 1 row d e l e t e d. v. Affichez cette réservation. SQL> s e l e c t from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 1 ; 2 no rows s e l e c t e d vi. Tapez l instruction sqlplus execute INSER 1 RESA OBLIG(a,b);. Commentez! SQL> execute INSER 1 RESA OBLIG ( 1, 1 ) ; 2 PL/SQL procedure s u c c e s s f u l l y completed. Que l enregistrement existe (cas précédent) ou non (cas actuel), même résultat! vii. Effectuez un rollback. SQL> r o l l b a c k ; 2 Rollback complete. (c) Choisissez au hasard l une des réservations suivantes, avec pour (numéro de séance, numéro de place) l une des valeurs (1,8) (1,64) (1,128) (2,16) (2,32) (2,33) (2,64) (2,128) (2,256) (2,512) (5,32) (5,64) (8,256) (10,2) (10,4) (10,8) (10,16) (10,32) (10,64) (10,128) (10,129) (10,256) (10,512) (10,513) (12,8) (12,32) (12,64) (12,128) (15,8) (15,16) (15,17) (15,128) (15,256) (16,128) (16,512) (17,16) (17,32) (17,64) (20,16) (20,64) (20,128) (20,256). (1,8) i. Affichez cette réservation. SQL> s e l e c t from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 8 ; 2 NUMERO SEANCE NUMERO PLACE NOM SPECTATEUR LAURENCE 14

15 ii. Essayez de supprimer cette réservation. Commentez! SQL> delete from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 8 ; 2 delete from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 8 4 ERROR at l i n e 1 : ORA 20000: c e t t e r e s e r v a t i o n e s t o b l i g a t o i r e : vous ne pouvez pas l a supprimer 6 ORA 06512: at LOGIN. INSER 1 RESA OBLIG, l i n e 48 ORA 06512: at LOGIN.AVANT SUPPR RESA OBLIG, l i n e 2 8 ORA 04088: e r r o r during e x e c u t i o n of trigger LOGIN.AVANT SUPPR RESA OBLIG L enregistrement ne peut visiblement pas être supprimé! Le déclencheur AVANT SUPPR RESA OBLIG apparaît en plus de la procédure INSER 1 RESA OBLIG. iii. Affichez cette réservation. Concluez! SQL> s e l e c t from RESERVATION where NUMERO SEANCE = 1 and NUMERO PLACE = 8 ; 2 NUMERO SEANCE NUMERO PLACE NOM SPECTATEUR LAURENCE L enregistrement n a effectivement pas été supprimé! iv. Effectuez un rollback. SQL> r o l l b a c k ; 2 Rollback complete. v. Tapez l instruction sqlplus execute INSER 1 RESA OBLIG(a,b); où (a,b) est la valeur que vous avez choisie pour cette réservation. Commentez! SQL> execute INSER 1 RESA OBLIG ( 1, 8 ) ; 2 begin INSER 1 RESA OBLIG ( 1, 8 ) ; end ; 4 ERROR at l i n e 1 : ORA 20000: c e t t e r e s e r v a t i o n e s t o b l i g a t o i r e : vous ne pouvez pas l a supprimer 6 ORA 06512: at LOGIN. INSER 1 RESA OBLIG, l i n e 48 ORA 06512: at l i n e 1 Cette procédure a donc été appelée lors de la suppression. Références [1] Join (SQL) - Wikipedia, the free encyclopedia, [2] SQL joins are easy, [3] SQL join types, [4] A Visual Explanation of SQL Joins, [5] INNER JOINs, search_join4.html [6] Better Alternatives to a FULL OUTER JOIN, Full-Outer-Joins.aspx [7] Christelle Vangenot : Vues et Triggers, triggers.pdf [8] Robert Laurini : Triggers, [9] Arash Partow ; Simple Database Algorithms, index.html [10] Nested Loop, Merge Join, and Hash Join algorithm, archive/2008/05/18/nested-loop-merge-join-and-hash-join-algorithm.aspx 15

16 [11] CS143 : Query processing and join algorithms, [12] CS143 Notes : TRANSACTION, [13] Propriétés ACID - Wikipédia, [14] Bertrand Le Saëc : Accès concurrents. [15] LES TRANSACTIONS CONCURRENTES, wwwbd/cours/transactions/cours/cours_bd.html 16

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

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

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

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

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

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

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

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

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

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

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

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

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

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

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

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

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

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

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA DEFINITION D UNE BIBLIOTHEQUE D ACCES A UNE BASE DE DONNEES Cet article s adresse aux administrateurs SAS en charge de la mise à disposition des

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

Plus en détail

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

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

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

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 1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

TD n 10 : Ma première Base de Données

TD n 10 : Ma première Base de Données TD n 10 : Ma première Base de Données 4 heures Rédigé par Pascal Delahaye 11 mars 2015 Le but de ce TD est de découvrirles principales fonctions d OpenOffice Base, le systèmede gestion de bases de données

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

Plus en détail

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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

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

Cours SQL. Base du langage SQL et des bases de données Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution

Plus en détail

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager TP base de données SQLite 1 Différents choix possibles et choix de SQLite : La plupart des logiciels de gestion de base de données fonctionnent à l aide d un serveur. Ils demandent donc une installation

Plus en détail

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

Plus en détail

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

Cours: Les Jointures 1

Cours: Les Jointures 1 Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Les Jointures 1 Plan Table of Contents Principe...1 Example...1 Types de Jointures...2 Définitions et examples...2

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

iil est désormais courant de trouver sur Internet un document

iil est désormais courant de trouver sur Internet un document Matériels et systèmes L Acrobat qui cherche dans les PDF Michel NARCY - Formateur TICE et Médialog Bulletin officiel, programmes d enseignement, articles de quotidiens ou de revues scientifiques... De

Plus en détail

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

1 Modélisation d une base de données pour une société de bourse

1 Modélisation d une base de données pour une société de bourse IN306 : Corrigé SID Christophe Garion 18 octobre 2010 Ce document est un corrigé succinct de l examen du module IN306. 1 Modélisation d une base de données pour une société de bourse Une

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

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

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

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

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise SQL Serveur 2012+ Programme de formation France Belgique Suisse - Canada Microsoft Partner Formez vos salariés pour optimiser la productivité de votre entreprise Dernière mise à jour le : Avril 2014 Des

Plus en détail

Manuel Viadeis CRM Connecteur intégration L100 étendue.

Manuel Viadeis CRM Connecteur intégration L100 étendue. Référence : [N de ref.] Version N : [N de version] Créé le : 20/04/2012 Créé par : Téléphone : Grégori DESAI [Téléphone] Sommaire 1 Vue d ensemble du flot de données... 4 2 Installation du connecteur...

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

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

Les déclencheurs. Version 1.0. Grégory CASANOVA Les déclencheurs Version 1.0 Grégory CASANOVA 2 Les déclencheurs [09/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les déclencheurs du DML... 5 3.1 Introduction... 5 3.2 Création d un déclencheur

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

Plus en détail

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007 Bases de Données Réparties Concepts et Techniques Matthieu Exbrayat ULP Strasbourg - Décembre 2007 1 Définition Une base de données répartie (distribuée) est une base de données logique dont les données

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

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

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 Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

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

Session S12 Les bases de l optimisation SQL avec DB2 for i Session S12 Les bases de l optimisation SQL avec DB2 for i C. GRIERE cgriere@fr.ibm.com STG Lab Services IBM i Avril 2012 Les fleurs et les requêtes SQL Lorsque l on veut planter de nouvelles fleurs dans

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre

Plus en détail

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

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 TS2 CGO 7 mars 2013 2 heures Aucun document autorisé Calculatrice autorisée Nota : Il vous est demandé d apporter un soin particulier à la présentation de

Plus en détail

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail