SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
BASES DE DONNÉES RÉPARTIES
(BDRÉ)
La pratique

Abdelouahed Sabri 2011/2012
abdelouahed.sabri@gmail.com

1
2

Introduction
Dans un SGBDRé, on suppose que les données soient
stockées sur au moins deux sites.
Dans ce TP, nous allons utiliser au moins deux ordinateurs
(on peut utiliser un ordinateur et une machine virtuelle)
avec Oracle installé sur chacun
Les deux ordinateurs utilisés doivent être reliés grâce à un
réseau TCP/IP

Abdelouahed Sabri 2011/2012
3

Introduction
Pour se connecter au SGBD Oracle, il faut fournir trois
paramètres :
Le nom d'utilisateur
Le mot de passe
L'alias : il renseigne sur plusieurs données à la fois :
• Le protocole réseau utilisé pour accéder à la machine cible,
• Le nom ou l'adresse de la machine cible sur laquelle se situe le
serveur,
• Le SID cible ou le nom global de la base,
• Le port d'écoute du serveur.

Abdelouahed Sabri 2011/2012
4

Introduction
Le processus d'écoute Oracle (LISTNER):
Le processus d'écoute Oracle est un service permettant à des
clients d'utiliser le protocole TCP pour accéder une base de
données distante
Le fichier de configuration du LISTENR se trouve dans
$ORACLE_HOME/Network/Admin/ et se nomme « listener.ora ».
Dans ce fichier on peut configurer :
• le nom de la machine (HOST), le port (par défaut est 1521) et le nom
du service d’écoute (DEFAULT_SERVICE_LISTENER).
 Utiliser Oracle Net Manager pour configurer le LISTENER

Abdelouahed Sabri 2011/2012
5

Introduction
Le processus d'écoute Oracle (LISTNER):

Protocole = TCP,
HOST = Pc-de-hp,
PORT = 1521
DEFAULT_SERVICE_LISTENER = (XE).
Abdelouahed Sabri 2011/2012
6

Préparation des utilisateurs
Sur chaque site, créer un utilisateur avec les droits suffisants.
Sur la machine 1 (le site 1) : utilisateur : BDRE1. Mot de passe : 1111
CREATE USER BDRE1 IDENTIFIED BY "1111";
GRANT ALL PRIVILEGES TO BDRE1;
-- ou bien
GRANT connect, resource, create view, create database link, create snapshot TO BDRE1;

Sur la machine 2 (le site 2) : utilisateur : BDRE2. Mot de passe : 2222
CREATE USER BDRE2 IDENTIFIED BY "2222";
GRANT ALL PRIVILEGES TO BDRE2;

Abdelouahed Sabri 2011/2012
7

Les liens de base de données entre les sites
Pour interroger une BD distante, il faut créer un lien de
base de données.
Un lien de base de données est un chemin unidirectionnel
d’un serveur à un autre.
Un client connecté à une BD A, peut utiliser un lien stocké dans la
BD A pour accéder à la BD distante B, mais les utilisateurs
connectés à B ne peuvent pas utiliser le même lien pour accéder
aux données sur A.
 Dans chaque Site on doit créer un lien vers les autres sites.

Abdelouahed Sabri 2011/2012
8

Les liens de base de données entre les sites
La syntaxe pour la création d’un lien est la suivante:
CREATE [SHARED|PUBLIC|PRIVATE] DATABASE LINK Nom_du_Lien
CONNECT TO { CURRENT_USER | User IDENTIFIED BY password} USING connect_string ;

La clause USING connect_string spécifie le nom de service d’une base
distante.
Les noms de service d’instances sont stockés dans le fichier de configuration
« tnsnames.ora » du serveur distant localisé dans le dossier:
«$ORACLE_HOME/Network/Admin/ »

Abdelouahed Sabri 2011/2012
9

Les liens de base de données entre les sites
Sur le premier site:
CREATE PUBLIC DATABASE LINK site1TOsite2 CONNECT TO BDRE2 IDENTIFIED BY "2222"
USING '192.168.56.2:1521/XE';

