Bases de Données Réparties

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

Download "Bases de Données Réparties"

Transcription

1 Bases de Données Réparties Architecture Mise en œuvre Duplication et Réplication Michel Tuffery

2 BDR : Définition Ensemble de bases de données gérées par des sites différents et apparaissant à l utilisateur comme une base unique Les 4 universités Toulousaines : SELECT * FROM etudiant WHERE date_naissance=1994; UTM UPS USS INP BD réparties Michel Tuffery 2

3 Architecture d une BD répartie Gérant d applications Gérant d applications Gérant de données réparties Gérant de communication Réseau Gérant de communication Gérant de données réparties SGBD SGBD Site 1 Base 1 Site 2 Base 2 BD réparties Michel Tuffery 3

4 Fonctions d un SGBD réparti Gestion d un dictionnaire de données global Dictionnaire centralisé, dupliqué ou réparti Définition des données réparties Règles de localisation des données réparties Évaluation des requêtes réparties optimisation Gestion des transactions réparties COMMIT réparti Graphe local des transactions réparties BD réparties Michel Tuffery 4

5 Comparatif Client-Serveur et BD répartie Plusieurs bases vues par le client Plusieurs connexions Localisation explicite des bases ( connect string ou DSN) Règles de localisation dans l application 1 ordre SQL 1 seule BD N transactions mono-base Synchronisation des transactions dans l application Plusieurs COMMIT mono-base CLIENT SERVEUR Une base logique vue par le client Une seule connexion Indépendance à la localisation Règles de localisation dans le dictionnaire 1 ordre SQL plusieurs BD 1 transaction logique Synchronisation automatique des n sous-transactions 1 COMMIT généralisé BD REPARTIE BD réparties Michel Tuffery 5

6 Les 12 règles d un SGBD (1) Autonomie locale (2) Pas de site fédérateur (3) Exploitation en continue (4) Indépendance à la localisation (5) Règles de fragmentation (6) Duplications multiples (7) Requêtes distribuées (8) Transactions distribuées (9) Indépendance du matériel (10) Indépendance des systèmes d exploitation (11) Indépendance du réseau (12) Indépendance du SGBD BD réparties Michel Tuffery 6

7 (1) Autonomie locale Les données locales sont gérées localement Administration locale des données locales Site autonome pour ses propres opérations L administration de la BDR est décentralisée Administrateurs locaux coordonnés Pas d administration globale Possibilité d autoriser ou non un accès réparti à une base locale Accès local possible simultanément aux accès répartis BD réparties Michel Tuffery 7

8 (2) Pas de site fédérateur Pas de dépendance d un site par rapport à un autre Avantages : Architecture non vulnérable en cas de panne Pas de goulot d étranglement Inconvénients : Pas de contrôle centralisé des accès concurrents Pas de dictionnaire central Pas de recovery central Pas d exécution des requêtes centralisée BD réparties Michel Tuffery 8

9 (3) Exploitation en continue Pas d arrêt de la BDR pour la modification d un site Modification de la structure d une BD locale (LDD) Modification d un SGBD (Release, Upgrade, ) Extensibilité Ajout, suppression ou modification d un site Opération locale et non globale (règle 1) Propriété importante : évolution permanente BD réparties Michel Tuffery 9

10 (4) Indépendance à la localisation Objectif le plus important : changement de la localisation des données sans changer les programmes Nécessité d un dictionnaire réparti Avantages attendus : Illusion, pour l utilisateur, de travailler sur un seul site avec BD centralisée Évolution des règles de localisation sans impact sur l application Invisibilité du ou des réseaux (règle 11) Inconvénient majeur : Attention aux performances après un changement de localisation de données BD réparties Michel Tuffery 10

11 (5) Règles de fragmentation Découpage d une relation pour des raisons fonctionnelles Mémorisation des règles de localisation (optimisation des requêtes) Transparent pour l utilisateur Trois types de fragmentation Horizontal, Vertical et Mixte Opérateurs SQL utilisés projection et restriction pour fragmenter UNION et JOINTURE pour reconstituer BD réparties Michel Tuffery 11

12 Fragmentation horizontale ETUDIANT_L ETUDIANT_M ETUDIANT ETUDIANT_D Projection et Sélection UNION BD réparties Michel Tuffery 12

13 Fragmentation verticale SCOLARITE S T A G E PROJECTION JOINTURE ETUDIANT Duplication de la clé primaire sur chaque fragment BD réparties Michel Tuffery 13

14 Fragmentation mixte EMPLOYE NOM AGE NO SAL DPT E2 E3 E1 E1 ( NO, SAL, DPT) E2 (NOM, AGE, NO) E3 (NOM, AGE, NO) AGE<=30 AGE>30 Prise en compte des règles de fragmentation pour optimiser les requêtes : SELECT. FROM e3 WHERE. AND age <28 SELECT e3.* FROM e2,e3 WHERE e2.no=e3.no BD réparties Michel Tuffery 14

15 Fragmentation : construction de la BDR Construction descendante : la base centralisée est distribuée sur plusieurs sites (BDD) C est le cas le plus fréquent La base centralisée devient trop importante : elle est distribuée avec des règles Construction ascendante : les diverses bases locales sont restructurées et assemblées, la base est répartie sur plusieurs sites (BDR) Cas du rachat ou du regroupement d entreprises Principe : "ne pas dupliquer les données" BD réparties Michel Tuffery 15

16 Faire une bonne fragmentation Horizontale Fragments (prédicats) disjoints Fréquence d accès uniforme (complétude) aux fragments Verticale Regroupement des attributs accédés souvent ensemble Calcul de "l affinité" entre deux attributs BD réparties Michel Tuffery 16

