Bases%20de%20donn - PowerPoint PPT Presentation

About This Presentation
Title:

Bases%20de%20donn

Description:

de lignes o sont rang es les valeurs des diff rents attributs. ... Attributs s par s par des virgules. 8. CLIENT. Cl primaire en premier lieu et soulign e : ... – PowerPoint PPT presentation

Number of Views:204
Avg rating:3.0/5.0
Slides: 151
Provided by: gvdk
Category:
Tags: 20de | 20donn | attributs | bases

less

Transcript and Presenter's Notes

Title: Bases%20de%20donn


1
Bases de données
  • Access, Mysql et autresSystèmes de Gestion de
    Base de Données Relationnelle (SGBDR) (DBMS)

2
Sommaire
  • Base de données définition et utilisation
  • Pourquoi pas Excel ?
  • BdD éviter la redondance
  • Langage SQL et requêtes

3
Définition
  • Base de données
  • Un ensemble de données
  • Une structuration forte
  • Une gestion de plusieurs utilisateurs simultanés
  • Un ensemble doutils permettant dextraire
    rapidement des informations de lensemble des
    données

Ensemble structuré de données enregistrées avec
le minimum de redondances pour satisfaire
simultanément plusieurs utilisateurs de façon
sélective et en un temps opportun.
4
Utilisation
  • Voir article  Quel SGBD choisir 
  • Access
  • Paradox
  • Sybase
  • SQL Server
  • Oracle
  • MySQL (libre avec PHP)
  • InterBase
  • PostGreSQL
  • SQLite

5
Bases de données omniprésentes
  • Les bases de données sont omniprésentes
  • Hautes Écoles, Universités
  • Données sur les étudiants
  • Id, nom, prénom, classe, section, cycle, année
  • Données sur les formations
  • matière, intervenant (enseignant), public, salle
  • Données sur les résultats
  • matière, intervenant (enseignant), pondération,
    résultat
  • Entreprises
  • fichiers clients, fournisseurs, commandes
  • facturation,
  • gestion de stock, inventaire.

6
Bases de données omniprésentes
  • Les bases de données sont omniprésentes
  • Bibliothèques
  • Données sur les lecteurs
  • Id, nom, prénom, statistiques, montant dû
  • Données sur les livres
  • Titre, ISBN, auteur, genre, code, emplacement,
    emprunts, collection, éditeurs
  • Données sur les auteurs
  • Livres, adresse, nom, prénom,
  • Privé
  • Collection de CD ou DVD
  • Contenu de congélateur

7
Pourquoi pas Excel ? (1)
  • Et cest parti jattends ma première commande

8
Pourquoi pas Excel ? (2)
  • Premier client, première commande

9
Pourquoi pas Excel ? (3)
  • Dans sa commande, mon client désire plusieurs
    produits

10
Pourquoi pas Excel ? (4)
  • Chiffre daffaires pour les tomates ?

11
Pourquoi pas Excel ? (5)
  • Les défauts
  • Redondance
  • Données répétées (info client si plusieurs
    commandes, info produit si plusieurs fois
    commandé)
  • Réécriture
  • Orthographe, perte de temps, mise à jour
    difficile
  • Nombre de lignes
  • 65535 216 1
  • Mélange de divers types de données
  • Client, produit, commande, prix,
  • gestion de stock, inventaire.

12
Base de données (1)
  • Exemple un carnet dadresses organise les
    informations sur vos interlocuteurs en plusieurs
    catégories nom, numéro de téléphone fixe, gsm,
    fax, adresse, e-mail, etc.

Une base de données est un ensemble organisé
dinformations structurées
13
Base de données (2)
Nom Prénom Adresse Tél Fax E-mail
Nom1Nom2
Une table contient des enregistrements en
lignes, correspondant aux individus (animés ou
inanimés)
et des champs en colonnes, décrivant chaque
individu
14
Éviter la redondance (1)
Nom Prénom Classe Matières
Durand Pierre 1NSSE Compta1
Durand Pierre 2NSSE Compta2
Dupond Paul 1NSSE Compta1
Dupond Paul 1NSSE Droit1
Durand Pierre 1NSSE Droit1
Dupond Paul 1NSSE Stat
Durand Pierre 1NSSE Stat
Nom Prénom Classe
Durand Pierre 1NSSE
Durand Pierre 2NSSE
Dupond Paul 1NSSE
Dupond Paul 1NSSE
Durand Pierre 1NSSE
Dupond Paul 1NSSE
Durand Pierre 1NSSE
Classe Matières
1NSSE Compta1
2NSSE Compta2
1NSSE Compta1
1NSSE Droit1
1NSSE Droit1
1NSSE Stat
1NSSE Stat
15
Éviter la redondance (2)
Nom Prénom Classe Matières
Durand Pierre 1NSSE Compta1
Durand Pierre 2NSSE Compta2
Dupond Paul 1NSSE Compta1
Dupond Paul 1NSSE Droit1
Durand Pierre 1NSSE Droit1
Dupond Paul 1NSSE Stat
Durand Pierre 1NSSE Stat
Nom Prénom Classe
Durand Pierre 1NSSE
Durand Pierre 2NSSE
Dupond Paul 1NSSE
Classe Matières
1NSSE Compta1
2NSSE Compta2
1NSSE Droit1
1NSSE Stat
n
n
Attention Un élève peut suivre plusieurs cours
À éviter
un même cours peut être suivi par plusieurs élèves
16
Éviter la redondance (3)

