Un Système de Gestion de Bases de Données Réparties est constitué d'un ensemble de processeurs autonomes «appelés sites » (stations de travail, micro-ordinateurs, …) reliés par un réseau de communication qui leur permet d'échanger des données. Un SGBDRé suppose que les données soient stockées sur au moins deux sites. Chaque site est doté de son propre SGBD.
Ce support de cours propose une vue d’ensemble sur les avantages et inconvénients de répartition de données. Aussi, il présente les différentes techniques de répartition
QCM Système d'information, Base de données, design pattern MERISE et UML MOA MOE gestion de projet QCM CMMI GED ITIL Intranet Extranet Internet pattern GRASP maintenance ERP système informatique SSO norme ISO CMMI
1. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
2. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
3. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
4. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
Ce projet vise à développer un système d’information des étudiants du département
informatique. Mais, pour aboutir à cette fin, nous allons tout d’abord effectué une étude
conceptuelle de l’application. Cette dernière nous permettra, en effet, d’accéder facilement
à la réalisation de l’application en organisant les idées et en structurant le processus de
codage suivant des diagrammes. L’application a été implémenté par diverses technologies
en se basant sur l’étude conceptuelle. Le système de gestion de base de données choisi
fut MySQL. L’application a été implémenté avec Laravel5 et Boostrap3, qui sont des
frameworks permettant de créer rapidement et efficacement un site web complexe et flexible.
Business Intelligence Reporting Solution Imad ALILAT
This presentation will help you understand the basic building blocks of Business Intelligence. Learn how decisions are triggered, the complete decision process and who makes decisions in the corporate world.
More importantly, understand core components of a Business Intelligence architecture such as a data warehouse, data mining, ETL Process (Extract-Transform-Load) and data reporting. Each component plays an integral part which enables today's managers and decision makers collect, analyze and interpret data to make it actionable for decision making.
Business intelligence has become an integral part that needs to be incorporated to ensure business survival. It is a tool that helps analyze historical data and forecast future so that your are always one step ahead in your business.
Please feel free to like, share and comment as you please!
QCM Système d'information, Base de données, design pattern MERISE et UML MOA MOE gestion de projet QCM CMMI GED ITIL Intranet Extranet Internet pattern GRASP maintenance ERP système informatique SSO norme ISO CMMI
1. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
2. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
3. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
4. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
Ce projet vise à développer un système d’information des étudiants du département
informatique. Mais, pour aboutir à cette fin, nous allons tout d’abord effectué une étude
conceptuelle de l’application. Cette dernière nous permettra, en effet, d’accéder facilement
à la réalisation de l’application en organisant les idées et en structurant le processus de
codage suivant des diagrammes. L’application a été implémenté par diverses technologies
en se basant sur l’étude conceptuelle. Le système de gestion de base de données choisi
fut MySQL. L’application a été implémenté avec Laravel5 et Boostrap3, qui sont des
frameworks permettant de créer rapidement et efficacement un site web complexe et flexible.
Business Intelligence Reporting Solution Imad ALILAT
This presentation will help you understand the basic building blocks of Business Intelligence. Learn how decisions are triggered, the complete decision process and who makes decisions in the corporate world.
More importantly, understand core components of a Business Intelligence architecture such as a data warehouse, data mining, ETL Process (Extract-Transform-Load) and data reporting. Each component plays an integral part which enables today's managers and decision makers collect, analyze and interpret data to make it actionable for decision making.
Business intelligence has become an integral part that needs to be incorporated to ensure business survival. It is a tool that helps analyze historical data and forecast future so that your are always one step ahead in your business.
Please feel free to like, share and comment as you please!
Les clés de succès pour moderniser votre architecture de données en 2022Denodo
Watch full webinar here: https://bit.ly/3I0Hv8D
Aujourd’hui, avoir une gestion des données efficace est un élément essentiel pour la compétitivité de votre organisation. Les entreprises sont néanmoins souvent confrontées à des silos de données, ce qui rend leur exploitation longue et coûteuse. De plus, la vitesse, la diversité et le volume des données peuvent submerger les architectures de données traditionnelles. Enfin, la transformation digitale amène à s’appuyer sur de nouveaux socles hébergés chez des fournisseurs Cloud.
Dès lors, les questions suivantes peuvent se poser :
- Comment améliorer la livraison des données et extraire toute la valeur de vos données ? Comment accélérer la prise de décision ?
- Comment rendre les données disponibles et exploitables en temps réel ?
- Comment réduire les coûts informatiques ?
Denodo France vous propose d’aborder les clés de succès pour moderniser efficacement votre architecture de données en 2022. Rejoignez ce nouveau webinar pour comprendre comment la plateforme d’intégration et de gestion de données de Denodo peut vous aider à moderniser votre architecture dans un contexte de transformation digitale.
Les points clés abordés : -
Les bénéfices et défis liés à la modernisation d’une architecture data avec les aspects :
- Hybridation
- Data Mesh et Data Fabric
- Migration et sécurisation de données
- Agilité
- Maîtrise des risques et des coûts
- Cas d’usages et cas clients concrets
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesDenodo
Watch full webinar here: https://buff.ly/35Kpcl2
Selon une récente étude*, à l’heure où 36% des entreprises déclarent avoir amorcé leur migration vers le Cloud, 20% seulement estiment avoir atteint les phases avancées de leur implémentation. Si l'adoption du Cloud continue de prendre de la vitesse, elle reste soumise à un certain nombre de défis comme la sécurité, la gestion et le suivi des dépenses liées au Cloud, ou encore le manque de compétences dans le Cloud. Les entreprises éprouvent en effet des difficultés à migrer leurs ressources d’information critique compte tenu de la complexité du paysage Big Data.
Pourtant, la virtualisation des données peut permettre aux entreprises de surmonter cet obstacle. En associant différents types et sources de données hébergées dans le Cloud et sur site, de nombreuses organisations optent pour des solutions de virtualisation des données pour bénéficier de l'agilité et de la flexibilité caractéristiques du cloud tout en permettant à leurs équipes d'exploiter les données issues de ces environnements hybrides.
Les points clés abordés:
Comment l’architecture multi-sites de la virtualisation peut simplifier et accélérer la migration vers le Cloud.
Les meilleures pratiques pour déployer la virtualisation des données dans le Cloud.
Comment exploiter la couche de données virtuelles de Denodo pour tirer profit des solutions Cloud, comme la modernisation du data warehouse, la data science et le data lake gouverné dans le Cloud.
Une démo live pour voir la data virtualization en action, et notamment pour l'analyse de données dans le Cloud.
* Denodo Global Cloud Survey 2019
Les environnements SAS évoluent et se modernisent, ouvrent de nouvelles opportunités d’usages (automatisation des traitements, industrialisation des productions de restitutions avec un outil de dataviz, …), mais imposent de nouveaux modes de travail. Comment en tirer pleinement profit tout en minimisant l’effort de migration ?
Le décisionnel est depuis longtemps en pleine mutation, il faut pour certains penser l’architecture de la BI de demain, pour d’autres l’accent est à mettre sur l’exploitation des gisements de données restées longtemps impossible avant la révolution du Big Data, pour d’autres enfin il convient plutôt d’adapter les usages aux outils qui malgré leurs nouveautés sont aux prises avec l’évolution des pratiques.
Deux tendances semblent toutefois animer la recherche d’ajustement pour les opérationnels :
La modernisation des environnements : allant vers la centralisation des serveurs, ce mouvement semble ne plus laisser de place aux installations de clients lourds sur PC, offrant de plus en plus de mobilité aux utilisateurs (légers, mobiles, etc.) jusqu’à l’affranchissement des applications classiques : SAS BASE est ainsi devenue SAS STUDIO : un client totalement WEB.
Enfin, la dynamique impulsée par le Dataviz affecte de façon significative les usages de la BI à tous les niveaux, poussant même à repenser le schéma classique des catégories de reporting : reporting de masse, reporting opérationnel, reporting prospectif.
Pour cette nouvelle Matinale Technologique Soft Computing, nous vous proposons deux ateliers autour de la thématique de l’impact de l’évolution des outils sur les usages :
Atelier 1 :
- Migration vers SAS Enterprise Guide ou SAS STUDIO : quels impacts sur les usages et les pratiques ?
Atelier 2 :
- SAS Visual Analytics : un outil de reporting orienté Exploration et Analyse ?
Simplifier la mise en place d'une stratégie Data Mesh avec DenodoDenodo
Watch full webinar here: https://bit.ly/3EbMWSe
Le Data Mesh est un nouveau paradigme, essentiel pour la gestion des données aujourd’hui, par une approche distribuée et décentralisée, dans lequel des domaines autonomes exposent leurs propres données en tant que "produits" au reste de l'organisation. Pourquoi mettre en place un Data Mesh ? Le Data Mesh tente de réduire les goulots d'étranglement dus à une dépendance excessive des utilisateurs à des équipes informatiques centralisées, et tire parti des connaissances spécialisées en matière de données que possèdent déjà les experts métier du domaine.
La littérature sur le Data Mesh laisse la mise en œuvre de ces idées très ouverte à chaque organisation ; plus qu'une architecture figée ou une technologie attitrée, c'est une méthode d'organisation pragmatique. Le Data Mesh peut être considéré comme la face organisationnelle des architectures techniques du Data Fabric.
Participez à ce webinar pour en savoir plus sur :
- Les idées clés du Data Mesh et du Data Fabric
- Comment Denodo peut vous aider à mettre en œuvre un Data Mesh
- Comment nos clients utilisent Denodo pour passer de la théorie à la pratique
Journées ABES 2014 - 20 mai 2014 - Jean Bernon, chargé de mission à l'ABES pour le projet de Système de Gestion de Bibliothèque mutualisé (SGBm) et Pascal Pérotin, nouvellement nommé directeur du projet de mise en œuvre d'un SGBm : "Focus sur le projet SGBm" -
Converteo renouvelle son panorama sur les opportunités liées à une infrastructure Data-Lakes. Cette technologie a démontré ses capacités d’exploitation et de valorisation des datas des entreprises et, dans un contexte de mise en conformité RGPD, révèle encore plus son agilité.
Mieux comprendre le Data-Lake :
Littéralement traduit par lac de données, il s’agit d’un espace de stockage permettant le traitement d’informations de plusieurs sources et ce, de manière quasi illimitée et en un temps record.
Le Data-Lake est donc une réelle opportunité et doit être considéré en amont de toute démarche data-driven, que ce soit dans le domaine :
- Du marketing : pour alimenter des campagnes, choisir un lieu d’implantation d’un nouveau magasin ;
- De l’expérience client : pour personnaliser une offre, recommander les produits adéquats ;
- De la business Intelligence : pour créer une vision 360° de ses clients, piloter la pression publicitaire ;
- De la performance opérationnelle : pour réduire ses coûts informatiques, adapter ses ressources en fonction de l’activité.
Infrastructure flexible, elle permet donc un large champ d’analyse qualitative avec des données activables à tout moment en fonction des besoins business.
La Data Virtualization au coeur de l’architecture “Data Mesh”Denodo
Watch full webinar here: https://bit.ly/3wEQpnK
Denodo vous propose un webinar exclusivement consacré au data mesh, et sa complémentarité avec la data virtualization.
Les organisations s'appuient sur un data mesh lorsqu'elles sont confrontées aux limitations des architectures hautement centralisées, telles que le manque d'expertise métier dans les équipes IT, le manque de flexibilité des référentiels centralisés à répondre aux besoins, et la lenteur des infrastructures centralisées à fournir et répondre aux changements.
Inscrivez-vous pour apprendre :
- comment l'architecture de “Data Mesh” permet non seulement de meilleures performances et une plus grande agilité, mais aussi un accès aux données en libre-service
- qu’est-ce que c’est un “produit de donnée” et comment la data virtualization vous permet de les définir
- comment la data virtualization facilite l’autonomie des acteurs dans les domaines métiers
- pourquoi un data lake n'est pas automatiquement un “Data Mesh”
- comment mettre en œuvre une architecture de “Data Mesh” simple et fonctionnelle, bâtie sur votre architecture de données actuelle
Le Big Data offre la capacité de traiter des volumes de données conséquents à l’aide d’architectures techniques nouvelles, comment les utilisateurs traditionnels (datamanager, datasteward, dataminers) accèderont et traiteront les données dans ces nouvelles architectures ?
DeciLogic, pourquoi mettre en place un SID ?Eric Mauvais
Pour mettre en place un SID ?
Partager une approche commune
Les limites du Système d’Information Opérationnel
Généralité sur les modèles de données
Définition des modèles de données décisionnels
Formes dimensionnelles complexes
Architecture générales
Alimentation
Le système de diffusion et de Présentation
Environnement et organisation des projets
Il est intéressant de savoir comment manipuler les données et bases de données sous Odoo. Ainsi, il est possible utilisant Odoo ;
De créer une nouvelle base de données,
De sauvegarder les données d’une base de données, déjà utilisée pour gérer une organisation/entreprise,
De restaurer une base de données sauvegardée dans une autre application (interface) Odoo.
De supprimer une base de données,
De dupliquer une base de données.
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Abdelouahed Abdou
La gestion des ressources humaines (GRH), ou gestion du personnel, regroupe l'ensemble des pratiques mises en œuvre pour administrer, mobiliser et développer les ressources humaines dans une organisation.
Les ressources humaines peuvent être les collaborateurs attachés à l’organisation (ouvriers, employés, cadres) mais aussi les collaborateurs des sous-traitants.
Odoo propose un module (extensible) dédié à la GRH. Ce module permet entre autres de gérer les salariés et leurs contrats, la paie, les congés, les feuilles de présence, les notes de frais, les recrutements, ...
La première chose à faire est d’identifier la liste des collaborateurs (employés). Surtout, il ne faut pas confondre entre utilisateurs de l’application et employés (collaborateurs) ; un employé peut être un utilisateur mais un utilisateur ne peut pas être forcement un employé. Ainsi, «Employé» représente toutes les personnes physiques qui ont un contrat de travail avec l'entreprise. Cela comprend tous les types de contrats. Alors qu’un utilisateur (du système) est une personne physique qui a accès aux systèmes de l'entreprise.
Présente une description complète sur les curseurs avec exemples et exercices corrigés. Ainsi, vous allez trouver:
- Définition des curseurs
- Curseurs implicites
- Curseurs explicites
- Les curseurs paramétrables
- Accès concurrents (FOR UPDATE)
- Variables de types Curseurs: Curseurs non typés et typés
-
Ce cours est une introduction au traitements informatique des images. Le traitement d'images consiste à changer la nature d'une image, afin de:
1.Améliorer de l’information contenue pour aider à l'interprétation par l'homme,
2.La rendre plus adaptée pour une perception autonome de la machine.
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
Interaction avec la base de données
Extraction
Insertion
Modification
Suppression
Structures de contrôle
Structures conditionnelles :
IF
case
Structures répétitives:
LOOP
WHILE-LOOP
FOR-LOOP
Structures répétitives:
Boucles avec étiquettes
Contrôle séquentiel avec GOTO
Opérateurs de comparaison:
IS NULL
LIKE
BETWEEN
IN
PL/SQL (Procedural Language / SQL), l’extension procédurale proposée par Oracle pour SQL (L4G),
Il permet de combiner des requêtes SQL (SELECT, INSERT, UPDATE et DELETE) et des instructions procédurales (boucles, conditions...),
Créer des traitements complexes destinés à être stockés sur le serveur de base de données (objets serveur),
Comme on le sait, les structures de contrôle habituelles d’un langage (IF, WHILE…) ne font pas partie intégrante de la norme SQL. Oracle les prend en compte dans PL/SQL.
ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
Ajax (Asynchronous JavaScript and XML) est une technique permettant la communication asynchrone entre application et serveur. c'est une architecture qui permet de construire des applications Web et des sites web dynamiques interactifs sur le poste client en se servant de différentes technologies.
Ajax combine JavaScript, les CSS, XML, le DOM et le XMLHttpRequest afin d'améliorer maniabilité et confort d'utilisation des Applications Internet Riches
Le DOM (Document Object Model) est un standard W3C qui permet à des script (ici JavaScript) d'accéder ou de mettre à jour le contenu visuel, la structure ou le style de documents XML et HTML.
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Bonne lecture et bienvenue aux activités proposées.
#Agriculture #Wallonie #Newsletter #Recherche #Développement #Vulgarisation #Evènement #Information #Formation #Innovation #Législation #PAC #SPW #ServicepublicdeWallonie
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Formation
Suite à l'entrée en vigueur de la « Participation Financière Obligatoire » le 2 mai dernier, les règles du jeu ont changé !
Pour les entreprises, cette révolution du dispositif est l'occasion de revoir sa stratégie de formation pour co-construire avec ses salariés un plan de formation alliant performance de l'organisation et engagement des équipes.
Au cours de ce webinar de 20 minutes, co-animé avec la Caisse des Dépôts et Consignations, découvrez tous les détails actualisés sur les dotations et les exonérations, les meilleures pratiques, et comment maximiser les avantages pour les entreprises et leurs salariés.
Au programme :
- Principe et détails de la « Participation Financière Obligatoire » entrée en vigueur
- La dotation : une opportunité à saisir pour co-construire sa stratégie de formation
- Mise en pratique : comment doter ?
- Quelles incidences pour les titulaires ?
Webinar exclusif animé à distance en coanimation avec la CDC
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
Bases de données réparties
1. Bases de Données Réparties (BDRé)
Abdelouahed Sabri 2011/2012
abdelouahed.sabri@gmail.com
Clients, Distributeurs
Clients habitants Tétouan
Clients habitants Tanger
Distributeurs (Nom, Télé)
2. Plan
Introduction
C’est quoi une base de données répartie
Avantages et Inconvénients
Objectifs
Modélisation et conception
Fragmentation
Allocation
Répartition avancée
La pratique
Abdelouahed Sabri 2011/2012
2
3. Introduction
Architectures
Architecture centralisée:
• Programme d'application et SGBD sur même machine (même site),
Architecture client-serveur, notée 2-tiers:
• Programme d’application sur le client et SGBD sur le serveur,
Architecture 3-tiers:
• Interface utilisateur sur le client, programme d’application sur le serveur
d’application et le SGBD sur le serveur de données.
Bases de données
Centralisées
Réparties ou distribuées
Fédérées
Multi-bases Abdelouahed Sabri 2011/2012
3
4. Introduction
BD centralisée:
Gérée par un seul SGDB,
Stockée dans un emplacement physique unique,
Les traitements sont confiés à une seule et même unité.
Multi-base:
Plusieurs SGBD, hétérogènes ou non, capables d’inter-opérer sans modèle
commun (vue commune),
BD Fédérée:
Plusieurs SGBD hétérogènes sont utilisés comme un seul via un modèle commun
(vue commune)
Ex: Utilisés dans la fusion ou acquisition des bases de données de compagnies
BD Répartie:
Un seul système gérant une collection de bases de données logiquement reliées
qui sont réparties sur différents sites accessible via un modèle commun (vue
commune)
Abdelouahed Sabri 2011/2012
4
5. Introduction
Différence entre bases de données réparties et le modèle
client-serveur
Abdelouahed Sabri 2011/2012
5
Client-Serveur Bd Répartie
Plusieurs bases vues par le client Une base logique vue par l’utilisateur
Plusieurs connexions Une seule connexion
Localisation explicite des bases (« connection
string » ou DSN)
Indépendance à la localisation
Règles de localisation dans l’application Règles de localisation dans le dictionnaire
1 ordre SQL 1 seule BD 1 ordre SQL plusieurs BD
n transactions mono-base 1 transaction logique
Synchronisation des transactions dans
l’application
Synchronisation automatique des n sous-
transactions
Plusieurs COMMIT mono-base 1 COMMIT généralisé
6. Introduction
Pourquoi répartir?
Besoin de décentralisation des organisations,
Partage de données géographiquement reparties.
Principe de la répartition:
Les données et traitements sont répartis sur différents
sites interconnectés par un réseau de communication.
La défaillance d'un site ne peut pas entraîner
l'indisponibilité totale du système et sa probabilité peut
être négligée grâce à la tolérance aux fautes, assurée par
la redondance des informations et des traitements.
Abdelouahed Sabri 2011/2012
6
7. Introduction
Système de Gestion de Bases de Données Réparties
Constitué d'un ensemble de processeurs autonomes
«appelés sites » (stations de travail, micro-ordinateurs, …)
reliés par un réseau de communication qui leur permet
d'échanger des données.
Un SGBDRé suppose que les données soient stockées sur
au moins deux sites.
• Chaque site est doté de son propre SGBD.
Abdelouahed Sabri 2011/2012
7
8. Introduction
Avantages de répartir les données
Limiter le transfert d'information (en nombre et en volume)
en répartissant les données là où elles sont le plus utilisées.
Ceci est particulièrement important pour une base de données dont
les différents utilisateurs sont géographiquement dispersés
Exemple: Des agences d'une banque
La répartition de charge de travail sur plusieurs unités de
traitement opérant en parallèle permet d’accroître les
performances.
Augmenter la fiabilité et la disponibilité en dupliquant les
données sur plusieurs sites
Exemple: Comptes bancaires
Abdelouahed Sabri 2011/2012
8
9. Introduction
Inconvénients de répartir les données
Inconvénients
Complexité des SGBDs,
Problème de concurrence d’accès,
Surcoût du traitement: la distribution de données
entraine des communications inter-sites,
Sécurité.
Abdelouahed Sabri 2011/2012
9
11. Introduction
Exemple 2: Une banque peut avoir des agences à Casa, à Rabat et à Fès.
BD centralisée:
1. Le siège principal de la banque gérerait tous les comptes des clients,
2. Les agences devraient communiquer avec le siège social pour avoir accès
aux données.
BD répartie:
• Les informations sur les comptes sont distribuées dans les agences et celles-ci
sont interconnectées (entièrement ou partiellement) afin qu'elles puissent
avoir accès aux données externes.
Cependant, la répartition de la base de données bancaire est invisible aux
agences en tant qu'utilisateurs, et la seule conséquence directe pour elles est
que l'accès à certaines données est beaucoup plus rapide.
Abdelouahed Sabri 2011/2012
11
12. Objectifs d’une base de données repartie
Les 12 principaux objectifs définis par C.J. Date[1] sont:
Abdelouahed Sabri 2011/2012
12
1) Transparence pour l’utilisateur,
2) Autonomie de chaque site,
3) Absence de site privilégié,
4) Continuité de service,
5) Transparence vis-à-vis de la
localisation de données,
6) Transparence vis-à-vis de la
fragmentation,
7) Transparence vis-à-vis de la
réplication,
8) Traitement réparti des requêtes,
9) Indépendance vis-à-vis du
matériel,
10) Indépendance vis-à-vis du
système d’exploitation,
11) Indépendance vis-à-vis du
réseau,
12) Indépendance vis-à-vis du
SGBD
[1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
13. Objectifs d’une base de données repartie (suite)
Transparence de localisation:
Les utilisateurs accèdent au schéma conceptuel via des
vues. Un utilisateur ne sait pas sur quel site se trouvent
physiquement les données
• Exemple: un client peut ouvrir un compte à Fès et effectuer
régulièrement des opérations à Rabat C'est le système qui
recherche le site où sont mémorisées ses informations et non
l'utilisateur qui doit l'indiquer.
Abdelouahed Sabri 2011/2012
13
14. Objectifs d’une base de données repartie (suite)
Transparence de partitionnement:
l’utilisateur ne sait pas comment la base est partitionnée.
Transparence de duplication:
l’utilisateur ne sait pas s’il existe plusieurs copies d'une même
information ou non.
Lors de la modification d'une information, c'est le système qui doit se
préoccuper de mettre à jour toutes les copies.
Exemple: Un client possède des comptes (courant, épargne logement, ...) à
Fès mais effectue régulièrement des retraits d'argent à Rabat, les
informations le concernant soient réparties entre Fès à Rabat: l'historique
des opérations du compte courant est conservé à Rabat, la gestion de ses
autres comptes est assurée à Fès, et le solde du compte courant est dupliqué
à Fès et Rabat.
Abdelouahed Sabri 2011/2012
14
15. Objectifs d’une base de données repartie (suite)
Indépendance vis-à-vis du SGBD:
Un système réparti ne doit pas être dépendant en aucun cas des
différents SGBDs, la relation globale doit être exprimée dans un
langage normalisé indépendant des constructeurs.
Autonomie de chaque site:
Vise à garder une administration locale séparée et indépendante
pour chaque serveur participant à la base de données répartie afin
d'éviter une administration centralisée.
• Toute manipulation sur un site (reprise après panne, mises à jour des
logiciels) ne doit pas altérer le fonctionnement des autres sites.
Abdelouahed Sabri 2011/2012
15
16. Modélisation d’une base de données réparties
Une base de données est généralement modélisée en 3 niveaux:
Externe, Conceptuel et Interne.
Schéma interne: Description de l’organisation physique des données
Stockage physique
Schéma conceptuel: Description d’univers à modéliser avec
éventuellement les contraintes liés à ces objets (contraintes d’intégrités)
Domaine des concepteurs de Bases de données
Schéma externe: Application accédant aux données : des vues (accès
limités) Domaine des créateurs d’applications
L’avantage de se découpage est de permettre des modifications à un
niveau sans que cela interfère (le moins possible) sur les autres
niveaux
Abdelouahed Sabri 2011/2012
16
17. Modélisation d’une base de données réparties
Pour une base de données réparties, la répartition a lieu dans les
trois niveaux:
Abdelouahed Sabri 2011/2012
17
les vues des utilisateurs sont présentées
sur leur site (site utilisateur); elles
correspondent au niveau externe.
Il y a donc répartition des vues.
le schéma conceptuel (global) est associé
aux schémas locaux des sites physiques
via un schéma de fragmentation (la
manière dont la base est découpée) et un
schéma d'allocation (la manière dont les
fragments sont répartis).
il n'y a pas de schéma interne global,
mais des schémas locaux internes.
18. Conception d’une base de données répartie
La définition du schéma de répartition est la partie la plus
délicate de la phase de conception d'une base de données
répartie:
Il n y’a pas de méthode standard on se base sur les besoins,
L'administrateur (le concepteur) doit prendre des décisions sur
comment la répartition doit être faite.
L'objectif est de minimiser:
• le nombre de transferts entre sites,
• les temps de transfert,
• le volume de données transférées,
• les temps moyens de traitement des requêtes,
• le nombre de copies de fragments.
Abdelouahed Sabri 2011/2012
18
19. Conception d’une base de données répartie
Méthodes de conception:
Deux approches fondamentales sont à l'origine de la
conception des bases de données réparties :
1. La conception descendante (Top down design),
2. La conception ascendante (Bottom up design).
NB: Pour les deux approches il faut recueillir l'expression
des besoins des utilisateurs afin de créer un schéma
conceptuel unique et en déduire les vues externes à prévoir.
Abdelouahed Sabri 2011/2012
19
20. Conception d’une base de données répartie
Conception descendante
Conception du schéma conceptuel global de la base de données
répartie,
Création du schéma de fragmentation :
• la base de données sera découpée en fragments distincts constituant
une partition de la base l'intersection de ces fragments doit être
vide et leur réunion doit redonner le schéma global.
Création du schéma d'allocation :
• les fragments doivent être distribués entre les différents sites.
Création d'un schéma local pour chaque site, relatif aux fragments
dévolus à ce site,
Création des schémas internes :
• implémentation des données des fragments sur les supports physiques
de stockage. Abdelouahed Sabri 2011/2012
20
21. Conception d’une base de données répartie
Conception ascendante
Il existe plusieurs bases de données disjointes (plusieurs schémas
conceptuels locaux) qu’il faut réunir en un schéma conceptuel
global
• Intégration (fédération) des BD existantes
Abdelouahed Sabri 2011/2012
21
22. Fragmentation
Définition:
On définit la fragmentation comme étant le processus de décomposition
d'une base de donnée logique (telle que la voient les utilisateurs) en un
ensemble de « sous »-bases de données appelés fragments.
Caractéristiques:
La fragmentation doit être sans perte d'information,
Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède
cette donnée. Règle de complétude
La non perte d'informations est vérifiée par recomposition de la base à partir des
différents fragments en utilisant le langage de manipulation de données (SQL par
exemple) leur réunion doit redonner le schéma global Règles de reconstruction
Les différents fragments doivent « de préférence » être exclusifs (leur
intersection est vide)
Dans le cas contraire on parle de duplication il faut affiner la fragmentation
Abdelouahed Sabri 2011/2012
22
23. Fragmentation
Techniques de fragmentation
Il existe différentes façons pour fragmenter une base de données
L'unité de fragmentation détermine la nature de l'élément le plus
petit dont les composants ne peuvent être fragmentés
• On parle de granularité: taille du plus petit élément
Une granularité fine donne de grandes possibilités pour la fragmentation et
autorise une répartition flexible et efficace de la base de données, mais à
l'inconvénient de provoquer une certaine lourdeur pour la recomposition des
informations.
A l'opposé, une granularité élevée permet une gestion simple de la
fragmentation, mais fournit des possibilités très limitées pour la fragmentation.
L'unité de fragmentation est généralement laissée au libre choix de
l'administrateur.
Il y a quatre unités de fragmentation de base: Relations, Tuples,
Attributs, Valeurs
Abdelouahed Sabri 2011/2012
23
24. Fragmentation
Fragmentation par relation (classe d’objets)
Ce sont les classes (relation ou table dans le modèle relationnel,
entité en Entité-Association, classe dans le modèle orienté-objet)
qui peuvent être réparties dans des fragments différents.
Les fragments sont définis à partir des "classes" de la base de données.
Toutes les occurrences d'une même classe appartiennent au même fragment.
L'opération de partitionnement est la définition de sous schémas.
L'opération de recomposition est la réunion de sous schémas.
Abdelouahed Sabri 2011/2012
24
25. Fragmentation
Fragmentation par relation (suivant)
Exemple: Banque
• Trois tables: Agence, Clients, Compte
Abdelouahed Sabri 2011/2012
25
Compte
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne courant 45 102.50
201 639 Lausanne dépôt 325 100.00
203 446 Genève courant 274 882.95
Client
NoClient NomClient Prénom Age
174 723 Villard Jean 29
177 498 Cattell Blaise 38
201 639 Tesllis Alan 51
203 446 Kovalsky Validmir 36
Agence
Agence Adresse
Lausanne Rue du Lac, 3, 1002 Lausanne
Genève Avenue du Mont Blanc, 21, 1200 Genève
• Cette base peut être fragmentée en deux
fragments: {Compte, Client} et
{Agence}.
26. Fragmentation
Fragmentation horizontale
Appelée aussi fragmentation par occurrences ou par tuples,
La fragmentation horizontale est basée sur un découpage
(horizontal) des tuples des tables
• Les occurrences d'une même table peuvent être réparties dans des
fragments différents (avec tous les attributs)
• Le découpage est effectué en utilisant la sélection,
• La reconstruction est effectuée en utilisant l’opération d’union.
Abdelouahed Sabri 2011/2012
26
27. Fragmentation
Fragmentation horizontale (suivant)
Exemple: Banque
• La table Compte peut être divisée en deux fragments par répartition
des tuples en deux catégories :
• Compt1 = σ TypeCompte = courant(Compte)
• Compt2 = σ TypeCompte = dépôt (Compte)
Abdelouahed Sabri 2011/2012
27
Compt1
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne courant 45 102.50
203 446 Genève courant 274 882.95
Compt2
NoClient Agence TypeCompte Somme
201 639 Lausanne dépôt 325 100.00
• La recomposition est réalisée par une opération d’union
Compte = Compt1 ∪ Compt2
28. Fragmentation
Fragmentation verticale (par attributs)
Les fragments sont construits à partir de quelques attributs d'une
relation:
• Ce sont les attributs (avec leur occurrences) d'une même relation qui peuvent
être répartis dans des fragments différents.
• Toutes les valeurs des occurrences pour un même attribut se trouvent dans le
même fragment.
• La répartition des attributs dans différents fragments ne peut être correcte que
si l'identifiant (ou identité d'objet) est dupliqué dans chaque fragment cet
identifiant est utile pour la reconstruction (décomposition sans perte
d'informations.
Le découpage d'une relation en sous tables est effectuée utilisant la
projection sur les colonnes composant chaque fragment.
La reconstruction est effectuée par jointure des différents
fragments.
Abdelouahed Sabri 2011/2012
28
29. Fragmentation
Fragmentation verticale (suite)
Exemple: Banque
• Dans les guichets bancaires on n’a besoin de connaître que les soldes des
comptes, alors que les services de contentieux ont besoin de connaître les
informations complètes sur chaque client.
• Compt1 = ∏ NoClient, Somme(Compte)
• Compt1 = ∏ Noclient, Agence, TypeCompte(Compte)
Abdelouahed Sabri 2011/2012
29
Compt1
NoClient Somme
174 723 123 345.89
177 498 34 564.00
201 639 45 102.50
201 639 325 100.00
203 446 274 882.95
Compt2
NoClient Agence TypeCompte
174 723 Lausanne courant
177 498 Genève courant
201 639 Lausanne courant
201 639 Lausanne dépôt
203 446 Genève courant
• La recomposition est réalisée
par une opération de jointure
Compte = Compt1 |x| Compt2
30. Fragmentation
Fragmentation hybride (par valeurs)
Cette fragmentation combine la fragmentation horizontale (par
occurrences) et verticale (par attributs).
• Le partitionnement est effectué par une combinaison de projections et de
sélections.
• Les occurrences et les attributs peuvent donc être répartis dans des différents
fragments.
La reconstruction est effectuée par combinaison de jointures et
d'unions des différents fragments.
Abdelouahed Sabri 2011/2012
30
32. Fragmentation
Méthodologie de la fragmentation horizontale
Question: Comment décomposer une base de données en
fragments horizontaux???
On se base sur les requêtes d'interrogation ou de mise à jour les
plus importantes et les plus fréquentes.
Pour le cas de la fragmentation horizontale on se base sur les
conditions de sélections.
• Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites
des requêtes,
• On forme l'ensemble des 2n conjonctions de conditions où chaque
condition élémentaire est prise dans sa forme positive ou dans sa
forme négative
Abdelouahed Sabri 2011/2012
32
• On ôte de cet ensemble les conjonctions de condition qui sont toujours
fausses, et on simplifie les autres.
33. Fragmentation
Méthodologie de la fragmentation horizontale
Exemple:
On considère une table CUISINIER que l'on se propose de répartir
en fragments horizontaux
Abdelouahed Sabri 2011/2012
33
On commencera par se baser sur les requêtes les plus fréquentes:
R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE numeq = '1';
R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean';
Cuisinier
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1
34. Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
Pour effectuer la fragmentation horizontale on se base sur les critères de
recherche, c'est à dire les conditions exprimées dans les "WHERE" des
ordres SQL.
• Soit
– A : prenom = 'Jean‘
– B : nom LIKE '%R%‘
– C : numeq = '1‘
– D : numeq = '2‘
• Les condition de sélection:
– C1 = A ʌ B
– C2 = C
– C3 = D ʌ A
• A partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj (i=1..8)
de conditions :
Abdelouahed Sabri 2011/2012
34
CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2ʌ C3, C1ʌ ¬C2ʌ C3, C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ C3, C1ʌ ¬C2ʌ ¬C3,
¬C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ ¬C3}
35. Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
Evaluons chacun des termes :
• C1ʌ C2ʌ C3 = Φ
• ¬C1ʌ C2ʌ C3 = Φ
• C1ʌ ¬C2ʌ C3 = A ʌ B ʌ D
• C1ʌ C2ʌ ¬C3 = A ʌ B ʌ C
• ¬C1ʌ ¬C2ʌ C3 = A ʌ ¬B ʌ D
• C1ʌ ¬C2ʌ ¬C3 = A ʌ B ʌ ¬C ʌ ¬D
• ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ C
• ¬C1ʌ ¬C2ʌ ¬C3 = (¬A ʌ ¬B ʌ ¬C) ∪ (¬A ʌ ¬C ʌ ¬D) ∪ (¬B ʌ ¬C ʌ ¬D)
Supposons, comme hypothèse supplémentaire (contrainte d’intégrité) ,
qu'il n'y a que deux équipes de cuisiniers (1 et 2) ce qui implique
• ¬Cʌ ¬D = Φ, ¬C = D, ¬D = C
Abdelouahed Sabri 2011/2012
35
36. Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
On a alors les 5 conjonctions de conditions significatives :
• CC1 = C1ʌ ¬C2ʌ C3 = Aʌ Bʌ D
F1 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%'
AND numeq ='2'
• CC2 = C1ʌ C2ʌ ¬C3 = Aʌ Bʌ C
F2 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%'
AND numeq ='1’
• CC3 = ¬C1ʌ ¬C2ʌ C3 = Aʌ ¬Bʌ D
F3 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom NOT LIKE
'%R%' AND numeq ='2'
• CC4 = ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ C
F4 = SELECT *FROM cuisinier WHERE (prenom !='Jean' OR nom NOT LIKE
'%R%' ) AND numeq ='1'
• CC5 = ¬ C1 ʌ ¬ C2 ʌ ¬ C3 = ¬ A ʌ D
F4 = SELECT *FROM cuisinier WHERE prenom !='Jean' AND numeq ='2'
Abdelouahed Sabri 2011/2012
36
37. Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
Ces 5 conditions définissent les fragments horizontaux (exclusifs) :
Abdelouahed Sabri 2011/2012
37
Cuisinier
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Fragmentation
38. Fragmentation
Méthodologie de la fragmentation horizontale
Exercice:
On considère la table Compte (NoClient, Agence, TypeCompte,
Somme) . Proposer un schéma de fragmentation horizontal en
tenant compte des requêtes suivantes
• R1 = ∏ NoClient, Agence (σTypeCompte = 'courant' and Somme > 100000(Compte))
• R2 = σ Agence = 'Lausanne’(Compte)
• R3 = ∏ NoClient, Somme(σ Agence = ' Genève’ and TypeCompte = 'courant' (Compte))
Abdelouahed Sabri 2011/2012
38
Compte
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne Courant 45 102.50
201 639 Lausanne Dépôt 325 100.00
203 446 Genève Courant 274 882.95
39. Fragmentation
Méthodologie de la fragmentation verticale
Question: Comment décomposer une base de données en
fragments verticaux???
On se base les requêtes d’interrogation ou de mise à jour
prédéfinies les plus importantes et les plus fréquentes pour extraire
les attributs concernés
• Les fragments verticaux sont exclusifs, sauf en ce qui concerne le (ou
les) attribut(s) de jointure (clé, identifiant, OID) qui sont communs à
tous les fragments et qui seront utilisés pour que la décomposition soit
sans perte d'information (reconstruction).
Abdelouahed Sabri 2011/2012
42
40. Fragmentation
Méthodologie de la fragmentation verticale
Pour le cas de la fragmentation verticale on se base sur les
conditions de projections.
Soient p1, p2, ..., pn les conditions de projection qui ont été
extraites des requêtes,
On forme l'ensemble des 2n intersections des expressions de
projection où chacune est soit l'expression initiale soit son
complément.
Abdelouahed Sabri 2011/2012
43
On ôte de cet ensemble les conjonctions de condition qui sont
toujours fausses, et on simplifie les autres.
NB: Dans le cas où la requête ne possède pas d’attributs de jointure il
faut les ajouter.
41. Fragmentation
Méthodologie de la fragmentation verticale
Exemple :
On considère une table CUISINIER que l'on se propose de répartir
en fragments verticaux
Abdelouahed Sabri 2011/2012
44
On commencera par se baser sur les requêtes les plus fréquentes:
R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE numeq = '1';
R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean';
Cuisinier
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1
42. Fragmentation
Méthodologie de la fragmentation verticale
Exemple (suite):
Pour effectuer la fragmentation verticale on se base sur les projections
utilisées:
• P1 : (numero, numeq)
• P3 : (numero, nom)
• P2 n'est pas considérée comme une projection car tous les attributs sont
demandés dans la requête
A partir des projection Pi, on construit l'ensemble IP des intersections de
projections :
Abdelouahed Sabri 2011/2012
45
Où ¬Pj désigne le complément de Pj sur l'ensemble des attributs de la table
CUISINIER avec l'ajout obligatoire de la clé numero :
• ¬P1 = (numero, nom, prenom)
• ¬P3 = (numero, prenom, numeq)
IP = { P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3}
44. Fragmentation
Méthodologie de la fragmentation hybride
C’est la combinaison des deux fragmentations: horizontale et verticale.
Abdelouahed Sabri 2011/2012
47
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Fragments
horizontaux
Pour chaque fragment horizontal, on
regarde quelles sont les requêtes qui
les concernent (sélection):
R1: SELECT numero, numeq FROM
CUISINIER WHERE prenom = 'Jean'
AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER
WHERE numeq = '1';
R3: SELECT numero, nom FROM
CUISINIER WHERE numeq = '2' AND
prenom = 'Jean‘;
45. Fragmentation
Méthodologie de la fragmentation hybride
Les intersections de projection de chacun des fragments
horizontaux, avec les fragments correspondants sont donc:
Abdelouahed Sabri 2011/2012
48
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
R1: SELECT numero, numeq FROM
CUISINIER WHERE prenom =
'Jean' AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER
WHERE numeq = '1';
R3: SELECT numero, nom FROM
CUISINIER WHERE numeq = '2'
AND prenom = 'Jean';
R1 R3
R1 R2
R3
R2
Aucune
46. Fragmentation
Méthodologie de la fragmentation hybride
Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments
de l'ensemble IP construits à partir de P1 et P3, soit
IP1 ={P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬ P1 ∩ ¬P3}
IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)}
Le fragment 2 est concerné par les requêtes R1 et R2, donc seulement par les
projections P1 et ¬ P1, soit
IP2= {P1 ∩ P1, ¬ P1 ∩ ¬ P1}
IP2 = {(numero, numeq), (numero, nom, prenom)}
Le fragment 3 est concerné par la requête R3 donc seulement par les projections
P3 et ~P3, soit IP3={ P3 ∩ P3 , ¬P3 ∩ ¬P3}
IP3 = {(numero, nom), (numero, prenom, numeq)}
Le fragment 4 est concerné par la requête R2, donc par tous les attributs
IP4 = {(numero, nom, prenom, numeq)}
Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs :
IP5 = {(numero, nom, prenom, numeq)}
Abdelouahed Sabri 2011/2012
49
47. Fragmentation
Méthodologie de la fragmentation hybride
Les différents fragments:
Abdelouahed Sabri 2011/2012
50
F21
NUMERO NUMEQ
20 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F51
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
F11
NUMERO
13
F12
NUMERO NOM
13 DURDUR
F13
NUMERO NUMEQ
13 2
F14
NUMERO PRENOM
13 Jean
F22
NUMERO NOM PRENOM
20 DURALEX Jean
F31
NUMERONOM
26 DUGENOU
Cuisinier
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1
48. Schéma d’allocation
Après la fragmentation, la question qu’ont doit se poser est:
Ou seront affectés chacun des fragments???
L'affectation des fragments sur les sites est décidée en fonction de
l'origine prévue des requêtes qui ont servi à la fragmentation.
Pour chaque requête:
On connaît l'ensemble des sites qui sont susceptible d'émettre cette
requête,
On possède de l'ensemble des fragments qui sont concernés par la
requête.
Placer les fragments sur les sites où ils sont le plus utilisés, pour
minimiser les transferts de données entre les sites.
Pour définir le schéma de localisation, on recherche:
Priorité 1: D'où sont émises les requêtes de sélection
Priorité 2: D'où sont faites les mises à jour
Abdelouahed Sabri 2011/2012
51
49. Schéma d’allocation
Exemple:
reprenons l'exemple précédent et supposons que deux sites
soient pris en considération A et B
R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean'
AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE numeq = '1';
R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND
prenom = 'Jean';
Abdelouahed Sabri 2011/2012
52
50. Schéma d’allocation
Exemple (suite):
Supposons que la requête R1 est émise de A ou B, que la requête R2 est
émise de A seulement et que la requête R3 est émise de B seulement.
Pour les trois requêtes, les fragments suivants sont concernés :
• R1 fragment13
• R2 fragment 21, fragment 22, fragment 41
• R3 fragment 12, fragment 31
• Pour les autres fragments, on peut dire:
– Le fragment 21 peut appartenir à la requête R1 ou R2
– Le fragment 11 peut appartenir a toutes les Requêtes
– Le fragment 51 n’appartient à aucune requête
– Le fragment 32 n’appartient à aucune requête
– Le fragment 14 n’appartient à aucune requête
On doit faire des choix pour ces fragments de façon à équilibrer les sites
Abdelouahed Sabri 2011/2012
53
51. Schéma d’allocation
Exemple (suite):
Supposons que la requête R1 est émise de A ou B, que la requête R2 est
émise de A seulement et que la requête R3 est émise de B seulement.
Pour les trois requêtes, les fragments suivants sont concernés :
• R1 fragment13
• R2 fragments 21, 22 et 41
• R3 fragments 12 et 31
Pour les sites:
• site A: fragment 13, fragment 21, fragment 22, fragment 41, fragment 11,
fragment 51
• site B: fragment 12, fragment 31, fragment 14 , fragment 32
On peut combiner quelques fragments:
• site A: fragment 11, fragment 13, fragment 2, fragment 4, fragment 5
• site B: fragment 12, fragment 14 , fragment 3
Abdelouahed Sabri 2011/2012
54
• Le fragment 21 peut appartenir à la requête R1 ou R2
• Le fragment 11 peut appartenir a toutes les Requêtes
• Les fragments 51, 32 et 14 n’appartiennent à aucune requête
52. Les mises-à-jour
Les mises à jour consistent en trois opérations: insertion
(INSERT), suppression (DELETE) et modification
(UPDATE).
Insertion
Exemple: insérer un nouveau cuisinier dans la table CUISINIER :
INSERT INTO CUISINIER VALUES(21, 'DUBOUT', 'Jean', 2);
Le fragment horizontal concerné peut être retrouvé avec les CC
(pour le cas présent, il s'agit de CC3) ; ensuite il faut insérer le
tuple dans tous les fragments verticaux.
Abdelouahed Sabri 2011/2012
55
F32
NUMERO PRENOM NUMEQ
26 Jean 2
21 Jean 2
F31
NUMERONOM
26 DUGENOU
21 DUBOUT
53. Les mises-à-jour
Suppression:
Exemple: suppression du cuisinier Jean DUBOUT :
DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND
prenom = 'Jean' ;
On utilise les conditions CC : CC3 et CC4 sont concernées.
On cherchera donc dans les fragments correspondants
Abdelouahed Sabri 2011/2012
56
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
21 Jean 2
F31
NUMERONOM
26 DUGENOU
21 DUBOUT
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
F31
NUMERONOM
26 DUGENOU
54. Les mises-à-jour
Suppression (suite):
Exemple: supprimer le cuisinier de numéro 21
DELETE FROM CUISINIER WHERE numero = 21 ;
Aucune CC n’est concernée
Il faut chercher dans tous les fragments
Abdelouahed Sabri 2011/2012
57
55. Les mises-à-jour
Modification:
Exemple : modification de l'affectation du cuisinier DUBOUT
UPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ;
On utilise les conditions CC : CC3, CC4, CC5 sont concernées.
On modifie puis on vérifie que les CC son toujours vérifiées:
• Puisque numeq = 1, il faut l’enlever du fragment F3 et F5
• On déplace alors le tuple dans le fragment 4.
Abdelouahed Sabri 2011/2012
58
56. Répartition avancée
Dans le cas où la méthode classique de fragmentation-
allocation ne s'avère pas satisfaisante, on peut faire appel à
des techniques plus puissantes (mais aussi plus complexes
à mettre en œuvre):
L'allocation avec duplication de fragments,
L'allocation dynamique des fragments,
La fragmentation dynamique.
Abdelouahed Sabri 2011/2012
60
57. Répartition avancée
Allocation avec duplication
Certains fragments peuvent être dupliquées sur plusieurs sites
(éventuellement sur tous les sites)
Avantages:
Elle permet d’améliorer les performances en terme de temps d'exécution
des requêtes (en évitant certains transferts de données).
Elle permet une meilleure disponibilité des informations (connues de
plusieurs sites),
Elle permet une meilleure fiabilité contre les pannes.
Inconvénient:
les mises à jour doivent être effectuées sur toutes les copies d'une même
donnée.
En conséquence:
moins un fragment est sujet à des modifications et plus il est prédisposé à
la duplication. Abdelouahed Sabri 2011/2012
61
58. Répartition avancée
Allocation avec duplication
Deux types de duplication: synchrone et asynchrone.
Duplication synchrone:
• La sérialisabilité est assurée sur l’ensemble des nœuds
• Une transaction est confirmée seulement lorsque tous les sites ont été
mis-à-jour
Duplication asynchrone:
• Les mises-à-jour sont d’abord faites sur une copie primaire
• Les sites de réplication sont mis-à-jour en différé, à partir de la
copie primaire, après la confirmation de la transaction
• Ex. d’implémentation: vues matérialisées (eq. SNAPSHOTs)
Abdelouahed Sabri 2011/2012
62
59. Répartition avancée
Allocation dynamique
Ici, l'allocation d'un fragment peut changer en cours
d'utilisation de la BDR:
Le schéma d'allocation et les schémas locaux doivent être tenus à
jour.
Peut être utilisée comme une alternative à la duplication elle se
révèle plus efficace lorsque la base de données est disposée à de
nombreuses mises à jour.
Abdelouahed Sabri 2011/2012
63
60. Répartition avancée
Fragmentation dynamique
Dans le cas où le site d'allocation peut changer
dynamiquement, il est possible que deux fragments
complémentaires (verticalement ou horizontalement) se
retrouvent sur le même site. Il est alors normal de les
fusionner.
A l'inverse, si une partie d'un fragment est appelée sur un
autre site, il peut être intéressant de décomposer ce
fragment et de ne faire migrer que la partie concernée.
Ces modifications du schéma de fragmentation se reflètent
sur le schéma d'allocation et sur les schémas locaux.
Abdelouahed Sabri 2011/2012
64