Actualites��Archives
Diffusez votre communiqué de presse
�Inscription | Plan du site | 26� visiteurs actifs �
��
���� A la Une
� Actualit�s
� Dossiers
� Coin Technique
� Agenda des salons
� Outils Web

���� R�f�rencement
� R�f�rencement professionnel
� Liens commerciaux
� Devis r�f�rencement

���� Diagnostic
� Popularit� Site Web
� Positionnement Moteur
� WebPage Alerte
� Positionnement Google

���� Archives
� S�lection
� Exp�rience qui parle
� Internet quotidien
� Tous les dossiers

���� Services
� Mise en conformit� de site
� H�bergement
� Communiqu�s de Presse
� Contenu �ditorial
� Webmastering

���� Contact
� Nous contacter
� La protection des donn�es personnelles

���� Technique
� Merise

���� Login
���
����
Inscription

Mot de passe oubli�?

�� Sondage
Les points que vous souhaitez voir traiter � l'avenir ?
4%Actualit�
29%Documentation
52%Exemples de sources
3%Liste de liens
11%Revue logiciels

�� Sondage
Vous vous int�ressez plut�t �
77%Programmation
10%Syst�me
9%Logiciel
5%Mat�riel

�� Sondage
votre niveau technique ?
15%Amateur
44%D�butant
33%Professionnel
7%Expert

���� Rechercher
����
���

�Coin Technique


Merise: 6�me Partie
L'actualit� nous le prouve une fois encore : ce n'est pas parce que quelque chose est nouveau que les principes fondamentaux ne sont plus valables. De m�me qu'une entreprise est tributaire de son chiffre d'affaire et de sa rentabilit�, un d�veloppement informatique se juge selon un minimum de r�gles �l�mentaires. On pourrait d�j� citer : analyse, coh�rence de conception, modularit�, lisibilit�, et utilisation cens�e des ressources mat�rielles et logicielles. Dans cette optique, construire une belle base de donn�e bien pens�e, coh�rente, fonctionnelle, est d�j� un premier pas. L'�tape suivante est de savoir comment la remplir, et surtout comment lire les donn�es qu'elle contient. Car les requ�tes SQL pour interroger la base peuvent �tre tr�s gourmandes en ressources syst�mes et temps machine. Alors autant les formuler correctement afin de ne pas surcharger le serveur et donc d'afficher les pages rapidement. Vous pensez conna�tre la fonction "SELECT", la plus simple et la plus utilis� ? Bien, alors v�rifions cela...

SECTEURS NOUVEAUX ? FIASCOS IDIOTS...

Apr�s avoir v�cu plusieurs ann�es euphoriques, certaines Start Up Internet sont actuellement � la peine. Car m�me si le march� des nouvelles technologies est fabuleux, les perspectives de croissances ph�nom�nales, les investisseurs ont perdu de vue la notions la plus fondamentale de l'�conomie : une entreprise doit �tre rentable. Et bizarrement, ce point �tait absent de tr�s nombreux Business Plan, Businness Plan ayant permis � ne nombreuses soci�t�s de lever des sommes astronomiques. Certaines d'entre elles n'existaient et ne communiquaient que pour plaire � leurs investisseurs, et n'avaient m�me aucune activit� commerciale.

La r�action des financiers est impitoyable : la majorit� des investisseurs stoppent maintenant leurs investissements, et demandent � leurs entreprises d'�tre imm�diatement rentables. Tout de suite. Et, comme nous sommes de bon montons de Panurges, les valeurs boursi�res baissent, des projets tr�s prometteurs ne trouvent plus preneurs, et les d�cideurs affichent une frilosit� exag�r�e. On oublie que de nombreuses entreprises font d�j� d'�normes b�n�fices, que le commerce �lectronique affiche de tr�s bons chiffres pour l'an 2000, et que ceux ci vont tripler dans les deux ans. Que nous sommes en train de transposer tout notre mod�le �conomique, notre fa�on de travailler, et d'organiser diff�remment notre soci�t�. Et surtout que c'est un sacr� chantier qui va g�n�rer une immense activit�...

