Modèle logique
Mr. Mamadou DIAHAME(1)
(1)ESP, Cheikh Anta Diop University, Dakar, Senegal
[email protected] Module Base de Données
1 / 58
Les différents modèles au niveau logique
Le modèle hiérarchique
I Les données sont organisée selon une hiérarchie de propriété.
2 / 58
Les différents modèles au niveau logique
Le modèle hiérarchique : exemple 1
I Inconvénient : favorise la redondance des données.
3 / 58
Les différents modèles au niveau logique
Le modèle hiérarchique : exemple 2
I Inconvénient : impossibilité d’insérer au niveau fils sans une
incorporation préalable au niveau parent.
4 / 58
Les différents modèles au niveau logique
Modèle réseau
I Chaque entité à l’intérieur de la base de données est associée
par un système de pointeurs à d’autres entités
correspondantes.
I Inconvénient : l’utilisateur doit savoir bien naviguer dans la
base pour extraire les données.
5 / 58
Les différents modèles au niveau logique
Modèle réseau : exemple
6 / 58
Les différents modèles au niveau logique
Modèle relationnel
I Les éléments de la base sont représentés sous la forme de
tableaux reliés par des attributs communs.
7 / 58
Les différents modèles au niveau logique
Modèle relationnel : exemple
8 / 58
Concepts de base du modèle relationnel
Modèle relationnel : fondement
I Le modèle relationnel propose de percevoir les données sous
une forme simple de tables (relation).
I Il s’inspire directement de la notion mathématique de relation.
I La manipulation des donnés s’effectue à l’aide d’un ensemble
d’opérateurs algébrique (algèbre relationnel).
9 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Relation
I Les données sont représentées sous la forme de collection de
relations (fichiers).
I Chaque relation est présentée par une TABLE de valeurs.
I Toutes les valeurs d’une même colonne sont toujours de même
type (appelé domaine de l’attribut)
I R peut être soit
I une entité (e.g. PERSONNE)
I soit une association (e.g. TRAVAILLER-POUR)
10 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Relation : tuples et colonnes
11 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Domaine
I Ensemble des valeurs atomiques que peut prendre un attribut.
Le domaine de Ai est noté Dom(Ai )
12 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Schéma de relation (structure)
I Noté R(A1 , A2 , · · · , AN ) est un ensemble d’attributs
R = {A1 , A2 , · · · , AN } où N est le degré de la relation.
I Exemple : de schéma de relation Employe pour une relation de
degré 6 :
I Employe (Nom, Nss, Tel-pers, Adresse, Tel-bur, Age)
13 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Instance de relation
I Une instance de relation r de R est un ensemble de n-tuples r
= {t1 , t2 , · · · , tm } qui existent dans la base de données à un
instant donné.
I Chaque n-tuple est constitué par une liste ordonnée de n
valeurs
I t = < v1 , v2 , · · · , vN >
I où ∀i, 1 i n, vi ∈ dom(Ai ) ou vi = NULL
14 / 58
Concepts de base du modèle relationnel
Domaine, Tuples, Attributs et Relations
Exemples d’instance et de n-tuples correctes et non
correctes
15 / 58
Concepts de base du modèle relationnel
Notations utilisées
Un schéma de relation
I Un schéma de relation de degré n : R(A1 , A2 , · · · , AN )
I Un n-tuple t dans une relation r(R) : t = < v1 , v2 , · · · , vN >
ou vi est la valeur correspondante à l’attribut Ai .
I T [Ai ] = valeur vi dans le tuple pour l’attribut Ai.
I T [Au , Ay ] = sous ensemble de valeurs < vu , vy > de t
correspondant aux attributs spécifiés.
16 / 58
Concepts de base du modèle relationnel
Notations utilisées
Le nom d’une relation
I Le nom d’une relation peut désigner le schéma de la relation
ou l’instance courante de la relation.
I Les lettres Q, R, S désignent des noms de relations, les lettres
q, r, s désignent des instances de relations.
I Pour désigner l’attribut d’une relation on peut avoir recours à
la notation R.Ai (ex : ETUDIANT.Nom)
17 / 58
Concepts de base du modèle relationnel
Attributs clés d’une Relation
Super-clé
I Une relation est un ensemble de tuples et les tuples sont
distincts
I Soit SC un sous ensemble d’attributs d’une relation, Si
∀i, j : ti [SC ] 6= tj [SC ] alors SC est appelé une Super-Clé de R.
I Chaque relation possède au moins une super-clé (ensemble de
tous les attributs de cette relation).
I Exemple : R=ETUDIANT (Nss, Nom, Age, Adresse, Tel),
{Nss, Nom, Age} est une super-clé.
18 / 58
Concepts de base du modèle relationnel
Attributs clés d’une Relation
Clés candidates
I Tout schéma de relation R possède obligatoirement une Clé et
R peut avoir plusieurs clés (Clés candidates).
I Une Clé C d’un schéma de relation R est une
Super-Clé-minimale de R.
I Exemple : R=ETUDIANT (Nss, Nom, Age, Adresse, Tel),
{Nss} est une clé.
19 / 58
Concepts de base du modèle relationnel
Attributs clés d’une Relation
Clé primaire
I L’une des clés candidates sera choisie pour identifier les tuples
(Clé Primaire)
I Exemple : R=Notation (Matricule-Etudiant, Code-Module,
DS, CC)
I Par convention, une clé primaire est soulignée.
20 / 58
Schéma d’une Base de données relationnelle
Schéma et instance d’une BBR
Un schéma de BD relationnelle
I Un schéma de BD relationnelle est
I un ensemble de schémas de relations S= {R1 , R2 , · · · , RM }
I et un ensemble de contraintes d’intégrité CI.
21 / 58
Schéma d’une Base de données relationnelle
Schéma et instance d’une BBR
Une instance de BD relationnelle
I Une instance de BD relationnelle est un ensemble d’instances
de relations {r1 , r2 , · · · , rM }
I tel que chaque ri est une instance de Ri
I et que tous les Ri satisfont les contraintes d’intégrité
spécifiées dans CI.
22 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Contraintes d’intégrité
I les contraintes d’intégrité sont toujours spécifiées sur un
schéma relationnel mais doivent être vérifiées pour toute
instance particulière de ce schéma.
I Il existe 3 types de contraintes d’intégrité
23 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Les contraintes de clé
I permettent de spécifier les clés candidates de chaque schéma
de relation.
I Les valeurs des clés candidates doivent être distinctes pour
chaque tuple dans toute instance de relation.
24 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Les CI sur les entités
I elles ont pour but d’interdire une valeur nulle pour une Clé
Primaire → éviter toute ambiguïté d’identification de 2
tuples.
25 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Les CI référentielles
I s’appliquent entre deux relations afin de maintenir une
certaine cohérence parmi les tuples des deux relations.
26 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Notion de clé étrangère
I soit 2 schémas de relations R1 et R2.
I Un ensemble d’attributs FK de R1 est une clé étrangère s’il
remplit les conditions suivantes 1
1. Les attributs constituant FK ont le même domaine que les
attributs référencés dans R2 (R1 et R2 peuvent ne pas être
distinctes)
2. Une contrainte d’unicité ou de clé primaire s’applique sur les
colonnes référencées dans la relation R2.
3. Une valeur de FK dans un tuple t1 de R1 est soit identique à
une valeur de C dans un tuple t2 de R2 soit nulle.
1. Les conditions 1 et 2 concernent la structure des données(i.e. la définition
des données) tandis que la 3 est relative aux données(i.e. à la manipulation des
données
27 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Représentation d’un clé étrangère
I Les CI référentielles peuvent être représentées graphiquement
sur tout schéma relationnel en reliant par un arc chaque clé
étrangère à la relation à laquelle elle fait référence.
I Les CI référentielles peuvent aussi être représentées
directement dans la relation en faisant suivre l’attribut qui fait
référence par un signe dièse.
28 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Un schéma de BD relationnelle : exemple
29 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Opérations de base pour la mise à jour des relations
1. INSERER : pour l’ajout de nouveaux tuples dans une relation.
2. SUPPRIMER : pour la suppression de tuples dans une relation.
3. MODIFIER : pour la modification de certaines valeurs
d’attributs d’un tuple.
30 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
Vérification contraintes
I À chaque fois que l’une des opérations ci-dessus est effectuée
il faut s’assurer que les trois types de contraintes présentées
précédemment ne sont pas violées.
I Les contraintes de clé
I Les CI sur les entités
I Les CI référentielles
31 / 58
Schéma d’une Base de données relationnelle
Contraintes d’intégrité
TD
I TD : section MLD
32 / 58
Du conceptuel au logique
Traduction MCD vers MLD
33 / 58
Du conceptuel au logique
Transformation des entités
R1 : définition
I chaque entité devient une relation. L’identifiant de l’entité
devient clé primaire de la relation.
I Pour les entités de type date il n’y a pas lieu de définir de
relation dans la règle R1 2
2. Cela constitue une exception à la règle R1.
34 / 58
Du conceptuel au logique
Transformation des entités
R1 : exemple
35 / 58
Du conceptuel au logique
Transformation des associations binaire 1-N
R2 : définition
I Il faut ajouter un attribut de type clé étrangère dans la
relation fils de l’association. L’attribut porte le nom de la clé
primaire de la relation père de l’association.
36 / 58
Du conceptuel au logique
Transformation des associations binaire 1-N
R2 : exemple
37 / 58
Du conceptuel au logique
Transformation des association binaire N-N et associations n- aires
R3 : définition
I L’association devient une relation.
I La clé primaire de cette relation est la concaténation des
identifiants des entités connectés à l’association.
I Chaque attribut devient clé étrangère si l’entité connectée
dont il provient devient une relation en vertu de la règle R1.
I Les attributs de l’association doivent être rajoutés à la
nouvelle relation.
I Ces attributs ne sont ni clé primaire, ni clé étrangère
38 / 58
Du conceptuel au logique
Transformation des association binaire N-N et associations n- aires
R3 : exemple (a)
39 / 58
Du conceptuel au logique
Transformation des association binaire N-N et associations n- aires
R3 : exemple (b)
40 / 58
Du conceptuel au logique
Transformation des association 1-1
R4 : définition
I Il faut ajouter un attribut de type clé étrangère dans la
relation dérivée de l’entité ayant la cardinalité minimale 1.
41 / 58
Du conceptuel au logique
Transformation des association 1-1
R4 : exemple
42 / 58
Du conceptuel au logique
Transformation des association 1-1
TD
I TD : section Du MCD au MLD
43 / 58
L’algèbre relationnel
Les catégories d’opérations
I Opérations reposant sur la théorie des ensembles :
1. Union (n-aire)
2. Intersection (n-aire)
3. Différence (binaire)
4. Produit cartésien (binaire)
I Opérations spécifiques aux BD relationnelles :
1. Sélection (un-aire)
2. Projection (un-aire)
3. Jointure (binaire)
44 / 58
L’algèbre relationnel
La sélection
La sélection : définition
I Le but de la sélection est de sélectionner un sous-ensemble de
tuples d’une relation sur la base d’une condition de sélection.
I Exemple : liste des employés qui travaillent dans le
département 4 et dont le salaire est supérieur à 3000 F.
I Le résultat obtenu est une relation qui possède les mêmes
attributs que la relation d’origine.
45 / 58
L’algèbre relationnel
La sélection
Spécification des conditions de sélection
I Les opérateurs de comparaison sont :
I =, 6=, ≺, , , et s’appliquent sur des valeurs ordonnées de
domaine (numérique, date, alphabétique, alphanumérique
(code ASCII))
I pour des valeurs non ordonnées tels que ensemble de couleurs
seuls = et 6= peuvent être utilisés
I Liaisons entre les clauses : AND, OR, NOT.
46 / 58
L’algèbre relationnel
La sélection
La sélection : exemple avec Ville = Caen et CH_AFF
10.000
47 / 58
L’algèbre relationnel
La projection
La projection
I Le but de la projection est de sélectionner un sous-ensemble
d’attributs d’une relation en spécifiant d’une façon explicite
les attributs désirés.
I Exemple : lister le nom et le salaire de tous les employés.
I L’opération de projection élimine automatiquement les
duplications de tuples.
48 / 58
L’algèbre relationnel
La projection
La projection : exemple
49 / 58
L’algèbre relationnel
La jointure
La jointure
I Le but de la jointure est de combiner des tuples de deux
relations en un seul tuple en recherchant dans une relation R1
le tuple possédant une valeur d’attribut égale (ou
correspondant) à une autre valeur d’attribut (e.g. clé
étrangère) d’un tuple de relation R2.
50 / 58
L’algèbre relationnel
La jointure
Spécification des conditions de jointure
I Le critère de comparaison doit porter sur des attributs ayant
le même domaine.
I Exemple : rechercher le nom du directeur de chaque
département.
I Les opérateurs de jointure sont : =, 6=, ≺, , ,
I On parle d’équi-jointure si l’opérateur utilisé est ’=’ =⇒ il y a
un ou plusieurs paires d’attributs ayant la même valeur
51 / 58
L’algèbre relationnel
La jointure
La jointure : exemple
52 / 58
L’algèbre relationnel
La jointure
Produit cartésien
I S’il n’existe pas une condition de jointure, il s’agit d’un
produit cartésien et toutes les combinaisons de tuples sont
retenues dans la relation résultante.
53 / 58
L’algèbre relationnel
Opérations basées sur la théorie des ensembles
Union et Intersection
I le résultat d’une union entre deux relations R et S est une
relation qui contient tous les tuples qui sont dans R ou dans S
ou dans R et S (doublons).
I le résultat d’une intersection entre deux relations R et S est
une relation qui contient tous les tuples qui sont à la fois dans
R et dans S.
54 / 58
L’algèbre relationnel
Opérations basées sur la théorie des ensembles
Union et Intersection : exemples
55 / 58
L’algèbre relationnel
Opérations basées sur la théorie des ensembles
Différence
I le résultat d’une opération de différence entre deux relations R
et S est une relation qui contient tous les tuples de R qui ne
sont pas dans S.
56 / 58
L’algèbre relationnel
Opérations basées sur la théorie des ensembles
TD
I TD : Algèbre
57 / 58
Fin
58 / 58