17 (6) Duplications multiples (indépendance à la localisation) Duplication des données sur des sites distants Gain de temps pour les accès en lecture (interdit en modification) augmentation des performances Mises à jour par rafraîchissements périodiques à partir du site qui possède le fragment initial Inconvénient : pas de mise à jour immédiate Intéressant pour les données stables BD réparties Michel Tuffery 17

18 Duplication : le principe des clichés ou "snapshots" Duplication en "cohérence faible" Rafraîchissements périodiques Plusieurs solutions techniques "estampillage" des lignes modifiées avec la date et heure de sa dernière MAJ Utilisation d une "table différentielle" contenant uniquement les lignes modifiées Oracle a choisi la deuxième technique avec un "journal" de transactions sur le fragment initial (voir plus loin) BD réparties Michel Tuffery 18

19 (7) Requêtes distribuées Évaluation des requêtes distribuées ou réparties plan d exécution réparti Le SGBD comprend que la requête traite avec des objets physiques distants La requête est reconstruite en tenant compte de la localisation des objets Les opérateurs de restriction (sélection, projection) qui réduisent la taille sont appliqués au plus tôt Utilisation du parallélisme BD réparties Michel Tuffery 19

20 Évaluation d une requête répartie DECOMPOSITION SQL ALGEBRE LOCALISATION Reconstruction de la requête avec le dictionnaire réparti OPTIMISATION EXECUTION Ordonnancement et algorithme d accès : règles de localisation choix du site de transfert semi - jointure BD réparties Michel Tuffery 20

21 Optimisation d une requête répartie : la semi - jointure Site 1 : Client (IdCli, nomcli,.) Site 2 : Emprunt (IdCli,IdOuv,.) Site 3 : Ouvrage (IdOuv, titre,.) SELECT c.nomcli, o.titre FROM client c, emprunt e, ouvrage o WHERE c.idcli=e.idcli AND e.idouv=o.idouv AND c.adrcli= Tlse AND o.auteur= Michel ; BD réparties Michel Tuffery 21

22 Requête répartie avec jointures Jointure (Site 3) Jointure (Site 2) Sélection adrcli= Tlse Emprunt (Site 2) Sélection auteur= Michel Client (Site 1) Ouvrage (Site 3) BD réparties Michel Tuffery 22

23 Requête répartie avec semi-jointures Jointure (Site 3) Jointure (Site 1) O Semi-Jointure (Site 2) Semi-Jointure (Site 2) C O (idouv, titre) Emprunt (Site 2) Projection Idouv Projection IdCli C (idcli, nomcli) Sélection auteur= Michel Sélection adrcli= Tlse Client (Site 1) Ouvrage (Site 3) BD réparties Michel Tuffery 23

24 (8) Transactions distribuées Sécurité, fiabilité et continuité quoi qu il arrive Différents types de pannes Panne d une transaction en exécution Panne simple d un site Panne catastrophique d un site Notion de transaction Atomicité Cohérence Isolation Durabilité BD réparties Michel Tuffery 24

25 Panne d une transaction ou panne simple PANNE Garantir l atomicité des transactions en utilisant les mécanismes de journalisation et le protocole de validation en deux étapes Transactions réparties : commit généralisé Commit normal Le site initiateur d une transaction décide du commit Les sites exécutants obéissent SITE 1 SITE 0 SITE 2 COMMIT Rollback effectué!! Solution insuffisante COMMIT Commit effectué BD réparties Michel Tuffery 25

26 Commit à deux phases (2PC) Le site initiateur envoie, à tous les sites touchés par la transaction, un "prêt à commettre? " Chaque site répond "prêt" Le site initiateur envoie les commit à tous les sites Chaque site répond "ok" La transaction est validée quand tous les sites ont fait le commit Tous les cas d erreur sont traités grâce aux journaux sur chaque site BD réparties Michel Tuffery 26

27 Commit à deux phases SITE 1 Prêt à commettre? SITE 0 SITE 2 Prêt à commettre? Prêt Prêt Commit Commit OK État? Commit OK BD réparties Michel Tuffery 27

28 Exemples de validation en deux étapes (1) Validation normale S1 S0 S2 Prêt? Prêt? Prêt Prêt Commit Commit OK OK BD réparties Michel Tuffery 28

29 Exemples de validation en deux étapes (2) Panne de S2 avant d être prêt S1 S0 S2 Prêt? Prêt? Prêt Défaire TIMEOUT Défaire OK Reprise à chaud (rollback) BD réparties Michel Tuffery 29

30 Exemples de validation en deux étapes (3) Panne de S2 après envoi de prêt S1 S0 S2 Prêt? Prêt? Prêt Prêt Commit OK Commit Prêt Commit OK Reprise BD réparties Michel Tuffery 30

31 Exemples de validation en deux étapes (4) Panne du coordinateur S1 S0 S2 Prêt? Prêt? Prêt Prêt? Prêt Commit OK Prêt Prêt? Prêt Commit OK BD réparties Michel Tuffery 31

32 Reprise à froid après une panne catastrophique Restauration de la base à partir de la sauvegarde et du journal ("Recovery de la base") Une reprise est toujours locale Retour à un état stable de l ensemble du système réparti Le site coordinateur décide : Le site en panne peut restaurer la transaction ("prêt") et la séquence se poursuit (processus "Reco") Le site en panne ne peut restaurer la transaction : Demande à tous les sites de défaire les transactions Risque d effet domino BD réparties Michel Tuffery 32

