1. Trang chủ
  2. » Luận Văn - Báo Cáo

Indexation de données pour l’archéologie đánh chỉ mục dữ liệu cho khảo cổ học luận văn ths truyền dữ liệu và mạng máy tính chương trình đào tạo thí điểm

70 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 2,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Les documents sont stockés dans un dossier sur le serveur et une partie des informations des documents sont stockées dans des bases de données, par l’intermédiaire de laquelle on peut ac

Trang 1

UNIVERSITE NATIONALE DU VIETNAM, HANOI

INSTITUT FRANCOPHONE INTERNATIONAL

Trang 2

UNIVERSITE NATIONALE DU VIETNAM, HANOI

INSTITUT FRANCOPHONE INTERNATIONAL

HOÀNG YẾN

INDEXATION DE DONNÉES POUR L´ARCHÉOLOGIE ĐÁNH CHỈ MỤC DỮ LIỆU CHO KHẢO CỔ HỌC

Spécialité: Réseaux et Systèmes Communicants (RSC)

Code: Programme pilot

HANOI - 2016

Trang 3

ATTESTATION SUR L’HONNEUR

J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a été bien précisée

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác Các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc

Fait à Hanoi, le 25 octobre 2016

Hà Nội, Ngày 25 tháng 10 năm 2016

HOÀNG Yến

Trang 4

Sommaire

Remerciements ii

Résumé iii

Abstract iv

Liste des abréviations v

Chapitre 1 1

Introduction Générale 1

1.1 Introduction 1

1.2 Contexte et Cadre d’étude 1

1.3 Problématique 2

1.4 Objectifs de stage 3

Chapitre 2 5

Données d’archéologie 5

2.1 Système informatique en archéologie 5

2.2 Terminologies en archéologie 5

2.3 Le type de données 6

2.4 Données géométriques 6

2.5 Base de données d’un système informatique de l'archéologie 7

2.6 Conclusion 7

Chapitre 3 8

Indexation de données 8

3.1 Stockage des données 8

3.2 Indexation de données 11

3.3 Organisation des index 13

3.3.1 Index bitmap (Index brut) 13

3.3.2 Index primaire (trié ou linéaire) 14

3.3.3 Index Hachage 15

3.3.4 Index B-Trees (Index hiérarchisés) 15

3.3.4.1 Index B+Trees 17

3.4 Index de document 18

3.4.1 Index inversé 19

3.4.2 Prétraitement Document 20

3.5 Indexation spatial et R-Trees 21

3.6 Conclusion 23

Chapitre 4 25

Proposition de modèle 25

Trang 5

4.1 Outils de projet 25

4.2 Architecture de fonctions 26

4.3 Relation de données dans la base de données 27

Chapitre 5 29

Implémentation, Analyse 29

5.1 Technologies 29

5.2 Sécurité des données 29

5.3 Représentation de données 29

5.4 Recherche par les champs 32

5.5 Recherche plein-textes 32

5.6 Index inversé de la recherche plein-texte (FTS) 33

5.7 Indexation implicite 36

5.8 Indexation de fichier 37

5.9 Accès et indexation du type données géométriques 40

5.10 Organisation des Hyperliens 41

5.11 Indexation des données de fichier PDF 44

Chapitre 6 48

Expérimentation d’indexation 48

6.1 Implémentation l’index dans le SQLite 48

6.2 Indexation sur une petite table 48

6.3 Indexation sur une grande table 50

6.4 B-Trees dans SQLite 53

Conclusion et perspectives 58

Conclusion 58

Perspectives et limitations 59

Référence 60

Trang 6

ii

Remerciements

Je tiens à remercier toutes les personnes qui ont participé à la réussite de mon stage, l’équipe pédagogique de L'Institut Francophone International (IFI), l’Université Nationale du Vietnam à Hanoi, monsieur Nguyễn Hồng Quang et monsieur Hồ Tường Vinh

Je voudrais remercier le professeur Nguyễn Quý Đạo qui m'a beaucoup aidé dans ma recherche de stage

Je voudrais remercier monsieur Marc Daniel, professeur, LSIS UMR 7296 qui m'a beaucoup aidé à obtenir le visa français, m'a permis de postuler et m’a donné l’occasion de faire le stage en France

Je tiens à remercier monsieur Romain Raffin, maître de Conférences Informatique, LSIS UMR 7296 qui, en tant que tuteur, m’a encadrée et s'est toujours montré à l'écoute et très disponible tout au long de la réalisation de ce projet Grâce aussi à sa confiance, j'ai pu accomplir mes missions

Enfin, je souhaiterais remercier toutes les personnes : ma famille, mes amis

de l’IUT IFI qui m'ont toujours soutenu et encouragé au cours de la réalisation de

ce mémoire

Trang 7

iii

Résumé

Les données dans l’archéologie sont généralement trop volumineuses en mémoire Le problème est d’accéder aux données, de trouver rapidement des données liées à une application client / serveur d'archéologie L'architecture client-serveur est une solution bien connue pour l'accès de plusieurs utilisateurs à

