Bases de données et XML



Documents pareils
Conception des bases de données : Modèle Entité-Association

Mercredi 15 Janvier 2014

Introduction aux Bases de Données

Systèmes d information et bases de données (niveau 1)

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Modèle Entité-Association. C est un modèle important pour la conception des bases de données relationnelles. Il

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Merise. Introduction

Bases de données Cours 1 : Généralités sur les bases de données

Dossier I Découverte de Base d Open Office

A. Définition et formalisme

Modélisation de bases de données : Le modèle relationnel

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Modélisation des données

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

CESI Bases de données

Nom de l application

Base de Données et Langage SQL

Information utiles. webpage : Google+ : digiusto/

Conception d une base de données

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Tickets 3:3. ChevauxPartants

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Chapitre 1 Labo 1 : Les rôles de base du contrôleur de domaine Windows 2008 Server R2

Les bases de données Page 1 / 8

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Bases de Données. Plan

Rappel sur les bases de données

Comprendre Merise et la modélisation des données

Bases de Données Avancées

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Séance 1 Introduction aux bases de données

Bases de données. Chapitre 1. Introduction

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Modèle conceptuel : diagramme entité-association

Bases de données avancées Introduction

Cours de bases de données. Philippe Rigaux

UE 8 Systèmes d information de gestion Le programme

Concevoir un modèle de données Gestion des clients et des visites

RÈGLES DE TRANSFORMATION DU MCD AU MLD (MRD)

Chapitre 1 : Introduction aux bases de données

Générer du code à partir d une description de haut niveau

Dossier de spécification Gestion des effectifs : Beaufour IPSEN Industrie TW52

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Exercices Active Directory (Correction)

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

La mémoire. Un ordinateur. L'octet. Le bit

Méthode d analyse Merise

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

BUSINESS INTELLIGENCE

MERISE. Modélisation de Systèmes d Information. Pierre Gérard. DUT Informatique 2ème année 2004/2005. IUT de Villetaneuse - Université de Paris 13

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Les bases de données

UML et les Bases de Données

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Structure fonctionnelle d un SGBD

Gestion des bases de données (1 ère partie)

Mode d emploi pour lire des livres numériques

Chapitre 1 Généralités sur les bases de données

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Le langage SQL Rappels

BD et XML : Exercices

Rapport de stage Nom de l entreprise. Date du stage. Rapport de stage Nom de l entreprise. Date du stage. Nom du professeur principal

16H Cours / 18H TD / 20H TP

Visual Paradigm Contraintes inter-associations

LE MODELE CONCEPTUEL DE DONNEES

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Présentation du module Base de données spatio-temporelles

UML (Paquetage) Unified Modeling Language

Cours Informatique 1. Monsieur SADOUNI Salheddine

CONCEPTS ET MANIPULATIONS DE BASE

Bases de données relationnelles

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Algorithmique et langages du Web

et les Systèmes Multidimensionnels

Programmation C. Apprendre à développer des programmes simples dans le langage C

Initiation à Excel. Frédéric Gava (MCF)

Module 0: Introduction générale

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

Documentation d information technique spécifique Education. PGI Open Line PRO

Documentation Honolulu 14 (1)

analyse et pérennise votre patrimoine informationnel

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Configuration du FTP Isolé Active Directory

I00 Éléments d architecture

EDESS. 1 Démarche générale principes 2

Bases de données cours 1

I. QU'EST-CE QU'UN ORDINATEUR? Un ordinateur est relié à plein de périphériques

Tsoft et Groupe Eyrolles, 2005, ISBN :

Concevoir une base de données

Formats d images. 1 Introduction

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Installation et configuration de base de l active Directory

XML : documents et outils

Transcription:

Bases de données et XML le modèle hiérarchique vs modèle relationnel modèle hiérarchique structure de base : l arborescence. ancien modèle de bases de données (n est plus très utilisé dans les SGBD) ; ce modèle entraine de la redondance. XML est basée sur la structure arborescente ; avantage : format ouvert, document lisible... traitements rapides modèle relationnel structure de base : la relation (sous-ensembles de produits cartésiens). information sans redondance nombreux logiciels SGBDR, logiciels puissants (types, langage d interrogation, de présentation...) mais formats fermés (informations liées au logiciel), logiciels complexes, traitements lourds... Modèle hiérarchique pour les Bases de Données Une base de données est une forêt constituée d arbres dont les nœuds sont des entités (segments). Une entité (segment) est une suite d attributs. Un arbre possède une racine, N fils-segments qui ont eux mêmes M fils-segments, etc... Il n y a qu un lien entre deux segments ; celui-ci est géré par le système (transparent pour l utilisateur). Le schéma est un arbre constitué d entités reliées par des liens hiérarchiques. Attention : un arbre du modèle hiérarchique de bases de données n utilise pas les mêmes nœuds qu un arbre XML.

