Introduction au modèle relationnel

Contexte

Durée : 3h

Environnement de travail : Aucun

Pré-requis : Aucun

Le niveau logique est le lien entre le niveau conceptuel et l'implémentation effective de l'application. Le modèle logique a pour vocation d'être un modèle formel, spécifiant non plus la réalité existante ou recherchée comme le modèle conceptuel, mais les données telles qu'elles vont exister dans l'application informatique.

Pour assumer cette fonction, le modèle relationnel s'est imposé en réaction aux insuffisances des modèles antérieurs, les modèles hiérarchique et réseau, et de part la puissance de ses fondements mathématiques.

Encore aujourd'hui dominant le modèle relationnel est un fondement indispensable à la conception de bases de données.

Processus de conception d'une base de données

Le modèle relationnel est aux fondements des SGBDR. Il a été, et continue d'être, le modèle théorique dominant pour la représentation logique des base de données. Le modèle relationnel permet de reformuler le modèle conceptuel dans un formalisme - le tableau - beaucoup plus proche de l'implémentation informatique, bien qu'encore indépendant d'une solution technologique particulière.

Définition du modèle relationnel

Objectif

  • Comprendre les objectifs et la logique du modèle relationnel.

Mise en situation

Comment décrire aux systèmes de gestion de base de données la structure des données ?

Si la réponse immédiate est « grâce au langage SQL », il ne faut pas oublier que SQL doit bien se baser sur une certaine logique.

Et en effet, cela fait des dizaines d'années que les SGBD relationnels utilisent une structure de tableau pour stocker les données. Ce n'est pas un hasard, car ils se basent tous sur le modèle relationnel, qui indique comment formaliser des données et leurs interactions sous forme de tableau.

Dans ce module, vous découvrirez la philosophie du modèle relationnel. Le modèle relationnel est indépendant de tout SGBD. Il est fondamental car, bien utilisé, il permet d'assurer la cohérence des données.

Introduction

Le modèle relationnel a été introduit par Codd, en 1970 au laboratoire de recherche d'IBM de San José. Il s'agit d'un modèle simple et puissant à la base de la majorité des bases de données, encore aujourd'hui.

DéfinitionModèle relationnel

On appelle modèle relationnel un ensemble de concepts permettant de formaliser logiquement la description d'articles de fichiers plats, indépendamment de la façon dont ils sont physiquement stockés dans une mémoire numérique.

Le modèle relationnel inclut des concepts pour la description de données, ainsi que des concepts pour la manipulation de données.

FondamentalReprésenter le monde en tables

Le modèle relationnel permet de représenter les données que l'on va gérer à l'aide d'un très petit nombre de concepts très simples :

  • Les relations ou tables : des lignes et des colonnes.

  • Les domaines de valeurs : chaque case d'une table prend une unique valeur dans un domaine pré-défini.

  • Les clés : il existe des cases dont les valeurs doivent être uniques et non nulles.

  • Les clés étrangères : il existe des cases qui doivent prendre une valeur existante dans les cases d'une autre table.

Enquête Wikipédia : pour réaliser cet exercice, on consultera l'article Wikipédia sur des bases de données.

Après avoir parcouru la partie Terminologie, parmi les propositions ci-dessous, quels sont les différents types de modèle de données présentés ?

modèle de données relationnel

Modèle de données entité-association

Modèle de données hiérarchique

Modèle de données réseau

Dans la section « Histoire », on en apprend plus sur les travaux de Edgar F. Codd.

Quels sont les principaux concepts abordés dans sa thèse ?

Algèbre relationnelle

Système d'exploitation

SQL

Produit cartésien

Programmation orientée objet

Relation

À quel modèle de données se rattache les travaux de E. F. Codd ?

Modèle de données entité-association

Modèle de données hiérarchique

Modèle de données relationnel

Modèle de données réseau

Après avoir parcouru la partie Terminologie, parmi les propositions ci-dessous, quels sont les différents types de modèle de données présentés ?

modèle de données relationnel

Modèle de données entité-association

Modèle de données hiérarchique

Modèle de données réseau

Dans la section « Histoire », on en apprend plus sur les travaux de Edgar F. Codd.

Quels sont les principaux concepts abordés dans sa thèse ?