un seul serveur Il nous permet de travailler en ligne Aujourd'hui, nous pouvons afficher des documents, des artefacts, des statues ou marcher dans un ancien bâtiment avec la combinaison du modèle client/serveur et des données dans un système informatique d’archéologie Dans ce document, nous étudions l'indexation des données d'archéologie Le but de l’indexation est l’organisation des données pour l’accès rapide aux objets en réduisant l’espace de recherche Des données d'archéologie sont des images, des documents, des maillages en trois-dimensions 3D et sont sauvegardées sur la base de données ou dans un dossier sur un serveur Nous avons fait une étude théorique et pratique sur la méthode d’indexation de données ó nous allons nous concentrer sur l’index hiérarchique, l’index B-trees et l’indexation de recherche plein-texte (FTS) Les données ont été recherchées par le soutien du réseau En plus, nous étudions également l'organisation et l’indexation de données hors ligne par PDF dans le cơté du client

Mots-clés : stockage des données, indexation des données pour l'archéologie, maillage 3D, modèle client-serveur, B-trees index, R-trees index, recherche plein-texte, 3D en archéologie, données géométriques, SQLite, NodeJS.

Trang 8

iv

Abstract

The data in archeology generally occupies a large space in memory The problem is how to access data quickly to find data in a model client / server The client-server architecture is a well-known solution for the access of multiple users

to a single server It allows us to work online Today, we can see documents, artifacts, statues or walking in an old building with the combination of the client / server model and data in an informatics system of archaeology In this paper, we study about indexing for archaeological data The goal of indexing is accessing quickly to objects by reducing space of searching Archaeological data are images, documents, three-dimensional objects 3D, and keywords that are stored on a folder or database of sever

We did a theoretical and practical study on the data indexing method where

we will concentrate on the hierarchical index, the B-trees index, and the full-text search indexing (FTS) Data are searched by the support of network In addition,

we also studied the organization and indexing offline par PDF in the client side

Keywords : data storage, indexing data for archeology, 3D mesh, client-server model, full text search, index B-trees, R-trees index, 3D archeology, geometrical data, SQLite, NodeJS

Trang 9

v

Liste des abréviations

2D Two Dimensional

3D Three Dimensional

API Application Programming Interface

B-trees balanced tree

CSV Comma Separated Values format (Data file)

DB Data base

Doc Document

FTS Full text search

Id Identification

HTML HyperText Markup Language

Node.js Node JavaScript

JADE Java Agent Development Environment

JSON Javascript Object Notation

ODT OpenOffice

OS Operator System

PDF Portable Document Format

SQLite Sqlite Database File

R-trees rectangle tree

SQL Structured Query Language

WKT Well-Known Text

Trang 10

Tout au long de ce mémoire, nous organisons ce rapport en six sections Dans

le chapitre 1, nous allons représenter l’introduction générale, le contexte, le problématique, l’objectif de stage Après, dans le chapitre 2, nous allons introduire les concepts de l’archéologie et des données archéologiques Dans le chapitre 3, nous allons montrer le stockage des données, les concepts et la méthode d’indexation de données Suite, nous allons présenter la proposition du modèle dans le chapitre 4 Dans le chapitre 5, l’implémentation de l’application, les outils utilisés serons démontrés Dans le chapitre 6, nous allons faire l’expérimentation d’indexation, l’analyse et l’évaluation des méthodes également Enfin, nous allons conclure le rapport et montrer des perspectives

1.2 Contexte et Cadre d’étude

