0% ont trouvé ce document utile (0 vote)
58 vues155 pages

Access Cours Complet

Transféré par

Mah Randriamitsiry
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues155 pages

Access Cours Complet

Transféré par

Mah Randriamitsiry
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 155

Bases de données sous

Access
Plan
 Initiation aux bases de données

 Application sous Access

 Structure d’une base de données


 Langages de manipulation de données
 Algèbre relationnelle (théorique)
 QBE d’Access
 SQL
INITIATION AUX BASES DE DONNEES
Initiation aux bases de données
• Une base de données est un ensemble ou une
collection structurée de données.
• Il existe plusieurs types de bases de données (BD’s) qui
se distinguent par la façon dont les données sont
structurées.
• BD’s relationnelles, objet, hiérarchiques, réseau,
fonctionnelles, déductives …
• 95% des BD’s sont relationnelles
• Oracle, société éditrice de logiciels pour bases de
données est la deuxième plus grosse société après
Microsoft. Une BD relationnelle est composée d’un
Structure d’une BD relationnelle

 Une BD relationnelle est composée d’un ensemble de


tables (ou relations).

 Une table est composée de


 Lignes qu’on appelle enregistrements (ou tuples)
 Colonnes représentant chacune un champ (ou un attribut).

 Chaque table a un nom.

 Chaque champ a un nom et un type


 Texte, numérique, date, …
Exemple de table
Nom de la table 3 champs

Commande N°Commande DateCommande Montant

27 13/2/2007 120

65 12/1/2008 34

2 10/06/2006 27
34 14/12/2007 1500

4 enregistrements N°Commande est du type numérique entier


Montant est du type numérique réel
DateCommande est du type date
Quelques contraintes

 Deux tables d’une même base de données ne peuvent


pas avoir le même nom.

 Deux champs de la même table ne peuvent pas avoir


le même nom.

 Un même champ peut être présent dans plusieurs


tables.
Exemple de base de données
Auteur
Livre
N°Auteur NomAuteur
N°Livre TitreLivre
1 Dupont
10 La monnaie
25 La finance 2 Durand

3 Martin

LivreAuteur
N°Livre N°Auteur
10 1
25 1
25 3
SGBD
 Les logiciels qui permettent de gérer des bases de données
sont appelés « Systèmes de Gestion de Bases de
Données ».

 Acces est un SGBD relationnel.

 MySQL, SQL Server, Postgres, Oracle, DB2, …

 Un SGBD permet de
 Créer une BD
 Modifier la structure des tables
 Interroger la BD
 Modifier la BD
 …
Création d’une base de données
1. Lancer Access.

2. Demander la création d’une nouvelle base.

3. Donner un nom à votre base.

4. Ça y est, votre BD est créée mais pour l’instant


elle ne contient aucune information.

5. Noter qu’Access aura créé un fichier d’une taille


non négligeable!
Création d’une table
Création d’une table

La liste des champs


Commentaires sur le champ

Le type de chaque champ


Création d’une table

 Une fois qu’on a fini de taper tous les champs composant la


table,
 Fermer la fenêtre de création,
 Access demande alors le nom de la table,
 Access va demander aussi de préciser la clé primaire. On
reviendra plus tard sur cette notion,
 Ça y est, notre table « Album » est créée,
 Pour afficher son contenu, il suffit de cliquer deux fois dessus,
 On peut ensuite saisir, supprimer, modifier des enregistrements.
Les types des champs
 NuméroAuto : numéro incrémenté à chaque insertion d’un nouvel
enregistrement.

 Numérique: C’est à l’utilisateur de taper sa valeur. Par défaut, il s’agit d’un


entier mais on peut préciser si c’est un réel.

 Texte : c’est une chaîne de caractères. On peut préciser sa taille.

 Oui/Non : ça correspond aux champs qui ne peuvent prendre que l’une des
deux valeurs OUI ou NON.

 Date/Heure : Type des champs qui indiquent une notion de temps. Plusieurs
formats sont disponibles.

 D’autres types encore mais rarement utilisés.


Propriétés d’un champ

Les propriétés qu’on peut


préciser pour un champ
Propriétés du type Texte

 Les plus utilisées :


 Taille du texte : en nombre de caractères maximum,
 Valeur par défaut : valeur prise par ce champs si l’utilisateur,
lors de l’insertion d’un nouvel enregistrement ne précise pas
de valeur,
 Null interdit : Est-ce que l’utilisateur est obligé de donner une
valeur pour ce champ ou pas,
 Indexé : permet d’optimiser la recherche sur ce champ. On
peut utiliser cette propriété pour exiger que les valeurs du
champ doivent être uniques (sans doublons),
 Liste de choix : permet de préciser l’ensemble des valeurs
correctes.
Propriétés du type numérique

Entier

Réel
Notion de clé primaire

 Une clé primaire dans une table est


 Un champ ou un ensemble de champs
 Qui permet d’identifier chaque ligne dans la table
 Deux enregistrements ne doivent pas avoir la même valeur
pour la clé
 Par exemple: dans la table Album,
 le champ NumAlbum est une clé primaire car deux albums ne
doivent pas avoir le même numéro.
 Le champ Année n’est pas une clé primaire car deux albums
peuvent avoir la même année de sortie.
Conséquences de la déclaration d’une
clé primaire

 Le système (Access) va refuser l’insertion d’un nouvel


enregistrement si cela viole l’unicité de valeur pour la clé
primaire
 S’il y a déjà un enregistrement avec la même valeur pour la clé
primaire, le système va refuser la modification de la clé
primaire si la nouvelle valeur existe déjà.
Déclaration d’une clé primaire
2. Cliquer ici

1. Sélectionner le ou les champs formant la clé


Notion de clé étrangère

 Un champ (ou ensemble de champs) est clé


étrangère dans une table s’il fait référence à une clé
primaire dans une autre table.

 Par exemple
 le champ NumArtiste est clé primaire dans la table Artiste,
 ce champ est donc clé étrangère dans la table Album.

 On parle dans ce cas d’intégrité référentielle.


Conséquences de la déclaration d’une
clé étrangère

 Le système va refuser l’insertion d’un album si son NumArtiste


n’existe pas dans la table Artiste.

 Le système va refuser la suppression d’un artiste s’il existe dans


la table Album des enregistrements qui lui sont associés.

 Le système va refuser la modification d’un NumArtiste dans


Album si la nouvelle valeur n’est pas présente dans Artiste.

 Le système va refuser la modification d’un NumArtiste dans


Artiste s’il y a déjà des albums qui sont associés à l’ancienne
valeur.
Création des clés étrangères (1)

1. Cliquer sur le
bouton « Relations »

2. Afficher les deux


tables Artiste et
Album
Création des clés étrangères (2)

Cocher cette case En déplaçant NumArtiste


d’Artiste sur NumArtiste
d’Album, on obtient cette fenêtre.
Création des clés étrangères (3)

Cette relation signifie qu’un artiste peut être


associé à plusieurs albums et un album est
associé à un seul artiste.
INTERROGATION D’UNE BD
Requêtes sous Access
QBE : INTERFACE GRAPHIQUE DE FORMULATION DES
REQUETES

TABLES UTILISEES

Conditions de restriction Colonnes de la table résultat


Requêtes sous Access : projection
Afficher le titre et l’année de sortie de tous les albums

Cliquer ici pour exécuter

Cases à cocher pour afficher ces champs


Requêtes sous Access : sélection
Afficher les albums sortis après 1975

On affiche tous les champs

Critère ou condition de sélection


Requêtes sous Access : sélection
Afficher les albums sortis après 1975 (solution 2)

Album.* désigne tous les champs de


la table Album

Case non cochée sinon Année sera affichée 2 fois


Requêtes sous Access : sélection + projection
Afficher les titres des albums sortis après 1975

Année n’est pas affichée mais sert


Le titre est affiché à exprimer le critère de sélection
Requêtes sous Access : sélection complexe
Afficher les albums de l’artiste 2 sortis après 1975

Deux conditions sur la même ligne sont composées par un ET


Requêtes sous Access : sélection complexe
Afficher les albums sortis entre 1975 et 1980
Requêtes sous Access : sélection complexe
Afficher les albums sortis entre 1975 et 1980
Requêtes sous Access : sélection complexe
Afficher les albums sortis en 1975 ou en 1980

Ligne permettant d’exprimer le OU


Requêtes sous Access : sélection complexe
Afficher les albums sortis en 1975 ou en 1980
Requêtes sous Access : projection
Afficher les années de sortie des albums

Une même année


peut apparaitre
plusieurs fois dans
le résultat si
plusieurs albums
sont sortis durant
cette année.
Requêtes sous Access : projection
Afficher les années de sortie des albums
Afficher les Propriétés avec un clic droit ici

Mettre à OUI la propriété « valeurs distinctes »


Requêtes sous Access : projection
Afficher les titres des albums triés par ordre croissant

Permet de spécifier le
type de tri que l’on veut
Requêtes sous Access : jointure
Pour chaque album, donner son titre et le nom de son auteur

Lien traduisant la jointure


Requêtes sous Access : jointure
Pour chaque album, donner son titre et le nom de son auteur

Solution équivalente avec


produit cartésien et sélection
Requêtes sous Access : opérations
Afficher le nombre d’albums

Cliquer ici pour afficher la


ligne « opération »

Renommage

On choisit de compter le
nombre de numéros d’albums
Requêtes sous Access : jointure
Afficher le nombre d’albums

Renommage
Requêtes sous Access : jointure
L’année du plus ancien album
Les opérations d’Access
Les plus utilisées :

Max : la valeur maximale

Min : la valeur minimale

Compte : compter le nombre de valeurs

Moyenne : la valeur moyenne

Somme : la somme des valeurs

Regroupement : permet de regrouper des enregistrements

Où : permet de poser des conditions sur des enregistrements


Gestion des valeurs distinctes
Le nombre d’années différentes

Cette requête affiche le nombre


d’années. Une même année sera
comptée autant de fois qu’elle
apparaît dans la table Album.
Gestion des valeurs distinctes
Le nombre d’années différentes (1)

Créer d’abord une requête qui affiche les


années distinctes puis l’enregistrer par
exemple sous le nom AnnéesDistinctes.
Gestion des valeurs distinctes
Le nombre d’années différentes (2)

Compter le nombre
d’années qu’il y a dans
« AnnéesDistinctes ».

Noter que la table


qu’on a affichée est
en fait une requête.
Opérations sous Access
Les albums les plus anciens :
Ce sont ceux dont l’année de sortie est égale à l’année minimale
1. Requête qui affiche l’année minimale (Requête « AnnéeMin »)
2. Utiliser cette requête pour comparer l’année de sortie de l’album

2
Opérations sous Access
Les albums qui ne sont pas les plus anciens :
Ce sont ceux dont l’année de sortie est différente de l’année
minimale
1. Requête qui affiche l’année minimale (Requête « AnnéeMin »)
2. Utiliser cette requête pour comparer l’année de sortie de l’album
1

2
Le regroupement
Pour chaque artiste, afficher son numéro ainsi que le nombre
de ses albums

On regroupe les lignes en fonction


du NumArtiste : Deux lignes qui ont
le même NumArtiste seront dans le
même groupe.

Pour chaque groupe, on


compte le nombre de
NumAlbum.
NumAlbum Titre Année NumArtiste
23 Hier 1960 123
27 Suzanne 1976 25
36 Demain 1974 123 Après
regroupement
67 Montreal 1974 25 sur NumArtiste
137 Thriller 1983 22

NumAlbum Titre Année NumArtiste


23 Hier 1960 123
36 Demain 1974 123
27 Suzanne 1976 25
67 Montreal 1974 25
137 Thriller 1983 22
Regroupements
A B C Par A. On A B C
obtient 2 1 2 1
1 2 1 groupes
1 1 2 1 1 2
2 2 1 1 3 2
1 3 2 2 2 1

A B C
1 1 2
Par B. On
1 2 1
obtient 3
groupes 2 2 1
1 3 2
Le regroupement
Pour chaque artiste, afficher son nom ainsi que le nombre de
ses albums

On regroupe les lignes en fonction


du Nom.

Pour chaque groupe, on


compte le nombre de
NumAlbum.
Le regroupement
Afficher le numéro des artistes qui ont plus d’un album

On regroupe les lignes en fonction


du NumArtiste.

Pour chaque groupe, on


compte le nombre de
NumAlbum et on vérifie si
ce nombre est supérieur à 1.
Le regroupement
Afficher le numéro des artistes qui ont au moins un album
dont le numéro est supérieur à 1

On regroupe les lignes en fonction


du NumArtiste

Toutes les lignes où


NumAlbum est ≤ 1 sont
d’abord supprimées
Le regroupement
Les critères de sélection

Quand on utilise le regroupement, il y a deux types de


conditions (critères) :

• Condition sur les groupes : Utiliser une des fonctions de


calcul Min, Max, Moyenne, Somme, Compte, …

• Condition sur les lignes : utiliser l’opération OÙ


La différence sous Access

 Quels sont les numéros des artistes pour lesquels on n’a


pas enregistré d’albums ?

 Projection(Artiste; NumArtiste) = R1
 Projection (Album; NumArtiste) = R2
 Différence(R1; R2) = résultat

 Sous Access, il n’est pas possible d’exprimer


directement la différence. Il faut passer par la « jointure
externe ».
La jointure externe
• jointureExterne(R1; R2) = R
• R est obtenue en joignant les lignes de R1 avec les
lignes de R2
• Les lignes de R1 qui ne sont pas joignables seront
aussi présentes mais avec aucune valeur pour les
champs de R2 (valeur NULL)

R
R1 A B R2 B C
A R1.B R2.B C
a1 b1 b1 c1
a1 b1 b1 c1
a2 b2 b3 c3 a2 b2
La jointure externe
R1 A B R2 B C R
A R1.B R2.B C
a1 b1 b1 c1
a1 b1 b1 c1
a2 b2 b3 c3
a2 b2

Quels sont les B de R1 qui ne sont pas dans R2 ? Ce sont


ceux pour qui C=NULL dans R
Sélection(R; C=NULL) = R’
Projection(R’; R1.B) = résultat
Résultat = projection(R1,B) – projection(R2, B)
La différence
 Quelssont les noms des artistes qui n’ont pas
enregistré d’albums ?

Cliquer sur la jointure


avec le bouton droit afin
de changer ses propriétés
La différence
 Quels sont les noms des artistes qui n’ont
pas enregistré d’albums ?
La différence
 Quels sont les noms des artistes qui n’ont
pas enregistré d’albums ?

Nous avons une flèche


dirigée de Artiste vers
Album
L’intersection
 Quelles sont les personnes qui sont en même temps
gérantes et occupantes d’un appart ?

 C’est l’intersection des champs NomGérant et


NomOccupant.

 Toute intersection peut être exprimée par une jointure


 Intersection(R1;R2)=jointure(R1;R2)

 L’inverse n’est pas vrai. Certaines jointures ne peuvent


pas être exprimées par une intersection.
L’intersection
Quelles sont les personnes qui sont en même temps gérantes et
occupantes d’un appart ?
L’union
 Il n’est pas possible d’exprimer l’union en utilisant le
QBE d’Access.
 Il faut utiliser le langage SQL.
 Exemple : Le NSS de toutes les personnes:
SELECT NSS FROM étudiant
UNION
SELECT NSS FROM employé
Requête de mise à jour

 On veut ajouter 1m2 à la superficie de tous les


appartements:
 On peut le faire à la main (difficile s’il y en a des centaines).
 On peut le faire par une requête de mise à jour.
Requête de mise à jour

Choisir le type « Requête de


Mise à jour »

On met à jour le champ


Superficie. Sa nouvelle valeur
est l’ancienne + 1
Requête ajout
 On veut créer une table « grandsApparts » qui contient ceux
ayant une superficie > 100.
 Copier/Coller la table Appart pour obtenir une nouvelle table
ayant la même structure.
Requête ajout
Licence MI2E- 1ère année
Outils en Informatique
Bases de données élémentaires
M. Manouvrier et M. Öztürk
Définitions générales et positionnement du cours dans la formation
Vocabulaire relatif aux bases de données relationnelles
Création d’une base de données
Requêtes d’interrogation
Présentation des données aux utilisateurs : Formulaires et États
Importation de données externes (ex. Excel)
Exportation des données de la base (ex. Web et Excel)
Évaluation du contrôle continu en base de données élémentaires
http://www.lamsade.dauphine.fr/~ozturk
BIBLIOGRAPHIE
Ouvrages de référence utilisés pour le cours :
Bases de données – Implémentation avec Access, Jérôme Aubert,
Ellipses Technosup, 2004, ISBN 2-7298-2012-4
Disponible à la BU : 651.8 AUB
Access 2002 pour les nuls, John Kaufeld, Hungry Minds
First Interactive, 2001, ISBN 2-84427-969-4
Disponible à la BU : 005.74 ACC
Documents en ligne :
http://www.infomagazine.ma/astuce_informatique/pages/access/accessmenu.htm

Aide Access

