Table des matières
Ceci est une ancienne révision du document !
Modèle ensembliste et algèbre relationnelle
1. Modèle ensembliste
Une base de donnée est constituée de plusieurs ensembles d'objets et d'opérateurs participant au bon fonctionnement d'un système:
Exemple 1 :
- Ensembles d'employés
- Ensembles de commandes
- Ensembles d'articles
- Ensembles de clients
Exemple 2 :
- Ensembles d'étudiants
- Ensembles de séances
- Ensembles de cours
- Ensembles de copies
On parle plus généralement d'ensembles d'entités.
Le modèle entité/associations est une méthode de description des relations entre ensembles d’entités. Il s’appuie sur le prédicat selon lequel tous les éléments des ensembles d’entités sont discernables.
Le modèle entités/associations repose sur un langage graphique de description des données, indépendant du support et de la mise en œuvre informatique.
Généralités
Une entité $x$
- est une représentation d'un objet du monde réel,
- appartenant au système/à l'organisation modélisée.
- Une entité est décrite par une ou plusieurs valeurs caractéristiques, appelées attributs.
Les informations conservées au sujet des entités d'un ensemble sont les attributs.
- Chaque attribut :
- a un nom unique dans le contexte de cet ensemble d'entités : $A$, $B$, $C$, $A_1$, $A_2$, …, $A_m$, …
- Exemples de noms concrets : couleur, nom, horaire, salaire.
- prend ses valeurs dans un domaine bien spécifié,
- également appelé le type de l'attribut.
- Le domaine d'un attribut est noté $\text{dom}(Aj)= Dj$.
- Exemples :
- $\text{dom}(couleur)={rouge, vert, bleu, jaune}$,
- $\text{dom}(nom) = $ensemble des chaînes de caractères,
- $\text{dom}(salaire) =$ entiers naturels
- etc…
- Un attribut $A_j$ est une fonction à valeur sur $D_j$ :
$$A_j : E \rightarrow D_j$$ $$x \mapsto A_j(x)$$
- Un attribut peut être :
- simple ou composé.
- Exemple : une adresse peut être décrite par une simple chaîne de caractères, ou peut être décomposée en rue , no, boîte, ville, code postal, pays.
- obligatoire ou facultatif ($D_j$ peut ou non contenir la valeur ø ).
- atomique ou non (Un attribut peut posséder 0, 1 voire plusieurs valeurs…)
Un ensemble d'entités est un ensemble fini d'éléments : $$E = \{x_1,…,x_n\}$$ Il regroupe (ou associe) plusieurs entités ayant des caractéristiques communes (descriptibles à l'aide du même ensemble d'attributs).
- les employés d'une firme,
- les cours de Centrale Méditerranée,
- une collection de disques,
- etc…
- Les éléments d’un ensemble d’entités sont partiellement discernables à travers les valeurs de leurs attributs :
- les attributs $(A_1,...,A_m)$ servent à décrire les éléments de l’ensemble.
- Le schéma $R$ de l’ensemble $E$ est une application de l'ensemble d'entités vers l'ensemble des tuples de schéma $R$
- Soit :
$$ R : \mathcal{X} \rightarrow D_1 \times ... \times D_m$$ $$ x_i \mapsto (A_1(x_i),…, A_m(x_i))$$
Définitions
Modéliser une base de données, c'est :
- Identifier les différents ensembles en interaction
- Identifier les liens de dépendance entre les différents ensembles
Association
Définition : Une association entre les ensembles $E_1$, …, $E_k$ est un sous-ensemble du produit $E_1 \times ... \times E_k$.
Il s'agit donc d'un ensemble de k-uplets $\{..., (x_1,…,x_k), …\}$ t.q. $x_1 \in E_1,…, x_k \in E_k$.
où $k$ est le degré de l'association :
- k=2 : association binaire
- k=3 : association ternaire
- etc…
Rôles des associations
- Attribution : propriété, réservation, participation, supervision, auteur, rôle, pilote, …
- Événements : achat, vente, séance, épreuve, appel, consultation, réunion, transaction, transport …
- Aggrégation/Composition : tout/parties, contenant/contenu, supérieur/subordonné, pays/région, …
- Relations entre membres : parenté, collaboration, cercle d'amis, …
- …
Contraintes de cardinalité
On donne en général un intervalle $[b_\text{inf},b_\text{sup}]$ qui définit le nombre d'apparitions autorisées pour chaque rôle de l'association
Représentation graphique
Types d'associations
Associations de 1 à plusieurs (fonctionnelle)
Relation non symétrique entre les deux ensembles : […,1] d'un côté, […,N] de l'autre. Relation de type contenant/contenu, propriétaire/objet possédé, occupant/occupé, actif/passif etc… Il s'agit du type d'association le plus "courant".
“à gauche” → “à droite”
Associations de plusieurs à plusieurs (croisée)
Dans une association “croisée”, les tous les lien de l’association sont de cardinalité multiple […,N]
Modèles Entité Associations valués
- les attributs des ensembles d'entités sont des mesures:
- Soit $A$ un attribut de l'ensemble d'entités $\mathcal{E}$
$$ A : \mathcal{E} \rightarrow \text{dom}(A) $$
- les attributs des associations sont des opérateurs :
- Soit $B$ un attribut de l'association sur $\mathcal{E} \times \mathcal{F}$
$$ B : \mathcal{E}\times \mathcal{F}\rightarrow \text{dom}(B) $$
Mesures
- Les mesures sont les données saisies sur les éléments d'un ensemble. Chaque mesure est associée à un attribut.
- Le schéma de l'ensemble est l'ensemble des attributs servant à caractériser ses éléments
- Les éléments de l'ensemble sont discernables ssi il existe un jeu de mesures différent pour chaque élément de l'ensemble
- Une clé est un ensemble d'attributs minimal (permettant de distinguer les objets) appartenant au schéma
Ensembles discernables / non discernables
Opérateurs
- On s’intéresse ici aux associations qui représentent une “opération” (inscription, achat, embauche, affectation…).
- Lors d’une mise à jour de la base, certains événements tels que l’emprunt ou le retour d’un ouvrage, l’affectation d’un employé à un poste, ou la liste des anciens clients disparaissent.
- Il est possible de garder une trace des événements passés en mettant un (ou plusieurs) attributs sur une association.
- Ainsi, certaines associations peuvent être "datées", c'est à dire
- avoir lieu à une date
- ou prendre place sur une durée précise (prêt,accès temporaire, statut temporaire…)
- On peut ainsi mémoriser :
- "Monsieur Dupont a été employé au département logistique de tant à tant."…
- "L'étudiant X a été élève Centrale Méditerranée de telle année à telle année"…
- Chaque coureur est décrit par ses nom, prénom, nationalité et numéro de maillot.
- Chaque coureur appartient à une équipe qui possède un numéro, un sponsor associé.
- Chaque coureur participe à une ou plusieurs étapes. Une étape se caractérise par son numéro, son type (contre la montre/étape simple), ses points de départ et d'arrivée, sa date.
- A chaque étape est associée un classement d'arrivée pour chaque coureur, avec la durée totale de course.
7. Traduction vers le modèle relationnel
Il est possible de traduire un modèle entité/association vers un modèle relationnel (en perdant quelques propriétés).
- Conception de la base sous forme d'un modèle entité/association.
- Traduction sous la forme d'un modèle relationnel.
- Normalisation (voir Normalisation d'un schéma)
- Mise en œuvre informatique.
Un petit nombre de règles permettent de traduire un modèle entité/association vers un modèle relationnel.
- Selon ces règles, à la fois les ensembles d'entités et les associations sont transformés en schémas relationnels.
- Les liaisons et dépendances entre schémas de relation sont assurés par la définition des clés étrangères (attributs communs à plusieurs tables).
Schéma de base et clé étrangère
- Un schéma (ou modèle) de bases de données est un ensemble fini de schémas de relation.
- Une base de données est un ensemble fini de relations.
- Les liens et associations entre relations entre s’expriment sous la forme de clés étrangères
- Au sein d'un schéma relationnel $R$, Une clé étrangère est un attribut (ou un groupe d'attributs) qui constitue la clé primaire d'un schéma $S$ distinct de $R$.
- La présence d'une clé étrangère au sein d'une relation $r$ de schéma $R$ introduit une contrainte d'intégrité sur les données :
- la valeur des attributs de la clé étrangère d'un tuple de $r$ doit être trouvée dans la table s correspondante.
- On indique la présence d'une clé étrangère à l'aide de pointillés : {…, Clé étrangère, …}
Exemple
- Clients ( nom_client, adresse_client, solde)
- Commandes ( num_Commande, nom client, composant, quantité)
- Fournisseurs ( nom_fournisseur, adresse_fournisseur)
- Catalogue ( nom_fournisseur, composant, prix )
Traduction des associations de plusieurs à plusieurs
Une association croisée ne contient que des contraintes de cardinalité de type [..,N]. Soit $R$ une telle association et $E_1$, …, $E_k$ les ensembles participant à l'association.
- Chaque ensemble $E_i$ est traduit par un schéma relationnel (contenant les mêmes attributs)
- L'association $R$ est traduite sous la forme d'un schéma relationnel contenant:
- les clés primaires des ensembles participant à l’association
- (éventuellement) les attributs propres à l'association,
Traduction des associations de un à plusieurs
Soit une association fonctionnelle $R$. On suppose qu'il existe au moins un ensemble $A$ de cardinalité unique [1,1] participant l’association.
- Chaque ensemble participant est traduit sous forme de schéma relationnel
- L'association $R$ est traduite sous forme de clé étrangère : l'ensemble $A$ reçoit la clé primaire du (ou des) ensemble(s) dont la participation est multiple.
Exemple complet
- Clients ( nom_client, adresse_client, solde)
- Commandes ( num_Commande, nom client, composant, quantité, montant)
- Fournisseurs ( nom_fournisseur, adresse_fournisseur)
- Catalogue ( nom_fournisseur, composant, prix )
Clients :
| nom_client | adresse_client | solde |
|---|---|---|
| Durand | 7, rue des Lilas | 335,00 |
| Dubois | 44, av. du Maréchal Louis | 744,00 |
| Duval | 5, place du marché | 33,00 |
Commandes :
| num_Commande | nom client | composant | quantité |
|---|---|---|---|
| 6674 | Dubois | micro controller | 55 |
| 6637 | Dubois | radio tuner | 2 |
| 6524 | Durand | transistor | 4 |
| 6443 | Duval | micro controller | 7 |
Fournisseurs :
| nom_fournisseur | adresse_fournisseur |
|---|---|
| Sage | 33, College street, London |
| MoxCom | 77 Ashley square,Mumbay |
Catalogue :
| nom_fournisseur | composant | prix |
|---|---|---|
| Sage | transistor | 4,4 |
| MoxCom | micro controller | 3,7 |
| MoxCom | radio tuner | 7,0 |



















