Système de Gestion de Base de Données Réparties (Distributed DataBase Management System)

Notion d’architecture client/serveur (C/S)

Le client-serveur est avant tout une technique de dialogue entre deux processus, l’un « le client » sous-traitant à l’autre « le serveur » des fonctions à réaliser. Les deux processus peuvent résider dans la même machine ou dans deux machines distinctes [Gardarin 97].
Le modèle de communication client-serveur est orienté vers la fourniture de services par un processus serveur à un processus client. Un échange consiste donc en la transmission d’une requête (Request) à un serveur, qui exécute l’opération demandée et envoie en retour la réponse (Reply). Durant le dialogue, des opérations de transport permettant d’envoyer (Send) et de recevoir (Receive) des messages sont utilisées.
On peut illustrer le dialogue client-serveur avec le schéma suivant :
Figure 1 : Le dialogue client serveur
SendRequest permet au client d’émettre la requête à une adresse correspondante à la porte d’écoute du serveur, ReceiveReply permet au client de recevoir la réponse en provenance du serveur; ReceiveRequest permet au serveur de recevoir la requête sur sa porte d’écoute, SendReply permet au serveur d’envoyer la réponse sur la porte d’écoute du client.
Il existe actuellement plusieurs types de C/S, mais on s’intéressera particulièrement aux C/S de données et de procédures (C/S de deuxième de génération) dont les composants sont :
1. Les clients. Ils supportent le code de l’application non lié directement aux données. Ce code est réalisé grâce à un outil de développement (Java, Delphi, …) et implémente les dialogues interactifs avec les utilisateurs, les traitements spécialisés des messages, l’affichage des résultats.
2. Le serveur. Il assure le stockage, la distribution, la gestion de la disponibilité et de la sécurité des données. Il permet l’aspect transactionnel et décisionnel aux informations.
3. Le réseau. Avec les protocoles réseau de transport et d’échange de requêtes, il permet le transfert des demandes et des résultats. Il assure la connectabilité des outils clients
au serveur ; l’outil de connectabilité permet l’encodage des requêtes en messages sur le client et le décodage sur le serveur, et vice versa pour les réponses.
Les intérêts techniques d’une architecture client-serveur de données et de procédures sont multiples. On peut citer une diminution du code applicatif, la mise en commun des procédures réutilisables, une diminution du trafic réseau, une gestion fiable des transactions et la sécurité des accès aux données.
Figure 2 : Les composants de l’architecture C/S de données
L’accès aux données se fait via SQL, langage assertionnel non procédural de haut niveau.

Le langage SQL

Il a été initialement développé par IBM dans le cadre du projet System R (comme Relationnel). Tout d’abord appelé SEQUEL, il est devenu le standard pour décrire et manipuler les bases de données relationnelles. En fonction des améliorations introduites depuis sa naissance on peut lister trois versions normalisées par ANSI. Il s’agit :
• SQL1 : le standard de base
SQL1 a été accepté comme standard international en 1986 puis étendu pour supporter les contraintes d’intégrités en 1989.
Les quatre verbes de base sont SELECT, INSERT, UPDATE ET DELETE, Il existe cependant d’autres opérations pour définir et modifier les schémas des tables, les contraintes d’intégrité, les vues, etc.
Plus précisément, il comporte quatre parties :
1. le langage de définition des schémas (Tables et Vues)
2. le langage de manipulation (sélection et mises à jour, contrôle)
3. la spécification de modules appelables (Procédures)
4. l’intégration aux langages de programmation (Curseurs)
Le langage de définition des schémas utilise CREATE VIEW et CREATE TABLE pour définir des tables ou des vues. La manipulation se fait via les opérateurs SELECT, INSERT, DELETE ET UPDATE pour respectivement sélectionner, insérer, supprimer et mettre à jour des tuples dans une base. Les verbes OPEN, CLOSE et FETCH permettent l’intégration aux langages de troisième génération (Cobol, Fortran etc.). Le langage est enrichi par le langage de contrôle qui attribue ou retire des droits d’accès aux utilisateurs grâce aux commandes GRANT et REVOKE et la gestion des transactions se faisant avec BEGIN TRANSACTION, END TRANSACTION, COMMIT et ROLLBACK.
• SQL2
Standardisé en 1992, il s’agit d’une extension compatible de SQL1. Afin de faciliter les choix d’implémentation, trois niveaux emboîtés, du simple au complexe, sont distingués :
1. SQL2 entré, qui reprend SQL1-89 en ajoutant quelques fonctionnalités manquantes
2. SQL2 intermédiaire complète largement le langage du point de vue des fondements relationnels et des types de données : concept de métabase, types de données date, meilleur support de l’intégrité référentielle, support des jointures externes.
3. SQL2 complet qui comporte l’ensemble des spécifications SQL2.
• SQL3
Il comprend des composants multiples autour d’une base qui intègre les spécifications générales. Ces composants permettent de supporter des interfaces client et des procédures stockées. En fait, une interface client est un ensemble de fonctions permettant d’envoyer des requêtes et de récupérer les résultats depuis un processus client vers un serveur SQL alors qu’une procédure stockée est simplement une procédure stockée dans la base, exécutée par le serveur et permet de calculer des paramètres de sortie à partir de paramètres d’entrées et du contenu de la base. SQL3 comprend son propre langage de programmation de procédure. Ce langage comporte des ordres de déclarations de variables, d’assignation, des tests conditionnels (CASE, IF) des boucles (LOOP, FOR) de gestion d’erreurs (SIGNAL, RESIGNAL).
Au-delà des procédures, SQL3 intègre un composant de définition et manipulation d’objets. Une nouvelle commande est introduite afin de définir des types d’objets, mais aussi des types de valeurs complexes : CREATE (VALUE | OBJECT).
En outre, SQL3 offre des possibilités de récursivité pour parcourir par exemple des relations représentant des graphes et de définir des déclencheurs qui sont des actions à exécuter sur la base de données suite à l’apparition d’un évènement particulier.

Définitions

Bases de données réparties

Une base de données répartie permet de rassembler des ensembles de données plus ou moins hétérogènes, disséminés dans un réseau d’ordinateurs, sous forme d’une base de données globale, homogène et intégrée. En d’autres termes, c’est un ensemble de base de données gérées par des sites différents et apparaissant à l’utilisateur comme une base unique [Gardarin97].
Une base de données répartie peut aussi être vu comme une collection de base de données logiquement reliées, distribuées su un réseau. Cependant, la définition précédente est plus complète, car elle insiste sur le fait que la base répartie doit apparaître comme une base unique à l’utilisateur.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *