Title: Manipulations Multibases et Distribues Partie 2
1Manipulations Multibases et Distribuées (Partie 2)
- Witold.Litwin_at_dauphine.fr
- http//ceria.dauphine.fr/witold.html
2Manipulations Multibases et Distribuées
(Kandinsky Ligne avec Accompagnement, 1937 )
3Manipulations Multibases et Distribuées
4MSQL(Litwin, Abdellatif, Nicolas, Zeroual,
1986-89)
- Une extension multibase de SQL
- SQL est par définition dans MSQL
- SQL-1, SQL-2, SQL-3
- Permet des manipulations multibases
non-procédurales - Développé en 1986-89
- INRIA, projet B A BA,
- initialement sous projet du projet-pilote SIRIUS
(J. Le Bihan, puis W. Litwin) - Thèses de 3ème Cycle de MM. Abdellatif, Nicolas,
Zeroual - Compilateur implémenté à Houston University
- Équipe de Prof. M. Rusinkiewicz, 1990-1993
- Article Information Sciences, 49, 1989,
- Pdf http//ceria.dauphine.fr/msql_noirblanc.pdf
- Pour lire copiez manuellement le lien dans
Internet Explorer - (en attendant la correction par MS du bug de
Powerpoint plug-in faussant le lien automatique)
5MSQL(Propriétés fondamentales nouvelles)
- Requête SQL
- Est formulée en calcul de prédicats de 1er ordre
- Est traduite pour loptimisation en algèbre
relationnelle - Produit une table
- Requête MSQL
- Peut-être formulée en calcul de dordre
supérieur - Incluant celui de 1er ordre
- Peut-être traduite pour loptimisation en algèbre
multirelationnelle - Incluant celle relationnelle
- Produit une multitable
- Un ensemble de relations (tables)
- Constitué en particulier dune seule table
6MSQL(Fonctions spécifiques pour l'env. MBD)
- Adressage de tables dans les bases différentes
- Implicitement ou par qualification par de noms de
bases ou de multibases - Introduit vers 1985 par le système relationnel
multibase prototype MRDSM - Développé à lINRIA dans le projet B A BA
- Inconnu à lépoque de tout langage relationnel
- Voir le survol des SGBD relationnels existants en
1987 (M. Brodie)
7MSQL(Fonctions spécifiques pour l'env. MBD)
- Manipulation de données sémantiquement
hétérogènes - Requêtes multiples
- Avec identificateurs multiples
- Avec variables sémantiques
- Unités de précision
- Unités de mesure
- Jointures implicites
- Possibilités toujours inconnues de SQL
- Connues actuellement de certains dialectes
- Limitées par rapport à MSQL
8MSQL(Fonctions spécifiques pour l'env. MBD)
- Vues multibases
- Transfert de données et de schémas entre les
bases - Dépendances multibases
- Déclencheurs multibases (triggers)
- Transactions multibases flexibles
- Généralisant le modèle ACID
- Trop restrictif pour les multibases
9MSQL exemple
Vue
SIL Schéma Interne Logique
10Schémas conceptuels(le multischéma)
- DB bnp
- br (br, brname, street, street, city,
zipcode, tel)account (acc, cl, balance,
br)client (cl, clname, cltel, cltype, street,
street, city, zipcode)spe-acc (acc, br, cl,
balance, curr) - DB sg
- branch (bra, braname, street, s, town, zip,
t, class)acc (acc, bra, c, balance)client
(c, cname, ct, ctype, street, s, town, zip) - DB cic
- br (br, brname, street, street, city,
zipcode, tel)account (ac, br, cl, balance,
open_date)client(cl, clname, cltel, cltype,
street, street, city, zipcode)
11Hétérogénéité sémantiquedans les banques
- Les mêmes noms peuvent désigner des données
différentes - les banques sont autonomes et ne partagent pas
les succursales (branches) - Différents noms peuvent désigner les mêmes
données - un même client, une même ville ou rue..
- La valeur d'une clé n'est valable que dans une
base - comment identifier un même client de deux
banques ?
12Commandes MSQL
- CREATE TABLE CREATE DATABASE
- CREATE MULTIDATABASE CREATE VIEW
- ALTER TABLE ALTER VIEW
- ALTER MULTIDATABASE
- DROP TABLE DROP DATABASE
- DROP MULTIDATABASE DROP VIEW
13MSQL CREATE DATABASE
Champs de la requête
14MSQLCREATE TABLE
- use banks
- CREATE TABLE boulogne.pret FROM bnp.pret
- CREATE TABLE ch_en_bois (Chq INT,
Montant_Euro CURRENCY .... ) - On a crée quatre tables bnp. ch_en_bois, cic.
ch_en_bois... boulogne. ch_en_bois - Dans ce CREATE TABLE, ch_en_bois est un
identificateur multiple.
Unité de mesure
15MSQL Requêtes multibases élémentaires
16Requêtes multibases élémentaires Rappel
historique
- Le concept de requêtes multibases a été proposé à
lINRIA vers 1985 - Sybase a été le 1èr SGBD commercial à offrir les
requêtes multibases élémentaires - Vers 1988-89, bases Sybase uniquement
- Le standard SQL a pris en compte le préfixe par
les noms de bases vers 1993 - SQL Access Group présidé par Jim Gray
- Pour les requêtes multibases élémentaires
seulement - Ce standard est diversement suivi par les
dialectes commerciaux SQL. Par exemple - MsAccess, SQL-Server, Sybase le suivent
- Oracle utilise le postfixage (voir plus loin)
- DB2 vient de l'appliquer dans V.7 (Août 2000)
- Ingres ??
17MSQL Base par défaut
Les tables de la base par défaut sont sans préfixe
18MSQL Requêtes élémentaires sans noms de BDs
Les noms (propres) de tables sont uniques dans
le champ de la requête
19Mises à jour
- USE (bnp b) sg
- UPDATE account
- SET account.balance account.balance 500
- WHERE account.balance gt acc.balance
- AND b.client.clname sg.client.cname AND
b.client.street sg.client.street - Que veut dire cette requête ?
20Requêtes multiples
21Requêtes multiples(toute succursale aux Champs
Elysées)
22Résultat (une multitable)
23Mises à Jour Multiples(change rue Etoile à
Charles de Gaulle dans tout attribut street)
- Use BanksUpdate set street 'Charles de
Gaulle"where street 'Etoile - Quelles sont les instructions SQL générées et
combien ? - Use Banks vital cicUpdate set street
'Charles de Gaulle"where street 'Etoile' - Le modèle de transaction de MSQL est celui de
transactions flexibles (pdf) - Inclut le modèle ACID (vital Banks)
- Ce dernier est souvent insuffisant dans le
milieu multibase
24Variables sémantiques dans MSQL
- use bnp sglet x be town cityselect from
bwhere x 'Paris' and street 'r. de Rivoli'
25Variables sémantiques dans MSQL
- use bnp sglet x be town city
- select from bwhere x 'Paris' and street
'r. de Rivoli' - use bnp
- select
- from br
- where town 'Paris' and street 'r. de Rivoli'
- use sg
- select
- from branch
- where city 'Paris' and street 'r. de Rivoli'
26Variables sémantiques dans MSQL
- use bnp sglet x be town cityselect from
bwhere x 'Paris' and street 'r. de Rivoli' - Alternativement
use bnp sglet x be to cityselect from
bwhere x 'Paris' and street 'r. de
Rivoli'
27Variables sémantiques dans MSQL
- use banks
- let x be town city
- let y be sg bnpselect X. from y.b X, cic.b
Ywhere Y.x 'Paris' and - Y.street X.street and X.x 'Paris'
- Quelle est la sémantique de cette requête ?
- Est-ce que sa décomposition "naturelle" en
requêtes élémentaires, selon l'évaluation de
variables sémantiques, est optimale ? - Sinon, quelle est celle potentiellement meilleure
?
28Algèbre multirelationnelle
- Non, la décomposition naturelle n'est pas
optimale - la sélection dans cic est répétée inutilement
- il faut la faire d'abord, puis la jointure
- il faut un outil algébrique formel pour les
requêtes multiples pour résoudre de tels cas
d'une manière générale - l'algèbre multirelationnelle
- Grant, Litwin, Selis, Roussopoulos. An Algebra
and Calculus for Relational Multidatabases. The
VLDB Journal, Vol. 2, No. 2, April 1993, 153-171 - pdf http//ceria.dauphine.fr/mdb-algebra-vldb-j
ournal.pdf
29Multirelational Algebra
- Multirelational operators
- Select From M where (boolean condition)
- Project M (A, B)
- Pair-wise Theta join On (M1.A ? M2.B AND )
- Theta Join On (M1.A ? M2.B AND )
- These operators are typically commutative and
associative as their relational counterparts - Select can be moved through a join down the
execution tree - Project (C (Project M (A, B, C))) Project M (C)
- Etc
30Homogénéisation de nomsLes labels
- USE Banks LET t BE tel tSELECT name
branch_name, t tel, s streetFROM br
brWHERE street Champs Elysées - Le résultat la multitable
- ( bnp.br.branch_name, bnp.br.tel,
bnp.br.street ), ( sg.br.branch_name,
sg.br.tel, sg.br.street )( cic.br.
branch_name, cic.br.tel, cic.br.street )
31Vues multibases
bnp
my_bank
sg
Une vue partielle de bases bnp et sg dans la base
my_bank
Les vues dans my_bank peuvent-être considérées
un Schéma d'Importation
32Mots-clés et Fonctions Agrégats
- Mots-clés et Fonctions Agrégats de SQL
- par définition
- DISTINCT, GROUP BY, ORDER BY
- COUNT, AVG, SUM..
- opèrent sur chaque table d'une multitable
- Leur extensions aux multitables
- MDISTINCT, MCOUNT, MGROUP BY, MORDER BYMAVG,
MSUM... - opérent sur la totalité de la multitable
33Exemple
- USE BanksSELECT COUNT ()FROM br brWHERE
street 'champs elysées'
34Exemple
- USE BanksSELECT COUNT ()FROM br brWHERE
street 'champs elysées' - bnp.br2
- cic.br2
- sg.br2
35Exemple
- USE BanksSELECT MCOUNT ()FROM br brWHERE
street 'champs elysées'
36Exemple
- USE BanksSELECT MCOUNT ()FROM br brWHERE
street 'champs elysées' - br6
- Exercises in warehousing (dans mon cours en
ang.) - -Average balance per client in each bank
- Average balance per client in BANKS
- Sum of client assets per bank
- Sum of client assets in BANKS
37Aggregate Functions IMPLEMENTATION ISSUES
- All-in-one (traditional computation)
- Possibly in parallel
- The calculus can take long time.
- Successive approximations
- Some kind of sampling
- result1, from any 1st DB to come
- (result1 result2) / 2
-
- sampling within each database
- several ACM-Sigmod VLDB papers dealt with query
evaluation using sampling - Precomputing
- Incremental evaluation using interdatabase
dependencies - Common to warehousing
38Fonctions Agrégats MERGE ON
- forme un tuple de tous les tuples d'un même objet
dans la multitable sélectionnée - Utilise les jointures externes
- Trouve les millionnaires dans Banks et forme un
tuple pour chaque millionnaire trouvé - USE Banks LET x.y BE clname.cltel
cname.ctLET z BE Banks.SELECT FROM z.a
WHERE z.a.c z.client.cAND z.a.balance gt
1 000 000MERGE ON x y
39Fonctions Agrégats MERGE ON
nuls
nuls
nuls
USE Banks LET x.y BE clname.cltel
cname.ctLET z BE Banks.SELECT FROM z.a
WHERE z.a.c z.client.cAND z.a.balance gt
1 000 000MERGE ON x y
40Fonctions Agrégats NAME
- Transforme un nom (de table, d'attribut..) en
valeur d'attribut - USE Banks LET x.y BE br.city branch.townSELECT
name branch_name, NAME (.x) bankFROM xWHERE
y 'Nice' UNION - Note L'union réunit les tables de la
multitable sélectionnée - Le résultat c'est la table avec le schéma
branch_name bank
41Fonctions Agrégats CHOOSE
- Choisit au plus n tuples parmi ceux trouvés par
la requête - les 1èrs trouvés, comme fait la fonction TOP
(défaut) - au hasard pur (RND)
- ceux qui n'ont pas été choisi à la précédente
exécution de la requête dans la même transaction
(NEW) - de préférence dans les bases listées et en ordre
- en choisissant au plus m tuples partageant les
valeurs des attr. dans la liste A, supposée clé
globale d'un objet. - dans la limite de t unités de temps
- t est prioritaire sur n
- CHOOSE (n, (m, ltAgt) ltBgt ) RND NEW
- ltAgt ltliste d'attr.ltBgt ltliste de BDsgt
42Fonctions Agrégats CHOOSE
- Choisis UN millionnaire d'une manière aléatoire
- USE Banks SELECT c.FROM c c, a aWHERE
c.c a.c AND a.a gt 1.000.000CHOOSE ()
RND - Fonction très importante dans l'environnement MBD
- surcharge d'information
43Fonctions Agrégats TIMEOUT
- Fixe la durée maximale de la requête
- la requête arrivant au time-out est considérée
exécutée avec succès TIMEOUT (t unité)
ltunitégt ms s m h d s - secondes
(défaut) - USE BanksSELECT FROM brWHERE street
'champs elysées' TIMEOUT (10)
44Fonctions Agrégats POST
- Rend continuelle une requête
- On manipule tout tuple trouvé durant le temps de
vie - Même ceux crées après le lancement de la requête
- On peut limiter son temps de vie par TIMEOUT
- USE Immo LaCentrale Orpi SELECT FROM
logemWHERE prix lt 1,000,000 AND Ville 'Paris'
POST
45Fonctions Agrégats ESTIMATE
- Calcule les coûts de la requête avant son
exécution et peut lancer l'exécution après
l'autorisationESTIMATE (type, price, time,
count, size, report) WITH EXEC_PROMPT - type d'estimation
- exact (peut être long à calculer)
- approximatif
- prix de la requête (en , FF...).
- temps de complétion
- nombre de tuples
- taille du résultat, en octets.
- rapport sur l'estimation elle-même
- la précision...
46Privilèges dans MSQL
- USE bnp sg cic
- GRANT SELECT ON client TO Nicolas Abdellatif
- client est une multitable
- client (bnp.client, sg.client, cic.client)
- GRANT ALL ON etoile.account TO Nicolas Abdellatif
FROM bnp.account - GRANT ALL ON etoile.account TO Nicolas FROM
Zeroual ON bnp.account
47Requêtes interbases
- Transfèrent les données entre des BDs
- La source et la cible de la requête sont des
multitables - Conflits possibles entre les données transférées
et celles existantes dans la cible
INSERT...
48Requêtes interbases
- INSERT
- insère les tuples sélectionnés
- sauf ceux dont la clé est déjà dans la cible
- STORE
- insère les tuples sélectionnés
- en remplaçant ceux dont la clé est déjà dans la
cible - REPLACE
- insère les tuples sélectionnés et delete le reste
de la cible - UPDATE
- met à jour les tuples sélectionnés dans la cible
par les valeurs de tables sources - COPY
- copie les tuples et le schéma de la source
49MSQL
- Il y d'autres fonctions intéressantes
- On verra certaines plus tard
- voir aussi l'article
- MSQL A multidatabase Language. Information
Science Journal Special Issue on Database
Systems, 48, 2, (July 1989).
50Eléments de MSQL dans SGBDs commerciaux
- La majorité de SGBDs sont des SGMB
- Au mieux les requêtes élémentaires
- Sybase, Oracle, Informix, MsAccess, SQL Server,
DB2.... - Il y a aussi des SGMB qui ne sont que des
systèmes d'accès aux SGBDs - SQL-Query (Microsoft), EDA-SQL (Inf.
Builders), Oracle DB Integrator, DBJoiner (IBM),
Ingres (Comp. Associates), UniSQL/M (Cincom
Corp.), Uniface, QE, OAdaptor (HP), Telebase... - Les systèmes dits "Data Warehouse sont des SGMB
51Manipulations MBD en MsAccess
- On peut faire des opérations MBD limitées entre
- Bases MsAccess
- Une BD de MsAccess et
- toute autre BD sous un SGBD compatible ODBC
- Paradox, Btrieve, Dbase
- Tout programme OLE compatible
- Excel notamment
52Manipulations MBD en MsAccess
Passerelle Paradox
MsAccess
Sybase ODBC driver
B1
B2
Attach
Insert INTO
Export
Connect. réparties
ODBC
Import
ODBC
B3
Paradox
Excel
Oracle
Sybase
53MsAccess MSQL
- Open B ltgt USE B
- ATTACH table
- Open B1 attach B2.T' as T ?create view B1.T as
select from B2.T' - DROP VIEW correspond à Delete dans un menu de
MsAccess - Clause IN ltexternalDBgt
- Open B1Select a, b, c From D IN B2 ?? select
a, b c from B2.D
54Exemples MsAccess
- Source DB MsAccess SELECT Customer IDFROM
Customers IN MYDATA.MDBWHERE Customer ID Like
"A" - Source DB Paradox SELECT CustomerIDFROM
CustomersIN "C\PARADOX\DATA\SALES" "Paradox
4.x"WHERE CustomerID Like "A" - Tout transfert de données d'une/vers BD
non-MsAccess ou logiciel compatible OLE comporte
les conversions de représentation de données - Hétérogénéité sémantique oblige
55Requêtes élementaires MsAccess
- On peut ouvrir une BD et faire les requêtes à
d'autres BDs - il faut définir des aliases dans FROM
- Base ouverte s'appelle s-p1.mdb
- mais ce nom n'a pas d'importance ici
- Jointure de tables dans deux bases externes à
s-p1.mdb - SELECT TOP 10 C.Contact Name, C.City
- FROM c\access\nwind2.mdb.Customers AS C,
c\access\ordentr2.mdb.customers AS O - WHERE (o.Id C.customer Id)
56Résultat
Contact Name City Pat Parkes London Gladys
Lindsay Seattle Elizabeth Lincoln Tsawassen Olivia
LaMont San Francisco Terry Hargreaves London Eliz
abeth Brown London Sylvia Dunn London Ann
Devon London Ronald Merrick London Bill
Lee Pocatello
57Requêtes élémentaires MsAccess
- Jointure d'une table locale à la base ouverte
(S-P.mdb) et d'une table externe dans la base
nwind2.mdb - La base ouverte et nwind2.mdb se trouvent dans
le répertoire par défaut - défini dans les Options
SELECT TOP 10 S.SName, C.Contact Name,
C.City FROM S, nwind2.mdb.Customers AS
C WHERE ((S.City C.City)) Order by contact
name
Alias obligatoire, contrairement à MSQL
58Résultat
SName Contact Name City Clark Ann
Devon London Clark Archibald Langford London Clar
k Cornelia Giles London Clark David
Bird London Clark Elizabeth Brown London Clark G
.K.Chattergee London Clark Gerald
Pipps London Clark Hari Kumar London Clark Jane
Austen London Clark Jeffrey Jefferies London
59Requêtes multibases en QBE
- Il est aussi possible de formuler les requêtes
multibases élémentaires en QBE de MsAccess - ADD Table montre par défaut dans la fenêtre
(optionnelle) "Propriétés" les tables de la base
ouverte (S-P) - Source Database (current)
- Il y faut mettre le nom absolue de la base de la
table à manipuler - après avoir fermé la liste visible venant de
"current" DB - alors on voit la liste des table et/ou des vues
de cette base - on sélectionne la ou les tables comme d'habitude
(par des cliques) - on formule la requête comme celle monobase
- y compris les jointures interbases
60New Query
61(No Transcript)
62(No Transcript)
63(No Transcript)
64Résultat
65Et en SQL MsAccess
Puis, alternativement ...
66(No Transcript)
67Requêtes multibases en QBE
- On peut aussi utiliser les tables préalablement
attachées - alors elles apparaissent dans la liste des tables
de BD En cours - Puis on peut utiliser les vues multibases
- elles apparaissent dans la liste des vues de BD
En cours - Enfin, on peut tout mélanger dans une même
requête QBE - et SQL
68Requêtes multibases / Tables liées
- Requêtes MDB offrent une meilleure portabilité
de lapplication en permettant - Dutiliser le nom propre de la base source
seulement - En portant les bases dans le répertoire par
défaut - Indique dans les Options
- Alors lapplication marche telle quelle.
69Requêtes multibases / Tables liées
- Un lien vers une table liée est défini par contre
par son nom (chemins daccès) absolu - Si le portage a lieu, lapplication ne marche que
si lon refait les liens - par le gestionnaire de tables liées
- Problème potentiel pour lusager
70Requêtes multibases / Tables liées
- Toute table liée T dans une base source
source.mdb peut être remplacée par la requête
mbd T dans sa base cible - SELECT FROM base.mdb.T
- Requête T peut alors être utilisée dans la base
cible comme si elle était locale - sans préfixe source.mdb,
- exactement comme on aurait usité la table liée T
dans la base cible - La requête T peut aussi ne sélectionner que
certains attributs de source.mdb.T et même les
transformer par des expression de valeur ou des
fonctions scalaires - potentiellement une meilleure sécurité
- un outil plus flexible
71Formulaire multibase
- Un formulaire sur une requête multibase
- Un formulaire avec un ou des sous-formulaires
ayant chacun comme source une requête multibase - sous-formulaires libres ou liés
- Un formulaire avec de formulaires attachés ayant
chacun comme source une requête multibase - sous-formulaires libres ou liés
- Enfin, un formulaire avec plusieurs requêtes
multibases - simule une vue multirelationnel
72MsAccess MSQL
- Clause INTO ltexternalDBgt dans Select INTO ou
INSERT INTO - Open B1Select a, b, c INTO T IN B2 From D ??
Use B1 copy into B2.T select a, b c from D
- D peut être une vue ou une sous-requête
- INSERT de MsAccess a la (sous)sémantique de
INSERT de MSQL
73MsAccess MSQL
- IMPORT EXPORT
- commandes au menu
- équivalentes à la requête MSQL
- Use B1 copy into T1 from B2.T2
74MsAccess MSQLComparaison
- Formulation de requêtes MBD élémentaires et des
vues MBD avec des ATTACH - d'abord il faut faire des ATTACH
- puis on formule une requête SQL monobase
- puis, peut-être il faut deleter les ATTACH
- dans Banks, il faudrait en pratique que toute BD
s'attache toutes les tables de toute autre BD - Bonne chance DBA !
- Requêtes MBD élémentaires
- pratiquement MSQL
- aux restrictions discutées près
- Requêtes multiples et autres possibilités de MSQL
- (Encore) inconnues de MsAccess
75SQL Server
- Architecture MBD générale similaire à celle de
MsAccess, en plus puissante - passerelles vers Oracle, IMS, DB2
- ODBC et donc MsAccess
- Le langage Transac-SQL supporte les fonctions
suivantes de MSQL et est le dialecte MBD le moins
procédural de l'industrie - requêtes élémentaires
- aux BDs Sybase d'un même siteUSE B select
from T where B1.T1.a T.a - Une seule base par USE
- quelques restrictions au niveau de requêtes
interbases - CREATE VIEW multibase, et déclencheurs (triggers)
multibases - les déclencheurs réalisent les dépendances MDB
76Oracle, RDB, Informix
- Ont une opération similaire à ATTACH diteCreate
link - Pour le nommage global des bases, Oracle assimile
les multibases aux domaines reseau - Create public database link bnp.bnp_host.banks.co
m connect to bnp_unix using bnp_connect_info - Create public database link cic.
cic_host.banks.com connect to current_user - SELECT br.brname, b.braname, br.street
- FROM br_at_bnp.bnp_host.banks.com, br_at_ cic .
cic_host.banks.com b - WHERE br.street b.street
77Oracle, RDB, Informix
- Les requêtes MBD ne sont possibles qu'après que
les liens ont été défini - Donc ces SGBD sont proceduraux que Sybase pour
les manips MBD - Sous Net8 dOracle
- On peut définir un synonyme pour toute table
adressée par un lien - create synonym bnp for client_at_ bnp.bnp_host.banks.
com - Le nombre max. de liens est par défaut quatre
- On peut définir des déclencheurs MDB et des
requêtes interbases - COPY sous Oracle notamment
78EDA-SQL, DB Integrator, DBJoiner, Ingres al
- Les SGMB SQL d'accès aux SGBD
- en théorie, sans leur BDs propres
- il y a toujours une, surtout pour les catalogues
MBD - dite base auxiliaire
- Il faut créer des liens (links) et une ou
plusieurs bases logiques - bases virtuelles
- en fait presque
- seul DB Integrator supporte les requêtes MBD
élémentaires - dites requêtes multischéma
- Pas d'autres fonctions de MSQL
ODBC
BD logique
BD logique
Passerelle
BD Ingres
BD lMS
BD RDB
79SQL-Query
- Pas de schéma logique
- Accès aux sources hétérogènes
- Access, Foxpro, Paradox, Btrieve...
- Supporte les requêtes MBD élementaires
- en SQL
- en QBE
- Les tables manipulées dans une base peuvent être
- tables de base, vues, tables attachées, vues
multibases
80UniSQL/M O-Adaptor
- Similaires aux précedents, sauf que pour la BD
logique - UniSQL/M utilise le modèle RO
- O-Adaptor utilise un modèle OO
- Pas de requêtes MBD (autres que de la création de
liens)
ODBC
BD logique
BD logique
Passerelle
BD Ingres
BD lMS
BD RDB
81Telebase (USA)
- SGMB d'accès aux BDs documentaires
- Que mille bases et sur plusieurs sites
- Avec différents langages locaux
- STAIRS, INSPEC, DIALOG...
- Langage commun Common Command Set (CCS) étendu
- Prototypé par SGMB MESSIDOR
- INRIA 1983-88
- Défini comme standard par la CEE et adopté dans
le monde entier - Pas de jointures seulement les clauses booléennes
- Supporte les fonctions de MSQL
- Noms de multibases
- Requêtes multiples (dites SCANS)
- Standardisées dans ISO 39-50
CCS
Drivers
BDs DIALOG
BDs INSPEC
BDs STAIRS
82Système Multibase Messidor 1er SGMB Documentaire
Démonstration par C. Moulinoux (STERIA), INRIA,
1987
83Meta-moteurs de recherche
- BigHub.com, AskJeewes.com, copernic
- Interrogent simultanément plusieurs moteurs de
recherche au choix - Altavista, Yahoo, Excite, Goto
- Langage de manipulation booléen
- Requêtes multiples
- Avec les fonctions mdb Name, Mdistinct, Choose,
Timeout - A voir prochainement sur vos écrans.
84Entrepôt de Données (Data Warehouse)
- Nouveau concept pour les SGMBs
- Data warehouse ltgt multibase ou fédération d'une
entreprise - lidée (un peu) nouvelle
- fonctions orientées prise de décision de gestion
élaborée - au moins une BD redondante par rapport à celles
existantes est créée dans ce but - Exemple DB2 DataWarehouse Center
ODBC
BD Data warehouse
BD Data mart
Passerelle
Passerelle
BD lMS
BD DB2
BD Oracle
85Un appel aux communications récent et intéressant
(Oct 1999)
International Journal of Cooperative Information
Systems Special
Issue on Design and Management
of Data Warehouses Guest editors
Manfred A. Jeusfeld and Martin Staudt Data
Warehousing embraces technology and industrial
practice to systematically collect data from the
enterprise and to use that data in a highly
aggregated form for managing the enterprise thru
decisions. Little attention is currently paid to
design and manage a data warehouse (DW) in such a
way that it accomplishes its purpose, i.e. to
support the management of the enterprise.
Existing solutions are focusing on technical
aspects like efficient source data extraction.
Their parameters are however incomprehensible to
the stakeholders who decide on the introduction
of a data warehouse. Data warehouses are
important in managing large enterprises and
in communicating highly aggregated information
between the various departments. Interoperable
tools and integrated methods to manage
data warehouses in order to fulfill the
enterprise goals are desperately needed. Such
tools should cover all aspects of data
warehousing - selection of data sources - data
cleaning - conceptual/logical/physical data
warehouse design - enterprise modeling - data
warehouse quality monitoring - data warehouse
refreshment methods - architecture design - data
mart customization, etc.
86Exemple Architecture de DB2 Data Warehouse
87Conclusion
- Manipulations multibases - parmi les plus
importantes directions de R D dans les SGBDs - Autres mots-clés
- Interopérabilité
- Intégration
- Bases Fédérées
- Bases Réparties Hétérogènes
- Data Warehouses
- MSQL est un véhicule de recherche le avancé de
l'étude de fonctions d'un langage MBD relationnel - Diverses fonctions multibases
88Conclusion
- Les fonctions basiques de MSQL sont dans des SGMB
commerciaux - Requêtes élémentaires dans la plupart de SGBDs
relationnels - Requêtes multiples dans des SGMBs
- Dépendances multibases dans les Entrepôts de
Données - La suite viendra naturellement
- La conception multibase (fédérée) devient
préférée pour une VLDB - La plus grande VLBD connue (UPS) est une
multibase - Il y en a dautres
- DB2 UDB 6.2 offre de fonction spécifiques de
création multibase
89Conclusion
- Enfin, il y a encore beaucoup à apprendre et à
faire - aussi bien dans dans l'industrie que dans la
recherche - Optimisation de requêtes MSQL
- Implémentation de nouvelles fonctions agrégats
(CHOOSE) - Unités de mesure et de monnaies
- Manipulations de données de précision différente
- Multibases relationnelles-objet
90Voir aussi les exercices qui suivent
91Exercices
- La multibase Banques a grossi à 100 banques.
Chaque banque a ajouté une table avec ses
cheques en bois. Ces tables sont homogènes dun
commun accord pour les attributs ci-dessous et
peuvent avoir dautres attributs, lautonomie
locale obligeant - Chq-en-bois (ch, c, date, montant, ordre,
banque-bénef - Formulez les requêtes
- Nombre total et moyenne totale de cheques en bois
- Nombre total et montant total par banque
émettrice - Nombre total et montant total par banque
bénéficiaire - La personne bénéficiaire du cheque en bois le
plus gros - La banque émettrice du cheque le plus gros
- 10 cheques les plus gros
- Nom du client cic dont le cheque en bois est au
même ordre quun le cheque en bois dun client de
bnp - Nom du client cic dont le cheque en bois à la
date 01/01/00 est au même ordre quun le cheque
en bois dun autre client - Quelle serait la décomposition optimisée de cette
requête en celles de SQL ? - Mettre à jour tout code postal (zip) 60250 à
60520 dans la base cic et toute autre si possible - Rechercher pendant 20 jours les cheques en bois a
lordre du Trésor Public
92Exercices
- Créer une table attachée (liée) dans MsAccess
- Faire en pratique les requêtes mdb MsAccess
discutées en cours, en SQL et QBE - Tester DB2, Oracle, SQL-Server
- Comment faire sous ces SGBDs pour la multibase
et les requêtes MSQL ci-dessus ? - Concevoir un Entrepôt de Données sous MsAccess
2000 (un projet complexe !) - Différence entre un SGBD multibase et un système
daccès multibase. - Lesquels parmi les SGBDs énumérés sont des SGMBs
? - MsAccess, DB2, Informix, Ingres, Oracle, SQL
Server,,, Unisql - Comment le concept dune requête multiple de MSQL
est appliquées par lindustrie aujourdhui - dans BigHub and AskJeewes en particulier.
- Introduisez le conception dEntrepôts de Données
(quoi, pourquoi, comment) - Quelle est la différence entre un Data
Warehouse et un DataMart