Algèbre relationnelle

Système d'exploitation

SQL

Produit cartésien

Programmation orientée objet

Relation

À quel modèle de données se rattache les travaux de E. F. Codd ?

Modèle de données entité-association

Modèle de données hiérarchique

Modèle de données relationnel

Modèle de données réseau

Domaine

Objectif

  • Savoir décrire un ensemble de valeurs possibles grâce aux domaines.

Mise en situation

Imaginez que vous souhaitiez modéliser une gamme d'ordinateurs portables, qui ont chacun une couleur, une masse, une marque, etc.

Les valeurs que peuvent prendre ces différents éléments ne sont pas libres : par exemple, les ordinateurs de notre gamme ne peuvent être que gris anthracite, noirs, ou blancs. Aussi, la masse ne peut pas être négative, et la marque ne peut pas dépasser trente caractères.

Comment formaliser ces contraintes sur les valeurs possibles de ces caractéristiques ? C'est justement l'objectif des domaines, que vous découvrirez dans ce module.

DéfinitionDomaine

Ensemble, caractérisé par un nom, dans lequel des données peuvent prendre leurs valeurs.

Remarque

Un domaine peut-être défini en intension (c'est à dire en définissant les propriétés caractéristiques des valeurs du domaine, on parle aussi de compréhension) ou en extension (c'est à dire en énumérant toutes les valeurs du domaine)

ExempleDomaines définis en intension

  • Tous les entiers.

  • Les réels inférieurs à 5.

  • Toutes les chaînes de 1 à 255 caractères.

  • Les valeurs monétaires, définies comme des décimaux avec deux chiffres après la virgule.

  • Les dates, définies comme des chaînes de 10 caractères comprenant des chiffres et des tirets selon le patron : « 00-00-0000 ».

  • Les salaires, définis comme des valeurs monétaires compris entre 15.000 et 100.000.

ExempleDomaines définis en extension

  • Couleur : {Bleu, Vert, Rouge, Jaune, Blanc, Noir}

  • SGBD : {Hiérarchique, Réseau, Relationnel, Objet, Relationnel-Objet}

Indiquer quelle définition et quel exemple correspondent respectivement aux mots intension et extension.

Le domaine des couleurs Énonciation exhaustive de l'ensemble des objets du domaine Explicitation d'un domaine par la description de ses caractéristiques (en vue de sa compréhension abstraite, générale) {bleu, rouge, vert}
Intension
Extension

Indiquer quelle définition et quel exemple correspondent respectivement aux mots intension et extension.

Intension
Explicitation d'un domaine par la description de ses caractéristiques (en vue de sa compréhension abstraite, générale) Le domaine des couleurs
Extension
Énonciation exhaustive de l'ensemble des objets du domaine {bleu, rouge, vert}

Relation

Objectif

  • Savoir regrouper des attributs au sein d'une relation.

Mise en situation

Imaginez que vous souhaitiez modéliser des livres. Chaque livre a un nom, un auteur, un nombre de pages, etc. Et chacune de ses caractéristiques prend ses valeurs dans un domaine, comme le domaine des nombres entiers positifs ou le domaine des prénoms.

Mais individuellement, chaque caractéristique ne décrit qu'une petite partie du livre. Comment regrouper ces caractéristiques dans une seule structure, pour former un tout ?

C'est tout l'objet des relations, que vous allez apprendre à construire dans ce module.

DéfinitionRelation

Une relation R sur les domaines D1, ... , Dn est une table comportant une colonne pour chaque domaine et une ligne pour chaque tuple de la relation.

Relation R

Synonymes : Table, tableau

DéfinitionAttribut

On appelle attribut d'une relation, une colonne de cette relation. Un attribut est caractérisé par un nom et un domaine dans lequel il prend ses valeurs.

Synonymes : Champs, Propriété, Colonne

DéfinitionEnregistrement

On appelle enregistrement d'une relation, une ligne de cette relation. Un enregistrement prend une valeur pour chaque attribut de la relation.

Synonymes : Tuple, N-uplet, Vecteur, Ligne

Exemple

Relation R

RemarqueAttribut, domaine, ordre

RemarqueValeur nulle

Exercice

On se donne un extrait d'une relation d'une base de données de vols :