METIERS NOUVEAUX ? SOYONS PROS !!!

L'analogie avec le d�veloppement est �vidente : Internet a permis � tout un chacun d'ouvrir un espace chez un h�bergeur, et � l'aide de livres devenus tr�s accessibles et facilement disponibles de commencer ses propres r�alisations. Intellectuellement, culturellement, ce fut une nouveaut� fabuleuse. Dans le m�me temps, les informaticiens traditionnels n'ont pas toujours pris au s�rieux ces nouvelles techniques "avec des images qui bougent", et que "tout le monde touche". C'est pour cela que nous trouvons beaucoup d'autodidactes dans les �quipes techniques Web. M�me si les informaticiens issus de formations classiques sont maintenant de plus en plus pr�sent au sein des �quipes de d�veloppements Internet, il est important de professionnaliser les m�thodes de travail. De cesser l'amateurisme, de r�apprendre l'analyse et le g�nie logiciel. En bref, de devenir hyper professionnel afin de ne pas faire l'erreur de se d�cr�dibiliser quand viendra pour nous aussi l'heure du bilan technique du travail r�alis� ces derni�res ann�es. Car nous aussi, nous serons jug�s, en quelque sorte, quand nos d�veloppements seront repris pour �tre adapt�s aux nouveaux besoins de l'entreprise, ou convertis aux technologies futures :

Ce n'est pas parce qu'un domaine est nouveau, que les principes fondamentaux ne sont plus valables.

LANGAGE SQL : SYNTAXE D'EXTRACTION DES DONNEES

Le langage SQL (Structured Query Langage, ou Langage d'Interrogation Structur�) date de la fin des ann�s 70. (voir article Un peu d'histoire des SGBD sur le web et ailleurs du 13 Novembre 2000). Nous allons d�j� commencer par voir comment lire les donn�es, et ce que cela signifie r�ellement.

Appuyons-nous sur ce sch�ma de base :



Syntaxe de la commande SELECT :
SELECT [ALL | DISTINCT ] liste de colonnes
FROM Table_1, table_2, ... , Table_n
WHERE ......
GROUP BY ......
HAVING ........
ORDER BY .......
COMPUTE .......


Exemples simples :
SELECT NOM, PRENOM FROM CLIENT
renvoie le contenu des colonnes NOM et PRENOM de la table CLIENT.

SELECT NOM as lastname, PRENOM as firstname FROM CLIENT
renverra le m�me contenu, mais en renommant le nom des colonnes de sorties.

SELECT LIBELLE, PRIXUNITAIRE * 0.85 as prixpromo FROM ARTICLE
affichera le nom des articles et le prix diminu� de 15%. Il est donc possible d'effectuer des calculs directement au niveau de la base de donn�e, ce qui �vitera de faire appel � une partie de script sp�cialement d�velopp�e pour l'occasion.

D�tail des clauses optionnelles :

La clause WHERE exprime les conditions de recherches.
La clause GROUP BY groupe les r�sultats par crit�res.
La clause HAVING permet de restreindre les r�sultats en imposant une propri�t�.
La clause ORDER BY trie les r�sultats suivant un crit�re de qualification.
La clause COMPUTE g�n�re des statistiques.


LANGAGE SQL : LA CLAUSE WHERE

Les conditions de recherches peuvent faire r�f�rence � des colonnes qui ne sont pas incluse dans la liste de s�lection. Elle est tr�s utilis�e pour d�finir ce que l'on app�le des jointures :
SELECT CLIENT.NOM, CLIENT.PRENOM, FACTURE.DATE
FROM CLIENT, FACTURE
WHERE CLIENT.ID_CLIENT=FACTURE.ID_CLIENT
renverra le nom et le pr�nom des clients ayant des factures, ainsi que la/les date des factures correspondantes. Il est important de faire une jointure sur ID_CLIENT dans la clause Where, pour indiquer au moteur SQL que la liaison entre les deux tables s'effectue sur cette colonne 'commune'. (Nous reviendrons dans un prochain article sur le fonctionnement d'un moteur SQL).

