Vous êtes sur la page 1sur 69

Introduction aux Base de Données

Safa BETTOUMI ZOGHLAMI

September 8, 2023

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 1 / 69


Introduction (1/2)

Une base de données informatique est une collection d’informations


organisées afin d’être facilement consultables, gérables et mises à jour.

Les bases de données sont utilisées pour :


• Stocker.
• Organiser .
• Analyser des données.
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 2 / 69
Introduction (2/2)

• Les entreprises gèrent des volumes de données très grands:


• Giga, Terra, Péta-octets.
• Numériques, Textuelles, Multi-média (images, films,...).
• Il faut pouvoir facilement:
• Archiver les données sur mémoires secondaires permanents.
• Retrouver les données pertinentes à un traitement.
• Mettre à jour les données variant dans le temps.

⇒ Première approche: Les fichiers!

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 3 / 69


Limites des fichiers

• De telles applications sont:


• Rigides et contraignantes.
• Longues et coûteuses à mettre en oeuvre.
• Manque de sécurité.
• Les données associées sont:
• Mal définies et mal désignées.
• Un accès aux données nécessite un programme.
• Redondantes, incohérentes et peu fiables.
• Peu accessibles de manière ponctuelle.
• Le modèle des données est intégré dans les programmes.
• Absence de contrôle pour l’accès et la manipulation des données.

⇒ Solution: Evolution vers les BD

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 4 / 69


L’approche ”Bases de données”?

• Une information n’est stockée qu’une seule fois, une seule base pour
toutes les applications, mais chaque application ne voit que celle doit
voir (contôle par les filtres ou les vues).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 5 / 69


L’approche ”Bases de données”?

• Les données sont totalement indépendant des programmes.


• On peut crée plusieurs vues et des données virtuelles.
• Limiter les accès aux utilisateurs.
• Sécuriser les données.
• Etc.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 6 / 69


L’approche ”Bases de données”?

• Le concept de base de données comprend essentiellement deux


aspects:
• Un ensemble structuré d’information.
• Un composant logiciel appelé système de gestion de bases de
données (SGBD) et qui permet l’utilisation de ces données
simultanément par plusieurs utilisateurs et programmes.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 7 / 69


Système de gestion de bases de données (SGBD)

• Programme gérant :
• La définition des données.
• La manipulation des données.
• L’intégrité des données.
• La sécurité des données.
• La concurrence d’accès.
• La résistance aux pannes.
• L’indépendance physique.
• L’indépendance logique.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 8 / 69


Le marché SGBD

Le DB-Engines Ranking classe les systèmes de gestion de bases de données


en fonction de leur popularité. Le classement est mis à jour mensuellement.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 9 / 69


Exemples d’application

• Gestion des personnels, étudiants, cours,inscriptions,...d’une université


• Système de réservation de billets d’avion
• Gestion des comptes clients d’une banque
• Gestion des commandes à Amazon
• Gestion des jeux olympiques
• Gestion des projets dans une societé
• Catalogue d’une bibliothèque

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 10 / 69


Modèles de base de données

• Modélisation: processus de description permettant de représenter


l’information de manière compréhensible.
• On utilise un modèle de données.
• Les modèles les plus connus:
• Le modèle relationnel: est une manière de modéliser les relations
existantes entre plusieurs informations, et de les ordonner entre elles...
• Le modèle hiérarchqique: est une base de données dont le système
de gestion lie les enregistrements dans une structure arborescente où
chaque enregistrement n’a qu’un seul possesseur.
• NoSQL: désigne une famille de systèmes de gestion de base de
données (SGBD) qui s’écarte du paradigme classique des bases
relationnelles.
• Etc.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 11 / 69


Etapes de construction d’une base de données relationnelle

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 12 / 69


Modèle Entité-association: Présentation

• Modèle conceptuel de données (MCD), c’est une représentation


abstraite de données.
• Un formalisme graphique pour la modélisation des données.
• Démarche de réalisation:
• Étude préalable: on capte le contenu du projet et on étudie sa
faisabilité, sa pertinence, ...
• Étude détaillée: on décrit en détail la solution qui est à produire.
• Réalisation: on écrit le code de la solution et les ressources techniques.
• Mise en oeuvre/livraison: on empaquette la solution.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 13 / 69