Client
Produit
NoClient RaisonSociale Adresse1
C987 Dupont Co 12 rue Par..
C986 Durand Cie 71 cbru
.
Ref prod Descript Puht
P1234567 Tomate 10
B9873685 Banane 4
C9875986 Poire 180

n
n
Attention Un client peut acheter plusieurs
produits
À éviter
un même produit peut être acheté par plusieurs
clients
17
Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA

NoClient
RaisonSociale
Adresse1

1
Acceptable
Commande
.
Commande
Comprendre
n
NoComm
DateCommande
NoClient

NoComm
Ref Prod
Quantité

Attention Un client peut passer plusieurs
commandes
Mais Une commande ne peut être passée que par
un seul client
18
Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA

NoClient
RaisonSociale
Adresse1

1
Commande
.
Commande
Comprendre
(ou Ligne de commande)
Acceptable
n
n
1
NoComm
DateCommande
NoClient

NoComm
Ref Prod
Quantité

Attention Une commande peut comprendre
plusieurs couples commande-produit (lignes de
commandes) pour des quantités différentes
Mais Un couple commande-produit ou une ligne
de commande ne peut être compris(e) quune fois
que dans une seule commande
19
Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA

NoClient
RaisonSociale
Adresse1

1
1
Acceptable
Commande
.
Commande
Comprendre
1
n
n
1
NoComm
DateCommande
NoClient

NoComm
Ref Prod
Quantité

Attention Un produit ne peut être compris que
dans un seul couple commande-produit pour une
quantité précise
Et Un couple commande-produit ne peut
comprendre quun seul produit
20
Données saisies ou calculées
saisies
calculées
21
Données tables
Lanalyse de la liste des données saisies permet
de mettre en évidence des ensembles homogènes.
Exemples - données concernant les clients
- données concernant les produits
Chacun de ces ensembles est représenté par une
table.
Exemples - la table  client 
- la table   produit 
7
22
Table sa structure
Une table se compose - de colonnes où sont
indiqués les différents attributs
- de lignes où sont rangées les valeurs des
différents attributs.
Lensemble des valeurs dune ligne est appelé un
enregistrement.
DÉPENDANCE FONCTIONNELLE La connaissance dune
valeur de lattribut clé primaire détermine de
façon unique la connaissance des valeurs des
autres attributs, on dit quil existe entre eux
une dépendance fonctionnelle. Exemple la
connaissance du numéro de client nous permet de
retrouver son nom et son adresse. 
Un attribut principal appelé clé primaire doit
permettre didentifier chaque enregistrement sans
ambiguïté.
Les valeurs de lattribut clé primaire doivent
donc obligatoirement être uniques. Pour la table
client,  Numcli  répond le mieux à ce
critère. La clé primaire est généralement située
en première colonne.
8
23
Table modèle relationnel (1.1)
  • Entités
  • attributs (caractéristiques) description
  • ex. clients, produits, élèves, citoyens belges,
    motos belges ...
  • Clé primaire unique
  • Relations
  • relation entre entités
  • ex. commandes (clients, produits),proprio
    (moto, citoyen)conjoint (citoyen1, citoyen2)

24
Table modèle relationnel (1.2)
Nom de la relation/entité (en majuscules) suivi
de parenthèses
CLIENT

CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
Attributs séparés par des virgules
Clé primaire en premier lieu et soulignée
unique.
8
25
Base modèle relationnel entre deux tables (2.1)
La connaissance dun numéro de commande nous
permet de retrouver de façon unique un numéro de
client.
Dépendance fonctionnelle
Il existe donc une dépendance fonctionnelle entre
deux tables (commande et client).
Pour matérialiser ce lien, une colonne (numcli)
sera ajoutée à la table source de la dépendance
fonctionnelle. Celle-ci sera appelée clé
étrangère.
1
n
Attribut commun aux deux tables matérialisant la
dépendance fonctionnelle.
8
10
26
Base modèle relationnel entre deux tables (2.2)
1
n
Attribut commun aux deux tables matérialisant la
dépendance fonctionnelle.
CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
COMMANDE ( NumCom, datecom, NumCli )

Si la relation comprend un attribut clé
étrangère, celui-ci sera placé à la fin et
précédé du signe .
8
10
27
Table modèle relationnel entre deux tables
(2.3)
  • Ce qui est nécessaire
  • 2 tables (ou requêtes ou une combinaison des
    deux)
  • 1 champ en commun dans chacune des tables
  • même type de champ (texte avec texte, numérique
    avec numérique ...)
  • même longueur (pas un champ long de 15 caractères
    avec un autre long de 50 caractères !)
  • même genre d'information (Ex. Code d'inventaire
    avec des codes d'inventaires, NAS avec NAS ...)
  • Et vive les clés primaires et étrangères !!!

28
Table modèle relationnel entre deux tables
(2.4)
  • La table Fournisseurs contient toutes les
    informations de contact au sujet de ces
    entreprises
  • Quant à la table Produits, elle fait référence à
    la table Fournisseurs, mais elle ne doit pas
    forcément inclure toutes les informations de
    contact de tous les fournisseurs.

29
Base modèle relationnel entre plusieurs tables
(1)
La connaissance du numéro de commande et de la
référence du produit nous permet de retrouver de
façon unique la quantité commandée.
Dépendance fonctionnelle composée
Il existe donc une dépendance fonctionnelle
multiple ou composée à partir des tables
 PRODUIT  et  COMMANDE .