Nous avons plusieurs outils pour les types de condition :

Op�rateur de comparaison : = , > , < , >= , <=, <>
SELECT LIBELLE, PRIXUNITAIRE
FROM ARTICLE
WHERE PRIXUNITAIRE <>'100'
renverra les articles dont le prix est diff�rent de 100. Il est important de mettre les c�tes ' ' dans la clause Where, car sinon le moteur SQL interpr�tera 100 comme �tant une colonne.

Intervalles : BETWEEN , NOT BETWEEN
SELECT LIBELLE, PRIXUNITAIRE
FROM ARTICLE
WHERE PRIXUNITAIRE BETWEEN '100' AND '200'
renverra les articles dont le prix est compris entre 100 et 200.

Listes : IN , NOT IN
SELECT LIBELLE, PRIXUNITAIRE
FROM ARTICLE
WHERE PRIXUNITAIRE IN ('100','200','300)
renverra les articles dont le prix est soit de 100, soit de 200, soit de 300.

Correspondances de cha�nes : LIKE , NOT LIKE
Quelques jokers :

  • % joker : toute cha�ne de caract�re
  • - joker simple: un caract�re, n'importe lequel
  • [ ] un caract�re de l'intervalle ou de l'ensemble sp�cifi�
  • [^ ] un caract�re en dehors de l'intervalle ou de l'ensemble sp�cifi�

SELECT LIBELLE, PRIXUNITAIRE
FROM ARTICLE
WHERE LIBELLE LIKE '%teu%'
renverra les articles dont le nom contient 'teu' (pelleteuse, par exemple....)

Valeurs inconnues : IS NULL, IS NOT NULL
SELECT LIBELLE, PRIXUNITAIRE
FROM ARTICLE
WHERE PRIXUNITAIRE IS NOT NULL
renverra les articles dont le prix existera, c'est � dire aura une valeur correspondante dans la table.
ATTENTION !!! En sql, NULL ne signifie pas 0 ,il repr�sente une valeur ind�termin�e, il signifie 'rien', comme l'ensemble vide en Math�matique.

Combinaisons : AND , OR
SELECT LIBELLE, QUANTITE, DATE
FROM ARTICLE , CONTIENT, FACTURE
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE=FACTURE.ID_FACTURE
AND PRIXUNITAIRE NOT BETWEEN '100' AND '200'
OR PRIXUNITAIRE='150'
renverra les articles, leur quantit� par facture, et la date, et ceci pour les articles dont le prix n'est pas compris entre '100' et '200' ou est �gal � '150'.

LANGAGE SQL : LES AGREGATS

Les fonctions d'agr�gats calculent des valeurs � partir des donn�es d'une colonne particuli�re. Les op�rateurs d'agr�gat sont : sum (somme), avg (moyenne), max (le plus grand), min (le plus petit), et count (le nombre d'enregistrements retourn�s).
SELECT sum(PRIXUNITAIRE)
FROM ARTICLE, CONTIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE='123456'
renverra le montant total de la facture '123456'

SELECT avg(PRIXUNITAIRE)
FROM ARTICLE, CONTIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE='123456'
renverra le prix moyens par article de la facture '123456'

SELECT max(PRIXUNITAIRE)
FROM ARTICLE, CONTIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE='123456'
renverra le plus grand prix de la facture '123456'

SELECT min(PRIXUNITAIRE)
FROM ARTICLE, CONTIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE='123456'
renverra le plus petit prix de la facture '123456'

SELECT count(PRIXUNITAIRE)
FROM ARTICLE, CONTIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE='123456'
renverra le nombres d'articles figurants sur la facture '123456'

LANGAGE SQL : LA CLAUSE GROUP BY

