Introduction aux bases de données Hiver 2021

Geoffrey Glangine, M.Sc.

8TRD151

Le modèle relationnel

Les modèles de base de données

Il faut trouver le modèle qui correspond au mieux pour représenter une situation.

Dans d'autres termes, quelle est la structure de données la plus appropriée pour modéliser un problème?

Plusieurs modèles de base de données existent, on peut voir les SGBDs les plus connus et les modèles qu'ils utilisent ici

Nous allons voir plusieurs modèles différents pour comparer, mais dans le cadre de ce cours nous en étudierons qu'un seul en profondeur

Le modèle en graphe

Dans ce modèle, la base de donnée est un ensemble de nœuds étiquetés.

Les noeuds sont reliés par des graphes qui sont eux aussi étiquetés.

image not found

Exemple de graphe pour une base de données d'entreprise de location

Avec ce type de base de données, on va plutôt rechercher à mettre en évidence des liens entre les noeuds, des distances entre les élements...

Pour plus d'informations sur les bases de données en graphe, vous pouvez lire la documentation disponible ici

Si vous décidez de faire une maitrise à l'uqac, le cours Bases de données réparties 8INF803 propose une très bonne introduction à ce type de bases de données.

Le modèle en arbre

La BD est un ensemble de noeuds, chacun pouvant contenir plusieurs attributs.

Les noeuds sont structurés sous la forme d'un arbre.

Le format de fichier xml est un arbre!

Le modèle clé/valeur

Ce modèle représente les données sous forme d'un ensemble de clés associés à des valeurs

le cours 8INF803 présente en détail ce modèle

Exemple de données stockées sous la forme de clé/valeurs

Classement actuel des modèles les plus utilisés

not found

Les bases de données relationnelles (Enfin !)

inventées dans les années 1970 pour :

Garder une indépendance des données, càd que les programmes ne doivent pas être affectés par un changement de la structure du stockage des données.

gérer les problèmes d'intégrité et de redondance et de cohérence.

Le modèle relationnel est basé sur le concept mathématique de relations.

Pour mieux le visualiser, on le représente souvent par un tableau. Cependant il n'est pas forcément représenté comme ça informatiquement.

Un peu de vocabulaire !

Relation : Une table contenant des lignes et des colonnes

Attribut : Le nom d'une colonne de relation. L'ordre des attributs n'a pas d'importance.

Domaine :L'ensemble des valeurs permises pour un attribut (Entier, String, Float...)

Tuple : Une ligne d'une relation (aussi appelé occurrence)

Exemple d'une relation avec ses attributs et quelques occurrences

Une base de donnée relationnelle est un ensemble de relations normalisées possédant chacune un nom différent.

Propriétés d'une relation

  • La relation possède un nom distinct de celui des autres relations
  • Chaque case de la relation contient exactement 1 valeur
  • Chaque attribut possède un nom distinct
  • Les valeurs d'un attribut sont toutes du même domaine
  • Chaque occurence est distincte
  • L'ordre des attributs et des tuples n'est pas important

Une clé ?

Les bases de données relationnelles apportent le principe de clé, il en existe plusieurs types :

Les superclés :Attribut ou ensemble d'attributs qui identifient uniquement un tuple dans une relation.

Les clés candidates : Superclé "minimale": aucun sous-ensemble d'une clé candidate n'est une superclé

Une clé ?

Les clés primaires : La clé candidate choisie pour identifier les tuples dans une relation

Les clés étrangères : Attribut ou ensemble d'attributs d'une relation correspondant à la clé primaire d'une autre relation

Convention d'écriture

On représente le schéma d'une relation comme suit :

Nom (attribut1, attribut2, attribut3, ...)

On souligne toujours les attributs de la clé primaire.

Un exemple

produit(NumProduit,nom, prix...)

magasin(NumMagasin,nom, adresse...)

vente(numProduit,numMagasin, Date)

Contraintes d'intégrité

Pour que le contenu d'une BD ait un sens, les attributs ne peuvent pas prendre des valeurs n'importe comment. En général, des conditions (ou contraintes) s'appliquent.

On a déjà vu que chaque attribut est associé à un domaine. Les valeurs possibles sont donc limitées à celles-là: ce sont les contraintes de domaine.

Par exemple on ne peut pas écrire de date dans un attribut de type nombre

Contraintes d'intégrité

Contrainte d'intégrité d'entité Dans une relation, aucun attribut de la clé primaire ne peut être nul.

Contrainte d'intégrité référentielle Si une relation contient une clé étrangère, sa valeur doit correspondre à celle d'un tuple de la relation qui définit cette clé; sinon, elle doit être nulle.

Contraintes d'intégrité

Contraintes de multiplicité Détermine combien de tuples peuvent être mis en relation (on les étudiera plus tard).

Contraintes générales N'importe quelle autre contrainte appropriée pour la situation. Ex.:

  • Les appartements de plus de 600$ doivent être affectés à un employé sénior

Le cas spécial de la valeur NULL

La valeur null est utilisée pour définir un attribut qui ne s'applique pas ou qui est inconnu pour une occurence.

Attention !!! null != 0 != ""

Les vues

Une vue est une relation qui a été crée en utilisant plusieurs valeurs provenant de relations de bases.

Les vue n'existent pas forcément dans la base de données, et elles peuvent être créées sur demande.

Ce que vous devez retenir cette semaine :

  • Relation
  • Table
  • occurence
  • Superclé
  • Clé candidate
  • Clé primaire
  • Clé étrangère
  • Null
  • Intégrité d'entité
  • Intégrité référentielle
  • Contrainte
  • Relation de base
  • Vue