Pour matérialiser ce double lien, une table
supplémentaire  COMPRENDRE  sera créée.
Celle-ci sera composée dune clé primaire
concaténée  NumcomRefprod  et de lattribut
 quantite 
8
10
12
30
Base modèle relationnel entre plusieurs tables
(2)
CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
PRODUIT ( Refprod, Designprod, PUprod)
COMMANDE ( NumCom, datecom, NumCli )
COMPRENDRE ( NumCom, Refprod, Quantité )
Dans le cas dune clé primaire concaténée,
lensemble des attributs formant la clé est
souligné.
8
10
12
31
Duferco
  • Duferco produit des brames quelle vend.
  • Brame La brame est un demi-produit
    sidérurgique. C'est la matière première utilisée
    pour la fabrication des tôles ou des plaques sur
    les trains de laminoirs.
  • La brame ou slab est une masse d'acier de forme
    parallélépipédique de fortes dimensions (plus de
    1000 mm de largeur pour plus de 10 mètres de long
    et un poids de plusieurs dizaines de tonnes),
    obtenue soit directement de coulée continue soit
    après réduction d'un lingot dans un slabbing
    lequel est un train de laminoirs dégrossisseur.

32
Duferco (2)
Fourniss Codefourniss
Brames Codebrame
Clients Codeclient
Codecoulée
Coulées Codecoulée
Commandes Codecommande
Codechim
Codebrame Codeclient
Codeequip
Codefourniss
Equipes Codeequip
Compchim Codechim
33
Duferco (3)
34
Bases tables exemples
  1. Duferco tables, relations_0,
  2. Enseignement supérieurx
  3. Police dIxellesx
  4. Centre de documentationx
  5. Réservations théâtrex
  6. 9e artx

35
Créer une base de données (0)
Lors de la création dune table, la clé primaire
et lappartenance des données à un type doivent
être obligatoirement définies. Dautres éléments
peuvent être posés pour assurer le confort et la
sécurité de la saisie.
Contrainte de clé primaire Une fois que la clé
primaire sera désignée et le champ déclaré sans
doublons, les saisies de valeurs identiques
seront impossibles.
Choix du type Il sagit de préciser quel type
de valeurs sera stocké dans le champ. Il existe
trois grands types (numérique, date, texte). Pour
les champs de type texte, il est possible
dintervenir sur la taille du champ, de manière à
optimiser la place occupée sur le support de
stockage.
Contrôle de la saisie Pour faciliter la saisie,
un masque, une valeur par défaut, peuvent être
mis en place.
Contrainte de domaine Il est possible, pour un
champ donné, de limiter les valeurs autorisées à
la saisie. Celles-ci sont indiquées dans la case
 Valide si , un message derreur peut y être
associé.
9
36
Créer une base de données (1)
  • Possibilité de créer avec SQL, mais pas
    indispensable
  • Base de données ensemble de tables

37
Créer une base de données (2)
  • Donner un nom à la Base de données ? extension
    .mdb

38
Créer une base de données (3)
  • La Base de données est créée,
  • Elle ne contient aucune Table au départ

39
Objets dune base de données (1)
  • Tables, Requêtes
  • Formulaires, États
  • Tables,entités/relations
  • Requêtes,interrogations
  • Formulaires,visualisation de tous les attributs
  • États,documents à publier

40
Objets dune base de données (2)
  • Tables, Requêtes
  • Formulaires, États
  • Tables,entités/relations
  • Requêtes,interrogations
  • Formulaires,visualisation de tous les attributs
  • États,documents à publier

41
Objets dune base de données (3)
  • Requêtes,interroger les données
  • États,publier et mettre en forme les résultats
  • Macros,automatiser des actions à exécuter
  • Modules,programmer en VisualBasic
  • Tables,entités/relationssaisir les données
  • Formulaires,visualiser et faciliter la saisie
    des attributs

42
Créer une table (0)
3
2
1
43
Créer une table données (1)
44
Créer une table assistant (2.1)
45
Créer une table assistant (2.2)
46
Créer une table création (3.1)
47
Créer une table création (3.2)
48
Créer une table SQL (4)
  • CREATE TABLE
  • exemple Créer la nouvelle table "table_test"
    contenant quatre champs un champ avec un
    entier qui doit toujours être saisi et un champ
    contenant une chaîne de 5 caractères
  • CREATE TABLE table_test ( champ1 int
    unsigned champ2 integer CONSTRAINT champ2 NOT
    NULL, champ3 char(5), champ4 date)

49
Les types dattributs (1)
50
Les types dattributs (2)
  1. Texte max 255 caractères
  2. Mémo max 65 535 caractères
  3. Numérique entier, simple précision, nbre
    décimales, etc.
  4. Date/Heure année 100?9999, 12 ou 24 h
  5. Monétaire nombres réels de 1 à 4 décimales
  6. NuméroAuto incrémentation automatique
  7. Oui/Non Vrai/Faux , Actif/inactif
  8. Objet OLE (Object Linking and Embedding) feuilles
    de calcul, sons, vidéos, graphiques
  9. Lien Hypertexte chemin complet (local ou
    internet)

