Manipulations Multibases et Distribues Partie 2 - PowerPoint PPT Presentation

1 / 92
About This Presentation
Title:

Manipulations Multibases et Distribues Partie 2

Description:

Manipulations Multibases et Distribu es (Kandinsky: Ligne avec ... approximatif. prix de la requ te (en $, FF...). temps de compl tion. nombre de tuples ... – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 93
Provided by: lit105
Category:

less

Transcript and Presenter's Notes

Title: Manipulations Multibases et Distribues Partie 2


1
Manipulations Multibases et Distribuées (Partie 2)
  • Witold.Litwin_at_dauphine.fr
  • http//ceria.dauphine.fr/witold.html

2
Manipulations Multibases et Distribuées
(Kandinsky Ligne avec Accompagnement, 1937 )
3
Manipulations Multibases et Distribuées
4
MSQL(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)

5
MSQL(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

6
MSQL(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)

7
MSQL(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

8
MSQL(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

9
MSQL exemple
Vue
SIL Schéma Interne Logique
10
Sché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)

11
Hé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 ?

12
Commandes MSQL
  • CREATE TABLE CREATE DATABASE
  • CREATE MULTIDATABASE CREATE VIEW
  • ALTER TABLE ALTER VIEW
  • ALTER MULTIDATABASE
  • DROP TABLE DROP DATABASE
  • DROP MULTIDATABASE DROP VIEW

13
MSQL CREATE DATABASE
Champs de la requête
14
MSQLCREATE 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
15
MSQL Requêtes multibases élémentaires
16
Requê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 ??

17
MSQL Base par défaut
Les tables de la base par défaut sont sans préfixe
18
MSQL Requêtes élémentaires sans noms de BDs
Les noms (propres) de tables sont uniques dans
le champ de la requête
19
Mises à 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 ?

20
Requêtes multiples
21
Requêtes multiples(toute succursale aux Champs
Elysées)
22
Résultat (une multitable)
23
Mises à 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

24
Variables sémantiques dans MSQL
  • use bnp sglet x be town cityselect from
    bwhere x 'Paris' and street 'r. de Rivoli'

25
Variables 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'

26
Variables 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'
27
Variables 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
    ?

28
Algè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

29
Multirelational 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

30
Homogé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 )

31
Vues 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
32
Mots-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

33
Exemple
  • USE BanksSELECT COUNT ()FROM br brWHERE
    street 'champs elysées'

34
Exemple
  • USE BanksSELECT COUNT ()FROM br brWHERE
    street 'champs elysées'
  • bnp.br2
  • cic.br2
  • sg.br2

35
Exemple
  • USE BanksSELECT MCOUNT ()FROM br brWHERE
    street 'champs elysées'

36
Exemple
  • 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

37
Aggregate 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

38
Fonctions 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

39
Fonctions 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
40
Fonctions 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

41
Fonctions 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

42
Fonctions 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

43
Fonctions 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)

44
Fonctions 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

45
Fonctions 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...

46
Privilè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

47
Requê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...
48
Requê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

49
MSQL
  • 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).

50
Elé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

51
Manipulations 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

52
Manipulations 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
53
MsAccess 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

54
Exemples 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

55
Requê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)

56
Ré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
57
Requê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
58
Ré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
59
Requê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

60
New Query
61
(No Transcript)
62
(No Transcript)
63
(No Transcript)
64
Résultat
65
Et en SQL MsAccess
Puis, alternativement ...
66
(No Transcript)
67
Requê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

68
Requê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.

69
Requê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

70
Requê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

71
Formulaire 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

72
MsAccess 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

73
MsAccess MSQL
  • IMPORT EXPORT
  • commandes au menu
  • équivalentes à la requête MSQL
  • Use B1 copy into T1 from B2.T2

74
MsAccess 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

75
SQL 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

76
Oracle, 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

77
Oracle, 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

78
EDA-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
79
SQL-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

80
UniSQL/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
81
Telebase (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
82
Système Multibase Messidor 1er SGMB Documentaire
Démonstration par C. Moulinoux (STERIA), INRIA,
1987
83
Meta-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.

84
Entrepô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
85
Un 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.
86
Exemple Architecture de DB2 Data Warehouse
87
Conclusion
  • 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

88
Conclusion
  • 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

89
Conclusion
  • 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

90
  • Fin

Voir aussi les exercices qui suivent
91
Exercices
  • 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 

92
Exercices
  • 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 
Write a Comment
User Comments (0)
About PowerShow.com