Title: Les SGBDs Supports de Dcisions
1Les SGBDs Supports de Décisions
2Besoin
- Utilisation massive de fonctions agrégats
- celles de SQL
- autres
- dans le langage hôte
- Exemples
- La moyenne de ventes
- Le commercial du jour
- La corrélation entre certaines attributs
3Problèmes nouveaux
- Parcours fréquent de tous les tuples
- d'une grande table
- d'une collection de tables à joindre
- L'opération peut prendre beaucoup de temps
- quel que soit l'optimisation de chemins d'accès
- Des requêtes peuvent être impossible à formuler
en SQL seul - Classement par rang selon les valeurs de T.a
- Corrélation entre T.a et T.b ?
- Les attributs les plus corrélés ?
4Solutions
- Nouvelles fonctions de SQL
- Fonctions agrégats
- Rank, Rollup, Cube, Covariance, Correlation
- Fonctions scalaires
- Nouveaux concepts
- Donnée multidimensionnelle
- Espaces des agrégations
- Espace des influences
- Espace des variations
5Solutions
- Nouvelles techniques d'implémentation
- Calcul parallèle et scalable
- Prè-calcul partiel ou total de requêtes
- Échantillonnage
- Séparation de calculs en plusieurs bases et
systèmes
6Solutions
- Nouveau types de SGBD
- Entrepôts de Données
- Data Warehousing
- Fouille de Données
- Data Mining (DM)
- Analyse en ligne
- Online Analytical Processing (OLAP)
- Les SGBD "traditionnels" sont dès lors souvent
appelés - Online Transaction Processing (OTPS) Systems
- Les nouveaux constituent les
- Systèmes de Support de Décisions
- Decision Support Systems
7Principaux produits
- Informix
- Basé sur l'achat de Red Brick
- DB2
- SGBD
- Data Warehouse Center
- SQL Server
- SGBD
- Data Analysis Services
- OLAP Services renommés pour SQL Server 2000
- Oracle Express
-
8OLAP traditionnel
Prix de produit 123
Espace des Données
Support de Decisions
9OLAP traditionnel
Prix de produit 123
Vente par produit et par mois
Espace (OLAP) des Agrégations
Espace des Données
Support de Decisions
10OLAP traditionnel
Prix de produit 123
Vente par produit et par mois
Espace (OLAP) Des Agrégations
Espace des Données
Espace Des Influences (Data Mining)
Facteurs d'influence des ventes à Paris
Support de Decisions
11OLAP traditionnel
Prix de produit 123
Vente par produit et par mois
Espace (OLAP) des Agrégations
Espace des Données
Espace des Influences (Data Mining)
Facteurs d'influence des ventes à Paris
Support de Decisions
Changement de ventes depuis 3 mois
Espace des Variations
12Espaces de Données Concepts Relations Ensembl
es Agrégations Arithmétique Influences Logiq
ue et Stats. Variations Calcul différentiel
13Technologie
- BDs parallèles, distribuées, scalables
- Jointures pré-calculées
- intégrité référentielle
- Vues matérialisées
- Algorithmes statistiques
- Algorithmes décisionnels
- revus pour l'application aux BDs
- Systèmes multibases
- Entrepôts de données
- Data warehousing
14Vue matérialisée
T
sum prod 30 p1 50 p2 27 p3
- create materialized view T(sum, prod) as select
sum(montant) prod from Ventes groupby produit - Les requêtes sont reformulées contre la vue
- d'une manière transparente pour l'usager
- select from T where prod 'p1'
15Vue matérialisée
T
sum prod 30 p1 50 p2 27 p3
- Problème général
- Cohérence entre la vue et ses tables de base
- Algorithme de MAJ
- pour toute nouvelle vente de Produit p
- add le montant à T.sum where prod p
16Vue matérialisée
- La cohérence peut être implantée par
- des déclencheurs
- des procédures stockées (stored procedures)
- Exercise
- Que faire pour la requête
- select avg (montant) prod from Ventes
groupby produit - Note plusieurs solutions existent
17Problème de scalabilité
- On peut difficilement maintenir un grand nombre
de vues matérialisées - il faudrait executer des dizaines de déclencheurs
- et ne pas handicaper les perf. OLTP
- et comment faire pour les avortements et la
concurrence ?
18Axes de solutions
- Systèmes multiordinateurs
- Cohérence souple (ang. loose) entre les tables de
bases et les vues matérialisées - la somme de ventes peut être 0.05 inexacte
pendant 10 sec., de temps en temps, sans que le
DBA se fasse gronder - nécessité dans les systèmes mobiles
- Les MAJ sont propagées en asynchrone après le
Commit
19Les statistiques
- Correlations
- DFs notamment (correlation 1)
- Regressions
- Nuées Dynamiques
- Diday
- Analyse factorielle multi-dimensionnelle en
général - Benzecri
- Aide au diagnostic
- Bayes
20OLAP / Data Mining
- OLAP
- Les agrégations demandées sont connues
- On peut formuler les requêtes SQL
- ou SQL imbriqué
- Data Mining
- on ne sais pas a priori quoi demander
- quelles sont les corrélations parmi les attributs
de Ventes ? - Cette dichotomie est floue
21Data Mining dans un espace des influences
- Le résultat peut être attendu sous forme
- d'un graphique (business graphics)
22Data Mining dans un espace des influences
- Le résultat peut être attendu sous forme
- d'un graphique (business graphics) 2-D
23Data Mining dans un espace des influences
- Le résultat peut être attendu sous forme
- d'un graphique (business graphics) 3-D
24Data Mining dans un espace des influences
- Le résultat peut être attendu sous forme
- d'une règle logique
- if
- customer.age lt 25 and power gt '9 CH' and
status 'bachelor' - then
- prob (accid. / year gt 1) 0.99
25Data Mining dans un espace des influences
- Ceci conduit au problèmes d'inférence de règles
- la logique
- BDs actives
- BD de connaissances
- BDs déductives
26Mesures dans un espace des variations
- On observe les variations selon des dimensions
- variation de cours de bourse
- depuis une semaine, une année, 1 Janv. 1996...
- variation de ventes (ang. lift)
- selon la campagne de promotion
- selon la saison
- etc
- Précalcul de variations est encore plus couteux
que celui de facteurs statiques - surtout de variations temporelles
27Mesures dans un espace des variations
28Data Mining dans un espace des influences
- On attend deux types de résultats distincts
- l'état de l'existant
- découverte, explication, confirmation
- l'analyse de la tendance
- prédictions
- Lex deux aspects sont encore en état de recherche
ou, au mieux, en développent avancé
29Schéma en Étoile
- Table de faits
- En général très grande
- Tables de dimensions
- En général très petites
- Liens clé primaire / clé étrangère
30Architecture d'entrepôt de données IBM
31Fonctions Agrégat pour OLAPDB2
- CountBig
- Pour le nombre de tuples gt 231
- Covariance
- entre des attributs ou des expressions de valeur
- Correlation
- entre des attributs ou des expressions de valeur
- Regression functions
- 10 fonctions
- Les paramètres de la droite de régression entre
des attributs ou des expressions de valeur - Rank, Dense_Rank
- Rank en présence de duplicata 1,2,2,4,4,6
- Dense_Rank en présence de duplicata
1,2,2,3,3,4
32Covariance
- Soit avgexp1 le résultat de AVG(expression1) et
soit avgexp2 le résultat de AVG(expression2), - Alors COVARIANCE(expression1, expression2)
est - AVG( (expression1 - avgexp1) (expression2 -
avgexp2 )
SELECT COVARIANCE(SALARY, BONUS) FROM EMPLOYEE
WHERE WORKDEPT 'A00'
33Correlation
Définition COVARIANCE(expression1,expression2)/
(STDDEV(expression1)STDDEV(expression2))
SELECT CORRELATION(SALARY, BONUS) FROM EMPLOYEE
WHERE WORKDEPT 'A00'
34Fonctions Agrégat pour OLAPDB2
- Fonctions spécifiques à DB2 Data Warehouse
Center - Analyse de la variance (ANOVA)
- Distributions de Fisher-F
- Valeur P
- Sous-totaux par période de temps
- Test de Chi-carré
- Statistique T pour n paires de valeurs et à
partir du coeff. de corrélation r - T r ((n 2 ) / (1 - r 2 ))0.5
- T ? 0 indique une corrélation entre les
attributs
35Fonctions Agrégat pour OLAPTeradata
- RANK
- CSUM (Cumulative (Running) Sums)
- MAVG and MSUM
- MDIFF (Moving Difference)
- QUANTILE
- QUALIFY
- SAMPLE
36SELECT EmployeeName, (HireDate - DATE) AS
ServiceDays, RANK ( ServiceDays ) as Seniority
FROM Employee ORDER BY EmployeeName
EmployeeName
Service Days Seniority
Robyn Baker 9931
2
Nick Garrison 9931
2 Kyle
McVicker 9408 5
Eva OMalley
10248 1
Norma Powers
9409 4
37SELECT Item, SalesDate, CSUM(Revenue,Item,SalesDat
e) as CumulativeSales FROM (SELECT Item,
SalesDate, Sum( Sales ) as Revenue FROM
DailySales WHERE StoreId5 AND SalesDate
Between 1/1/1999 and 1/31/1999 GROUP BY
Item, SalesDate) AS ItemSales ORDER BY SalesDate
Item SalesDate
CumulativeSales InstantCOW
01/01/1999 972.99
InstantCOW 01/02/1999
2361.99
InstantCOW 01/03/1999
5110.97 InstantCOW
01/04/1999 7793.91
38SELECT MarketDay,ClosingPrice,
MAVG(ClosingPrice,50,MarketDay) as XYZAverage
FROM MarketDailyClosing WHERE Ticker
XYZ ORDERBY MarketDay
MarketDay ClosingPrice
XYZAverage 12/27/1999
89 1/16 85 1/2
12/28/1999 91 1/8
86 1/16
12/29/1999 92 3/4
86 1/2 12/30/1999
94 1/2 87
39SELECT MarketWeek, WeekVolume, MDIFF
(WeekVolume,1,MarketWeek)asXYZVolumeDiff FROM
(SELECT MarketWeek, SUM(Volume) as
WeekVolume FROM MarketDailyClosing WHERE Ticker
XYZ GROUP BY MarketWeek) ORDERBY
MarketWeek MarketWeek
WeekVolume XYZVolumeDiff
11/29/1999 9817671
?
12/06/1999 9945671
128000 12/13/1999
10099459 153788
12/20/1999
10490732 391273
12/27/1999 11045331
554599
40SELECT Item, Profit, QUANTILE( 10, Profit ) as
Decile FROM (SELECTItem,Sum(Sales)(Count(Sales)
ItemCost) asProfit FROM DailySales, Items WHERE
DailySales.Item Items.Item GROUP BY Item) AS
ItemProfit Item Profit
Decile
High Tops 97112
9 Low Tops 74699
7 Running
69712 6 Casual
28912
3 Xtrain 100129
9
41SELECT Item, Profit, QUANTILE( 100, Profit ) AS
Percentile FROM (SELECT Item,Sum(Sales)
(Count(Sales) Items.ItemCost) as Profit FROM
DailySales, Items WHERE DailySales.Item
Items.Item GROUP BY Item) AS
ItemProfit QUALIFY Percentile 99 Item
Profit Percentile Fat Free
Ice Cream 10.79
99 Sugar Free Ice Cream -100.55
99 Fake Chocolate Ice Cream
-1110.67 99 Fat/Sugar Free Ice
Cream -2913.88 99 Fake Ice
Cream -4492.12
99
42SELECT customer_id, age, income, marital_status,
, SAMPLEID FROM customer_tableSAMPLE 0.6,
0.25, 0.15 customer_id age income
marital_status ... SAMPLEID 1362549
17 0
1 1
1362650 21 17804
2
1 1362605 34 16957
2
1 1362672 50
16319 2
3 1362486 76
10701 3
1 1362500
40 56708 1
3 1362489
35 55888
3 2
1362498 60 9849
2
1 1362551 27 23085
1
1 1362503 18
5787 1
.. 2
43ROLLUP(DB2 SQL-Server)
- Groupements multiples (super-groupes) selon une
dimension - l ordre des attributs dans la clause a
l importance - les attributs sont progressivement oublies de
droite à gauche - Remplace plusieurs requêtes GROUP BY
- SELECT p, sum (qty) as tot-qty from S,SP, P
- WHERE SP. P P.P AND SP. S S.S
- GROUP BY ROLLUP (P, S.CITY, COLOR)
- HAVING tot-qty gt 100
- Problèmes avec des nulls que lon verra plus tard
44 SELECT WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
SALES_PERSON, SUM(SALES) AS UNITS_SOLD
FROM SALES WHERE WEEK(SALES_DATE) 13 GROUP
BY ROLLUP ( WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE
), SALES_PERSON ) ORDER BY WEEK, DAY_WEEK,
SALES_PERSON WEEK DAY_WEEK
SALES_PERSON UNITS_SOLD -----------
----------- --------------- -----------
13 6 GOUNOT 11
13 6 LEE 12
13 6 LUCCHESSI
4 13 6 -
27 13 7 GOUNOT
21 13 7 LEE
21 13 7
LUCCHESSI 4 13
7 - 46 13
- - 73
- - - 73
45CUBE(DB2 SQL-Server)
- Groupements multiples selon toutes les dimensions
- l ordre des attributs dans la clause n a pas
d importance - les attributs sont progressivement oublies de
droite à gauche - Remplace plusieurs requêtes GROUP BY
- SELECT p, sum (qty) as tot-qty from S,SP, P
- WHERE SP. P P.P AND SP. S S.S
- GROUP BY CUBE (P, S.CITY, COLOR)
- HAVING tot-qty gt 100
- Problèmes avec des nuls que lon verra plus tard
- Opération bien plus chère que Rollup
- 2N requêtes générées au lieu de N, pour N
attributs
46CUBE(DB2 SQL-Server)
SELECT WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
SALES_PERSON, SUM(SALES) AS UNITS_SOLD
FROM SALES WHERE WEEK(SALES_DATE) 13 GROUP
BY CUBE ( WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE),
SALES_PERSON ) ORDER BY WEEK, DAY_WEEK,
SALES_PERSON
47WEEK DAY_WEEK SALES_PERSON
UNITS_SOLD ----------- -----------
--------------- ----------- 13
6 GOUNOT 11 13
6 LEE 12 13
6 LUCCHESSI 4
13 6 - 27
13 7 GOUNOT
21 13 7 LEE
21 13 7 LUCCHESSI
4 13 7 -
46 13 -
GOUNOT 32 13
- LEE 33
13 - LUCCHESSI 8
13 - -
73 - 6 GOUNOT
11 - 6 LEE
12 - 6
LUCCHESSI 4 -
6 - 27 -
7 GOUNOT 21
- 7 LEE 21
- 7 LUCCHESSI
4 - 7 -
46 - - GOUNOT
32 - - LEE
33 - -
LUCCHESSI 8 -
- - 73
48GROUPING SETS
- On indique explicitement les groupes
- entre (..)
- le groupe () est constitué de toute la table
- SELECT p, sum (qty) as tot-qty from S,SP, P
- WHERE SP. P P.P AND SP. S S.S
- GROUP BY GROUPING SETS ((P, S.CITY, COLOR),
(P, COLOR), ()) - HAVING tot-qty gt 100
- Problèmes avec des nuls que lon verra plus tard
49GROUPING SETS
SELECT SALES_PERSON, MONTH(SALES_DATE)
AS MONTH, SUM(SALES) AS UNITS_SOLD
FROM SALES GROUP BY GROUPING SETS (
(SALES_PERSON, MONTH(SALES_DATE)),
()
) ORDER BY SALES_PERSON, MONTH
50GROUPING SETS
SALES_PERSON MONTH UNITS_SOLD
--------------- -----------
----------- GOUNOT 3
35 GOUNOT 4 14
GOUNOT 12 1 LEE
3 60 LEE
4 25 LEE
12 6 LUCCHESSI 3
9 LUCCHESSI 4
4 LUCCHESSI 12 1 -
- 155
51GROUPING SETS ROLLUP
SELECT WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
MONTH(SALES_DATE) AS MONTH, REGION,
SUM(SALES) AS UNITS_SOLD FROM SALES GROUP
BY GROUPING SETS ( ROLLUP( WEEK(SALES_DATE),
DAYOFWEEK(SALES_DATE) ),
ROLLUP( MONTH(SALES_DATE), REGION ) ) ORDER BY
WEEK, DAY_WEEK, MONTH, REGION
52WEEK DAY_WEEK MONTH REGION
UNITS_SOLD ----------- -----------
----------- --------------- -----------
13 6 - -
27 13 7 -
- 46 13
- - -
73 14 1 - -
31 14
2 - - 43
14 - - -
74 53 1
- - 8
53 - - -
8 - - 3
Manitoba 22 -
- 3 Ontario-North
8 - - 3
Ontario-South 34 -
- 3 Quebec
40 - - 3 -
104 -
- 4 Manitoba 17
- - 4
Ontario-North 1 -
- 4 Ontario-South 14
- - 4 Quebec
11 - -
4 - 43
- - 12 Manitoba
2 - -
12 Ontario-South 4 -
- 12 Quebec
2 - - 12 -
8 -
- - - 155
- - - -
155
53Rollup, Cube, Grouping Setssous MsAccess
- Il y en a pas
- On peut simuler ces manipulations en utilisant
- GROUP BY
- UNION ALL
- ORDER BY
- Peut être laborieux pour le CUBE
54ROLLUP
Remarquez le null as city
55ROLLUP
56ROLLUP
Une solution pour l ambiguïté de certains
nuls ?
Et le CUBE ?
57Fonctions scalaires
- S appliquent aux valeurs individuelles
- d attributs
- d agrégations SQL
- Il y a plusieurs catégories
- mathématiques
- financières
- chaînes de caractères
- .
- Varient entre les dialectes
- MsAccess possède UCASE, pas DB2
- DB2 possède LOG10, pas MsAccess
58Fonctions scalaires
- Peuvent simbriquer
- contrairement aux agrégats SQL
-
- SELECT log((sum(qty2)(1/2))) as
exempleFROM SP group by phaving
int(log(sum(qty))) 5 -
exemple 5.70875764008279 5.99146454710798
59Tabulations Croisées(Crosstab queries)
- Présentent les résultat sous forme habituelle de
feuilles de calculs - Les agrégats SUM, AVG.. de GROUP BY et les
valeurs individuelles en même temps - Impossible avec SQL standard
- Transforment les valeurs d'attributs en attributs
- Par exemple
- les valeurs de P trouvés pour un même S
deviennent les attributs P1, P2,... - les valeurs de P1, P2.. sont les QTY (par ex.)
correspondants
60Tabulations Croisées
- TRANSFORM Sum(SP.Qty)
- SELECT SP.S, Sum(SP.Qty) AS Row Summary
- FROM SP
- GROUP BY SP.S
- PIVOT SP.p
Nouvelles colonnes
61Tabulations Croisées
- S Total Qty p1 p2 p3 p4 p5 p6
- s1 1300 300 200 400 200 100 100
- s2 700 300 400
- s3 200 200
- s4 900 200 300 400
L'intitulé Total Qty est mis par défaut par
MsAccess
62Tabulations Croisées
- La fonction agrégat dans la clause TRANSFORM est
obligatoire - bien que SUM(QTY) AVG(QTY) QTY
- mais, COUNT(QTY) 1
- On peut générer une expression de valeur
- TRANSFORM SUM(0.5QTY) AS Q2SELECT
Sum(SP.Q2) AS Qte tot. dans 1 mois,
Avg(P.Q2) AS Qte moy. dans 1 moisFROM
SPGROUP BY SP.SPIVOT SP.p
63Tabulations Croisées
- On peut utiliser la clause WHERE
- WHERE P IN ('P1', 'P2')
- Alors les fonctions ne calculent les agrégats que
sur P1 et P2. - On peut aussi restreindre la tabulation seulement
- PIVOT SP.p IN ('P1', P2')
- Mais, cette clause n'affecte pas les calculs des
agrégats - Peut-on appliquer la clause ORDER BY ?
- Si oui, quel serait leffet sur les valeurs
pivotées ? - Peut-on ordonner par rapport à une fonction
agrégat ? - Comme on a fait pour les requêtes à GROUP BY ?
- Peut-on appliquer la clause HAVING ?
64Clauses COMPUTE FOR BROWSE(SQL Server 6.5 et
7)
- expression générale de sélection
- SELECT DISTINCT attribut(s)
- FROM table(s)
- WHERE condition
- GROUP BY ROLLUP CUBE field(s)
- HAVING condition
- ORDER BY attribute(s)COMPUTE row-agg
(colonne), row-agg (colonne)... BY (colonne),
(colonne)...FOR BROWSE - Clause FOR BROWSE permet une MAJ de données
dynamiquement visualisées
65Compute
- select title, type, price, advancefrom titles
where ytd_sales is not nullorder by type
desc compute AVG(price), SUM(advance) by
type compute SUM(price), SUM(advance)go - title type price advancefifty
years... trad_cook 11.95 4000Onions.. trad_coo
k 20.95 7000Sushi... trad_cook
14.99 8000 avg 15.96 sum 1900
0 title type price advanceComputer... psyc
hology 21.95 7000... psychology
.... .... avg 15.96 sum 19000
sum sum 236.00 88400
66Fermeture transitive (DB2)
- Considère la table COURS (CNOM, PNOM,
NMIN)contenant les cours et leur pré-requis avec
les notes minimales pour l admission en cours - ex. (BDs, Str-Ph, 15)
- Tout PNOM est une clé étrangère avec CNOM comme
clé primaire ailleurs dans COURS - Un cours peut avoir plusieurs pré-requis
- Trouver les noms de tous les pré-requis de cours
CNAME BDs - y compris les pré-requis de pré-requis etc.
- C est le calcul de la fermeture transitive
- Impossible encore sous MsAccess, SQL Server lt
6.5, Oracle, Informix - Possible sous DB2, à partir de V 5.0
67Fermeture transitive (DB2)
- WITH PRQ (CNOM, PNOM) AS
- ((SELECT CNOM, PNOM FROM COURS
- WHERE CNOM BDs )
- UNION ALL
- (SELECT C.CNOM, C.PNOM FROM PRQ AS P, COURS AS
CWHERE C.CNOM P.PNOM)) - SELECT DISTINCT PNOM FROM PRQ
- La requête récursive s exécute tant que la
sélection dans PRQ avec PRQ courant nest pas
vide.
Requête initiale
Requête récursive
Requête finale
68Fermeture transitive (DB2)
Requête initiale (préreq. de BDs
COURS
1ere exécution de la Requête récursive (préreq.
de BDs)
2eme exécution de la Requête récursive (préreq.
de préreq. de BDs)
3eme exéc. de la RR (préreq. de préreq. de
préreq. de BDs) etc.
69Fermeture transitive (DB2)
CNOM PNOM NMIN BDs StPh 15 BDs LPrg 12 StPh InfG 1
3 InfG Math 11 Lprg InfG 12
CNOM PNOM BDs StPh Bds Lprg
70Fermeture transitive (DB2)
CNOM PNOM NMIN BDs StPh 15 BDs LPrg 12 StPh InfG 1
3 InfG Math 11 Lprg InfG 12
CNOM PNOM BDs StPh Bds Lprg
StPh InfG Lprg InfG
71Fermeture transitive (DB2)
CNOM PNOM NMIN BDs StPh 15 BDs LPrg 12 StPh InfG 1
3 InfG Math 11 Lprg InfG 12
CNOM PNOM BDs StPh Bds Lprg
StPh InfG Lprg InfG
InfG Math InfG Math
72Fermeture transitive (DB2)
CNOM PNOM NMIN BDs StPh 15 BDs LPrg 12 StPh InfG 1
3 InfG Math 11 Lprg InfG 12
CNOM PNOM BDs StPh Bds Lprg
StPh InfG Lprg InfG
InfG Math InfG Math
PNOM StPh InfG Math
73Fermeture Transitive Oracle
Clause Connect By
Calcul d'un arbre généalogique "Oracle 8i The
Complete Reference" Loney, K., Koch, G., Osborne,
2000
74Fermeture Transitive Oracle
Clause Connect By
75(No Transcript)
76Fermeture transitive
- Trouver aussi les notes minimales nécessaires
- Autres applications
- Tous les subordonnées d un chef
- EMPL (E, ENOM, CHEF)
- Toutes les composantes PMIN de pièces composées
- COMP (PMAJ, PMIN)
- Tous les descendants / ascendants d une personne
- Toutes les participations d une entreprise
- Limite dapplication
- Pas de cycles entre les attributs sélectionnes
- pour que l on a la fermeture transitive (point
fixe) - ex. pas de participations réciproques
77Fermeture transitiveMsAccess
- Il faut simuler
- par CREATE TABLE PRQ
- avec la création de clé primaire
- Insert into PRQ .. select from COURS...
- Insert into PRQ .. select from PRQ, COURS
- exécuté interactivement ou par programme jusqu'à
ce que le point fixe est atteint - Select FROM PRQ
- A compléter par vos soins
78Conclusion
- Un champs nouveau
- encore grandement ouvert à la recherche
- La connexion logique avec le domaine des SGBD
n'est pas toujours claire - Un point de vue sur cette connexion
- On prend un champs classique d'analyse de donnés
et on s'intéresse - aux performances pour une grande quantité de
données - Aux extensions correspondantes de SQL
79FIN