Modèle Entité-Association

• Le modèle Entité-Association permet de représenter conceptuellement


les données d’un problème.
• Fournit une représentation graphique des associations entre les
données.
• Permet de faire des diagrammes entité-association pour modéliser un
système.
• Le modèle est composé d’entités.
• Le modèle montre les associations entre les entités: quelle est
l’intéraction entre les différentes entités du système.
• Chaque entité et association peut avoir des attributs pour lui donner
des carctéristiques .
• Mots clés: Entité, Association, Attribut, Identifiant, Cardinalité.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 14 / 69


Entité VS Classe d’entités
• Une entité: est un objet identifiable et nommable du problème, un
événement, un lieu, une personne...
• Exemple: le cinéma ”ABC”, le cinéma ”AFRICA”, l’acteur ”Denzel
Washington”, le film ”bonheur est dans le pré”, le film ”the Equalizer”.
• C’est une instance de la classe d’entité.
• Classe d’entités: c’est un regroupement d’entités de même nature
(un ensemble d’entités).
• Exemple: Exemple: Cinema (avec les propriétés communes à tous les
cinémas), Acteurs, Films,etc.
• Formalisme de classe d’entité: représentation graphique

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 15 / 69


Association
• Classe d’association: C’est un lien entre 2 ou plusieurs classes
d’entités
• Exemples:
• Jouer (entre FILMS et ACTEURS)
• Afficher (entre CINEMA et FILMS)
• Realiser (entre REALISATEURS et FILMS)
• Chaque entité joue un rôle dans une association
• Une association C’est un lien entre 2 ou plusieurs entités
• Exemples:
• woody allen a joué dans ”Coups de feu sur brodway”
• Jérome a écrit l’ouvrage ”Bases de données”

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 16 / 69


Association
• Le degré d’une association
• C’est le nombre n participant à cette assocciation ( si degré=n, on dit
association n-aire).
• Exemples:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 17 / 69


Association
• Association plurielle
• Remarque : On peut avoir plusieurs associations entre les mêmes
entités.
• Deux mêmes entités peuvent être plusieurs fois en association (c’est le
cas sur la figure).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 18 / 69


Association

• Cardinalité:
• Les cardinalités d’une entité dans une association expriment le
nombre de fois qu’une occurrence de cette entité peut être impliquée
dans une occurrence de l’association, au minimum et au maximum.
• Elles traduisent des règles de gestion.
• Ces règles expriment des contraintes sur le modèle.
• Les valeurs possibles sont (0,1), (1,1), (0,N), (1,N).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 19 / 69


Association
• Cardinalité Minimum (0,1):
• Combien de fois au minimum une occurrence de l’entité participe à
l’association?
• Exemple
• Pour la cardinalité minimum entre ”client et commander”, il faut se
poser la question:
• Pour un client donné, combien de fois au minimum il commande?
• Ou encore mieux: est il obligatoire qu’un client effectue une commande
de produit?
• ⇒ Cela dépend des REGLES DE GESTION de l’entreprise.
• Cas 1: Si la règle de gestion est ” tout client doit passer au
moins une commande sinon ce n’est pas un client” on met la
cardinalité minimum à 1.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 20 / 69


Association

• Cardinalité Minimum (0,1):


• Cas 2: L’entreprise veut aussi mémoriser les clients potentiels
(prospects), qui n’ont encore rien commandé.
• Dans ce cas, un client peut très bien ne pas avoir encore
commandé, et on met la cardinalité mini à 0.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 21 / 69


Association
• Les cardinalités minimums permettent de définir la dépendance
d’entités:
• On dit qu’une entité est indépendante par rapport à une association
lorsque sa cardinalité minimale vaut 0, et dépendante par rapport à une
relation lorsque sa cardinalité minimale vaut 1.
• Exemple:

• Une occurrence d’un client peut donc très bien exister sans carte de
membre. Alors que, une carte membre ne peut jamais exister sans
client.
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 22 / 69
Activité 1