Le stage est effectué dans le cadre du projet Eloquenzior (projet AMIDEX d'Aix-Marseille Université) de LSIS UMR 7296 (Laboratoire des Sciences de l’Information et des Système Marseille, France) Eloquenzior est un projet du patrimoine numérique Le projet est dans un projet plus large d’analyse du décor sculpté du site de Delphes en Grèce Le projet est axé sur l'étude de deux anciens monuments pour leur importance historique : la Tholos à Delphes (Grèce), le Temple Attis à Zama Regia (Tunisie) Le partenaire du projet est le Centre Camille Jullian (Histoire et archéologie de la Méditerranée et de l'Afrique du Nord, de la protohistoire à la fin de l'Antiquité, UMR 7299 - AMU / CNRS /

Trang 11

2

MCC), Aix-en-Provence, France Le projet Eloquenzior, soutenu et financé par l'Université d'Aix-Marseille (AMIDEX Fondation), vise à promouvoir une réflexion interdisciplinaire, l'extraction et l'analyse des informations contenues dans les formulaires numérisés qui peuvent laisser émerger de nouveaux mécanismes d'analyse d'objets du patrimoine, de l'exploration de nouvelles méthodes de mesure propriétés géométriques, et la traduction ces propriétés en

«signatures» morphologiques En outre, l'analyse détaillée des formes peut se permettre d'aller jusqu'à l'analyse de la façon dont elles ont été produites, et ainsi les classer selon les différentes écoles Elle pourrait également aider à permettre

la reconnaissance de nombreux fragments non identifiés, qui pourraient être appariés par leurs signatures morphologiques et technologiques En effet, afin de limiter, au moins initialement, les observations et les descriptions dont l'interprétation peut bénéficier sont une accumulation importante de théories (vocabulaire contrôlé) L'équipe effectuera des expériences sur deux objets d'avant-garde historique, riche en informations, avec un patrimoine symbolique fort et particulièrement approprié pour les reconstructions 3D virtuelles, aussi bien pour les scientifiques que pour le grand public Le projet regroupe des scientifiques de l'informatique graphique, de l'archéologie et de la numérisation tri-dimensionnelle Le sujet proposé est donc un point de départ qui pourra s’élargir au fur et à mesure des résultats obtenus

1.3 Problématique

Dans le domaine de la base de données, il est important de stocker les données en agençant pour y accéder rapidement Des données volumineuses occupent beaucoup de mémoire pour les stocker L’objet de notre recherche est l’indexation des données pour l’archéologie L’indexation est une façon d’organisation des données pour accéder aux informations rapidement Les documents sont stockés dans un dossier sur le serveur et une partie des informations des documents sont stockées dans des bases de données, par l’intermédiaire de laquelle on peut accéder au contenu des collections documentaires Deux problèmes fondamentaux peuvent être retirés de l’analyse des traitements des données dans notre étude : l’indexation, puis leur recherche L’accès au contenu des documents, des images et données trois dimensions (3D) nécessite en effet une indexation D’un autre côté, dans le système de l’informatique, un problème est la sauvegarde des documents et des informations pour éviter la perte des données.On doit définir des liens entre des informations

Trang 12

3

Une information perdue peut provoquer plusieurs autres informations inaccessibles Le système doit gérer des relations, des règles, des rơles qui permettent d’organiser les connaissances exploitées Des données peuvent être stockées dans plusieurs endroits dans des fichiers ou des bases de données sur des clients ou un serveur Cela permet à l'utilisateur d’accéder facilement et rapidement aux données Un modèle client/serveur permet à l’utilisateur d’accéder aux données en ligne Le stockage dans un serveur en ligne permet de partager et mettre à jour des données rapidement.Un utilisateur peut explorer des artefacts et des patrimoines à la maison Mais des archéologues ne peuvent pas rester dans le bureau tous les jours Ils peuvent aller à la recherche des artefacts dans un lieu éloigné comme le désert africain ó manque l’internet Alors, on étude une façon de sauvegarder des données dans un répertoire sur l’ordinateur de client pour la recherche hors ligne Des données dans les fichiers hors ligne sont organisées et soutenues par un index pour rechercher rapidement La deuxième problématique est la recherche et l’accès des informations, nous devons étudier des méthodes pour la recherche des données, donc nous étudions la méthode d’indexation inversée pour la recherche plein-texte Pour chaque type de donnée,

on utilise des outils différents pour accéder et afficher des données

1.4 Objectifs de stage

Le projet de ce stage est de construire une application client/serveur liée à une base de données documentaire appliquée à l'archéologie Les données à stocker sont de tous types (mot-clé, document texte, photographie, maillage 3D) L'innovation de cette application est de proposer la visualisation 3D sans plugins des modèles 3D déposés (webGL) Tous les objets numérisés pendant la mission sur le site de fouilles peuvent être insérés dans la base et visualisés de retour de mission pour le travail d'analyse scientifique La consultation ou l'édition des données se fait via un client léger L'utilisateur authentifié accède aux différentes données selon son niveau de confidentialité (basse résolution pour le public, haute résolution pour les scientifiques) Le projet contribue à la protection les patrimoines culturels

Les objectifs de ce travail de stage sont :

• La gestion de formulaires pour la saisie de requêtes complètes et

l'affichage des résultats

• La recherche plein-texte dans les textes numériques (PDF, doc, xls)

• L'import et l'export des données via des formulaires

• La sauvegarde et la réimportation de la base de données

Trang 13

4

• Une interface de traitement des données 2D/3D modulaire Cela

permettra d'appliquer des filtres aux objets photographiques ou 3D en déclenchant des traitements par des scripts ou des programmes compilés annexes

• Une interface d'annotation des données 3D, liée à la base de données

• Le packaging de l'application pour son téléchargement et son

installation

Trang 14

5

Chapitre 2

Données d’archéologie

2.1 Système informatique en archéologie

Actuellement, avec des nouveaux outils et le développement de l’internet, plusieurs systèmes informatiques d’archéologie sont nés La première utilisation

de terme "système d'information géographique" était par Roger Tomlinson en

1968, dans son journal "Un système d'information géographique pour l'aménagement du territoire" Tomlinson est également reconnu comme le "père des SIG" En 1991, DRACAR (acronyme de Direction Régionale des Affaires Culturelles et d’ARchéologie), une nouvelle base de données est proposée aux régions (développée au niveau national) DRACAR est aussi une structure centralisée qui sert l’archéologie par l’intermédiaire de terminaux reliés par réseau

au site central [1] Pour comprendre nos travaux dans le projet, nous présentons les terminologies et des données d’archéologie ci-dessous

Trang 15

6

permettent de conserver et rechercher Une donnée pourra être « donnée primaire

» ou « donnée traitée »

2.3 Le type de données

Dans l’archéologie, les données naturelles sont sélectionnées Des données

ne doivent pas être décrites de manière trop succincte pour l’étudier Mais elles

ne sont pas trop détaillées pour éviter les lourdeurs Des données sont regroupées dans des couches Ils peuvent être primaires ou traitées Les données archivées à savoir : les mobiliers, les objets, les liens entre des éléments différents comme les photographies, le rapport de fouille, les documents de saisie sur le terrain, la topographie du lieu (cartes, …) Les données primaires sont tous les éléments retirés par l’observation directe comme de la fouille et de la documentation Ils peuvent être : les objets, les couches, les liens directs entre ces différents éléments, les enregistrements des photographies Les données tirées d’étude menée des données primaires sont des données traitées, exemple : l’assemblage de plan, de dessins d’objet…

Dans un système informatique d’archéologie, les données doivent être informatisées pour le stockage dans l’ordinateur Les types différents de données disponibles qui doivent être accédées dans notre projet sont:

- Des mots-clés stockés dans des tables

- Des documents numériques sous forme PDF, doc

- Des dessins, images 2D d’objet de la fouille, mobilier

- Des descriptions d’objet 3D appelés «maillage»

Le type mot-clé montre des informations d’objets Des informations sont stockées sur des enregistrements d’une table dans des bases de données Les fichiers des documents, images, dessins, maillages sont stockés sur un répertoire dans un ordinateur

2.4 Données géométriques

Les données 3D sont présentées par la Géométrie qui est un type de données abstrait avec sept sous-classes liées La Géométrie est stockée dans un format binaire 'WKB' ou d’éventuellement du texte 'WKT' La Géométrie peut représenter des objets géométriques distincts : Géométrie, Point, Multi point, Chaîne de ligne, Chaîne de multi ligne, Polygone, Multi polygone, Triangle [2] Deux points sont séparés par une virgule Regardez un exemple qui représente une ligne avec quatre points 3D :

LINESTRING (0 0 0, 10 10 12, 20 25 8, 50 60 6)

Trang 16

On peut utiliser des bases de données comme PostGIS, SQLite Ils permettent d'ajouter le stockage et la manipulation d'objets spatiaux en ajoutant des types de données géométriques et des fonctions spatiales Dans notre système, nous vous proposons SQLite en raison de ses avantages SQLite est un moteur de base de données largement déployé dans le monde C’est une bibliothèque logicielle, une base de données qui est sans-serveur et non-configurée, cela signifie que SQLite permet d’utiliser la base de données sans serveur et vous ne devez pas configurer dans votre système Des données sont stockées dans un fichier C’est un moteur

de base de données relationnelle destiné à être embarqué directement dans une application

2.6 Conclusion

Dans cette partie, nous avons fait l’état de l’art de la conception et des terminologies dans le système d’informatique d’archéologie pour faire comprendre nos objectifs de travail dans un système informatique d’archéologie Nous présentons des données qui doivent être gérées et accédées Les données sont divisées aux plusieurs types pour le traitement La base des données SQLite est choisie pour stocker des données et des relations de données

Trang 17

8

Chapitre 3

Indexation de données

3.1 Stockage des données

Pour comprendre l’indexation, on fait l’étude sur des unités des stockages physiques, des unités des stockages logiqueset le management des stockages

Disque physique

Un disque est une unité physique de stockage Chaque face de disque est divisée en secteurs (découpage longitudinal), pistes (découpage circulaire) Un bloc est l’intersection entre un secteur et une piste L’accès est simultané à des données d’un même cylindre

La structure d’un disque dur est montrée suivante [3] :

Figure 3.1a - Structure d’un disque dur [3]

Fichier

Un fichier est un ensemble d’informations réunies sous un même nom et enregistrées sur un support de stockage à long terme Un fichier sur disque est une unité de stockage sur les blocs dans le disque Un fichier peut être stocké sur un

ou plusieurs blocs Des petits fichiers sont stockés dans un bloc Des gros fichiers sont découpés et sauvegardés sur des blocs [4] Des informations peuvent être stockées sous plusieurs types de fichier de données (vidéo, image, objet 3D, etc.)

Le système de gestion de fichier est connu avec le rôle de stocker des fichiers et

Trang 18

Organisation de répertoire et fichier

La structure d’organisation des données de fichiers est un arbre Un lien permet de passer dans une structure en graphe Le lien dur « hard link » est lié à

un endroit physique dans le disque Par exemple, pour accéder à un bloc de 512 octets, il faut connaître son cylindre, son plateau et son secteur Le lien doux « soft link » est un lien logique Le système de gestion de fichiers fournit une vue logique du disque permettant de faire abstraction des propriétés physiques [3] L’organisation logique des fichiers et des répertoires dans un arbre est la suivante :

Trang 19

10

pointeurs sont rangés dans un seul endroit appelé bloc index comme la figure 3.1c [3]

Figure 3.1c - Méthode d’accès-Indexation [3]

On utilise un bloc d’index pour stocker la carte des blocs du fichier (pour chaque fichier) Un bloc est représenté par sa adresse[4]

Figure 3.1d - Organisation logique de fichier : cas d’UNIX (14 octets) [35]

Partage des données et la sécurité de données

Dans un système distribué, les fichiers peuvent être partagés via un réseau Dans un modèle client-serveur, pour le partage de fichiers à distance, des données peuvent être stockées dans un endroit sur un serveur et le client peut y accéder Ils

communiquent en utilisant un protocole d'échange Pour l’accès à un fichier à

distance, le fichier de données doit exister sur le serveur Le serveur retourne l’identifiant de fichier et vérifie l’identification d’accès à ce fichier Dans le cas

de catastrophes, incendie, erreurs, virus Les données peuvent être perdues On doit regarder la protection des informations contre des accès non autorisés Une

Trang 20

11

des façons de la sécurité des fichiers est le management des droits d'accès par un

identificateur des utilisateurs avec le nom d'usager et un mot de passe associé

3.2 Indexation de données

Quand des données sont accédées, elles doivent être localisées sur le disque Elles sont copiées en mémoire centrale pour être traitées puis, réécrite sur le disque [5] Les données stockées sur le disque sont organisées en fichiers d’enregistrements Parce que l’accès dans la mémoire secondaire est lent, il faut pouvoir les localiser rapidement et minimiser le nombre d’accès Les index peuvent être cỏteux en temps de calcul

Regardez un exemple d’un livre dans la figure 3.2 pour comprendre mieux:

la recherche d’un mot dans un gros livre en entier est très cỏteuse en temps Alternativement, vous pouvez référer à l'index du livre dans la page de sommaire qui vous permet trouver le mot vers le nombre de pages Bien que la plupart des livres contiennent un indice unique, plusieurs livres peuvent contenir plusieurs index Par exemple, un livre d’archéologie peut avoir un index pour la ‘date’ de l’artefact et un index pour la ‘description’ Dans une base de données, le concept d’index est similaire à la page de sommaire Les bases de données fournissent des structures des données spéciales appelées index qui permettent de trouver toutes les lignes de enregistrements avec un attribut donné sans lire et sans vérifier tous les lignes Un pointeur fait référence à un endroit pour localiser une valeur dans

la table Donc, l’accès à l'information plus rapidement Dans le cas de bases de données volumineuses, l’indexation permet d'améliorer le temps d’exécuter Des caractéristiques d’un index pour une base de données est comme un index dans

un livre :

- Il est plus petit que le livre

- Les mots sont triés

Si nous sommes à la recherche d'un sujet particulier, nous cherchons d'abord sur l'index, cela permet de trouver des pages, puis d’aller aux pages réelles dans

le livre Dans la base de données on peut considérer le livre comme une table, les figures dans le sommaire comme des index, les pages comme des adresses dans

la base de données

Des index sont des structures de données auxiliaires, structurées qui facilitent le processus de requête et réponse en réduisant le nombre d'accès au disque et fournissent un accès plus rapide aux données Ils sont souvent créés dans l'espoir de faire des requêtes plus rapides en évitant de scanner la table en entier

Trang 21

12

Figure 3.2- Un exemple d’index [38]

L’index a des caractéristiques suivantes :

- Les valeurs de clés de recherche stockées dans l'index sont triées

- La table d’index est plus petite que la table

- Il existe un lien entre l’index et la table

Une structure d'index est généralement définie sur un attribut d'une relation appelé

la clé de recherche Un index prend en entrée une valeur de clé de recherche et renvoie l'adresse du fichier (s) (ou adresse physique de bloc de l'enregistrement) qui tient la valeur de recherche Un index possède une paire qui contient une clé