Relation Vol

On a de plus des informations supplémentaires sur les vols :

  • le vol de Air France du 01-08-2002 en provenance de Paris est annoncé à 12:03 ;

  • le vol KLM234 est annoncée à 06:32 ;

  • le vol en direction de Toulouse le 30 juillet 2002 est annoncé à 16:04.

Complétez la relation et indiquez les attributs associés à celle-ci.

On complète le tableau comme suit :

Relation Vol

Les domaines des attributs sont les suivants :

  • numéro, compagnie, avion, départ, arrivée sont des chaînes de caractères ;

  • date est une date ;

  • heure est une heure.

Clé

Objectif

  • Savoir identifier les enregistrements d'une relation de manière unique.

Mise en situation

Tous les enregistrements d'une relation ne sont identifiés que par leur contenu : en d'autres termes, il n'y a pas de notion de numéro d'enregistrement ou d'ordre.

Supposez maintenant que vous deviez gérer une relation avec des personnes : nom, prénom, date de naissance, etc. Si on vous demande de pointer du doigt, dans cette relation, la personne du nom de Saskia Larsen, comment feriez-vous ?

Vous ne pouvez pas répondre « à la ligne 12 », puisque la notion de numéro de ligne n'existe pas. Et si jamais il y a deux Saskia Larsen, le nom et le prénom ne suffisent pas non plus : il y a ambiguïté. Et si jamais elles sont nées le même jour..., etc.

Pour résoudre ce genre de situations, on utilise des clés, et vous allez apprendre comment faire dans ce module.

DéfinitionClé

Une clé est un groupe d'attributs minimum qui permet d'identifier de façon univoque un tuple dans une relation.

Fondamental

Toute relation doit comporter au moins une clé, ce qui implique qu'une relation ne peut pas contenir deux tuples identiques.

AttentionAttributs de clés unique et non null

Afin d'être déterminants pour l'identification d'un enregistrement, tous les attributs d'une clé doivent être « valués », c'est-à-dire qu'aucun ne peut avoir de valeur null.

Dire qu'un groupe d'attributs est une clé implique qu'il est unique et non null.

ExempleNuméro d'étudiant

  • Le numéro d'étudiant d'une relation Etudiant est une bonne clé car il y aura systématiquement une valeur non nulle.

  • Le groupe d'attributs (nom, prénom) d'une relation Etudiant est en général une mauvaise clé, car les homonymes existent.

Détermination d'une clé

Définir un groupe d'attributs comme étant une clé nécessite une réflexion sémantique sur les données composant ces attributs, afin de s'assurer de leur unicité.

Fondamental

La définition des clés est un acte de modélisation, elle ne renvoie pas donc pas à une vérité intangible, mais à la réalité telle qu'elle est représentée dans le modèle que l'on élabore.

Exemple

L'attribut numéro de sécurité sociale d'une relation personne peut paraître une bonne clé a priori car son unicité est assurée. Mais tout le monde n'en dispose pas forcément (les enfants, des étrangers), donc ce n'est une clé que si l'on considère des personnes affiliées à la sécurité sociale.

Soit les données d'un aéroport. On sait que le numéro de vol identifie de manière unique un vol dans le monde.

De même, on sait qu'il n'y a qu'un seul avion d'une compagnie qui part dans un créneau horaire d'une heure chaque jour.

Une compagnie de vol dispose potentiellement de plusieurs avions du même modèle.

Relation Vol

Parmi les propositions suivantes, lesquelles sont des clés pour cette relation.

numéro

(compagnie,avion)

(compagnie,date,heure)

(compagnie,départ,arrivée,date)

(numéro,compagnie,avion,départ,arrivée,date,heure)

numéro

(compagnie,avion)

(compagnie,date,heure)

(compagnie,départ,arrivée,date)

(numéro,compagnie,avion,départ,arrivée,date,heure)

numéro

(compagnie,avion)

Il est possible qu'une compagnie dispose de plusieurs avions du même modèle.

(compagnie,date,heure)

(compagnie,départ,arrivée,date)

Il peut y avoir plusieurs vols d'une même compagnie ayant la même provenance, la même destination pour un jour donné.

(numéro,compagnie,avion,départ,arrivée,date,heure)