Modèle hiérarchique : relation hiérarchique Exemple : soit un modèle conceptuel des données ayant une relation hiérarchique. NoFilm titre 1:1 réalisation réalisateurs NoRéalisateur nom C est le cas qui est bien adapté à ce modèle (puisqu il est hiérarchique). Il n y aura pas de redondance. Modèle hiérarchique : relation hiérarchique Dans le modèle hiérarchique réalisateurs NoRéalisateur nom NoFilm titre

Modèle hiérarchique : relation hiérarchique Exemples de données : R01, Kubrick Stanley F004, 2001 l odyssée de l espace, 2h19, USA F017, Shining, 2h26, USA F009, Full metal jacket, 1h56, USA R04, Truffaut François F028, Jules et Jim, 1h45, France F035, Les 400 coups, 1h35, France F087, La mariée était en noir, 1h47, France... Modèle hiérarchique : relation maillée Exemple : soit un modèle conceptuel des données ayant une relation maillée. NoFilm titre générique acteurs NoActeur nom

Modèle hiérarchique : relation maillée Dans le modèle hiérarchique, nous avons deux possibilités : Nous pouvons prendre le film pour racine (à gauche) ou l acteur pour racine (à droite). acteurs acteurs Dans les deux cas, il y aura redondance. Modèle hiérarchique : relation maillée Exemples de données ( en racine, première possibilité) : F028, Jules et Jim, 1h45, France A071, Moreau, Jeanne A026, Werner, Oskar A187, Serre, Henri F087, La mariée était en noir, 1h47, France A071, Moreau, Jeanne A211, Bouquet, Michel A182, Brialy, Jean-Claude F035, Les 400 coups, 1h35, France A073, Léaud, Jean-Pierre A108, Maurier, Claire A071, Moreau, Jeanne A182, Brialy, Jean-Claude

Modèle hiérarchique : relation maillée Exemples de données (acteurs en racine, deuxième possibilité) : A071, Moreau, Jeanne F028, Jules et Jim, 1h45 F087, La mariée était en noir, 1h47, France F035, Les 400 coups, 1h35, France F069, Les valseuses, 1h57, France A182, Brialy, Jean-Claude F087, La mariée était en noir, 1h47, France F035, Les 400 coups, 1h35, France F134, Le beau Serge, 1h38, France A073, Léaud, Jean-Pierre F677, Pierrot le fou, 1h55, France F035, Les 400 coups, 1h35, France F031, Les mauvaises fréquentations, 0h42, France Modèle hiérarchique : relation maillée Exemple : soit un modèle conceptuel des données ayant une relation maillée. NoFilm titre diffusion jour heure salles NoSalle nom La relation diffusion est une fausse relation binaire. La concaténation (NoFilm, NoSalle) n est pas un identifiant si un film peut être diffusé plusieurs jours dans la même salle... et pire s il peut être diffusé plusieurs fois le même jour.

Modèle hiérarchique : relation maillée Il faudrait utiliser une relation ternaire. séances NoSéance jour heure NoFilm diffusion salles NoSalle titre nom Les cardinalités sur la branche séances-diffusion est car, à un horaire donné, il peut y avoir plusieurs dans des salles différentes. L identifiant de la relation diffusion est la concaténation NoFilm, NoSalle, Jour, Heure. Si on repère la contrainte d intégrité fonctionnelle, on peut réduire l identifiant à NoSalle, Jour, Heure. Modèle hiérarchique : relation maillée Dans le modèle hiérarchique, nous avons plusieurs possibilités : Nous pouvons prendre le film pour racine, ou la salle. En prenant le film pour racine, nous avons trois possibilités. salles salles séances salles séances séances La 2ème possibilité ne factorise pas les salles et donc introduit beaucoup de redondance. La 3ème possibilité ne permet pas de relier la séance et la salle et, donc, n est pas une solution intéressante.