Pour tester le bon fonctionnement du lien:
SELECT sysdate FROM dual@site1TOsite2;

Sur le deuxième site:
CREATE PUBLIC DATABASE LINK site2TOsite1 CONNECT TO BDRE1 IDENTIFIED BY "1111"
USING '192.168.56.1:1521/XE';

Pour tester le bon fonctionnement du lien:
SELECT sysdate FROM dual@site2TOsite1;
Abdelouahed Sabri 2011/2012
10

Les liens de base de données entre les sites
Pour supprimer un lien:
DROP [SHARED|PUBLIC|PRIVATE] DATABASE LINK nom_du_lien;

Pour afficher les liens déjà crées:
SELECT * FROM dba_db_links;

NB: Lorsqu’un lien est référencé par une instruction SQL, Oracle
ouvre une session dans la base distante et y exécute
l’instruction
La session reste ouverte au cas où elle serait de nouveau nécessaire
Abdelouahed Sabri 2011/2012
11

Transparence vis-à-vis de la localisation:
Synonymes
Pour référencer une base de données dans un système
distribué, on utilise le nom global ou le lien de base de
données.
SELECT sysdate FROM dual@site1TOsite2;
Mais afin de converger plus vers l'un des objectifs de la répartition
des bases de données qui est la transparence vis-à-vis de la
localisation, Oracle utilise des synonymes dont le rôle est de
masquer le nom du lien de base de données.

Syntaxe:
CREATE OR REPLACE [PUBLIC] SYNONYM nom_du_synonyme
FOR [schéma.]nom-objet[@Nom_du_Lien] ;
Abdelouahed Sabri 2011/2012
12

Transparence vis-à-vis de la localisation:
Synonymes
Exemple:
Sur le premier site:
• On suppose qu’il existe une table nommée « perso » sur le site 2.
• Sur le site 1, on va créer un synonyme noté « perso » pour cette table
sur le site 1
CREATE OR REPLACE PUBLIC SYNONYM perso FOR
perso@site1TOsite2;
• Pour tester:
SELECT *FROM perso;
Abdelouahed Sabri 2011/2012
13

Transparence vis-à-vis de la localisation:
Synonymes
Exemple (suite):
Sur le deuxième site:
• On suppose qu’il existe une table nommée « profession » sur le site 1.
• Sur le site 2, on va créer un synonyme noté « profession » pour cette table sur
le site 1
CREATE OR REPLACE
profession@site2TOsite1;

PUBLIC

SYNONYM

profession

FOR

• Pour tester:
SELECT *FROM profession ;

Pour supprimer un synonyme:
DROP SYNONYM nom_du_synonyme;
Abdelouahed Sabri 2011/2012
14

Copier les données entre deux bases de données
La commande COPY de SQL*Plus permet de copier des données entre deux SGBD’s
La meilleure utilisation est d’exécuter cette commande sur la machine où réside la
base de données.
La syntaxe est la suivante :

COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]
USING query
database a la syntaxe suivante: username[/password]@connect_identifier
APPEND : si la table n'existe pas (CREATE + INSERT) sinon (INSERT)
CREATE : si la table n'existe pas (CREATE + INSERT) sinon (erreur)
REPLACE : si la table n'existe pas (CREATE + INSERT) sinon (DROP + CREATE + INSERT)
INSERT : si la table n'existe pas (ERREUR) sinon (INSERT)
NB: La commande COPY n’exporte pas les contraintes (sauf NOT NULL)

Exemple:

COPY FROM BDRE1/1111@192.168.56.1/XE TO BDRE2/2222@192.168.56.2/XE REPLACE Agence
USING SELECT *FROM Agence;
Abdelouahed Sabri 2011/2012
15

Transparence vis-à-vis de la fragmentation:
Vues
Un des principaux objectifs de bases de données réparties est
la transparence à la fragmentation.
Ainsi, même fragmentés, les enregistrements doivent apparaitre
comme sur un seul site.
Pour ceci, on utilise les vues : View

Les utilisateurs pourront consulter la base, ou modifier la base
(avec certaines restrictions) à travers la vue, c'est-à-dire
manipuler la table résultat du SELECT comme si c'était une
table réelle.
La syntaxe pour créer une vue est la suivante :
CREATE VIEW nom_vue [(nom_col1,...)]
AS SELECT ...
[WITH CHECK OPTION];

Abdelouahed Sabri 2011/2012
16

Transparence vis-à-vis de la fragmentation:
Vues (suite)
Exemple :
Création d'une vue constituant une restriction de la table emp aux
employés du département 10.
CREATE VIEW emp10 AS SELECT * FROM emp WHERE n_dept = 10;
 INSERT INTO emp10 VALUES (15, 'Mohamed‘, 25, 25);
Equivalent à : INSERT INTO emp VALUES (15, 'Mohamed‘, 25, 25);

Exemple :
CREATE VIEW emp10 AS SELECT * FROM emp WHERE n_dept = 10 WITH
CHECK OPTION ;
Les insertion et modification suivantes ne sont pas autorisées:
INSERT INTO emp10 VALUES (15, 'Mohamed‘, 45, 25);
UPDATE emp SET n_dept =25;
Abdelouahed Sabri 2011/2012
17

Transparence vis-à-vis de la fragmentation:
Vues (suite)
Pour supprimer une vue
DROP VIEW nom_vue;

Pour renommer une vue :
RENAME ancien_nom TO nouveau_nom

Abdelouahed Sabri 2011/2012
18

Transparence vis-à-vis de la fragmentation:
Vues (suite)
Certaines vues peuvent être l’objet de mise à jour par les
instructions INSERT, UPDATE, DELETE.
Les restrictions imposées par Oracle sur la requête de la vue afin que
celle-ci soit modifiable :
•
•
•
•
•

Pas d’opérateurs ensemblistes
Pas de fonction d’agrégation
Pas de clause group by ou order by
Pas de sous-requête
Pas de collection dans un select (objet-relationnel)

Dans le cas contraire, on fait appel aux déclencheurs INSTEAD OF.
 Les triggers INSTEAD OF prennent la main et font les mises à jour
sur les fragments distants.
Abdelouahed Sabri 2011/2012
19

Transparence vis-à-vis de la fragmentation:
Les triggers INSTEAD OF
La syntaxe est la suivante:
CREATE TRIGGER nom_du_declencheur
INSTEAD OF {INSERT | UPDATE | DELETE} ON nom_de_la_vue
FOR EACH ROW
BEGIN
…
END ;

Exemple
CREATE TRIGGER tr_emp10
INSTEAD OF INSERT ON emp10
FOR EACH ROW
BEGIN
INSERT INTO emp VALUES (:new.NO, :new.nom, :new.n_dept,:new.age);
END ;
Abdelouahed Sabri 2011/2012
20

Duplication
La première option consiste à répliquer régulièrement les
données sur le serveur local.
Duplication synchrone: diffuser immédiatement les modifications
apportées aux données sources vers les copies
• Utilisation des TRIGGER ou TRIGGER INSTEAD OF

Duplication asynchrone: diffuser les modifications apportées aux
données sources vers les copies à des intervalles prédéfinis.
• utilisation de SNAPSHOT (clichés) ou Mateliarised view (vues
matérialisées)

Abdelouahed Sabri 2011/2012
21

Duplication
Asynchrone
Snapshots:
Un snapshot est une copie conforme d'une table (ou
plusieurs) située sur une base de donnée du système
distribué
Il permet de diminuer les coûts réseau, en rendant local les
données situées à distance
• Afin d'assurer la cohérence de données, une mise à jour
régulière et automatique est effectuée à partir du site d'origine
ou MASTER

2 types: en lecture seule (read-only) ou mis à jour
(updateable)
Abdelouahed Sabri 2011/2012
22

Duplication
Asynchrone (suite)
Les read-only Snapshots: non modifiables à partir du site
esclave.
Syntaxe:
CREATE SNAPSHOT nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation
AS
requéte_select;

FAST: Le mode rapide permet de faire un rafraîchissement en tenant compte seulement des
mises à jour effectuées sur le site Maître.


Un SNAPSHOT LOG doit être crée pour la table Maître afin de noter les différents changements
subvenus qui seront répercutés sur le snapshot:
CREATE SNAPSHOT LOG ON nom_de_la_table;
Abdelouahed Sabri 2011/2012
23

Duplication
Asynchrone (suite)
Les read-only Snapshots: non modifiables à partir du site
esclave.
Syntaxe:
CREATE SNAPSHOT nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation
AS
requéte_select;

COMPLETE: à chaque rafraîchissement, toute la table est transférée.
 Ce mode est obligatoire pour les snapshots complexes,
NB:
 Un snapshot est dit simple si la requête SELECT ne contient pas d’opération
ensemblistes ni de clause ORDER BY
 Un snapshot est dit complexe dans le cas contraire
Abdelouahed Sabri 2011/2012
24

Duplication
Asynchrone (suite)
Les read-only Snapshots: non modifiables à partir du site
esclave.
Syntaxe:
CREATE SNAPSHOT nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation
AS
requéte_select;

FORCE: Un rafraîchissement rapide est d'abords tenté; s'il ne marche pas le rafraîchissement
complet est effectué.

Abdelouahed Sabri 2011/2012
25

Duplication
Asynchrone (suite)
Les read-only Snapshots: non modifiables à partir du site
esclave.
Syntaxe:
CREATE SNAPSHOT nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation
AS
requéte_select;

Exemple:
CREATE SNAPSHOT emp_snap_fast
REFRESH FAST START WITH Sysdate NEXT Systdate + 1
AS SELECT * FROM emp@site1tosite2 WHERE n_dept = 10 ;

NB: les table emp doit avoir une clef primaire

Abdelouahed Sabri 2011/2012
26

Duplication
Asynchrone (suite)
Les updateable Snapshots:
Les snapshots de mise à jour peuvent être directement modifiés.
Dans ce cas, les données mises à jour à leur niveau sont répliquées vers le site
Master lors du processus de rafraîchissement.

Syntaxe:
CREATE SNAPSHOT nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation
ENABLE QUERY REWRITE
AS
requéte_select;

Exemple:
CREATE materialized view emp_snap_fast
REFRESH COMPLETE START WITH Sysdate NEXT Sysdate + 1
Enable QUERY REWRITE
AS SELECT ID, NOM FROM emp@site1tosite2 WHERE n_dept = 10 ;
Abdelouahed Sabri 2011/2012
27

Duplication
Asynchrone (suite)
Modifier une vue matérialisée
ALTER materialized view nom_snapshot
[REFRESH
FAST | COMPLETE | FORCE]
START WITH
date_de_debut_de_synchronisation
NEXT
date_de_la_prochaine_synchronisation;

Abdelouahed Sabri 2011/2012

Mais conteúdo relacionado

Mais procurados

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuéekamar MEDDAH
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveurAmeni Ouertani
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 

Mais procurados (20)

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 

Destaque

Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlZineb Meryem
 
Introduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLIntroduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLRouff Joseph
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosqlGUSS
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réelSmile I.T is open
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)Alphorm
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm
 

Destaque (12)

Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sql
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Introduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLIntroduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQL
 
Triggers ppt
Triggers pptTriggers ppt
Triggers ppt
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql
 
Trigger
TriggerTrigger
Trigger
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
 

Semelhante a Bases de données réparties par la pratique

Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)Aymeric Weinbach
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfYasushiTsubakik
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Microsoft Technet France
 
