Base De Donnees

Vous êtes ici : >> SQL / Base de données
Temps d'étude : 30 min. Niveau : Moyen.
Tags : Base de données, cours sql
Pré-Requis
fléche Maîtrise de l’ordinateur, connaissance Windows et Internet.
fléche Culture Web et Informatique
Objectifs
fléche Modéliser, concevoir et administrer une base de données.
fléche Maitriser le langage SQL pour réaliser des requêtes afin de manipuler ou intervenir sur les données.

A quoi sert une base de données ?

Une base de données (en anglais : Database, abrégé DB) est utile dans le cadre d'un projet informatique pour conserver des informations en mémoire.

A l'intérieur de la base de données, les informations sont classées, structurées et regroupées généralement par sujet.

Dans la grande majorité des cas une base de données est gérée par un logiciel moteur qui la manipule : un SGBD (Système de Gestion de Base de Données).

Lorsque nous déposons un message sur un forum et que 2 semaines plus tard le message est toujours présent. ce n'est pas magique, c'est naturellement parce que le message a été sauvegardé dans une base de données.

Les bases de données sont incontournables dans tous les domaines... et même hors du web.

Nous sommes tous enregistrés dans des Bases De Données sans forcément s'en préoccuper (ex: securité sociale, banque, etc.).

Acronyme

MCD = Modèle Conceptuel de Données
Le modèle conceptuel de données nous permet de nous fournir un plan de notre base de données avant de la créer.
(Tout comme pour une maison : Avant de la construire, on établit un plan de construction).