La clause GROUP BY, utilis�e dans une instruction SELECT, divise le r�sultat d'une table en groupe. Il y a actuellement 16 niveaux de sous-groupes possibles.
La clause GROUP BY est pr�sente dans les requ�tes qui comportent �galement des fonctions d'agr�gats, ces derni�res produisant alors une valeur pour chaque groupe, �galement appel� agr�gat vectoriel.
SELECT NOM, avg(PRIXUNITAIRE), sum(PRIXUNITAIRE), ID_FACTURE
FROM ARTICLE , CONTIENT, FACTURE, CLIENT
WHERE ARTICLE.ID_ARTICLE=CONTIENT.ID_ARTICLE
AND CONTIENT.ID_FACTURE=FACTURE.ID_FACTURE
AND FACTURE.ID_CLIENT=CLIENT.ID_CLIENT
GROUP BY ID_FACTURE
renverra pour chaque facture, par nom de client, le prix moyens ainsi que la quantit� des produits pr�sents sur chaque facture.

LE LANGAGE SQL EST TRES SOUS-ESTIME. ET POURTANT...

Il n'est pas possible de tout voir en un seul article. La prochaine fois, je d�taillerais les clauses HAVING, ORDER BY, et COMPUTE. Ensuite, je vous montrerais comment fonctionne un moteur de base de donn�e, afin de bien comprendre de quoi il s'agit, et de montrer comment optimiser ses requ�tes SQL. Ensuite, nous nous amuseront un peu avec quelques requ�tes un peu complexes, mais qui permettront surtout d'avoir l'information en un seul acc�s � la base de donn�e, et de retoucher ensuite cette information le moins possible dans le script lui-m�me. Autant limiter les acc�s � la base, et r�cup�rer le maximum d'information en une seule requ�te. Car une fois que les requ�tes principalement utilis�es ont �t� identifi�es, il y a des m�thodes tr�s simples pour acc�l�rer les temps de r�ponse de la base sur ces requ�tes. Et surtout, cela �vitera de retraiter les donn�es dans de longues et lourdes routine de programmation, souvent illisibles, incompr�hensibles, et tr�s tr�s co�teuses en temps machine : il n'y a rien de pire qu'un trie de donn�es effectu�e sous forme de pile (tableaux pass�s en m�moires), alors autant �viter les lourdeurs inutiles.
Apr�s, tout est question de choix technologique et logicielle : un programme ou un site reposant sur une base complexe devra peut �tre utiliser un moteur SQL cons�quent et plus professionel...

<< Lire la 5�me partie

�

�

St�phane Lambert
http://www.vediovis.fr/

Sp�cialis� dans le d�veloppement Web, St�phane LAMBERT
a fond� VEDIOVIS PRODUCTIONS en Mai 2000.
Son exp�rience couvre essentiellement les sites � fortes audiences,
institutionnels ou audiovisuels.

�

Tous droits r�serv�s - Reproduction m�me partielle interdite sans autorisation pr�alable

�Imprimer�Donner votre avis

Actualit�s du Net

�
�� Sondage
Selon vous, quel est le meilleur moyen d�obtenir du trafic sur un site internet ?
21%Les liens commerciaux
61%Le r�f�rencement naturel
10%Les banni�res de publicit�
3%La publicit� hors ligne
5%Les communiqu�s de presse

�� Archives
� Structurer correctement un document XML�
� Il est temps de passer au XHTML 1.0�
� Votre premi�re page XHTML 1.0�
� Les expressions r�guli�res�

�

Sam-Mag - Un site du r�seau ACORUS 1996-2007
� Copyright ACORUS All rights reserved.- Mentions l�gales

Ce site respecte la loi Informatique et Libert�s. Pour en savoir plus sur la protection des donn�es personnelles, cliquez

r�f�rencement | achat de mot cl� | r�f�rencement international | web actualit�s | boutique en ligne | statistiques web | referencement site web
communiqu� de presse | r�f�rencement internet | r�f�rencement gratuit | referencement professionnel | referencement immobilier

�
Webmaster