Puisqu'il existe au moins une clé dans cet ensemble d'attributs, ce n'est pas ensemble minimal, donc ce n'est pas une clé. On définit un ensemble de ce type qui n'est pas minimal comme une super-clé.

Clé primaire, clés candidates, clé artificielle

Objectifs

  • Connaître les différents types de clé ;

  • Savoir choisir la clé à utiliser dans une relation.

Mise en situation

Chaque enregistrement d'une relation doit être identifié de manière unique par une clé.

Supposez que vous gériez des citoyens qui possèdent tous un numéro de sécurité sociale unique, ainsi qu'un numéro de passeport unique. Comment choisir la clé à utiliser ?

Autre situation : supposez que vous gériez des morceaux de musique. Des artistes peuvent avoir le même nom, les albums aussi, les morceaux aussi, avec pourquoi pas la même durée... Quelle stratégie adopter pour identifier chaque morceau de manière unique ?

Dans ce module, vous allez découvrir les notions de clés primaire, candidate et artificielle pour répondre à ces questions.

DéfinitionClé primaire

Si plusieurs clés existent dans une relation, on en choisit une parmi celles-ci. Cette clé est appelée clé primaire.

On choisit de préférence une clé :

DéfinitionClés candidates

On appelle clés candidates l'ensemble des clés d'une relation qui n'ont pas été choisies comme clé primaire (elles étaient candidates à cette fonction).

Fondamental

S'il est impossible de trouver une clé primaire, ou que les clés candidates ne conviennent pas (non immuables, trop complexes...), il est possible de faire appel à une clé artificielle.

DéfinitionClé artificielle

Une clé artificielle est un attribut supplémentaire ajouté au schéma de la relation, qui n'est lié à aucune signification, et qui sert uniquement à identifier de façon unique les enregistrements et/ou à simplifier les références de clés étrangères à l'intérieur de la base de données.

DéfinitionClé signifiante

Une clé est signifiante si elle n'est pas artificielle.

Synonyme : Clé naturelle

Exercice

On se donne un extrait d'une relation d'une base de données d'une université reprenant les informations sur les étudiants.

Chaque étudiant est identifié de manière identique par un prénom, un nom et sa date de naissance. De même, chaque étudiant a une adresse mail qui lui est propre.

Quelles sont les différentes clés de cette table ?

Il y a deux clés dans cette table :

  • (prénom, nom, date_de_naissance)

  • adresse_email

Cette université organise maintenant un autre événement où sont conviés tous les étudiants. Elle produit la liste relativement simple suivante pour attester de la présence de tous les étudiants.

Peut-on être sûr d'identifier tous les étudiants ?

Non, puisqu’il n'existe pas de clef dans cette nouvelle table : il est possible qu'il existe des homonymes pour les étudiants. Il faudrait ajouter la date de naissance, ou remplacer ces informations par le mail.

Clés étrangères

Objectifs

  • Savoir représenter des liens entre des relations ;

  • Comprendre le lien entre clé primaire et clé étrangère.

Mise en situation

En relationnel, les seuls éléments que vous avez à votre disposition pour décrire vos données sont les relations.

Or, si vous modélisez des réserves naturelles, vous aurez probablement une relation décrivant les lieux de ces réserves, et une relation décrivant les animaux qui s'y trouvent.

On peut se représenter ces deux relations comme deux tableaux : mais comment faire le lien entre ces tableaux, par exemple pour indiquer qu'un animal est présent dans une réserve particulière ?

Comme il n'est pas possible de « tracer de trait » entre les deux tableaux, il faut trouver une autre solution, et c'est tout l'objet des clés étrangères, que vous allez découvrir dans ce module.

Exemple

DéfinitionClé étrangère

Une clé étrangère est un attribut ou un groupe d'attributs d'une relation R1, devant apparaître comme clé primaire dans une relation R2, afin de matérialiser une référence entre les tuples de R1 et les tuples de R2.

Une clé étrangère d'un tuple référence une clé primaire d'un autre tuple.

DéfinitionContrainte d'intégrité référentielle

Une clé étrangère respecte la contrainte d'intégrité référentielle si sa valeur est effectivement existante dans la clé primaire d'un tuple de la relation référencée, ou si sa valeur est null.