51
Les masques de saisie (1)
52
Les masques de saisie (2)
53
Les masques de saisie (3)
54
Les masques de saisie (4)
Symbole Signification
0 Chiffre de 0 à 9 obligatoire
9 Chiffre ou espace facultatif
Chiffre ou espace ou ou -
L Lettre de A à Z obligatoire
? Lettre de A à Z non obligatoire
A Lettre ou chiffre obligatoire
a Lettre ou chiffre non obligatoire
Caractère quelconque obligatoire
C Caractère quelconque non obligatoire
lt Passe tout en minuscules (bas de casse)
gt Passe tout en majuscules (haut de casse)
! Saisie à partir de la droite
55
Les masques de saisie (5)
masque sens exemples
00 00 00 00 00 Numéro de téléphone français nouvelle numérotation 04 12 34 56 78
00 999 Code postal français (département obligatoire) 75 123 ou 59
gtCCCCCCCCCCCCCCCCCCCC Nom de maximum 20 caractères, converti en capitales VAN DELDER ou BOND
gtCltCCCCCCCCCCCCCCCCCCC Prénom de maximum 20 caractères, 1re lettre capitale, lettres suivantes bas de casse Guy ou James 007
0 00 00 00 0000 Matricule denseignant sur précisément 11 chiffres 1 53 06 07 0557
00/00/0099 Date avec année possible sur 2 ou 4 chiffres 07/06/1953 ou 22/02/53
(000) 000-0000 Téléphone avec indice régional obligatoire (207)555-0199 ou (165)345-2025
56
Les masques de saisie (6)
masque sens exemples
(999) 000-0000! Téléphone avec indice régional facultatif remplissage par la droite (207)555-0199 ou ()345-2025
(000) AAA-AAAA Téléphone américain (derniers chiffres peuvent être des lettres) (206) 555-TELE
999 Nombre positif ou négatif, composé de quatre caractères ou moins, sans séparateur de milliers ni séparateur décimal. 2345 ou -20
gtL????L?000L0 Combinaison de lettres obligatoires (L), lettres facultatives (?) et nombres obligatoires (0). Le signe  gt  oblige les utilisateurs à entrer toutes les lettres en capitales. GREENGR339M3 ou MAY R462B7
0 00 00 00 0000 Matricule denseignant sur précisément 11 chiffres 1 53 06 07 0557
00/00/0099 Date avec année possible sur 2 ou 4 chiffres 07/06/1953 ou 22/02/53
(000) 000-0000 Téléphone avec indice régional obligatoire (207)555-0199 ou (165)345-2025
57
Les masques de saisie (5)
58
La saisie (1)
59
Les listes déroulantes (1)
Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle,
60
Les listes déroulantes (2)solution simple, par
valeurs souhaitées
Dans la table, créer le champ Titre
Cliquer sur Assistant Liste de choix
Sélectionner "Je taperai les valeurs souhaitées"
Dresser la liste dans Contenu
61
Les listes déroulantes (3)
62
Les listes déroulantes (4)
63
Les listes déroulantes (5)
64
Les clefs (1)
65
Lier des tables (1)
66
Lier des tables (2)
67
Lier des tables (3)

68
Les filtres (1)
Les filtres permettent de limiter simplement, de
façon temporaire, les enregistrements affichés
dans une table.
  • On peut filtrer selon deux méthodes
  • le filtre sur un seul critère
  • ex les étudiants qui habitent Braine-le-Comte
  • le filtre sur plusieurs critères
  • ex les étudiants qui habitent Braine-le-Comte
    ou ceux qui sappellent  Durand .

69
Les filtres (2) à un seul critère
  1. on se positionne sur l'enregistrement d'un client
    habitant Paris,
  • on sélectionne le mot Paris dans le champ
    Ville
  • on clique sur licône de filtre
    et voilà
  • pour revenir à un affichage non filtré, on clique
    sur licône
    et nous voilà comme avant

70
Les filtres (3a) à plusieurs critères( filtre
par formulaire)
  1. on clique sur licône de filtre
  1. un enregistrement vide apparaît
  1. on sélectionne  Machin  dans le champ Nom
  1. Puis on sélectionne  ou  dans le coin inférieur
    gauche, on obtient un nouvel enregistrement vide

71
Les filtres (3b) à plusieurs critères( filtre
par formulaire)
  1. on sélectionne  Saint-Quentin  dans le champ
    Ville
  • pour terminer (et pas pour revenir à un affichage
    non filtré), on clique sur licône

72
Les requêtes ( interroger une base de données)
  1. Requête de consultation, (sélection,
    interrogation)
  1. Requêtes dans une table ou plusieurs tables
  2. Tri, filtres (critères), calculs, regroupement
  3. Projection, sélection / restriction, jointure
  1. Requête daction (attention)
  1. Mise à jour
  2. Suppression
  3. Ajout
  4. Création de table
  1. Requête danalyse croisée
  1. Requête SQL
  1. Langage spécifique, permet une exécution fine
    des requêtes ci-dessus

