Download - INF02 – BD4
INF02 – BD4 Organisa(on des ressources
& accès aux ressources Benoit Habert
B. Habert 2012 Organiser les ressources - BD4 2
BD4
• Interagir avec une base de données en mode client-serveur
• Modélisation conceptuelle – Ex. Annoter les requêtes sur une base de
données – Notions et méthodes
• Les scripts nécessaires sont fournis dans l’archive (explications dans README.txt)
Interagir avec une BD
• Principe général – Formulaire permettant à l’utilisateur de
transmettre (GET/POST) un environnement • couples <nom de variable><valeur> sous forme de
chaînes – Utilisation de l’environnement transmis pour
• Questionner une base de données • Utiliser le résultat (table) pour transmettre des
informations à l’utilisateur
B. Habert 2012 Organiser les ressources - BD4 3
Interagir avec une BD
• Exemple – Formulaire pour saisir une expression
régulière (regexp) qui est transmise (clic sur le bouton Validation)
– L’expression régulière donne naissance à une requête sur la table fiches_depart dont le résultat est affiché. Le clic sur le bouton Validation ramène au formulaire de saisie.
B. Habert 2012 Organiser les ressources - BD4 4
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 5
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 6
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 7
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 8
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 9
Interagir avec une BD
• API MySQL/PHP – Se connecter à un serveur de BD comme
utilisateur identifié : mysql_connect – retourne une connexion
– Accéder à une BD : mysql_select_db – Envoyer une requête à une BD : mysql_query
retourne une variable résultat – Renvoyer le message de la dernière erreur
rencontrée : mysql_error
B. Habert 2012 Organiser les ressources - BD4 10
Interagir avec une BD
• API MySQL/PHP (suite) – Récupération d’une ligne de résultat comme
un objet : mysql_fetch_object – Récupération d’une ligne de résultat comme
un tableau : mysql_fetch_row
B. Habert 2012 Organiser les ressources - BD4 11
Interagir avec une BD
B. Habert 2012 Organiser les ressources - BD4 12
Modélisation conceptuelle
• Niveaux – Schéma conceptuel, indépendant de toute réalisation
informatique – Schéma logique propre à un type de base de
données (ici les SGBDR) – Niveau physique (fichiers, index)
• Le schéma conceptuel décrit les entités principales de la base, leurs relations – Modèle entité-relation ou encore modèle entité-
association (Chen 1976)
B. Habert 2012 Organiser les ressources - BD4 13
Modélisation conceptuelle
B. Habert 2012 Organiser les ressources - BD4 14
Modélisation conceptuelle
• Entité : « réalité » (« étant ») ayant une identité propre (distinguable des autres entités du même type) – Attributs (caractéristiques / propriétés)
• Type : caractères, nombre, date… • Obligatoire ou facultatif (ex. texte)
– Un attribut (ou une combinaison d’attributs) distingue une entité des autres du même type
B. Habert 2012 Organiser les ressources - BD4 15
Modélisation conceptuelle
• Relations : liens existant entre les entités – Ont un nom et éventuellement des attributs – Nécessaires ou facultatives
• Dimension (ou degré) d’une relation : nombre d’entités impliquées – Dimension 1 : lien entre 2 entités du même type (ex.
Mariage pour Personne) – Dimension 2 : cas le plus fréquent – Dimension 3 : une infirmière a écrit une fiche sur un
bébé à un moment donné
B. Habert 2012 Organiser les ressources - BD4 16
Modélisation conceptuelle
• Cardinalité maximale : nombre de participations d’une entité à une relation – 1-1 : la signalétique d’une fiche correspond à un texte – 1-n : une infirmière rédige plusieurs fiches, une fiche
est rédigée par une seule infirmière – n-n : une infirmière soigne plusieurs bébés, un bébé
est soigné par plusieurs infirmières • Cardinalité minimale et maximale
– Minimale : le nombre minimal de participation d’une entité à une relation
– Maximale B. Habert 2012 Organiser les ressources - BD4 17
Modélisation conceptuelle
• Méthodes – Phrases Sujet Verbe Complément
• Sujet et Complément: entités • Verbe : relation
• Représentation graphique – Entités : rectangles, avec soulignement des
attributs servant d’identifiants – Relations : ellipses avec les cardinalités sur
les liens B. Habert 2012 Organiser les ressources - BD4 18
Modélisation conceptuelle
• Démarche – Liste d’entités – Pour chaque (type d’) entité
• Liste de ses attributs • Identifiants
• Relations entre entités – Pour chaque relation
• Attributs • Dimension (binaire, ternaire) • Cardinalités
B. Habert 2012 Organiser les ressources - BD4 19
Modélisation conceptuelle
• Démarche (suite) – Vérifier le schéma – Valider avec les utilisateurs
B. Habert 2012 Organiser les ressources - BD4 20
Modélisation conceptuelle
• Une infirmière rédige une ou plusieurs fiche(s) : 1-n
• Une fiche est rédigée par 1 infirmière au moins et au plus : 1-1
B. Habert 2012 Organiser les ressources - BD4 21
Modélisation conceptuelle
B. Habert 2012 Organiser les ressources - BD4 22
Modélisation conceptuelle
• On a souhaité disposer de – différents « états » du texte – Une version « éclatée » = un « mot » par ligne
• Cela conduit à des entités – Fiche de départ – Fiche lemmatisée – Fiche « éclatée » – …
B. Habert 2012 Organiser les ressources - BD4 23
Modélisation conceptuelle
B. Habert 2012 Organiser les ressources - BD4 24
Modélisation conceptuelle
B. Habert 2012 Organiser les ressources - BD4 25
Modélisation conceptuelle
• Minimiser le schéma – Ne pas inclure des attributs
« déductibles » (âge d’arrivée dans le service de néo-natalité)
B. Habert 2012 Organiser les ressources - BD4 26
Modélisation conceptuelle
• Eprouver un schéma conceptuel (Hainaut 2002) – Les noms sont-ils significatifs, cohérents,
clairs ? • Entité
– A-t-elle des attributs ? Sinon, est-ce normal ? – Existe-t-il au moins un identifiant ? Les
composants de cet identifiant sont-ils obligatoires ?
B. Habert 2012 Organiser les ressources - BD4 27
Modélisation conceptuelle
• Attribut – Le domaine de valeur, le caractère obligatoire
ou facultatif de l’attribut sont-ils précisés ? • Association
– Sa cardinalité maximale est-elle correcte ? – Sa cardinalité minimale est-elle fournie ?
B. Habert 2012 Organiser les ressources - BD4 28
Modélisation conceptuelle
• Passage du schéma conceptuel à celui de la BD – Introduction d’attributs matérialisant les
relations et permettant les jointures entre tables (clés étrangères)
B. Habert 2012 Organiser les ressources - BD4 29
Modélisation conceptuelle
• À une association 1−n entre une entité A et une entité B correspond le lien entre la clé primaire de la table A’ dérivée de l’entité A et une clé étrangère, attribut de la table B’ dérivée de l’entité B.
• Ex. infirmieres.id et signaletique_fiches.id_infirmiere
B. Habert 2012 Organiser les ressources - BD4 30
Modélisation conceptuelle
• Une association plusieurs-à-plusieurs (n−n) suppose d’une part de créer une table pour chacune des entités en relation et de créer d’autre part une table pour la relation elle-même.
• Ex. la relation (non modélisée dans Prema) <infirmière> soigner <bébé> supposerait une table soigner avec id_infirmiere et id_bebe (= projection sans doublon de ces 2 colonnes dans signaletique_fiches)
B. Habert 2012 Organiser les ressources - BD4 31
Modélisation conceptuelle
• Une association 1−1 suppose l’ajout dans l’une des deux tables mises en relation, d’un attribut qui corresponde à l’identifiant de l’autre table et qui serve de clé étrangère donc par rapport à cette table
• Ex. signaletique_fiches et fiches_depart
B. Habert 2012 Organiser les ressources - BD4 32
Modélisation conceptuelle
• Houdé O. (1992). Catégorisation et développement cognitif. PUF.
La catégorisation est la conduite adaptative fondamentale par laquelle les systèmes cognitifs, biologiques ou artificiels, « découpent » le réel physique et social. Sa fonction normative est la création de classes d'équivalence nécessaires à la transition du continu au discret. • Desproges P. (1990). Fonds de tiroir. Le Seuil.
Dans notre édition d’hier, une légère erreur technique nous a fait imprimer les noms des champignons vénéneux sous les photos des champignons comestibles, et vice-versa. Nos lecteurs survivants auront rectifié d’eux-mêmes.
B. Habert 2012 Organiser les ressources - BD4 33
Modélisation conceptuelle
• Définir le schéma conceptuel d’un domaine est un « art », pas une science (pas de critères objectifs pour l’évaluer)
• La modélisation dépend du point de vue, des besoins (cf. les informations sur les infirmières : mère ou pas ; sur les bébés : âge des parents, situations sociales, naissance « précieuse » ou pas…)
B. Habert 2012 Organiser les ressources - BD4 34
Normalisations
• Dans le modèle relationnel, normalisations « en cascade » (chaque forme normale suppose la précédente réalisée) – Décomposer les attributs (valeurs atomiques) – Eviter les dépendances fonctionnelles (donc
les redondances)
B. Habert 2012 Organiser les ressources - BD4 35
Normalisations
• 1ère forme normale : les attributs contiennent des valeurs atomiques
• Ex. occ_prema / fiches_depart (ou les autres états du texte)
B. Habert 2012 Organiser les ressources - BD4 36
Normalisations
• Deuxième forme normale : un attribut qui ne fait pas partie de l’identifiant d’une table ne doit pas dépendre d’une partie de cet identifiant.
B. Habert 2012 Organiser les ressources - BD4 37
Normalisations
• Troisième forme normale : aucun attribut n’appartenant pas à une clé ne doit dépendre d’un autre attribut n’appartenant pas non plus à une clé. On crée une nouvelle table avec la correspondance entre les attributs et on enlève l’attribut correspondant de la table de départ.
• Ex. si l’on a associé une classe de position à la position du bébé dans chaque fiche (figure transparent suivant)
B. Habert 2012 Organiser les ressources - BD4 38
Normalisations
B. Habert 2012 Organiser les ressources - BD4 39
Annoter : OAC
• Open Annotation Consortium : http://www.openannotation.org
• Ressources utilisées – Core Data Model 2012
http://www.openannotation.org/spec/core/ – Workshop de 2011 dont
http://www.openannotation.org/documents/rs_hvds_oac_intro.pdf
B. Habert 2012 Organiser les ressources - BD4 40
Annoter : OAC
• Enjeux : une activité central du travail intellectuel (scholarship)
• Les annotations ne sont pas partageables (cumulables, discutables) – Liées à une architecture particulière – Absence de « référentiels » partagés (par
exemple annoter un fragment d’ouvrage indépendamment de la matérialité des éditions et exemplaires utilisés)
B. Habert 2012 Organiser les ressources - BD4 41
Annoter : OAC • Une annotation
– A un auteur (humain, « automate ») – Est créée à un moment donné – Son corps (body) porte sur quelque chose
(target / cible) • Corps et cible peuvent relever de
n’importe quel médium : texte, image… • Annotation et corps peuvent avoir des
auteurs et des temps de création distincts B. Habert 2012 Organiser les ressources - BD4 42
Annoter : OAC
• Renvoi à la cible – Stabilité cf. Toile – Ex. la Une d’un journal – Dépend du type
– Texte : fragment – Image : zone – Vidéo : début et fin, piste – Jeux de données – …
• Cibles multiples : ex. comparaison de 2 cibles
B. Habert 2012 Organiser les ressources - BD4 43
Annoter : OAC
• Impact du temps – Annotation « hors temps » – Annotation « synchrone » : cible, corps et
annotation ont même date de création – Annotation non synchrone
B. Habert 2012 Organiser les ressources - BD4 44
Annoter : OAC
• Choix d’OAC – Pas un protocole (mode de communication
homologué) – Un modèle
B. Habert 2012 Organiser les ressources - BD4 45
Annoter : OAC
• Une annotation : conjonction de 2 triplets – Annotation k aPourCible Cible k – Annotation k aPourCorps Corps m
• Triplets supplémentaires – Annotation k créationLe Date n – Annotation k aPourAuteur Personne o – …
• Récursivité (typage : réponse, commentaire…) – Annotation k aPourCible Annotation p
B. Habert 2012 Organiser les ressources - BD4 46
Annoter : Prema
• Particularités de l’application à Prématurés – La cible première de l’annotation est
éphémère : une requête (« phrase SQL ») et son résultat (une table, éventuellement vide)
• 2 approches – Mémoriser la table résultat – Mémoriser la requête (et pouvoir la rejouer)
– Comment repérer les instances d’une « seule et même requête » ?
B. Habert 2012 Organiser les ressources - BD4 47
Annoter : Prema
• Une personne produit une annotation • Une annotation porte sur une requête/une
annotation • Cardinalités
– une personne produit n annotations, une annotation est produite par une personne
– Une requête reçoit n annotations, une annotation porte sur une requête
B. Habert 2012 Organiser les ressources - BD4 48
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 49
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 50
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 51
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 52
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 53
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 54
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 55
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 56
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 57
Annoter : Prema
B. Habert 2012 Organiser les ressources - BD4 58