Une clé étrangère qui ne respecte pas la contrainte d'intégrité référentielle exprime un lien vers un tuple qui n'existe pas et donc n'est pas cohérente.

Exercice

On dispose des deux relations suivantes concernant des avions et des compagnies aériennes.

De plus on sait que :

  • l'avion immatriculé FR-1831 appartient à la compagnie AIR France KLM ;

  • l'avion immatriculé N361AA appartient à la compagnie Fiji Airways ;

  • l'avion immatriculé DQ-424 appartient à la compagnie American Airlines.

L'immatriculation des avions est unique.

Énoncer les clés de la relation Avion. Choisisir une clé primaire.

La seule clé possible est immatriculation.

Deux avions peuvent être du même modèle et avoir des heures de vol nulles (et même potentiellement le même nombre d'heures de vol).

Énoncer les clés de la relation Compagnie Aérienne. Choisir une clé primaire.

Les clés de la relation Compagnie Aérienne sont : OACI et designation. Deux compagnies peuvent avoir le même siège social.

On choisit de préférence OACI qui est de domaine plus simple.

Ajouter la clé étrangère manquante dans la relation Avion et les valeurs associées.

Schéma relationnel

Objectifs

  • Savoir décrire une relation grâce à un schéma relationnel ;

  • Savoir représenter les différents types de clé.

Mise en situation

Le modèle relationnel décrit, comme son nom l'indique, des relations : elles font intervenir plusieurs concepts, comme les attributs, les domaines, les clés primaires, les clés étrangères...

Afin de formaliser les relations, il faut bien écrire quelque part leur “fiche”, qui décrit les différents attributs ainsi que leur nature.

On pourrait décrire les relations en langage naturel, mais il y aurait alors des risques d’ambiguïté.

Une solution, c'est d'utiliser un schéma relationnel, qui permette de décrire une relation sans ambiguïté et dans son intégralité : vous allez voir comment dans ce module.

DéfinitionSchéma d'une relation

Le schéma d'une relation définit cette relation en intension. Il est composé :

  • du nom de la relation,

  • de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs,

  • de la clé primaire,

  • des clés étrangères,

  • des clés candidates.

DéfinitionSchéma relationnel d'une base de donnée

Le schéma relationnel d'une BD est la définition en intension de cette BD (par opposition à l'instance de la BD qui est une extension de la BD). Il est composé de l'ensemble des schémas de chaque relation de la BD.

SyntaxeRelation

Relation (attribut1:domaine1, attribut2:domaine2, ... , attributN:domaineN)

SyntaxeClé primaire

