Vous êtes sur la page 1sur 13

Cours de

Bases de Données Relationnelles

Partie I
Bases de données- Modèle Relationnel

Filière : SMI-S5
2021-2022

EL FAZAZY KHALID
Bases de données- Modèle Relationnel

Un système de gestion de base de données (SGBD) est une collection de données


interdépendantes et de programmes pour accéder à ces données. L'objectif principal d'un
SGBD est de fournir un moyen de stocker et de récupérer des informations de base de
données.
Les premiers systèmes de bases de données sont apparus dans les années 1960 en réponse à
la gestion informatisée des données commerciales.
L'aspect central de l'application n'est pas un programme effectuant un calcul, mais plutôt les
données elles-mêmes.
La gestion des données implique à la fois de définir des structures pour le stockage des
informations et de fournir des mécanismes pour la manipulation des informations. De plus, le
système de base de données doit assurer la sécurité des informations stockées, malgré les
pannes du système ou les tentatives d'accès non autorisé. Si les données doivent être
partagées entre plusieurs utilisateurs, le système doit éviter d'éventuels résultats anormaux.

I. Le modèle Entité-Association
Formalisme retenu par l'ISO pour décrire l'aspect conceptuel des données à l’aide d’entités et
d’associations
a) Le concept d’entité
Représentation d’un objet matériel ou immatériel. Par exemple un employé, un projet, un
bulletin de paie :
Nom de l’entité
Liste des propriétés

Les entités peuvent être regroupées en types d’entités. Par exemple, on peut considérer que
tous les employés particuliers sont des instances du type d’entité générique EMPLOYE
b) Les propriétés
Données élémentaires relatives à une entité. Par exemple, un numéro d’employé, une date de
début de projet. Les propriétés d’une entité sont également appelées des attributs, ou des
caractéristiques de cette entité
c) Les associations
Représentation d’un lien entre deux entités ou plus. Par exemple, la séance d’un cours :

d) Les cardinalités
La cardinalité d’une association pour une entité constituante est constituée d’une borne
minimale et d’une borne maximale :
• Minimale : nombre minimum de fois qu’une occurrence de l’entité participe aux
occurrences de l’association, généralement 0 ou 1
• Maximale : nombre maximum de fois qu’une occurrence de l’entité participe aux
occurrences de l’association, généralement 1 ou n

En notant uniquement les cardinalités maximum, on distingue 3 types de liens :


• Lien fonctionnel 1:n
• Lien hiérarchique n:1
• Lien maillé n:m
II. Le Modèle Relationnel

Le modèle relationnel permet de définir un haut degré d'indépendance des données. Ainsi les
programmes d'application ne doivent pas être affectés par les modifications apportées à la
représentation interne des données, notamment par les modifications apportées à
l'organisation des fichiers, l'enregistrement ou aux chemins d'accès. Il fournit des bases
solides pour traiter les problèmes de sémantique, de cohérence et de redondance des
données. En particulier, le concept de relations normalisées, c'est-à-dire des relations sans
groupes répétitifs. Le modèle relationnel est basé sur le concept mathématique de relation,
qui est physiquement représenté comme une table.

1. Structure de données relationnelle


a) Relation
Une relation est représentée sous la forme d'une table bidimensionnelle dans laquelle les
lignes de la table correspondent à des enregistrements et les colonnes correspondent aux
attributs. Par exemple, la relation Entreprise
Entreprise
EntrepriseNo Codepostal

B005 SW1 4EH

B007 AB2 3SU

B003 G11 9QX


B004 BS99 1NZ
B002 NW10 6EU

Une relation est définie par un ensemble d'attributs et de domaines.


Soit A1, A2, …, An des attributs et D1, D2, …, Dn des domaines, une relation R définie par

un schéma de relation S (un ensemble d'attributs et leurs domaines correspondants).


Ainsi, la relation R est définie comme un ensemble de n- tuples :
- (A1: d1, A2: d2, . . ., An:dn) tel que d1∈D1, d2∈D2, …, dn∈Dn n
Chaque élément du n- tuples contient un attribut et une valeur pour cet attribut.
b) Attribut
Un attribut est une colonne nommée d'une relation.
Par exemple, les colonnes EntrepriseNo (le numéro de l’Entreprise) et code postal sont des
attributs de la relation Entreprise

c) Domaine
Un domaine est l'ensemble des valeurs autorisées pour un ou plusieurs attributs.
• Chaque attribut dans une relation est défini sur un domaine.
• Un attribut, ou deux attributs ou plus peuvent être définis sur le même domaine.
• Les domaines peuvent être distincts.

d) Tuple
Les tuples d'une relation sont les lignes ou les enregistrements de la table.

Dans la relation d’Entreprise, chaque ligne contient deux valeurs, l’une pour EntrepriseNo
et l’autre pour le code postal.

e) Degré
Le degré d'une relation est le nombre d'attributs qu'elle contient.
La relation Entreprise de la figure 1 a deux attributs. Ça signifie que chaque ligne de la table
est un tuple contenant deux valeurs.
Une relation avec seulement un attribut aurait le degré un et s'appellerait
une relation unaire ou un tuple. Une relation avec deux attributs s'appelle binaire, avec trois
attributs s'appelle ternaire et si plus de trois le terme n - aire est habituellement utilisé.
f) Cardinalité
La cardinalité d'une relation est le nombre de tuples qu'elle contient.
Par contraste, la cardinalité de la relation change selon si les tuples sont ajoutés ou
supprimés.

g) Schéma de base de données relationnelle


Le schéma d'une base de données est défini par l'ensemble des schémas des relations qui la
composent. Soit R1, R2, …, Rn un ensemble de schémas de relation, alors nous pouvons
écrire le schéma base de données relationnel, ou simplement le schéma relationnel, comme :
R = {R 1, R 2, …, R n}
Notez la différence entre :
• le schéma de la BDR qui dit comment les données sont organisées dans la base
• l'ensemble des n-uplets de chaque relation, qui représentent les données stockées dans la
base

2. Clés relationnelles

Comme indiqué précédemment, il n'y a pas de tuples en double dans une relation. Par
conséquent, nous avons besoin d’un ou plusieurs attributs (appelés clés relationnelles) qui va
identifier chaque tuple dans une relation.

a) Clé primaire
La clé candidate identifié les tuples de manière unique dans la relation. Cela signifie qu'une
relation a toujours une clé primaire. Au pire cas, l’ensemble complet d’attributs pourrait servir
de clé primaire, mais d’habitude un sous-ensemble d’attributs est suffisant pour distinguer les
tuples (Clé primaire composée).
Pour la relation Entreprise l’attribut EntrepriseNo est choisi comme clé primaire :
Entreprise
EntrepriseNo Codepostal

B005 SW1 4EH

B007 AB2 3SU


B003 G11 9QX
B004 BS99 1NZ
B002 NW10 6EU
b) Clé étrangère
Un attribut, ou un ensemble d'attributs, d’une relation qui correspond à la clé primaire d’une
autre relation. Généralement, lorsqu’un attribut apparaît dans plusieurs relations, son
apparence représente une relation entre les tuples des deux relations.
L’attribut EntrepriseNo dans la relation Personnel est un Clé étrangère

Personnel
PersonnelNo Nom position sex D_S salaire EntrepriseNo

SL21 Bader Manager M 01-oct-45 30000 B005

SG37 Hamid Assistant F 10-nov-60 12000 B003


SG14 David Supervisor M 24-mars-58 18000 B003
SA9 Amina Assistant F 19-Feb-70 9000 B007
SG5 Maryam Manager F 3-Jun- 40 24000 B003
SL41 Julie Assistant F 13-Jun-65 9000 B005

3. Contraintes d'intégrité

Les règles d'intégrité sont les assertions qui doivent être vérifiées par les données contenues
dans une base. La gestion automatique des contraintes d’intégrité est l’un des outils les plus
importants d’une base de données.