Modèle hiérarchique : relation maillée En prenant la salle pour racine, nous avons trois autres possibilités. salles salles salles séances séances séances La 3ème possibilité ne permet pas de relier la séance et le film et, donc, n est pas une solution intéressante. Prendre la séance pour racine introduirait le maximum de redondance. Modèle hiérarchique : relation maillée Exemples de données (salle en racine, première possibilité) : S01, Kino F074, L année du dragon, 1h40, USA Mer, 12h Mer, 20h30... F087, Wallace et Gromit, 1h37, USA Mer, 16h Jeu, 18h30... S03, Mélies F087, Wallace et Gromit, 1h37, USA Mer, 20h30 Jeu, 18h F021, Jiburo, 1h29, Japon ven, 18h...

Modèle hiérarchique : relation maillée Exemples de données (salle en racine, deuxième possibilité) : S01, Kino F074, L année du dragon, 1h40, USA, Mer, 12h F074, L année du dragon, 1h40, USA, Mer, 20h30...... F087, Wallace et Gromit, 1h37, USA, Mer, 16h F087, Wallace et Gromit, 1h37, USA, Jeu, 18h30... S03, Mélies F087, Wallace et Gromit, 1h37, USA, Mer, 20h30 F087, Wallace et Gromit, 1h37, USA, Jeu, 18h... F021, Jiburo, 1h29, Japon, Ven, 18h... Modèle hiérarchique : passage du modèle conceptuel au modèle logique On en déduit les règles suivantes b 1:1 a r b devient ar

Modèle hiérarchique : passage du modèle conceptuel au modèle logique b a a r b devient ar Il faut choisir une des deux tables en racine selon la logique du problème à traiter. ou Mais les données contiendront des redondances. br Modèle hiérarchique : passage du modèle conceptuel au modèle logique Dans le cas d une fausse relation binaire (avec date, heure...) ou d une relation ternaire. c b c b a a r b devient ar ou cr ou... Il faut choisir une table en racine selon la logique du problème à traiter ou selon la proportion de redondance que le choix provoque.

Modèle hiérarchique : exemple Mais que se passe-t-il pour un ensemble d entités? Règles de gestion d un parc informatique : Un ordinateur est équipé d un type de processeur (marque, modèle, fréquence) et d un écran (marque, modèle, taille). Sur chaque ordinateur, sont installés des logiciels (libellé, memoire requise). Enfin les informaticiens utilisent les ordinateurs durant des périodes à mémoriser. On ne mémorise pas les logiciels utilisés. Processeurs Utilisateurs NoUtilisateur Nom 0:n utilise début fin relié à 0:n 1:1 Ordinateurs NoSérieOrdi RAM CapacitéDD 1:1 NoTypeProcesseur Marque Modèle Fréquence équipé de installation date 0:n Ecrans NoTypeEcran Marque Modèle Taille Logiciels NoLogiciel Libellé MemRequise La relation utilise est une fausse relation binaire

Modèle hiérarchique : exemple En privilégiant les utilisateurs utilisateurs ordinateurs processeurs écrans utilisations logiciels installations Modèle hiérarchique : exemple Exemples de données : Alain, 27 rue Jean Jaures, Lille Mesange, TSB, Pentium, 1GO, Acer 17/10/2007, 9h05, 17/10/2007, 16h49 18/10/2007, 10h04, 18/10/2007, 19h51 22/10/2007, 14h01, 22/10/2007, 19h54 postgresql, bases de données, 60MO latex, éditeur, 10MO Hercule, TSB, Pentium, 1.5GO, Acer 14/10/2007, 9h25, 14/10/2007, 16h01 19/10/2007, 10h18, 19/10/2007, 18h47 access, bases de données, 200 MO latex, éditeur, 10MO Fabien, 60 rue Louise Michel, Lille...

Modèle hiérarchique : exemple En privilégiant les processeurs processeurs ordinateurs écrans utilisateurs logiciels installations utilisations Modèle hiérarchique : exemple Pentium, 1GO Mesange, TSB, Acer Alain, 27 rue Jean Jaures, Lille 17/10/2007, 9h05, 17/10/2007, 16h49 18/10/2007, 10h04, 18/10/2007, 19h51 22/10/2007, 14h01, 22/10/2007, 19h54 Fabien, 60 rue Louise Michel, Lille 12/11/2007, 8h45, 12/11/2007, 16h49 18/10/2007, 8h04, 18/10/2007, 9h51 22/10/2007, 14h01, 22/10/2007, 19h54 postgresql, bases de données, 60MO latex, éditeur, 10MO Sarcelle, TSB, Acer Alain, 27 rue Jean Jaures, Lille...