• Question: Est-il obligatoire qu’un produit ait été commandé pour


qu’il soit mémorisé dans la base de données? ou bien Peut-il exister
dans la base de données des produits qui n’ont jamais été
commandés?
• Faites deux hypothèses de règle de gestion concernant ce lien et
trouver les cardinalités minimales correspondantes.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 23 / 69


Réponse

• H1:L’entreprise peut proposer des nouveaux produits, sur catalogues


par exemple, qu’elle mémorise dans sa base de données, mais qui
n’ont jamais encore été commandés ⇒ cardinalité minimale à 0 (c’est
plutôt le cas pour les entreprises de vente).
• H2: Tout produit inscrit dans la base de donnée est forcément
commandé ( par exemple parce que l’entreprise ne propose pas de
catalogue, mais fabrique seulement à la commande) ⇒ cardinalité
minimale à 1 (c’est plutôt le cas pour les entreprises de production).
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 24 / 69
Association
• Cardinalité Maximum (1 ou n):
• Cette cardinalité répond à la question:
• La participation d’une occurrence doit-elle être unique?
• ou bien peut -être multiple?
• ou bien combien de fois au maximum une occurrence est elle impliquée
dans l’association?
• Si la réponse est ”au plus une fois” ( participation unique)
• La cardinalité maximum prend pour valeur 1.
• Si la réponse est ”plusieurs” (participation multiple).
• La cardinalité maximum prend pour valeur N.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 25 / 69


Activité 2
• RG (règles de gestion):
• Un salarié est affecté au plus à un seul service
• Dans un service sont effectés plusieurs salariés

• Il arrive (mais c’est rare) qu’une cardinalité maximale ait une valeur
limitée.
• Exemple: RG: Un élève peut suivre au maximum trois options

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 26 / 69


Typologie d’une association

Remarque: Importante pour connaı̂tre les règles de passage au


relationnel.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 27 / 69


Attribut

• Une Propriété ou Attribut est une donnée élémentaire que l’on perçoit
sur une entité ou association.
• Exemple:
• Pour la classe d’entité ACTEURS: Nom, prénom,...
• Pour la classe d’entité FILMS: Titre, Metteur en scène,...
• Pour la classe d’entité CINEMA: Nom et Adresse,...
• Formalisme graphique:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 28 / 69


Attribut

• Pour les associations:


• Les propriétés que l’on met dans une association doivent
obligatoirement relier les entités.
• Exemple: le rôle d’un acteur

• Remarque : cette association est dite association porteuse.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 29 / 69


Attribut
• Simple/composé
• Simple atomique ou non décomposable: le domaine de valeurs est
constitué de valeurs atomiques prédéfini (standard, intervalles,
énuméré) ou défini par l’utilisateur, attribut ayant une valeur d’un type
de base (exemple: jour, prénom).
• Composé: attribut constitué d’un groupe d’attributs (exemple: Date
qui se décompose en jour, mois, année. Adresse qui se décompose en
rue, ville, code postal).
• Monovalué/Multivalué
• Monovalué: Une seule valeur par occurrence (exemple: date de
naissance, numéro de sécurité).
• Attribut multi-valué::Attribut pouvant avoir plus d’une valeur (
exemple: prénoms, téléphones).
• Obligatoire/facultatif
• Obligatoire: une valeur au moins par occurrence (exemple: nom,
prénoms)
• Facultatif:peut ne pas prendre de valeur (exemple: salaire, téléphone).
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 30 / 69
Identifiant ou Clé

• Un identifiant appelé clé est un attribut qui permet de retrouver une


instance d’entité unique à tout instant parmi celles de la classe.
• Exemple:NSS des Personnes
• Un identifiant peut être constitué de plusieurs attributs (clé
composée).
• Exemple:
• [N◦ , Rue, Ville] pour Maisons
• [Nom, Prénom] pour Personnes
• Dans un modèle E/A, On souligne l’identifiant.
• Autres règles:
• On privilègie l’identifiant le plus court, le plus naturel (n◦ bon de
commande, n◦ étudiant,..)
• On peut créer un identifiant artificiel par commodité.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 31 / 69


