Bases de données
Plan du cours
Base de données et SGBD
Modèle Entité-Relation
Modèle relationnel et algèbre relationnelle
Langages d’interrogations pour bases de données relationnelles
La normalisation des relations
Application
Définitions
Base de données (BD)(DB) : ensemble de données conservées à long terme
sur un ordinateur
Caractéristiques : grandes quantités / interrogation & modification aisées.
Distinction entre schéma (plan) et instance (extension)
un ensemble de données structurées et intercorrélées, enregistrées avec
le minimum de redondance et pouvant être traitées par une ou plusieurs
applications, de façon optimale. La BD contient également la description
de ses données.
Système de Gestion de Base de Données (SGBD) (DBMS): programme qui
permet la définition, la mise en œuvre, et l’exploitation d’une BD (à un niveau
plus abstrait que celui fournit par les OS usuels (gestion de fichiers)).
un ensemble de logiciels permettant aux utilisateurs de définir, créer,
maintenir, contrôler et accéder à la BD
Les principales fonctions d’un SGBD
Stockage de données persistantes, très grands volumes (plusieurs Go (109),
Tera-o (1012)), avec des structures flexibles
Langages de définition de données, d'interrogation et de manipulation
Catalogue accessible aux utilisateurs
Gestion des autorisations, des transactions et des accès concurrents
Gestion de l'intégrité des données
Outils divers
programmation, développement, administration, communication, aide à la
décision, …
Les vrais SGBD sont rares
Avancées significatives / systèmes de fichiers
Les principales composantes d'un SGBD
Administrateur Utilisateurs
Utilisateurs
Utilisateur Utilisateurs
Utilisateurs
Application
DDL Processeur de
(langage de description requêtes
Gestionnaire de
de données)
transactions
Moteur d'exécution
Journalisation
Gestionnaire Gestion des accès
d'index, relations, tuples concurrents
Gestionnaire
de stockage
Métadonnées
Données
Niveaux d’abstraction
Essentiellement trois niveaux :
Vue de l’utilisateur
BD conceptuelle (indépendance logique)
Organisation des données de la BD
BD physique (indépendance physique)
Sur disque, fichiers …
Note : Indépendance si une modification à un niveau (par ex.
améliorer l’efficacité) ne nécessite pas de modification du niveau
supérieur
Modèle Entités-Relations
Une BD est constituée
d’un ensemble d’entités : ensembles d’objets de même
structure
de relations entre (certains de) ces ensembles, i.e., un
sous-ensemble du produit cartésiens de (certains de) ces
ensembles.
L’extension de chaque relation contient un certain nombre
d’éléments appelés k-tuples (k = degré de la relation).
I. Modèle Entités - Relations
2 - Modèle Entités - Relations
Contenu
Concepts de base
Entités, attributs
Relations
Clés
Multiplicités, cardinalités
Concepts avancés
Héritage
Agrégation, Composition
Entités faibles
Modèle Entités-Relations
Un ensemble d’entités est décrit par un nom et un type (liste des
attributs)
De même une relation est décrite par un nom et un type (liste
ordonnées des noms d’ensemble d’entités).
Modèle Conceptuel de Données
Il décrit l’organisation initiale des données sous forme d’entités et de
relations
Une entité est un être ou un objet (concret ou abstrait) qui peut
être distingué d’un autre objet.
Une entité est composée de champs (ou attributs)
Etudiant Cours
Nom Intitulé
Prénom Nbr heures
N°Etud …
…
Modèle Conceptuel de Données
Une association (ou relation) exprime une interaction entre une à
plusieurs entités. (Une association peut comporter des attributs)
Un étudiant suit 1 ou plusieurs cours
Etudiant suit Cours
0..n 1..n
Un cours est suivi par aucun ou plusieurs étudiants
La Cardinalité d’un couple entité – association permet de préciser
les nombres minimum et maximum de fois pour lesquelles une entité
est concernée par l’association
Modèle Conceptuel de Données
Exemple
Créer un MCD pour modéliser le problème suivant :
Une société de vente par correspondance met en vente des produits.
Chaque produit est identifié par un numéro, un prix unitaire et une
quantité en stock.
Un client identifié par un numéro de client, un nom, un prénom et une
adresse passe commande à une date donnée d’un ensemble de
produits.
Modèle Conceptuel de Données
Client
1..1 1..n Produit
N°client
Nom N°produit
Prénom Libellé
Adresse Descriptif
passe qt contient Prix unitaire
é Qté en stock
1..n Commande 1..n
Date
Prix total
Rôle & Cardinalité
La participation d’un ensemble d’entités à une relation est son rôle
Pour chaque ensemble d’entités participant à une relation, i.e., pour
chaque rôle d’un ensemble d’entités, on précise – par un intervalle
(min,max) - dans combien de tuples de la relation, chaque entité
peu apparaître.
En général,
min = 0 ou 1
max = 1 ou (noté N ou *)
Diagramme Entités-Relations
Exemple 1 Employés_Université
(0,N) enseignant
Enseigne
(1,1) cours enseigné
Cours_Université
2 - Modèle Entités - Relations
Objectif du modèle de données
Apporter une interprétation du contexte applicatif
en soulignant les aspects fondamentaux
en négligeant les détails
Identifier les données gérées par la base de données et
leur relations
Produire un diagramme, suivant un formalisme,
en vue de convertir le modèle de données en schéma de
base relationnelle
Modèle Systèmes
RÉALITÉ
Entité-Relation Relationnels
modeling mapping
2 - Modèle Entités - Relations
Entités et ensembles d'entités
Entité
"une chose" qui existe et qui peut être distinguée de façon unique.
Ex.: un étudiant, une voiture, une banque
abstraite ou concrète
• Ensemble d'entités
Une collection d'entités similaires, ayant les mêmes propriétés,
identifiées par l’ "organisation" ("entreprise" en sens large) comme
ayant une vie propre
Ex.: les étudiants d'une université, les comptes d'une banque, les
entreprises d'un pays, les voitures d'une société de location …
Remarque: s'il n'y a pas d'ambiguïté, on utilise le terme "entité" pour
indiquer un ensemble d'entités.
2 - Modèle Entités - Relations
Attributs
Attribut
propriété d’une entité
prend des valeurs simples, par exemple entiers ou
chaînes de caractères (domaine d'attribut)
Ensemble d'Entités Attributs Domaines
Voitures n°série entier (12)
marque chaîne de car. (8)
type chaîne de car. (10)
type Représentation
n°série marque sous forme de
voitures diagramme
2 - Modèle Entités - Relations
Clé des ensembles d'entités
clé candidate: un ensemble minimal d’attributs qui identifie
de façon unique une occurrence d’entité
clé primaire: une clé candidate choisie pour identifier de
façon unique chaque occurrence d’entité
clé composée: une clé candidate composée de deux ou
plusieurs attributs
type n°d nom_d
n°série marque
voitures département
Clés candidates Clé primaire
Clé primaire
K1 = n°d K = n°d
K = n°série
K2 = nom_d
2 - Modèle Entités - Relations
Relations
Une relation relie deux ou plusieurs ensembles d'entités
Ex.:
Des universités délivrent des diplômes
Des étudiants sont inscrits dans des universités
n°u nom_u n°d titre
université diplôme
délivr
e
inscription
n°e nom_e
étudiant prénom_e
2 - Modèle Entités - Relations
Ensemble de relations
La "valeur" d'une relation est l'ensemble des listes des
entités réellement associées par la relation. Chaque liste
est obtenue en correspondance des ensembles d'entités
en relation.
Exemple: valeur de la relation "délivre"
- l'université identifiée par u1
n°u n°d
délivre les diplômes identifiés
u1 d2
par d2, d3 et d5,
u1 d3
…
u1 d5
l'université identifiée par u100
…. …
délivre les diplômes identifiés
u100 d1
par d1 et d2
u100 d2
2 - Modèle Entités - Relations
Ensemble de relations (2)
Soit r une relation entre k ensembles d'entités E1, E2, …, Ek. Un ensemble
d'entités peut apparaître plus d'une fois dans la liste.
Soit un k-uplet (e1, ... ek) r
e1 E1, ... ek Ek sont associés par la relation r
e1, ... ek est dit tuple de r
k est le degré de la relation
K = 1 : relation unaire (ou récursive, sur un même ensemble d'entités)
K = 2 : relation binaire
K = 3 : relation ternaire
…
K = n : relation n-aire
2 - Modèle Entités - Relations
Relations n-aires
Une relation connectant plus de 2 ensembles d'entités permet
de restreindre les combinatoires entre les valeurs des entités
en relation
Ex.: des employés participent à des projets avec des rôles
n°p nom_p
projet n°p n°e n°r
n°r descr_r
p1 e2 r1
p1 e3 r2
rôle
particip p1 e5 r3
n°e e … … …
employé prénom_e p2 e2 r2
nom_e p2 e3 r1
2 - Modèle Entités - Relations
Exercices
Donner des exemples de relations de type (1), (2) et (3)
A r B
r A A r B
C
(1) (2)
(3)
2 - Modèle Entités - Relations
Type des relations binaires
Soit r une relation binaire
Le type de r est lié au nombre d’occurrences d’une entité
qui peuvent être associées avec une occurrence de l'autre
entité
E1 r E2
2 - Modèle Entités - Relations
Relations de type m-n
Dans une relation "plusieurs à plusieurs" ("many-many", m-n),
une entité de chaque ensemble peut être connectée à plusieurs entités
de l'autre ensemble
n°e nom_e n°p titre
employés participe projets
(n-m)
employés projets
2 - Modèle Entités - Relations
Relations de type 1-n
Dans une relation "un à plusieurs" ("one-many", 1-n),
une entité d'un ensemble peut être connectée à au plus une entité du
second ensemble
mais une entité du second ensemble peut ne pas être connecté à
aucune entité du premier ensemble, ou être connectée à une ou
plusieurs entité de cet ensemble
n°f nom_f n°série type
fabriquants produit voitures
(1-n) fabriquants voitures
2 - Modèle Entités - Relations
Relations de type 1-1
Dans une relation "un à un" ("one-one", 1-1),
une entité de chaque ensemble peut être connectée à au plus une
entité de l'autre ensemble
Exemple: une BD pour l'administration d'un pays
une personne possède au plus un passeport
et un passeport a un seul titulaire
n°p nom_p n°pass date_emission
personnes possède passeport
(1-1)
personnes passeports
2 - Modèle Entités - Relations
Synthèse sur les types des relations
A B A B A B
1-n n-m 1-1
2 - Modèle Entités - Relations
Exercice
Trouver des exemples de relations de type 1-n, n-m, 1-1. Pour
chaque exemple, spécifier les entités A et B, en indiquant leurs
attributs et clés, ainsi que la relation r.
A r B
2 - Modèle Entités - Relations
Attributs de relation
Propriétés dont la valeur dépend des tuples dans
l'ensemble de relations.
n°c date_c nom_p
n°p
commande concerne produit
quantité
2 - Modèle Entités - Relations
Exercice
Trouver un exemple de relation binaire r: r associe les entités A et
B, et est munie d'un attribut C.
Comparer les diagrammes (3) et (4).
A r B
C
(4)
2 - Modèle Entités - Relations
Cardinalités
Les BD sont conçues dans l'hypothèse du "monde fermé"
Les ensembles d'entités sont FINIS !!
Cardinalités
Couples (min, max) associés à chaque ensemble d'entité relié par une
relation r
Si r est binaire, entre E1 et E2:
– le min (resp. max) associé à Ei (i=1,2) représente le nombre
minimum (resp. max) d'entités de Ej (j=2,1) associées à un
élément quelconque de Ei.
Si r est n-aire:
– le nombre d’occurrences possibles d’entités associées dans cette
relation quand les autres (n-1) valeurs sont fixées
Min Max
0 1
1 n
2 - Modèle Entités - Relations
Exemples
n°f nom_f type n°série
1,n 1,1
fabriquant produit voitures
(1-n)
n°e nom_e titre n°p
0,n 1,n
employé participe projet
(n-m)
2 - Modèle Entités - Relations
Exemples
nom_p n°pass date_emission
n°p
0,1 1,1
personne possède passeport
(1-1)
est composée de
n°pièce
0,n
quantité
nom_p pièce
0,n
compose
2 - Modèle Entités - Relations
Exemple
n°p nom_p
projet
1,n n°r descr_r
0,n rôle
particip
n°e e 0,n
employé prénom_e
nom_e
Diagramme E-R - Exercices
Représenter un diagramme E-R d’une BD de personnes liées par
des liens de paternité
Modéliser le fait que des clients peuvent passer des commandes à
une centrale d’achat (qui possède la BD). Cette dernière a des
fournisseurs habituels pour les différents produits possibles et
décide par quel fournisseur quel produit doit être livré.
ER vers R
Algèbre Relationnelle