Chapitre 10 Architectures des systèmes de gestion de bases de données
Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér plusieurs ordinateurs entre eux, nous utilisons : Réseaux téléphoniques Réseaux grand débit Liaisons satellite Ce changement a favorisé une nouvelle approche, basée sur la technologie client/serveur qui a fait aussi augmenter le rôle du dans les entreprises. Le partage d informations a modifié nos entreprises et permis d appliquer des principes modernes de réduction du processus de fabrication (ex: Just-In-Time). Les bases de données deviennent actives les informations stockées dans les BD doivent maintenant favoriser les opérations et indiquer les besoins de qualité. 2
Plan du chapitre Les points abordés dans ce chapitre sont les suivants : L architecture centralisée L architecture client-serveur Structure des bases de données réparties Bases de données actives 3
L architecture centralisée L architecture centralisée est la plus ancienne. Elle se composait : d ordinateurs centraux; de terminaux. Tous le travail (les processus) s exécute sur les systèmes centraux, donc le temps de réponse aux requêtes dépend de la charge du système. Ce sont des systèmes simples, mais peu flexibles. 4
L architecture client/serveur L architecture client/serveur découle: Des améliorations des interfaces graphiques; Les ordinateurs personnels à moindre coûts; Des réseaux locaux; Des bases de données relationnelles; Des langages de traitement de données; Outils de conception assistée par ordinateur. Pour correspondre au modèle d architecture client/serveur, il faut: une communication entre des programmes tournant sur des ordinateurs différents. 5
L architecture client/serveur Le client un ordinateur qui contient un module informatique intelligent qui est utilisé par un seul usager. fournit une interface entre l'usager et l'application informatique. possède son propre système d'opération, celui-ci: 1. Accepte les demandes de l'utilisateur; 2. Ensuite effectuer une requête au serveur d'application; 3. Finalement, affiche le résultat à l'écran. Peut calculer, afficher des données, modifier les données, fournir de l'aide Mais il ne peut pas avoir accès directement aux données. 6
L architecture client/serveur Le serveur Est un ordinateur connecté à un réseau qui fournit des services à d'autres ordinateurs (clients). Est un module informatique intelligent qui n'est pas accédé directement par l'usager. 1. reçoit des requêtes des ordinateurs clients, 2. exécute les requêtes à l'aide du, 3. retourne le résultat aux clients. Note: L'application client/serveur peut utiliser plusieurs serveurs pour fournir différents services aux clients. Ex: Serveur de fichier, d'imprimante, de Fax, de communication et de base de données. 7
La division du travail par l approche client/serveur Le module serveur exécute les requêtes SQL provenant des clients et retourne le résultat. Le module client consiste en un ordinateur client qui possède: l'interface personne-machine qui est une application de la base de données son système d'opération propre, un programme de communication hardware/software 8
La division du travail par l approche client/serveur La figure ci-contre illustre comment un client peut fournir de l'information à partir d'un serveur de base de données via un lien LAN (Local Area Network) à d'autres clients. 9
La division du travail par l approche client/serveur Une mauvaise intégration des ressources informatiques peut engendrer une complexité pour la gestion de l information. Cette situation se produit souvent lors de l'acquisition ou la consolidation d'entreprises. Les clients de SQL Server ou d'oracle ne peuvent accéder aux données d'informix et vice-versa. Un interface client pour chaque système!!! 10
La division du travail par l approche client/serveur Voici la possibilité d une interface universelle qui permet à chaque client d'avoir accès à l'ensemble des données. 11
La division du travail par l approche client/serveur Exemple d application client/serveur pour gérer un atelier de réparation: 1. Le préposé au service entre les détails des réparations dans la BD; 2. L'analyste des opérations lit les données de la BD; 3. Il envoie un rapport via le courrier électronique au management; 4. le groupe dédié aux réparations reçoit la liste des réparations. 12
Structure des bases de données réparties Une BD répartie se compose d'un ensemble de sites dont chacun héberge un système local de gestion de base de données. Chaque site est donc capable de traiter des transactions locales, qui ne concernent que les données de ce site particulier. d'exécuter des transactions globales sur les données de plusieurs sites. Ce qui nécessite une liaison entre les sites. Les BD réparties communiquent au moyen de: de réseaux téléphoniques, de réseau à grand débit, de liaisons par satellite. 13
Structure des bases de données réparties Voici les configurations les plus communément adoptées pour ce genre de réseau. 14
Structure des bases de données réparties Ces configurations se différencient par les paramètres suivants: coût d'installation : frais d'établissement d'une liaison physique entre les sites; coût d'exploitation : frais de transmission et durée de transmission entre les sites; fiabilité : fréquence de pannes de liaison ou de site des liaisons établies; disponibilité : niveau d'accessibilité du système en dépit des pannes de quelques liaisons ou de quelques sites. L'avantage essentiel de la répartition des données réside dans l'efficacité et la fiabilité d'accès à des données partagées. 15
Inconvénients de la répartition des données L'inconvénient majeur de la répartition des données d'une BD entre plusieurs sites est la complexité résultant de leur coordination. Cette complexité se répartit de la façon suivante : Le coût de mise au point du logiciel; Le nombre d'erreurs logicielles plus important; Les servitudes du système accrues. Note: la répartition des données peut s'effectuer à des degrés divers entre un système fortement centralisé et un système à dispersion quasi totale. 16
Architecture des bases réparties Une BD relationnelle peut avoir ses relations stockées dans la base de plusieurs façons : avec réplication: les divers sites stockent chacun une copie de la relation; avec fragmentation: la relation est découpée en plusieurs fragments hébergés par un site donné; avec réplication et fragmentation: combinaison des deux processus précédent. 17
Réplication des données La réplication des données implique qu une relation est répliquée et stockée intégralement dans deux ou plusieurs sites. Avantages et inconvénients: disponibilité des données: une relation peut être atteinte sur n'importe quel site en cas d'avarie affectant un site donné; parallélisme des traitements: pour des transactions de lectures, plusieurs sites peuvent travailler en parallèle sur une même relation; servitudes de mise à jour: toutes mises à jour (écritures) sur une relation doivent être appliquées à l'ensemble des sites, ce qui alourdit la procédure de gestion de la BD. 18
Fragmentation des données La fragmentation des données implique le découpage d une relation en plusieurs sous-relations pour chaque site donné. Il existe deux façons de fragmenter: horizontalement ou verticalement. Agence Compte Client Position Hillside 305 Lowman 500 Ex: relation Dépôt Hillside 226 Camp 336 Valleyview 117 Camp 205 Valleyview 402 Kahn 10000 Hillside 155 Kahn 2 Valleyview 408 Kahn 1123 Valleyview 639 Camp 750 19
Fragmentation horizontale Par exemple, on peut subdiviser la relation Dépôt par agence: Dépôt 1 = σ agence = Hillside (Dépôt) Agence Compte Client Position Hillside 305 Lowman 500 Hillside 226 Camp 336 Hillside 155 Kahn 62 La relation Dépot 1 est stockée à l agence Hillside Dépôt 2 = σ agence = Valleyview (Dépôt) : Agence Compte Client Position Valleyview 117 Camp 205 Valleyview 402 Kahn 10000 Valleyview 408 Kahn 1123 Valleyview 639 Camp 750 La relation Dépot 2 est stockée à l agence Valleyview 20
Fragmentation horizontale Voici un autre exemple de fragmentation horizontale sur deux sites différents. Département de recherche Département d administration 21
Fragmentation verticale La fragmentation verticale permet de séparer une relation au niveau des colonnes (attributs). Cette séparation s'obtient en ajoutant un attribut spécial à la relation, tuple-id. Ce tuple-id représente l'adresse physique du tuple et représente une clé primaire. Agence Compte Client Position tuple-id Hillside 305 Lowman 500 1 Hillside 226 Camp 336 2 Valleyview 117 Camp 205 3 Valleyview 402 Kahn 10000 4 Hillside 155 Kahn 62 5 Valleyview 408 Kahn 1123 6 Valleyview 639 Camp 750 7 22
Fragmentation verticale Voici la fragmentation verticale de la relation Dépôt: Dépôt 3 = s agence,client,tuple-id (Dépôt) Agence Client tuple-id Hillside Lowman 1 Hillside Camp 2 Valleyview Camp 3 Valleyview Kahn 4 Hillside Kahn 5 Valleyview Kahn 6 Valleyview Camp 7 Les colonnes agence et client sont conservées. Dépôt 4 = s compte,position,tuple-id (Dépôt) Les colonnes compte et position sont conservées. Compte Position tuple-id 305 500 1 226 336 2 117 205 3 402 10000 4 155 62 5 408 1123 6 639 750 7 L'attribut tuple-id est en général invisible à l'utilisateur et il sert essentiellement à recombiner les relations verticales. 23
Fragmentation mixte La fragmentation mixte est une combinaison des fragmentations horizontales et verticales. Par exemple, on peut fragmenter horizontalement la relation Dépôt 3 : Dépôt 3a = σ agence = Hillside (Dépôt 3 ), Agence Client tuple-id Hillside Lowman 1 Hillside Camp 2 Hillside Kahn 5 Dépôt 3b = σ agence = Valleyview (Dépôt 3 ). Agence Client tuple-id Valleyview Camp 3 Valleyview Kahn 4 Valleyview Kahn 6 Valleyview Camp 7 24
Réplication et fragmentation des données Les techniques qui précèdent peuvent être appliquées séquentiellement à une même relation : Imaginons un système réparti sur 10 sites, S 1, S 2,..., S 10 ; avec la fragmentation mixte de Dépôt en : Dépôt 3a, Dépôt 3b et Dépôt 4, puis stockée de cette façon: une copie de Dépôt 3a sur les sites S 1, S 3 et S 7, une copie de Dépôt 3b sur les sites S 7 et S 10 et une copie de Dépôt 4 sur les sites S 2, S 8 et S 9. 25
Transparence et Autonomie La dispersion d une relation sur plusieurs sites devrait être transparente à l utilisateur. Pour obtenir l'autonomie locale, le système utilise une désignation particulière pour identifier les sous-relations réparties sur la BD. Par exemple : site10.dépôt.f 3.r 2 désigne, sur le site 10, la réplique 2 du fragment 3 de la relation Dépôt. Inconvénient: Restreint la transparence des données puisqu'elles sont marquées par leur origine. Solution: Création pour chaque sous-relations des alias à l'usage de l'utilisateur. Ce dernier peut alors manipuler ces sous-relations au moyen d'étiquettes de substitution plus simples que le système transcrit en désignations complètes. 26
Traitement des requêtes sur BD répartie Au chapitre 9, nous avons vu diverses techniques de calcul de la réponse à une requête. Dans le cas d'un système réparti, il faut prendre en compte d autres paramètres : le coût de transmission des données sur le réseau; le gain potentiel de performance résultant d'un traitement parallèle par plusieurs sites d'une requête donnée. 27
Traitement des requêtes sur BD répartie Traitement par jonction naturelle Considérons l'expression algébrique relationnelle : Clientèle X Dépôt X Banque Ex:Supposons que les 3 relations ne sont pas répliquées ni fragmentées et que Clientèle est stockée sur le site S 3, Dépôt sur le site S 4 et Banque sur le site S 2. Le système doit fournir le résultat au site S 10. Le système peut utiliser l'une des trois stratégies suivantes : 1. expédier des copies des trois relations au site S10 et calculer la jonction; 28
Traitement des requêtes sur BD répartie 2. expédier une copie de Clientèle au site S 4 et calculer : r i = Clientèle X Dépôt sur ce site; expédier le résultat intermédiaire r i sur le site S 2 et calculer : r f = r i X Banque sur ce site; expédier le résultat final r f sur le site S 10, 3. une stratégie semblable à la stratégie 2 avec permutation des sites de façon à optimiser la jonction naturelle. L optimiseur choisira la stratégie la moins coûteuse pour la requête. 29
Traitement des requêtes sur BD répartie Traitement par jonction naturelle en exploitant le parallélisme Considérons l'expression algébrique relationnelle suivante : r 1 X r 2 X r 3 X r 4 Une façon de résoudre le problème consiste à calculer en parallèle deux jonctions. Par exemple, r 1 peut être expédiée sur S 2 : r 1,2 = r 1 X r 2 est calculée sur S 2. Simultanément, r 3 peut être expédiée sur S 4 : r 3,4 = r 3 X r 4 est calculée sur S 4. Il reste à expédier r 1,2 sur le site S 4 et calculer : r 1,2,3,4 = r 1,2 X r 3,4 Et ce résultat final est expédié au site où la requête s'est effectuée. 30
Bases de données actives La base de données active est flexible aux variations externes: Ce sont les forces du marché qui déterminent ce qui doit être produit, comment le fabriquer et ou le distribuer. Pour une entreprise en compétition sur le marché mondial le savoir correspond au pouvoir. Pour être compétitive, elle doit pouvoir utiliser ses données d'opération en information tactique servant à maximiser ses chances de succès. La source principale qui alimente cette force est la base de données de l'entreprise. 31
Bases de données actives Cycle de fabrication assisté d une base de données active 32
Le pouvoir de l information Exemple de schéma hiérarchique d une entreprise qui tente d imposerle résultat de sa production Pour réussir à implanter les concepts modernes de fabrication (Just-In-Time, Atelier Flexible, etc..., ), il faut changer notre vision des systèmes d'information. Ce modèle illustre l'interaction entre les différents départements. Basé sur les demandes des clients. 33
Serveur passif VS serveur actif Un serveur passif est contrôlé par ses clients, il fait des opérations sur les données qui sont dictées par les clients. il ne peut pas exécuter de programme de base de données. Un serveur actif incorpore sa propre logique de contrôle. opère à partir de ses clients, d'autres serveurs gère ses événements internes. il peut exécuter des fonctions SQL. 34
Exemple de base de données active La figure illustre le processus de coopération entre deux serveurs de base de données. Par exemple, un contracteur qui magasine chez Rona demande 4 caisses de peinture. Le préposé au comptoir fait une requête pour vérifier la disponibilité du produit. Le serveur local du centre de distribution détecte qu'il n'y a que 2 caisses en stock. Il réserve donc ces deux caisses et en commande 2 autres d'un autre centre de distribution. 35
Concepts de BD actives Voici un serveur actif qui est commandé indirectement par des événements (alarme) et par des commandes directes (usager) pour rétablir le système. Évènement Application de l action Serveur actif à l écoute des évènements Déclenchement de la procédure Action à prendre 36
Concepts de BD actives Règles actives : ex : Déclencheurs (triggers), comporte 3 composantes: 1. Un évènement déclencheur 2. Une condition (optionnel) 3. Une action à prendre Oracle, Sybase, DB2 Ex: END; CREATE TRIGGER SalaireTotale AFTER UPDATE OF DNO ON EMPLOYE FOR EACH ROW BEGIN UPDATE DEPARTEMENT SET TOTAL_SAL = TOTAL_SAL + NEW.SALARY WHERE DNO= NEW.DNO UPDATE DEPARTEMENT SET TOTAL_SAL = TOTAL_SAL - OLD.SALARY WHERE DNO= OLD.DNO 37
En résumé Les bases de données actives permettent de créer des systèmes d'information: plus performants, plus rapides, à meilleur coût que dans le passé. 38