inf02 – bd4

58
INF02 – BD4 Organisa(on des ressources & accès aux ressources Benoit Habert

Upload: others

Post on 18-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF02 – BD4

INF02 – BD4 Organisa(on  des  ressources  

&  accès  aux  ressources Benoit Habert

Page 2: INF02 – BD4

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)

Page 3: INF02 – BD4

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

Page 4: INF02 – BD4

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

Page 5: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 5

Page 6: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 6

Page 7: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 7

Page 8: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 8

Page 9: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 9

Page 10: INF02 – BD4

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

Page 11: INF02 – BD4

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

Page 12: INF02 – BD4

Interagir avec une BD

B. Habert 2012 Organiser les ressources - BD4 12

Page 13: INF02 – BD4

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

Page 14: INF02 – BD4

Modélisation conceptuelle

B. Habert 2012 Organiser les ressources - BD4 14

Page 15: INF02 – BD4

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

Page 16: INF02 – BD4

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

Page 17: INF02 – BD4

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

Page 18: INF02 – BD4

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

Page 19: INF02 – BD4

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

Page 20: INF02 – BD4

Modélisation conceptuelle

•  Démarche (suite) – Vérifier le schéma – Valider avec les utilisateurs

B. Habert 2012 Organiser les ressources - BD4 20

Page 21: INF02 – BD4

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

Page 22: INF02 – BD4

Modélisation conceptuelle

B. Habert 2012 Organiser les ressources - BD4 22

Page 23: INF02 – BD4

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

Page 24: INF02 – BD4

Modélisation conceptuelle

B. Habert 2012 Organiser les ressources - BD4 24

Page 25: INF02 – BD4

Modélisation conceptuelle

B. Habert 2012 Organiser les ressources - BD4 25

Page 26: INF02 – BD4

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

Page 27: INF02 – BD4

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

Page 28: INF02 – BD4

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

Page 29: INF02 – BD4

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

Page 30: INF02 – BD4

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

Page 31: INF02 – BD4

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

Page 32: INF02 – BD4

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

Page 33: INF02 – BD4

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

Page 34: INF02 – BD4

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

Page 35: INF02 – BD4

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

Page 36: INF02 – BD4

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

Page 37: INF02 – BD4

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

Page 38: INF02 – BD4

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

Page 39: INF02 – BD4

Normalisations

B. Habert 2012 Organiser les ressources - BD4 39

Page 40: INF02 – BD4

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

Page 41: INF02 – BD4

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

Page 42: INF02 – BD4

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

Page 43: INF02 – BD4

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

Page 44: INF02 – BD4

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

Page 45: INF02 – BD4

Annoter : OAC

•  Choix d’OAC – Pas un protocole (mode de communication

homologué) – Un modèle

B. Habert 2012 Organiser les ressources - BD4 45

Page 46: INF02 – BD4

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

Page 47: INF02 – BD4

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

Page 48: INF02 – BD4

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

Page 49: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 49

Page 50: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 50

Page 51: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 51

Page 52: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 52

Page 53: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 53

Page 54: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 54

Page 55: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 55

Page 56: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 56

Page 57: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 57

Page 58: INF02 – BD4

Annoter : Prema

B. Habert 2012 Organiser les ressources - BD4 58