73
Créer une requête de consultation (1)
Interroger une base de données (plusieurs tables
éventuellement) Créer une requête de
consultation
74
Créer une requête de gestion (1)
Gérer une base de données (plusieurs tables
éventuellement) Créer une nouvelle table
Modifier la structure dune table Supprimer
une table Créer ou supprimer un index.
75
Créer une requête de manipulation (1)
Manipuler une base de données (plusieurs tables
éventuellement) Ajouter des données dans une
table Modifier les données dune table
Supprimer des données dune table.
76
Créer une requête de consultation (1)
Interroger une base de données (plusieurs tables
éventuellement) Créer une requête de
consultation
les noms des clients et ceux des villes où ils
sont domiciliés ?
Projection (dune table) -gt tous les
enregistrements, quelques champs
les noms des clients domiciliés à Paris ?
projection et restriction/sélection (dune table)
-gt quelques champs de quelques enregistrements
spécifiques
les dates des commandes passées par les clients
domiciliés à Paris ?
projection, restriction/sélection et jointure
(de plusieurs tables)
77
Créer une requête consultation (2)
Requêteur graphique langage visuel propre à
chaque logiciel, possibilités sont limitées lors
de cas complexes.
SELECT liste des champs à afficher FROM liste
des tables utilisées WHERE champ et critère de
condition AND champ commun aux tables
utilisées ORDER BY champ à trier ASC ou DESC
Les logiciels SGBDR intègrent également un
langage textuel de programmation de requêtes le
SQL (Structured Query language), universel,
normalisé et capable de traiter toutes les
difficultés.
22
78
Créer une requête consultation (3)
Les requêtes de consultation en SQL ont
généralement la structure suivante
Linstruction SELECT permet de lister les champs
que lon souhaite obtenir, il correspond à
l opérateur de PROJECTION.
SELECT liste des champs à afficher FROM liste
des tables utilisées WHERE champ et critère de
condition AND champ commun aux tables
utilisées ORDER BY champ à trier ASC ou DESC
Linstruction FROM permet de lister les tables
utiles à la requête.
Les instructions WHERE et AND sont liées. Elles
permettent dintroduire - les critères de
conditions correspondant à lopérateur de
RESTRICTION. - les champs communs aux tables
utilisées correspondant à lopérateur de JOINTURE.
Linstruction ORDER BY permet de demander un tri
sur un champ (ASC pour croissant et DESC pour
décroissant).
22
79
Langage des requêtes projection(présentation
théorique)
Une requête de consultation est une interrogation
de la base de données portant sur le contenu
dune ou plusieurs relations. Elle met en jeu des
opérateurs (projection, restriction, jointure).
La projection consiste en un découpage vertical.
Requête1 On souhaite obtenir les noms des
clients (tous) et ceux des villes où ils sont
domiciliés. Pour cela, nous allons utiliser
lopérateur de projection.
15
80
Requêtes projection(requêteur graphique)
Les logiciels de gestion de bases de données
(SGBDR) mettent à disposition des utilisateurs un
requêteur graphique (Query by example dans le
logiciel Access) permettant de réaliser des
requêtes de consultation facilement et
intuitivement.
Requête avec projection VILLES DES CLIENTS
Table utilisée dans la requête.
Projection des champs retenus dans la requête. Un
attribut est appelé un champ par le logiciel.
18
81
Requêtes projection(langage SQL1)
Projection Exemple Une projection est une
instruction de consultation permettant de
sélectionner un ensemble de colonnes (champs,
arguments) dans une table. Soit la table Clients
qui contient les champs NumCli, NomCli,
Adresseruecli, AdresseCPcli, Adressevillecli

Linstruction Select FROM Clients aura
comme résultat un tableau contenant lensemble de
la table (tous les champs)
Linstruction Select NomCli, Adressevillecli
FROM Clients aura comme résultat un tableau
contenant uniquement les informations (les
champs) correspondant(e)s.
82
Requêtes projection(langage SQL2)
Projection Suite Une projection est une
instruction de consultation permettant de
sélectionner un ensemble de colonnes dans une
table. Soit la table Clients qui contient les
champs NumCli, NomCli, Adresseruecli,
AdresseCPcli, Adressevillecli

Linstruction Select DISTINCT Adressevillecli
FROM Clients aura comme résultat lensemble des
villes où lon a des clients (sans doublons)
Linstruction Select NomCli, Adressevillecli
FROM Clients ORDER BY Adressevillecli aura
comme résultat la liste des clients, classés
alphabétiquement par commune.
83
Requêtes projection
84
Requêtes restriction/sélection(présentation
théorique)
La restriction ou sélection consiste en un
découpage horizontal.
La projection consiste en un découpage vertical.
Requête2 On souhaite obtenir les noms des
clients domiciliés à Paris. Nous conserverons le
nom de la ville dans laffichage. Pour cela, nous
allons utiliser les opérateurs de projection et
de restriction/sélection.
16
85
Requêtes restriction sélection(requêteur
graphique)
Table utilisée dans la requête.
Projection des champs retenus dans la requête.
Restriction sur le champ  adressevillecli  en
posant comme critère  paris .
Requête avec projection et restriction CLIENTS
PARISIENS
19
86
Requêtes restriction sélection (langage SQL1)
Restriction - sélection Exemple Une
restriction est une instruction de consultation
permettant de sélectionner un ensemble de lignes
dans une table, selon un critère fixé. Soit la
table Clients qui contient les champs NumCli,
NomCli, Adresseruecli, AdresseCPcli,
Adressevillecli

