Modèle relationnel

1970 : bases de données relationnelles

Les bases de données relationnelles ont été mises au point en 1970 par Edgar Franck Codd, informaticien britannique (1923-2003).

Ces bases de données sont basées sur la théorie mathématique des ensembles.

Le modèle de données relationnel représente une base de données comme un ensemble de :

  • relations (tables à deux dimensions) qui contiennent
    • un ensemble de n-uplets ou tuples (les lignes – ou enregistrements – de la table)
      • dont les entrées (des valeurs qui peuvent être de type nombre, texte, booléen ou bien NULL) appartiennent à un domaine.
    • des attributs (les colonnes de la table), dont les noms peuvent servir de clefs.

Ordre d'une relation

On appelle ordre (ou degré) le nombre d’attributs d’une relation.
Par exemple : la relation Produits est d’ordre 4.

Cardinal d'une relation

On appelle cardinal le nombre d’enregistrements d’une relation.
Par exemple : la relation Produits est de cardinal 5.

Dans une même base de données, plusieurs relations peuvent avoir des attributs de même nom. Pour désigner l’attribut attr1 d’une relation rel1, on le notera : rel1.attr1.

Par exemple : Produits.Référence

 

Domaines

Domaine d'un attribut

Le domaine d’un attribut est un ensemble, fini ou infini, de valeurs admissibles.

Par exemple :
le domaine de l’attribut « Prix » est l’ensemble des nombres à virgule flottante (FLOAT) exprimés avec deux chiffres après la virgule.
le domaine de l’attribut « Nom » correspond à l’ensemble des chaînes de caractères (TEXT).

Le domaine d’un attribut est renseigné au moment de la création de la relation. Le SGBD s’assure par la suite qu’un élément ajouté à une relation respecte bien le domaine de l’attribut correspondant.

 

Activité : domaines
Définir le domaine de l’attribut « Référence ».
Définir le domaine de l’attribut « En stock ».

 

Relations et clés

Les relations d’une base sont reliées (ou « connectées ») par certaines des valeurs qu’elles contiennent : chaque enregistrement d’une table contient un groupe d’informations relatives à un sujet et les différents sujets sont connexes.
Par exemple : les relations Produits et Ventes sont connectées puisque l’objectif de la base de données est de gérer la vente de produits !
Ces liens existants entre les informations sont stockés dans les champs (attributs) des enregistrements sous forme de clés.
Pour une relation donnée, une clé est un groupe d’attributs permettant d’identifier un unique enregistrement de la relation.
Pour qu’un groupe d’attributs forme une clé, il faut être sûr que deux enregistrements n’auront jamais des valeurs identiques pour ces attributs : on parle d’unicité de la clé.
On parle de clé candidate si le groupe d’attributs de la clé est minimal, c’est-à-dire que si on retire un seul des attributs de ce groupe, l’unicité n’est plus vérifiée.

 

Toute relation doit avoir au moins une clé candidate (et peut en avoir plusieurs).

 

  • clé primaire : c’est l’une des clés candidates de la relation, choisie pour être utilisée comme clé étrangère dans une autre relation :
  • clé étrangère : attribut d’une relation dont les valeurs sont des références à une clé primaire d’une autre relation.

Pour préserver l’intégrité d’une base de données, le SGBD se charge de vérifier que toutes les valeurs d’une clef étrangère d’une relation correspondent bien à des valeurs présentes dans la clef primaire de l’autre relation.

Activité : clés candidates
Donner les attributs des relations Produits et Ventes qui peuvent constituer des clés candidates.

 

 

Schéma relationnel

Les tables constituent la structure logique du modèle.

Le schéma d’une relation précise le nom de la relation ainsi que l’ensemble des attributs .

Exemple : Produits (Référence, Nom, En stock, Prix)

Le schéma relationnel d’une base de données est l’ensemble des schémas des relations qui la composent.

Exemple :

    • Produits (Référence, Nom, En stock, Prix)
    • Ventes (Numéro, Référence produit, Date, Quantité)

 

Il est possible de faire apparaitre sur un schéma relationnel les clé primaires et étrangères des relations :