de recherche et un pointeur sur un enregistrement de fichier de données

Une paire Clé et Pointeur :

Clé de recherche Pointeur sur un enregistrement de

fichier de données

Chaque index est associé à une table spécifique Les index peuvent être une colonne ou multi-colonne, mais toutes les colonnes d'un index doivent appartenir

à la même table

Nous utilisons l’indexation ó ?

Cependant, avec les avantages d'exécution, l'utilisation d’indexation est toujours accompagnée d’un cỏt Parce que la table d’index a besoin d’un espace dans la base de données pour le stockage et pour l’instruction de traitement de données Il est nécessaire d’utiliser plus de temps pour mettre à jour des index Il faut assurer que l’avantage de l'indexation est toujours plus grand que le cỏt de l’index En cas de peu de données, on n’a pas besoin d’indexation

Une colonne peut être sélectionnée pour créer l’index basé sur les règles suivantes:

 La colonne est accédée pour requérir régulièrement

 La colonne est utilisée pour le tri des données

Trang 22

Index unique

Les index uniques sont utilisés non seulement pour la performance, mais aussi pour l'intégrité des données Un index unique ne permet pas de valeurs en double à insérer dans la table

Index composite

Un indexcomposite est un index sur deux ou plusieurs colonnes d'une table

Indice implicite

