Vous êtes sur la page 1sur 8

Les modèles logiques de données

Un modèle de données est le plan de conception sur lequel se base un SGBD. Il donne des détails sur
comment structurer les données, les relations entre elles, les règles et les contraintes de validation des
données et toutes les transformations pouvant être appliquées sur les données.
Depuis l’arrivée des bases de données, différents modèles ont été proposés.

1) Le modèle hiérarchique
Un modèle hiérarchique utilise une structure d’arbre (arborescence) pour la représentation des données.
Cette structure est constituée de la racine liée à plusieurs niveaux de sous arbre.
Un nœud parent de l’arbre peut être lié à un ou plusieurs nœuds fils (nœud de niveau inférieur).

Par exemple, pour représenter les liens de la BD "Avions" nous devons choisir entre diverses
arborescences qui privilégient l'une des entités AVION, PILOTE ou VOL comme racine. Le choix de VOL
n'est pas intéressant car aucun lien hiérarchique (de type 1 : N) n'émerge de cette entité.
 Choix de l'entité AVION comme racine :

Un nœud fils a un seul nœud parent.


Dans ce modèle, nous appelons un type enregistrement un ensemble de noms d’attributs
avec leurs types correspondants.
Segment est un nœud et il correspond à une instance d’enregistrement. L’unité d’accès est le segment.

Exemple : Gestion des approvisionnements


 Un fournisseur est décrit par son numéro NF, son nom NOM, son code CODE et la ville où il est
situé VILLE.
 Une pièce est décrite par son numéro N, son nom NOM, son poids POIDS, son matériau
MATERIAU et la ville où elle est stockée VILLE.
 Un fournisseur f fournit une pièce p en une certaine quantité q.
 Un fournisseur peut fournir plusieurs pièces et une pièce peut être fournit par plusieurs
fournisseurs (association n-m).
Nous voulons concevoir cette partie de la base de données qui décrit la relation entre les entités
pièce et fournisseur en utilisant le modèle hiérarchique.
 Avantages du modèle hiérarchique
 Adéquation du modèle avec les entreprises à structure arborescente (un grand nombre
d'organisations économiques et sociales correspondent à ce modèle).
 Simplicité du modèle et implémentation facile.
 Adéquation de la structure du schéma et des besoins des utilisateurs.
 Inconvénients du modèle hiérarchique
 Impossibilité de représenter directement les liens N : M qui entraîne des redondances. (1)
 Anomalies pour les opérations de stockage : (2)
- La suppression d'un nœud entraîne la disparition des descendants.
- L'insertion d'une information impose la création d'un segment parent.
- Le remplacement d'une information doit s'effectuer pour toutes ses occurrences dans des
arbres distincts.
 Chemin d'accès unique aux données. (3) implique
 Indépendance logique très réduite. (4)

Dans l’exemple précédent :

- (1) Le concepteur doit choisir de représenter la relation entre pièce et fournisseur en un seul sens
(association un à plusieurs : un fournisseur fournit un ou plusieurs pièce).

- (2) Les opérations de recherche et de mise à jour deviennent plus complexes, d’autant plus avec un
mauvais schéma conceptuel :

 Si l’on veut établir la liste des pièces, il faudra analyser pour chaque fournisseur la liste des
pièces fournies : donc on doit passer obligatoirement par le segment fournisseur avant
d’accéder aux segments pièces.
 Si l’on veut insérer une nouvelle pièce non encore fournie par aucun fournisseur, on doit
introduire un fournisseur fictif.
 Si l’on supprime le seul fournisseur d’une pièce donnée, les informations liées à cette pièce
seront aussi supprimées.
 Si l’on veut modifier le matériau de P2, on doit examiner toutes les listes des pièces fournies par
les fournisseurs (analyse complète de la base de données).

- (3) Pour accéder à un segment il faut accéder d’abord à son segment supérieur.
- (4) La formulation des requêtes dépend de la structure hiérarchique ce qui rend la mise à jour des
programmes d’application difficile.

2) Le modèle réseaux
Dans ce modèle, nous appelons :
 Atome (data item) : la plus petite unité de données possédant un nom et représentée par une
valeur
 Agrégat (data aggregate) : une suite d’atomes rangés consécutivement dans la base de données et
possédant un nom.
 Enregistrement (record) : une suite d’atomes et d’agrégats rangés consécutivement dans la
base de données et constitue le bloc d’échange entre les applications et la BD.
Par analogie, un nœud dans le modèle réseau correspond à un type d’enregistrement. Chaque
enregistrement est identifié de manière unique par une clé (une clé est un atome ou un agrégat). Les arcs
définissent les relations entre les enregistrements.

Dans le modèle de CODASYL un lien est appelé SET et il définit un lien entre un enregistrement
propriétaire appelé OWNER et un ou plusieurs enregistrements membres appelés MEMBER.