33 Problème des accès concurrents verrou mortel global Pose de verrous sur des objets répartis Gestion d un graphe d attente réparti Graphe Qui Attend Quoi (QAQ) réparti Chaque site gère son propre graphe local et communique l information sur ses propres transactions bloquées Site 1 Site 2 T1 T3 T2 T4 BD réparties Michel Tuffery 33

34 (9), (10), (11) Indépendance du matériel, des systèmes d exploitation et du réseau Une base est "cliente" d une autre base et vice versa : architecture client - serveur C est le "connect string" ou "chaîne hôte" qui permet cette indépendance Contenu du "connect string" Protocole réseau Serveur hôte (n port) Nom de l instance de la base BD réparties Michel Tuffery 34

35 (12) Indépendance du SGBD Très difficile d arriver à cette indépendance Interfaces communes minimum : Protocole d échange Lecture et traduction des dictionnaires, types de données. Fonctions réciproques client serveur Système de mise à jour cohérent Verrouillage cohérent,.. Noyau standard avec SQL ANSI BD réparties Michel Tuffery 35

36 Création des fragments dans les bases distantes SQL-ANSI propose un ordre CREATE FRAGMENT permettant de créer les tables distantes Cet ordre permettra de conserver les règles de fragmentation dans le dictionnaire réparti Cet ordre n est pas encore implémenté Oracle propose l ordre COPY COPY est un ordre SQL+ permettant de Duplicationr un fragment d une base vers une autre en utilisant les connect string COPY possède 2 variables d environnement configurables COPYCOMMIT : intervalle du nombre de lignes transférées entre 2 COMMIT (0 : COMMIT à la fin) ARRAYSIZE : nombre de lignes transférées par chaque FETCH BD réparties Michel Tuffery 36

37 Commande COPY Syntaxe de la commande COPY FROM spécification_base1 - TO spécification_base2 - {APPEND CREATE REPLACE INSERT} - fragment [(colonnes)] - USING SELECT. APPEND : [CREATE] + INSERT Caractère ligne suite CREATE : CREATE + INSERT REPLACE : [DROP] + CREATE + INSERT INSERT : INSERT BD réparties Michel Tuffery 37

38 Exemples de COPY Création ou remplacement du fragment COPY FROM - TO - REPLACE enseignants_info - USING SELECT * FROM enseignants - WHERE ufr='info' Création d un fragment initial avec restriction verticale COPY FROM - TO - CREATE etudiant_scol(ine,nom,adr) - USING SELECT inet,nomet,adret - FROM etudiant BD réparties Michel Tuffery 38

39 Contraintes des fragments La commande COPY n exporte pas les contraintes (sauf NOT NULL) Il faut les recréer Clés primaires Clés étrangères Contraintes autres Problème pour les clés étrangères distantes Impossible d utiliser les DB LINKS (voir plus loin) Créer deux TRIGGERS : Sur le fragment fils : le père doit exister Sur le fragment père : suppression impossible si des fils sont présents BD réparties Michel Tuffery 39

40 Bases réparties : travail de compte à compte Ne pas travailler avec les véritables comptes propriétaires des données Chaque site distant doit créer un compte ayant accès aux objets répartis locaux Ces comptes 'miroir' sont crées par le DBA et reçoivent les droits d accès par les propriétaires des données réparties Chaque responsable local de la BDR ne connaît que le password des comptes 'miroir' distants BD réparties Michel Tuffery 40

41 Organisation de l ensemble base1 base2 OWNER 1 OWNER 2 GRANT GRANT DB LINK Compte miroir bdr/bdr Compte miroir bdr/bdr BD réparties Michel Tuffery 41

42 Lien inter-bases : Database Link Lien défini par un utilisateur pour relier deux bases Connaissance du user/password du compte miroir distant Utilisation du 'connect string' du serveur local pour accéder à l instance distante CREATE DATABASE LINK dbl_base2 CONNECT TO bdr IDENTIFIED by bdr USING 'vers_base2'; Nom du connect string User/password BD réparties Michel Tuffery 42

43 Manipulation des DataBase Link Suppression d un lien DROP DATABASE LINK dbl_base2; Dictionnaire de données : USER_DB_LINKS SQL> col DB_LINK format a8 SQL> col USERNAME format a8 SQL> col PASSWORD format a8 SQL> col HOST format a8 SQL> col CREATED format a8 SQL> select * from user_db_links; DB_LINK USERNAME PASSWORD HOST CREATED DB_ORA MICHEL MICHEL oracle 14/01/03 BD réparties Michel Tuffery 43

44 Utilisation des DataBase Link Sélection d un fragment distant SQL> select * from INE NOM DIPLO CYCLE étudiant 100 miag étudiant 200 stri étudiant 300 miag étudiant 400 stri2 2 Manipulation distante SQL> update SET cycle=3; 4 ligne(s) mise(s) à jour. BD réparties Michel Tuffery 44

45 Indépendance à la localisation les SYNONYMS Création d un synonyme CREATE SYNONYM etudiant FOR Suppression d un synonyme DROP SYNONYM etudiant; BD réparties Michel Tuffery 45

46 Constructions des objets virtuels Reconstitution d un objet fragmenté : VIEW CREATE VIEW etudiant (ine,nom,adr,cycle) AS SELECT inet,nomet,adret, L FROM etud_licence UNION SELECT inet,nomet,adret, M FROM etud_mastere; Reconstitution d un objet non éclaté : SYNONYM CREATE SYNONYM sequence_client FOR BD réparties Michel Tuffery 46

47 Manipulation d une base répartie les Procédures stockées Les procédures stockées ou packages se comportent comme de véritables méthodes Les données réparties sont encapsulées et ne sont pas accessibles directement aux développeurs clients Les règles de fragmentation sont dans les procédures La localisation des données est transparente aux utilisateurs : appel des procédures sans connaissance de la base La transaction est traitée dans la procédure (COMMIT / ROLLBACK) BD réparties Michel Tuffery 47

