et Windev®
par Cyril Beaussier
Les système de gestion de base de données et Windev
Sommaire
Introduction _______________________________________________________________ 3
Les bases de données classiques ___________________________________________________ 3
Les bases de données multimédias_________________________________________________ 3
Définition _________________________________________________________________ 3
La base de données _____________________________________________________________ 3
Le SGBD _____________________________________________________________________ 3
Préambule_________________________________________________________________ 4
Conception ________________________________________________________________ 4
Schéma de données _____________________________________________________________ 4
Opération sur les données _______________________________________________________ 4
Concurrence d'accès ____________________________________________________________ 4
Le langage SQL ____________________________________________________________ 5
Principe ______________________________________________________________________ 5
La normalisation SQL __________________________________________________________ 5
Vocabulaire ___________________________________________________________________ 5
Les mots réservés_______________________________________________________________ 5
Expression simple sur une table___________________________________________________ 5
Expression simple sur plusieurs tables _____________________________________________ 6
Expression complexe sur une table ________________________________________________ 7
Expression complexe ou imbriquée ________________________________________________ 7
Expression avec fonctions de calcul________________________________________________ 7
Expression d'agrégation _________________________________________________________ 8
Expression d'écriture ___________________________________________________________ 9
Optimisation du SGBD_______________________________________________________ 9
Les index ____________________________________________________________________ 10
Les vues _____________________________________________________________________ 10
Limites de l'optimisation _______________________________________________________ 10
Critère de choix d'un SGBD _________________________________________________ 11
Remerciement _____________________________________________________________ 11
Copyright_________________________________________________________________ 11
2/11
Les système de gestion de base de données et Windev
Introduction
L'informatique et les systèmes qui la compose permet de stocker des données représentant
des informations. Ces données sont regroupées au sein d'une base appelé ainsi base de
données (database). Les exemples d'application utilisant des bases de données sont
nombreux. On peut cependant les diviser en deux catégories.
Définition
La base de données
Une base de données est donc un gros ensemble d'informations qui sont structurées et
mémorisées sur un support permanent.
Un fichier texte composé de noms est déjà une base de données même si l'accès aux
informations est pénible puisqu'il faudra lire à chaque recherche l'ensemble du fichier en le
parcourant séquentiellement.
Pour accéder plus rapidement aux informations, on a donc recours à un index. Le format de
base de données de Windev, l'Hyper File est un système de ce type en étant composé d'un
fichier de données et d'un fichier d'index. On retrouve ce type de base pour l'ISAM, ou le
format dBase.
Le système HF, malgré ce que dit son éditeur PC SOFT, a ses limites. Une base de données
de ce type mise en réseau face à plusieurs dizaines d'utilisateurs subit une fragmentation de
ses données très importante. En effet, si l'accès en lecture ne pose à priori pas de problème,
c'est l'accès en écriture (création, suppression ou mise à jour) qui fait risquer à la base une
incohérence entre ses données et son indexation. La base est en effet, directement attaqué
par le programme, elle n'a pas d'intelligence propre.
Le SGBD
Si la base de données n'est composé que de données, le système de gestion de base de
données est en fait un logiciel couplé à une base de données. Un système de gestion de
base de données (couramment appelé SGBD) est un logiciel de haut niveau qui permet de
manipuler ses informations.
3/11
Les système de gestion de base de données et Windev
Préambule
Ce document est à coupler avec la programmation en client/serveur avec Windev disponible
sur mon site à l'adresse www.beaussier.free.fr.
Ce document ne rentre pas dans les détails de l'administration des systèmes de gestion de
base de données sur serveur dédié de type Oracle par exemple.
Conception
Il existe de nombreux systèmes de gestion de base de données. Certains peuvent tourner
sur micro-ordinateur comme Access, d'autres doivent se placer sur des serveurs dédiés
comme Oracle, Sybase, DB2 ou SQL/Server. La décision du choix dépendra du nombre de
transactions qui s'opérera sur le SGBD.
Bien entendu, je conseille fortement de ne pas se lancer sur des SGBD serveur. Sans faire
le pro Microsoft, MS-ACCESS représente une bonne alternative qualité/prix. Le moteur du
SGBD est performant. La conception du modèle de données est facilité par l'interface
graphique.
Schéma de données
C'est la façon de représenter les informations du monde réel dans le système de gestion de
base de données. Comme pour la création de l'analyse des données dans Windev, le
modèle de données dans Access est similaire avec :
• Une structuration des objets
• Les opérations sur ces objets
Concurrence d'accès
Le système de gestion de base de données doit pouvoir répondre aux requêtes de plusieurs
utilisateurs. Ces utilisateurs de leur côté doivent pouvoir accéder en même temps aux
mêmes données. Le SGBD doit donc savoir :
• Gérer les conflits si deux utilisateurs font des mises à jour.
• Offrir un mécanisme de retour en arrière si l'utilisateur décide d'annuler des modifications
en cours.
• Donner une image cohérente des données si un utilisateur fait des recherches et un
autre fait une mise à jour.
Le but final est bien sûr d'éviter les blocages et les lenteurs, tout en empêchant des
modifications anarchiques.
4/11
Les système de gestion de base de données et Windev
Le langage SQL
Le SQL est l'abréviation de Structured Query Language (traduction pour Langage Structuré
de Requête), c'est le mode de communication avec le système de gestion de base de
données. Il a été standardisé par l'ANSI et adopté en 1986 par l'ISO/IEC.
Principe
L'opération de recherche est la plus complexe. L'opération s'exprime par une projection, une
sélection et une jointure par un bloc de commande.
SELECT < liste des attributs à projeter >
FROM < liste des tables ou des arguments >
WHERE < conditions sur un ou plusieurs attributs >
La normalisation SQL
Le SQL en est à sa version 2 (ISO 91). Ses principales caractéristiques sont :
• La standardisation des codes réponses en ajoutant la variable de retour sqlState (géré
par Windev avec la commande sqlErreur).
• La possibilité de renommer les colonnes résultat
• La possibilité d'utiliser les mots réservés comme nom de table ou d'attribut.
Attention, certains SGBD ont des mots supplémentaires qui ne sont pas standardisé SQLv.2.
Il est bien sûr fortement recommandé de ne pas les utiliser.
Là encore Windev reconnaît que son moteur Hyper File n'est pas un véritable SGBD et qu'il
n'est absolument pas compatible avec le SQLv.2. Il ne faut donc pas utiliser le langage SQL
sur une base HF. Le pilote ODBC fourni pour Hyper File ne peut exécuter que des requêtes
de recherche simple (SELECT).
Vocabulaire
Dans une base de données classique, on parle de fichier, dans un système de gestion de
base de données on parle de table. Même chose pour les champs d'un fichier qui sont
appelés attributs dans une table. Une table est composé de colonnes, chaque colonne est
qualifié par un attribut. Lorsque deux tables sont liés par un attribut, on appelle cela une
jointure.
5/11
Les système de gestion de base de données et Windev
La table Client est composée de son numéro (NumCl), de son nom (NomCl), de son
adresse (AdrCl), la ville (VilleCl) et du chiffre d'affaire qui lui est associé (CaCl).
Notons que le symbole étoile (*) remplace la liste de tous les attributs, que le symbole
pourcentage (%) remplace une chaîne de caractères quelconque et que les chaînes de
caractères doivent être placées entre cote ('). Enfin le point-virgule (;) signale la fin de la
requête.
La table Commande est composée de son numéro (NumCo), du n° du client (NumCl) et du total
hors taxe (TotalCo).
La table Produit est composé de son numéro (NumPr), de son nom (NomPr), de son prix
(PrixPr) et de la quantité en stock (QtePr).
La table Ligne est composé des n° de commande (NumCo) et de produit (NumPr) et de la
quantité commandée (QteCo).
6/11
Les système de gestion de base de données et Windev
Dans le cas de jointure entre deux tables, il faut préciser dans la requête les attributs que l'on
veut récupérer. Cependant, si les noms des attributs sont identiques, il faut préciser le nom
de la table devant. Pour éviter des requêtes trop longues, on peut alors remplacer le nom de
la table par un alias. C'est cet alias unique qui se placera devant l'attribut.
7/11
Les système de gestion de base de données et Windev
Voyons ci-dessous quelques exemples très simples qui récapitule ce que l'on a vu plus haut
afin de vous montrer la souplesse du langage SQL :
Expression d'agrégation
Langage naturel Expression SQL
Nombre de clients par ville SELECT VilleCl, COUNT(NomCl)
FROM Client
GROUP BY VilleCl ;
Dans cette exemple, nous voyons qu'il est possible de regrouper les résultats d'une requête
suivant l'attribut. Voyons ce que fait exactement la requête :
Contenu de la base
VilleCl NomCl
Paris MARTIN
Paris HENRI
Paris CHARLES
Lyon ROBERT
Lyon GERARD
Résultat de la requête
VilleCl COUNT(NomCl)
Paris 3
Lyon 2
Notons que s'il y a une condition GROUP BY, l'attribut contenu dans celle-ci doit figurer
obligatoirement dans la clause SELECT.
8/11
Les système de gestion de base de données et Windev
Compliquons maintenant la requête avec la clause HAVING. Celle-ci permet d'éliminer des
partitionnements.
Expression d'écriture
Comme nous l'avons vu plus haut dans le chapitre Opération sur les données. Les requêtes
d'écriture à la différence des requêtes de recherche, modifient le contenu de la base. Il existe
trois requêtes d'écriture : la création (INSERT), la modification (UPDATE) et la destruction
(DELETE). Ces requêtes doivent être manipulées avec précaution car une mauvaise
rédaction peut entraîner des catastrophes irrémédiables.
Notons qu'une requête INSERT ressemble beaucoup à une requête SELECT notamment dans
la rédaction des valeurs à ajouter.
Il est très important de préciser la clause WHERE dans les requêtes UPDATE et DELETE car
l'oubli ou la mauvaise rédaction des attributs peut causer des dégâts importants. Oublier la
clause WHERE dans une requête DELETE, effacera tous les enregistrements de la table.
Optimisation du SGBD
Pour optimiser un système de gestion de base de données, l'administrateur ou le concepteur
de la base peut ajouter des index ou des vues sur ces tables afin d'accroître les temps
d'accès et de réponse.
9/11
Les système de gestion de base de données et Windev
Les index
Comme pour une base de données classique, l'index va permettre au SGBD d'accéder plus
rapidement à l'enregistrement voulu. Il permet également d'assurer l'unicité des clés primaire
ou secondaire. En résumé, un index est une structure contenant l'adresse physique de
chaque enregistrement d'une table. Un index permet l'accès direct à l'information.
Les vues
Une vue est une perception logique sur les données d'une ou de plusieurs tables ou même
d'autres vues. Elle est définie à partir d'une requête d'interrogation du langage SQL. Elle
hérite des mêmes caractéristiques que les objets auxquels elle se réfère.
Un exemple de vue :
Langage naturel Expression SQL
Avoir directement les gros clients CREATE VIEW GrosClient(NomGc, AdrGc,
VilleGc) AS
SELECT NomCl, AdrCl, VilleCl
FROM Client
WHERE CaCl > 100000
Limites de l'optimisation
Malgré tout la performance du SGBD peut très vite aller en décroissant. Celle-ci se révèle
souvent par une mauvaise définition de la structure logique. Une mauvaise analyse donnera
un mauvais schéma de données. Il en sera de même, si les requêtes SQL sont mal
10/11
Les système de gestion de base de données et Windev
Remerciement
Je tiens par le présent document à remercier Monsieur SCHOLL auprès duquel j'ai suivi
pendant une année les cours du C.N.A.M. (www.cnam.fr) sur les systèmes de gestion de
base de données.
Copyright
Toutes les marques citées dans le présent document sont déposées par leurs sociétés
respectives. L'auteur décline toute responsabilité quant à la mauvaise utilisation qui pourrait
être faîte des informations contenues dans ce document.
Toute reproduction même partielle de ce document est interdite sauf autorisation de l'auteur.
© Cyril Beaussier - Courriel : cyril.beaussier@mail.dotcom.fr
Création initiale : 29/02/2000
Dernière date de révision : 25/06/2001
11/11