Title: Structures de donn
1Structures de données avancées Concepts du
Multidimensionnel
- D. E
- ZEGOUR
- Institut National d Informatique
2Concept du multidimensionnel
- Les méthodes traditionnelles
- Utilisent les listes inversées
- Autant d'indexes secondaires que d'attributs
- Coûteuses pour les grands fichiers
- Les méthodes modernes
- N'utilisent pratiquement pas d'index
- Utilisent le concept des tableaux extensibles
- Visent un accès disque
3Concept du multidimensionnel
- Terminologie
- Article ( k1, k2, ...kd)
- d attributs A1, A2, ......, Ad , d est la
dimension - Généralement, une clé primaire (k1) et d-1 clés
secondaires (k2, K3, ...Kd) - Ki appartient à un domaine Di
- Article point de l'espace d-dimensionnel D1 X
D2 X....XDd
4Concept du multidimensionnel
- Terminologie
- Requête exacte (Exact match query )
- Tous les attributs sont spécifiés
- ( Articles avec A1k1, A2k2, ....AdKd )
- Requête partielle (Partial match query )
- Quelques attributs sont spécifiés
- Requête par intervalle ( Region query )
- Un intervalle est spécifié pour chaque
attribut.
5Concept du multidimensionnel
- Représentation d'un tableau statique
- Déclaration A(a1b1 a2b2 ......anbn)
- Ordre de rangement des sous tableaux A(i, , ,
..., ) -
- A(a1, , , ..., ),
- A(a11, , , ..., ),
- A(a12, , , ..., ),
- .........,
- A(b1, , , ..., )
6Concept du multidimensionnel
- Représentation d'un tableau statique
- A l'intérieur de chaque sous tableau A(i, , ,
...., ), l'ordre suivant des sous sous-tableaux
est considéré - A(i, a2, , , ..., ),
- A(i, a21, , , ..., ),
- A(i, a22, , , ..., ),
- ......,
- A(i, b2, , , ..., )
-
- Et ainsi de suite ...
- Donc rangement de la matrice ligne par ligne. Ce
sont les derniers indices qui varient le plus
rapidement.
7Concept du multidimensionnel
- Exemple pour un tableau A(3, 2, 3)
8Concept du multidimensionnel
- Adresse d'un élément A(i1, i2 .., in) ?
-
- Posons di bi - ai 1
- Adr de A(i1, , , ....) AD1 Base
(i1-a1) d2d2...dn - Adr de A(i1, i2, , ...., ) AD2 AD1
(i2-a2)d3d4...dn - Adr de A(i1, i2, ...in)
- ADn Base (i1-a1)d2d3..dn (i2-a2)d3d4...dn
....(in-1-an-1)dn (in-an) -
- Partie constante Base -(a1 ?i2,ndi a2 ?i3,n
di...an-1dn an) -
- Partie variable in ?i2,n di i2 ?i3,ndi
... in-1dn in
9Concept du multidimensionnel
- Adresse d'un élément A(i1, i2 .., in) ?
- Si a1 a2 ...... an 0, ladresse de A(i1,
i2, ...in) est - i1d2d3..dn i2d3d4...dn ....in-1dn in
-
- Ou bien
-
- ?j1,n ( ij . ?ij1,n di )
10Concept du multidimensionnel
- Tableaux extensibles définition, notations
- Tableau A0U1, 0U2, ....,0Uk , Ui variable
- Aj1, j2, ...jk représente un élément du
tableau. - Chaque ji est dans l'intervalle 0..Ui
- Le tableau est représenté en mémoire de manière
contiguë M0..V - V ?i1,k ( Ui 1) - 1
- L'état initial Ui est 0 pour tout i dans 1, 2,
...,k) - A0, 0, ... a comme image M0.
11Concept du multidimensionnel
- Tableaux extensibles fonction dallocation
- Un schéma d'allocation du tableau A est une
fonction bijective Loc Nk ---gt N telle
que - (i) Loc(lt0, 0, 0gt) 0
- (ii) Loc(lta1, a2,...akgt) lt Loc(ltb1, b2, ...bkgt)
- ssi pour i ? k ,
- at bt pour 1 ? t lt i et
- ai lt bi sinon
12Concept du multidimensionnel
- Représentation dun tableau extensible à K
dimensions (KDEA K-Dimensional Extensible Array
) - Utilisation dun tableau d'index IXA0X, 1..K,
1..K) - Première dimension évolution des indices
- Deuxième dimension 1 tableau par dimension
- Troisième dimension base et facteur
multiplicatif pour chaque dimension -
- X Max (U1, U2, ....,Uk )
-
- Remarque IXA peut être vu comme K distinct
2-dimensionnel tableaux Bi 0..Ui , 1..k avec
i1, k.
13Concept du multidimensionnel
- Exemple
- Mécanisme d'expansion dans le cas d'un 2DEA a
travers les changements d'état suivants - ( U1, U2 ) (0, 0), (0, 1), (0, 2), (1, 2), (2,
2), (2, 3), (3, 3), (3, 4)
14Concept du multidimensionnel
- Illustration du principe d'expansion
- Ajouter une colonne au tableau qui occupe 4 X 5
20 éléments, adressé de 0 à 19. - La nouvelle colonne doit occuper 4 éléments à
partir de l'Adresse 20. - Ladresse d'un élément A(i, j) de cette colonne
est calculée en ajoutant l'indice ligne (i) à 20
cad A(i, j) 20 i (ExA(2, 5) 22 ) - Nous devons donc enregistrer le fait que
l'Adresse début de chaque élément de la colonne 5
est 20. On range donc 20 dans B25,2.
B1
B2
- De la même façon, si nous
- ajoutons la 5ième ligne,
- nous enregistrons l'Adresse
- début 24 dans B14, 1.
15Concept du multidimensionnel
- Comment calculer ladresse d'un élément
arbitraire soit A (1, 5) ? - Est-ce que A(1, 5) appartient à une ligne ou une
colonne? - Si A(1, 5) a été ajouté à la ligne 1, B2 (5,2)
devrait avoir une valeur inférieure à ladresse
début de la ligne 1 qui est B1 (1, 1). - Donc il suffit de prendre le Max entre B2(5,2)
et B1 (1,1).
B1
B2
16Concept du multidimensionnel
- Procédure d'allocation
- Étendre(t) t index, t 1, k
- 1. Étendre Bt0Ut, 1..K à Bt0Ut 1, 1..K
- 2. Utlt--- Ut 1
- 3. BtUt1,t (Ut1) ? r1, k et r t.(Ur
1) base - Bt(Ut1, q ? rq1, ..., k et r t ( Ur
1) facteurs multiplicatifs - q1, K et q ltgt t.
17Concept du multidimensionnel
- Fonction d'accès Adresse de A(j1, j2, ..., jk )
? - 1. Déterminer l'indice t tel que
- Btjt, t Max Biji, i, i1, ..,K
- 2. Adresse Btjt,t ? r 1, ...,K et r t (
Btjt, r jr ) -
18Concept du multidimensionnel
- Calcul des adresses
- Adr(0,0)0 Adr(0,1)3 Adr(0,2)6 Adr(0,3)12
Adr(0,4)24 Adr(1,0)1 - Adr(1,1)4 Adr(1,2)7 Adr(1,3)13 Adr(1,4)25
Adr(2,0)2 Adr(2,1)5 - Adr(2,2)8 Adr(2,3)14 Adr(2,4)26 Adr(3,0)9
Adr(3,1)10 Adr(3,2)11 Adr(3,3)15 Adr(3,4)27
Adr(4,0)16 Adr(4,1)17 Adr(4,2)18 Adr(4,3)19 - Adr(4,4)28 Adr(5,0)20 Adr(5,1)21 Adr(5,2)22
Adr(5,3)23 Adr(5,4)29
- Exemple 1 k2 E 1, 1, 2, 2, 1, 2, 1, 1, 2
- Contenu des tables
- B1
- 1 0 1 2 9 16 20
- 2 1 1 1 1 1 1
- B2
- 1 1 1 1 1 1
- 2 0 3 6 12 24
19Concept du multidimensionnel
- Exemple 2
- k3 E1, 2, 3, 1, 2, 3, 1, 2, 3
- Contenu des tables
- B1
- 1 0 1 8 27
- 2 1 1 2 3
- 3 1 1 1 1
- B2
- 1 1 1 2 3
- 2 0 2 12 36
- 3 1 1 1 1
- B3
- 1 1 2 3 4
- 2 1 1 1 1
- 3 0 4 18 48
20Concept du multidimensionnel
- Calcul des adresses
- Adr(0,0,0)0 Adr(0,0,1)4 Adr(0,0,2)18 Adr(0,0
,3)48 Adr(0,1,0)2 Adr(0,1,1)5 - Adr(0,1,2)19 Adr(0,1,3)49 Adr(0,2,0)12 Adr(0
,2,1)13 Adr(0,2,2)20 Adr(0,2,3)50 - Adr(0,3,0)36 Adr(0,3,1)37 Adr(0,3,2)38 Adr(0
,3,3)51 Adr(1,0,0)1 Adr(1,0,1)6 - Adr(1,0,2)21 Adr(1,0,3)52 Adr(1,1,0)3 Adr(1,
1,1)7 Adr(1,1,2)22 Adr(1,1,3)53 - Adr(1,2,0)14 Adr(1,2,1)15 Adr(1,2,2)23 Adr(1
,2,3)54 Adr(1,3,0)39 Adr(1,3,1)40 - Adr(1,3,2)41 Adr(1,3,3)55 Adr(2,0,0)8 Adr(2,
0,1)9 Adr(2,0,2)24 Adr(2,0,3)56
21Concept du multidimensionnel
- Adr(2,1,0)10 Adr(2,1,1)11 Adr(2,1,2)25 Adr(2,
1,3)57 Adr(2,2,0)16 Adr(2,2,1)17 - Adr(2,2,2)26 Adr(2,2,3)58 Adr(2,3,0)42 Adr(2
,3,1)43 Adr(2,3,2)44 Adr(2,3,3)59 - Adr(3,0,0)27 Adr(3,0,1)28 Adr(3,0,2)29 Adr(3
,0,3)60 Adr(3,1,0)30 Adr(3,1,1)31 - Adr(3,1,2)32 Adr(3,1,3)61 Adr(3,2,0)33 Adr(3
,2,1)34 Adr(3,2,2)35 Adr(3,2,3)62 - Adr(3,3,0)45 Adr(3,3,1)46 Adr(3,3,2)47 Adr(3
,3,3)63