48 Manipulation d une base répartie les Triggers INSTEAD OF Ces triggers s appliquent sur des vues Les développeurs clients connaissent les objets virtuels et exécutent les ordres du LMD Les triggers INSTEAD OF prennent la main et font les mises à jour sur les fragments distants Les développeurs serveur connaissent les règles de distribution Ces triggers lèvent éventuellement des erreurs applicatives (raise_application_error) La transaction n est pas dans le Trigger mais dans le programme client BD réparties Michel Tuffery 48

49 Exemple de Trigger INSTEAD OF CREATE TRIGGER insert_etudiant INSTEAD OF INSERT ON etudiant FOR EACH ROW BEGIN IF :NEW.cycle= L THEN INSERT INTO VALUES (:NEW.ine,:NEW.nom,:NEW.adresse); INSERT INTO VALUES (:NEW.ine,:NEW.nomstage,:NEW.adstage); ELSIF :NEW.cycle= M THEN... Idem pour M et D... ELSE RAISE_APPLICATION_ERROR (-20455, Entrer M, L ou D ); END IF; END; / BD réparties Michel Tuffery 49

50 Duplication et Réplication des données réparties

51 Distribution, Duplication et Réplication Distribution BD distribuée ou répartie Sans redondance Duplication Duplication locale d un fragment éloigné maître Fragment local en lecture seule Notion de cliché ou snapshot (materialized view) Duplication synchrone (maj instantannée) ou asynchrone (maj en différé) Réplication Pas de fragment maître Duplications en miroir Réplication synchrone (emploi de jetons) ou asynchrone (problèmes de cohérence) BD réparties Michel Tuffery 51

52 Duplication de données : différentes possibilités Duplication d une base entière EXPORT IMPORT programmé Duplication d une table Create ou Copy Duplication synchrone : trigger ou trigger instead of Duplication asynchrone programmée par programmateur Duplication asynchrone assurée par Oracle : les snapshot ou vues matérialisées BD réparties Michel Tuffery 52

53 Exportation et Importation d une base Base maître Fichier de paramètres Log EXPORT Fichier export Base dupliquée IMPORT Automatisation par shell OS Fichier de paramètres Log BD réparties Michel Tuffery 53

54 Duplication d une table distante Processus simple, rapide et fiable (PUSH ou PULL) Duplication complète (sans les contraintes) CREATE TABLE copie AS SELECT * FROM Duplication d un fragment CREATE TABLE Duplication AS SELECT col1, col3, col5 FROM WHERE prédicat_de_resriction; BD réparties Michel Tuffery 54

55 Duplication d une table distante (2) Table locale existante DELETE FROM copie; INSERT INTO copie SELECT * FROM COMMIT; Marquage des lignes transférées INSERT INTO copie SELECT * FROM WHERE jeton='pas transféré' FOR UPDATE; UPDATE maître SET jeton='transféré' WHERE jeton='pas transféré'; COMMIT; BD réparties Michel Tuffery 55

56 Duplication d une table distante (3) COPY La Duplication peut être 'pilotée' à partir d un site tiers Plusieurs cas de Duplication (page 37) Duplication des données sans les contraintes Fortement utilisé pour créer les fragments répartis initiaux BD réparties Michel Tuffery 56

57 Duplication Synchrone Mise à jour instantanée de la Duplication pour toute modification de la table maître La duplication synchrone fait partie de la transaction Maître Cliché Ordre de MAJ Ordre de MAJ déclenché instantanément BD réparties Michel Tuffery 57 Duplication Synchrone

58 Duplication Synchrone : mise en œuvre avec les trigger Trigger de type 'before' qui répercute l ordre exécuté sur la table maître dans la table cliché La transaction est gérée par le client : exceptions possibles Insertion, mise à jour et suppression de données Plusieurs clichés possibles Méthode 'PUSH' Cliché 1 Maître TRIGGER Ordre de synchronisation Cliché 2 Ordre de MAJ BD réparties Michel Tuffery 58 Duplication Synchrone

59 Duplication Asynchrone par programmateur La mise à jour du cliché est différée Utilisation d un programmateur et d une file d attente Maître TRIGGER Cliché Mise de l ordre en attente Ordre de MAJ File d attente Ordre déclenché sur horloge (programmateur) BD réparties Michel Tuffery 59 Duplication Asynchrone par programmateur

60 Exemple de mise en attente d un ordre Un trigger de type 'before' est posé sur la table maître Important de conserver la séquence des ordres de mise à jour Utilisation du dblink CREATE TRIGGER mise_attente BEFORE INSERT ON maître FOR EACH ROW vordre VARCHAR(200); BEGIN vordre:='insert INTO VALUES '; INSERT INTO attente(numéro,ordre) VALUES (seq_ordre.nextval,vordre); END; BD réparties Michel Tuffery 60 Duplication Asynchrone par programmateur

61 Exemple de mise en attente d ordres Ordres de mise à jour dans maître INSERT INTO maitre VALUES('ligne1'); INSERT INTO maitre VALUES('ligne2'); INSERT INTO maitre VALUES('ligne3'); DELETE FROM maitre WHERE nom='ligne2'; UPDATE maitre SET nom='ligne33' WHERE nom='ligne3'; Table Maître SQL> SELECT * FROM maitre; NOM ligne1 ligne33 BD réparties Michel Tuffery 61 Duplication Asynchrone par programmateur

