Lap2 Print
Lap2 Print
Objectifs 3
Introduction 4
I - Cours 5
1. Applications et bases de données .............................................................................5
1.1. Rappels ..............................................................................................................................................5
1.2. Exemples d'accès à une BD en écriture par un langage de programmation ..................................5
1.3. Exemples d'accès à une BD en lecture par un langage de programmation ....................................7
II - Exercice 13
1. Exercice : Recensement II ........................................................................................13
III - Complément 16
1. Exercice : Tester un environnement LAPP sur son ordinateur personnel .............16
Contenus annexes 19
Glossaire 33
Abréviations 34
Index 35
2 Stéphane Crozat
Objectifs
Stéphane Crozat 3
Introduction
Les applications de BD sont aujourd'hui généralement réalisées selon des architectures réseaux.
L'explosion d'Internet de son côté a favorisé le langage HTML pour implémenter les IHM et a vu la
naissance de langages adaptés pour implémenter la couche applicative côté serveur, tels que PHP.
4 Stéphane Crozat
Cours I
Rappel
Rappel
Stéphane Crozat 5
Cours
Remarque
6 Stéphane Crozat
Cours
1 function fSelect () {
2 // Connexion à la base de données
3 $vHost = 'foo.fr';
4 $vPort = '5432';
5 $vData = 'myDatabase';
6 $vUser = 'me';
7 $vPass = 'secret';
8 $vConn = new PDO("pgsql:host=$vHost;port=$vPort;dbname=$vData",$vUser,$vPass);
9 // Écriture, préparation et exécution de la requête
10 $vSql = 'SELECT a, b FROM t';
11 $vResultSet = $vConn->prepare($vSql);
12 $vResultSet->execute();
13 // Traitement du résultat
14 while ($vRow = $vResultSet->fetch(PDO::FETCH_ASSOC)) {
15 echo $vRow['a'];
16 echo ' ';
17 echo $vRow['b'];
18 }
19 // Clôture de la connexion
20 $vConn = null;
21 }
1 Sub fSelect()
2 vSql = "select a, b from t"
3 Set vRs = CurrentDb.CreateQueryDef("", vSql).OpenRecordset
4 Do While Not vRs.EOF
5 Debug.Print vRs.Fields(0)
6 Debug.Print vRs.Fields(1)
7 vRs.MoveNext
8 Loop
9 End Sub
1 class fSelect {
2 public static void main(String[] args) {
3 try {
4 // Connexion
5 DriverManager.registerDriver (new OracleDriver());
6 Connection vCon =
DriverManager.getConnection("jdbc:oracle:thin:nf17/nf17@localhost:1521:test");
7 // Exécution de la requête
8 Statement vSt = vCon.createStatement();
9 ResultSet vRs = vSt.executeQuery("SELECT a, b FROM t");
10 // Affichage du résultat
11 while(vRs.next()){
12 String vA = vRs.getString(1);
13 String vB = vRs.getString(2);
14 System.out.println(vA + " - " + vB));
15 }
16 }
17 catch (Exception e) {
18 e.printStackTrace();
19 }
Stéphane Crozat 7
Cours
20 }
21 }
2. Architecture Web
Objectifs
Comprendre les principes des architectures d'application de bases de données (en particulier 3-tier et
web)
8 Stéphane Crozat
Cours
Stéphane Crozat 9
Cours
Remarque
Étant donné l'emploi massif du terme d'architecture à 3 niveaux, celui-ci peut parfois désigner aussi les
architectures suivantes :
Partage d'application entre client, serveur intermédiaire, et serveur d'entreprise
Partage d'application entre client, base de données intermédiaire, et base de données
d'entreprise
Dans l'architecture à 3 niveaux, chaque serveur (niveaux 1 et 2) effectue une tâche (un service)
spécialisée. Ainsi, un serveur peut utiliser les services d'un ou plusieurs autres serveurs afin de fournir
son propre service. Par conséquence, l'architecture à trois niveaux est potentiellement une
architecture à N niveaux.
10 Stéphane Crozat
Cours
Fondamental
Un serveur web sert à rendre accessibles des pages web sur internet via le protocole HTTP.
Un serveur web est un logiciel capable de répondre à des requêtes HTTP, c'est à dire de renvoyer des
données (par exemple une page HTML), en réponse à des demandes écrites en HTTP (par exemple une
requête GET).
Synonyme : serveur HTTP
Un client web est un logiciel capable d'envoyer des requêtes HTTP à un serveur web et d'afficher les
résultats. Les navigateurs web sont les clients web les plus répandus.
Remarque
Exemple
Apache : logiciel libre fondation Apache, la moitié des sites web au monde
Nginx : logiciel libre BSD, en croissance
IIS : logiciel propriétaire Microso
Stéphane Crozat 11
Cours
Définition Définition
12 Stéphane Crozat
Exercice II
1. Exercice : Recensement II
[45 min]
Soit le fichier CSV suivant :
1 num;nom;population
2 01;Ain;529378
3 02;Aisne;552320
4 03;Allier;357110
5 04;Alpes-de-Haute-Provence;144809
6 05;Hautes-Alpes;126636
7 06;Alpes-Maritimes;1022710
8 07;Ardèche;294522
9 08;Ardennes;299166
10 09;Ariège;142834
11 10;Aube;301388
Question 1
Établir un modèle relationnel et un code SQL permettant d'accueillir le contenu de ce fichier (on
nommera la table dpt1).
Question 2
Implémenter ce modèle sous Postgres et importer le fichier CSV.
Indice :
Importer un fichier CSV (cf. p.22)
Question 3
En quelle forme normale est le modèle ? Normalisez le en 3NF (on nommera la table dpt2).
Question 4
Écrivez et exécuter la requête SQL permettant de migrer dpt1 dans dpt2.
Indice :
1 INSERT INTO dpt2 (...)
2 SELECT ...
3 FROM dpt1
Indice :
Utiliser la fonction SUBSTR.
Indice :
Si vous avez défini #num comme entier, vous aurez besoin de la fonction CAST(madonnée AS
montype)
Stéphane Crozat 13
Exercice
Question 5
Compléter le programme HTML/PHP permettant d'afficher le contenu de la table normalisée, tel que
présentée ci-dessous.
14 Stéphane Crozat
Exercice
26 echo "<td>$vResult[__________]</td>";
27 echo '</tr>';
28 }
29 ?>
30 </table>
31 <ul>
32 <?php
33 $vSql ='______________________________________________________________';
34 $vSt = $vConn->prepare($vSql);
35 $vSt->execute();
36 $vResult = $vSt->fetch(PDO::FETCH_ASSOC);
37 echo "<li>Département le plus peuplé : <b>$vResult[__________]</b></li>";
38
39 $vSql ='______________________________________________________________';
40 $vSt = $vConn->prepare($vSql);
41 $vSt->execute();
42 $vResult = $vSt->fetch(PDO::FETCH_ASSOC);
43 echo "<li>Département le moins peuplé : <b>$vResult[__________]</b></li>";
44 ?>
45 </ul>
46 </body>
47 </html>
Indice :
Méthode générale d'accès à une BD en écriture par un langage de programmation (cf. p.20)
Stéphane Crozat 15
Complément III
Rappels Linux
Utiliser Linux (cf. p.25)
Commandes de bases sous Linux : cd, ls, mkdir, rm, find, cat, nano... (cf. p.26)
Rappels Postgres
Présentation de PostgreSQL (cf. p.28)
Installation de PostgreSQL (cf. p.29)
Le client textuel "psql" (cf. p.30)
PostgreSQL sous Linux (cf. p.23)
Serveur web
L'objectif de cette partie est d'avoir un serveur web capable de distribuer des pages HTML.
Installez le serveur web Apache.
1 sudo apt-get install apache2
Tester l'accès au serveur Web en entrant l'adresse web dans un navigateur : http://localhost
Question 1
L'installation par défaut du serveur web permet de servir les fichiers situés dans le dossier
/var/www/html.
Déposez un fichier HTML de votre choix dans ce dossier et accédez-y via votre navigateur Web.
Indice :
Un exemple de fichier XHTML (cf. p.31)
Indice :
Si votre fichier s'appelle example.html et qu'il se trouve à la racine du serveur web
/var/www/html vous y accéderez par l'adresse http://localhost/example.html.
PHP
L'objectif de cette partie est d'avoir un interpréteur PHP en mode développement, c'est à dire qui affiche
les erreurs quand il y en a.
Installez l'interpréteur PHP pour Apache.
1 sudo apt-get install php
16 Stéphane Crozat
Complément
Question 2
Créez le fichier example.php ci-après et déposez-le sur votre serveur web. Faites un test d'accès.
1 <?php
2 echo "Hello world";
3 ?>
Question 3
Créez et testez le fichier test.php ci-après. Ce fichier permet de visualiser la configuration PHP du
serveur.
1 <?php
2 phpinfo();
3 ?>
Question 4
Par défaut l'installation d'un interpréteur PHP est en mode production et il n'affiche pas les erreurs. Il faut
donc changer la configuration pour passer en mode développement.
1. À l'aide du fichier test.php précédent trouvez l'endroit où est stocké sur votre ordinateur le
fichier de configuration php.ini.
Par exemple : /etc/php/7.0/apache2/php.ini
2. Éditez ce fichier en tant que root: sudo nano php.ini
3. Remplacez le paramètre display_errors = Off par display_errors = On
4. Relancez le serveur web : sudo service apache2 reload
Question 5
Il est également nécessaire d'installer un complément à PHP pour qu'il se connecte à PostgreSQL.
1 sudo apt-get install php-pgsql
2 sudo service apache2 reload
PostgreSQL
L'objectif de cette partie est d'avoir une base PostgreSQL prête à être utilisée par un programme PHP.
Question 6
Connectez vous en tant qu'utilisateur postgres (su postgres).
Créez un utilisateur test et une base test. Connectez-vous à la base.
1 psql -c "CREATE USER test WITH ENCRYPTED PASSWORD 'test'";
2 psql -c "CREATE DATABASE test WITH OWNER test";
3 psql --host=localhost --dbname=test --username=test
Stéphane Crozat 17
Complément
L'objectif de cette partie est d'exécuter un programme PHP capable de lire le contenu de la table
medicament de notre base de données test.
Question 7
Créez le fichier select.php suivant (avec l'éditeur gedit par exemple) et déposez-le sur votre serveur
web. Accédez-y avec un client web pour exécuter le programme.
1 <?php
2
3 /** Connexion **/
4 $connexion = new PDO('pgsql:host=localhost;port=5432;dbname=test', 'test', 'test');
5
6 /** Préparation et exécution de la requête **/
7 $sql = 'SELECT nom FROM medicament';
8 $resultset = $connexion->prepare($sql);
9 $resultset->execute();
10
11 /** Traitement du résultat **/
12 while ($row = $resultset->fetch(PDO::FETCH_ASSOC)) {
13 echo $row['nom'];
14 echo ' ';
15 }
16
17 /** Déconnexion **/
18 $connexion=null;
19
20 ?>
L'objectif de cette partie est d'exécuter un programme PHP capable de modifier le contenu de la table
medicament de notre base de données test.
Question 8
Créez le fichier insert.php et testez-le (exécutez-le au moins deux fois).
1 <?php
2
3 /** Connexion **/
4 $connexion = new PDO('pgsql:host=localhost;port=5432;dbname=test', 'test', 'test');
5
6 /** Préparation et exécution de la requête **/
7 $sql = 'INSERT INTO medicament (nom) VALUES (\'Nouveau\')';
8 $result = $connexion->prepare($sql);
9 $result->execute();
10
11 /** Traitement du résultat **/
12 if ($result) {
13 echo 'Nouveau inséré';
14 }
15 else {
16 echo 'Erreur lors de l\'insertion';
17 }
18
19 /** Déconnexion **/
20 $connexion=null;
21
22 ?>
Question 9
Vérifiez que l'insertion a fonctionné en appelant select.php.
18 Stéphane Crozat
Contenus annexes
Définition
Fondamental
Stéphane Crozat 19
Contenus annexes
BD :
SQL pour les tables et les vues
PL/SQL (Oracle), PL/pgSQL (PostgreSQL) pour les triggers et les fonctions stockées
Formulaires
PHP, HTML (balise <form>), HTTP/POST (Web)
Formulaires Access
Input Python
États
PHP , HTML (<table>), HTTP/GET (Web)
États Access
Print Python
Contrôle :
Python, PHP, JavaScript, Java, C++, Macros & VBA (Access)
Méthode
Pseudo-code Méthode
20 Stéphane Crozat
Contenus annexes
Lorsqu'un programme exécute une requête dans une BD, il récupère un pointeur sur un résultat de
requête permettant de parcourir le tableau résultant de l'exécution de la requête ligne par ligne.
En effet :
Une requête SQL retourne toujours un tableau (même si parfois il n'a qu'une ligne et une
colonne), c'est le fondement du modèle relationnel
En général il n'est pas souhaitable que ce tableau soit transmis directement sous la forme d'une
structure en mémoire (array), car le résultat d'une requête peut être très volumineux (et ne
pas tenir en mémoire primaire)
La solution générale est donc que la BD fournisse le résultat ligne par ligne
Le pointeur permet de :
Retourner la ligne pointée sous la forme d'un vecteur (tableau à une seule ligne)
Passer à la ligne suivante
Savoir si l'on a atteint la fin du tableau (ligne N)
Stéphane Crozat 21
Contenus annexes
Méthode
Pseudo-code Méthode
Syntaxe
1 \copy nom_table (att1, att2, ...) FROM 'fichier.csv' WITH CSV DELIMITER ';' QUOTE
'"'
WITH introduit les options de l'import
CSV indique qu'il s'agit d'un fichier CSV
DELIMITER 'c' indique que le caractère c est utilisé comme délimiteur de champ (en général
; ou ,)
QUOTE 'c' indique que le caractère c est utilisé comme délimiteur de chaîne (en général ")
Remarque
22 Stéphane Crozat
Contenus annexes
Remarque
Ajouter l'option HEADER après WITH CSV si le fichier CSV contient une ligne s'entête.
1 \copy nom_table (att1, att2, ...) FROM 'fichier.csv' WITH CSV HEADER DELIMITER ';'
QUOTE '"'
Complément
1 #!/bin/sh
2 psql -c "DROP DATABASE mydb"
3 psql -c "CREATE DATABASE mydb"
4 psql -c "GRANT ALL PRIVILEGES ON DATABASE mydb TO user1"
6. Fichier CSV
CSV∗ est un format informatique permettant de stocker des données tabulaires dans un fichier texte.
Chaque ligne du fichier correspond à une ligne du tableau. Les valeurs de chaque colonne du tableau
sont séparées par un caractère de séparation, en général une virgule ou un point-virgule. Chaque
ligne est terminée par un caractère de fin de ligne (line break).
Stéphane Crozat 23
Contenus annexes
Toutes les lignes contiennent obligatoirement le même nombre de valeurs (donc le même nombre de
caractères de séparation). Les valeurs vides doivent être exprimées par deux caractères de séparation
contigus.
La taille du tableau est le nombre de lignes multiplié par le nombre de valeurs dans une ligne.
La première ligne du fichier peut être utilisée pour exprimer le nom des colonnes.
Syntaxe
1 [NomColonne1;NomColonne2;...;NomColonneN]
2 ValeurColonne1;ValeurColonne2;...;ValeurColonneN
3 ValeurColonne1;ValeurColonne2;...;ValeurColonneN
4 ...
1 Pierre;Dupont;20;UTC;NF17
2 Pierre;Dupont;20;UTC;NF26
3 Paul;Durand;21;UTC;NF17
4 Jacques;Dumoulin;21;UTC;NF29
1 Prenom;Nom;Age;Ecole;UV
2 Pierre;Dupont;20;UTC;NF17
3 Pierre;Dupont;20;UTC;NF26
4 Paul;Durand;21;UTC;NF17
5 Jacques;Dumoulin;21;UTC;NF29
1 Jacques;Dumoulin;;UTC;NF29
Variations... Attention
La syntaxe des fichiers CSV n'est pas complètement standardisée, aussi des variations peuvent exister :
Les chaînes de caractères peuvent être protégées par des guillemets (les guillemets s'expriment
alors avec un double guillemet).
Le caractère de séparation des nombres décimaux peut être le point ou la virgule (si c'est la
virgule, le caractère de séparation doit être différent)
...
Un des problème les plus importants reste l'encodage des caractères qui n'est pas spécifié dans le
fichier et peut donc être source de problèmes, lors de changement d'OS∗ typiquement.
24 Stéphane Crozat
Contenus annexes
Les fichiers CSV sont très utilisés en BD∗ pour échanger les données d'une table (export/import).
Les SGBD∗ contiennent généralement des utilitaires permettant d'exporter une table ou un résultat de
requête sous la forme d'un fichier CSV, en spécifiant un certain nombre de paramètres (caractère de
séparation de valeur, caractère de fin de ligne, présence ou non d'une ligne de définition des noms des
colonnes, etc.). De même ils proposent des utilitaires permettant d'importer un fichier CSV dans une
table (en spécifiant les mêmes paramètres), voire de créer directement une table à partir du fichier CSV
(quand les noms des colonnes sont présents).
Les fichiers à largeur de colonne fixe n'utilisent pas de séparateur de colonne, mais imposent le même
nombre de caractères pour chaque cellule. L'avantage est de ne pas avoir à spécifier le caractère de
séparation, l'inconvénient est la taille de fichier supérieure si les valeurs ne font pas toutes la même
largeur.
XML Complément
Les fichiers XML∗ tendent de plus en plus à remplacer les fichiers CSV car ils permettent d'être
beaucoup plus expressifs sur le schéma d'origine. Ils sont également plus standards (encodage
spécifié, principe de séparation des données par les tags, etc.). Leur seul inconvénient est d'être plus
verbeux et donc plus volumineux.
Certains SGBD, comme Oracle, permettent de créer des tables dites externes, qui autorisent de créer
un schéma de table directement sur un fichier CSV, permettant ainsi un accès SQL standard à un
fichier CSV, sans nécessité de l'importer d'abord dans une table.
7. Utiliser Linux
Pour utiliser Linux, il y a plusieurs possibilité :
Avoir accès à un PC sur lequel Linux est déjà installé (il suffit de disposer d'un compte utilisateur
sur cet ordinateur).
Installer Linux sur son ordinateur :
En téléchargeant en installant une distribution (il faut savoir préalablement graver un DVD
ou créer une clé USB bootable) ;
En commandant un DVD ou une clé USB (coût de quelques euros) ;
En participant à une install party (organisées par des associations, elles permettent de se
faire aider dans le processus d'installation et la prise en main initiale de l'environnement).
Installer Linux sur son ordinateur en double-boot (à coté de son OS initial, on choisit au
démarrage quel système on utilise).
Installer Linux sur son ordinateur dans une machine virtuelle (par exemple : on peut utiliser
Linux dans un fenêtre Windows).
Installer Linux sur une clé en version live USB persistant.
Stéphane Crozat 25
Contenus annexes
http://xubuntu.fr/
Installer Ubuntu dans une machine virtuelle sous VirtualBox sous Windows Exemple
https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/installez-linux-dans-une-
machine-virtuelle
8. Commandes de bases sous Linux : cd, ls, mkdir, rm, find, cat, nano...
Le manuel !
La commande man permet d'afficher le manuel d'une autre commande.
Par exemple man ls permet d'afficher les option de la commande ls, et man man est l'affichage du
manuel du manuel.
Gestion de fichiers
pwd savoir où je me situe dans l'arborescence
cd aller quelque part dans l'arborescence
cd /home aller dans /home (déplacement absolu)
cd me aller dans le répertoire me fils de mon répertoire courant (déplacement relatif)
cd .. remonter dans l'arborescence (déplacement vers son père)
cd ~ permet de retourner dans son dossier initial (retour au domicile)
ls voir les fichiers et dossiers dans mon dossier actuel (sauf les fichiers cachés commençant par
un .)
ls -al voir tous les fichiers et dossiers dans mon dossier actuel avec leurs informations
associées (vue détaillée)
touch file créer un fichier file
rm file supprimer le fichier file dans mon dossier actuel
mkdir dir créer un nouveau dossier dir dans mon dossier actuel
rm * supprimer tous les fichiers de mon dossier actuel
rm -R dir supprimer le dossier dir dans mon dossier actuel
cat file afficher le contenu du fichier file
more afficher le contenu du fichier file en mode paginé
less afficher le contenu du fichier file en mode défilement
26 Stéphane Crozat
Contenus annexes
Édition de fichiers
nano file
Éditeur dans le terminal (simple d'utilisation)
Les commandes sont indiqués en bas de l'éditeur
gedit file &
Éditeur graphique
Utiliser une extension de fichier standard ou le menu Affichage > Mode de
coloration pour obtenir une visualisation adapté au type de fichier édité (par exemple
.sql pour un fichier SQL)
Rechercher un fichier
find / -name '*test*' permet de rechercher un fichier contenant la chaîne test sur tout
le disque
find ~ -name '*test*' permet de rechercher un fichier contenant la chaîne test dans
son espace personnel
Complément
su Syntaxe
Pour se connecter en tant qu'utilisateur root (et pouvoir faire les opérations qui lui sont réservées) : su
root.
Le mot de passe de utilisateur root est demandé par le système.
sudo Syntaxe
Pour exécuter une commande en tant que root sans changer d'user : sudo commande.
Le mot de passe de utilisateur lançant sudo est demandé par le système.
Seuls certains utilisateurs appelés sudoers ont le droit d'exécuter la commande sudo.
Pour ajouter un utilisateur dans la liste des sudoers, excéuté en tant que root (ou via un autre
utilisateur sudoers) :
adduser user sudo (en tant que root)
sudo adduser user sudo (avec un utilisateur déjà membre des sudoers)
Stéphane Crozat 27
Contenus annexes
Sous Ubuntu l'utilisateur root n'est pas actif et il n'est donc pas possible d'exécuter la commande su
root. On peut en revanche utiliser sudo, l'utilisateur créé à l'installation est membre des sudoers.
Pour activer le compte root, il faut lui attribuer un mot de passe avec la commande : sudo passwd
root.
1 sudo apt-get install virtualbox lftp cups-pdf pdftk dia gimp git
Pour mettre le système à jour, exécuter les deux commandes suivantes en tant que root ou via sudo :
1. sudo apt-get update
2. sudo apt-get upgrade
www.postgresql.org/docs1
en français : docs.postgresqlfr.org2
1
https://www.postgresql.org/docs/current
2
https://docs.postgresqlfr.org/current/
28 Stéphane Crozat
Contenus annexes
Fonctionnement général
PostgreSQL comme la grande majorité des SGBD est un logiciel client∗-serveur∗. Il faut donc pour
l'utiliser un serveur (programme postgresql sous Linux) et un client.
Il existe plusieurs clients, les deux plus utilisés sont le client textuel psql et le client graphique PgAdmin
III.
Complément
www.postgresql.org1
www.postgresql.fr2
Attention
Nous présentons ici une installation a minima de PostgreSQL uniquement à des fins de test et
d'apprentissage, et pour un usage local. Pour mettre en production une base de données PostgreSQL
sur le réseau, il faut suivre des directives supplémentaires, notamment pour assurer la sécurité du
système, sa sauvegarde...
Ces thèmes ne sont pas abordés dans le cadre de ce cours.
PostgreSQL est à l'origine une base de données conçue pour Unix, son installation et son
fonctionnement sont possibles aujourd'hui sur plusieurs OS, mais Linux reste son environnement de
prédilection. C'est l'architecture PostgreSQL sur Linux qui est étudiée ici.
Fondamental
https://www.postgresql.org/download/
1 sudo su postgres
2 psql
1
http://www.postgresql.org/
2
http://www.postgresql.fr/
Stéphane Crozat 29
Contenus annexes
sudo su postgres permet de devenir l'utilisateur Linux postgres qui a été créé par
l'installation
psql permet d'établir la connexion par défaut entre le client psql et le serveur postgresql en
utilisant l'utilisateur Linux et une base de données du même nom, donc ici postgres.
Le client connecté affiche son numéro de version, propose de taper help et une invite de
commande postgres=#.
\l permet d'afficher la liste des base de données existantes (on retrouve la base postgres à
laquelle on est connecté).
\q permet de quitter.
Complément
https://doc.ubuntu-fr.org/postgresql
La commande show all permet de voir tous les paramètres du serveur PostgreSQL.
Par exemple data_directory permet de connaître le répertoire de stockage utilisé sur le disque
dur.
psql Définition
Connexion Méthode
Cette commande psql essaye de se connecter sur la machine tuxa.sme.utc avec un utilisateur
PostgreSQL nommé nf17a001 à la base de données dbnf17a001.
Un serveur PostgreSQL doit tourner sur la machine distante tuxa.sme.utc (sur le port standard
5432).
Un utilisateur nf17a001 doit exister sur PostgreSQL et avoir un mot de passe défini.
Une base de données dbnf17a001 doit exister sur PostgreSQL et l'utilisateur nf17a001 doit avoir
le droit d'y accéder.
Le mot de passe de l'utilisateur nf17a001 sera demandé.
1
https://www.postgresql.org/download/windows/
30 Stéphane Crozat
Contenus annexes
Une instruction SQL peut s'écrire sur une ou plusieurs lignes, le retour chariot n'a pas
d'incidence sur la requête, c'est le ; qui marque la fin de l'instruction SQL et provoque son exécution.
1 dbnf17p015=> SELECT *
2 dbnf17p015-> FROM matable
3 dbnf17p015-> ;
On notera dans psql la différence entre les caractères => et -> selon que l'on a ou pas effectué un
retour chariot.
\q : Quitter psql
Complément
http://www.postgresql.org/docs/current/static/app-psql.html
Corps Exemple
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <title>Exemple de fichier XHTML</title>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5 </head>
6 <body>
7 <p>Hello world !</p>
8 </body>
9 </html>
Stéphane Crozat 31
Contenus annexes
Rappel
Tester l'accès au serveur Web en entrant l'adresse web dans un navigateur : http://localhost
L'installation par défaut du serveur web permet de servir les fichiers situés dans le dossier
/var/www/html.
Complément
http://httpd.apache.org/docs
http://httpd.apache.org/docs/current/getting-started.html
Nginx Complément
32 Stéphane Crozat
Glossaire
Client
Un client est un programme informatique qui a pour fonction d'envoyer des requêtes à un autre
programme informatique, appelé serveur, d'attendre le résultat de cette requête et de traiter le
résultat de la requête. Notons qu'un programme peut-être client vis à vis d'un programme et
serveur vis à vis d'un autre. On ne prend pas ici le terme client dans son acception matérielle, qui
signifie alors un ordinateur qui a pour fonction d'héberger des programmes clients.
NoSQL
NoSQL désigne une famille de systèmes de gestion de base de données (SGBD) qui s'écarte du
paradigme classique des bases relationnelles. (Wikipédia)
RAID
La technologie RAID permet de repartir de l'information à stocker sur plusieurs "petits" disques, au
lieu de la concentrer sur un seul "gros" disque. Cette technologie permet donc d'améliorer les
performances (les accès disques pouvant être parallélisés) et d'améliorer la sûreté (en repartissant
les risques de crash et en jouant sur une redondance des données). Il existe plusieurs types
d'architecture RAID, privilégiant ou combinant la parallélisation et la redondance.
Serveur
Un serveur est un programme informatique qui a pour fonction de recevoir des requêtes d'un autre
programme, appelé client, de traiter ces requêtes et de renvoyer en retour une réponse. Notons
qu'un programme peut-être serveur vis à vis d'un programme et client vis à vis d'un autre. On ne
prend pas ici le terme serveur dans son acception matérielle, qui signifie alors un ordinateur qui a
pour fonction d'héberger des programmes serveurs.
Stéphane Crozat 33
Abréviations
BD : Base de Données
CSV : Comma Separated Values
E-A : Entité-Association
IHM : Interaction Homme Machine ou Interface Homme Machine
OS : Operating Système (Système d'Exploitation)
R : Relationnel
SGBD : Système de Gestion de Bases de Données
SQL : Structured Query Language
UML : Unified Modeling Language
XML : eXtensible Markup Language
34 Stéphane Crozat
Index
3-tier....................................... 9, 12
Architecture.................. 8, 9, 11, 12
Client.................................. 8, 9, 12
HTTP ..........................................11
Serveur......................... 8, 9, 11, 12
Web ...................................... 11, 12
Stéphane Crozat 35