Un indeximplicite est un indexqui est créé automatiquement par le serveur

de base de données quand un objet est créé Les index sont automatiquement créés pour les contraintes de clé primaire et les contraintes uniques

3.3 Organisation des index

Dans cette partie, nous montrons des organisations d’index : bitmap (brut), primaire, hachage et hiérarchie [22]

3.3.1 Index bitmap (Index brut)

L’index bitmap s’applique aux attributs ayant un nombre de valeurs limité

Un index bitmap est une matrice constituée de 0 ou de 1 Pour chaque bit, il existe

un codage de présence ou d’absence Il est construit par le remplacement d’une valeur de type chaîne de caractères par un bit Toutes les valeurs possibles de l’attribut sont prises en considération quelle que soit la valeur: présente ou absence dans la table Il n’y a pas de tri dans l’index bitmap, parce que l’index (0

ou 1) accède directement la valeur sur un bit [7] L’index est très efficace lorsque des attributs ont un faible nombre de valeurs Les requêtes sont optimisées grâce aux opérations de comptage (COUNT) et aux opérateurs logiques (AND, OR, etc) sur les bitmaps On peut voir un exemple de la requête pour trouver une personne qui est masculin et sa couleur des yeux est brune comme la figure 3.3.1

La requête est [28] : Select * from table where couleurYeux = brun et sexe = M

Trang 23

14

On représente la valeur d’attribut Sexe (M) = 11010100, la valeur d’attribut couleurYeux(brun) = 10111001 On calcule l’opérateur AND sur bit à bit, le résultat : 11010100 AND 10111001 = 10010000

Figure 3.3.1- Index bitmap [28]

Les opérations logiques sont très bien supportées par le matériel binaire, les opérations sont exécutées rapidement Le cỏt de construction d'index bitmap et les cỏts de traitement sont très faibles

Désavantage :

Pour la haute cardinalité des attributs Cette technique a besoin d’un grand espace d’index

3.3.2 Index primaire (trié ou linéaire)

Il est une organisation simple, chaque pointeur contenant un index lié à une table triée selon quelques colonnes [22]