62 Exemple de mise en attente d ordres (2) Table attente SQL> select * from attente; NUMERO ORDRE insert into values('ligne1') 2 insert into values('ligne2') 3 insert into values('ligne3') 4 delete from where nom = 'ligne2' 5 update set nom = 'ligne33' where nom = 'ligne3' BD réparties Michel Tuffery 62 Duplication Asynchrone par programmateur

63 Notion de Programmateur Service de déclenchement d un processus par ordre d une horloge Logiciel installé extérieur (OS) ou interne à la base de données La table d attente peut être sur le site maître ou de Duplication Le programmateur peut être sur le site maître ou de Duplication Programmateur interne à la BD : JOBS BD réparties Michel Tuffery 63 Duplication Asynchrone par programmateur

64 Programmateur avec Oracle Processus (Unix) ou Service de type SNP Vérifier l état du service sur NT (activé) Le processus ouvre une session dans la base à intervalle régulier (programmé) et consulte les tâches Exécution en tâche de fond Utilisation multiple : sauvegarde, export, duplication, MAJ d attributs dérivés,. Exécution asynchrone BD réparties Michel Tuffery 64 Duplication Asynchrone par programmateur

65 Mise en service du programmateur (DBA) Vérification du nombre de jobs autorisés SQL> SELECT name,value FROM v$parameter 2 WHERE name LIKE '%job%'; NAME VALUE job_queue_processes 10 Si = 0, modifier le paramètre (init.ora, pfile) ou la commande système : ALTER SYSTEM SET job_queue_processes=10; au maximum Droits d exécution du package CONNECT system GRANT EXECUTE ON dbms_job TO user; BD réparties Michel Tuffery 65 Duplication Asynchrone par programmateur

66 Package DBMS_JOB Ce package permet de manipuler des taches ou JOBS Il contient des procédures : REMOVE CHANGE WHAT RUN SUBMIT BD réparties Michel Tuffery 66 Duplication Asynchrone par programmateur

67 Procédure SUBMIT Spécification PROCEDURE submit ( job OUT BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE DEFAULT sysdate, interval IN VARCHAR2 DEFAULT 'null', no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT 0, force IN BOOLEAN DEFAULT FALSE ); -- Submit a new job.chooses JOB from the -- sequence sys.jobseq. -- For example, -- variable x number; -- execute dbms_job.submit(:x,'pack.proc(''arg1'');' --,sysdate,'sysdate+1'); BD réparties Michel Tuffery 67 Duplication Asynchrone par programmateur

68 Autres Procédures REMOVE WHAT PROCEDURE remove( job IN BINARY_INTEGER ); -- Remove an existing job from the job queue. -- This currently does not stop a running job. -- execute dbms_job.remove(14144); PROCEDURE what( job IN BINARY_INTEGER, what IN VARCHAR2 ); -- Change what an existing job does, and --replace its environment NEXT_DATE PROCEDURE next_date ( job IN BINARY_INTEGER, next_date IN DATE ); -- Change when an existing job will next execute BD réparties Michel Tuffery 68 Duplication Asynchrone par programmateur

69 Exemple de manipulation de job Procédure d insertion d une ligne avec horaire drop table testjob; create table testjob (t varchar(50)); create or replace procedure test_job is heure varchar(20); begin heure:=to_char(sysdate,'hh24-mi-ss'); insert into testjob values('ajout : ' heure) ; end; / execute test_job; SQL> select * from testjob; T ajout : BD réparties Michel Tuffery 69 Duplication Asynchrone par programmateur

70 Exemple de manipulation de job (2) variable numjob number; execute dbms_job.submit(:numjob,'test_job;', sysdate,'sysdate+1/1440'); SQL>print numjob NUMJOB Attention au ; 3 SQL> select * from testjob T ajout : ajout : ajout : SQL>select job,what from user_jobs; JOB WHAT test_job; execute dbms_job.remove(3); BD réparties Michel Tuffery 70 Duplication Asynchrone par programmateur

71 Exemple de job d extraction de la file d attente Sans traiter les exceptions CREATE PROCEDURE exeordres IS CURSOR c1 is SELECT ordre FROM attente ORDER BY numero FOR UPDATE; BEGIN FOR c1rec IN c1 LOOP EXECUTE IMMEDIATE c1rec.ordre; DELETE FROM attente WHERE CURRENT OF c1; END LOOP; COMMIT; END; Le job qui lance le programmateur variable numjob number; execute dbms_job.submit(:numjob,'exeordres;', sysdate,'sysdate+1'); print numjob BD réparties Michel Tuffery 71 Duplication Asynchrone par programmateur

72 Placement du programmateur Gestion lourde pour la base (et l OS) Gestion des processus de fond Placé dans la base la moins chargée Deux types de propagations possibles PUSH Le programmateur "pousse" les ordres de MAJ PULL Le programmateur "tire" les ordres de MAJ BD réparties Michel Tuffery 72 Duplication Asynchrone par programmateur

73 Propagation par PUSH La base maître pousse vers le répliqua Maître Cliché Ordre de MAJ Mise de l ordre en attente Ordre déclenché sur horloge (programmateur) BD réparties Michel Tuffery 73 Duplication Asynchrone par programmateur

74 Propagation par PULL Le répliqua tire les modifications Maître Cliché Ordre de MAJ Mise de l ordre en attente Ordre déclenché sur horloge (programmateur) BD réparties Michel Tuffery 74 Duplication Asynchrone par programmateur

75 Gestion des erreurs Obligation de gérer les erreurs de façon autonome Plusieurs types d erreur Erreur de connexion vers le site de répliqua Violation de contraintes (?) Panne du réplicateur. Création d un journal (log) des erreurs Certaines erreurs sont irrattrapables Actions ponctuelles pour ramener à un état stable BD réparties Michel Tuffery 75 Duplication Asynchrone par programmateur