Relation (#attribut1:domaine1, ... , #attributM:domaineM, ... , attributN:domaineN)

SyntaxeClé étrangère

Relation1 (..., attributM=>Relation2, ... , attributN=>Relation2)

Complément

  • Bien sûr il peut exister plusieurs clés étrangères vers plusieurs relations distinctes.

  • Une clé étrangère et sa clé primaire référencée sont toujours composées du même nombre d'attributs.

  • Il n'est pas nécessaire de préciser les domaines des attributs appartenant à la clé étrangère car ce sont forcément les mêmes que ceux de la clé primaire référencée.

  • Il n'est pas non plus en général nécessaire de préciser dans le schéma relationnel quels attributs de la clé étrangère référencent quels attributs de la clé primaire (cela est généralement évident) mais il est possible de la faire en notant « Attribut=>Relation.Attribut ».

SyntaxeClé candidates

Relation1 (..., attributM:DomaineM, ...) avec attributM clé

ExempleAvion et Compagnie Aérienne

On peut exprimer en relationnel ces tables de cette façon :

Avion(#immatriculation:chaîne, modele:chaîne, heures_de_vol:entier, oaci=>CompagnieAerienne)
CompagnieAerienne(#oaci:chaîne, denomination:chaîne, siege_social:chaîne) avec denomination clé

AttentionClés candidates et clé primaire

La notation R(#a,#b) signifie toujours que R a comme clé primaire (a,b), et non que R aurait deux clés a et b (dont on ne saurait pas laquelle est primaire).

La notation R(#a,b) avec b clé signifie bien que a et b sont deux clés de R, et que a est primaire.

Il ne faut pas confondre une clé composée de deux attributs avec deux clés.

ComplémentTraduction des contraintes

Si le modèle conceptuel contient des contraintes spécifiques aux classes, alors on les liste après la relation associée.

Par exemple, le modèle conceptuel suivant :

Se traduit comme :

Inscription(#annee:entier, note:réel, ects:entier) avec note dans [0, 20]

Cela vaut aussi pour certaines contraintes dues aux cardinalités des associations. Par exemple, le modèle conceptuel suivant :

Se traduit comme :

Medicament(#nom:varchar, description:varchar, description_longue:varchar, conditionnement:entier) avec au moins un Composant référant
Composant(#code:varchar, intitule:varchar, medicament=>Medicament) avec medicament non null

Exercice

Un laboratoire souhaite gérer les médicaments qu'il conçoit.

  • Un médicament est décrit par un nom, qui permet de l'identifier. En effet il n'existe pas deux médicaments avec le même nom. Un médicament comporte une description courte en français, ainsi qu'une description longue en latin. On gère aussi le conditionnement du médicament, c'est à dire le nombre de pilules par boîte (qui est un nombre entier).

  • À chaque médicament on associe une liste de contre-indications, généralement plusieurs, parfois aucune. Une contre-indication comporte un code unique qui l’identifie, ainsi qu'une description. Une contre-indication est toujours associée à un et un seul médicament.

Exemple de données

Afin de matérialiser notre base de données, nous obtenons les descriptions suivantes :

  • Le Chourix a pour description courte « Médicament contre la chute des choux » et pour description longue « Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. Curabitur ornare. ». Il est conditionné en boîte de 13.

    Ses contre-indications sont :

    • CI1 : Ne jamais prendre après minuit.

    • CI2 : Ne jamais mettre en contact avec de l'eau.

  • Le Tropas a pour description courte « Médicament contre les dysfonctionnements intellectuels » et pour description longue « Suspendisse lectus leo, consectetur in tempor sit amet, placerat quis neque. Etiam luctus porttitor lorem, sed suscipit est rutrum non. ». Il est conditionné en boîte de 42.

    Ses contre-indications sont :

    • CI3 : Garder à l'abri de la lumière du soleil.

Dessiner des relations instanciées (en extension donc) remplies avec les données fournies en exemple.

Écrire le schéma relationnel (définition en intension donc) permettant de représenter une base de données relationnelle pour le laboratoire.

Medicament(#nom:varchar,description:varchar,description_longue:varchar,conditionnement:number)
Contre_indication(#code:varchar,description:varchar,medicament=>Medicament)

Essentiel

Les bases de données relationnelles ne savent gérer qu'une seule chose : des tableaux.

Et ça tombe bien, car le modèle relationnel permet de décrire des données et leurs interactions grâce à des relations, assimilables à des tableaux.

Avant de construire une base de données, on construit donc un modèle relationnel.

Chaque relation est constituée de différents attributs, qui puisent leurs valeurs dans un domaine, comme le nom d'une personne ou son âge.

Toutes les lignes d'une relation, ou enregistrements, doivent être identifiables de façon unique : c'est le rôle de la clé primaire, qui permet de lever toutes les ambiguïtés, par exemple entre deux personnes avec le même nom.

Bien entendu, des relations ne seraient rien sans interaction : une personne peut être amie avec une autre personne, ou louer un vélo. Les clés étrangères permettent de faire référence à des enregistrements d'une autre table, tout en conservant la structure de tableau.

Enfin, les schémas relationnels permettent de décrire les relations textuellement, sans ambiguïté et de manière synthétique.

Quiz

Quiz - Culture

Quels sont les concepts propres au relationnel ?

Clé étrangère

Classe

Relation

Association

Clé primaire

Requête

Pourquoi introduit-on le concept de clé primaire en relationnel ?

On l'introduit pour simplifier l'usage des clés étrangères.

On l'introduit pour pouvoir identifier chaque enregistrement de manière unique.

Quiz - Méthode

En relationnel, on peut noter qu'un ensemble d'attributs est une clé en :

Indiquant explicitement cela à côté de sa relation si c'est une clef candidate non primaire.

Indiquant explicitement cela grâce à la clause {unique} pour les attributs concernés.

Indiquant explicitement cela en préfixant les attributs de la clé du caractère # si c'est une clé primaire.

En relationnel, on indique les références :

En ajoutant pour les champs de la clé étrangère ceux de la clé primaire avec le symbole =>.

En écrivant explicitement ces références à côté de chaque relation.

Quiz - Code

Quand et pourquoi introduire des clés artificielles dans les relations ?

On introduit des clés artificielles s'il n'existe pas de clé naturelle.

On introduit des clés artificielles systématiquement : cela est plus simple.

Pourquoi introduit-on le concept de clé étrangère ?

Pour gérer le fait qu'une table a en général plusieurs clé candidates.

Pour garantir la validité des références entre tables.

Quiz - Culture

Quels sont les concepts propres au relationnel ?

Clé étrangère

Classe

Relation

Association

Clé primaire

Requête

Clé étrangère

Classe

La notion de classe appartient au modèle conceptuel.

Relation

Association

La notion d'association appartient au modèle conceptuel.

Clé primaire

Requête

La notion de requête n'intervient pas à ce stade.

Pourquoi introduit-on le concept de clé primaire en relationnel ?

On l'introduit pour simplifier l'usage des clés étrangères.

On l'introduit pour pouvoir identifier chaque enregistrement de manière unique.

On l'introduit pour simplifier l'usage des clés étrangères.

Cela évite que chaque clé étrangère ne référence une clé candidate différente ; la clé primaire uniformise le système de référencement.

On l'introduit pour pouvoir identifier chaque enregistrement de manière unique.

Un enregistrement est identifiable par n'importe quelle clé candidate, pas seulement la clé primaire.

Quiz - Méthode

En relationnel, on peut noter qu'un ensemble d'attributs est une clé en :

Indiquant explicitement cela à côté de sa relation si c'est une clef candidate non primaire.

Indiquant explicitement cela grâce à la clause {unique} pour les attributs concernés.

Indiquant explicitement cela en préfixant les attributs de la clé du caractère # si c'est une clé primaire.

En relationnel, on indique les références :

En ajoutant pour les champs de la clé étrangère ceux de la clé primaire avec le symbole =>.

En écrivant explicitement ces références à côté de chaque relation.

Quiz - Code

Quand et pourquoi introduire des clés artificielles dans les relations ?

On introduit des clés artificielles s'il n'existe pas de clé naturelle.

On introduit des clés artificielles systématiquement : cela est plus simple.

L'usage des clés artificielles n'est pas systématique, il dépend du contexte de développement et des données.

Si on décide de systématiser leur usage, on le fera plutôt en SQL, au niveau de l'implémentation ; cela permet de rester concentré sur la recherche des clés naturelles au niveau logique.

Pourquoi introduit-on le concept de clé étrangère ?

Pour gérer le fait qu'une table a en général plusieurs clé candidates.

Pour garantir la validité des références entre tables.

  • La clé primaire est un concept qui permet de choisir une clé parmi celles qui existent, afin de systématiser le référencement.

  • La clé étrangère existe pour garantir le référencement : les données d'une clé étrangère doivent correspondre à des données existantes de la clé primaire de la table référencée.

SGBDR
Système de Gestion de Bases de Données Relationnelles
Codd70

Codd EF, A relational model for large shared data banks, Communications de l'ACM, juin 1970.

Intension

L'intension est l'explicitation d'un domaine par la description de ses caractéristiques (en vue de sa compréhension abstraite, générale).

Elle s'oppose à l'extension qui est l'énonciation exhaustive de l'ensemble des objets du domaine.

  • Exemple : Le domaine des couleurs

  • Contre-exemple : {bleu, rouge, vert}

Extension

L'extension est l'explicitation d'un domaine par l'énonciation exhaustive de l'ensemble des objets du domaine.

Elle s'oppose à l'instension qui est une description abstraite des caractéristiques du domaine.

  • Exemple : {bleu, rouge, vert}

  • Contre-exemple : Le domaine des couleurs

Immuable

Un attribut immuable est un attribut dont la valeur ne change plus jamais une fois fixée.

Synonymes : frozen, immutable en anglais (ou parfois en français comme anglicisme)

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.