Contrainte d’intégrité fonctionnelle
• Quand on détermine entre une association et une entité une
cardinalité qui présente les valeurs 0, 1 ou 1, 1, alors cette relation est
particulière et on dit qu’elle représente une Contrainte d’intégrité
Fonctionnelle (CIF).
• Une CIF indique que l’une des entités est totalement déterminée par
la connaissance de l’autre.
• Exemple: on peut dire que connaissant une facture bien précise, on
connait avec certitude le client correspondant.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 32 / 69


Démarche de conception

• Identifier les entités les plus naturelles (sujets, compléments).


• Identifier les associations entre ces entités.
• Identifier les attributs et les identifiants de ces entités et de ces
associations (compléments de verbe exprimant des dépendances
fonctionnelles).
• Exprimer les cardinalités et les rôles (distinguer les singulier du
pluriel).
• Enumérer des CI (Contraintes d’Intégrité).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 33 / 69


Exemple du schéma global

• Gestion de films:
• Un acteur a joué dans au moins un film. Un acteur peut avoir joué
dans plusieurs films.
• Un film n’ayant pas d’acteurs, possible si c’est un film documentaire
• Un film peut avoir plusieurs acteurs
• Un film a au moins un réalisitaeur
• Il y a au plus un réalisateur.
• Un film est affiché à une date précise.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 34 / 69


Exemple du schéma global (a-E A)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 35 / 69


Exemple du schéma global (b-identifiant)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 36 / 69


Exemple du schéma global (c-cardinalité des rôles)
• Gestion de films:
• Un acteur a joué dans au moins un film. Un acteur peut avoir joué dans plusieurs
films.
• Un film n’ayant pas d’acteurs, possible si c’est un film documentaire
• Un film peut avoir plusieurs acteurs
• Un film a au moins un réalisitaeur
• Il y a au plus un réalisateur.
• Un film est affiché à une date précise.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 37 / 69


Vérification et validation d’un modèle E/A

• Toute entité doit avoir un identifiant non nul.


• Un attribut ne peut pas être déterminée par une formule de
calcul, dans le contexte étudié.
• Absence d’attributs complexes:
• Pour un attribut complexes, il faut choisir entre le composé ou les
composants.
• Exemple: Représentation d’attribut complexe: Adresse composée de
nom, n◦ , ville, CP.
⇒Solution 1: Attributs par composants:nom rue, numéro, ville, CP:
”Rue des roses”, ”2”, ”Cergy”,”95000”.
⇒ Solution 2: un attribut Adresse, domaine: chaine de caractères
”Rue des roses Cergy 95000”.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 38 / 69


Vérification et validation d’un modèle E/A

• Pour un attribut multivalué, il faut créer une autre relation


(ceci pour chaque attribut multivalué).
• Exemple: mémoriser les différentes langues pratiquées par un étudiant.
⇒Solution incorrecte: Plusieurs attributs: langue, langue 2,..
⇒ Solution : Créer une entité supplémentaire dont les attributs sont:
Num lang, libelle lang.
• Absence de répétition d’attributs.
• Exemple: niveau d’un étudiant et niveau d’un cours.
⇒Solution: créer une nouvelle entité ”Niveau” liée à l’entité ”Cours”
et à l’entité ”Etudiant.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 39 / 69


Démarche de construction d’une BD

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 40 / 69


Le modèle relationnel

• La modélisation relationnelle permet de représenter les relations à


l’aide de tables (à deux dimensions) dont chaque colonne a un
identificateur qui représente un domaine. Une ligne du tableau
représente donc une entité et chacune des cases représente un de ses
attributs.
• On appelle attributs le nom des colonnes qui représentent les
constituants de l’entité. Un attribut (une colonne) est repéré par un
nom et un domaine de définition, c’est-à-dire l’ensemble des valeurs
qu’il peut prendre. On appelle tuple (ou n-uplet) une ligne du tableau.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 41 / 69


Modèle à deux concepts de base

• Modèle à deux concepts de base


• Relation ⇒ Table
• Attribut ⇒ colonne
Exemple:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 42 / 69


Structure de base de données

• Relation:
• Exemple:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 43 / 69


