Systèmes de gestion de bases de données - BAPN Paris 8
Plusieurs devoirs sont à rendre au fil des séances, avec un examen final.
Sommaire. qu'est ce ... d) présentation de microsoft Access : l'interface et ses
onglets.
part of the document
SQL des principales requêtes
les jointures
mots-clefs et fonctions principales
exemples et exercices
résumé des cours 1 à 13
quest ce quun SGBD ?
Cest un programme informatique, composé dun outil de stockage des données, et des outils utilisés pour interroger ces données. Un SGBD est dit relationnel quand on peut relier les tables entre elles par des liens logiques.
le langage SQL
Lacronyme signifie « short query language », cest la syntaxe utilisée universellement pour interroger les bases de données.
Cette syntaxe est formalisée, et peut se résumer à un pseudo-anglais ayant un lexique de mots-clefs. Ce lexique varie peu suivant les outils.
les outils du marché
propriétaires : Oracle , Access, Sybase, etc
open-source : mySql, postgreSQL , etc
Certains outils proposent des modules dits « spatiaux » (Oracle spatial, PostGis) dédiés au traitement de linformation géographique.
les sgbd au service de la géographie
Les bases de données peuvent se coupler aux logiciels cartographiques, voire eux mêmes être capables d interpréter des données géométriques ; les Sgbd se retrouvent donc aux cur des SIG, pour le stockage et linterrogation et la production de données, mais aussi pour lanalyse spatiale et la production de cartes.
Microsoft Access : présentation
A louverture, créer un fichier vide de type .mdb (Microsoft data base), nommez-le et sauvegardez-le à un emplacement de votre choix; vous importerez ensuite vos tables dans ce fichier mdb ; Access peut importer beaucoup de types de fichiers, txt, xls, dbf, etc.
Linterface générale contient plusieurs onglets :
longlet Tables stocke vos objets tables
longlet Requêtes stocke vos requêtes de sélection, de mise à jour, de création de tables, les requêtes croisées et les requêtes de suppression de données, et les requêtes dajout de deux tables.
longlet Formulaire stocke vos formulaires, càd des interfaces que vous créez pour la saisie ou la consultation de vos données. Ils sont personnalisables, et permettent dappeler des images, ou des contrôles activeX dans des fenêtres dédiées.
Les onglets états et pages ne seront pas abordés dans ce cours et ne sont pas indispensable pour nos besoins.
Longlet Macros stocke vos scripts dautomatisation des tâches, à rédiger en langage Vba.
Longlet Modules stocke des éléments de scripts et des fonctions, rédigés en Vba ;
des formules de mise en classe de séries continues, des fonctions de traitement de chaînes de caractères, etc
2. Outils et concepts de base
Tables
Chaque objet de cet onglet est une table, cest à dire une matrice n lignes X p colonnes (nxp). Contrairement à Excel, le nombre denregistrements nest pas limité.
Les n lignes sont appelés des enregistrements.
Les p colonnes sont des champs.
Champs
Ils ont un nom < ou = à 8 caractères en général, de préférence sans accentuation et sans ponctuation à part le caractère « _ » .
La liste de tous les champs de toutes les tables est un document à produire pour toute conduite de projet, et se nomme généralement « dictionnaire des données ».
Généralement, les tables contiennent des données identifiantes (adresses, noms, codes,
), des données attributaires (des valeurs ou du texte), et de la géométrie dans le cas des SIG (mémo, objet OLE,
)
Une même table contient des champs de différents types, dont voici les principaux :
texte : stocke des caractères alphanumériques, du texte, des libellés, ou des variables qualitatives. Longueur max = 255 caractères.
mémo : idem, mais peut recueillir des chaînes de caractères plus longues (la géométrie dobjets par exemple.
numérique/entier : stocke des entiers naturels N uniquement, comme des variables quantitatives discrètes, des comptages, des identifiants.
numérique/réel : stocke des réels R ; séries quantitatives continues, taux, indicatrices
date/heure : beaucoup de formats
monétaire
clé primaire, ou identifiant, ou index: champ texte ou numérique/entier stockant un identifiant unique, cad que les valeurs de ce champ sont distinctes deux à deux. Il ny a pas de doublons dans ce champ. Généralement, ils sagit de codes ; codes client, codes administratifs, clefs composées, numéro de commande, etc.
Ces champs particuliers sont très importants car ils permettent deffectuer les liaisons entre tables.
Access propose une fonction de clé automatique, NumeroAuto.
Requêtes
Vous pouvez manipuler vos tables pour en les interroger simplement, pour extraire de linformation plus élaborée, pour les modifier, ou même pour les effacer.
Access possède un assistant à la composition de requêtes qui vous « traduira » votre opération en instruction SQL.(( onglet « Requêtes », puis « Nouveau », puis « Mode création ». Il est cependant important daller vérifier soi-même le code généré.
Lavantage du stockage de requêtes est dautomatiser la production de données. Lautre avantage est de disposer de nouveaux objets assimilables à des tables dans vops futurs traitements, mais dynamiques, et très légers.
Access propose, dans longlet Requêtes, quelques requêtes assistées :
Sélection :
sélectionner un sous-ensemble de données issues des tables. Renvoie une nouvelle table stockée dans longlet requête.
mise à jour :
« remplit » un champ avec des valeurs que vous saisissez ou bien qui proviennent dune autre table/requête.
création de table :
« transforme » le résultat dune sélection en un nouvel objet table
requêtes croisées :
renvoie un tableau croisé de variables qualitatives ou quantitatives discrètes
requêtes de suppression de données
ajout de deux tables
requêtes paramétrées
Modules
Cest une fonction rédigée en VBA.
Exemple à venir MJ, module de mise en classe.
Macros
Suite dinstructions visant à automatiser des taches.
scripts en VBA, la fonction DoRunSQL est très utile.
formulaire
Exemple à venir NB
la méthodologie MERISE
On peut analyser la structure dune base grâce à certains outils, en la modélisant, notamment avec la méthodologie MERISE.
« Cette méthode a eu comme objectif premier de jeter un pont entre les besoins des utilisateurs et les solutions des informaticiens. Certes sa finalité est quand même de faciliter la conception des projets informatiques en permettant d'analyser et de formaliser très tôt les « besoins » des utilisateurs. » wikipedia
- Le MCD
Le Modèle Conceptuel de Données est la formalisation de la structure et de la signification des informations décrivant des objets et des associations.
Le MCD comporte les concepts basiques suivants, à représenter sous forme de diagramme composé de boites contenant des listes de champs ; les champs clefs primaires et les clefs étrangères sont signalés respectivement en gras et souligné, et en gras.
Entité : table
Relation : modélisation d'une association entre deux ou plusieurs entités ;appartient à, possède, vend, achète, réside,
Cardinalités : modélisation des participations mini et maxi d'une entité à une relation ;
, , ,
Propriétés : modélisation des informations descriptives rattachées à une entité ou une relation
Identifiant : modélisation des propriétés contribuant à la détermination unique d'une occurrence d'un entité.
- Le MLD
Le MLD est la « traduction technique » du MCD
Access gère le MLD dans loption « Relations » interface dans laquelle vous précisez les liens entre tables.
NB
La syntaxe SQL
La formule pour générer une instruction SQL est toujours la même, et le langage possède une grammaire très simple.
La grammaire du SQL
pour créer vos instructions, vous assemblerez toujours, dans lordre, les éléments suivants :
Une instruction de base obligatoire, définissant le type dopération (SELECT, INSERT INTO, DELETE
)
Vient ensuite la liste des champs que vous voulez restituer : champs dorigine, champs calculés ou des fonctions dagrégat, ou bien la totalité des champs (caractère « * »).
Loption AS permet de donner un nouveau nom aux champs calculés.
Un champ est nommé dans votre formule.
Linstruction obligatoire FROM, après laquelle vous précisez les tables dont sont issues les champs à extraire
Peuvent suivre une ou plusieurs clauses facultatives :
Clause de sélection logique WHERE ( =, ,,etc)
Clause de jointure : précision du lien logique entre les tables ( WHERE, INNER JOIN ON, LEFT JOIN ON, RIGHT JOIN ON)
Clause dagrégat GROUP BY
Clause de restriction de la fonction dagrégat HAVING, remplaçant la clause « WHERE » si la requête contient un GROUP BY
La formule générale dune requête SQL se résume donc à ceci :
Type dopération, liste de champs à restituer, liste des tables à requêter, clauses facultatives.
Ou encore : TypeRequête, FROM , critères et clauses.
Syntaxe SQL des principales requêtes
Requête de suppression de table :
DROP TABLE
Requête de suppression de champs ou denregistrements :
DELETE FROM WHERE
NomTableSource.* désigne la table dans de laquelle s'effectue la suppression dans le cas d'une jointure avec une autre table.
Requête de Mise à jour à partir dune autre table:
INSERT INTO SELECT ,
.FROM WHERE
Pour que l'insertion soit valide il faut que les champs de la table source aient le même type et la même longueur que ceux de la table destination.
Mise à jour denregistrements à laide dune valeur choisie par lutilisateur :
UPDATE SET WHERE critère
Requête de sélection :
SELECT , ,...,... FROM WHERE
A noter que lon peut compléter linstruction select :
SELECT ALL (par défaut)
SELECT DISTINCT sélectionne sans doublons.
Création dune table :
CREATE TABLE NomTable ( CONSTRAINT , CONSTRAINT )...CONSTRAINT
Les jointures
Soient une table A et une table B contenant chacune deux champs que lon peut apparier.
Les jointures seront de 3 types, correspondant aux 3 résultats obtenus en intersectant les 2 ensembles A et B.
La jointure se déclare après la clause FROM .
LEFT JOIN : tous les enregistrements de A et seulement ceux de B pour lesquels le critère dappariement est égal
RIGHT JOIN : : tous les enregistrements de B et seulement ceux de A pour lesquels le critère dappariement est égal
INNER JOIN : tous les enregistrements pour lesquels la clé dappariement est égale.
mots-clé et fonctions principales
instructions SQL, type de requête :
sélectionner : SELECT, SELECT ALL
sélectionner sans doublons : SELECT DISTINCT
mettre à jour des valeur : UPDATE
ajouter des enregistrements à une table depuis une autre table: INSERT INTO
effacer une table : DROP
effacer des enregistrements : DELETE
clauses :
indiquer les tables desquelles sont issues les données : FROM
renommer un champ/donner un nouveau nom à un champ : AS
regrouper/agréger les données : GROUP BY
clause de restriction pour lagrégat : HAVING
clause de sélection : WHERE
jointure :
JOIN ON ( = )
fonctions dagrégat ou expressions de regroupement :
moyenne : AVG
écart-type : STDEVP
maximum, minimum :MAX, MIN
premier, dernier : FIRST, LAST
compte : COUNT
somme : SUM
opérateurs de la clause WHERE (non-exhaustif):
et : AND
ou inclusif: OR
ou exclusif : XOR
inférieur à :
supérieur à :
tri croissant : ORDER BY < champs> ASC
tri décroissant : ORDER BY < champs> DESC
équivalence : EQV
est vide : IS NULL
nest pas vide : IS NOT NULL
entre : BETWEEN
Access propose, notamment grâce au générateur dexpressions de lassistant requêtes, un vaste choix de fonctions de traitement de chaînes de caractères, et dopérations logiques et mathématiques.
Dans dautres systèmes, il existe des clauses WHERE topographiques, (intersect, inside,..), ainsi que des fonctions topographiques (distance, surface, centroide,..).
exemples et exercices
Exemple1 :
soit une table A n clients x p champs, avec :
p1 = identifiant client
p2 = CA réalisé
p3 = nb de commandes
p4 =code zone géographique
- restituer la table A à lidentique sécrira :
- quelle est la clé ? qualifiez les autres champs :
- restituer une table renvoyant le CA moyen par commande et la dispersion de la série :
- restituer une table renvoyant le CA moyen par client et la dispersion de la série :
restituer une table renvoyant le nb de clients, le CA moyen et total, le nb de commandes moyen et total, par zone, la table de résultat sera triée par le nb de clients décroissant :
- Idem que la précédente, mais que pour les secteurs « ouest » et « sud-est »
Exemple 2 :
on dispose dune nouvelle table dinformations sur nos clients, la table B, contenant lidentifiant client et leurs adresses postales . Les données de cette table contiennent des erreurs, certains clients sont en double, et certaines adresses sont manquantes.
- comment dé-doublonner la table B ? (deux manières)
- comment incorporer les données de B dans A ? quel est le pré-requis avant cette manipulation ?
- dans les tables A et B, sélectionner les clients dont ladresse est renseignée.
Exemple 3 :
Rédiger des mini MLD (3 ou 4 tables) orientés vers la gestion marketing/produits.
rédiger les listes de tables et champs comme ci-dessous en évitant la redondance de linformation
imaginer quelques tables sur les thèmes suivants : librairie, vente par correspondance, négoce de matières premières, devoir commun.
Exemple dune librairie
livres ()
auteurs ()
éditeurs ()
tickets ()
tables dindex (genres, pays)
- caractérisez ces tables et ces champs (clés primaires, clefs étrangères, attributs et leurs types).
- Comment composeriez-vous le code livre ? pourquoi nest pas une clef unique ?
- à partir de cet exemple , tracer un diagramme des entités-relations dans powerpoint ou autre.
- Quelles informations pourriez-vous extraire dun tel système ? rédiger les requêtes correspondantes, et les représenter et les nommer sur le diagramme dans une deuxième partie du dessin.
- Ces 4 tables permettent une analyse des ventes et une gestion de stock ; quels autres aspects aurait-on pu incorporer dans cet outil de gestion ? quelles tables et champs rajouteriez-vous ?
- une fois que les tables, les relations et les requêtes pré-enregistrées sont formalisées, quels outils pourrait-on imaginer avec les autres outils dAccess ?
résumé des cours
cours 1
comparaison de la requête croisée dans Access et du tableau croisé dynamique dans Excel ;
notion dagrégat ; notion denregistrement ;
révision des découpages administratifs français.
cours 2
table des communes avec coordonnées des centroides xy, et populations des communes.
Agrégat pour recréer la table des agglos France.
table des agglomérations uu99 ;
discrétisation de la série « pop99 » pour carto thématique « population des agglos France ».
requête de sélection avec jointure simple entre les deux tables.
géocodage auto pour carte thématique Access Geoconcept
cours 3
Présentation du devoir commun.
table des tronçons des ligne des métro de Rennes et Marseille, table des stations. ;
Sélection de éléments de Marseille par code uu99 ;
requête de création de table ;
import pour production du plan de métro de Marseille (2 lignes).
Cours 4
requête dajout, ajout des 3 lignes de tramway de Nantes aux données du cours précédent, et production du plan.
Cours 5 et 6 (ven et sam)
étape 1 au 15.11.07 devoir commun à rendre
exercices de ce cours et correction
révision rapide découpages administratif France
traitements de données de carroyage, notions de modélisation
correction exercice cours2
PAGE 1
PAGE 10