Figure 3.2.2-Organisation d’index primaire [22]

Avantage : l’implémentation simple

Désavantage : la recherche linéaire dans la liste

Trang 24

15

3.3.3 Index Hachage

Index Hachage utilise une technique basée sur le calcul de l'adresse d'une donnée à l'aide d'une fonction dont la variable est la valeur de la clé de tri L’adresse de données est la valeur de fonction de hachage h telle que : h(k) =

@page

Où k est la clé d'index et @page est l'adresse de la page ó se trouve l'enregistrement associé à k La complexité est O(1) en meilleur cas et O(log(N)) dans le pire de cas [37]

Figure 3.3.3-Index Hachage [37]

Avantage : le temps de recherche rapide et n’occupe pas l’espace du disque dédié

Désavantage : la taille de table est fixée Quand le fichier évolue beaucoup,

il faut reconstruire un hachage La fonction de hachage dépend de la taille de la table

3.3.4 Index B-Trees (Index hiérarchisés)

Trang 25

- Le nœud racine a au moins deux enfants

- La hiérarchie de l'arbre grossit par la racine : tous les chemins de la racine aux nœuds feuilles ont la même longueur

B-trees index

L’index B-trees contient les pointeurs d’index et les valeurs dans des nœuds L’index est basé sur une structure d’arbre récursif Le plus haut niveau de l’index est appelé « racine », le niveau le plus bas est appelé nœud de feuille et les autres sont appelés des branches ou nœuds internes Toutes les racines, les branches contiennent des entrées qui pointent au niveau suivant de l’index comme la figure 3.3.4a suivante Les nœuds se composent de la clé d’index et des pointeurs vers une location physique (ou logique) des enregistrements [10]

Figure 3.3.4a -Un exemple de B-Trees [34]

Structure du nœud d'un arbre B

– C1 ≤ C2 ≤ … ≤ Cn : clés

– R1, …, Rn : informations associées aux clés

Figure 3.3.4b - Structure du nœud B-Trees [11]

La recherche sur B-trees

Un nœud inclut n articles ó chaque article a une clé et un pointeur vers son fils [11]

 n articles, en ordre croissant des clés (k ≤ n ≤ 2k)

– C1 ≤ C2 ≤ … ≤ Cn : clés

– R1, …, Rn : information associée aux clés

Trang 26

17

En général Ri = l’adresse (ROWID) de l’article de clé Ci

 n+1 pointeurs vers les nœuds fils dans l'index: P1, …, Pn+1

Recherche l’article de clé c [11] Pour simplifier, considérons que les clés dans l'arbre sont distinctes :

1 Commencer de la racine ;

Soient C1, C2, …, Cn les clés du nœud courant

2 Si c est parmi ces clés (c=Ci) résultat = l'article récupéré à l'aide de Ri

Sinon, Si le nœud courant est une feuille, trouver l’enregistrement dans ce nœud; résultat = aucun article

3 Sinon on choisit l'intervalle Ci-1 < c < Ci (ou c < C1 ou c > Cn ) dans lequel se trouve c et on continue récursivement avec le nœud fils indiqué par P Avantages :

 B-trees permet de réduire la complexité de calcul de requêtes de linéaire au logarithme

 Le manque de stockage redondant

 Certaines recherches sont plus rapides (clé peut être dans le nœud feuille)

non-Désavantage : le maintien de l’équilibre de l’arbre est complexe et peut être cỏteux

 Nœuds feuilles et non-feuilles sont de tailles différentes (il est compliqué pour le stockage)

 Suppression dans un nœud non-feuille est plus compliquée que le tri primaire

 Il n’est pas efficace avec des données de taille faible

 Il faut parcourir tout un sous-arbre de B-Trees avec la recherche par intervalle de clés / clés non uniques

3.3.4.1 Index B+Trees

Bien que l’arbre B soit une bonne fonction pour obtenir une valeur spécifique, il y a un gros problème quand on a besoin d'obtenir plusieurs éléments entre deux valeurs Nous devons trouver un moyen de faire efficacement une requête d’intervalles Pour répondre à ce problème, les bases de données modernes utilisent une version plus efficace de l'arbre précédent appelée B+Trees Dans un arbre B+ : seulement les nœuds les plus bas (les feuilles) stockent des

informations Les autres nœuds sont utilisés pour aller à droit

Trang 27

18

Figure 3.3.4.1- Description de B+Tree [32].

Structure index B+trees

La structure de B+Trees est basée sur les principes suivants [8] :

 Un B+trees est constitué de blocs de dérivation et des blocs de feuilles

 Les blocs de branche guident la recherche d'une ligne

Recherche dans B+Trees

Regardez un exemple pour la recherche B+Trees dans la figure 3.3.4.1, on est à la recherche des valeurs comprises entre 8 et 19 Cette recherche est implémentée comme le processus l'arbre B-Trees et puis, nous rassemblons ensuite les successeurs de 8 jusqu'à 19 par les liens directs

Les étapes de B+Trees [11] :

 La recherche de clé est similaire à B-tree, mais on descend toujours jusqu'aux feuilles

 Pour la recherche par intervalle : on cherche la clé de début d'intervalle, ensuite on parcourt séquentiellement les feuilles jusqu'à la fin de l'intervalle

3.4 Index de document

Problème : étant donné un ensemble de documents de texte dont nous avons besoin d'extraire un mot particulier dans tous des documents Dans un modèle Web, la recherche Web est un problème important de données La tâche du système est de récupérer des objets sur le site Web (pages Web, des documents PDF, PowerPoint, etc.) et de les présenter à l'utilisateur La plupart des moteurs

