Académique Documents
Professionnel Documents
Culture Documents
Modèle réseau:
Comme le modèle hiérarchique, ce modèle
utilise des pointeurs vers des enregistrements.
Toutefois la structure n’est plus forcément
arborescente dans le sens descendant.
10
INTRODUCTION GÉNÉRALE
Inconvénients :
Incohérence des données :
• redondance de l’information.
Coûts élevés :
• nécessitent de la place mémoire avec la gestion de pointeurs.
Maintenance difficile :
• modifier, ajouter et effacer sont complexes.
• Lorsqu’on détruit un nœud tous ses fils sont également détruits.
• Possibilité de perte d’information en supprimant des données.
Difficultés de gestion :
• Pas de gestion de panne.
• Pas de partage des données.
• Pas de confidentialité.
11
INTRODUCTION GÉNÉRALE
Modèle relationnel:
Les données sont enregistrées dans des
tableaux à deux dimensions (lignes et
colonnes). Il existe des liens ou relations
entre les tables.
La manipulation de ces données repose
sur la théorie mathématique des
relations.
Le premier langage fût SEQUEL
(Structured English QUEry Language), qui
sera ensuite rebaptisé SQL (Structured
Query Language).
A partir de la fin des années 90, les BD
relationnelles deviennent les plus
répandues.
12
INTRODUCTION GÉNÉRALE
Avantages du modèle relationnel :
Eliminer la redondance des données.
Centraliser et organiser correctement les données.
Plusieurs niveaux de modélisation.
Outils de conception.
Administration facilitée.
13
INTRODUCTION GÉNÉRALE
Modèle objet:
Basé sur les techniques de
l'orienté objet:
• Classe
o Propriété
o Méthode
o Evènement
• Héritage
• Composition
• Spécialisation
• Généralisation
• Polymorphisme
14
INTRODUCTION GÉNÉRALE
Les niveaux de conception d'une BD relationnel :
Réel
MySQL,
PostgreSQL et Systèmes libres
Firebird.
16
INTRODUCTION GÉNÉRALE
Les SGBD-R son basés sur une architecture ANSI/SPARC à
trois niveaux :
Le niveau externe ou logique : accessible aux utilisateurs et
aux programmes d’applications.
Réalisation Traduction en
d’un modèle un modèle
conceptuel relationnel
Processus de modélisation
22
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
1er niveau (dit conceptuel):
Phase d’analyse du problème réel.
Délicate et permet de définir les données à utiliser, leur mode
d’évolution dans le temps et les relations entre elles.
Réalisé par des spécialistes de l’analyse.
Exprimé dans un formalisme de type entité-association, UML ou
Merise.
2ème niveau (dit relationnel):
Elaborer l’ensemble des objets manipulables par un SGBD-R.
Travail est souvent réalisé par l’architecte de données, ou un
administrateur de SGBD.
Peut être découpé en deux étapes :
• la conception de modèle logique (représentation en tables indépendantes du SGBD)
• la traduction en un modèle physique (propre à un SGBD spécifique).
23
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
1er niveau (dit conceptuel):
Phase d’analyse du problème réel.
Délicate et permet de définir les données à utiliser, leur mode
d’évolution dans le temps et les relations entre elles.
Réalisé par des spécialistes de l’analyse.
Exprimé dans un formalisme de type entité-association, UML ou
Merise.
2ème niveau (dit relationnel):
Elaborer l’ensemble des objets manipulables par un SGBD-R.
Travail est souvent réalisé par l’architecte de données, ou un
administrateur de SGBD.
Peut être découpé en deux étapes :
• la conception de modèle logique (représentation en tables indépendantes du SGBD)
• la traduction en un modèle physique (propre à un SGBD spécifique).
24
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Le modèle conceptuel de données (MCD), il représente :
Les faits et les évènements qui décrivent le monde à modéliser.
Exemple : une compagnie aérienne, ses avions et ses pilotes.
Certaines contraintes.
Exemple : un pilote ne doit voler que s’il détient une licence en cours de validité
et une qualification correspondant au type d’avion.
Un MCD est un diagramme avec des entités et des associations. Il existe
des outils pour la modélisation:
Avec licence: Microsoft Visio, Maestro SQL, Oracle Designer, PowerAMC (de
Sybase), Erwin et ER/Studio
Libres: MySQL Workbench et DBDesigner
Le problème le plus couramment rencontré au sein des BD mal conçues
est la redondance. Ça entraîne des incohérences en modification,
insertion et suppression de données, et rend la base peu performante.
25
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Le modèle Entité-Association:
L’idée force du modèle E/A est de représenter, par un schéma
standardisé, les différents éléments constitutifs du système
d’information, appelés attributs et les relations qui les unissent,
appelées associations.
Il suffit de décrire la réalité par une phrase :
Le sujet et le complément représentent des entités, et le
verbe l’association.
Exemple : un utilisateur (entité) poste (association) une news
(entité).
26
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
L'Entité:
Une entité est un objet, une chose concrète ou abstraite qui
peut être reconnue distinctement et qui est caractérisée par
son unicité.
Un type-entité désigne un ensemble de d’entités qui possèdent
une sémantique et propriétés communes
Représenté par
27
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
L'association:
Une association (ou relation) est un lien entre plusieurs entités.
Exemple : L’ABONNÉ Paul Leroy Emprunte le LIVRE "Le horla".
28
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Définitions:
Les type-entités intervenant dans un type-association sont appelés
participants.
L’ensemble de participants d’un type-association est appelé la collection
de type-association. La collection d’un type-association peut ne
comporter d’un seul type-entité.
La dimension d’un type-association est le nombre de type-entités
contenu dans la collection.
Un type-association est dit :
• N-aire : dans le cas général,
• Binaire : dans le cas où n=2 (la collection contient deux type-entités),
• Ternaire : dans le cas où n=3.
Règles:
• Chaque type-entité possède au moins un identifiant, éventuellement formé de plusieurs
attributs.
• La valeur de l'identifiant est unique
31
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Cardinalité:
Les cardinalités d’une patte reliant un type-association et un
type-entité précisent le nombre de fois minimal et maximal
d’interventions d’une entité du type-entité dans une association
de type-association.
32
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Règles:
La cardinalité maximale n'est pas égale à 0.
Une cardinalité minimale est toujours 0 ou 1 et une cardinalité
maximale est toujours 1 ou n.
Les seules couples de cardinalités admises sont :
• 0,1 : une occurrence du type-entité peut exister en étant impliquée soit dans aucune
association soit au maximum dans une seule.
• 0,n : une occurrence du type-entité peut exister en étant impliquée soit dans aucune
association soit dans plusieurs associations (sans limite).
• 1,1 : une occurrence du type-entité ne peut exister que si elle est impliquée dans
exactement une association.
• 1,n : une occurrence de type-entité ne peut exister que si elle est impliquée dans au
moins une association.
33
FORMALISMES UTILISÉS (MODÈLE ENTITÉ/ASSOCIATION)
Identifiant d'un type-association:
Les type-associations peuvent être catégorisés en fonction des
cardinalités maximales de leurs pattes :
Catégories de
Description Exemple Autre appellation
type-association
Binaire La cardinalité maximale sur chacune de 0:1 0:1 1 vers 1
ses pattes est 1. 1:1 1:1
Fonctionnel Une cardinalité maximale est à 1 et 0:1 0,1:n 1 vers n
L'autre cardinalité maximale est à n. 1:1 1:n
Maillé La cardinalité maximale de chacune 0:n 0:n n vers n
de ses pattes est à n. 1:n 1:n
anomalie de modification
anomalie de suppression
43
NÉCESSITÉ DE LA NORMALISATION (3)
1. Si on insère la ligne (Disquettes, Dubois, Dijon,
10/03/01, 100, 200), Dubois aura deux adresses
anomalie d'insertion
44
NÉCESSITÉ DE LA NORMALISATION (4)
Cette relation n’est donc pas cohérente, alors que la base
formée des trois relations :
Alors
aucune DF n’est issue d’un sous-ensemble de la clé.
aucune DF n’est issue d’un attribut non clé vers un autre attribut
non clé.
59
TROISIÈME FORME NORMALE : DÉMONSTRATION (1)
Aucune DF n’est issue d’un sous-ensemble de la clé.
En effet,
si X, Y, Z forment la clé et s’il existe une DF : Y U
alors
X, Y, Z Y U et la DF X, Y, Z U n’est donc pas
directe.
60
TROISIÈME FORME NORMALE : DÉMONSTRATION (2)
Aucune DF n’est issue d’un attribut non clé vers un autre
attribut non clé.
En effet,
si X, Y forment la clé et s’il existe une DF : Z U (Z et U
non clés)
alors
X, Y Z U et la DF X, Y U n’est donc pas directe.
61
TROISIÈME FORME NORMALE : EXEMPLES
Les relations
CLIENT (num_client, nom_client, adresse)
VENTE (num_commande, num_article, quantité)
sont en 3 FN.
On a les DF élémentaires et directes :
num_client nom_client
num_client adresse
num_commande, num_article quantité.
62
On aura donc :
PRODUIT(num_produit, nom_produit, stock).
66
EXEMPLE DE BD RELATIONNELLE (1)
Relation VOL (numvol, depart, arrivee, numav, numpil, jdep, hdep, jarr, harr)
numvol : numéro du vol (clé)
depart : ville de départ
arrivee : ville d’arrivée
numav : numéro d’avion
numpil : numéro du pilote
jdep : jour de départ (clé)
hdep : heure de départ
jarr : jour d’arrivée
harr : heure d’arrivée
NUMVOL DEPART ARRIVEE NUMAV NUMPIL JDEP HDEP JARR HARR
V0001 Paris San Francisco A0001 P0002 15/05/2004 10:00 16/05/2004 09:30
V0002 Londres Moscou A0003 P0001 15/05/2004 10:30 15/05/2004 17:00
V0003 Berlin Madrid A0002 P0003 15/05/2004 11:15 15/05/2004 18:00
V0004 Londres Madrid A0004 P0006 16/05/2004 06:20 16/05/2004 09:30
V0005 Bruxelles Rome A0006 P0005 16/05/2004 10:00 16/05/2004 15:10
V0006 Berlin Amsterdam A0005 P0001 16/05/2004 14:30 16/05/2004 17:00
V0007 Paris Bruxelles A0001 P0002 16/05/2004 18:00 16/05/2004 20:00
V0008 New York Paris A0001 P0003 17/05/2004 03:00 17/05/2004 21:30
V0009 Paris Bruxelles A0004 P0006 17/05/2004 06:00 17/05/2004 07:00
V0010 Berlin Madrid A0002 P0004 17/05/2004 08:00 17/05/2004 11:00
67
EXEMPLE DE BD RELATIONNELLE (2)
Relation PILOTE(numpilote, nom, prenom) NUMPILOTE NOM PRENOM
numpilote : numéro du pilote (clé) P0001 Dupuis Antoine
P0002 Simon Georges
nom : nom du pilote P0003 François Luc
Dépendance
Fonctionnelle
75
PASSAGE DU MODÈLE E/A AU MODÈLE RELATIONNEL (4)
Type d’association “commande”
Dépendance
Fonctionnelle
78
PASSAGE DU MODÈLE E/A AU MODÈLE RELATIONNEL (4)
Notation :
Notation :
106
LES OPÉRATEURS DE JOINTURE – LA JOINTURE NATURELLE
107
LES OPÉRATEURS DE JOINTURE – LA SEMI-JOINTURE
La semi-jointure est une jointure naturelle pour laquelle on
ne garde que les attributs de R1 (semi-jointure de gauche)
ou de R2 (semi-jointure de droite).
Notation :
semi-jointure de gauche
semi-jointure de droite
108
LES OPÉRATEURS DE JOINTURE – LA SEMI-JOINTURE
109
LES OPÉRATEURS DE JOINTURE – LA SEMI-JOINTURE
110
LES OPÉRATEURS DE JOINTURE – L'ANTI-JOINTURE
L’anti-jointure est une semi-jointure retournant le
complément des tuples sélectionné.
Notation :
anti-jointure de gauche
anti-jointure de droite
111
LES OPÉRATEURS DE JOINTURE – L'ANTI-JOINTURE GAUCHE
112
LES OPÉRATEURS DE JOINTURE – L'ANTI-JOINTURE DROITE
113
LES OPÉRATEURS DE JOINTURE – JOINTURE EXTERNE
Les trois types de jointures externes sont toutes basées sur le même
principe (qu’on nomme jointure externe entière).
Les jointures externes sont des opérateurs qui créent une nouvelle
relation R à partir du produit cartésien de R1 et R2. De plus, on
identifie les tuples qui correspondent au prédicat donnés. Les tuples ne
correspondant pas au prédicat sont mis à une valeur nulle.
Notation :
Jointure externe entière
R1=Personne,Livre,DateEmprunt(Emprunt)
R2= Personne,Livre,DateEmprunt(Retard)
R3= Personne(R1-R2)
R4= Personne(Emprunt)-R3
136
EXERCICE 4
Soit la BD pour la gestion des spectacles suivante:
Spectacle(Spectacle_ID, Titre, DateDéb, Durée, Salle_ID, Chanteur)
Concert (Concert_ID, Date, Heure, Spectacle_ID)
Salle (Salle_ID, Nom, Adresse, Capacité)
Billet (Billet_ID, Concert_ID, Num_Place, Catégorie, Prix)
Vente (Vente_ID, Date_Vente, Billet_ID, MoyenPaiement)