Linstruction Select Nomcli FROM Clients WHERE
Adressevillecli"paris" aura comme résultat la
liste des clients parisiens
Linstruction Select NomCli, Adressevillecli
FROM Clients WHERE Adressevillecli"paris" OR
Adressevillecli"lille" aura comme résultat la
liste des clients parisiens ou lillois.
87
Requêtes restriction sélection (langage SQL2)
Soit la table ETUDIANT (NEtudiant, Nom, Age,
CodePostal, Ville) SELECT FROM ETUDIANTWHERE
Age IN (19, 20, 21, 22, 23) SELECT FROM
ETUDIANTWHERE Age BETWEEN 19 AND 23 SELECT
FROM ETUDIANTWHERE CodePostal LIKE 70      
SELECT FROM ETUDIANTWHERE CodePostal LIKE
70?0     SELECT FROM ETUDIANTWHERE Ville
IS NULL      // Étudiants pour lesquels la ville
n'est pas renseignée SELECT FROM
ETUDIANTWHERE Ville IS NOT NULL      //
Étudiants pour lesquels la ville est renseignée
88
Requêtes restriction sélection (exemple 1)
Soit une base contenant plusieurs tables, soit la
table Clients On clique sur requêtesnouveau/e
llemode création // Étudiants pour lesquels
la ville est renseignée
89
Requêtes combinaison de critères 1
Linstruction Select titre FROM Tableaux WHERE
(expo NOT LIKE paris) AND ((année BETWEEN
1600 And 1699) OR (année BETWEEN 1900 And
1999)) aura comme résultat la liste des titres
des tableaux ? non exposés à Paris, ? et datant
des XVIIe ou XXe siècles
90
Requêtes combinaison de critères 2
Et
Ou
91
Requêtes combinaison de critères 3
Et/ou 1
Et/Ou 2
Plusieurs Ou in(xyzw)
92
Langage des requêtes restriction sélection
93
Requêtes consultation jointure(présentation
théorique)
La jointure permet de lier deux tables ayant un
attribut commun.
La restriction consiste en un découpage
horizontal.
La projection consiste en un découpage vertical.
Requête3 On souhaite obtenir les dates des
commandes passées par les clients domiciliés à
Paris Pour cela, nous allons utiliser les
opérateurs de projection,de restriction et de
jointure.
17
94
Requêtes jointure(requêteur graphique)
Requête avec projection, restriction et jointure
DATES DE COMMANDES DES CLIENTS PARISIENS
Tables utilisées dans la requête.
Jointure liant les deux tables ayant un champ
commun  numcli .
Projection des champs retenus dans la requête.
Restriction sur le champ  adressevillecli  avec
le critère  paris .
20
95
Requêtes jointure(langage SQL1)
Jointure Exemple Une jointure est une
instruction permettant de sélectionner un
ensemble de lignes dans plusieurs tables (liées),
selon un critère fixé. Soit les tables Client,
Commande qui contient les champs NumCli,
NomCli, Adresseruecli, AdresseCPcli,
Adressevillecli NumCom, datecom,
NumCli
Linstruction Select Nomcli, Adressevillecli,
datecom FROM Clients, Commande WHERE
Adressevillecli"paris AND Clients.NumCli
Commande.NumCli aura comme résultat la liste des
dates de commandes des clients parisiens
96
Langage des requêtes jointure
97
Langage des requêtes jointure
98
Les requêtes paramétrées
Dans la ligne Critères du (ou des) champs
concerné(s) par le paramétrage, entrer entre
crochets linvite qui apparaîtra dans la
boîte de dialogue.
La requête est alors exécutée en fonction de la
réponse de l'opérateur.
99
Requêtes analyse croisée
Il s'agit d'un tableau interactif qui contient
des données de synthèse constituées à partir
d'une BDD interne (Access) ou externe (SQL
Server, etc.) que l'on peut manipuler à l'aide de
fonctions statistiques pour les analyser sous
divers angles.
Le vocable dynamique découle du fait que l'on
peut faire pivoter les titres des colonnes et
des lignes pour obtenir différentes
présentations analytiques des données.
  • Exemples,
  • récapituler les ventes par service, par mois ou
    par vendeur
  • subdiviser ces catégories par produit
  • comparer les ventes réalisées et les dépenses
    avec les montants budgétés par mois, par
    trimestre ou par année.

Par rapport à une requête Sélection, les
informations obtenues sont plus compactes et se
prêtent donc mieux à une analyse. 
100
Requêtes analyse croisée
Par rapport à une requête Sélection, les
informations obtenues sont plus compactes et se
prêtent donc mieux à une analyse. 
101
Requêtes fonctions de calcul
  • Les fonctions suivantes peuvent être utilisées
    dans une clause SELECT pour effectuer des calculs
    sur le résultat de la requête
  • COUNT nombre d'enregistrements (Pour éviter de
    compter les doublons, on peut ajouter le
    paramètre DISTINCT)
  • SUM somme d'une colonne
  • AVG moyenne (average)
  • MAX maximum d'une colonne
  • MIN minimum d'une colonne

102
Requêtes fonctions de calcul
  • Select AVG(tableagrégation.nombre) as
    Moyennedenombre from tableagrégation

103
Requêtes fonctions de calcul
  • Select COUNT() from PERSONNEL? nombre de
    salariés

104
Requêtes fonctions de calcul
  • Select SUM(salaire) from PERSONNELwhere
    fonction maitre-assistant ? Somme des
    salaires des maître-assistant 

105
Requêtes regroupement sans fonction de calcul
1
  • Select tableagrégation.ville from
    tableagrégationGROUP BY tableagrégation.ville

106
Requêtes regroupement sans fonction de calcul
2
  • Select from GROUP BY

107
Requêtes fonctions de calcul et groupement
  • Select AVG(tableagrégation.nombre) as
    Moyennedenombre from tableagrégationGROUP BY
    tableagrégation.ville