Dans la norme CODASYL, les liens sont de deux types uniquement 1-1 et 1-N.
Pour créer un lien M-N on peut le faire indirectement : utiliser un enregistrement intermédiaire avec
deux liens 1-N.
L’enregistrement intermédiaire est créé en utilisant les données d’intersection si elles existent. Il
possédant comme clé la concaténation des clés des enregistrements composant le lien (le lien avant
transformation ; le lien M-N).
L’exemple précédant décrivant la relation fournisseur-pièce est représenté par le modèle réseau
CODASYL.

Pour définir la relation M-N entre fournisseur et pièce, d’abord on crée l’enregistrement intermédiaire «
Fourniture » puis on crée deux liens (SETS de type 1-N) pour relier pièce et fournisseur à fourniture. Ce
nouvel enregistrement possède comme clé la concaténation des clés des enregistrements composants le
lien.
Le majeur inconvénient du modèle réseau est la gestion complexe des pointeurs.

  Avantages du modèle réseau

 Représentation naturelle des liens maillés (N : M).


 Elimination des redondances de données.
 Création de chemins d'accès multiples à une même donnée.
 Absences d'anomalies pour les opérations de stockage.

 Inconvénients du modèle réseau


 Pas d'indépendance vis à vis des stratégies d'accès.

3) Le modèle relationnel

 Le modèle relationnel est un modèle dans lequel les données sont organisées sous forme de tables
qui sont associées entre elles.

 Une relation est une table qui contient des données, chaque colonne de cette table va correspondre
à un attribut de celle-ci, qui permet d’identifier une information stockée dans cette relation.

Une ligne de la relation est appelée un enregistrement ou un n-uplet.

 Le schéma d’une relation définit cette relation.


On appelle schéma d’une relation la formule :
NOM_RELATION(NOM_ATTRIBUT1, ...).
Le schéma d’une relation peut avoir une forme textuelle ou une forme de table.

Exemple
Si on considère un ensemble de livres, on peut construire la relation LIVRES avec comme attributs l’ISBN,
le titre, le nom de l’auteur et l’année de publication.

Le schéma de cette relation est :


LIVRES(ISBN, titre, nom_auteur, annee_publication).

 Notion de clé primaire


Chaque entité doit posséder une clé primaire.

Une clé primaire (Primary Key en anglais) est un attribut ou un ensemble d’attributs qui permettent
d’identifier l’enregistrement de manière unique.

Pour signaler la clé primaire dans le schéma de la relation associée, on peut souligner l’attribut qui
correspond à cette clé primaire.

Exemple
Dans la relation LIVRES précédente, le seul attribut qui correspond à une clé primaire est l’identifiant
numérique, puisque des livres différents peuvent avoir un même auteur, une même année de publication
et même un même titre (Jill McCorkle et Kate Atkison ont publié deux livres différents qui portent le
même titre : Life After Life).

On a donc le schéma de relation :


LIVRES(Identifiant numerique, Titre, Auteur, Annee).

 Notion de clé étrangère


Une clé étrangère (Foreign Key en anglais) est un attribut qui n’est pas primaire pour la relation étudiée
mais qui est la clé primaire d’une autre relation.
Pour signaler la clé étrangère dans le schéma de la relation associée, on peut soit placer un # devant
l’attribut qui correspond à cette clé étrangère, soit surligner cet attribut en gris.

Exemple
On considère les deux schémas de relation suivants.
LIVRES(identifiant numerique, Titre, #identifiant.AUTEURS, annee)
AUTEURS(identifiant.AUTEURS, Nom AUTEURS, Prenom AUTEURS)
identifiant.AUTEURS est une clé primaire de la relation AUTEURS et une clé étrangère de la
relation LIVRES.

Le schéma relationnel correspond à l'ensemble des relations présentes dans une base de données. Le
schéma relationnel d’une base de données est composé de l’ensemble des schémas de relation de cette
base.
Il faut donner les noms des relations, les attributs, les clés primaires soulignées et les clés étrangères
précédées d’un # dans des tableaux, puis faire une flèche pour indiquer de quelle table la clé étrangère
est la clé primaire.

 Avantages et inconvénients d'une base de données relationnelle

Les bases de données relationnelles présentent plusieurs avantages par rapport aux bases de données
traditionnelles.
 Indépendance structurelle : La base de données relationnelle ne concerne que les données et non
une structure. Cela peut améliorer les performances du modèle.
 Facilité d’utilisation : Le modèle relationnel est très intuitif à utiliser car composé de tableaux
organisés de lignes et de colonnes.
 Capacité d'interrogation : Il permet à un langage de requête de haut niveau comme SQL d'éviter une
navigation complexe dans la base de données.
 Indépendance des données : La structure d'une base de données peut être modifiée sans avoir à
changer d'application.
 Redondance des données : Une base de données relationnelle garantit qu'aucun attribut n'est
répété.
Cependant, il est important de garder à l'esprit que les bases de données relationnelles peuvent parfois
être lentes et peu évolutives :
 Certaines bases de données relationnelles ont des limites sur la longueur des champs utilisés.
 Les bases de données relationnelles peuvent parfois devenir complexes à mesure que la quantité de
données augmente et que les relations entre les éléments de données deviennent plus complexes.
 Les systèmes de bases de données relationnelles complexes peuvent conduire à des bases de
données isolées où l'information ne peut être partagée d'un système à l'autre.

4) Le modèle objet
a) Principaux concepts
 Objet