76 Duplication par Oracle Les vues matérialisées ou snapshots Technique d Oracle pour la duplication asynchrone Un cliché ou snapshot est un fragment de données en lecture seule Le cliché est rafraîchi à intervalles réguliers (refresh) ou à la demande Les rafraichissements sont complets (complete) ou différentiels (fast) Le cliché (fragment dupliqué) peut être le résultat de : Restriction verticale d une table Restriction horizontale Une jointure de plusieurs tables BD réparties Michel Tuffery 76 Duplication Asynchrone par Oracle

77 Principe général C est le site du cliché qui tire les MAJ (pull) On crée une vue matérialisée pour créer le cliché avec les méthodes de rafraîchissement et le contenu choisis Pour chaque table maître qui alimente un cliché, il faut créer un journal de vue matérialisée Ce journal contient les mises à jour différées gérées selon deux techniques possibles Par rowid (pas conseillé en cas de réorganisation de blocs) Par clé primaire (utilisé par défaut) table maître avec une clé primaire obligatoire Une table maître (un même journal) peut alimenter plusieurs fragments dupliqués BD réparties Michel Tuffery 77 Duplication Asynchrone par Oracle

78 Mise en œuvre d un rafraîchissement complet exécuté volontairement Création de la table maître sur le site maître DROP TABLE maitre; CREATE TABLE maitre (idm NUMBER PRIMARY KEY, texte varchar(20)); Création du journal de vue matérialisée sur le site maître DROP MATERIALIZED VIEW LOG ON maitre; CREATE MATERIALIZED VIEW LOG ON maitre; BD réparties Michel Tuffery 78 Duplication Asynchrone par Oracle

79 Journal de vue matérialisée De nom MLOG$_nom_de_table_maître SQL> DESC mlog$_maitre Clé primaire Nom Type IDM NUMBER Ordre du LMD SNAPTIME$$ DATE DMLTYPE$$ VARCHAR2(1) OLD_NEW$$ VARCHAR2(1) CHANGE_VECTOR$$ RAW(255) Old ou New Pour les copies multiples BD réparties Michel Tuffery 79 Duplication Asynchrone par Oracle

80 Ordre de création de vue matérialisée (1) Création sans intervalles de rafraîchissements CREATE MATERIALIZED VIEW copie REFRESH [NEVER COMPLETE FAST FORCE] AS SELECT FROM ; 4 méthodes de rafraîchissement NEVER : jamais rafraîchie COMPLETE : transfert complet FAST : transferts différentiels FORCE : FAST si possible, COMPLETE sinon BD réparties Michel Tuffery 80 Duplication Asynchrone par Oracle

81 Ordre de création de vue matérialisée (2) Création avec intervalles de rafraîchissements CREATE MATERIALIZED VIEW copie REFRESH FAST START WITH sysdate NEXT sysdate + 1 WITH PRIMARY KEY AS SELECT FROM ; Début du transfert Intervalle de rafraîchissement BD réparties Michel Tuffery 81 Duplication Asynchrone par Oracle

82 Mise en œuvre : cliché par rafraîchissement manuel Création du cliché CREATE MATERIALIZED VIEW cliché REFRESH FAST AS SELECT * FROM On utilisera la procédure refresh du package dbms_mview pour rafraîchir DBMS_MVIEW.REFRESH('nom_mv','F',NULL); F (fast) ou C (complète) BD réparties Michel Tuffery 82 Duplication Asynchrone par Oracle

83 Mises à jour sur la table maître Ordres de mise à jour INSERT INTO maitre VALUES(1,'ligne 1'); INSERT INTO maitre VALUES(2,'ligne 2'); INSERT INTO maitre VALUES(3,'ligne 3'); UPDATE maitre SET texte = 'LIGNE 1' WHERE idm=1; UPDATE maitre SET texte = 'LIGNE 3' WHERE idm=3; DELETE FROM maitre WHERE idm=2; SQL> SELECT * FROM maitre; IDM TEXTE LIGNE 1 3 LIGNE 3 BD réparties Michel Tuffery 83 Duplication Asynchrone par Oracle

84 Contenu du journal de MV La date indique qu aucun rafraîchissement n a eu lieu à partir de ce journal (pour un éventuel autre cliché) SQL> COL CHANGE_VECTOR$$ FORMAT a10 SQL> SELECT * FROM mlog$_maitre; IDM SNAPTIME D O CHANGE_VEC /01/00 I N FE 2 01/01/00 I N FE 3 01/01/00 I N FE 1 01/01/00 U U /01/00 U U /01/00 D O 00 BD réparties Michel Tuffery 84 Duplication Asynchrone par Oracle

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

10/04/2011. Serveur de données. Serveur de données. Client. Programme d'application Logiciel intermédiaire Pilote de télécommunication.

10/04/2011. Serveur de données. Serveur de données. Client. Programme d'application Logiciel intermédiaire Pilote de télécommunication. 1 BD locale BD locale Programme d'application Logiciel intermédiaire Client SGBD réparti Logiciel intermédiaire données SGBD réparti Logiciel intermédiaire données 2 Bénéfices potentiels Performance Fiabilité

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

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

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

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

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau

Plus en détail

BD parallèles et réparties

BD parallèles et réparties LOG660 - Bases de données de haute performance BD parallèles et réparties Département de génie logiciel et des TI BD parallèles vs réparties BD réparties Les données se trouvent sur plusieurs sites (noeuds)

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition.

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture

Plus en détail

Réplication des données

Réplication des données Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

Plus en détail

Bases de données réparties