108
Requêtes groupement, sélection et fonction de
calcul
On affiche les villes pour lesquelles la moyenne
du champ "nombre" est supérieure à 400. On
affiche aussi les moyennes du champ "nombre" pour
les villes retenues.
Select tableagrégation.ville, avg(nombre) from
tableagrégationGROUP BY tableagrégation.villeHAV
ING avg(nombre)gt400
109
Requêtes groupement, sélection et fonction de
calcul 2
On affiche les numéros de client et le nombre de
commandes passées.
Select numclient, count() from commandeGROUP
BY numclient
110
Requêtes groupement, sélection et fonction de
calcul 3
On affiche pour chaque client ayant passé plus de
2 commandes, quel est le montant minimum, et
maximum des commandes quil a passées.
Select numclient, min(montant), max(montant)
from commandeGROUP BY numclient HAVING
count()gt2
111
Requêtes groupement, sélection et fonction de
calcul 4
On affiche pour chaque client ayant passé plus de
2 commandes, son numéro, nom, prénom, nombre de
commandes passées, moyenne et cumul total des
montants, le tout trié par nombre décroissant de
commandes passées, puis par noms, prénoms
croissants
Select cl.numclient, nom, prenom, count(),
avg(montant), sum(montant) from client cl,
commande co WHERE cl.numclient
co.numclientGROUP BY numclient HAVING
count()gt2 ORDER BY 4 desc, nom, prenom
112
Requêtes groupement, sélection et fonction de
calcul 5
On affiche pour chaque élément commandé, ceux
dont 90 de la quantité commandée dépasse les 500
unités
Select from details WHERE quantite
quantite 0,1 gt 500
113
Requêtes groupement, sélection et fonction de
calcul 6
On affiche pour chaque élément commandé, ceux
dont 90 de la quantité commandée dépasse les 500
unités
Select sum(prixunitaire quantite) from
details WHERE numcommande  PO467-2009 
114
Requêtes requêtes imbriquées (intersection) 1
On affiche les étudiants qui se sont inscrits
après être passés par la journée portes ouvertes
Select numetud, nom, prenom from students
WHERE numetud in (select numetud
from JPO)
Select numetud, nom, prenom from
students Intersect select numetud
from JPO)
115
Requêtes requêtes imbriquées (intersection) 2
On affiche les étudiants qui se sont inscrits
sans être passés par la journée portes ouvertes
Select numetud, nom, prenom from students
WHERE numetud NOT in (select numetud
from JPO)
Select numetud, nom, prenom from students Minus
select numetud from JPO)
Select numetud, nom, prenom from
students Except select numetud from
JPO)
116
Requêtes exemples et exercices
  • Travail (présentation Powerpoint) relatif aux
    requêtes (les fautes dorthographe sont de leurs
    auteurs)
  • Fait par Hyacinthe Laini (59 dias)
  • Fait par Didric Sluis (21 dias)
  • Fait par Céline Stevens (21 dias)
  • Fait par Giusy Talluto (27 dias)
  • Fait par Jonathan Visage (23 dias)

117
Requêtes exemples et exercices
  • Travail (présentation Powerpoint) relatif aux
    requêtes, une cinquantaine dexemples (les fautes
    dorthographe sont de leurs auteurs)
  • NET_PROVENCE,fait par Richit Nathalie, Pouplier
    Thierry, Patrice Viaud, Patrick Laupies (42 dias)

118
Formulaires assistant (1)
119
Formulaires assistant (2.1)
120
Formulaires assistant (2.2)
121
Formulaires assistant (3)
122
Formulaires assistant (4)
123
Formulaires assistant (5)
124
Formulaires assistant (6)
125
Formulaires instantané (6)
126
Formulaires assist. Graph. (7)
127
Formulaires assist. Graph. (8)
128
Formulaires assist. tabl. dyn. (9)
129
États création (1)
130
États création (2)
131
États création (3)
132
États création (4)
133
États création (5)
134
États création (6)
135
États création (7)
136
États assistant étiquettes (8)
137
États assistant étiquettes (9)
138
États calculs (10)
139
États tris regroupements (11)
140
Cas Baronnia (énoncé 1)
  • Dans la haute société, Madame la Baronne Damien
    Fèz de V'nir (Ukraine) est une figure
    incontournable. Elle organise avec un brio
    inégalé des réceptions qui vont du souper simple
    entre amis (24 couverts, 5 services), à la soirée
    de mariage princier.
  • Inutile de dire que ses invitations sont
    extrêmement prisées. Et pour cause...
  • Madame la Baronne, avec beaucoup de tact, veille
    à inviter au moins une fois l'an chacune de ses
    relations. En bonne hôtesse, elle sait présenter
    ses invités les uns aux autres en rappelant les
    professions respectives et, le cas échéant, à
    quelle réception ils ont déjà eu l'occasion de se
    rencontrer.
  • Le nombre d'amis et relations ne faisant que
    croître, Madame la Baronne envisage - non sans
    une certaine répugnance - de recourir à
    l'ordinateur ("Vous savez très chère, cette chose
    pleine de puces et de souris..."). Sur
    recommandation de son ami intime, le Comte René
    de Saissandre, qui vous connaît très bien (si, si
    ...), elle décide de vous confier la résolution
    de cet angoissant problème.