Exemple :

    • Produits (Référence, Nom, En stock, Prix)
    • Ventes (Numéro, #Référence produit, Date, Quantité)

Dans cette notation,

    • les clés primaires apparaissent soulignées,
    • les clés étrangères précédées (ou suivies) d’un # .

On peut également préciser les domaines des différents attributs :

Exemple :

    • Produits (Référence : TEXT, Nom : TEXT, En stock : BOOL, Prix : FLOAT)
    • Ventes (Numéro : INT, #Référence produit : TEXT, Date : DATE, Quantité : INT)

 

On peut représenter un schéma de relation sous une forme graphique, par exemple à l’aide d’un diagramme :

Activité : ressources humaines

Soit une base de données dont le schéma relationnel est le suivant :

EMPLOYE (NumEmp, Nom, Prénom, Adresse, Téléphone, Qualification)
SERVICE (NomService, #Responsable, Téléphone)
PROJET (NomProjet, DateDeb, DateFin, #NumEmp)

Réécrire ce schéma sous forme de diagramme.
Un employé peut il avoir plusieurs qualifications ?
Un employé peut il faire plusieurs projets en même temps ?
Une personne peut elle être responsable de plusieurs services ?
Un service peut il avoir plusieurs responsables ?

 

Activité : aéroport

Soit une base de données dont le schéma relationnel est le suivant :

Pilote (PLNUM, PLNOM, PLPRENOM, VILLE, SALAIRE)
Avion (AVNUM, AVNOM, CAPACITE, LOCALISATION)
Vol (VOLNUM, #PLNUM, #AVNUM, VILLEDEP, VILLEARR, HEUREDEP, HEUREARR)

Réécrire ce schéma sous forme de diagramme.

 

Activité : films
  • En partant de la relation Films ci-dessous, créer une relation Réalisateurs  (id, nom, prenom et annee_naissance).
  • Modifier la relation Films afin d’établir un lien avec la Réalisateurs. Préciser l’attribut qui jouera le rôle de clef étrangère.

Films :

id titre realisateur annee_sortie note_sur_10
1 Alien, le huitième passager Scott 1979 10
2 Dune Lynch 1985 5
3 2001 : l’odyssée de l’espace Kubrick 1968 9
4 Blade Runner Scott 1982 8

 

Contraintes d’intégrité

Une contrainte d’intégrité est une règle, établie à la création d’une base de données, qui définit la cohérence des données de la base.

Une contrainte peut agir au niveau de la valeur d’une donnée, de la relation où elle est enregistrée, ou encore d’un ensemble de relations.

 

Contrainte de domaine

Elle est définie par le domaine que l’on spécifie pour chaque attribut d’une relation.

Le choix du domaine est important pour assurer l’intégrité des données.

Exemple, pour l’attribut Prix de la relation Produits

Si on choisit le domaine FLOAT (ensemble des nombres entiers), on autorise la possibilité d’avoir des prix qui n’ont pas le bon nombre de chiffres après la virgule.

Il faut préférer le domaine DECIMAL(5,2) (ensemble des nombres décimaux à compris entre -999.99 et 999.99)

Selon les SGBD, on pourra également limiter les nombres à des entiers positifs, les chaînes de caractère à un ensemble fini de mots, …

 

Contrainte de relation

Il faut spécifier une clé primaire pour chaque relation d’une base de données. Ainsi le SGBD pourra s’assurer qu’il sera possible avec cette clé d’accéder à un unique enregistrement, et interdira la création de doublons.

Exemple : le SGBD renverra un message d’erreur si l’on tente de créer deux Produits ayant la même Référence.

Si on omet de spécifier une clé primaire pour une relation, l’application qui exploite les données pourrait avoir de graves dysfonctionnements !

 

Contrainte de clé étrangère

Les clé étrangères d’une relation doivent être définie lors de la création de la relation. Ainsi, le SGBD sera chargé de vérifier qu’une valeur de clé étrangère correspond bien à une des valeur de clé primaire de la table à laquelle elle se réfère.

Exemple :

Chaque valeur de l’attribut Référence produit de la relation Ventes doit obligatoirement figurer parmi les valeurs de l’attribut Produit de la relation Produits.

Si on tente de donner la valeur 536124 à à la Référence produit d’une vente, cela provoquera une erreur !

 

Contrainte d’intégrité référentielle

Elle est définie par trois règles :

  • une clé étrangère doit être une valeur qui fait partie des valeurs de clé primaire de la relation à laquelle elle se réfère
  • un enregistrement d’une relation ne peut pas être supprimé s’il possède des enregistrements liés
  • la clé primaire d’un enregistrement d’une relation ne peut pas être modifié s’il possède des enregistrements liés

 

 

 

Sources :
http://www.ai.univ-paris8.fr/~lysop/bd/seance4-ModeleRel.pdf
https://fr.wikipedia.org/wiki/Base_de_données_relationnelle
https://openclassrooms.com/courses/initiez-vous-a-lalgebre-relationnelle-avec-le-langage-sql/comprenez-limportance-des-cles
https://pixees.fr/informatiquelycee/n_site/nsi_term_bd_rela.html

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *