• Aucun résultat trouvé

Transparents (PowerPoint)

N/A
N/A
Protected

Academic year: 2022

Partager "Transparents (PowerPoint)"

Copied!
30
0
0

Texte intégral

(1)

9 Méthodes multidimentionnelles et représentation d'associations

 Méthodes d ’organisation avancées

– Méthodes multidimensionnelles

 combiner plusieurs clés

– Représentation d ’associations

(2)

9.1 Méthodes

multidimensionnelles

Méthodes d’accès par point (Point Access Method – PAM )

– objet représenté par un point

Méthodes d’accès spatiales (Spatial Acces Method - SAM )

– objets spatiaux complexes

 segments droite, polygones, etc.

(3)

Catégories de requêtes

 Type point

– objets spatiaux qui contiennent un point

 Type fenêtre

– objets qui sont inclus dans un sous-espace

surface, volume, etc.

 Type plus proche voisin

– objets les plus proches d’une région R

(4)

9.1.1Combinaison d’organisations secondaires unidimensionnelles

 La ville dont la coordonnée x=10 et y=20

 1. Utiliser index sur x

 2. Utiliser index sur y

 3. Utiliser index sur x et index sur y

– intersection de listes de références

 Quel est le plus performant ?

(5)

9.1.2 Hachage partitionné

s

1

= 7 MOD 4 = 3

= 11

2

s

2

= 2 MOD 4 = 2

= 10

2

(6)

9.1.3 Fichier quadrillé (grid)

9 , 5

c 1 c 2

3 , 3

c 1 c 2

9 , 5

9

c1 < 9 c 1 9

0 5

0 1 5

1 0 5

1 0

1 5

(7)

Insertion de (14,6)

3 , 3

c 1 c 2

9 , 5

9

c1 < 9 c 1 9

0 5

0 1 5

1 0 5

1 0

1 5

3 , 3

c 1 c 2

9 , 5

9

9 , 5 1 4 , 6 6

0 5

0 1 5

1 0 5

1 0

1 5

(8)

Insertion de (11,7)

3 , 3

c 1 c 2

9 , 5

9

9 , 5 1 4 , 6 6

0 5

0 1 5

1 0 5

1 0

1 5

3 , 3

c 1 c 2

9 , 5

9

9 , 5 1 1 , 7 6

1 4 , 6 1 4 , 6

1 4 0 0 5

1 5

1 0 5

1 0

1 5

(9)

9.1.4 Arbre quaternaire (quadtree)

3 , 3 9 , 5

0 x x x2, 0 x x x2 1 x x x2, 0 x x x2 0 x x x2, 1 x x x2 1 x x x2, 1 x x x2

0 5

0 1 5

1 0 5

1 0

1 5

0 x x x 2, 0 x x x2 1 x x x2, 0 x x x2 0 x x x 2, 1 x x x2 1 x x x2, 1 x x x2

3 , 3

0 x x x2, 0 x x x2 1 x x x2, 0 x x x2 0 x x x2, 1 x x x2 1 x x x2, 1 x x x2

1 0 x x2, 0 0 x x2 1 1 x x2, 0 0 x x2

9 , 5 1 4 , 6

1 0 x x2, 0 1 x x2 1 1 x x2, 0 1 x x2

0 5

0 1 5

1 0 5

1 0

1 5

Arbre quaternaire-

PR (~quadtrie)

(10)

Insertion de (11,7) et (6,9)

0 5

0 1 5

1 0 5

1 0

1 5 0 5

0 1 5

1 0 5

1 0

1 5

(11)

9.1.4.1 Arbre

quaternaire à point

0 5

0 1 5

1 0 5

1 0

1 5 0 5

0 1 5

1 0 5

1 0

1 5

Arbre quaternaire à point (point quadtree)

Arbre quaternaire-PR

(~quadtrie)

(12)

9.1.5 Arbre k-d

9 5

c1 < 9