Modèle hiérarchique : exemple En privilégiant les logiciels installés logiciels ordinateurs processeurs écrans utilisateurs installations utilisations Modèle hiérarchique : exemple Ce choix est peu judicieux. Comme il s agit des logiciels installés, on reproduira les mêmes informations pour chaque logiciel! postgresql, bases de données, 60MO Mesange, TSB, Pentium, 1GO, Acer Alain, 27 rue Jean Jaures, Lille 17/10/2007, 9h05, 17/10/2007, 16h49... latex, éditeur, 10MO Mesange, TSB, Pentium, 1GO, Acer Alain, 27 rue Jean Jaures, Lille 17/10/2007, 9h05, 17/10/2007, 16h49...

Bases de données et XML XML est un langage ouvert. On peut imaginer utiliser ce langage pour afficher le contenu d une base de données. Dans ce cas, il faut alimenter le document selon une DTD appropriée à la base. Mais la redondance n est pas un handicap. On peut aussi imaginer utiliser ce langage pour communiquer une base de données, indépendamment de tout logiciel de gestion de bases de données. Le langage XML s appuie sur des structures arborescentes. DTD et modèle hiérarchique En confondant la notion d œuvres et celle d éditions, on pourrait accepter le schéma conceptuel suivant. auteurs NoAuteur nom éditeurs NoEditeur NomEditeur Ville Pays écrit 1:1 édité par œuvres NoŒuvre titre

DTD et modèle hiérarchique Dans le modèle hiérarchique, on pourrait adopter le schéma suivant. editeurs œuvres auteurs DTD et modèle hiérarchique Mais si on veut privilégier l œuvre, on peut choisir l œuvre en racine de l arbre. Ce choix impliquera une redondance des informations concernant l éditeur. œuvres editeurs auteurs

