SQL avancé Correction
|
|
- Sébastien Bertrand
- il y a 8 ans
- Total affichages :
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 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étailLangage 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étailLe 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étailCOMMANDES 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étailLangage 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étailLes 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étailLangage 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étail1 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étailECR_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étailNotes 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étailProcé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étailModule 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étail1. 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étailSQL 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étailLes 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étailAdministration 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étailCours 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étailDevoir 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étailLe 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étail14/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étailTP 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étailBases 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étailBases 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étailCours 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étail1. 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étailBases 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étailOlivier 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étailInté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étailIntroduction 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étailBases 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étailPlan 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étailBases 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étailLaboratoires 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étailLicence 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étailOptimisation 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étail16H 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étailA 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étailORACLE 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étailSQL 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étailclef 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étailIntroduction 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étailAuto-é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étailCOMPRENDRE 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étailMySQL / 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étailLe 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 / 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étailLes 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étailA 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étailTD 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étailCREATION 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étailTP3 : 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étailNFA 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étailCours 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étailTP 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étailAccess 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étailSGBDR. 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étailA.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étailGestion 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étailPartie 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étailCours: 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étailTP1 - 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étailCours 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étailMODE 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étailVincent 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étailFileMaker 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étailiil 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étailINSTITUT 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étailDossier 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étail1 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étailEncryptions, 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étailPré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étailMysql 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étailTD : 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étailSQL 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étailManuel 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étailGestion 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étailLes 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étailHistorisation 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étailSOMMAIRE. 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étailBases 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étail1-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étailCré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étailPlan. 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étailLe 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étailEXCEL 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étailPHP 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étailSession 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étailPratique 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étailCHAPITRE 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étailPartie 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étailGestion 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étailGestion 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étailBases 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étailTable 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étailDu 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étailBTS/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étailLe 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