a) Nulls
Null représente une valeur pour un attribut qui est actuellement inconnu à un tuple. Les zéros
et les espaces sont des valeurs, mais un Null représente l'absence d'une valeur. Par
conséquent, les valeurs NULL doivent être traitées différemment.
b) Intégrité de l'entité
Par définition, une clé primaire est un identifiant unique pour identifier les tuples.
Par exemple, comme EntrepriseNo est la clé primaire de la relation Entreprise, nous ne
devrions pas pouvoir insérer un tuple dans le Relation Entreprise avec un Null pour
l’attribut EntrepriseNo.
Dans le cas d'une clé primaire composée, si nous autorisons un Null dans un tuple,
nous impliquons que cet attribut qui compose la clé primaire n’est pas nécessaire pour
distinguer les autre tuples.
c) Intégrité référentielle
Si une clé étrangère existe dans une relation, la valeur de la clé étrangère doit correspondre à
la valeur de la clé primaire d'un tuple dans sa relation d'origine ou la valeur de la clé étrangère
doit être totalement nulle.
Par exemple, EntrepriseNo de la relation Personnel est une clé étrangère pointant sur
EntrepriseNo de la relation d’Entreprise. Donc, l’ajout d’un enregistrement, dans la relation
Personnel, avec (EntrepriseNo= B025) n’est pas possible. Sauf s’il existe déjà un
enregistrement (EntrepriseNo = B025) dans la relation d’Entreprise.

4. Dépendances fonctionnelles
Objectifs:
• Déterminer si un ensemble de dépendances ne contient pas de redondances.
• Représenter ces dépendances sous une forme minimale.
Les dépendances fonctionnelles sont associées au schéma et non à une instance particulière
Soit R = {A, B, C, D} un schéma de relations et DF = { A→B, B→C, AC→D} l'ensemble
des dépendances fonctionnelles
Si r satisfait toutes les contraintes de DF, alors r satisfait également les dépendances
suivantes:
A→C
A→AC
A→D
A→ABCD
CD→D
......

Exemple : ENREG = {NumE, Pays, NomM, Classe, Date, IdDep}


Les dépendances vérifiées par chaque instance (en supposant un seul déposant par
enregistrement) :
df1 : NumE, Pays → NomM, Date
df2 : NumE, Pays → Classe, IdDep
df3 : NomM, Pays,Classe → NumE
Dépendances "déduites" :
df4 : NumE,Pays → NomM, Date, Classe, IdDep

a) Implication de dépendances
Soient DF et DF' deux ensembles de dépendances fonctionnelles définies sur un schéma de
relation R. On dit que DF implique DF', et l'on note DF |= DF' ssi pour toute instance r de la
relation R, on a r |= DF ⇒ r |= DF’.
Exemple: A→B, A→C |= A→BC

b) Les axiomes d'Armstrong

Les axiomes suivants permettent de démontrer toute implication entre dépendances


fonctionnelles. Ce système Inférentiel est noté |- par opposition à |= qui dénote l'implication
sémantique.

Réflexivité |- X→X
Augmentation X→Y |- XZ→Y
Addition X→Y, X→Z |- X→YZ
Projection X→YZ |- X→Y
Transitivité X→Y, Y→Z |- X→Z
Pseudo-transitivité X→Y, YZ→W |- XZ→W

c) Fermeture d'un ensemble d'attributs


Soit {A1,…,An} un ensemble d'attributs et S un ensemble de dépendances fonctionnelles.
La fermeture de {A1,…,An} par S est l'ensemble d'attributs B tel que toutes les dépendances
de S satisfont aussi {A1,…,An} → B. C'est à dire que {A1,…,An} → B découle de S On note
la fermeture {A1,…,An}+
Exemple:
S={A→ D; A→ E; E→ C}
Fermeture {A}+ = {A,D,E,C}

5. Formes Normales
L’objectif de la normalisation est de décomposer les relations d'un schéma en des relations
plus simples et plus "indépendantes" et d’éliminer les redondances
a) Formes normales : 1FN
Une relation respecte la 1ère forme normale si et seulement si tous ses attributs sont
atomiques (valeur scalaire, indivisible).
b) Formes normales : 2FN
Une relation respecte la 2ème forme normale si et seulement si :
• elle respecte la 1ère forme normale;
• tous ses attributs non clés sont complètement dépendants de la clé primaire (ne
peuvent pas dépendre que d’une partie de la clé primaire).

c) Formes normales : 3FN


Une relation respecte la 3ème forme normale si et seulement si :
• elle respecte la 2ème forme normale;
• tous les attributs non clés sont dépendants non transitivement de la clé primaire (ne
dépend pas d'un ou plusieurs attributs ne participant pas à la clé).

d) Formes normales : FNBC (Boyce-Codd)


Une relation respecte la forme normale de Boyce-Codd si et seulement si:
• elle respecte la 3èmeforme normale;
• tous les attributs non-clé ne sont pas source de dépendance vers une partie de la clé.

Vous aimerez peut-être aussi