3 3

c1 > = 9

c2 < 3 c2 > = 3

1 4 6

c2 < 6

1 1 7

c2 > = 6

6 9

c1 < 6 c1 > = 6 c1 < 7 c1 > = 7

0 5

0 1 5

1 0 5

1 0

1 5

(13)

9.1.6 Arbre-R

 

1 2 3 4 5 6 7 8 9

A B C D

3 2

1

4

6

7

8 9

A B

C

D

5

(14)

Arbre-R+

 

1 2 1 4 6 7 8 9

A B C D E

3 5

3 2

1

4

6

7

8 9

A

B

D

E C

5

(15)

Oracle spatial

 UDT SDO_GEOMETRY

– représentation géométrique

– élément primitif

point, segment de droite, de courbe, polygone, ...

– élément complexe

collection d’éléments primitifs

 Indexage par arbre-R

INDEXTYPE IS MDSYS.SPATIAL_INDEX

 Système de coordonnées paramétrable

– cartésien, géodésique, …

(16)

Attributs de SDO_GEOMETRY

CREATE TYPE sdo_geometry AS OBJECT ( SDO_GTYPE

NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, SDO_ORDINATES SDO_ORDINATE_ARRAY);

SDO_GTYPE

Type d’objet

SDO_SRID

Identification du système de coordonnées

SDO_POINT

CREATE TYPE sdo_point_type AS OBJECT ( X NUMBER, Y NUMBER, Z NUMBER);

applicable si les attributs suivants sont NULL

SDO_ELEM_INFO

Méta-données pour interpréter le tableau SDO_ORDINATES

SDO_ORDINATES

(17)

SDO_GTYPE

DL0

0 Inconnu DL0

1 Un point

DL0 2 Suite de segments (droite ou arc) DL0

3 Polygone ou surface composée de polygones

DL0

4 Collection d’éléments DL0

5 Collection de points DL0

6 Collection de DL02 DL0

7 Collection de DL03 DL0

8 Solide DL0

9 Collection de solides

27/02/22 © Robert Godin. Tous droits réservés. 17

D : nombre de dimensions (2,3 ou 4)

L : indice de la dimension de la mesure associée pour un objet suivant la

convention LRS

(18)

Prédicats spatiaux

SDO_FILTER

filtre primaire basé sur Rectangle Couvrant Minimal (RCM)

exploite l’index spatial

SDO_RELATE

filtre plus fin après recherche par RCM

paramètre : nature d’interaction spatiale

TOUCH, CONTAINS, COVERS, ANYINTERACT, …

paramètre de résolution

SDO_WITHIN_DISTANCE

à l’intérieur d’une distance fixe

SDO_NN

plus proches voisins

SDO_JOIN

jointure basée sur filtre spatial

(19)

Exemple de schéma

CREATE TABLE ObjetsSpatiaux ( idObjet NUMBER(2),

description VARCHAR (20), objetSpatial SDO_GEOMETRY )

/

CREATE INDEX indexSpatial ON

ObjetsSpatiaux (objetSpatial)

INDEXTYPE IS MDSYS.SPATIAL_INDEX

/

(20)

Insertions

-- Point 2D : coordonnées(20,30) INSERT INTO ObjetsSpatiaux VALUES (1,'Point',SDO_GEOMETRY(2001, null, SDO_POINT_TYPE(20,30,null),null,null)) /

-- Segment de droite : (5,10) à (20,15)

INSERT INTO ObjetsSpatiaux VALUES (2,'Segment de droite', SDO_GEOMETRY(2002, null, null,

SDO_ELEM_INFO_ARRAY(1,2,1),

SDO_ORDINATE_ARRAY(5,10, 20,15)) )

-- Rectangle : coin inférieur gauche (10,50) -- coin supérieur droit (20,70)

/