de recherche Web et intranet utilise un index inversé de texte pour exécuter des requêtes de texte [14]

Représentation des index

Un problème est comment on peut représenter la présence des mots appelés

« termes » dans les documents [15] On peut représenter la distribution des index dans les documents par une matrice (termes x, documents V) comme la figure 3.4 L’élément A[x, V] est la valeur du terme x et le document V

Trang 28

19

A[x, V]=1 si le terme apparaỵt dans le document V Si non, A[x, V]=0

Figure 3.4-Représentation des index dans une matrice [16]

On doit avoir N*M éléments pour stocker des données (ó N soit nombre des termes et M soit nombre des documents) Cela conduit à consommer de

mémoire Alors on doit utiliser une autre technique appelée index inversé [18]

3.4.1 Index inversé

Un index inversé est une forme d'index secondaire, une structure de données d'index stockant une cartographie de contenu (des mots ou des chiffres) à ses emplacements dans un fichier de base de données, dans un document ou un ensemble de documents Pour faire un index inversé, vous devez stocker chaque mot de la liste des documents Pour comprendre, voici un exemple:

Soient les documents suivants : D1, D2, D3, D4, D5 sont des documents qui contiennent des mots

D1 = "This is first document”

D2 = "This is second one"

D3 = "one two"

D4 = "This one is great"

D5 = "This two is great!"

L’index inversé représente des mots dans des documents comme suivant

Les index inversés sont notamment utilisés pour des applications de moteur

de recherche Par exemple, si nous effectuons une recherche des termes " this" et

"one", alors la ou les phrases correspondantes peuvent être retrouvées par l'intersection des index des mots correspondants soit:

{D1, D2, D4, D5} AND {D2, D3, D4} = {D2, D4}

Index inversés avec le poids du terme

Trang 29

20

L’index inversé contient les fréquences suivantes [16] :

-Fréquence Terme (TF) : nombre de fois qu'un terme apparaỵt dans un document

-Fréquence de document (DF) : nombre de documents contenant un terme

La figure suivante montre trois listes d’index inversé

Figure 3.4.1a - Index inversés avec le poids du terme [14]

Liste 1 : une liste de documents Le format est « (d1, d2 dn) », ó dn est

le nombre d'identité de documents

Liste 2 : une liste de documents et de fréquences de mots Le format est

« (d1: f1, d2: f2 ) », ó dn est le nombre d'identité de documents, fn est la fréquence des mots

Liste 3 : une liste de documents et de positions des mots Le format est

« dn : ( w1, w2 ) », ó dn est Id de document, wn est la position du mot

Généralement, un index inversé est constitué de listes de « postings » Chaque « posting » associé à chaque terme (term) Chacun « posting » est constitué d'un identifiant de document (doc id) et une « payload » qui contient des informations sur la fréquence d'occurrence du terme dans le document [35] Un

« posting » peut ne pas avoir de « payload » Un index inversé fournit un accès rapide au document qui contient le terme Nous regardons une description d’index général :

term1 apparaỵt dans le documents {d1, d5, d6, d11, }

term2 apparaỵt dans le documents {d11, d23, d59, d84, },

term3 apparaỵt dans le documents {d1, d4, d11, d19, }

Figure 3.4.1b-Illustration simple d'un index inversé [17]

3.4.2 Prétraitement Document

Pour la recherche document, il faut prétraiter le document en premier comme

la figure 3.4.2 suivante Les documents sont convertis en jetons (token) Des

Trang 30

21

jetons sont éventuellement transformés après la phase issue Enfin quelques jetons peuvent être supprimés entièrement [14]

- Tokeniser ou lexing : le processus de création des vocabulaires

Dans le processus « tokeniser » un document doit être convertir en liste de jetons, dont chaque jeton est un mot alphanumérique unique Les entrées sont converties en minuscules Ensuite, chaque collection de caractères alphanumériques séparés par des caractères spécialisées (les espaces, la ponctuation, etc.) est ajouté à la liste des jetons

- Arrêt mots (filtering stop words) : le processus d'ignorer certains des mots qui sont communs, ils ne sont pas utilisé comme des clés, par exemple les mots

“un”, “une”, “le”, “la”, “de”

- Racinisation (stemming)

Après « lexing », le processus transforme des mots à la racine de son morphologique Par exemple, les mots "archéologie", "archéologue",

"archéologique", pourraient tous être indexés comme leur mot de racine

"archéologie" L’exemple démontre le processus de traitement de document suivant

Figure 3.4.2-Prétraitement des documents [14]

3.5 Indexation spatial et R-Trees

Un R-Tree est une structure d’indexation des données dans les espaces multidimensionnels sous la forme d’un découpage hiérarchique équilibré en ensembles de rectangles [19] R-tree facilite le traitement de requêtes spatiales

La structure d’un R-Trees

La structure d’un R-Tree est basée sur la décomposition de l’espace autour

de rectangles englobant minimaux REM (MBR -Minimum Bounding Rectangle) Chaque nœud de l'arbre, contenant plusieurs entrées (m, M), une entrée dans un

Trang 31

22

nœud de feuille d'un R-Trees contient un identifiant (oid) et une clé qui est un point multidimensionnel ou un contour rectangulaire de l'objet spatial représente (MBR)