Bases de données réparties Bases de données réparties J. Akoka - I. Wattiau 1 Contexte Technologique : des solutions de communication efficace entre les machines des SGBD assurent la transparence des données réparties standardisation

Plus en détail

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

Le TP cherche à simuler le fonctionnement de ce groupe hospitalier en utilisant le principe des Bases de données réparties.

Le TP cherche à simuler le fonctionnement de ce groupe hospitalier en utilisant le principe des Bases de données réparties. Base de données Avancée (BDA) 2012/2013, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Thème : Implémentation d une BD Répartie : Liens, vue matérialisé, snapshot, intégrité révérencielle et déclencheur

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

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1 3 - Administration de BD SQL Chapitre III Administration des BD SQL 3.1 Création de BD 3.2 Gestion des utilisateurs 3.3 Administration des transactions 3.4 Accès à une BD distante 3.5 Conclusions Composants

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

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et

Plus en détail

PL/SQL Procedural Language Extensions to SQL

PL/SQL Procedural Language Extensions to SQL PL/SQL Procedural Language Extensions to SQL Il permet : - l'utilisation d'un sous-ensemble du langage SQL, - la mise en œuvre de structures procédurales, - la gestion des erreurs. L'une des plus importantes

Plus en détail

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données Considérons une partie d un modèle conceptuel de données avec les schémas d entités suivants: EMP(EmpNo, Enom, Job, DirNo, Sal, Prime) DEPT(DeptNo, Dnom, Adr) Où EmpNo est la clé primaire de EMP et DeptNo

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

2 ème PARTIE : LE LANGAGE SQL