Structure de base de données
• Attribut:
• Une colonne dans une relation caractérisée par un nom et dont les
valeurs, appartenant à un domaine.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 44 / 69


Structure de base de données

• Tuples:
• Nuplet ou tuple: une ligne d’une relation correspondant à un
enregistrement, c-à-d une entité/instance de classe. Les nuplets d’une
relation sont tous différents.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 45 / 69


Structure de base de données

• Schéma d’une relation:


• Un Schéma d’une relation est caractérisé par:
• Un nom (R).
• Liste d’attributs A1,...,An, suivi chacun par son domaine D, on note
dom(Ak )= Dk .
• Clé primaire (identifiant).
• Eventuellement, clés étrangères ou secondaires.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 46 / 69


Structure de base de données

• Schéma d’une relation:


• Notation: R(A1:D1,...,An:Dn)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 47 / 69


Clé
• Clé candidate: sous-ensemble minimal d’attributs qui permet
d’identifier chacun des tuples de la relation.
• Clé primaire: une des clés candidates, choisie comme identifiant
privililégié (par le concepteur de la base).
Exemple: Etudiant(NumEtud: D1, Nom:D2, Prénom: D2,
DateNaissance: D3)
• 1 clé candidate: numéro de l’étudiant
• Si on est certain que 2 étudiants n’ont jamais le même nom, nom est
une 2ème clé candidate.
• Clé étrangère: étant données deux relations R1 et R2, on dit que
l’ensemble R1.K d’attributs de R1 est clé étrangère et référence R2 si
les attributs R1.K ont les mêmes domaines que les attributs de la clé
primaire de la relation R2.
• Exemple: dans l’association CLIENT lance Commande
• R2: Client(NClient: entier, Nom:D2, Prénom:D3)
• R1: Commande(Ncde:entier, DateCde:date, NClient#:entier)
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 48 / 69
Les règles d’intégrité structurelle

• Unicité de clé(Key)
• Par définition, une relation est un ensemble de tuples.
• Un ensemble n’ayant pas d’élément en double, il ne peut pas exister
deux fois le même tuple dans une relation
• Afin d’identifier les tuples d’une relation, la notion de clé est utilisée.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 49 / 69


Les règles d’intégrité structurelle

• Contrainte de références
• Les contraintes référentielles définissent des liens obligatoires entre
relations. Ce sont des contraintes très fortes qui conditionnent le
succès des opérations de mise à jour.
• Lors de l’insertion d’un tuple dans une relation référençante (exp:R1), il
faut vérifier que les valeurs de clés étrangères (exp: R1.Nclient)
existent dans les relations référencées(R2).
• Contrainte d’intégrité portant sur une relation R1, consistant à imposer
que la valeur d’un groupe d’attributs apparaisse comme valeur de clé
dans une autre relation R2.
• Exemple: dans l’association CLIENT lance Commande
• R2: Client(NClient: entier, Nom:D2, Prénom:D3)
• R1: Commande(Ncde:entier, DateCde:date, NClient#:entier)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 50 / 69


Les règles d’intégrité structurelle

• Valeurs nulles et clés


• Lors de l’insertion de tuples dans une relation, il arrive fréquemment
qu’un attribut soit inconnu ou non applicable. On est alors amené à
introduire dans la relation une valeur conventionnelle, appelée valeur
nulle (Null value).
• Valeur conventionnelle introduite dans une relation pour représenter
une information inconnue ou inapplicable.
• Contrainte d’intégrité impose que:
• toute relation possède une clé primaire
• et que tout attribut participant à cette clé primaire soit non nul.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 51 / 69


Passage du modèle E/A au modèl relationnel

• Règle 1: Traduction des entités


• Toute entité devient une relation dans laquelle les propriétés deviennent
des attributs.
• L’identifiant de l’entité constitue alors la clé primaire de relation ⇒
attribut souligné.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 52 / 69


Passage du modèle E/A au modèl relationnel

• Règle 2: Traduction des relations N-M


• Une association entre deux entités de type N-M est traduite par une
relation supplémentaire ( parfois appelée table de jointure) dont la clé
primaire est composée de deux clés étrangères référençant les clés
primaires des deux entités en association. Les propriétés de
l’association deviennent des attributs de cette relation.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 53 / 69


Passage du modèle E/A au modèl relationnel

• Règle 3: Traduction des associations 1-N


• Cas d’ossociation (*,1)...(*,N):
Dans le cas de deux entités reliées par une association de type
1,1-*,N, on ajoute une clé étrangère dans la relation côté 1,1,
référençant la clé primaire de la relation côté 0,n ou 1,n. Les
propriétés de l’association glissent vers la relation côté 1 ou 1,1.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 54 / 69


Passage du modèle E/A au modèl relationnel

• Règle 4: Traduction des associations 1-1 (1/4)


• Une association 1-1 peut être traduite:
• Comme une association 1-n particulière
• Ou par la fusion en une table des deux entités
• Critères de choix:
• Cardinalités minimales
• Usage des données

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 55 / 69


Passage du modèle E/A au modèl relationnel

• Règle 4: Traduction des associations 1-1 (2/4)


• Exemple 1: les deux cardinalités minimales sont 1. On construit une
seule table contenant les attributs des deux entités. La clé est reportée
une seule fois si elle est la même.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 56 / 69


Passage du modèle E/A au modèl relationnel

• Règle 4: Traduction des associations 1-1 (3/4)


• Exemple 3: une cardinalité minimale est 0, l’autre est 1. On reporte,
dans l’entité dont la participation est totale, l’identifiant de l’autre
entité.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 57 / 69


Passage du modèle E/A au modèl relationnel)
• Règle 4: Traduction des associations 1-1 (4/4)
• Exemple 4: les deux cardinalités minimales sont 0. On crée une table
spécifique avec les identifiants des deux entités. Ce cas d’association
nécessite la création d’une autre table (ici EQUIPER) prenant comme
clé primaire la composition des clés primaires des autres tables
devenant clé étrangère dans la table COMPOSER.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 58 / 69


Passage du modèle E/A au modèl relationnel

• Règle 5: Traduction des associations n-aires


• La table issue de l’association est composée des identifiants de toutes
les entités participant à l’association comme clé étrangère et comme
clé primaire composée. Les propriétés portées par l’association
devenant des attributs de cette table.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 59 / 69


Passage du modèle E/A au modèl relationnel
• Règle 6: Traduction des associations récursives (1/2)
• Une association reflexive [1,1] sur une entité est traduite par une clé
étrangère dans la relation représentant cette entité. Le nom de cette
clé étrangère est celui de l’association.

• Une association réflexive [1,n] est traduite en une clé étrangère dans la
relation représentant cette entité. Le nom de cette clé étrangère est
celui de l’association si c’est le nom de l’association qui étiquette le
trait de cardinalité maximale 1, sinon c’est le nom de l’association
réciproque.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 60 / 69


Passage du modèle E/A au modèl relationnel

• Règle 6: Traduction des associations récursives (2/2)


• Une association réflexive [n,n] sur une entité E est traduite en une
relation de même nom avec deux clefs étrangères. L’une d’elles porte le
nom de l’identifiant de l’entité et l’autre, le nom de l’association. La
clef primaire de cette relation est constituée de ces deux attributs.

• Ce sont des relations binaires particulières et il faut les traduire selon


leur type (1-1, 1-N, N-M).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 61 / 69


Passage du modèle E/A au modèl relationnel

• Règle 7: traduction des liens de généralisation


• Les généralisations peuvent définir des couvertures totales ou partielles
• TOTALE: tout élément est dans une sous-classe
Exemple: PERSONNE en HOMME et FEMME
• PARTIELLE: certaines éléments ne sont dans aucune sous-classe
Exemple: PERSONNE en EMPLOYE et OUVRIER
• Les généralisations peuvent définir des couvertures exclusives ou avec
recouvrement
• EXCLUSIVE: tout élément est au plus dans une sous-classe
Exemple: PERSONNE en HOMME et FEMME
• AVEC RECOUVREMENT ou IMBRIQUEE: certains éléments peuvent
être dans plusieurs sous-classes
Exemple: OISEAU en MIGRATEUR et VOLANT

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 62 / 69


Passage du modèle E/A au modèl relationnel

• Règle 7: traduction des liens de généralisation


• Solution 1: Transformation de la hiérarchie de généralisation en une
seule table

• Avantages:
• Solution la plus simple en nombre de relations
• Possible quelle que soit la hiérarchie (totale/partielle, exclusive/non
exclusive)
• Inconvénients:
• Peut générer beaucoup d’attributs avec des valeurs nulles

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 63 / 69


Passage du modèle E/A au modèl relationnel
• Règle 7: traduction des liens de généralisation
• Solution 2: Supprimer l’entité générique

• Avantages:
• Intéressant quand le concept générique n’est pas important
• Inconvénients:
• Impossible quand la généralisation est partielle ou avec recouvrement
(C’est pas obligatoire qu’une personne soit un ouvrier ou bien
employer. Donc, on peut pas supprimer Personne).
• Perte de sémantique: notion de personne
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 64 / 69
Passage du modèle E/A au modèl relationnel

• Règle 7: traduction des liens de généralisation


• Solution 3: Transformation de la hiérarchie des généralisations en
associations

• Avantages:
• Possible quel que soit le type d’hiérarchie
• Pas de perte sémantique
• Inconvénients:
• Schéma resultant assez complexe

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 65 / 69


Passage du modèle E/A au modèl relationnel

Eléments de choix entre les trois transformations (solutions)


• La règle 2 est à rejeter si la hiérarchie n’est pas totale et exclusive.
• On considère les traitements (et leur fréquence):
• Si les traitements utilisant de façon combinée les attributs génériques
et spécifiques mais les spécifiques sont prépondérants, on peut
supprimer la généralisation. On utilise donc la règle 2.
• Si non, on utilise les règles 1 ou 3 selon les cas suivants:
• Si les principaux traitements de mise à jour se font surtout sur
l’ensemble des attributs (génériques et spécifiques), on utilise la règle 1
(Transformation de la hiérarchie de généralisation en une seule table).
• Si non, on utilise la règle 3.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 66 / 69


Passage du modèle E/A au modèl relationnel

• Recap (1/2)
• Entité⇒ relation (clé primaire = identifiant de l’entité).
• Les pseudo-entités(attribut spatio-temporel), n’apparaissent plus dans
le modèl relationnel (DATE par exemple).
• Association M-N: 3ème relation de jointure (clé primaire=
concaténation des identifiants des entités participant à la défintion de
l’association).
• Association 1-N: ajout d’une clé étrangère côté 1 (identifiant de
l’entité côté N).
• Si l’association est porteuse, ou
• Si la cardinalité minimum côté 1 vaut 0
⇒ Solution possible: une table de jointure, les entités sont traduites en
relations contenant seulement leurs attributs)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 67 / 69