SQL Azure, la base de données dans le cloud
SQL Azure, la base de données dans le cloudSQL Azure, la base de données dans le cloud
SQL Azure, la base de données dans le cloudMicrosoft Technet France
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpheremodelspherepro
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSOSL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSOClément OUDOT
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurMicrosoft Technet France
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASGuillaume Sauthier
 

Semelhante a Bases de données réparties par la pratique (20)

Interfaces controlesbasededonné
Interfaces controlesbasededonnéInterfaces controlesbasededonné
Interfaces controlesbasededonné
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdf
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...Construire des bases de données qui montent en charge avec SQL Azure Database...
Construire des bases de données qui montent en charge avec SQL Azure Database...
 
SQL Azure, la base de données dans le cloud
SQL Azure, la base de données dans le cloudSQL Azure, la base de données dans le cloud
SQL Azure, la base de données dans le cloud
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSphere
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
Springioc
SpringiocSpringioc
Springioc
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSOSL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 

Mais de Abdelouahed Abdou

Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CAbdelouahed Abdou
 
Atelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAtelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAbdelouahed Abdou
 
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Abdelouahed Abdou
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Abdelouahed Abdou
 
Atelier1 mise en place d’odoo
Atelier1   mise en place d’odooAtelier1   mise en place d’odoo
Atelier1 mise en place d’odooAbdelouahed Abdou
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'imagesAbdelouahed Abdou
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008Abdelouahed Abdou
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Abdelouahed Abdou
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 