DTD et modèle hiérarchique La DTD correspondant au premier cas serait <!ELEMENT catalogues (catalogue+)> <!ELEMENT catalogue (NomEditeur,ville,pays,œuvre+)> <!ELEMENT NomEditeur (#PCDATA)> <!ELEMENT ville (#PCDATA)> <!ELEMENT pays (#PCDATA)> <!ELEMENT œuvre (titre,auteur+)> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> dont un document valide pourrait être <catalogues> <catalogue> <NomEditeur> Dunod </NomEditeur> <ville> Paris </ville> <pays> France </pays> <œuvre> <titre> Merise et UML </titre> <auteur> J. Gabay </auteur> </œuvre> <œuvre> <titre> La conduite des projets... </titre> <auteur> J. Gabay </auteur> <auteur> B. Gebre </auteur> </œuvre> </catalogue>

<catalogue> <NomEditeur> O Reilly </NomEditeur> <ville> Amsterdam </ville> <pays> Hollande </pays> <œuvre> <titre> introduction à UML </titre> <auteur> S. Si Albir </auteur> </œuvre> </catalogue> </catalogues> DTD et modèle hiérarchique La DTD correspondant au deuxième cas serait <!ELEMENT œuvres (œuvre+)> <!ELEMENT œuvre (titre,auteur+,editeur)> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT editeur (NomEditeur,ville,pays)> <!ELEMENT NomEditeur (#PCDATA)> <!ELEMENT ville (#PCDATA)> <!ELEMENT pays (#PCDATA)>

dont un document valide pourrait être <œuvres> <œuvre> <titre> Merise et UML </titre> <auteur> J. Gabay </auteur> <editeur> <NomEditeur> Dunod </NomEditeur> <ville> Paris </ville> <pays> France </pays> </editeur> </œuvre> <œuvre> <titre> La conduite des projets... </titre> <auteur> J. Gabay </auteur> <auteur> B. Gebre </auteur> <editeur> <NomEditeur> Dunod </NomEditeur> <ville> Paris </ville> <pays> France </pays> </editeur> </œuvre> </œuvres>

XML et références Pour éviter la redondance, XML permet de faire des références. On peut alors reproduire les associations du modèle relationnel. Le schéma conceptuel suivant éditeurs NoEditeur œuvres NomEditeur Ville édité par 1:1 NoŒuvre titre Pays XML et références peut se présenter par la DTD <!ELEMENT catalogues (œuvre editeur)*> <!ELEMENT œuvre (titre)> <!ATTLIST œuvre noœuvre ID #required > <!ELEMENT titre (#PCDATA)> <!ELEMENT editeur (NomEditeur,ville,pays)> <!ATTLIST editeur noediteur ID #required > <!ELEMENT NomEditeur (#PCDATA)> <!ELEMENT ville (#PCDATA)> <!ELEMENT pays (#PCDATA)> <!ATTLIST œuvre refediteur IDREF #required >

dont un document valide pourrait être <catalogues> <œuvre noœuvre= O001 refediteur= E03 > <titre> Merise et UML </titre> </œuvre> <œuvre noœuvre= O002 refediteur= E03 > <titre> La conduite des projets </titre> </œuvre>... <editeur noediteur= E03 > <NomEditeur> Dunod </NomEditeur> <ville> Paris </ville> <pays> France </pays> </editeur> </catalogues> Lorsque les cardinalités sont 0 : 1, on peut utiliser une référence IDREF facultative #implied. L identifiant lui devrait toujours être #required. XML et références Pour les relations maillées, nous avons plusieurs possibilités. Nous pouvons utiliser des attributs-références dans les tables des éléments-références dans les tables un élément contenant les deux références Le schéma conceptuel suivant œuvres auteurs NoŒuvre Titre écrit NoAuteur nom

XML et références pourrait se présenter par la DTD (1ère possibilité) <!ELEMENT catalogues (œuvre auteur)*> <!ELEMENT œuvre (titre)> <!ATTLIST œuvre noœuvre ID #required > <!ATTLIST œuvre refauteur IDREFS #required > <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (nom)> <!ATTLIST auteur noauteur ID #required > <!ATTLIST auteur refœuvre IDREFS #required > <!ELEMENT nom (#PCDATA)> dont un document valide pourrait être <catalogues> <œuvre noœuvre= O001 refauteur= A03 > <titre> Merise et UML </titre> </œuvre> <œuvre noœuvre= O002 refauteur= A03 A07 > <titre> La conduite des projets </titre> </œuvre>... <auteur noauteur= A03 refœuvre= O001 O002 O005 O017 > <nom> J.Gabay </nom> </auteur> <auteur noauteur= A07 refœuvre= O002 O024 O054 > <nom> B.Gebre </nom> </auteur> </catalogues> On peut accéder aux éléments dans les deux sens. Mais on ne peut pas accepter beaucoup de références.

XML et références Pour que le document reste lisible avec un nombre important de références, on peut créer un élément pour les références. Le schéma conceptuel pourrait se présenter par la DTD (2ème possibilité) <!ELEMENT catalogues (œuvre auteur lienœuvre)*> <!ELEMENT œuvre (titre)> <!ATTLIST œuvre noœuvre ID #required > <!ATTLIST œuvre refauteur IDREFS #required > <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (nom, lienœuvre+)> <!ATTLIST auteur noauteur ID #required > <!ELEMENT nom (#PCDATA)> <!ELEMENT lienœuvre empty> <!ATTLIST lienœuvre refœuvre IDREF #required > dont un document valide pourrait être <catalogues> <œuvre noœuvre= O002 refauteur= A03 A07 > <titre> La conduite des projets </titre> </œuvre>... <auteur noauteur= A03 > <nom> J.Gabay </nom> <lienœuvre refœuvre= O001 /> <lienœuvre refœuvre= O002 /> <lienœuvre refœuvre= O005 /> <lienœuvre refœuvre= O017 /> </auteur> </catalogues> On peut accéder aux éléments dans les deux sens et on peut écrire plus clairement de nombreuses références.

XML et références Mais on peut aussi simuler exactement le modèle relationnel. Le schéma conceptuel pourrait se présenter par la DTD (3ème possibilité) <!ELEMENT catalogues (œuvre auteur ecrit)*> <!ELEMENT œuvre (titre)> <!ATTLIST œuvre noœuvre ID #required > <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (nom)> <!ATTLIST auteur noauteur ID #required > <!ELEMENT nom (#PCDATA)> <!ELEMENT ecrit empty> <!ATTLIST ecrit refauteur IDREF #required > <!ATTLIST ecrit refœuvre IDREF #required > dont un document valide pourrait être <catalogues> <œuvre noœuvre= O002 > <titre> La conduite des projets </titre> </œuvre>... <auteur noauteur= A03 > <nom> J.Gabay </nom> </auteur> <auteur noauteur= A07 > <nom> B.Gebre </nom> </auteur>... <ecrit refauteur= A03 refœuvre= O002 / > <ecrit refauteur= A07 refœuvre= O002 / >... </catalogues>