SGBD = Systéme de Gestion de Base de Données
Le SGBD permet d'accueillir, d'exploiter et de faire fonctionner les bases de données (moteur).
Nous utiliserons Mysql (d'autres SGBD existe : Oracle, Sql Server, PostgreSQL, etc.).

BDD = Base De Données
La base de données représente l'emplacement des données sauvegardées

SQL = Structured Query Langage
Le langage de requête SQL nous permet d'échanger des informations avec la base de données
Une fois que les informations ont été enregistrées, il est important de pouvoir les gérer (ajout, modification, suppression, consultation).
Toutes ces actions de gestion et manipulation passeront par une requête SQL.


Contexte et utilisation d'une Base De Données Relationnelle


Avant de rentrer dans le vif du sujet il est bien important de comprendre à quoi sert le langage SQL sur les sites web pour que vous soyez interessés pour le reste du cours.

- 1 - Exemple sur l'utilisation des bases de données avec un espace membre

Voici notre page d'inscription :
page d'inscription

Le code HTML nous permet de créer un formulaire d'inscription (on y déclare les balises <form> <label> <input>, etc).

Le code CSS va nous permettre de mettre en forme et styliser le formulaire (couleur, positionnement).

En revanche, nous ne pourrons pas récupérer les saisies à l'aide des langages HTML et CSS. En effet, HTML et CSS sont des langages uniquement de conception qui servent à concevoir la page web (et non pas engager des traitements sur les informations).

Nous aurons besoin d'un langage de programmation type PHP (d'autres langages existent pour récupérer des saisies d'un formulaire...).

Dans le cadre de cette page d'inscription, lorsque l'internaute cliquera sur le bouton inscription, nous devrons récupérer les saisies postées par l'internaute via le langage de traitement PHP.

Ensuite, nous allons formuler une requête SQL de type INSERTION pour enregistrer le compte du nouvel internaute dans la table membre de notre base de données.

Pourquoi enregistrons nous le membre ? et bien pour qu'on puisse retrouver sa trace s'il souhaite se connecter !

Généralement si un internaute fait la démarche de s'inscrire, c'est pour pouvoir se connecter au site web par la suite.

Voici notre table membre (dans notre base de données) :
table membre dans la base de données

Une table est un emplacement dans la base de données relatif à un sujet précis.

Une table est toujours composée de colonnes (aussi appelées champ). Cela permet de classer les informations de manière structurée (nom, prénom, etc.)

* Les mots de passe ont été insrits en clair pour la compréhension de cet exemple, ils sont généralement cryptés.

Nous pouvons voir en position 2, la présence de LaMarie.

Le numéro idMembre s'incrémente seul (Auto-Increment).

Voici notre page de connexion :
page de connexion

Lorsque l'internaute cliquera sur le bouton de connexion, il va falloir formuler une requête SQL qui vérifiera la présence du compte de l'internaute dans la base de données.

Nous aurons besoin de formuler une requête de SELECTION. Ceci nous permettra de comparer les informations que l'on reçoit (via le formulaire) avec les informations que nous avions déjà enregistrées en base de données.

Si les informations concordent, nous donnerons une sorte de « feu vert » pour valider la connexion. Sinon « feu rouge » l'accouplement pseudo / mot de passe ne sera pas bon.

Nous pouvons conclure par le fait qu'un espace membre ne peut pas être créé sans base de données. Sans BDD, pas d'espace membre fiable !


- 2 - Exemple sur l'utilisation des bases de données - Boutique

Voici un catalogue dans une boutique :
catalogue boutique

Les produits ne sont pas écrits directement (aussi appelé en « dur ») dans le code HTML, il s'agit d'un affichage dynamique et donc les produits proviennent d'une base de données.

Pour afficher dans une page web les produits contenus d'une base de données il faut formuler une requête de SELECTION.

Nous allons cliquer sur le produit 3 tshirt rouge pour accèder à la fiche détaillée.

Voici la fiche produit du tshirt rouge :
boutique fiche produit

Vous imaginez bien que si on considère qu'il y a 800 produits au sein de notre boutique, il n'y aura pas 800 fiches produits du type produit1.php, produit2.php, produit3.php, ..., produit800.php, c'est impensable ! la gestion serait impossible pusique cela évolue en permanence !

Il y aura qu'un seul fichier produit.php, un fichier modèle (template) qui pourra potentiellement accueillir les 800 produits.

Pour cela nous ne demanderons pas produit.php mais produit.php?id=1 ou produit.php?id=3, cela nous permettra de récupérer le numéro id et de formuler une requête SQL allant récupérer les informations sur le produit n° 3.

Conclusion : Sans base de données, pas de boutique ecommerce !




- 3 - Exemple sur l'utilisation des bases de données - BackOffice

Voici un système de gestion de contenu (SGC) :

front et back

fléche Le saviez-vous ?
La plupart du temps il n'y a pas 1 site web mais 2 !


fléche 1 site côté FRONT (c'est le site auquel tous les internautes ont accès)

fléche 1 site côté BACK (c'est l'interface de gestion pour le propriétaire / administrateur du site).

Lorsque le propriétaire / administrateur souhaite enregistrer un produit, écrire un article, effectuer un réglage, cela ce passe du côté BackOffice et s'enregistre dans la base de données.

Lorsque l'internaute souhaite afficher le site (côté FrontOffice), cela récupère les informations (produits, articles, réglages, textes, ...) contenues à l'intérieur de la base de données.

Le BackOffice ne communique pas directement avec le FrontOffice, la base de données sert d'intermédiaire pour communiquer (c'est une sorte d'entrepot où sont stockées les données).

fléche Conclusion
Sans base de données pas d'interface BackOffice possible, pas de CMS non plus, car ils fonctionnent tous avec une BDD (pas de wordpress, drupal, etc).



Au vu de ces 3 exemples, vous comprendrez aisément que les bases de données et le langage SQL sont incontournables dans le monde du Web.

Auriez-vous des idées de site web AVEC base de données ?

  • ecommerce
  • site d'annonce
  • site de mise en relation
  • forum
  • blog
  • site vitrine d'informations
  • etc.

Tous les sites, et même les sites vitrines ont besoin d'une base de données. (et oui les clients veulent être autonomes et s'assister d'une interface de gestion pour modifier les textes et images du site).

Auriez-vous des idées de site web SANS base de données ?

Est-ce que cela existe vraiment ? Oui certainement pour les anciens sites web, les sites statiques dont le contenu ne change jamais, ou encore les sites de présentation des développeurs eux mêmes, qui ont assez de connaissance et de patience pour pouvoir se permettre d'effectuer des modifications directement dans le code source. C'est une minorité absolue. Certainement moins de 5 %.