INSERT INTO ObjetsSpatiaux VALUES (3,'Rectangle', SDO_GEOMETRY(2003, null, null,

SDO_ELEM_INFO_ARRAY(1,1003,3), SDO_ORDINATE_ARRAY(10,50, 20,70)) )

/

(21)

Requête : objets dans un rectangle

-- Extraire les objets dans un rectangle SELECT idObjet

FROM ObjetsSpatiaux O WHERE

sdo_filter(O.objetSpatial,

SDO_GEOMETRY (2003,NULL,NULL,

SDO_ELEM_INFO_ARRAY(1,1003,3),

SDO_ORDINATE_ARRAY(10,10,100,100)) ) = 'TRUE'

/

(22)

9.2Représentation des associations

 Important dans les SGBD

(23)

9.2.1 Allocation sérielle par

grappe hétérogène

(24)

Cas IMS (hiérarchique)

 RECORD

hiérarchie d ’enregistrements dans une grappe (HSAM)

séquence pré-ordre

COURS INF5110

30 GODR6

2 jeudi 2:00 C-8230 A

CCCC33333333 B BBBB22222222

GROUPE 20 GODR6

COURS

INF4010 BDI 4

ETUDIANT

AAAA11111111 A

HORAIRE 1 mardi 2:00 C-5110

LIVRE

McHo88 BDII 4

A FFFF66666666

C EEEE55555555 ETUDIANT

DDDD44444444 D

2 jeudi 2:00 C-5110 HORAIRE

1 lundi 9:00 C-4340 Date86

2

3 4

5

6 7 8 1

9 10

11

12 13 14

15 16

(25)

9.2.2Organisation secondaire basée sur un mécanisme de référence

9.2.2.1 Référence simple

 Cas « un »

(26)

9.2.2.2 Collection de références

 Cas « plusieurs »

(27)

9.2.2.3Listes inversées

 ~ index sur (mot-clé, IDE)

D o c u m e n t 1 D o c u m e n t 2 D o c u m e n t 3 D o c u m e n t 4 D o c u m e n t 5 D o c u m e n t 6 I n f l u x

I n f o r m a t i q u e I n f r a r o u g e

I n g é n i e r i e

D o c u m e n t s L i s t e s

i n v e r s é e s M o t s - c l é s

Arbre-B

+

Allocation

par grappe

(28)

9.2.2.4 Représentation par liste

 SET CODASYL

(29)

9.2.2.5 Référence par clé étrangère

 Relationnel

– par valeur

(30)

9.2.2.6 Indexage et hachage hétérogène

 Deux types d'enregistrements associés (ou plus)

 Même clé

clé primaire/étrangère en relationnel

 Oracle

HASH CLUSTER

INDEX CLUSTER

index groupant hétérogène : grappe + index secondaire

Références

Documents relatifs

FOREIGN KEY (idUtilisateur) REFERENCES Utilisateur, FOREIGN KEY (idExemplaire) REFERENCES Exemplaire, CHECK (dateRetour &gt;=

public static void main (String args []) throws Exception { // Création d'une Connection globale pour l'application UsineConnection uneUsineConnection =

public class exempleInsertionsNouveauxObjetsOMLJava { public static void main (String args []){. /* Ouvrir

CONSTRAINT annéeSup0 CHECK(annéeParution.valeurAnnée &gt; 0), CONSTRAINT referenceTableEditeur éditeur SCOPE IS Editeur) CREATE INDEX indexEditeurLivre ON Livre(éditeur). CREATE

Ecrire prêt au journal (vider tampons

CREATE VIEW Article (noArticle, description, prixUnitaire, quantitéEnStock)AS SELECT C.noArticle, description, prixUnitaire, quantitéEnStock FROM Catalogue AS C, Inventaire AS

– Deux opérations de lecture ou d'écriture dans deux transactions différentes sont non permutables si elles portent sur la même donnée et au moins une des deux est

public static void main (String args []) throws Exception { // Création d'une Connection globale pour l'application UsineConnection uneUsineConnection =