141
Cas Baronnia (énoncé 2)
  • Madame la Baronne désire
  • établir un carnet d'adresse de ses amis,
    relations et connaissances (en distinguant
    chacune de ces catégories)
  • savoir si telle personne était présente à la
    dernière réception, si elle était malade ou
    excusée
  • savoir depuis combien de temps telle personne n'a
    plus été invitée et adresser des invitations à
    celles qui n'ont plus été invitées depuis 8 mois
  • connaître l'âge (en toute discrétion bien sûr),
    la profession et le revenu annuel (en toute
    discrétion aussi ça va de soi) de ses relations
  • faire la liste des personnes qui appartiennent à
    une tranche d'âge donnée
  • vérifier le budget, c'est-à-dire connaître le
    coût des réceptions. On compte un coût fixe
    (location du château) et un coût proportionnel
    par invité (menu)
  • savoir si une invitation a été confirmée
  • savoir si le temps était beau, maussade ou
    pluvieux à chacune de ses réceptions
  • etc.

142
Cas Baronnia (énoncé 3)
  • Quelques informations supplémentaires
  • On ne considère que les personnes individuelles
    et non les couples
  • Les invités apportent souvent un petit cadeau.
    Pour éviter tout impair, il faut savoir qui a
    apporté quoi et à quelle réception
  • De même, certains invités reçoivent un petit
    cadeau (anniversaire, promotion...) il faut
    savoir qui a reçu quoi et à quelle réception...
    et pour quelle valeur (budget)
  • Plusieurs amis possèdent un titre de noblesse

143
Cas Baronnia (énoncé 4)
  • Quelques exigences particulières, il faudrait
    pouvoir obtenir
  • la liste des personnes invitées à la réception du
    jj/mm/aaaa, titre, nom, prénom, profession de
    l'invité tri par nom
  • la liste des personnes présentes à la réception
    du jj/mm/aaaa (critère) tous les champs tri
    par nom
  • la liste de toutes les réceptions Date, lieu,
    nombre d'invités présents tri par date
    décroissante
  • le coût d'une réception donné par la formule
    suivante nombre d'invités (sauf excusés) x coût
    par personne coût fixe coût des cadeaux
    offerts

144
Cas Baronnia (énoncé 5)
  • Quelques réceptions remarquables

Lieu Date Coût fixe (Eur) Coût / pers (Eur)
Château de Lamalle 21 juillet 1999 1 250 100
Château d'Outre Meuse 15 août 1999 1 350 125
Domaine des Prés Fleuris 14 février 1998 950 62,5
Ferme du Marquisat 21 mars 1999 450 45
145
Cas Baronnia (énoncé 6)
  • Quelques amis et relations (remarquables ?)

Identité Adresse Ville
Omer dAlors Rue neuve 5 Juprelle
Dominique Nique (marquise) Rue Dewonck 67 Fexhe
Roland Nôset-Abond Rue du sale 118 Mellery
Elvire Sacutti Rue provinciale Villers
Aubin Sahalore (comte) Rue Maréchal 114 Lantin
146
Diviser pour régner
Carnet dadresse
Covert Harry, rue Minant 3, 6681 Lavacherie, 0475 98 76 54
Dalors Homère, rue Tilant 9, 1348 Louvain-la-Neuve, 010 11 12 13
John Deuf, rue Barbe 10, 7090 Dour, 065 43 21 00
Qui Où Tel
Covert Harry rue Minant 3, 6681 Lavacherie, 0475 98 76 54
Dalors Homère rue Tilant 9, 1348 Louvain-la-Neuve 010 11 12 13
John Deuf rue Barbe 10, 7090 Dour 065 43 21 00
cPrenom cNom cAdresse cCP cCommune cTel
Harry Covert rue Minant 3 6681 Lavacherie 0475 98 76 54
Homère Dalors rue Tilant 9 1348 Louvain-la-Neuve 010 11 12 13
John Deuf rue Barbe 10 7090 Dour 065 43 21 00
147
Structure des bases de données
148
Utile dans les requêtes (1)
Like "S" Fournit tous les enregistrements pour lesquels le champ commence par  S.
Like "Imports" Fournit tous les enregistrements pour lesquels le champ termine par le mot "Imports".
Like "A-D" Fournit tous les enregistrements pour lesquels le champ commence par une lettre entre A et D.
Like "ar"  Fournit tous les enregistrements pour lesquels le champ contient la séquence "ar".
Like "Acc?" Fournit tous les enregistrements pour lesquels le champ commence par "Acc" et pour lesquels la quatrième et dernière lettre est inconnue.
Like forms!NomForm!NomChamp Fournit tous les enregistrements pour lesquels le champ est identique au champ "NomChamp" du formulaire "NomForm".
149
Utile dans les requêtes (2)
lt 100 Fournit tous les enregistrements pour lesquels le champ contient une valeur numérique inférieure à 100.
lt 1/1/2000 Fournit tous les enregistrements pour lesquels le champ contient une date antérieure au 1/1/2000.
A And B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A et le critère B.
A Or B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A ou le critère B.
A Xor B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A ou le critère B de manière exclusive.
Null Fournit tous les enregistrements pour lesquels le champs est vide.
Is not null Fournit tous les enregistrements pour lesquels le champs n'est pas vide.
150
Les cardinalités (1)
A
B
A
B
A
B
a1
b1
a1
b1
a1
b1
a2
b2
a2
b2
a2
b2
a3
b3
a3
b3
a3
b3
a4
b4
a4
b4
a4
b4
a5
b5
a5
b5
a5
b5
a6
b6
a6
b6
lt1,1gt (0,1)-(1,1) One to one
lt1,ngt (0,n)-(1,1) One to many
ltm,ngt (1,n)-(0,n) Many to many
Write a Comment
User Comments (0)
About PowerShow.com