Définition : Abstraction informatique d’une entité du monde réelle caractérisée par une identité, un état
et un comportement.
Le comportement est composé d’un ensemble d’opérations qui agissent sur l’objet telle que créer(),
démarrer(), détruire, …
Un objet peut être simple ou composé lui-même d’un ensemble d’objets.
Exemple : véhicule, étudiant, molécule d’eau…

 Attribut
Attribut (variable d’instance): caractéristique d’un objet désignée par un nom, un type et un domaine de
valeur. Cette caractéristique permet de mémoriser une ou plusieurs valeurs.
Exemple :
Objet Etudiant avec les attributs :

Carte-Etud: E2543398
Nom: KHALIL
Prénom: Mohamed
Date_nais: 10/10/1983
Tél: 0556187920

 Encapsulation
Tous les composants de l’objet sont englobé et protégé à l’intérieur. Ils ne sont alors accessibles qu’à
travers l’interface de l’objet.

 Opération
Représente une action applicable sur l’objet caractérisée par un entête appelée signature portant un nom
et une liste de paramètres.
Exemple : dessiner-cercle (pos-centre, rayon)
Un objet est manipulé via ses opérations qui l’encapsulent, sont état n’est alors ni consultable ni
modifiable qu’à travers ses opérations. Le code de ses opérations n’est jamais visible. (Seule l’interface est
visible).

 Interface
Ensemble des signatures des opérations publiques, y compris les lectures et écritures des attributs
publics, qui sont applicables depuis l’extérieur sur un objet.

 Classe
Abstraction d’un ou de plusieurs objet partageant un ensemble de comportement ou d’attributs
communs.
La classe donne une famille d’objets qui constituent alors l’extension de la classe.
Exemple : classe étudiant (num, nom, adresse, tel, inscrire() , évaluer(), renvoyer())

 Généralisation/spécialisation :

Lien hiérarchique entre deux classes spécifiant que les objets de la classe supérieure sont plus généraux
que ceux de la classe inférieure.

 Héritage

Transmission automatique des propriétés d’une classe de base vers une classe spécialisée (CS) cette
dernière hérite la structure et le comportement (attributs et méthodes) de classe générale (CG).

Cette propriété permet à une classe d’avoir les même propriétés qu’une autre classe sans avoir à les
redéfinir
Exemple : Personne (employé (cadre, ouvrier))

 Le Polymorphisme : Redéfinition & Surcharge


Le polymorphisme est la possibilité pour une opération d’avoir des signatures différentes attachées avec
des codes différents. Il peut apparaître sous deux formes :
1. Redéfinition : Spécification d’une opération existante dans une super-classe au niveau d’une sous-
classe, avec une implémentation différente.
Exemple : le cercle et le carré sont deux formes géométriques. L’opération dessiner() est une opération
de la classe forme géométrique dont le code sera spécifié au niveau de chaque sous-classe.
Dessiner (position, mesure) : dans carré: position sera celle du coin supérieur et mesure celle du côté et
dans cercle, position sera celle du centre et mesure celle du diamètre.
2. Surcharge (overloading): Possibilité de définir plusieurs codes pour une même opération d’une classe,
le code sera sélectionné en fonction du type de paramètre lors de l’appel.
Exemple typique sur le surcharge : l’opération +
- (entier, entier) -> entier
- (réel, réel) -> réel
- (chaine, chaine) -> chaine
b) Le relationnel-Objet
 On ajoute au relationnel un certain nombre des concepts de l’approche objet,
 On conserve la notion de table et on étend SQL.

Disponible partiellement sur: DB2, Oracle, PostgreSQL, SQL Server, Sybase…

c) Avantages et inconvénients

 Avantages des SGBDOO

 Le schéma d'une BD objet est plus facile à appréhender que celui d'une BD relationnelle (il est plus
proche des entités réelles)
 L'héritage permet de mieux structurer le schéma et de factoriser certains éléments de modélisation
 La création de ses propres types et l'intégration de méthodes permettent une représentation plus
directe du domaine.
 Les principes d'encapsulation et d'abstraction du modèle objet permettent de mieux séparer les BD
de leurs applications (notion d'interface).

 Inconvénient des SGBDOO

 Gestion de la persistance et de la coexistence des objets en mémoire (pour leur manipulation


applicative) et sur disque (pour leur persistance) complexe
 Gestion de la concurrence (transactions) plus difficile à mettre en œuvre
 Interdépendance forte des objets entre eux
 Gestion des pannes
 Complexité des systèmes (problème de fiabilité)
 Problème de compatibilité avec les SGBDR classiques

Vous aimerez peut-être aussi