# Cours SQL and PHP
## Échange Client Serveur
**L'environnement client-serveur** désigne un mode de communication à travers un réseau
entre plusieurs programmes ou logiciels : l'un, qualifié de client, envoie des requêtes ;
l'autre ou les autres, qualifiés de serveurs, attendent les requêtes des clients et y
répondent. Par extension, le client désigne également l'ordinateur sur lequel est exécuté le
logiciel client, et le serveur, l'ordinateur sur lequel est exécuté le logiciel serveur.

En général, les serveurs sont des ordinateurs dédiés au logiciel serveur qu'ils abritent, et
dotés de capacités supérieures à celles des ordinateurs personnels en termes de
puissance de calcul, d'entrées-sorties et de connexions réseau. Les clients sont souvent
des ordinateurs personnels ou des appareils individuels (téléphone, tablette), mais pas
systématiquement. Un serveur peut répondre aux requêtes d'un grand nombre de clients.
## Stockage et base de données
**Une base de données** est la pièce centrale des dispositifs informatiques qui servent à la
collecte, le stockage, le travail et l'utilisation d'informations. Le dispositif comporte un
système de gestion de base de données **(SGBD)**: un logiciel moteur qui manipule la base
de données et dirige l'accès à son contenu. De tels dispositifs - souvent appelés base de
données - comportent également des logiciels applicatifs, et un ensemble de règles
relatives à l'accès et l'utilisation des informations.

Le langage pour modéliser une BDD est L'SQL(Structured Query Language). Ce
langage sert essentiellement à créer les bases et les tables qui structurent l'information.
Exemple ci-dessus : BDD « biblio » qui contient une table « livres ». Les champs
contenus dans cette table sont : id, titre, auteur, année, genre, etat. Couplé à un langage
coté serveur comme PHP(PHP: Hypertext Preprocessor), les données d'une base peut
être affichées coté client. Souvent cela a lieu lorsque le client envoie une requête au serveur pour recevoir une information. Un exemple concret, lorsque on fait une recherche
sur Google, le moteur de recherche affiche des informations qui s'approchent de votre
recherche. Ces informations sont stockées dans des nombreuses BDD de Google.

## Modèle-vue-contrôleur(MVC)
Le modèle-vue-contrôleur (en abrégé MVC, de l'anglais model-view-controller), tout
comme les modèle-vue-présentation ou Présentation, abstraction, contrôle, est un modèle
destiné à répondre aux besoins des applications interactives en séparant les
problématiques liées aux différents composants au sein de leur architecture respective.
Ce paradigme regroupe les fonctions nécessaires en trois catégories :
1. un modèle (modèle de données),
2. une vue (présentation, interface utilisateur)
3. un contrôleur (logique de contrôle, gestion des événements, synchronisation)