Mais de Abdelouahed Abdou (14)

Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
Atelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAtelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odoo
 
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 
Atelier1 mise en place d’odoo
Atelier1   mise en place d’odooAtelier1   mise en place d’odoo
Atelier1 mise en place d’odoo
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 

Último

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 

Último (20)

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 

Bases de données réparties par la pratique

  • 1. BASES DE DONNÉES RÉPARTIES (BDRÉ) La pratique Abdelouahed Sabri 2011/2012 abdelouahed.sabri@gmail.com 1
  • 2. 2 Introduction Dans un SGBDRé, on suppose que les données soient stockées sur au moins deux sites. Dans ce TP, nous allons utiliser au moins deux ordinateurs (on peut utiliser un ordinateur et une machine virtuelle) avec Oracle installé sur chacun Les deux ordinateurs utilisés doivent être reliés grâce à un réseau TCP/IP Abdelouahed Sabri 2011/2012
  • 3. 3 Introduction Pour se connecter au SGBD Oracle, il faut fournir trois paramètres : Le nom d'utilisateur Le mot de passe L'alias : il renseigne sur plusieurs données à la fois : • Le protocole réseau utilisé pour accéder à la machine cible, • Le nom ou l'adresse de la machine cible sur laquelle se situe le serveur, • Le SID cible ou le nom global de la base, • Le port d'écoute du serveur. Abdelouahed Sabri 2011/2012
  • 4. 4 Introduction Le processus d'écoute Oracle (LISTNER): Le processus d'écoute Oracle est un service permettant à des clients d'utiliser le protocole TCP pour accéder une base de données distante Le fichier de configuration du LISTENR se trouve dans $ORACLE_HOME/Network/Admin/ et se nomme « listener.ora ». Dans ce fichier on peut configurer : • le nom de la machine (HOST), le port (par défaut est 1521) et le nom du service d’écoute (DEFAULT_SERVICE_LISTENER).  Utiliser Oracle Net Manager pour configurer le LISTENER Abdelouahed Sabri 2011/2012
  • 5. 5 Introduction Le processus d'écoute Oracle (LISTNER): Protocole = TCP, HOST = Pc-de-hp, PORT = 1521 DEFAULT_SERVICE_LISTENER = (XE). Abdelouahed Sabri 2011/2012
  • 6. 6 Préparation des utilisateurs Sur chaque site, créer un utilisateur avec les droits suffisants. Sur la machine 1 (le site 1) : utilisateur : BDRE1. Mot de passe : 1111 CREATE USER BDRE1 IDENTIFIED BY "1111"; GRANT ALL PRIVILEGES TO BDRE1; -- ou bien GRANT connect, resource, create view, create database link, create snapshot TO BDRE1; Sur la machine 2 (le site 2) : utilisateur : BDRE2. Mot de passe : 2222 CREATE USER BDRE2 IDENTIFIED BY "2222"; GRANT ALL PRIVILEGES TO BDRE2; Abdelouahed Sabri 2011/2012
  • 7. 7 Les liens de base de données entre les sites Pour interroger une BD distante, il faut créer un lien de base de données. Un lien de base de données est un chemin unidirectionnel d’un serveur à un autre. Un client connecté à une BD A, peut utiliser un lien stocké dans la BD A pour accéder à la BD distante B, mais les utilisateurs connectés à B ne peuvent pas utiliser le même lien pour accéder aux données sur A.  Dans chaque Site on doit créer un lien vers les autres sites. Abdelouahed Sabri 2011/2012
  • 8. 8 Les liens de base de données entre les sites La syntaxe pour la création d’un lien est la suivante: CREATE [SHARED|PUBLIC|PRIVATE] DATABASE LINK Nom_du_Lien CONNECT TO { CURRENT_USER | User IDENTIFIED BY password} USING connect_string ; La clause USING connect_string spécifie le nom de service d’une base distante. Les noms de service d’instances sont stockés dans le fichier de configuration « tnsnames.ora » du serveur distant localisé dans le dossier: «$ORACLE_HOME/Network/Admin/ » Abdelouahed Sabri 2011/2012
  • 9. 9 Les liens de base de données entre les sites Sur le premier site: CREATE PUBLIC DATABASE LINK site1TOsite2 CONNECT TO BDRE2 IDENTIFIED BY "2222" USING '192.168.56.2:1521/XE'; Pour tester le bon fonctionnement du lien: SELECT sysdate FROM dual@site1TOsite2; Sur le deuxième site: CREATE PUBLIC DATABASE LINK site2TOsite1 CONNECT TO BDRE1 IDENTIFIED BY "1111" USING '192.168.56.1:1521/XE'; Pour tester le bon fonctionnement du lien: SELECT sysdate FROM dual@site2TOsite1; Abdelouahed Sabri 2011/2012
  • 10. 10 Les liens de base de données entre les sites Pour supprimer un lien: DROP [SHARED|PUBLIC|PRIVATE] DATABASE LINK nom_du_lien; Pour afficher les liens déjà crées: SELECT * FROM dba_db_links; NB: Lorsqu’un lien est référencé par une instruction SQL, Oracle ouvre une session dans la base distante et y exécute l’instruction La session reste ouverte au cas où elle serait de nouveau nécessaire Abdelouahed Sabri 2011/2012
  • 11. 11 Transparence vis-à-vis de la localisation: Synonymes Pour référencer une base de données dans un système distribué, on utilise le nom global ou le lien de base de données. SELECT sysdate FROM dual@site1TOsite2; Mais afin de converger plus vers l'un des objectifs de la répartition des bases de données qui est la transparence vis-à-vis de la localisation, Oracle utilise des synonymes dont le rôle est de masquer le nom du lien de base de données. Syntaxe: CREATE OR REPLACE [PUBLIC] SYNONYM nom_du_synonyme FOR [schéma.]nom-objet[@Nom_du_Lien] ; Abdelouahed Sabri 2011/2012
  • 12. 12 Transparence vis-à-vis de la localisation: Synonymes Exemple: Sur le premier site: • On suppose qu’il existe une table nommée « perso » sur le site 2. • Sur le site 1, on va créer un synonyme noté « perso » pour cette table sur le site 1 CREATE OR REPLACE PUBLIC SYNONYM perso FOR perso@site1TOsite2; • Pour tester: SELECT *FROM perso; Abdelouahed Sabri 2011/2012
  • 13. 13 Transparence vis-à-vis de la localisation: Synonymes Exemple (suite): Sur le deuxième site: • On suppose qu’il existe une table nommée « profession » sur le site 1. • Sur le site 2, on va créer un synonyme noté « profession » pour cette table sur le site 1 CREATE OR REPLACE profession@site2TOsite1; PUBLIC SYNONYM profession FOR • Pour tester: SELECT *FROM profession ; Pour supprimer un synonyme: DROP SYNONYM nom_du_synonyme; Abdelouahed Sabri 2011/2012
  • 14. 14 Copier les données entre deux bases de données La commande COPY de SQL*Plus permet de copier des données entre deux SGBD’s La meilleure utilisation est d’exécuter cette commande sur la machine où réside la base de données. La syntaxe est la suivante : COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)] USING query database a la syntaxe suivante: username[/password]@connect_identifier APPEND : si la table n'existe pas (CREATE + INSERT) sinon (INSERT) CREATE : si la table n'existe pas (CREATE + INSERT) sinon (erreur) REPLACE : si la table n'existe pas (CREATE + INSERT) sinon (DROP + CREATE + INSERT) INSERT : si la table n'existe pas (ERREUR) sinon (INSERT) NB: La commande COPY n’exporte pas les contraintes (sauf NOT NULL) Exemple: COPY FROM BDRE1/1111@192.168.56.1/XE TO BDRE2/2222@192.168.56.2/XE REPLACE Agence USING SELECT *FROM Agence; Abdelouahed Sabri 2011/2012
  • 15. 15 Transparence vis-à-vis de la fragmentation: Vues Un des principaux objectifs de bases de données réparties est la transparence à la fragmentation. Ainsi, même fragmentés, les enregistrements doivent apparaitre comme sur un seul site. Pour ceci, on utilise les vues : View Les utilisateurs pourront consulter la base, ou modifier la base (avec certaines restrictions) à travers la vue, c'est-à-dire manipuler la table résultat du SELECT comme si c'était une table réelle. La syntaxe pour créer une vue est la suivante : CREATE VIEW nom_vue [(nom_col1,...)] AS SELECT ... [WITH CHECK OPTION]; Abdelouahed Sabri 2011/2012
  • 16. 16 Transparence vis-à-vis de la fragmentation: Vues (suite) Exemple : Création d'une vue constituant une restriction de la table emp aux employés du département 10. CREATE VIEW emp10 AS SELECT * FROM emp WHERE n_dept = 10;  INSERT INTO emp10 VALUES (15, 'Mohamed‘, 25, 25); Equivalent à : INSERT INTO emp VALUES (15, 'Mohamed‘, 25, 25); Exemple : CREATE VIEW emp10 AS SELECT * FROM emp WHERE n_dept = 10 WITH CHECK OPTION ; Les insertion et modification suivantes ne sont pas autorisées: INSERT INTO emp10 VALUES (15, 'Mohamed‘, 45, 25); UPDATE emp SET n_dept =25; Abdelouahed Sabri 2011/2012
  • 17. 17 Transparence vis-à-vis de la fragmentation: Vues (suite) Pour supprimer une vue DROP VIEW nom_vue; Pour renommer une vue : RENAME ancien_nom TO nouveau_nom Abdelouahed Sabri 2011/2012
  • 18. 18 Transparence vis-à-vis de la fragmentation: Vues (suite) Certaines vues peuvent être l’objet de mise à jour par les instructions INSERT, UPDATE, DELETE. Les restrictions imposées par Oracle sur la requête de la vue afin que celle-ci soit modifiable : • • • • • Pas d’opérateurs ensemblistes Pas de fonction d’agrégation Pas de clause group by ou order by Pas de sous-requête Pas de collection dans un select (objet-relationnel) Dans le cas contraire, on fait appel aux déclencheurs INSTEAD OF.  Les triggers INSTEAD OF prennent la main et font les mises à jour sur les fragments distants. Abdelouahed Sabri 2011/2012
  • 19. 19 Transparence vis-à-vis de la fragmentation: Les triggers INSTEAD OF La syntaxe est la suivante: CREATE TRIGGER nom_du_declencheur INSTEAD OF {INSERT | UPDATE | DELETE} ON nom_de_la_vue FOR EACH ROW BEGIN … END ; Exemple CREATE TRIGGER tr_emp10 INSTEAD OF INSERT ON emp10 FOR EACH ROW BEGIN INSERT INTO emp VALUES (:new.NO, :new.nom, :new.n_dept,:new.age); END ; Abdelouahed Sabri 2011/2012
  • 20. 20 Duplication La première option consiste à répliquer régulièrement les données sur le serveur local. Duplication synchrone: diffuser immédiatement les modifications apportées aux données sources vers les copies • Utilisation des TRIGGER ou TRIGGER INSTEAD OF Duplication asynchrone: diffuser les modifications apportées aux données sources vers les copies à des intervalles prédéfinis. • utilisation de SNAPSHOT (clichés) ou Mateliarised view (vues matérialisées) Abdelouahed Sabri 2011/2012
  • 21. 21 Duplication Asynchrone Snapshots: Un snapshot est une copie conforme d'une table (ou plusieurs) située sur une base de donnée du système distribué Il permet de diminuer les coûts réseau, en rendant local les données situées à distance • Afin d'assurer la cohérence de données, une mise à jour régulière et automatique est effectuée à partir du site d'origine ou MASTER 2 types: en lecture seule (read-only) ou mis à jour (updateable) Abdelouahed Sabri 2011/2012
  • 22. 22 Duplication Asynchrone (suite) Les read-only Snapshots: non modifiables à partir du site esclave. Syntaxe: CREATE SNAPSHOT nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation AS requéte_select; FAST: Le mode rapide permet de faire un rafraîchissement en tenant compte seulement des mises à jour effectuées sur le site Maître.  Un SNAPSHOT LOG doit être crée pour la table Maître afin de noter les différents changements subvenus qui seront répercutés sur le snapshot: CREATE SNAPSHOT LOG ON nom_de_la_table; Abdelouahed Sabri 2011/2012
  • 23. 23 Duplication Asynchrone (suite) Les read-only Snapshots: non modifiables à partir du site esclave. Syntaxe: CREATE SNAPSHOT nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation AS requéte_select; COMPLETE: à chaque rafraîchissement, toute la table est transférée.  Ce mode est obligatoire pour les snapshots complexes, NB:  Un snapshot est dit simple si la requête SELECT ne contient pas d’opération ensemblistes ni de clause ORDER BY  Un snapshot est dit complexe dans le cas contraire Abdelouahed Sabri 2011/2012
  • 24. 24 Duplication Asynchrone (suite) Les read-only Snapshots: non modifiables à partir du site esclave. Syntaxe: CREATE SNAPSHOT nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation AS requéte_select; FORCE: Un rafraîchissement rapide est d'abords tenté; s'il ne marche pas le rafraîchissement complet est effectué. Abdelouahed Sabri 2011/2012
  • 25. 25 Duplication Asynchrone (suite) Les read-only Snapshots: non modifiables à partir du site esclave. Syntaxe: CREATE SNAPSHOT nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation AS requéte_select; Exemple: CREATE SNAPSHOT emp_snap_fast REFRESH FAST START WITH Sysdate NEXT Systdate + 1 AS SELECT * FROM emp@site1tosite2 WHERE n_dept = 10 ; NB: les table emp doit avoir une clef primaire Abdelouahed Sabri 2011/2012
  • 26. 26 Duplication Asynchrone (suite) Les updateable Snapshots: Les snapshots de mise à jour peuvent être directement modifiés. Dans ce cas, les données mises à jour à leur niveau sont répliquées vers le site Master lors du processus de rafraîchissement. Syntaxe: CREATE SNAPSHOT nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation ENABLE QUERY REWRITE AS requéte_select; Exemple: CREATE materialized view emp_snap_fast REFRESH COMPLETE START WITH Sysdate NEXT Sysdate + 1 Enable QUERY REWRITE AS SELECT ID, NOM FROM emp@site1tosite2 WHERE n_dept = 10 ; Abdelouahed Sabri 2011/2012
  • 27. 27 Duplication Asynchrone (suite) Modifier une vue matérialisée ALTER materialized view nom_snapshot [REFRESH FAST | COMPLETE | FORCE] START WITH date_de_debut_de_synchronisation NEXT date_de_la_prochaine_synchronisation; Abdelouahed Sabri 2011/2012