1 / 23 J. Dubois – Lycée Eiffel – DIJON
Les bases de données à partir d'un cas concret :
Etude du logiciel de blog dotclear
2 / 23 J. Dubois – Lycée Eiffel – DIJON
Table des matières
1. Présentation ................................................................................................................3
Démarche .......................................................................................................................3
Architecture d'un blog.....................................................................................................3
Que se passe-t-il lorsque l'on accède à la page d'accueil du blog ?...................................4
2. Cahier des charges ......................................................................................................4
3. Schéma conceptuel .....................................................................................................5
Vocabulaire ....................................................................................................................5
Démarche pour construire un schéma conceptuel ............................................................5
Application pour le blog .................................................................................................6
4. Schéma logique relationnel .........................................................................................8
Passage du schéma conceptuel au schéma relationnel......................................................8
Intégrité référentielle et formes normales ........................................................................9
Vocabulaire d'un schéma logique..................................................................................10
Schéma logique relationnel résultant.............................................................................10
5. Analyse à posteriori de dotclear ................................................................................11
Le schéma relationnel ...................................................................................................11
Les différents types de clé utilisés.................................................................................11
Les utilisateurs selon dotclear .......................................................................................12
La gestion des multi-catégories.....................................................................................13
6. Introduction à SQL ...................................................................................................14
Initialisation avant l'installation de dotclear...................................................................14
Création des tables........................................................................................................14
Insertion d'un enregistrement dans une table .................................................................15
Requête de traitement des données................................................................................15
7. PHP : un langage de scripts pour le web....................................................................16
En général.....................................................................................................................16
Avec Dotclear...............................................................................................................17
8. Références ................................................................................................................18
Logiciels de blog téléchargeables..................................................................................18
Documentation base de données, SQL, MySQL............................................................18
Documentation spécifique à dotclear.............................................................................18
Documents divers .........................................................................................................18
9. Annexes....................................................................................................................18
TP1 : Prise en main de Dotclear............................................................................................19
TD : découverte du langage SQL..........................................................................................21
TP2 : Personnalisation de Dotclear .......................................................................................22
3 / 23 J. Dubois – Lycée Eiffel – DIJON
Bases de données : étude d'un moteur de Blog1
1. Présentation
Démarche
On va étudier le moteur de blog Dotclear (v1.2.7.1), qui fonctionne avec PHP et MySQL.
Pour cela, on va faire une analyse à priori de la base de données nécessaire pour une telle
application :
définition du cahier des charges (point de vue utilisateur)
schéma conceptuel
schéma logique relationnel
Ensuite, nous étudierons à posteriori la base de données de Dotclear et analyserons les
différences avec notre schéma logique.
Enfin, nous verrons le langage SQL pour interroger notre base de données et comment
l'insérer dans du code PHP pour ajouter des fonctionnalités à notre blog et créer un plugin
d'administration.
Architecture d'un blog
Un blog est un site web qui propose des articles rédigés par un ou plusieurs auteurs, les
articles sont stockés dans une base de données. Le site web a deux interfaces bien distinctes :
Front-end : interface pour le visiteur (qui vient lire les articles et les commenter)
Back-end : interface pour le dacteur (qui vient écrire des articles et organiser l'architecture
du site)
Lorsque l'on crée un Blog gratuit chez skyrock, blogger ou over-blog (pour ne citer qu'eux, il
en existe plein d'autres), on a toujours accès à ces deux interfaces. L'objectif de ce papier est
de voir ce qu'il y a derrière. On va utiliser dotclear, mais on aurait pu travailler sur WordPress
ou WordPress MU (version multi-blog de WordPress, plus compliqué pour une première
approche de l'architecture d'un blog). Ces applications sont écrites en PHP et utilisent MySQL
comme base de données.
Dans un premier temps, nous allons donc voir l'architecture de notre blog.
On peut voir sur le schéma ci-dessus les deux interfaces ainsi que l'hébergement. Il faut
considérer la représentation comme : "plus on est loin du centre, moins on a de privilèges sur
1 Ce cours est destiné à des élèves de BTS IRIS. Je ne suis expert ni en base de données, ni en PHP, je dois juste
former mes élèves pour qu'ils puissent lire une structure de base de données et l'interroger pour pouvoir en
extraire les informations voulues … Ce cours s'est déroulé sur 12 h de cours et 24 h de TP.
Serveur WEB
+
Serveur BdD
Back-end
Front-end
4 / 23 J. Dubois – Lycée Eiffel – DIJON
les données". Ainsi, un visiteur n'a accès qu'au cercle bleu (le Front-end), un auteur a accès
aux deux cercles bleu et vert (Front-end et Back-end) et l'hébergeur a accès au cercle orange
qui contient tous les scripts ainsi que le contenu de notre blog. C'est la structure des données
et l'organisation de l'application chez l'hébergeur qui seront traitées dans ce cours.
Nous utiliserons WAMP comme assise pour dotclear, le serveur Web sera donc Apache
(v2.0.59), la Base de données MySQL (v5.0.27) et nous aurons à disposition l'interpréteur
PHP (v5.2.0).
Que se passe-t-il lorsque l'on accède à la page d'accueil du blog ?
Dans la barre de navigation, on accède à notre blog par http://127.0.0.1/blog/index.php.
1 : Requête auprès du serveur Web
2 : le serveur détecte que la page contient du code
PHP, il fait appel à l'interpréteur PHP pour le traiter
3 : L'interpréteur PHP interroge la base de données
pour avoir les informations nécessaires à la construction
de la page.
4 : la base de données renvoie les réponses aux
différentes requêtes.
5 : L'interpréteur PHP met en forme les informations
venant de la base de données et génère une page HTML.
6 : Le serveur Web sert notre requête d'origine en nous
renvoyant la page HTML générée par PHP.
2. Cahier des charges2
Un blog est un type de site web composé d'articles (posts) accessibles chacun séparément par
une URL (Unique Ressource Location).
Chaque post a un titre, une date d'édition, une date de publication, un auteur, un corps. Les
articles sont référencés dans des catégories (il faudra étudier le besoin d'avoir une ou
plusieurs catégories par article, cela interviendra dans les différents schémas). Le clic sur une
catégorie permet de lister tous les articles de cette catégorie.
Plusieurs personnes peuvent publier sur le même blog avec des permissions différentes
(administrateur, rédacteur), L'identification d'un utilisateur se fera par login et mot de passe.
Tout lecteur peut réagir à un article en ajoutant un commentaire (composé de titre, date,
auteur, corps, adresse du site de l'auteur, mail de l'auteur).
Un lecteur intéressé par un article de votre blog peut le citer sur son blog et indiquer ce lien
sur votre blog (comme ça les autres lecteurs peuvent aller voir les sites qui parlent de ce post)
: c'est un trackback (composé de titre, date, auteur, corps, URL de l'article distant).
Enfin, on souhaite pouvoir avoir sur notre blog une liste de liens vers les sites que l'on aime et
que l'on veut faire partager à nos lecteurs (ça s'appelle un blogroll).
2 Il me semble judicieux d'établir ce cahier des charges lors d'un travail collectif. Celui présenté n'est qu'un
exemple, support pour ce qui suit, qui doit très facilement être adapté en fonction de la réflexion des élèves.
http://127.0.0.1/blog/index.php
Base de données
Serveur Web
Interpréteur PHP
1
6
2 5
3 4
5 / 23 J. Dubois – Lycée Eiffel – DIJON
Quelques questions n'ont pas encore de réponses (nous ne répondrons pas à toutes) :
Faut-il gérer plusieurs blogs dans la même base de données ?
Plusieurs personnes (enregistrées) peuvent-elle contribuer au même article ? (= un article
peut-il avoir plusieurs auteurs ?)
Un article peut-il appartenir à plusieurs catégories ?
Il faudra étudier attentivement ces questions lors de la conception de nos schémas. Dans un
premier temps, nous répondrons NON à ces 3 questions.
3. Schéma conceptuel
Vocabulaire
Ce schéma met en relation les différentes entités identifiées. Il est indépendant de tout
système informatique et prévu pour traduire le cahier des charges dans un formalisme
graphique compréhensible par le client et le développeur.
Une entité est finie comme un objet clairement identifiable qui peut être concret (livre,
personne, …) ou abstrait (compte en banque). Elle est décrite par des attributs
(caractéristiques ou propriétés) parmi lesquelles on définit un identifiant composé d'un ou
plusieurs attributs (qui lèvera toute ambiguïté sur les différents enregistrements) par exemple,
un numéro INSEE identifie de manière unique une personne française. Ce numéro n'est plus
une clé valide dès que des étrangers sont enregistrés dans la base.
Une relation représente les liens présents entre les différentes entités. Les relations n'ont pas
d'existence propre. Une relation peut concerner une ou plusieurs entités (s'il n'y a qu'une
entité, la relation est dite réflexive par exemple la relation Mariage sur une table Personne est
réflexive). Le nombre d'entités entrant dans une relation s'appelle la dimension de cette
relation. (une relation de dimension deux est binaire, de dimension 3 est ternaire, …)
On appelle cardinalité le nombre de participation d'une entité à une relation.
Si l'on considère la relation entre une facture et un produit, les différentes cardinalités
correspondent au cas suivant :
1 – 1 : On ne peut indiquer qu'un produit par facture (pas très pratique), un produit ne peut
apparaître que sur une seule facture
1 – N : On peut avoir un produit sur plusieurs factures, mais on est toujours limité à une
seule ligne produit par facture (ou inversement)
M – N : On a plusieurs lignes par facture et un produit peut être facturé plusieurs fois.
Démarche pour construire un schéma conceptuel3
a) Déterminer la liste des entités
b) Pour toutes les entités, définir la liste des attributs puis déterminer l'identifiant
c) Déterminer les relations entre les entités
d) Pour chaque relation, définir les attributs propres à la relation (date, prix, par
exemple), vérifier la dimension et définir la cardinalité.
e) Valider le schéma auprès des utilisateurs
C'est cette démarche que nous allons suivre pour construire notre schéma. Nous auto-
validerons notre schéma puisque nous sommes les utilisateurs de blogs…
Sauf exception, un schéma conceptuel ne doit pas d'information redondante (par exemple,
attributs calculables à partir d'autres attributs dans la base, transitivité, …).
Un même cahier des charges peut conduire à plusieurs schémas conceptuels différents.
3 Cette démarche est tirée du livre 'Conception de bases de données relationnelles en pratique'. Après l'avoir
testée en cours, je pense qu'il est plus simple de définir les relations entre les entités avant d'établir la liste des
attributs des entités. Cela permet de mieux repérer tous les points d'accroches possibles (entités et relations) pour
un attribut.
1 / 23 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !