Académique Documents
Professionnel Documents
Culture Documents
NF14
Partie "Bases de données"
Professeur Christian PRINS
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #2
Contenu
Introduction aux bases de données relationnelles
Chapitre 1
Généralités sur les bases de données
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #4
Principaux avantages :
Indépendance données-traitements : modifications plus
faciles des données et des traitements.
Pas de redondance : gain de place, mise à jour facilitée.
Gère un grand nombre de données et d'utilisateurs.
Tests de cohérence interne, reprises après incidents.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #6
Interface :
utilise un langage de manipulation de données (LMD)
appelé aussi langage de requête (comme SQL)
reçoit et analyse les requêtes (queries) des utilisateurs
les traduit en ordres pour le SGBD
récupère les résultats et les envoie aux utilisateurs.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #9
Si système mono-utilisateur :
l'ensemble est installé sur le PC de l'utilisateur
Fichier classique F :
enregistrements de taille fixe, découpés en champs
permet l’accès séquentiel aux enregistrements (lent)
plus l’accès direct à un enregistrement de n° donné
mais pas à un médicament de nom donné!
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #13
Produits proposés
Fournisseurs Produits
Fournisseurs possibles
5. BD relationnelle 1/5
Type de BD récent, inventé par Codd (1970) :
toutes les données sont organisées en tables :
un élément de table est une donnée élémentaire
lignes appelées n-uplets ou tuples ( enregistrements)
colonnes appelées attributs ( champs)
pas de lignes identiques
ordre indifférent des lignes et des colonnes
5. BD relationnelle 2/5
Langage de manipulation de données de haut niveau :
non-procédural (on ne décrit pas comment faire)
opérations ensemblistes : table := F(table_1,table_2)
travaille sur des tables complètes (union, intersection)
5. BD relationnelle 3/5
Règles d'intégrité vérifiées par le SGBD relationnel :
intégrité d'entité : clés remplies et distinctes
intégrité référentielle (concernant les relations).
Attention!
en anglais, une table de BD est aussi appelée relation
et une relation relationship : ambigu en français!
certains disent en français "relation" et "association"
nous dirons "table" et "relation" (terminologie Access).
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #21
5. BD relationnelle 4/5
Exemple du SCD : 2 tables et 1 relation de souscription
5. BD relationnelle 5/5
Pourquoi les tables sont-elles appelées parfois relations?
Rappel de maths. Soient 2 ensembles A et B :
produit cartésien AB : couples (i,j) avec iA et jB.
relation binaire : un sous-ensemble de AB.
Plus généralement, si n ensembles, relation n-aire dont
les éléments sont appelés n-uplets ou tuples.
Chapitre 2
Modèle conceptuel des données
(MCD)
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #25
1. Introduction
MCD : modèle d'un ensemble de données et de sa
structure, en vue de la réalisation d'une BD. Outil de
conception indépendant de l'ordinateur et du SGBD.
Attribut :
information ou propriété intéressante à mémoriser
identifié par un nom unique, exemple "Nom"
conseil : préfixer/suffixer par le nom d'entité pour
éviter les confusions : "Nom_membre", "Nom_produit"
on peut préciser un type, un domaine (ensemble de
valeurs), une longueur, mais c'est le rôle du MLD.
on peut ajouter des descriptions en marge du MCD :
"Le n° du membre figure sur sa carte de membre".
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #27
Notes :
un acteur joue au moins dans un film (ça se discute!)
il peut jouer dans plusieurs films
un film peut n'être joué par personne (documentaire)
un film peut être joué par plusieurs acteurs
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #31
Notes :
La même entité participe deux fois à la relation.
La relation est symétrique (pas d’ordre).
Si les membres des binômes ont des rôles différents, il
faut peut-être 2 entités : pilotes et copilotes d'avions.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #33
JJMMAA
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #34
Contraintes d'intégrité :
ensemble de contraintes ou de règles que le MCD doit
respecter pour refléter correctement la réalité
nature très diverse
pas de symboles graphiques consacrés
à écrire en annexe du modèle.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #35
Chapitre 3
Modèle logique des données
(MLD)
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #38
1. Introduction
Le MLD est une étape vers la réalisation informatique,
mais il est encore indépendant du SGBD. Pour une BD
relationnelle, le MLD est appelé modèle relationnel :
il traduit les entités et relations en tables,
définit les attributs de chaque table,
les enregistrements logiques (lignes de table),
et les clés (correspondant aux identifiants du MCD).
mais il reste en français : pas de STRUC ou RECORD!
ou entièrement en mode-texte :
ETUDIANTS (N° étudiant, Nom, Adresse)
MEMBRES ABONNEMENTS
SOUSCRIRE
Type
N° membre 1,1 Date souscription 0,N Libellé
Nom
Durée
Adresse
Cotisation
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #43
MEMBRES
ABONNEMENTS
N° membre Type
Nom Libellé
souscrire
Adresse Durée
Type Cotisation
Date souscription
JJMMAA
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #50
3. Optimisation
Une table à une seule colonne comme Date (slide 49)
peut être abandonnée sans perte d'information : elle est
reprise dans la table EMPRUNTS.
4. Normalisation 1/5
Pour être exploitable par un SGBD relationnel, les tables
du MLD doivent êtres « normalisées ».
4. Normalisation 2/5
Table en première forme normale (1NF):
table à 2 dimensions munie d'une clé primaire
les lignes sont donc distinctes
les lignes et les colonnes (attributs) sont non-ordonnés
les attributs sont élémentaires ou atomiques : il n'ont
qu'une seule valeur pour une valeur de clé.
4. Normalisation 3/5
Cours et Note ont plusieurs valeurs pour l'étudiant 1222.
NumEtu Nom Cours Prof Note Bureau
1222 Dupont NF14 C. Prins C G202
SY15 A. Yalaoui F G108
1229 Durand MT14 C. Chu A G201
4. Normalisation 4/5
Table en deuxième forme normale (2NF):
la table est déjà en 1NF
les attributs n'appartenant pas à la clé dépendent de
tous les attributs de la clé
problème seulement si la clé a plusieurs attributs.
4. Normalisation 5/5
Table en troisième forme normale (3NF):
la table est déjà en 2NF
tout attribut n'appartenant pas à la clé ne dépend pas
aussi d'un attribut non-clé.
Ci-dessous, le bureau dépend du prof. On fait 2 tables :
B=RESTRICT(A,Indice<5) C=PROJECT(A,Nom,Indice)
Notes :
Il s’agit des opérations usuelles sur des ensembles
la différence n'est pas commutative...
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #60
6. Et après le MLD?
Après le MLD, il suffit de choisir un SGBD comme Access
et de réaliser la BD : modèle physique = implémentation.
Chapitre 4
Langage SQL
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #66
Etats :
Ils sont conçus pour imprimer des documents sur
plusieurs pages : en-têtes de pages, sous-totaux etc.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #68
Caractéristiques :
LMD pour faire des requêtes, formulaires et états.
Plus des commandes de définition de tables (LDD)
Plus des commandes de droits d'accès.
Instructions non-procédurales et ensemblistes.
Entièrement en anglais.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #69
3. Identificateurs SQL
Règles sur les identificateurs (noms d'attributs etc) :
Max. 30 caractères, le 1er doit être une lettre,
Caractères suivants : lettres, chiffres, #, $ ou _
Insensible à la casse (majuscules / minuscules)
Un attribut ambigu doit être préfixé : T1.Nom.
Attention aux mots réservés : TABLE, SELECT, DATE…
On peut définir des noms avec espaces ou caractères
spéciaux, voire identiques à des mots réservés, mais il
faut les mettre entre guillemets "Date", "Prix de
vente", en Access crochets [Prix de vente]
Par convention, on met les mots-clés en majuscules.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #70
Opérateurs :
arithmétiques : *, /, +, - : "Prix HT" * TVA – Rabais
comparaison : =, <> ou !=, >, >=, <, <=
valables pour nombres, chaînes de caractères et dates
divers : Type IN (1, 4, 5), Age BETWEEN 10 AND 20.
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #71
5. Instruction SELECT
SELECT [ALL|DISTINCT] { * | exp [[AS] nom_affiché ] } [, …]
FROM nom-table [ [AS] alias] [, …]
[ WHERE condition ]
[ GROUP BY exp [, …] ]
[ HAVING condition [, …] ]
[ {UNION | INTERSECT | EXCEPT [ALL] } requête ]
[ ORDER BY exp [ASC | DESC] [, …] ]
SELECT Etus.NomEtu
FROM Etus, Etus AS E2
WHERE Etus.DepEtu = E2.DepEtu AND E2.NomEtu = 'Dupont'
Liste les étudiants ayant même départment que Dupont!
Ecrire le produit cartésien Etus x Etus pour mieux comprendre.
Possible aussi avec une sous-requête renvoyant une valeur:
SELECT NomEtu
FROM Etus
WHERE DepEtu = ( SELECT DepEtu
FROM Etus
WHERE NomEtu = ‘Dupont’)
C. Prins – NF14 – Partie Bases de Données – P2019 – Slide #84
SELECT NomEtu
FROM Etus
WHERE DepEtu IN ( SELECT CodeDep
FROM Deps
WHERE NomDep LIKE '[A-C]*');
Liste les étudiants venant d’un département dont le nom
commence par A, B, C : Dupont, Mangin, Pinson.
10. Unions
Union, intersection ou différence de 2 tables avec les
mêmes types de champs (les noms peuvent différer).