2
Chap. I – Définitions générales et
positionnement du cours dans la formation
Bases de données : Collection homogène et
structurée d'informations ou de données qui existent
sur une longue période de temps et qui décrivent les
activités d'une ou plusieurs organisations
Exemple 1 :
Organisation : une bibliothèque
Données : les livres, les emprunts, les emprunteurs
Exemple 2 :
Organisation : une Université
Données : les étudiants, les enseignants, les cours, etc.
3
Chap. I

Positionnement du cours dans la formation


• Objectifs de ce cours :
– Connaître le vocabulaire usuel en bases de données
– Savoir créer et manipuler une base de données simple à
l’aide d’un outil de bureautique (Microsoft ACCESS)
– Introduire les cours suivants de bases de données
• Cours à suivre :
– En L3 : Créer, gérer et manipuler des bases de données
complexes et apprendre à utiliser un Système de Gestion de
Bases de Données (SGBD)
– En M1 (Mentions Informatique) : Comprendre le
fonctionnement d’un SGBD de l’intérieur

4
Chap. I - Définitions générales et positionnement du cours dans la formation

SGBD (1/2)
Systèmes de Gestion de Bases de Données (DataBase
Management Systems - DBMS) :
Ensemble de logiciels systèmes permettant aux
utilisateurs d'insérer, de modifier, et de rechercher
efficacement des données spécifiques dans une grande
masse d'informations (pouvant atteindre plusieurs
milliards d'octets) partagée par de multiples
utilisateurs

Exemples : MySQL, PostgreSQL (utilisé en L3), Oracle,


Microsoft SQLServer, etc.
Cette année : utilisation d’un outil de bureautique de
gestion de bases de données Microsoft ACCESS 5
Chap. I - Définitions générales et positionnement du cours dans la formation

SGBD (2/2)
Principales fonctionnalités d’un SGBD :
Création et mises à jour de la structure de la base
de données (par le concepteur et/ou le DBA
DataBase Administrator)
Administration de la base de données : gestion des
utilisateurs, des droits d’accès etc. (par
l’administrateur – DBA)
Saisie et mises à jour des données (par le
concepteur et/ou les utilisateurs)
Interrogation des données selon différents critères
et/ou en effectuant des calculs (par les utilisateurs)
6
Chap. II – Vocabulaire relatif
aux bases de données relationnelles
Données : Ce que l’on stocke
Modèle relationnel : Modèle permettant d’organiser
les données en une représentation schématique qui
autorisera son exploitation par le SGBD ou l’outil de
bureautique de gestion de base de données

Un livre de la BU Modèle de
(ayant un titre, un données =
premier auteur et un représentation
Modèle
ISBN) peuvent être schématique des
relationnel
empruntés par les informations
étudiants (ayant un manipulées par
numéro de carte la BU
d’étudiant) etc.
7
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Relations (Tables)
Collection de nuplets (tuples en anglais) décrivant
des données de même structure
Tableau à deux dimensions composé d’attributs (ou
champs - en colonnes) et de nuplets (ou
enregistrements - en ligne)
Nom de la relation Noms des 6 attributs

Dans une relation :


3 nuplets
! Pas de doublon
Pas deux attributs de même nom 8
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé primaire
Attribut (ou ensemble d’attributs) permettant d’identifier
de manière unique les nuplets de la relation
Exemples :
L’attribut ISBN pour une relation Livre
L’attribut NuméroImmatriculation pour une relation Voiture
L’attribut NuméroCarte pour une relation Emprunteur
Par défaut : Création d’un attribut numérique s’incrémentant
automatiquement

Clé artificielle
(surrogate key)

Une clé primaire est unique (pas deux fois la même


! valeur) et a forcément une valeur (pas de valeur null)
9
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (1/6)


Attribut (ou ensemble d’attributs) d’une relation qui fait
(font) référence à la clé primaire d’une autre relation

A quoi cela sert ? Exemple d’une mauvaise relation :

Problèmes :
Répétition des noms, prénoms, dates de naissances, ISBN, etc.
autant de fois qu’il y a d’emprunts = Redondance d’information
Comment identifier les nuplets ?

! ⇒ Ne pas mettre toutes les données dans une seule relation !!!
10
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (2/6)


La solution ? Diviser les données en plusieurs relations

⇒ Division en 3 relations associées : Emprunteurs, Emprunts et Livres


⇒ Stockage unique des informations de chaque livre
⇒ Stockage unique des informations de chaque emprunteur
⇒ Stockage unique des informations de chaque emprunt
Attention : Access appelle Relation ce qui en fait s’appelle Association
11
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (3/6)


Associations entre plusieurs relations

Un emprunteur peut faire


Association un-à-plusieurs plusieurs emprunts (∞) mais
entre les relations Emprunteurs un emprunt correspond à un
et Emprunts seul emprunteur (1)
12
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (4/6)

L’attribut RefEmprunteur de la relation Emprunts est une clé


étrangère qui fait référence à l’attribut NuméroCarte de la relation
Emprunteurs
L’attribut RefLivreEmprunté de la relation Emprunts est une clé
étrangère qui fait référence à l’attribut ISBN de la relation Livres

13
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (5/6)

Fenêtre qui
s’affiche en
double-cliquant
sur l’association,
définissant que
l’attribut
Emprunteur de la
relation Emprunts
fait référence à
l’attribut
NuméroCarte de
la relations
Emprunteurs
14
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Clé étrangère (6/6)