R-Tree est une structure de données d'arbre, défini par une paire (m, M) ayant les propriétés suivantes :

 Un nœud intermédiaire est noté (p, mbr) ó p représente le pointeur sur le nœud fils de l'élément et mbr est le rectangle englobant minimal de l'élément

 Un élément d'une feuille est noté (oid, mbr) ó oid est l'identifiant de l'objet

et mbr est son rectangle englobant minimal

 Le nombre minimum autorisé d'entrées dans le nœud racine est deux

 R-Tree peut être utilisé pour effectuer efficacement les requêtes des types: Requêtes ponctuelles: INSERT, UPDATE, DELETE et requête de gamme (Range query) : une requête pour tous les points (enregistrements) qui correspondent au rectangle multidimensionnel spécifié

Les variantes les plus populaires sont R+Trees , R *Trees , Hilbert R-Trees

Figure 3.5.1a-Rectangles englobant minimaux MBR

Trang 32

23

Figure 3.5.1b- La division en groupe par R-trees [30]

Figure 3.5.1c- Structure de l'héritage de R-Trees [30]

La figure 3.5.1c montre une structure de R-Trees, un arbre équilibré qui consiste des nœuds intermédiaires R1, R2, R3, R4, R5, R6, R7 et des feuilles R8, R9, R11,R12, R13, R14, R15, R16, R17, R18, R19 Les objets de données sont stockés dans des nœuds intermédiaires et des feuilles Des nœuds intermédiaires sont construits en regroupant des rectangles au niveau inférieur Chaque nœud intermédiaire (par exemple R3) est associé à un certain rectangle qui entoure complètement tous les rectangles correspondent aux nœuds (R8, R9, R10) de niveau suivant

3.6 Conclusion

Dans cette partie, nous avons présenté la conception d’index Pour comprendre des index, avant tout, on a étudié sur le stockage des données, le concept d’unité physique et logique pour le stockage dans l'ordinateur et leurs organisations Puis, on a dit sur la théorie d’index pour comprendre pourquoi on utilise l’index, il est utilisé ó, ses caractéristiques, ses types d’index et les types

Trang 33

24

d’organisation d’index L’organisation d’index est divisée aux trois types: bitmap, primaire, hiérarchie Chaque type, nous avons montré des façons d’index avec ses avantages et désavantages.Nous nous concentrons à la méthode l’index B-trees pour l’utilisation facile Puis, on a fait une étude sur l’index inversé qui sert à la recherche plein-texte et les étapes pour implémenter des index inversé dans l’application Finalement, nous avons introduit une méthode d’index pour l’objet géométrique : R-trees qui est une structure d’arbre pour l’indexation d’objet spatial, populaire dans le monde

Trang 34

et les parts de traitement, de requête les bases de données Notre application a été développée sur des techniques modernes: la base de données SQLite, le modèle Node.js, les langages : JavaScript, HTML, Jade, Express, bibliothèque HTML5

On utilise Jade pour développer l’interface qui est un langage structural comme

HTML, il est plus court, plus clair pour écrire que HTML Jade est compilée en HTML Jade vous permet de diminuer des balisages redondants et créer des modèles pour afficher des données [21] En Jade, chaque tag est représenté sur une nouvelle ligne Pour exécuter les fonctions de l’interface sur le client, on

propose JavaScript qui est un langage de programmation logiciel interprété,

dynamique et léger Il est couramment utilisé dans des applications du Web dont les implémentations exécutent sur le cơté de client ou serveur pour interagir avec

l'utilisateur Le script JavaScript doit être référencé dans une page HTML ou Jade

pour l’interprétation par le navigateur Pour construire le modèle, on utilise

Node.js, un très puissant Framework basé sur la plate-forme JavaScript Il est

utilisé pour développer des applications Web I /O intensives comme les sites de diffusion vidéo Web, des applications d'une seule page, et des autres applications Web Node.js est complètement libre, et utilisé par des milliers de développeurs à

travers le monde Pour afficher l’animation des données, on propose HTML5

Canvas qui est un élément défini dans le code HTML L’API de HTML5 Canvas

est utilisée dans JavaScript ó il permet générer des graphiques dynamiquement

On peut créer le graphique, des animations directement dans le navigateur Il peut

Trang 35

26

afficher des lignes, des formes, du texte, des images , avec l’animation En plus, les bibliothèques de HTML5 Canvas sont gratuites Dans l’application de l'archéologie, on utilise HTML5 Canvas pour afficher des artefacts avec ses illustrations sous des nuages d’image 2D

4.2 Architecture de fonctions

Les composants de l’architecture et leurs liens sont présentés (les flèches représentent le flux de données) à la figure suivante :

Figure 4.2 – Architecture proposée pour l’application Eloquenzior

La figure représente les couches interface, business et données dans le projet

La fonction d’authentification permet à un utilisateur d’exécuter l'authentification avec trois droits : administrateur, public, scientifique Le système peut gérer des artefacts, illustrations, utilisateurs, afficher des images, des documents, des objets 3D (de la table « illustration »), et l'animation des nuages avec la fréquence Une illustration 3D d’un artefact est affichée sur la page indexMesh.html Nous pouvons pivoter, agrandir, rétrécir pour observer le modèle 3D d’un objet Les utilisateurs peuvent sélectionner des zones sur le modèle 3D avec une brosse en déplaçant, cliquant la souris, et enregistrant les régions choisies dans la base de données La fonction « recherche » permet de rechercher par le mot clé des

Ngày đăng: 17/03/2021, 19:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w