2 ème PARTIE : LE LANGAGE SQL 2 ème PARTIE : LE LANGAGE SQL PLAN : I. Le langage de manipulation des données II. Le langage de définition des données III. Administration de la base de données IV. Divers (HORS PROGRAMME) Introduction:

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

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle 1. a Ajouter un CHECK sur la table LigneCommande ALTER TABLE LigneCommande ADD (CONSTRAINT XXX CHECK (noarticle

Plus en détail

Triggers Introduction à PL-SQL Céline Rouveirol. d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/

Triggers Introduction à PL-SQL Céline Rouveirol. d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/ Triggers Introduction à PL-SQL Céline Rouveirol d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/ 1 Triggers: Motivation Les vérifications de contraintes (attribut ou n-uplet)

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

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

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

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

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours IFT3030 Base de données Chapitre 6 SQL Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL I Gestion des utilisateurs et de leurs privilèges I.1 Gestion

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

Base de données II Module 3b

Base de données II Module 3b Base de données II Module 3b Bases de données répliquées Environnement Oracle et SQL Server Eddy.Meylan@hegne.ch E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 1 Plan

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

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

Plus en détail

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique Bases de données Jean-Yves Antoine VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr L3 S&T mention Informatique Bases de Données IUP Vannes, UBS J.Y. Antoine 1 Bases de données SGBD

Plus en détail

Langage de Requêtes. talel@infres.enst.fr

Langage de Requêtes. talel@infres.enst.fr Langage de Requêtes talel@infres.enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.

Plus en détail

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers Programme détaillé Objectifs de la formation Les systèmes de gestion de bases de données prennent aujourd'hui une importance considérable au regard des données qu'ils hébergent. Véritable épine dorsale

Plus en détail

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique Cours (Master 1) : Bases de Données Avancées, (Responsable : A. AIT BOUZIAD) SQL PROCEDURAL Dans les différentes parties

Plus en détail

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Déclencheurs Bases de Données TRIGGER C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Généralités Un déclencheur est un traitement (sous forme de bloc PL/SQL) qui s exécute automatiquement

Plus en détail

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

Bases de données. Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND

Bases de données. Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND Bases de données Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND Polytech Marseille Université d Aix-Marseille 2012-2013 Nicolas DURAND Bases de données

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html 012345678901234567890123 INTRODUCTION A SQL SQL = Structured Query Language SEQUEL = Structured English as a QUEry Language standard ISO depuis 87. Avantages : implanté + ou - complètement sur principaux

Plus en détail

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue.

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue. SQL Ch 9 DDL Vues, PL/SQL, procédures,... I. INTRODUCTION... 1 II. LES VUES (ANGLAIS «VIEWS»)... 1 A. CREER UNE VUE : CREATE VIEW... 1 B. SUPPRIMER UNE VUE DROP VIEW... 3 III. LANGAGE PL/SQL, PROCEDURES

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

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 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

Plus en détail

Chapitre 2 : Conception de BD Réparties

Chapitre 2 : Conception de BD Réparties 2/22 Chapitre 2 : Conception de BD Réparties 2/22 Introduction Une BDR diffère d'une BD centralisée avec certains concepts nouveaux qui sont particuliers à la répartition des données.. Méthode de conception

Plus en détail

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

Bases de données avancées Triggers

Bases de données avancées Triggers Bases de données avancées Triggers Wies law Zielonka 12 décembre 2009 Résumé Ces notes ne sont pas corrigées, mais peut-être vous les trouverez quand même utiles pour préparer l examen ou projet. Ne pas

Plus en détail

2.1/ Les privilèges sous oracle

2.1/ Les privilèges sous oracle LP Informatique(DA2I), UF7 : Administration Système, Réseaux et Base de données 13/12/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 2 : Transaction,

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

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

Plus en détail

Configurer la supervision pour une base MS SQL Server Viadéis Services

Configurer la supervision pour une base MS SQL Server Viadéis Services Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

Programmer avec PL/SQL

Programmer avec PL/SQL Programmer avec PL/SQL École Supérieure de la Statistique et de l Analyse de l Information (ESSAI) Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures

Plus en détail

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

Cours 2 : SQL Structured Query Language

Cours 2 : SQL Structured Query Language Cours 2 : SQL Structured Query Language SQL Langage permettant de définir, manipuler et contrôler les données d une BD relationnelle Objet d une norme de l Institut National Américain de Normalisation

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

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche Répartition, Parallèlisation, hétérogénéité dans les SGBD AI Mouaddib Département Informatique Université de Caen Systèmes d informations nouvelles générations! Constat :! Utilisation de nouveaux support

Plus en détail

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1 Cours 6 Sécurisation d un SGBD DBA - M1ASR - Université Evry 1 Sécurisation? Recette d une application Vérification des fonctionnalités Vérification de l impact sur le SI existant Gestion du changement

Plus en détail

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont Faculté de Sciences Économiques et de Gestion Bases de données Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont http://eric.univ-lyon2.fr/~jdarmont/ Plan du cours I. Introduction II. Le

Plus en détail

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Bases de données Programmation PL/SQL LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Plan I. Vue d ensemble et principes de fonctionnement II. Eléments de programmation III.

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 11 : Les tables comme objets (3ème partie) Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Tables objet Rappels Exemple d insertion Sélection 2 Vues

Plus en détail

DECLARE : n'est nécessaire que si il y a des déclarations locales au bloc.

DECLARE : n'est nécessaire que si il y a des déclarations locales au bloc. Introduction Utilisation de PL/SQL : Procedural Language : langage de développement pour Oracle PL/SQL est un langage hôte, ce qui signifie qu'il peut accueillir des ordres SQL, il est proche du Pascal

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Table des matières PRÉAMBULE... MODULE 1 : PRÉSENTATION DE L ENVIRONNEMENT... 1-1 Qu'est-ce

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

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

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

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

Les transactions 1/40. 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/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/40 2/40 Pourquoi? Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 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

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

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

Master Exploration Informatique des données DataWareHouse

Master Exploration Informatique des données DataWareHouse Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

Administration des bases de données

Administration des bases de données Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données III Protection des données : contrôles d accès OBJECTIFS 3.1. NOTIONS 3.1.1.

Plus en détail

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

Plus en détail

Il est nécessaire de connaître au moins un système d'exploitation de type graphique.

Il est nécessaire de connaître au moins un système d'exploitation de type graphique. GBD-030 Oracle Prise en main Saint-Denis à 9h30 5 jours Objectifs : Une formation Oracle complète pour découvrir tous les concepts du système et les différentes façons de les utiliser concrètement tout

Plus en détail

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

Plus en détail

Stéphane Bortzmeyer

Stéphane Bortzmeyer <stephane+blog@bortzmeyer.org> De l intérêt des règles d intégrité dans un SGBD Stéphane Bortzmeyer Première rédaction de cet article le 17 janvier 2008 Il semble que l utilisation des règles d intégrité

Plus en détail

Développer en PL/SQL. Sommaire du cours

Développer en PL/SQL. Sommaire du cours Sommaire du cours Module 1 Introduction et Rappels Module 2 Eléments de langage PL/SQL Module 3 Accès à la Base de données Module 4 Traitements stockés Module 5 Gestion des exceptions Module 6 - Compléments

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

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

SURETE DE FONCTIONNEMENT ET REPRISE APRES PANNE

SURETE DE FONCTIONNEMENT ET REPRISE APRES PANNE Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ARCHITECTURE ET ADMINISTRATION DES BASES DE DONNÉES 2013-2014 RESPONSABLES M. KAMEL BOUKHALFA (SII)

Plus en détail

Administration des bases de données

Administration des bases de données Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données IV SGBD Transactionnels : protection et sécurité des données OBJECTIFS

Plus en détail

Architecture des SGBD Architecture centralisée

Architecture des SGBD Architecture centralisée Chapitre 1 Université du Havre MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES 2013/20134 COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : nakech@free.fr 1. Introduction : Notion de Bases

Plus en détail

Chapitre 1. 1. Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Chapitre 1. 1. Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties Université du Havre MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES 2010/2011 COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : nakech@free.fr Chapitre 1 1. Introduction : Notion de Bases

Plus en détail

Programme accédant et/ou modifiant des données persistantes (fichier ou BD) avec propriétés :

Programme accédant et/ou modifiant des données persistantes (fichier ou BD) avec propriétés : Transaction réservation(date, nbplace) select reste into r from RESERVATION where dateresa=:date si (r >= nbplace) alors update RESERVATION set reste=reste-nbplace where dateresa=:date éditer-place(date,

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Oracle : Langage PL/SQL

Oracle : Langage PL/SQL 1 Introduction à PL/SQL Oracle : Langage PL/SQL PL/SQL est un langage de programmation procédural et structuré. 1.1 Langage de programmation Il contient un ensemble d'instructions permettant de mettre

Plus en détail

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar Bases de données Ecole Marocaine des Sciences de l Ingénieur Yousra Lembachar Déclencheurs Qu est-ce qu un déclencheur? Un déclencheur ou une règle ECA est de la forme: «Quand un Evénement se produit,

Plus en détail

Les utilisateurs correspondent aux comptes (login et mot de passe) permettant de demander une connexion au SGBD (une personne ou une application).

Les utilisateurs correspondent aux comptes (login et mot de passe) permettant de demander une connexion au SGBD (une personne ou une application). SQL Ch 10 DCL Utilisateurs, privilèges, rôles I. INTRODUCTION... 1 II. LES UTILISATEURS ( «USERS»)... 1 A. CREER UN UTILISATEUR : USER... 1 B. MODIFIER UN UTILISATEUR : ALTER USER... 2 C. SUPPRIMER UN

Plus en détail