La fédération de bases de données
Interroger plusieurs bases comme une seule : serveur distant, correspondance d'utilisateur, table étrangère, ce qui s'exécute à distance ou en local, validation en deux phases, fédérer ou copier dans un entrepôt.
- 27 cartes
- 7 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Sur le schéma
- Mises en situation
- Comprendre
Quelques cartes du deck
Base fédérée : de quoi s'agit-il ?
Voir la réponse
Ensemble de bases indépendantes que l'on interroge par une même interface comme si elles n'en formaient qu'une, sans déplacer leurs données.
Les données restent chez leur propriétaire et toujours à jour, mais chaque requête dépend du réseau et de la disponibilité de toutes les bases touchées.
Dans ce plan
EXPLAIN VERBOSE, où le filtrepays = 'FR'est-il appliqué ?
```text
Foreign Scan on public.clients_distants (cost=100.00..128.45 rows=7 width=68)
Output: id, nom, pays
Remote SQL: SELECT id, nom, pays FROM public.clients WHERE ((pays = 'FR'::text))`- À distance : la ligne Remote SQL contient le WHERE
- En local, après le rapatriement de toute la table, comme tout filtre sur une table étrangère
- Des deux côtés : la base distante filtre, puis la base locale refiltre chaque ligne reçue
- Nulle part : le plan ne montre aucun nœud Filter, donc la condition n'est pas appliquée
Voir la réponse
À distance : la ligne Remote SQL contient le WHERE
Remote SQLest la requête réellement envoyée à l'autre base. Elle contient leWHERE, donc seules les lignes françaises voyagent. Un filtre appliqué en local apparaîtrait sur une ligneFilter:.La partie … de la norme SQL décrit l'accès à des données externes par des tables étrangères.
Voir la réponse
La partie SQL/MED de la norme SQL décrit l'accès à des données externes par des tables étrangères.
Son nom signifie gestion des données externes. PostgreSQL en reprend les commandes (
CREATE SERVER,CREATE FOREIGN TABLE) avec des modules commepostgres_fdw; Oracle répond au même besoin par ses liens de base, une syntaxe propre hors de cette norme.