Base de données Modélisation A. Ly Y. Stroppa
Sommaire Présentation du modèle global Analyse Proposition Conclusion
Base de données générale Représentation globale de la base de données On peut constater que les règles d’intégrité référentielle n’ont pas été mises en place.
Analyse par partie Partie EPD Partie commune Partie MCQ Partie LPD
syllabesheadword_epd syllabesflexions_epd alter table notes_EPD add constraint FK_notes_epd foreign key (id_headword) references headword_epd(id_headword) ON DELETE RESTRICT ON UPDATE RESTRICT; Partie EPD notes_epd id_headword id_notes AI categorie_epd id_mot Id_categorie_AI id_liste_categorie sens_epd id_origine id_sens AI headword_epd id_headword Liste_categories id_categorie composes_epd id_ headword id_compose AI syllabesheadword_epd id_headword id_decomposition AI flexions_epd id_inf AI id_headword syllabesflexions_epd id_inf id_decomposition AI
syllabesheadword_lpd syllabesflexions_lpd alter table notes_LPD add constraint FK_notes_lpd foreign key (id_headword) references headword_lpd(id_headword) ON DELETE RESTRICT ON UPDATE RESTRICT; Partie LPD notes_lpd id_headword id_notes AI categorie_lpd id_mot Id_categorie_AI id_liste_categorie sens_lpd id_origine id_sens AI headword_lpd id_headword Liste_categories id_categorie composes_lpd id_ headword id_compose AI syllabesheadword_lpd id_headword id_decomposition AI flexions_lpd id_inf AI id_headword syllabesflexions_lpd id_inf id_decomposition AI
syllabesheadword_mcq syllabesflexions_mcq alter table notes_MCQ add constraint FK_notes_mcq foreign key (id_headword) references headword_mcq(id_headword) ON DELETE RESTRICT ON UPDATE RESTRICT; Partie MCQ notes_mcq id_headword id_notes AI etymo_mcq id_etymo AI id_headword categorie_mcq id_mot Id_categorie_AI id_liste_categorie sens_mcq id_origine id_sens AI headword_mcq id_headword Liste_categories id_categorie composes_mcq id_ headword id_compose AI syllabesheadword_mcq id_headword id_decomposition AI flexions_mcq id_inf AI id_headword syllabesflexions_mcq id_inf id_decomposition AI
Liste_morphemes_prefsuffbase Source_frequence Id_source_freq_AI Liste_usages Id_usage_AI Usage_lien Id_usage_lien_AI Id_usage Id_lien_dict Categories_liens Id_categorie_AI Id_liste_categories id_lien_dict Frequence Id_freq_AI Id_source_freq Id_lien_dict Categories_suffixes Id_cat_suf_AI Id_categorie_depart Id_categorie_arrivee Id_morph_suffixe lexique id_lien_lex_AI Id_type_lexical Id_lien_dict_mot_etudie Id_lien_mot_referent1 Id_lien_mot_referent2 Id_statut Id_construction Liens_dict id_lien_dict_AI Id_epd Id_lpd Id_mcq Liste_morphemes_prefsuffbase id_morph_prefsuffbase_AI Decomposition_graphique id_decomp_graph_AI Id_lien_dict labellisation_morphologique Id_label_morph_AI Liste_types_lexicaux Id_type_lexical_AI Liste_statuts Id_statut_AI Decomposition_morphologique Id_morph_AI Id_lien_dict Types_morphologique Id_type_morph_AI Categories_prefbase Id_ref_prefbase_AI Id_categorie_rlt Id_morph_base Types_construction Id_construction_AI Liste_allomorphes Id_allo
Et la partie assemblée Liens_dict headword_epd Headword_lpd id_headword Liens_dict id_lien_dict_AI Id_epd Id_lpd Id_mcq Headword_lpd id_headword Headword_mcq id_headword
Et nouvelle base On peut se rendre compte que la structure de la base de données est très proche et appariée aux bases XML. Ce qui peut poser un problème dans le cas de l’ajout d’une nouvelle base XML …. Dans cas plusieurs solutions Cas 1: On refait une nouvelle structure complète composée de 7 tables dédiées à la nouvelle base et on réadapate l’ensemble des applications parser, remplissage_table et bddictionnairique. Cas 2: On refait une structure générique qui sera composée d’un nombre d’enregistrements important et on recale l’ensemble des applications. Cas 3: on redéfinit une structure NoSQL plus flexible, plus performante . Il faut réadapter l’ensemble des applications.
Cas 1 Reconstruction d’une nouvelle structure de 7 tables Adaptation de l’application Parser pour la lecture du nouveau XML et génération dans des fichiers csv spécifiques. Remontée des fichiers csv à l’aide de l’application chargement dans la base de données – création de la structure au préalable Modification de la structure des bases communes pour les liens Modification de l’application bddictionnairique pour utilisation de cette nouvelle base.
Cas 2 Génération d’une structure générique de base On fusionne l’ensemble des tables appariées aux fichiers XML en une seule structure composée de 7 tables. Dans lesquelles on ajoute un attribut qui permettra d’identifier la source (EPD, LPD, MCQ …) La numérotation des mots pourra être conservée à l’identique par contre il faudra l’associer à la source de l’information. Le reste des liens pourra fonctionner de la même façon mais les traitements devront prendre en compte la source. Le problème dans cette solution est la quantité des données dans les structures génériques les données ne dépassent pas 500 000 enregistrements cumulés ...)
Cas 3 Transfert vers une solution NoSql Il faut revoir complétement la couche DAO de toutes les applications.
Conclusion En fonction des choix effectués les efforts ne seront pas identiques, l'utilisation de stagiaire sous la conduite d'Aphat pourra mener des actions en parallèle permettant de valider les différentes étapes du choix retenu.