Intégrité référentielle : Ensemble de règles garantissant
la cohérence (l'intégrité) des données réparties dans
plusieurs relations
Exemple d’une de ces règles :

On reviendra sur cette notion…


15
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (1/7)


Question sur les données
Moyen d’extraction des données de la base en
fonction de plusieurs critères
≠ relation car pas de stockage des données du résultat
Il existe plusieurs manières d’écrire des requêtes :
Requêtes graphiques (étudiées cette année)
Requêtes en SQL (Structured Query Language –
Langage de bases de données standard étudié en
détails en L3)
Il existe plusieurs types de requêtes
16
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (2/7)


Requête de Sélection : Tri des données
Relation Emprunteurs

Résultat de la requête « Classement des emprunteurs par ordre


alphabétique des noms de famille ? »

17
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (3/7)


Requête de Sélection : Filtrage des données selon
différents critères
Relation Emprunteurs

Résultat de la requête « Quels sont les noms et


prénoms des emprunteurs étudiants ? »

Résultat de la requête « Quels


sont les noms et prénoms des
emprunteurs étudiants habitant
Paris ? » 18
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (4/7)


Requête de Regroupement ou Jointure :
Regroupement des données de plusieurs relations
Relation Emprunteurs

Relation Livres

Relation Emprunts
« Quels sont les titres des
livres empruntés et le nom
et le prénom de leur(s)
emprunteur(s) ? » 19
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (5/7)


Requête de Regroupement ou Jointure :
Regroupement des données de plusieurs relations
Résultat de la requête « Quels sont les titres des livres empruntés
et le nom et le prénom de leur(s) emprunteur(s) ? »

Possibilité de combiner Sélection et Jointure :


Résultat de la requête
« Quels sont les titres
des livres empruntés par
Albert Gamotte ? »
20
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (6/7)


Requête de Calculs : Créer des données calculées
Relation Emprunteurs

Résultat de la requête « Combien y-a-t-il d’emprunteurs ? »

Résultat de la requête « Quel est l’age d’Albert Gamotte ? »

21
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Requête d’interrogation (7/7)


Combinaison des tous les types de requêtes
d’interrogation :
Relation Livres

Relation Emprunts

On reviendra sur
ces notions …
Résultat de la requête
« Combien y-a-t-il eu
d’emprunteurs par
livre ? »
22
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Index (1/2)
Structure de données, gérée par le système, permettant
d’accélérer l’accès aux données
Un index est associé à un ou plusieurs attributs
La clé primaire est indexée par défaut
Exemple : Si on cherche les enseignants parmi les emprunteurs
Relation Emprunteurs

Sans index ⇒ Lecture par le SGBD de tous les nuplets de la relation


Avec un index ⇒ Accès direct aux nuplets concernés
Enseignant 1236
Etudiant 1234, 1235 23
Chap. II - Vocabulaire relatif aux bases de données relationnelles

Index (2/2)
Index sur la clé primaire créé automatiquement
Créer un index lorsque :
• L’attribut est utilisé comme critère de recherche dans
plusieurs requêtes
• L’attribut est utilisé comme critère de tri
• Les valeurs de l’attribut sont très différentes (plusieurs
centaines ou milliers de valeurs différentes)
• La relation contient plusieurs milliers de nuplets

Un index ralentit les mises à jour


L’ajout, la suppression ou la mise à jour de nuplets
! impliquent une mise à jour de l’index
⇒ Ne pas créer trop d’index !
24
Chap. III – Création d’une base de données
Étape N°1 : Concevoir la base de données
= Réfléchir à ce que va contenir la base de données et
comment structurer les données
= Modélisation de la base de données
⇒ Modèle conceptuel de données
(hors programme – sera vu en L3)

Démarche :
Établir la liste des données devant être stockées dans
la base
Définir la structure des données

25
Chap. III – Création d’une base de données

Modèle relationnel
Étape N°2 : Définir le modèle relationnel
= le schéma des relations de la base de données
Démarche :
Pour chaque relation :
• Définir les différents attributs
• Définir la clé primaire
Pour chaque attribut de chaque relation
• Définir le type et le domaine
• Préciser les propriétés (taille, format, etc.)
Quand il y a plusieurs relations : définir les clés
étrangères
26
Chap. III – Création d’une base de données

Clé Créer une relation (ou table)


primaire

Partie où
définir les
attributs

Partie où
définir les
propriétés
de l’attribut

Penser à commenter vos relations (pour vous plus tard et pour


ceux qui utiliseront votre base de données) !!
27
Chap. III – Création d’une base de données

Type de données
Texte : Chaîne de 255 caractères maximum
Mémo : Texte de 65535 caractères maximum
Numérique : Ensemble de chiffres
• Octet : valeur entière entre 0 et 255
• Entier : valeur entière entre –32768 et +32768
• Entier long : valeur entière entre –2147483648 et +2147483648
• Réel simple et réel double : valeur décimale négative ou positive (précision
de7 chiffres pour simple de 15 pour double)
• Décimal : valeur décimale négative ou positive avec une précision de 28
chiffres décimaux
Date/Heure : Type spécifique pour les dates et les heures
Monétaire : Valeur numérique avec possibilités de gérer
automatiquement le symbole monétaire et le format d’affichage
Oui/non : valeur booléenne (oui/non, vrai/faux, actif/inactif, etc.)
Objet OLE : pour incorporer des images, des fichiers Excel, etc.
Assistant liste de choix : pour insérer une liste de valeurs possibles
28
Chap. III – Création d’une base de données

Propriétés d’un attribut


Taille du champ : taille maximum
Ex. Octet ou Entier pour le type Numérique
Format : aspect des valeurs de l’attribut à l’affichage
Ex. > (caractère supérieur) pour forcer les majuscules ou < (caractère
inférieur) pour forcer les minuscules
Masque de saisie : pour contrôler la saisie des valeurs de l’attribut
Légende : remplace le nom de l’attribut à l’affichage
Valeur par défaut : valeur prise par l’attribut avant toute saisie
Valide si : Expression logique pour contrôler les valeurs saisies
Ex. >=0 et <=20
Message si erreur : texte affiché en cas d’erreur de saisie
Null interdit : de la valeur oui ou non, indiquant si on peut ou non
ne pas donner de valeur (= null) à l’attribut
Attention : null ≠ chaîne vide
Par défaut pas de valeur null pour la clé primaire
Indexé : de valeur non, oui avec doublons et oui sans doublon
29
Chap. III – Création d’une base de données

Liste de choix
Domaine/Ensemble de valeurs prédéfinies d’un attribut
Deux possibilités :
Saisie des valeurs souhaitées Enregistrement des valeurs
"en dur" (difficilement dans une relation liée (plus
modifiable par la suite) souple)

30
Chap. III – Création d’une base de données

Valeur par défaut et expression (1/2)

Utilisation de fonction
pour calculer la valeur
par défaut :
Date() : fonction
retournant la date du
jour
31
Chap. III – Création d’une base de données

Valeur par défaut et expression (2/2)

Utilisation de fonction
pour calculer la valeur
par défaut :
Date()+30 : ajout de
30 jours à la date du
jour
32
Chap. III – Création d’une base de données

Définition des clés étrangères (1/8)


! Mauvais vocabulaire sous Access :
Relation sous Access = Association entre tables
En base de données (et donc de manière correcte) :
relation = table
Car le mot ‘relation’ vient du modèle relationnel

Après avoir créé les différentes relations (tables) : définition


des clés étrangères
Dans le menu relations d’Access : indiquer les relations
(tables) liées
Pour chaque clé étrangère : cliquer-glisser de l’attribut clé
étrangère vers l’attribut référencé
Définir l’intégrité référentielle
Préciser (plus rarement) le type de jointure
33
Chap. III – Création d’une base de données

Définition des clés étrangères (2/8)

Sélectionner
les relations (tables)
devant être liées
(Fenêtre s’obtenant par
le menu Ajouter une
Table ou en cliquant sur
le bouton )

34
Chap. III – Création d’une base de données

Définition des clés étrangères (3/8)

35
Chap. III – Création d’une base de données

Définition des clés étrangères (4/8)


Intégrité référentielle : ensemble de règles garantissant
la cohérence (intégrité) des données référencées
Vérification de la compatibilité des types des attributs
Si l’attribut référencé est de type NuméroAuto alors la clé
! étrangère doit être de type Numérique entier long

Vérification de la cohérence lors de l’insertion d’un


nuplet référençant
Ex. Si le nuplet correspondant à l’emprunteur référencé n’existe
pas, impossible de créer un emprunt correspondant

36
Chap. III – Création d’une base de données

Définition des clés étrangères (5/8)


Intégrité référentielle (suite) :
Vérification de la cohérence lors de la suppression
d’un nuplet référencé

Option possible de la règle d’intégrité de suppression : la


suppression en cascade
Suppression d’un nuplet référencé ⇒ suppression en
cascade des nuplets le référençant
Ex. Si on supprime l’emprunteur « Albert Gamotte », les
nuplets correspondant à ses emprunts seront supprimés

©Maude Manouvrier - Univ. Paris Dauphine 37


Chap. III – Création d’une base de données

Définition des clés étrangères (6/8)


Intégrité référentielle (suite) :
Vérification de la cohérence lors de la mise à jour d’un
nuplet référencé

Option possible de la règle d’intégrité de suppression : la


mise à jour en cascade :
Mise à jour d’un nuplet référencé ⇒ mise à jour en
cascade des nuplets le référençant
Ex. Si on modifie le numéro de la carte de l’emprunteur
« Albert Gamotte », les nuplets correspondant à ses
emprunts seront mis à jour
38
Chap. III – Création d’une base de données

Définition des clés étrangères (7/8)


Propriétés des jointure :

Par défaut et ce
que l’on utilisera
le plus souvent

Jointures externes

39
Chap. III – Création d’une base de données

Définition des clés étrangères (8/8)


Personnel Employé
Nom_Employé Ville Nom_Employé Filiale Salaire
Tom Marseille Tom SUD_EST 10000
Jerry Paris Jerry IDF 25000
Alex Limoges Sophie IDF 15000
Marthe Perpignan Marthe SUD_OUEST 12000

Inclusion de tous les Nom_Employé Ville Filiale Salaire


nuplets de Personnel et Tom Marseille SUD_EST 10000
seulement ceux de Jerry Paris IDF 25000
Employé pour lesquels Alex Limoges NULL NULL
les attributs sont égaux Marthe Perpignan SUD_OUEST 12000

Inclusion de tous les Nom_Employé Ville Filiale Salaire


nuplets de Employé et Tom Marseille SUD_EST 10000
seulement ceux de Jerry Paris IDF 25000
Personnel pour lesquels Sophie NULL IDF 15000
les attributs sont égaux Marthe Perpignan SUD_OUEST 12000
40
Chap. III – Création d’une base de données

Contrainte d’unicité (1/5)


Contrainte d’unicité mono-attribut (ne portant
que sur un seul attribut) : règle permettant de
vérifier que les valeurs d’un attribut sont uniques
c’est-à-dire que chaque valeur de l’attribut
n’apparaît qu’une seule fois dans la colonne
correspondante
Contrainte d’unicité multi-attributs : règle
portant sur plusieurs attributs (A1, A2,…,An) d’une
même relation et permettant de vérifier l’unicité
des ensembles de valeurs (v1, v2,…,vn) où vi est la
valeur de l’attribut Ai.
Par défaut: unicité de la clé primaire!
41
Chap. III – Création d’une base de données

Contrainte d’unicité (2/5)


Dans Access,
définition des
contraintes
d’unicité en tant
que propriété des
index

Obtention de la
liste des index
d’une relation via
l’icône de la
partie de création
42
Chap. III – Création d’une base de données

Contrainte d’unicité (3/5)


Index de la relation Emprunts :

Contrainte
d’unicité

Index nommé PrimaryKey (clé primaire en anglais) créé par défaut (lors de la
définition de la clé primaire), portant sur l’attribut N°Emprunt et de Propriété
Unique de valeur Oui

43
Chap. III – Création d’une base de données

Contrainte d’unicité (4/5)


Index de la relation Emprunts :

Index sans
contrainte
d’unicité

Index nommé Emprunteur, créé par la concepteur de la relation (Propriété


Indexé Oui – avec doublons de l’attribut RefEmpurnteur), portant sur l’attribut
RefEmprunteur et de Propriété Unique de valeur Non

44
Chap. III – Création d’une base de données

Contrainte d’unicité (5/5)


Définition d’une contrainte d’unicité multi-attributs :

Index nommé ContrainteUnicitéMultiAttributrs, portant sur trois attributs


RefEmprunteur, RefLivreEmprunté et DateEmprunt, et de Propriété Unique de
valeur Oui
⇒ Un même livre ne peut pas être emprunté par le même emprunteur deux fois
à la même date - chaque triplet (RefEmprunteur, RefLivreEmprunté,
DateEmprunt) est unique
45
Chap. III – Création d’une base de données

Règles d’or
Sélectionner le type de données adéquate pour chaque
attribut
Ne pas créer d’attribut de trop grande taille
Ne pas créer d’attribut ayant des valeurs trop variables
(ex. Age)
Utiliser des noms de relations et d’attributs
compréhensibles (penser aux utilisateurs!!)
Documenter votre base (pour vous plus tard et pour ceux
qui la reprendront)
Ne documenter pas tout, uniquement ce qui est nécessaire
Bien réfléchir aux schémas des relations et vérifier qu’ils
sont corrects avant d’y insérer des données
Faire des sauvegardes de son travail
Penser à utiliser l’aide (F1)
46
Chap. IV – Requêtes

Différents types de requête :


Requêtes d’interrogation (qu’on manipulera
beaucoup cette année)
Requêtes d’insertion, de mise à jour et de
suppression des données (qu’on manipulera un
tout petit peu)
Requêtes de définition de schéma (au
programme de L3)

47
Chap. IV – Requêtes

Créer une requête d’interrogation

Partie où vont s’afficher les relations (tables)


concernées par la requête

Partie où définir la
requête

Double-clic sur Une requête d’interrogation


les relations sur prend en entrée une ou
plusieurs relations (tables) et
lesquelles porte donne en sortie des données
la requête (non stockées présentées sous
la forme d’une table)
48
Chap. IV – Requêtes

Requête de sélection (1/3)


Définition de la requête « Quels sont les noms et prénoms des
emprunteurs étudiants ? »

La requête
porte sur la
relation Attributs nécessaires à la requête
Emprunteurs (ceux affichés dans le résultat sont cochés)

Tri pour
l’attribut
NomDeFamille
Valeur que doit avoir
l’attribut Type pour les
nuplets résultats
49
Chap. IV – Requêtes
Requête de sélection (2/3)
Relation Emprunteurs

Résultat de la requête « Quels sont les


noms et prénoms des emprunteurs
étudiants ? »
Si on ne veut que les étudiants parisiens :

Comme : mot clé signifiant la chaîne de caractère ressemble à


"*Paris*" : Mot Paris entre n’importe quels caractères
50
Chap. IV – Requêtes
Requête de sélection (3/3)
Équivalence en SQL des requêtes graphiques :
Définition en SQL de la requête « Quels sont les noms et
prénoms des emprunteurs étudiants ? »
SELECT Emprunteurs.NomDeFamille, Emprunteurs.Prénom
FROM Emprunteurs
WHERE Emprunteurs.Adresse LIKE ‘*Paris*’
AND Emprunteurs.Type = ‘Etudiant’ ;

Juste pour votre culture,


vous étudierez ce langage en L3 …

51
Chap. IV – Requêtes
Requête de calculs (1/4)
Définition de la requête « Combien
y-a-t-il d’emprunteurs ? »

Menu où
sélectionner
une opération

52
Chap. IV – Requêtes
Requête de calculs (2/4)
Définition de la requête « Quel est l’age d’Albert Gamotte ? »

Age : Nom de l’attribut apparaissant dans le résultat de


requête
Ent(DiffDate("j" ; [DateDeNaiisance];Date())/365,25) :
Formule de calcul de la valeur de l’attribut

53
Chap. IV – Requêtes
Requête de calculs (3/4)
Age: Ent(DiffDate("j";[DateDeNaissance];Date())/365,25)

Age: ⇒ affectation à l’attribut Age du résultat de la formule


Ent(nombre)
Fonction arrondissant nombre (réel) à l’entier immédiatement
inférieur
DiffDate(format,date1,date2)
Fonction retournant la différence entre date1 et date2
Si format = "j" alors retourne la différence en nombre de jours
Date()
Fonction retournant la date du jour
[DateDeNaissance]
Les attributs des relations (tables) utilisés dans les calculs sont mis
entre []
54
Chap. IV – Requêtes
Requête de calculs (4/5)

Menu obtenu en cliquant avec le


bouton droit de la souris
Sous-menu Créer pour ouvrir le
Générateur d’expressions

55
Chap. IV – Requêtes
Requête de calculs (5/5)

56
Chap. IV – Requêtes

Requête de jointure (1/3)

Le logiciel
regroupe les
nuplets de
différentes
relations
(tables) qui
sont
associées

57
Chap. IV – Requêtes

Requête de jointure (2/3)

Résultat de la requête de jointure :

Chaque nom et prénom d’emprunteur est joint au titre du livre


qu’il a emprunté

Pour avoir les nuplets associés : les trois


!
relations (tables) liées doivent apparaître dans la
fenêtre de création de la requête

58
Chap. IV – Requêtes

Requête de jointure (3/3)


!
Si on omet la
relation (table)
Emprunt :
chaque nuplet de
Emprunteurs sera
associé à chaque
nuplet de Livre
(même s’il n’existe aucun lien entre les nuplets)
Résultat :

59
Chap. IV – Requêtes

Regrouper pour faire des calculs (1/2)


Définition de la requête « Combien y-a-t-il eu d’emprunteurs par
livre ? »

Regroupement
des données
⇒ Pour chaque
nuplet de
Livres, Access Création
crée un groupe (nommage) d’un
de nuplets de nouvel attribut
Emprunts (ceux pour le résultat de
associés au Opération qui va comptabiliser le la requête
livre) nombre de nuplets de la relation (table)
Emprunts associés à chaque nuplet de
Livres 60
Chap. IV – Requêtes

Regrouper pour faire des calculs (2/2)

Les opérations s’obtiennent


par le menu Opérations
(bouton droit de la souris)

61
Chap. IV – Requêtes

Requête de mise à jour (1/2)


Définition de la requête de mise à jour calculant le nombre de
jours de retard pour chaque emprunt

Critère de sélection : seuls les nuplets où la


valeur de l’attribut DateRetourEffective est
supérieure à celle de DateRetourPrévue seront
mis à jour
Attribut mis à jour

Formule calculant la différence de jours


entre les valeurs des attributs
DateRetourPrévue et DateRetourEffective
62
Chap. IV – Requêtes

Requête de mise à jour (2/2)


Relation Emprunts avant l’exécution de la requête de mise à jour

Relation Emprunts après l’exécution de la requête de mise à jour

63
Chap. IV – Requêtes

Requête paramétrée (1/3)


Requête dont les valeurs des critères sont saisies par l’utilisateur

Entre [ ] le message affiché à l’utilisateur pour saisir la


valeur des attributs NomDeFamille et Prénom
64
Chap. IV – Requêtes

Requête paramétrée (2/3)


! Il faut préciser le type des paramètres

Fenêtre obtenue dans le


menu Requête

65
Chap. IV – Requêtes

Requête paramétrée (3/3)


Lorsque l’utilisateur va exécuter la requête :

Fenêtres de
saisie des
critères de
recherche
pour les
attributs
paramétrés
par
l’utilisateur

66
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (1/8)

Les valeurs de
l’attribut
RefEmprunteur
vont être
récupérées
dans le résultat
d’une requête

67
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (2/8)
Comment faire ?

1. Dans
l’onglet Liste
de choix et la
propriété
Afficher le
contrôle,
sélectionner
Zone de liste

68
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (3/8)
Comment faire ?

2. Pour la
propriété
Origine
source,
sélectionner
Table/Requête

69
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (4/8)
Comment faire ?

3. Pour la
propriété
Contenu,
cliquer avec le
bouton droit
de la souris et
sélectionner le
menu Créer

70
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (5/8)
Comment faire ?

4. Créer la requête
d’interrogation Requête
correspondante dans la retournant les
fenêtre qui s’affiche numéros de carte
d’étudiants par
ordre croissant

71
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (6/8)

La requête SQL
correspondante à la
requête graphique est
automatiquement
insérée dans la
propriété Contenu

72
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (7/8)
Résultat : l’utilisateur pourra sélectionner les valeurs dans une
liste (correspondant au résultat de la requête)

⇒ Moins de risque d’erreur de saisie !!

73
Chap. IV – Requêtes

Inclure des requêtes dans la définition des


relations (tables) (8/8)
Possibilité que la propriété Contenu corresponde à une relation
(table) de la base de données ou à une requête sauvegardée

Les valeurs de l’attribut Type de la


relation Emprunteurs vont être
récupérées dans une relation
TypesEmprunteurs (à travers une
requête sur cette relation)
Penser à documenter votre base (pour les autres et pour vous!)
74
Chap. IV – Requêtes

Requête dite Analyse croisée (1/3)


Pour avoir un résultat de la forme :

Requête qui affiche les noms et prénoms des emprunteurs en ligne, et


en colonne, le titre des livres empruntés avec le nombre de fois où ce
livre a été emprunté par l’emprunteur

Comment faire ?
1. Sélectionner le type de requête :
dans le menu Requête

75
Chap. IV – Requêtes

Requête dite Analyse croisée (2/3)

2. Sélectionner pour chaque attribut de la requête, comment il doit être


analysé : affichage de ses valeurs en ligne, en colonne ou bien comme
résultat d’un calcul (valeur)
76
Chap. IV – Requêtes

Requête dite Analyse croisée (3/3)

77
Chap. V – Présentation des données aux
utilisateurs : Formulaires et Etats
Formulaire : Interface personnalisée pour
visualiser et saisir les données

Vous verrez cela en TP …

78
Chap. V – Présentation des données aux utilisateurs : Formulaires et états

États (rapports écrits) : Mise en forme


personnalisée des données de la base de données
en vue d’une impression

Vous verrez cela en TP …


79
Chap. VI – Importation de données externes
Possibilité d’importer des données provenant
d’autres bases de données ou d’autres applications
(ex. Excel)

©Maude Manouvrier - Univ. Paris Dauphine 80


Chap. VI – Importation de données externes

81
Chap. VI – Importation de données externes
Vous verrez cela en TP …

82
Chap. VII – Exporter les données
1. Possibilité d’exporter les données de la page sous la forme
de page Web

Ne
fonctionne

! que sous
Windows
et Internet
Explorer!

Vous verrez cela en TP … 83


Chap. VII – Exporter les données

2. Possibilité d’exporter les données d’une relation (table) de


la page sous Excel

84
Chap. VII – Exporter les données

2. Possibilité d’exporter les données d’une relation (table) de


la page sous Excel

85

Vous aimerez peut-être aussi