Passage du modèle E/A au modèl relationnel

• Recap (2/2)
• Association 1-1
• Cas 1,1-1,1: Cas particulier (non souhaitable) ⇒ fusion des entités dans
une seule table(clé primaire est l’un des identifiants des deux entités).
• Cas 1,1-0,1:ajout de l’identifiant côté 0,1 vers 1,1(CIF)
• Cas 0,1-0,1
• Migration de l’un des identifiants côté de la deuxième entité (selon les
traitements)⇒risque de clé étrangère nulle ⇒ quelle solution?
• Si l’association est porteuse:
⇒ 3ème relation (clé primaire: l’un des identifiants, + clé étrangère le
second identifiant).
• Association réflexives:
• Cas 0,1-0,1
• Cas 1-N
• Cas M-N ⇒ 2 relations: une pour traduire l’entité d’origine+une
relation de jointure (même règles des clés que pour ces types
d’associations).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 68 / 69


Conclusion

• Certaines règles sont automatisables.


• Certains cas traitent cette traduction avec les règles standards.
• Cependant, il y a de nombreux cas où le concepteur doit intervenir:
• Choix entre différentes traductions.
• Redéfinition des clés dans les relations N-aires.
• Parfois, des considérations de traitement (niveau physique) sont
anticipées.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 8, 2023 69 / 69

Vous aimerez peut-être aussi